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>
84 lines
4.2 KiB
Markdown
84 lines
4.2 KiB
Markdown
# 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 0001–0012.
|
||
- [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 2–7 existirem parcialmente) → 9 (paralelizável a partir da Fase 1, isolada) → 10.
|