Pular para o conteúdo principal

MDS · Modular Development Style

Template Completo

Os 15 blocos macro e 75 campos canônicos. Cada campo tem categoria (BASE / PLUGIN / STACK) e gatilho explícito.

TEMPLATE COMPLETO — Modular Development Style (MDS)

Os 15 blocos macro (0 + A-N) e 75 campos canônicos. Cada campo tem categoria (🟦 BASE / 🟨 PLUGIN / 🟩 STACK). Campos PLUGIN têm gatilho binário S/N explícito.


🟦 = BLOCO-BASE (obrigatório universal)

🟨 = BLOCO-PLUGIN (obrigatório SE gatilho dispara)

🟩 = BLOCO-STACK (incremental, projetos grandes/críticos)


0. ELICITAÇÃO E DISCOVERY (pré-spec — adicionado 2026-05-27)

Bloco que PRECEDE toda especificação. Garante que o problema, o domínio e as expectativas do stakeholder foram entendidos ANTES de descrever a solução. É o “conversar muito” formalizado.

#CampoTipoGatilho
0.1Fonte do problema (quem pediu, por que agora, qual a dor)🟦 BASE
0.2Técnicas de elicitação aplicadas (entrevista, walkthrough empírico, análise de sistema existente, planilhas, observação)🟦 BASE
0.3Processos do mundo real mapeados (como funciona hoje SEM o sistema)🟨 PLUGINSistema substitui processo manual ou legado?
0.4Artefatos coletados (planilhas, prints, vídeos, docs, links, gravações)🟦 BASE
0.5Dúvidas pendentes e bloqueadores (o que ainda não sabemos)🟦 BASE
0.6Critério de “elicitação suficiente” (quando parar de perguntar e começar a especificar)🟨 PLUGINProjeto tem >10 stakeholders OU domínio desconhecido?

Regra: NÃO prosseguir para Bloco A com dúvidas BLOQUEANTES pendentes (campo 0.5). Resolver primeiro.


A. IDENTIDADE E CONTEXTO

#CampoTipoGatilho
A1Nome do sistema🟦 BASE
A2Problema que resolve (1-3 frases)🟦 BASE
A3Domínio de operação (em qual mercado/área)🟦 BASE
A4Stakeholders / Sponsor (quem paga, quem decide)🟦 BASE
A5Glossário / Linguagem ubíqua🟦 BASE
A6Escopo + Não-escopo (lista explícita do que NÃO está incluído)🟦 BASE
A7Premissas e restrições externas (legais, técnicas, comerciais)🟦 BASE

B. ATORES E JORNADAS

#CampoTipoGatilho
B1Catálogo de atores (humanos + sistemas externos)🟦 BASE
B2Sub-papéis e hierarquia de atores🟨 PLUGINHá ≥2 perfis humanos com permissões distintas?
B3Jornadas principais (mínimo 1, listar todas)🟦 BASE
B4Jornadas secundárias / edge cases🟩 STACK
B5Matriz Ator × Capability🟩 STACK

C. REQUISITOS FUNCIONAIS

#CampoTipoGatilho
C1Catálogo de RFs (ID + descrição + prioridade)🟦 BASE
C2Regras de negócio explícitas (cálculos, fórmulas, políticas)🟨 PLUGINHá cálculo/lógica não-trivial OU regra mutável por admin?
C3Estados e transições (state machines)🟨 PLUGINHá entidade com >2 estados E transições não-livres?
C4Eventos de domínio (catálogo + payload)🟩 STACK
C5Cross-references entre RFs (RF X depende de RF Y)🟩 STACK

D. REQUISITOS NÃO-FUNCIONAIS

#CampoTipoGatilho
D1Performance esperada (latência, throughput, budget de página)🟦 BASE
D2Segurança e autorização (modelo de auth + permissão)🟦 BASE
D3Disponibilidade / SLA🟨 PLUGINHá cliente externo pagante OU dependência crítica?
D4Escalabilidade prevista🟨 PLUGINHá previsão concreta de crescimento?
D5Auditabilidade e logs (quando + quem + o quê + onde)🟦 BASE Modulareasy(elevado a BASE — CANON §9 ModularHub: “logs de tudo + rollback”)
D6Compliance regulatório (LGPD/GDPR/HIPAA/PCI/SOC2)🟨 PLUGINAplica regulação específica?
D7Acessibilidade (WCAG AA mínimo)🟨 PLUGINHá UI pública OU exigência contratual?
D8Internacionalização (i18n + l10n + multi-moeda)🟨 PLUGIN≥2 idiomas OU ≥2 moedas?
D9Observabilidade (metrics + traces + logs estruturados)🟩 STACK
D10Cadastro progressivo / opt-in incremental (só identificador obrigatório, resto NULL)🟦 BASE Modulareasy(Princípio 6 Manifesto — CANON §11 ModularHub)

