Bootstrap EDEN: Fase 0 (arquitetura) e Fase 1 (monorepo + infra)

Fase 0 — descoberta e arquitetura:
- Inventário do projeto, glossário de domínio, arquitetura com bounded
  contexts e topologia de containers, threat model inicial.
- 12 ADRs cobrindo modular monolith, topologia de containers (Postgres
  isolado + eden-core/parceiros/assinante em containers e portas
  distintos), auth/sessões, modelo de permissões, criptografia/segredos,
  contrato first-class, stock ledger, separação billing/finance/fiscal,
  outbox transacional, adapters SaperX e Focus NFe, e identidade
  compartilhada entre as 3 apps.
- 14 subagentes e 7 skills especializados por domínio em .claude/.
- Hooks de segurança (PreToolUse/PostToolUse/Stop) testados via pipe.

Fase 1 — plataforma (em andamento):
- Monorepo pnpm workspaces + Turborepo: apps/{api,worker,core-web,
  reseller-web,subscriber-web} + 9 packages compartilhados.
- apps/api: NestJS mínimo com /health/live e /health/ready (checando
  Postgres real via @eden/database).
- 3 frontends Vite + React + TypeScript + Tailwind, com o favicon
  oficial do EDEN.
- packages/database: migration baseline (node-pg-migrate) criando
  roles/role_permissions/applications/users/user_applications/sessions/
  audit_log — audit log append-only com hash-chain, testado ao vivo
  (UPDATE/DELETE bloqueados pelo trigger).
- compose.yaml implementando a topologia da ADR-0002, validada de ponta
  a ponta: os 6 containers sobem e ficam saudáveis com um único
  `docker compose up`.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 08:01:14 -03:00
commit 44510bd019
149 changed files with 13006 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
# EDEN — Plano de Implementação por Fase
Backlog macro conforme Master Prompt §18. Cada fase só inicia com o gate da fase anterior verde (build/typecheck/lint/testes críticos + doc/ADR necessária atualizada — Definition of Done, Master Prompt §20).
## Fase 0 — Descoberta e arquitetura (CONCLUÍDA — ver docs/progress.md)
- [x] Ler `eden.md` integralmente (4597 linhas, 7 módulos).
- [x] Inventariar projeto/tema/assets (`docs/project-inventory.md`).
- [x] `docs/glossary.md`.
- [x] `docs/architecture.md` (bounded contexts + topologia de containers).
- [x] `docs/security/threat-model.md`.
- [x] ADRs 00010012.
- [x] `.claude/agents/` (14 agentes).
- [x] `.claude/skills/` (7 skills mínimas).
- [x] Hooks (`PreToolUse`/`PostToolUse`/`Stop`), testados via pipe.
- [x] `docs/implementation-plan.md` (este arquivo).
- [x] Revisão cruzada final (self-review contra critérios eden-architect + eden-security + eden-database) — ver `docs/progress.md`.
**Gate de saída**: VERDE. Fase 1 pode começar quando autorizada.
## Fase 1 — Plataforma
- Monorepo (pnpm workspaces + Turborepo), `git init`.
- Docker: provisionar Docker/Node LTS/pnpm no ambiente; `compose.yaml` com topologia da ADR-0002 (Postgres separado + eden-core/parceiros/assinante em containers/portas distintas).
- Postgres 18 + migrations versionadas (`packages/database`).
- Config/env (`.env.example` completo — DB, JWT/session, SMTP, S3, chaves de criptografia).
- Logging estruturado + correlation id.
- Auth (ADR-0003), Users, Roles/Permissions/Scopes (ADR-0004).
- Companies/Legal Entities (Organization).
- S3 adapter, SMTP adapter.
- Audit log append-only (hash-chain reforçado por trigger).
- API/OpenAPI 3.1 base (`/api/v1`).
- Design System inicial (`packages/ui`) a partir do inventário do tema DreamsERP.
- Seed: entidade Handix + superadmin via env (`EDEN_SUPERADMIN_EMAIL`/`PASSWORD`).
## Fase 2 — Comercial
- CRM (leads, oportunidades, pipeline).
- Produtos/grupos/subgrupos/marcas (evoluindo `products` do legado).
- Pricing tiers (faixas 0/12/24/36/48) + fidelidade reduzida com aprovação (ADR de negócio herdada do legado, seção 6.4 do Master Prompt).
- Ofertas + approval workflow genérico.
- Customer 360 (clientes PF/PJ, cadastro público com token, sócios/QSA).
- Revendas (cadastro/aprovação + operacional).
## Fase 3 — Contratos/documentos
- Contracts first-class (ADR-0006).
- Templates de documento (Tiptap, versionamento, publicação) + PDF server-side (Playwright/Chromium, sem navegação de rede).
- Assinatura eletrônica (envelope, OTP, hash-chain, certificado, verificação pública) — portar fielmente do legado (Master Prompt §6.7).
- Portal de cadastro público (cliente/revenda).
## Fase 4 — Estoque/ativos
- Warehouse, ledger de movimentos (ADR-0007).
- Serial/patrimônio/MAC, reserva/instalação/comodato/RMA.
## Fase 5 — Billing/financeiro
- Subscription/billing engine (ADR-0008).
- Invoices, AR/AP.
- Boletos (provider abstraction), dunning, conciliação.
- Dashboards financeiros (MRR, ARR, churn, aging).
## Fase 6 — Fiscal/telecom
- Catálogos fiscais + `product_fiscal_profiles` (portados do legado).
- Adapter Focus NFCom/NFS-e (ADR-0011).
- Adapter SaperX (ADR-0010) — circuitos, DIDs, consumo, conciliação.
## Fase 7 — Suporte
- Service desk, SLA, OS, integração com portais.
## Fase 8 — Portais
- EDEN Parceiros completo (isolamento cross-reseller testado).
- EDEN Assinante completo (isolamento cross-customer testado).
## Fase 9 — RH/Ponto + backoffice legado restante
- Control iD + AFD (Portaria 671) — imutabilidade do dado bruto (Master Prompt §6.14).
- Banco de horas, fechamento de período.
- Agenda (salas/carros), backup (streaming S3), dashboards restantes.
## Fase 10 — Hardening
- E2E completos (15 fluxos mínimos do Master Prompt §15.2 + casos invariantes §15.3).
- Performance, security review, access-control review.
- Migration rehearsal, backup/restore drill.
- Runbooks (`docs/runbooks/`).
- Release readiness contra os critérios de aceitação global (Master Prompt §21).
## Dependências entre fases (resumo)
Fase 1 → 2 → 3 → 4 → 5 → 6 (fiscal depende de billing) → 7 → 8 (depende de 27 existirem parcialmente) → 9 (paralelizável a partir da Fase 1, isolada) → 10.