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
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.
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.
| Camada | DEV (S0, dia 1) | PROD (decisão P6, dia 45) |
|---|---|---|
| Orquestração | K3s single-node na VM DEV (I52) · Helm charts · GHCR · cert-manager | K3s (omissão) vs AKS — P6 |
| Base de dados | PostgreSQL 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 | |
| Mensageria | RabbitMQ topic goro.events · outbox transaccional + inbox idempotente + DLQ c/ alerta | |
| Objectos/GED | MinIO no K3s (S3 API) | Azure Blob c/ immutability (WORM) se AKS — fronteira StoragePort |
| Identidade | Keycloak (OIDC, MFA) — ratificado | |
| Observabilidade | OTel → Prometheus + Loki + Tempo · Grafana · Alertmanager · Uptime Kuma | |
| Segurança S0 | WAF Coraza (P2) · Infisical segredos (P3) · ZAP nightly · Syft/Cosign · hardening VM · SonarQube gates | |
libs/hr · org · ged · time · payroll · perf · train · recruit · discipline · platform. Regra dura: domain sem imports de infraestrutura; PR que viole é rejeitado.openapi-typescript · validação Zod partilhada.| Módulo | Serviço | Responsabilidade única | Fase |
|---|---|---|---|
| M0Colaboradores | svc-hr :3045 | Fonte ú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 & Assiduidade | svc-time :3051 | Ingest biométrico HMAC idempotente · consolidador raw→ponto (LGT) · leave · turnos | S1 |
| M2Payroll & Despesas | svc-payroll :3052 | Motor 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ção | svc-perf+svc-train :3053 | Ciclos, objectivos, calibração · catálogo/certificados/LMS | S3/S4 |
| M4Recrutamento & Talento | svc-recruit :3054 | Vagas (contra POSITIONS do Org Engine) → contratação · Offboarding (I53) — cessação escrita por M0 via evento | S4 |
| M5Disciplinares | svc-discipline :3055 | Máquina de estados LGT · docs WORM · validação jurista | S3 |
| M6Plataforma | gateway · identity · workflow · audit · notify · report :3062 | TLS/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ódulos | S0/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).
ui_themes, RLS, auditada) + claro/escuro por utilizador · ESLint no-hex-color fora de tokens (I47) · contraste WCAG AA validado no backend (I48).UNIQUE(tenant, device_sn, emp_code, punch_time_utc, punch_type) · runs (tenant, calendar, period_month)| Artefacto | URL | Estado |
|---|---|---|
| Shell + Design System GORO Sober (sidebar M0-M6, Central de Aprovações, palete runtime) | arquivado (input #36) — superado por /mockup-v3 | Arquivado |
| 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) | /wireframe | Referência |
| Arquitectura macro (Mermaid, bounded contexts, eventos) | /arquitectura | Ratificada (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 |
| ID | Decisão | Prazo | Omissão |
|---|---|---|---|
| P2/P3 | WAF + gestão de segredos | dia 10 | Coraza + Infisical |
| UIFW+I51 | Framework visual + linguagem GORO Sober | dia 15 | — |
| M0SPEC | Spec M0 (incl. emenda Org: reporta_a → assignments) | dia 18 | — |
| I54 | Prompt v1: absorver conteúdo (A) vs green-field Python (B) | dia 18 | (A) — (B) mata o GA |
| P7 | Org Engine dentro de svc-hr (extraível) vs 10º serviço | dia 18 | dentro de svc-hr |
| P8 | GED: MinIO/Blob + CASL + PDF.js · OCR fase 2 | dia 18 | conforme GED_ANALYSIS |
| TENANT | Tenant piloto shadow-run | dia 20 (duro) | — |
| P6 | Cluster PROD K3s vs AKS | dia 45 | K3s |
| P11 | svc-report (Relatórios & BI read-only, 10º serviço em M6) — porta legado dos mapas legais AGT/INSS | dia 18 | conforme REPORTING_BI_SPEC |
| P9/P10 | Mobile pós-GA · Edge Agent multi-vendor (depende do parque real de terminais) | dia 45 | v1.1 / sem edge |
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