E. MODELO DE DOMÍNIO

#CampoTipoGatilho
E1Entidades principais + relações🟨 PLUGINHá persistência (DB)?
E2Diagrama ER conceitual🟨 PLUGINHá >5 entidades?
E3Bounded contexts (DDD)🟩 STACK
E4Aggregates + invariantes (DDD)🟩 STACK
E5Política de versionamento de schema (migration strategy)🟩 STACK

F. INTERFACES

#CampoTipoGatilho
F1Interfaces de usuário (telas, fluxos, formulários)🟨 PLUGINHá humano olhando tela do sistema?
F2APIs externas consumidas (com versão + auth method)🟨 PLUGINHá integração com serviço externo?
F3APIs / webhooks expostos (contrato versionado)🟨 PLUGINOutros sistemas consomem este?
F4Interfaces inter-módulo (matriz N×N + catálogo) — pattern POO🟨 PLUGINHá ≥2 módulos no sistema?
F5Catálogo de eventos pub/sub (com versionamento)🟩 STACK
F6Política de versionamento + deprecation (default 30d Modulareasy)🟩 STACK

G. ARQUITETURA E STACK

#CampoTipoGatilho
G1Stack tecnológica (linguagem + framework + DB + hosting + runtime)🟦 BASE
G2Decisões arquiteturais (ADRs)🟨 PLUGINHá >1 decisão não-trivial com trade-off?
G3Topologia (single/multi-tenant, sharded, regiões)🟨 PLUGINHá topologia não-padrão (não-monolito-single-tenant)?
G4Diagrama de componentes🟨 PLUGINHá >3 componentes lógicos?
G5Diagrama de deployment🟩 STACK
G6Padrões de código e convenções🟩 STACK
G7Estratégia de migração / backwards compatibility🟩 STACK

H. SPECS POR REQUISITO

#CampoTipoGatilho
H1Spec mínima por RF (critérios de aceitação observáveis)🟦 BASE
H2Spec estruturada 7 blocos YAML (skill agent-spec-template)🟨 PLUGINRF é complexo OU agent autônomo vai implementar?
H3Specs cross-RF (orchestration / saga / workflow)🟩 STACK

I. VALIDAÇÃO MULTI-MODAL

#CampoTipoGatilho
I1Estratégia de testes declarada (qual modo aplica onde)🟦 BASE
I2Critérios de aceitação por RF🟦 BASE
I3Testes unitários (TDD/test-after)🟨 PLUGINHá lógica pura (cálculo/transformação/parser/regra)?
I4Testes de integração🟨 PLUGINHá sistema externo OU DB real consultado?
I5Smoke visual obrigatório (ui-smoke-test skill)🟨 PLUGINHá UI? (memory feedback_smoke_visual_obrigatorio_olhos_humanos)
I6QA exploratório manual🟨 PLUGINHá fluxo crítico (dinheiro/dados sensíveis/SLA)?
I7Performance tests (load + stress)🟩 STACK
I8Security audit (pentest + dependency scan)🟩 STACK
I9Accessibility audit (WCAG)🟩 STACK

J. ENTREGA E EVOLUÇÃO

#CampoTipoGatilho
J1Roadmap / Pacotes de entrega🟨 PLUGINHá sequenciamento explícito de releases?
J2Dependências entre RFs (DAG de implementação)🟨 PLUGINHá grafo não-trivial (>10 RFs com ordem)?
J3Riscos e mitigations🟨 PLUGINProjeto é não-trivial (>1 sprint)?
J4Plano de rollback🟩 STACK
J5Plano de descomissionamento de legacy🟩 STACK

K. OPERAÇÃO

