Pular para o conteúdo principal
Modular Development Style · Roadmap de Implementacao

ModularReports

Companheiro do DRS

Publicado em 24 de julho de 2026 Modulareasy · modulareasy.com/mds
Progresso da implementação ...
Planejamento 0%
Construção 0%
Testes 0%
Progresso geral: 0%
Clique no quadradinho para marcar como feito. O progresso é salvo automaticamente e compartilhado.

ModularReports: Roadmap de Implementação

CampoValor
ProdutoModularReports
DocumentoRoadmap de Implementação (companheiro do DRS)
Data de revisão2026-07-24

Documentos da família

Este é o roteiro de construção do sistema, em ordem, com verificação primeiro: para cada tarefa, o observável que prova que ela está pronta é declarado antes do como construir. A ordem vem das ondas de entrega do DRS (bloco 9, J.1 e J.2) e de suas dependências. Cada tarefa cobre um ou mais requisitos funcionais (RF) do DRS.

Como usar

Cada tarefa é um cartão com um código curto e estável (ex.: F1-03), o RF que cobre, o que implementar, como verificar (o teste, declarado primeiro) e o critério de aceite H1. Marque a tarefa como feita quando o teste passar. As fases são sequenciais; dentro de uma fase, siga a ordem dos cartões. Ao fim de cada fase há uma Definição de Pronto: a fase só fecha quando todos os seus critérios estão verdes.

Mapa de cobertura

FaseOnda do DRSMódulo do DRSRFs cobertos
PlanejamentoPreparaçãoElicitação, especificação, companheiros, validação, aprovaçãoPré-concluída na aprovação do DRS
M, Mockup NavegávelPreparaçãoReferência visual do sistema completo (bloco 6, F.3)Concluída: mockup de 16 telas publicado e aprovado
F1, Protótipo do pipeline IAFatia 1reports-compose (CMP), reports-boundary (BND), reports-ingest (ING)RF-BND-001, RF-CMP-005/006/008 a 016, RF-ING-003, RNF-SEG-002/003/004
F1b, Schema de dadosFatia 1bModelo de dados (E.1, E.2)Cria as tabelas do schema reports (as 7 do E.2 mais report_goal), antes das fatias que as consomem; RN-009 (trigger report.company_id = company_id do Account)
F2, Contrato de bloco e snapshotFatia 2reports-render (REN), reports-publish (PUB), reports-ingest (ING)RF-REN-001/002/003, RF-PUB-001, RF-ING-005, RN-001 a RN-006
F3, Package renderizadorFatia 3reports-render (REN)RF-REN-004/005/007, RNF-MANUT-001, RNF-A11Y-001
F4, Ingestão, quota e storageFatia 4reports-ingest (ING), reports-boundary (BND)RF-ING-001/002/003/004/006, RF-BND-002, RNF-LGPD-001
F5, Leitor públicoFatia 5reports-render (REN)RF-REN-006/010, RNF-SEG-001 (caminho do leitor: role reports_reader, GRANT das 3 tabelas e policy PERMISSIVE publicado+não-expirado), RNF-SEG-005, RNF-PERF-001, RNF-DISP-001, RN-011
F6, Role, entitlement e RBAC no HubFatia 6reports-admin (ADM)RF-ADM-001/002/012, RNF-SEG-001 (caminho do operador: RESTRICTIVE por company_id), RN-007 (log append-only)
F7, Chrome e shell do operadorFatia 7reports-admin (ADM)RF-ADM-003/004/014, RNF-MANUT-002
F8, Wizard e compositorFatia 8reports-compose (CMP), reports-curate (CUR)RF-CMP-001 a 004, RF-CUR-001 a 007, RNF-PERF-002
F9, Publicação e linkFatia 9reports-publish (PUB), reports-compose (CMP), reports-comment (COM)RF-CMP-007, RF-PUB-002 a 010, RF-COM-004, RN-010 (imutabilidade do snapshot imposta pela função SECURITY DEFINER de publish)
F10, TemplatesFatia 10reports-admin (ADM)RF-ADM-009/010
F11, Importação de metasFatia 11reports-ingest (ING), reports-boundary (BND)RF-BND-003, RF-ING-007, RN-008 (snapshot congela as metas vigentes no publish)
F12, ComentáriosFatia 12reports-comment (COM)RF-COM-001 a 006
F13, AnalyticsFatia 13reports-analytics (ANL), reports-admin (ADM)RF-ANL-001 a 006, RF-ADM-015, RNF-LGPD-003
F14, Domínio custom e white-labelFatia 14reports-render (REN)RNF-SEG-006
F15, PDF condicionalFatia 15reports-render (REN)RF-REN-008/009
F16, Painel do clienteFatia 16reports-admin (ADM), reports-render (REN)RF-ADM-005/006/007/008/011/013, RF-REN-011 (portal logado do cliente)

