sdd-master
v1.0.3
Published
SDD Master — specification-driven development framework for AI-assisted software projects
Maintainers
Readme
SDD Master
O que é o SDD Master?
O SDD Master é um framework que guia a criação de software passo a passo.
Ele impede que uma IA ou desenvolvedor saia codando sem antes definir:
- o que será feito;
- por que será feito;
- quais testes validam;
- quais documentos precisam ser atualizados;
- quais riscos existem;
- o que pode ou não ir para o GitHub.
Em linguagem simples: o SDD Master coloca trilhos, freios e evidências no processo de desenvolvimento assistido por IA.
Como funciona tecnicamente?
O SDD Master combina:
- CLI npm;
- estrutura
.sdd-master/; - documentação pública em
docs/; - templates oficiais;
- comandos de diagnóstico;
- arquivos de instrução para agentes;
- validações de segurança/Git;
- governança por fase;
- TDD obrigatório;
- auditoria e rastreabilidade.
Instalação via npm
npm install -g sdd-master
sdd master helpA versão preparada neste bloco é 1.0.3. Ela é estável e deve usar a dist-tag latest quando publicada.
[email protected]O registry mantém prototype, alpha, beta e rc para histórico. A dist-tag latest deve apontar para 1.0.3 após a publicação autorizada.
Estado atual
A versão pública atual recomendada é:
npm install -g sdd-masterVersão:
1.0.3Status:
- npm publicado;
- GitHub release publicada;
- release estável;
- dist-tag
latestpublicada.
Banner e crédito
O banner da CLI é próprio do SDD Master e inclui:
SDD MASTER
Spec-Driven Development Framework
Governance • Tests • Security • Multi-AI • Delivery
Idealizado e desenvolvido por Antonio Rafael Souza Cruz de Noronha
AR Software Development
https://www.antoniorafael.com.br/
https://www.arsoftwaredevelopment.com.br/O banner não aparece com --json, CI=1, NO_COLOR=1, SDD_MASTER_NO_BANNER=1, --plain ou --no-banner.
Interface inicial e agentes
Use sdd master init sem flags para abrir a inicializacao interativa com banner, escolha de idioma, seletor de agente/IDE com rolagem por teclado, tipo de script, preset e instalacao opcional de slash commands.
sdd-master
sdd master init
sdd master init --yes --agent=codex --language=pt-BR --install-slash
sdd master init --yes --agent=agy --language=pt-BR --install-slash
sdd master init --yes --agent=codex --language=pt-BR --preset=game --game-type=2d --engine=phaser --target=web
sdd master agents --yes --agent=cursor --install-slash --language=pt-BRAgentes/IDEs suportados incluem codex, claude, cursor, cursor-agent, copilot, gemini, roo, cline, continue, aider, windsurf, generic e a lista ampliada documentada em docs/03-codigo/agents.md.
Os comandos /sdd-* ficam em .agents/slash-commands/ e tambem aparecem como fallback nos arquivos de instrucao do agente. Para Antigravity (agy), eles tambem sao gerados em .agents/skills/sdd-*/SKILL.md, formato usado pela IDE para mostrar comandos no menu /.
Release estável 1.0.0
1.0.0 congela a API pública de comandos como contrato estável, finaliza a documentação de uso e passa latest a apontar para a versão estável.
Instalação:
npm install -g sdd-masterRegras da versão estável:
- usar
latestcomo canal recomendado; beta,alphaeprototypecontinuam disponíveis para histórico;releaseedeploycontinuam guards sem publicação ou deploy real;- plugins e skills continuam sem execução automática;
- a versão é estável.
Prerelease beta
A versão beta publicada é:
0.5.0-betaEla consolida:
- banner próprio da CLI;
- presets oficiais de projeto;
- preset
ecommerce; - API pública de comandos;
- contrato de comandos;
- fluxo E2E beta;
- documentação beta.
A publicação foi feita com:
npm publish --access public --tag betaA instalação recomendada é:
npm install -g sdd-master@betaAs dist-tags alpha e beta continuam disponíveis como histórico de prereleases.
O que mudou em 0.2.0-prototype
Esta versão adiciona o primeiro fluxo SDD funcional:
- discovery;
- requirements;
- spec;
- plan;
- tasks;
- governance;
- quality/audit/docs/blockers;
- implement guard;
- skills/UIUX;
- plugins/extensoes locais;
- update seguro.
Release e deploy guards
O SDD Master possui comandos de preparação para release e deploy.
Eles não publicam e não fazem deploy automaticamente.
sdd master release --yes --version="1.0.0" --channel="stable" --type="local" --dry-run
sdd master deploy --yes --environment="staging" --provider="vercel" --strategy="serverless" --dry-runRegras:
- release não cria tag automaticamente;
- release não publica npm;
- release não publica GitHub Release;
- deploy não acessa servidor;
- deploy não executa scripts remotos;
- ambos registram plano, checklist, riscos e aprovações pendentes.
Implement assistido controlado
O sdd master implement prepara implementação assistida sem alterar código automaticamente.
sdd master implement --yes --prepare --handoff --manifest --test-contract --agent="codex" --allowed-files="src/**,tests/**,docs/**"Ele gera:
- sessão de implementação;
- manifesto de mudanças;
- contrato de testes;
- handoff para agente;
- aprovação humana pendente;
- riscos.
Nesta fase, implement continua sem modificar código do projeto consumidor.
Uso local durante desenvolvimento
npm install
npm run build
node dist/cli/main.js master helpOnboarding guiado
O SDD Master pode guiar os primeiros passos de um projeto.
sdd master init
sdd master init --preset="ecommerce"
sdd master onboard --profile="web" --ai="codex"
sdd master doctorO onboarding gera uma lista de próximos passos dentro de .sdd-master/onboarding/ sem alterar código do projeto consumidor.
Presets oficiais
Presets disponíveis:
webapiclimobiledesktoplibraryecommercegamegeneric
O preset ecommerce inclui atenção inicial a SEO, UI/UX, catálogo, checkout, frete, pagamento, segurança, LGPD, acessibilidade, performance, admin, deploy guard e rollback.
O preset game inclui Game Design Document, gameplay loop, lore/personagens, playtest, arquitetura, engine/target, save/load, performance, guia de desenvolvimento, pipeline de assets e build/export. Ele aceita --game-type, --engine e --target para registrar o contexto inicial sem impor stack.
Comandos atuais
| Comando | Status | O que faz |
|---|---|---|
| sdd master help | Disponível | Mostra ajuda |
| sdd master init | Disponível | Inicializa estrutura SDD Master |
| sdd master onboard | Disponível | Guia os primeiros passos do projeto |
| sdd master doctor | Disponível | Diagnostica instalação |
| sdd master agents | Disponível | Gera instruções multi-IA |
| sdd master git | Disponível | Valida Git e segurança |
| sdd master skills | Disponível | Gerencia skills locais e relatórios |
| sdd master plugins | Disponível | Gerencia plugins locais e supply chain |
| sdd master uiux | Disponível | Cria gates de design e interface |
| sdd master update | Disponível | Atualiza instalação local com backup |
| sdd master discovery | Disponível | Cria discovery inicial |
| sdd master requirements | Disponível | Cria requisitos iniciais |
| sdd master spec | Disponível | Cria especificação inicial |
| sdd master plan | Disponível | Cria plano técnico inicial |
| sdd master tasks | Disponível | Cria tarefas iniciais |
Fluxo visual
flowchart TD
A[Discovery] --> B[Requirements]
B --> C[Architecture]
C --> D[Specification]
D --> E[Plan]
E --> F[Tasks]
F --> G[Tests first]
G --> H[Implementation]
H --> I[Documentation]
I --> J[Quality]
J --> K[Audit]
K --> L[Commit]
L --> M[Delivery]Compatibilidade multi-IA
O SDD Master pode gerar arquivos de instrução para diferentes agentes de codificação:
- Codex:
AGENTS.md - Claude:
CLAUDE.md - Cursor:
.cursor/rules/sdd-master.mdc - Gemini:
GEMINI.md - Copilot:
.github/copilot-instructions.md - Windsurf, Cline, Roo, Aider, Continue e genéricos
Exemplo:
sdd master agents --yes --agents=codex,claude,cursor --language=pt-BREsses arquivos orientam cada IA a ler a constituição, respeitar o estado do projeto, não pular fases, não fazer push sem autorização humana e não expor .env, segredos, tokens ou credenciais.
Segurança
Regras fortes do SDD Master:
- não commitar
.env; - não expor segredo;
- não fazer push sem autorização humana;
- não enviar
.sdd-master/ao remoto do produto; - não ler ou escrever fora da raiz do projeto consumidor;
- bloquear traversal, caminhos absolutos externos e symlinks perigosos;
- testar antes de implementar;
- documentar e auditar antes de avançar.
Use:
sdd master git
sdd master git --pre-commit
sdd master git --pre-push
sdd master doctor --path-safetyO comando verifica arquivos sensíveis, possíveis segredos, .gitignore, risco de envio de .sdd-master/ e status básico do Git. O SDD Master nunca executa push automaticamente.
Estrutura gerada no projeto consumidor
.sdd-master/
constitution.md
project-state.md
plugins/
templates/
audits/
traceability/
approvals/
docs/
01-negocio-requisitos/
02-tecnica-arquitetura/
03-codigo/
.agents/
plugins/
skills/Exemplos de saída
sdd master doctorSDD Master — Doctor
Status geral:
healthy
Próximo passo recomendado:
/sdd-master-discoverysdd master git --pre-pushSDD Master — Git/Security Check
Status geral:
clean
Decisão:
Nenhum bloqueio crítico encontrado.sdd master agents --yes --agents=codex,claude,cursor --language=pt-BRSDD Master — Agentes configurados
Agentes:
codex, claude, cursorTemplates oficiais
O SDD Master instala templates locais em .sdd-master/templates/ para requisitos, produto, arquitetura, código, workflow, governança, segurança, UI/UX, operações e agentes/IA.
Templates são pontos de partida. Documentos reais devem ser criados a partir deles, revisados e aprovados pelo fluxo SDD Master.
Workflow SDD inicial
Comandos iniciais:
sdd master discovery --yes --title="Meu Projeto" --project-type="web" --profiles="WEB" --maturity="M0"
sdd master requirements --yes --title="Requisitos iniciais"
sdd master spec --yes --phase="PHASE-01" --title="Especificação inicial"
sdd master plan --yes --phase="PHASE-01" --title="Plano técnico inicial"
sdd master tasks --yes --phase="PHASE-01" --title="Tarefas iniciais"Esses comandos criam documentos locais em .sdd-master/ e documentação pública em docs/. Cada etapa registra Aprovação humana: Pendente e preserva arquivos existentes por padrão.
Governança antes da implementação
Antes de implementar, o SDD Master exige:
- dúvidas resolvidas;
- escopo controlado;
- backlog separado do escopo atual;
- aprovações humanas registradas;
- bloqueios formais verificados.
Comandos:
sdd master clarify --yes --title="Dúvida sobre escopo" --phase="PHASE-01"
sdd master approve --yes --target="tasks" --phase="PHASE-01" --decision="approved" --reason="Tarefas aprovadas."
sdd master scope --yes --type="change" --title="Nova solicitação" --phase="PHASE-01"
sdd master backlog --yes --type="improvement" --title="Melhoria futura" --priority="COULD"Quality, audit, docs e blockers
Antes de implementar, o SDD Master exige portões formais de qualidade, auditoria e documentação.
Comandos:
sdd master quality --yes --phase="PHASE-01" --target="tasks" --title="Revisão de qualidade"
sdd master audit --yes --phase="PHASE-01" --type="self-audit" --title="Auditoria da fase"
sdd master docs --yes --phase="PHASE-01" --target="workflow" --title="Validação documental"
sdd master blocker --yes --title="Bloqueio formal" --phase="PHASE-01" --severity="BLOCKER"Blockers abertos impedem a futura implementação.
Skills locais e UI/UX
O SDD Master trata design como diferencial do framework.
Comandos:
sdd master skills --yes --title="Skill de UI/UX" --category="uiux" --source="https://github.com/sickn33/antigravity-awesome-skills/"
sdd master skills --yes --skill="SKILL-001" --approve
sdd master skills --yes --skill="SKILL-001" --install-local
sdd master uiux --yes --phase="PHASE-01" --profile="WEB" --title="Revisão UI/UX inicial"Regras:
- skills são locais;
- nada é instalado globalmente por padrão;
- skills externas exigem aprovação humana;
- registry local fica em
.agents/skills/registry.md; - toda skill usada aparece em relatório;
- UI/UX, acessibilidade, SEO e responsividade bloqueiam implementação quando aplicável.
Plugins e extensoes seguras
O SDD Master também controla plugins/extensoes locais com política de supply chain segura.
Comandos:
sdd master plugins --yes --title="Plugin de integração" --category="other" --source="Registry local controlado" --version="1.0.0" --permission="docs/**"
sdd master plugins --yes --id="PLUGIN-001" --audit
sdd master plugins --yes --id="PLUGIN-001" --approve
sdd master plugins --yes --id="PLUGIN-001" --install-local
sdd master plugins --yes --id="PLUGIN-001" --mark-used --phase="PHASE-01"
sdd master plugins --json --reportRegras:
- plugins são locais;
- nada é instalado globalmente por padrão;
- plugins externos exigem aprovação humana;
- policy e registry consolidado ficam em
.sdd-master/extensions/; - plugins ficam em
.sdd-master/extensions/plugins/; - approvals, audits, usage e reports ficam em
.sdd-master/extensions/; - instalação local cria somente metadados em
.agents/skills/installed/; - nenhum código remoto é baixado ou executado;
- plugins candidatos, rejeitados ou bloqueados não podem ser usados;
- todo plugin usado aparece em relatório.
Segurança avançada opt-in
O SDD Master possui segurança builtin e pode integrar scanners externos de forma opcional.
sdd master security
sdd master security --detect-tools
sdd master security --run-external --tool="gitleaks" --report
sdd master security --run-external --tool="trufflehog" --reportRegras:
- ferramentas externas não são instaladas automaticamente;
- execução externa exige opt-in explícito com
--run-external; - somente modos locais/filesystem compatíveis são aceitos;
- valores sensíveis são redigidos e nunca persistidos em saída bruta;
- ausência de ferramenta externa não bloqueia por padrão;
- relatório ou auditoria
blockedbloqueia pre-push, release e deploy.
Update seguro
O comando sdd master update atualiza uma instalação local do SDD Master sem apagar histórico.
Exemplos:
sdd master update --dry-run
sdd master update --apply --yesRegras:
- cria backup antes de aplicar mudanças;
- não sobrescreve documentos preenchidos sem segurança;
- preserva decisões humanas;
- registra relatório em
.sdd-master/reports/; - nunca cria
.env; - nunca apaga rastreabilidade.
Implement Guard
O comando sdd master implement existe como guardião de implementação.
Nesta versão prototype, ele não altera código do projeto consumidor.
Ele verifica:
- requisitos;
- especificação;
- plano;
- tarefas;
- aprovações humanas;
- dúvidas abertas;
- escopo;
- qualidade;
- auditoria;
- documentação;
- blockers;
- UI/UX, design system, acessibilidade, SEO e responsividade quando aplicável;
- relatório de skills e plugins usados;
- testes obrigatórios antes da implementação;
- segurança/Git.
Exemplo:
sdd master implement --yes --phase="PHASE-01" --task="TASK-001" --dry-runQualidade e validação local
Antes de qualquer release ou publicação, execute:
npm run checkO check executa:
- build;
- testes;
- lint;
- formatação;
- smoke test do CLI;
- validação de pacote;
- dry-run do npm pack.
Para a release estável, valide também:
npm publish --dry-run --access public --tag latest
node dist/cli/main.js master git --pre-pushValidação de pacote
npm run package:check
npm run pack:dry-runEsses scripts verificam se o pacote contém os arquivos necessários para uso via CLI e se arquivos proibidos ficam fora do empacotamento npm.
Histórico de release alpha
A versão histórica alpha foi:
0.3.0-alphaEsta versão consolida os blocos 25 a 30, sem reescrever histórico Git nem mover tags já publicadas.
Antes de qualquer publicação:
npm run check
npm run release:check
npm publish --dry-run --access public --tag alphaEsta versão alpha usa a tag npm alpha, não latest. Use --tag alpha explicitamente em dry-runs e em qualquer publicação futura aprovada.
Publicação real de 0.3.0-alpha realizada com autorização humana explícita usando npm publish --access public --tag alpha.
GitHub Release
A prerelease publicada é:
v0.3.0-alphaStatus:
- Tag inicial
v0.1.0-prototypepreservada sem reescrita. - Tag
v0.1.0-prototype.1preservada sem reescrita. - Tag
v0.2.0-prototypepreservada sem reescrita. - GitHub prerelease
v0.3.0-alphapublicada como prerelease. - npm publish real de
0.3.0-alphaexecutado com a dist-tagalpha. - npm
latestpermanece em0.1.0-prototype.1. - npm
prototypeaponta para0.2.0-prototype. - npm
alphaaponta para0.3.0-alpha.
Este trecho permanece como histórico da alpha e não descreve a versão estável atual.
Publicação
O SDD Master possui:
- GitHub prerelease;
- publicação npm prototype;
- publicação npm alpha;
- publicação npm beta com
npm publish --access public --tag beta; - publicação npm estável com
npm publish --access public --tag latest.
A publicação final da GitHub Release exige aprovação humana explícita.
Contribuição e GitHub
Contribuições devem usar os templates de issue e Pull Request do repositório. Antes de enviar uma mudança para revisão, execute npm run check e registre os checks relevantes no Pull Request.
Nunca publique .env, tokens, credenciais, chaves privadas, certificados, dados pessoais, logs sensíveis ou conteúdo interno de .sdd-master/ de projetos consumidores. Issues públicas devem descrever problemas sem expor valores ou arquivos privados.
Documentação pública
- Visão do produto
- Arquitetura do framework
- Compatibilidade multi-IA
- Segurança e governança
- Path safety multiplataforma
- Comandos CLI
- API pública CLI
- Contrato de comandos
- Compatibilidade 1.0.0
- Breaking changes
- Guia rápido
- Guia completo
- FAQ
- Troubleshooting
- Migração para 1.0
- Suporte e política de versão
- Presets
- Onboarding guiado
- Exemplos práticos
- Desenvolvimento local
- Workflow SDD
- Skills locais e UI/UX
- Plugins e extensoes seguras
- Update seguro
Roadmap
- Fundação npm
- CLI base
- Init
- Templates
- Doctor
- Multi-IA
- Git/Security
- README premium
- Testes/qualidade
- GitHub público
- Release prototype
- npm package
Licença
Distribuído sob a licença MIT. Consulte LICENSE.