#CampoTipoGatilho
K1Runbook / SOPs operacionais🟨 PLUGINSistema vai pra produção?
K2Monitoramento e alertas🟨 PLUGINSistema vai pra produção?
K3Política de backup + DR🟨 PLUGINHá dados cuja perda é dor real?
K4Plano de incidente🟩 STACK
K5Capacity planning🟩 STACK

L. ENTITLEMENT E CONFIGURABILIDADE (Modulareasy-opinionated)

Bloco nascido do Princípio 7 do Manifesto (“tudo é entitlement, nada é hardcoded”) e do CANON §6 ModularHub (“Super Admin liga/desliga qualquer módulo, qualquer hora, qualquer cliente”).

#CampoTipoGatilho
L1Política de entitlement (o que admin liga/desliga em runtime via UI)🟦 BASE Modulareasy(Princípio 7 — admin-editability-first)
L2Configuração runtime vs build-time (catálogo do que é cada)🟨 PLUGINHá ≥1 config que pode mudar sem deploy?
L3White-label / customização per-tenant (logo, cor, domínio, email, termos)🟨 PLUGINProduto é multi-tenant B2B?
L4Marketplace de extensões (modelo Salesforce ISV)🟩 STACK

M. AUTOMAÇÃO E IA-GEN (Modulareasy-opinionated)

Bloco nascido do Princípio 5 do Manifesto (“sistema trabalha pra você”) e do CANON §29 ModularHub. Diferenciador competitivo central.

#CampoTipoGatilho
M1Mapa de automações cross-módulo (evento X dispara ação Y)🟦 BASE Modulareasy(Princípio 5)
M2IA-gen — pontos de injeção de “Gerar com IA” (botões first-class)🟨 PLUGINHá ≥1 tela onde IA agrega valor de geração estruturada?
M3Cross-sync entre entidades (revalidation_flags pattern)🟨 PLUGINHá ≥1 entidade que aparece em ≥2 lugares?
M4Catálogo de prompts IA (templates versionados)🟩 STACK

N. FEEDBACK LOOP PÓS-DEPLOY (adicionado 2026-05-27)

Bloco que FECHA o ciclo MDS. Sem ele, o fluxo é linear: spec → build → deploy → silêncio. Com ele, produção retroalimenta a especificação: spec → build → deploy → observe → learn → update spec. Transforma o MDS de documento em ciclo vivo.

#CampoTipoGatilho
N1Métricas de uso monitoradas (quais features, quais atores, frequência, abandono)🟨 PLUGINSistema está em produção com usuários reais?
N2Canal de feedback (como usuário reporta bug, pede feature, sugere melhoria)🟨 PLUGINHá usuários externos além do time dev?
N3Processo de retroalimentação spec (como insight de prod atualiza DRS/PRD — quem decide, como documenta, qual fluxo)🟨 PLUGINProjeto tem DRS/PRD formal?
N4Health checks automáticos (uptime, error rate, latência — thresholds que disparam revisão de spec)🟨 PLUGINSistema tem SLA?
N5Critérios de deprecação/remoção de RF (quando matar feature não usada — métricas + decisão)🟩 STACK
N6Ciclo de revisão periódica (trimestral/semestral — cadência formal de re-visitar spec vs realidade prod)🟩 STACK
N7Post-mortem template (quando incidente grave, como documentar e retroalimentar blocos D, I, K)🟩 STACK

Princípio 5 MDS aplicado: feature que ninguém usa = feature que não trabalha pra ninguém = defeito de produto. Bloco N força observação e correção.


Resumo numérico final

CategoriaTotal%
🟦 BLOCO-BASE (universal Modulareasy)22 campos29%
🟨 BLOCO-PLUGIN (condicional com gatilho)35 campos47%
🟩 BLOCO-STACK (incremental projetos grandes)18 campos24%
Total75 campos100%

Sobre o Modulareasy-opinionated: os campos D5, D10, L1, M1 — marcados como BASE Modulareasy — refletem convicções cravadas Wladimir. Implementação MDS por terceiros pode tratá-los como PLUGIN sem violar a metodologia. Instância Modulareasy = sempre BASE.


Como ler uma instância

Toda instância MDS de um projeto renderiza este template com:

  • 🟦 preenchimento obrigatório com conteúdo real
  • 🟨 gatilho respondido S/N explicitamente + ou preenchimento ou N/A — [motivo em 1 linha]
  • 🟩 omissão livre OU preenchimento se aplicável

Exemplos de instanciação em Exemplos de Instância.