Estado global

O ModularReports está com o DRS aprovado e o mockup navegável (16 telas) publicado e aprovado: Planejamento 100%, Fase M 100%, Construção 0 de 101 cartões (16 fatias) = 0%, Testes 0 de 111 itens = 0% (peso 40/40/20 do progresso geral). O projeto nasce em 40%. Nenhuma fatia de construção foi iniciada. As decisões técnicas de construção foram resolvidas no DRS (bloco 9, J.4) e a descoberta de integração da plataforma-mãe já fixou os internos que o Reports reusa (Fase 0, {P0-29}). Quatro decisões de produto seguem em aberto no Questionário de Elicitação ({Q1} a {Q4}, ver J.5 do DRS) e não travam o início da Fatia 1.


Planejamento

Concluída na aprovação do DRS. Vale 40% do projeto (seção Planejamento). Estas etapas cobrem tudo que aconteceu antes de começar a construir o sistema.

0.1 Entendimento e Elicitação

0.2 Especificação (o DRS)

0.3 Documentos companheiros

0.4 Validação e Qualidade

0.5 Publicação e Aprovação


Fase M, Mockup Navegável (pós-Planejamento, gate de aprovação)

Dependência: DRS aprovado (Planejamento fechado). A construção (F1 em diante) não começa com esta fase aberta. Concluída: mockup completo publicado em modulareasy.com/mockups/modulareasy/modularreports e aprovado.
Definição de Pronto M: mockup completo no ar, aprovado, e vinculado no DRS como guia do desenvolvimento. CUMPRIDA.

Fase F1, Protótipo do pipeline IA (Fatia 1, gates HARD de I.1)

Dependência: nenhuma além do mockup aprovado (Fase M). Fatia cravada como risco número 1 do produto (I.1): entrega o package e as interfaces identity, storage e render, o sandbox de parse isolado e a composição in-process, agnóstico à decisão de módulo, mais os gates de qualidade e segurança que reprovam o protótipo se falharem.
Definição de Pronto F1: os 4 gates HARD de I.1 verdes (zero alucinação numérica, tríade de segurança, isolamento cross-tenant, qualidade da narrativa pela rubrica 5D); package com as interfaces identity, storage e render, o sandbox de parse isolado e a composição in-process prontos para as fatias seguintes.

Fase F1b, Schema de dados (Fatia 1b)

Dependência: nenhuma (a migration não depende do chrome do Hub). Cria as tabelas do schema reports ANTES das fatias que as consomem: F2 mexe em snapshot e report_draft, F4 grava artifact, F5 lê snapshot. A migration de RLS, entitlement, RBAC e auditoria (que dependem do catálogo do Hub) fica em F6.
Definição de Pronto F1b: as tabelas de dados do schema reports existem e as fatias F2 a F5 têm onde ler e escrever, sem esperar o chrome do Hub (F6/F7).

Fase F2, Contrato de bloco e snapshot (Fatia 2)

Dependência: {F1b-01} (tabelas do schema) e {F1-15} (a composição in-process, que produz o formato de blocos e pontos de dado). Esta fatia entrega o coração de dados que serve IA, curadoria, leitor e analytics.
Definição de Pronto F2: contrato de bloco v3 estável, snapshot imutável provado, e as 6 regras de negócio de dados verdes. Serve de base para F3 (renderizador), F8 (compositor) e F13 (analytics).

Fase F3, Package renderizador (Fatia 3)

Dependência: {F2-01} (contrato de bloco). Package de funções puras que serve leitor, preview e PDF a partir do mesmo contrato.
Definição de Pronto F3: os três consumidores (leitor, preview, PDF) renderizam do mesmo package, sanitizados, com tokens por cliente e contraste AA.

Fase F4, Ingestão, quota e storage (Fatia 4)

Dependência: {F1-02} (sandbox de parse isolado), {F1-16} (interface de storage), {F1b-01} (tabela artifact). Entrada de dados do sistema.
Definição de Pronto F4: upload, quota, parse isolado e TTL funcionando ponta a ponta com um conjunto de artefatos real; nenhuma tela de acervo de artefatos.

Fase F5, Leitor público (Fatia 5)

Dependência: {F2-04} (snapshot imutável), {F3-02} (package renderizador). Serviço isolado somente leitura que serve o snapshot ao cliente final.
Definição de Pronto F5: leitor público no ar, isolado, rápido, com estados brandados e deploy próprio.

Fase F6, Role, entitlement e RBAC no Hub (Fatia 6)

