GORO PMP Enterprise — Definição Completa da Aplicação

CHK S.A · Angola · v1 pré-código (2026-09-15) · consolidação de todas as decisões ratificadas + inputs #1-#15 · código ZERO até alinhamento total

01

O Produto

GORO PMP Enterprise — SaaS multi-tenant HCM/HRIS para o mercado angolano: Gestão de Colaboradores 360º, Tempo & Assiduidade com biometria, Payroll conforme legislação AO (IRT OGE 2026 · INSS · LGT · LPDA), Desempenho & Formação, Recrutamento & Offboarding, Disciplinares, Organização (SAP-like) e Gestão Documental.

7+2módulos CORE (M0-M6) + Org Engine + GED
9+1micro-serviços + gateway (tecto p/ 2 devs)
180 dias120 dev + 30 revisões + 15 testes + 15 polimentos · GA 20/03/2027 (I55, input #18)
0,00 AOAdiff exigido nos 3 shadow-runs de payroll

Substitui: GORO PMP legado (monólito) — por Strangler Fig, migrando os motores provados em produção (ingest biométrico, consolidador de ponto, motor payroll v2) com shadow-diff = 0. NÃO é green-field: o legado é o activo que garante paridade.

02

Sistema Base (onde corre)

CamadaDEV (S0, dia 1)PROD (decisão P6, dia 45)
OrquestraçãoK3s single-node na VM DEV (I52) · Helm charts · GHCR · cert-managerK3s (omissão) vs AKS — P6
Base de dadosPostgreSQL 16 · 1 schema por contexto (hr, org, ged, time, pay, perf, train, recruit, discipline, wf, audit) · RLS ENABLE+FORCE fail-closed · TimescaleDB p/ hypertables (raw_punch, audit_log, heartbeat) — adoptado do prompt v1
MensageriaRabbitMQ topic goro.events · outbox transaccional + inbox idempotente + DLQ c/ alerta
Objectos/GEDMinIO no K3s (S3 API)Azure Blob c/ immutability (WORM) se AKS — fronteira StoragePort
IdentidadeKeycloak (OIDC, MFA) — ratificado
ObservabilidadeOTel → Prometheus + Loki + Tempo · Grafana · Alertmanager · Uptime Kuma
Segurança S0WAF Coraza (P2) · Infisical segredos (P3) · ZAP nightly · Syft/Cosign · hardening VM · SonarQube gates
03

Ambiente de Desenvolvimento

04

Módulos e Serviços (divisão CORE v2 + acréscimos do input #15)

MóduloServiçoResponsabilidade únicaFase
M0Colaboradoressvc-hr :3045Fonte única de escrita do colaborador · Ficha 360º (incl. Saúde cifrada GAP 9) · contratos · + schema org (Organization Engine, P7) · + schema ged (Documentos, P8)S1
M1Tempo & Assiduidadesvc-time :3051Ingest biométrico HMAC idempotente · consolidador raw→ponto (LGT) · leave · turnosS1
M2Payroll & Despesassvc-payroll :3052Motor por rubricas · IRT Lei 28/20 · INSS 3/8 · snapshot legislativo imutável · fecho + AGD/SEPA (ecrãs P-05/P-06 do mapa de 23 ecrãs)S2
M3Desempenho & Formaçãosvc-perf+svc-train :3053Ciclos, objectivos, calibração · catálogo/certificados/LMSS3/S4
M4Recrutamento & Talentosvc-recruit :3054Vagas (contra POSITIONS do Org Engine) → contratação · Offboarding (I53) — cessação escrita por M0 via eventoS4
M5Disciplinaressvc-discipline :3055Máquina de estados LGT · docs WORM · validação juristaS3
M6Plataformagateway · identity · workflow · audit · notify · report :3062TLS/JWT/rate-limit · Keycloak · maker-checker SoD · trilha WORM · notificações · svc-report (P11): Relatórios & BI read-only — read models por eventos, mapas legais AGT/INSS do snapshot, agregados p/ dashboards e diagramas (ECharts) de todos os módulosS0/S2

Comunicação: REST síncrono via gateway (timeout 2s + circuit breaker, proibido encadear) · 1 excepção gRPC payroll→time (snapshot fechado) · resto assíncrono por eventos. Detalhe: /arquitectura (Mermaid completo).

05

FrontEnd Unificado

06

Segurança (sistema + aplicação)

Isolamento e acesso
  • RLS FORCE multi-tenant em todas as tabelas de negócio · teste cross-tenant no CI
  • Keycloak OIDC + MFA · JWT validado localmente (JWKS)
  • RBAC 6 perfis + maker-checker SoD (3 camadas) · admin IT nunca vê salários, saúde nem conteúdo de documentos
  • CASL (adoptado, P8): autorização por condições — "gestor só distribui aos SEUS subordinados" resolve pela cadeia do Org Engine
Dados e integridade
  • Cifra: pgcrypto (saúde GAP 9) · envelope encryption DEK/KEK p/ documentos GED (KEK no Infisical/KeyVault)
  • WORM: audit_log + contratos assinados + docs disciplinares
  • Idempotência composta: picagens UNIQUE(tenant, device_sn, emp_code, punch_time_utc, punch_type) · runs (tenant, calendar, period_month)
  • Snapshot legislativo SHA-256 — payroll reprodutível bit-a-bit; relatórios legais lêem do snapshot, nunca de tabelas vivas
  • Presigned URLs 60s · antivírus no upload · binários nunca em BD/logs
Pendentes de decisão: P2 WAF + P3 segredos (dia 10, omissão = Coraza+Infisical) · P4 pen-test (dia 90).
07

Mockups — versões para constatação

ArtefactoURLEstado
Shell + Design System GORO Sober (sidebar M0-M6, Central de Aprovações, palete runtime)arquivado (input #36) — superado por /mockup-v3Arquivado
Ficha do Colaborador 360º (tabs incl. Saúde 🔒, dependentes maker-checker, docs c/ validade)arquivado (input #36)Arquivado
Wireframe técnico (6 tabs, infra & deploy)/wireframeReferência
Arquitectura macro (Mermaid, bounded contexts, eventos)/arquitecturaRatificada (I49/I50/I52/I53)
Ecrã Organograma + upload Excel (Org Engine)—Por produzir após ratificação P7 (dia 18)
Wizard Payroll passos 5-6 (Revisão + Fecho/AGD)—Por produzir na spec da S2 — pendência herdada do mapa de 23 ecrãs
08

Decisões em aberto — o que trava o quê

IDDecisãoPrazoOmissão
P2/P3WAF + gestão de segredosdia 10Coraza + Infisical
UIFW+I51Framework visual + linguagem GORO Soberdia 15—
M0SPECSpec M0 (incl. emenda Org: reporta_a → assignments)dia 18—
I54Prompt v1: absorver conteúdo (A) vs green-field Python (B)dia 18(A) — (B) mata o GA
P7Org Engine dentro de svc-hr (extraível) vs 10º serviçodia 18dentro de svc-hr
P8GED: MinIO/Blob + CASL + PDF.js · OCR fase 2dia 18conforme GED_ANALYSIS
TENANTTenant piloto shadow-rundia 20 (duro)—
P6Cluster PROD K3s vs AKSdia 45K3s
P11svc-report (Relatórios & BI read-only, 10º serviço em M6) — porta legado dos mapas legais AGT/INSSdia 18conforme REPORTING_BI_SPEC
P9/P10Mobile pós-GA · Edge Agent multi-vendor (depende do parque real de terminais)dia 45v1.1 / sem edge
Aviso de capacidade (sem anestesia): buffer da S0 consumido pelo K8s (I52). Org Engine (+4-6d) e GED MVP (+3-4d) na S1 só cabem com mobile/edge/biometria avançada FORA do GA. Emenda I55 (input #18): GA formal passa para 20/03/2027 (120 dev + 30 revisões + 15 testes + 15 polimentos = 180 dias) — os acréscimos absorvidos (Org Engine, GED, svc-report) ganham folga real nas novas fases T15/P15, mas a janela de desenvolvimento continua a ser 120 dias: acréscimo de escopo dentro dela continua a ser aritmética, não opinião.

GORO PMP Enterprise · CHK S.A · documento vivo — fonte: docs/ALINHAMENTO_PROMPT_V1.md · ORG_DESIGN_SPEC.md · GED_ANALYSIS.md · ARCHITECTURE_MACRO_V2.md · M0_SPEC.md