Review Pré-Arranque — achados A1-A8, specs fechadas, benchmark e veredicto

Página viva — última revisão: input #41 (17/09/2026) · Inputs #30 · #36 · #37 · #39 · #40 · #41 · Análise em 12 vertentes + benchmark vs gigantes HCM → 8 achados → especificações executáveis fechadas · fontes: docs/DEEP_REVIEW_ENTERPRISE_V1.md + docs/PRE_ARRANQUE_A1_A8.md

✅ RATIFICADAS — inputs #36 + #37: I60 TimescaleDB + Go Edge Agent + Redis Streams (telemetria edge→M1) · I61 effective dating bi-temporal + motor de regras · I62 control plane svc-tenant · I63 SIEM + SSO federado + SCIM · I64 3 edições + WCAG/i18n · I65 backlog competitivo faseado. As especificações executáveis de A1-A8 estão fechadas na secção 5 (schemas, contratos, gates) — prontas a codificar a 22/09. Emenda formal do A1 ao M0_SPEC.md agendada pós-OK do dia 18.
✅ Anti-regressão (regra do input #30): tudo o que já está decidido e sólido foi verificado ponto a ponto e NÃO é tocado — microserviços M0–M6, RLS, Keycloak+MFA, svc-audit WORM, outbox/inbox+DLQ, OTel/Tempo/Loki, WAF Coraza, Infisical, pgBackRest+restore-drill, ZAP/Semgrep/Trivy/Cosign, Unleash, purga PII, LGT/IRT/INSS/Lei 22/11, PWA I58, duas linguagens I59, gates QUALITY_PLATFORM. Esta revisão só acrescenta; não reabre.

1 · Os 8 achados (por gravidade) — 8/8 SPEC FECHADA (inputs #36/#37)

Nenhum achado está em aberto: todos têm decisão ratificada (I61-I65) e especificação executável fechada na secção 5. Esta tabela mantém-se como registo do diagnóstico original.

#AchadoGravidadePorquê dóiPropostaEstado
A1Effective dating (bi-temporalidade) ausente em M0/M2CRÍTICAÉ O padrão que separa HCM enterprise de HCM PME. Sem ele: retro payroll impossível, histórico organizacional falso, "quem era o chefe em Março?" não responde. Workday/SAP/Oracle/Dayforce são todos effective-dated no core. Retrofit = reescrever M0+M2.I61✅ SPEC FECHADA
I61 ratificada #36 · spec §5 (schema bi-temporal, as-of, 4 critérios)
A2Não existe Control Plane de tenantsCRÍTICAProvisioning, edições, metering p/ billing, suspensão, exportação+purga certificada — o produto multi-tenant não tem quem gira os tenants. Alternativa é SQL à mão: indefensável com >5 clientes.I62✅ SPEC FECHADA
I62 ratificada #36 · spec §5 (svc-tenant :3063, entitlements)
A3Loki/Grafana é monitorização, NÃO é SIEMALTASem pipeline de eventos de segurança, sem normalização ECS, sem correlação, sem export CEF/syslog para o SIEM do cliente — RFP enterprise chumba.I63✅ SPEC FECHADA
I63 ratificada #36 · spec §5 (ECS+Wazuh+CEF, WORM 24m)
A4Segmentação micro→enterprise inexistenteALTAA directiva "servirá micro, pequenas e grandes" não tem suporte no desenho: sem edições, sem onboarding self-service <30min, sem UI progressiva.I64✅ SPEC FECHADA
I64 ratificada #36 · spec §5 (matriz 3 edições)
A5Motor de regras por tenant insuficienteALTARubricas versionadas c/ vigência, calendários por província, accrual de férias, thresholds SoD por tenant: implícito, não especificado.I61✅ SPEC FECHADA
via I61 · spec §5 (DSL JSON, maker-checker, IRT/INSS)
A6Gaps funcionais vs gigantesMÉDIAPosition management, retro pay, compensation review, scheduling avançado — ver benchmark §3.I65✅ SPEC FECHADA
I65 ratificada #36 · spec §5 (backlog F1/F2)
A7SSO federado por tenant + SCIM não especificadosMÉDIAEnterprise exige "login com o NOSSO Entra/AD". Topologia Keycloak tem de ser decidida ANTES do svc-identity — mudar depois é migração de identidade.I63✅ SPEC FECHADA
via I63 · spec §5 (OIDC/SAML, SCIM 2.0, break-glass)
A8WCAG 2.2 AA e i18n sem meta formalMÉDIAAcessibilidade não está em nenhum gate; retrofit de i18n é dos retrabalhos mais caros.I64✅ SPEC FECHADA
via I64 · spec §5 (gates axe-core + i18n CI)

2 · Upgrades por vertente (12 vertentes verificadas)

VertenteJá sólido (não tocar)Upgrade proposto
EscalabilidadeEscala selectiva M0-M6, K3s, PgBouncer, tecto P11Read replicas p/ svc-report · cache Redis de lookups legais/orgânica (invalidação por evento, NUNCA salários) · partição payroll (tenant, ano_mes) desde a migration 1 · rate-limit e quotas por tenant no gateway
Performancek6 fecho mensal, p95 Grafana, gRPC snapshotSLOs formais (API p95<300ms leitura · fecho 1.000 colab <10min · picagem <150ms p99 · 99,9% Enterprise) · k6 como GATE no CI (regressão >15% chumba) · worker_threads no M2
Dados & Edge (I60)PG16+RLS, schemas por serviçoTimescaleDB no schema time · Go Edge Agent (buffer SQLite, replay HMAC idempotente — spec antes do F2) · Redis Streams SÓ edge→M1; RabbitMQ dono dos eventos de negócio (fronteira não-negociável)
UII51/I56 AntD, I58 PWA, I59 duas linguagens, dark, densidadeWCAG 2.2 AA como gate (axe-core no CI, contraste nos 6 tons × 2 aparências) · confirmar AG Grid Enterprise antes do M2 · skeletons/estados vazios como padrão do design system
UXNavegação top=módulos/sider=opções (#22), personalizaçãoUI progressiva por edição (micro vê 3 módulos e defaults; enterprise vê tudo) · onboarding wizard <30min c/ import Excel · i18n obrigatório desde a 1.ª linha (pt-AO base) · command palette Ctrl+K promovida a padrão
GovernançaDonos por contexto (M0 dono do colaborador)DATA_GOVERNANCE.md obrigatório pré-código: classificação de dados (5 níveis incl. sensível-salarial/disciplinar) × perfis · ciclo de vida do tenant c/ exportação e purga certificada · gestão de alterações legais (tabelas IRT/INSS versionadas c/ vigência + calendário de compliance)
GestãoUptime Kuma, runbooksControl Plane (I62): svc-tenant no M6 (10.º serviço, excepção P11 justificada) — provisioning, edições, metering (consumidor dos eventos hr.employee.* já existentes), suspensão · SLA por edição · página de status pública
Auditoriasvc-audit WORM, trilha imutávelHash encadeado + âncora diária em R2 object-lock (prova de não-adulteração) · relatórios prontos p/ auditor externo (alterações salariais antes/depois) · auditoria de LEITURA de dados sensíveis (salários/disciplinares de terceiros)
Logs SIEM— (lacuna A3)Pipeline própria (I63): Wazuh OSS + formato ECS desde o 1.º serviço + export CEF/syslog p/ SIEM do cliente (Splunk/Sentinel/QRadar) · retenção 12+ meses WORM · authn/authz sucesso E falha, acções admin, acessos sensíveis, eventos WAF
Logs monitorizaçãopino→Loki · Tempo · Prometheus · Alertmanager ✅Mantém-se — fica formalmente SEPARADA da pipeline SIEM (retenção 30-90d). Evento de segurança nunca se perde por rotação de logs de ops.
SegurançaGate ASVS, WAF, Infisical, SBOM, pen-testSSO federado por tenant (topologia Keycloak decidida PRÉ-identity) · SCIM 2.0 (API já desenhada, impl. fase 2) · testes cross-tenant no CI (prova do RLS) · revogação de sessões + sessões por dispositivo · IP allowlist por tenant (Enterprise)
Legislação & conformidadeLGT, IRT 28/20, INSS, Lei 22/11, purga PII, WORM, cookies I58Compliance pack Angola: cada mapa AGT/INSS = teste automatizado c/ dataset de referência · motor multi-jurisdição preparado (coluna jurisdicao + vigência → SADC amanhã sem rewrite) · DPA por tenant + residência de dados documentada · direitos do titular: exportação/portabilidade por colaborador + rectificação c/ trilha
Regras de negócio enterpriseSoD maker-checker, svc-workflowI61 — a decisão mais importante: effective dating bi-temporal em M0/M1/M2 (valido_de/ate ≠ criado_em) → retro payroll, orgânica histórica, auditoria temporal · rubricas parametrizadas versionadas · calendários por província · accrual férias · thresholds SoD por tenant

3 · Benchmark vs gigantes — módulos CORE (honesto, sem poupança)

CapacidadeWorkdaySAP SFOracleADPDayforceUKGBamboo/PersonioGORO (desenho)Estado (rev. #40)
M0 Core HR effective-dated✅✅✅✅✅✅❌❌→✅ I61 ratificada ✓✅ SPEC FECHADA
A1 §5 · bi-temporal M0
M0 Position management✅✅✅🟠✅🟠❌❌ fase 2 (I65)📋 BACKLOG
F2 por decisão I65 ✓ — fora do GA
M0 Docs+GED+self-service✅✅✅✅✅✅✅✅ maduro✅ SPEC FECHADA
M0_SPEC — já sólido
M1 Biometria HMAC + edge offline🟠🟠🟠✅✅✅✅❌✅✅ I60 ratificada ✓✅ SPEC FECHADA
I60 ✓ + spec Edge Agent FECHADA #40 (docs/EDGE_AGENT_SPEC.md)
M1 Accrual engine (férias/licenças)✅✅✅✅✅✅🟠🟠→✅ I61 ratificada ✓✅ SPEC FECHADA
A5 §5 · accrual na DSL
M1 Scheduling/forecast avançado🟠🟠🟠✅✅✅✅✅❌❌ fase 3 (básico ✅)📋 BACKLOG
F3 (I65) · básico coberto no GA
M1 Geofencing/mobile clock-in✅✅✅✅✅✅✅🟠 PWA geo✅ SPEC FECHADA
PWA I58 — geo clock-in no plano F1
M2 Motor rubricas+fechos+recibos✅✅✅✅✅✅✅✅❌✅ Lei 28/20 nativo✅ SPEC FECHADA
core M2 + DSL (A5)
M2 Retro payroll automático✅✅✅✅✅✅✅❌❌→✅ I61 ratificada ✓✅ SPEC FECHADA
A1 §5 · retro-pay = critério de aceitação
M2 Compliance Angola nativo❌❌❌🟠❌❌❌✅✅ ARMA nº1✅ SPEC FECHADA
core do produto — IRT/INSS/LGT nativos
M2 Benefits administration✅✅✅✅✅🟠🟠❌ fase 3 (rubricas cobrem subsídios AO)📋 BACKLOG
F3 (I65) · subsídios AO cobertos já
M3 Avaliação+objectivos+calibração✅✅✅✅🟠✅🟠✅✅✅ SPEC FECHADA
M3 no desenho — codifica F1
M3 Compensation review em massa✅✅✅✅🟠✅🟠❌❌ fase 2 (I65)📋 BACKLOG
F2 por decisão I65 ✓ — fora do GA
M3 LMS+certificados🟠✅✅✅🟠🟠🟠🟠✅ LMS migra✅ SPEC FECHADA
migração do LMS existente (M3)
M4 ATS + offboarding✅✅✅✅✅🟠✅✅ +purga PII✅ SPEC FECHADA
M4 + I53 (offboarding) ✓
M5 Disciplinares LGT Angola❌❌❌❌❌❌❌✅✅ ÚNICO — arma nº2✅ SPEC FECHADA
M5 · prazos LGT 22/11 no desenho
M6 SSO federado + SCIM✅✅✅✅✅✅🟠❌→✅ I63 ratificada ✓✅ SPEC FECHADA
A7 §5 · OIDC/SAML+SCIM
M6 SIEM export (CEF/syslog)✅✅✅✅✅✅❌❌→✅ I63 ratificada ✓✅ SPEC FECHADA
A3 §5 · ECS+Wazuh+CEF
M6 BI + mapas legais✅✅✅✅✅✅✅🟠🟠✅ svc-report✅ SPEC FECHADA
M6 svc-report — mapas legais AO
Multi-edição micro→enterprise❌❌❌✅🟠🟠✅ só base❌→✅ I64 ratificada ✓ — quadrante VAZIO✅ SPEC FECHADA
A4 §5 · matriz 3 edições
Extensibilidade (webhooks, campos custom)✅✅✅✅🟠✅🟠🟠🟠 fase 2 (I65)📋 BACKLOG
F2 (I65) · webhooks/campos custom

✅✅ líder · ✅ cobre · 🟠 parcial · ❌ não tem

✅ Estado M0-M6 REVISTO (input #40): das 21 capacidades do benchmark, 16 = SPEC FECHADA (prontas a codificar 22/09) e 5 = BACKLOG F2/F3 por decisão ratificada I65 (fora do GA, não são pendentes — são âmbito diferido). Zero capacidades sem dono ou sem decisão. A spec do Go Edge Agent (exigida pela I60 antes da F2) foi FECHADA no input #40: docs/EDGE_AGENT_SPEC.md.
Leitura dura do benchmark: os gigantes esmagam-nos hoje em effective dating (I61 ratificada corrige), SSO/SCIM (I63 ratificada corrige), retro pay (I61) e position management (fase 2). Nós esmagamo-los em compliance Angola NATIVO (para eles somos "custom country"; para nós é o core), disciplinares LGT (único no mercado), biometria+edge offline para a realidade africana, e micro→enterprise no mesmo produto — nenhum gigante desce bem, nenhum PME-player sobe bem: esse quadrante está VAZIO. Não vencemos o Workday no terreno do Workday; vencemos em Angola/SADC sendo o único simultaneamente conforme-local, enterprise-grade (I61/I63 ratificadas) e acessível a micro (I64).

4 · Decisões — estado final

IDDecisãoEstadoConsequência
I60TimescaleDB (schema time/M1) + Go Edge Agent (terminais biométricos offline, buffer SQLite, replay HMAC) + Redis Streams restrito a telemetria edge→M1 — RabbitMQ mantém-se dono dos eventos de negócio (fronteira não-negociável)RATIFICADA #37Spec do Edge Agent antes do F2; extensão Timescale entra na migration do schema time
I61Effective dating bi-temporal M0/M1/M2 + motor de regras por tenantRATIFICADA #36Spec fechada (A1+A5, secção 5); emenda M0_SPEC pós-OK dia 18; +20-30% complexidade nesses schemas — assumida
I62Control Plane: svc-tenant :3063 M6 (10.º serviço, excepção P11 justificada)RATIFICADA #36Spec fechada (A2); impl. F1
I63Pacote segurança enterprise: SIEM Wazuh+ECS+CEF · SSO federado · SCIM 2.0 · testes cross-tenant CIRATIFICADA #36Specs fechadas (A3+A7); topologia Keycloak decide-se ANTES do svc-identity
I643 edições no mesmo core + WCAG 2.2 AA gate + i18n pt-AO desde a 1.ª linhaRATIFICADA #36Specs fechadas (A4+A8); matriz de edições = contrato de produto
I65Backlog competitivo faseado F2/F3 fora do GARATIFICADA #36Registado (A6); guard-rail: nada de F2 entra em sprint sem decisão explícita

Ordem de dependência anti-retrabalho (mantém-se): I61 → emenda M0_SPEC (pós-OK dia 18, antes de 22/09) · I63 topologia Keycloak → antes do svc-identity · I62/I64 → specs S0 · I60 Edge Agent spec → antes do F2 · I65 → só registo. Nenhuma reabre I40–I59.

5 · Especificações executáveis A1-A8 (inputs #36/#37 — fechadas, prontas a codificar 22/09)

Nível desta entrega: fase pré-arranque — schemas SQL, contratos de API, DSL, gates de CI e critérios de aceitação. NÃO é código de produto (regra: código zero até OK explícito do dia 18). Documento completo: docs/PRE_ARRANQUE_A1_A8.md.
#Achado → Spec entregueDecisãoO que ficou fechadoEstado
A1Effective dating bi-temporal em M0/M1I61Schema PG16 valid_from/valid_to + tx_from/tx_to, regras de imutabilidade (nunca UPDATE destrutivo, reason_code obrigatório), query as-of, API surface, 4 critérios de aceitação (retro-pay, promoção futura, reconstrução audit, p95 <5ms c/ 100k×20 versões)SPEC FECHADA
A2svc-tenant Control Plane (:3063, M6)I62Schema tenantctl (tenant/module_flag/lifecycle_event), 5 endpoints, middleware entitlements no gateway (cache 60s, 402/403), eventos RabbitMQ; provisionar tenant <60sSPEC FECHADA
A3SIEM — eventos ECS + Wazuh + export CEFI63Formato ECS 8.11 obrigatório, catálogo mínimo (auth/iam/data_access/config/audit_integrity), exchange goro.security, retenção WORM 24 meses, lint de contrato no CI, regra ≥5 login-fail/5minSPEC FECHADA
A4Segmentação — 3 ediçõesI64Matriz Essential/Professional/Enterprise por módulo+capacidade (limites, SLA, API rate); regra: zero if edition==X no código — tudo via entitlements (A2)SPEC FECHADA
A5Motor de regras payroll/assiduidadevia I61Regras = dados versionados c/ vigência (liga a A1); DSL JSON declarativa restrita (bracket_tax, percentage, conditional, formula whitelisted); maker-checker; simulação obrigatória c/ diff; IRT/INSS AO 2026 100% na DSLSPEC FECHADA
A6Gaps vs gigantes — backlog faseadoI65F1 (GA 20/03/2027): tudo absorvido por A1/A3/A5/A7/A8 + PWA · F2 (T2/T3 2027): comp planning, succession, LMS SCORM, workforce planning, benefits, ERP nativoSPEC FECHADA
A7SSO federado OIDC/SAML + SCIM 2.0via I63identity.idp_connection por tenant, OIDC PKCE (Prof+), SAML SP-init (Ent), SCIM 2.0 server completo, deprovisioning ≤60s, break-glass auditado (SIEM sev. 8)SPEC FECHADA
A8WCAG 2.2 AA + i18n como gates de CIvia I64Gate axe-core bloqueante (contraste nos 3 modos light/dusk/dark), teclado, target size 2.5.8; i18n pt-AO base, ICU MessageFormat, ESLint no-literal-string, Intl.* obrigatórioSPEC FECHADA

6 · Veredicto — está ok para entrar na fase de arranque?

🏁 GO CONDICIONAL para arranque a 22/09.

Do lado técnico/specs: OK. Com I60-I65 ratificadas e A1-A8 fechados, os buracos estruturais desta revisão estão especificados ao nível certo — prontos a codificar. Não há mais melhorias bloqueantes desta fase; o que resta são decisões do Hélio, não trabalho de spec.

Condições para o GO ser efectivo:
  1. Dia 18: tom da UI (6 opções) + KPI B vs C (I56) + OK explícito para código de produto. Sem isto, 22/09 não arranca.
  2. Password goro_admin rodada até domingo 21/09 (compromisso registado; 22/09 sem rotação = alerta vermelho).
Pendentes NÃO-bloqueantes na mesa (rev. #40): I66 âmbito svc-insight · I67 governança BPM · I68 Exterminador (aguarda cenário A/B/C do Hélio) · I69 qa-ai-agent (spec entregue #38, aguarda ratificação) . FECHADO #41: P6 ratificada — PROD híbrido K3s edge + Azure Arc (sem AKS obrigatório). Agendado pós-OK dia 18: emenda formal do A1 ao M0_SPEC.md. FECHADO #40: spec do Go Edge Agent (docs/EDGE_AGENT_SPEC.md) — condição da I60 «antes da F2» cumprida com antecedência.

Fontes: docs/DEEP_REVIEW_ENTERPRISE_V1.md (input #30) + docs/PRE_ARRANQUE_A1_A8.md (inputs #36/#37) · 17/09/2026 · GORO PMP Enterprise