Dependência: {F1b-01} (tabelas de dados já criadas). Provisiona o registro do módulo, o entitlement, o RBAC, a RLS e a auditoria que as fatias de chrome (F7, F8) e publicação (F9) vão usar. As tabelas de dados nasceram em F1b; aqui entram as camadas que dependem do catálogo do Hub.
Definição de Pronto F6: schema provisionado, entitlement desligado por default, RBAC sem papel novo, RLS provado com dois tenants, auditoria por ponto único.

Fase F7, Chrome e shell do operador (Fatia 7)

Dependência: {F6-02} (entitlement), {F6-03} (RBAC). Grupo de rotas isolado que o operador usa.
Definição de Pronto F7: chrome isolado no ar, lazy, com self-service de agência e identidade da agência aplicada.

Fase F8, Wizard e compositor (Fatia 8)

Dependência: {F1} (pipeline IA), {F2} (contrato de bloco), {F3} (package renderizador, o preview do compositor usa as mesmas funções puras), {F6}/{F7} (chrome, RBAC). Onde o operador compõe e cura.
Definição de Pronto F8: wizard completo dos 4 passos e compositor com curadoria, regenerar, criativos, whitelist e apresentar, todos com proveniência preservada.

Dependência: {F2-04} (snapshot), {F8} (compositor). Onde o link nasce.
Definição de Pronto F9: publicar, revogar, republicar e o modal completo (senha, expiração, QR, card) funcionando ponta a ponta, com a republicação setando orphaned nos comentários dos blocos removidos; este é o marco que o critério de adoção (A.7) mede.

Fase F10, Templates (Fatia 10)

Dependência: {F1b-01} (tabela template), {F8} (wizard usa o template no passo 1).
Definição de Pronto F10: biblioteca de templates com CRUD completo e "salvar como template" funcionando.

Fase F11, Importação de metas (Fatia 11)

Dependência: {F2-04} (snapshot copia metas), {F9} (publish). A Fatia 9 já nasce com o recorte mínimo de leitura de metas para o bloco planejado versus realizado; esta fatia é a importação estruturada completa (DRS J.4).
Definição de Pronto F11: importar metas e ver a comparação planejado vs realizado num relatório publicado, sem qualquer tracking contínuo criado.

Fase F12, Comentários (Fatia 12)

Dependência: {F5} (leitor público), {F2-01} (id estável do bloco), {F9-11} (quem seta orphaned na republicação é o fluxo de F9). Comentário logado ancorado.
Definição de Pronto F12: comentário logado, ancorado, sobrevivente a republicação e com resolução notificando o autor, funcionando ponta a ponta.

Fase F13, Analytics (Fatia 13)

Dependência: {F5} (leitor público emite os acessos), {F9} (link publicado). Medição de audiência.
Definição de Pronto F13: painel de analytics por agência com visualizações, último acesso, referrer, exclusão de sessão interna e duração de produção, isolado por tenant, alimentado por um ingestor de eventos separado do leitor.

Fase F14, Domínio custom e white-label (Fatia 14)

Dependência: {F7} (chrome), {F9} (link). Última camada de branding por agência.
Definição de Pronto F14: domínio custom por agência funcionando com validação de posse obrigatória, entidade agency_domain e tela de gestão; a tela nova entra numa iteração do mockup.

Fase F15, PDF condicional (Fatia 15)

Dependência: {F3-02} (package renderizador). Reuso do gerador da plataforma-mãe.
Definição de Pronto F15: PDF gerado pelo mesmo package do leitor, condicional à disponibilidade do gerador, sem fetch de rede na geração.

Fase F16, Painel do cliente (Fatia 16, última fatia)

Dependência: {F1b-01} (as tabelas de dados já nascem no schema do dia 1, incluindo o modelo de identidade do cliente). Fecha o ciclo de administração do cliente final.
Definição de Pronto F16: painel do cliente completo (identidade, criação, ativação de acesso, offboarding LGPD, pasta por ano) e o portal logado de leitura do cliente final. Com F16 fechado, as 16 fatias do bloco 9 do DRS estão entregues.

Encerramento

Com as 16 fatias fechadas, a seção Construção chega a 100% e resta a seção Testes (Plano de Testes, Alfa e Beta) para o projeto chegar a 100% geral. Os ciclos reais de adoção (J.3 do DRS) começam assim que a Fatia 9 (publicação) estiver no ar, em paralelo às fatias seguintes.

Documento ModularReports: Roadmap de Implementação
Metodologia MDS · Modular Development Style · 15 blocos / 86 campos
Publicado por Modulareasy
Site modulareasy.com/metodologias/mds