@nathanramorim/forge-sdd 1.5.2 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +186 -57
  2. package/bin/run.js +6 -6
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,102 +1,231 @@
1
1
  # @nathanramorim/forge-sdd
2
2
 
3
- > CLI que scaffolda a estrutura **Forge-SDD** v1.5.2 em segundos. Suporte total para **GitHub Copilot, Claude e Gemini**.
3
+ [![NPM Version](https://img.shields.io/npm/v/@nathanramorim/forge-sdd)](https://www.npmjs.com/package/@nathanramorim/forge-sdd)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ > CLI open source que instala em qualquer projeto a **Metodologia Forge-SDD** v1.5.2 — um framework de desenvolvimento guiado por IA que elimina a repetição de instruções, garante padrões arquiteturais e traz a expertise de um engenheiro sênior para o seu fluxo diário.
4
7
 
5
8
  🚀 **Landing Page:** [forge-sdd.vercel.app](https://forge-sdd.vercel.app)
6
9
 
7
- ## Uso rápido (npx)
10
+ ---
11
+
12
+ ## Por que o forge-sdd? (Open Source)
13
+
14
+ O **forge-sdd** nasceu para **mudar a dinâmica de desenvolvimento orientado a IA**. Como um projeto **Open Source** (licenciado sob a licença MIT), ele resolve o desafio de manter a consistência e velocidade do desenvolvimento através de 4 pilares fundamentais:
15
+
16
+ | Pilar | O que resolve |
17
+ |-------|--------------|
18
+ | 🤖 **Controle de Fluxo com IA** | A IA atua de forma guiada e previsível (Orquestrador → Builder → Revisor) |
19
+ | 🧠 **Sem Repetição de Instruções** | As regras do projeto ficam em arquivos locais e a IA as lê a cada sessão |
20
+ | 🔄 **Padrões & Incrementalidade** | Cada evolução segue os padrões da sua arquitetura, de forma acumulativa |
21
+ | 🎓 **Expertise Sênior Embutida** | Discovery estruturado, specs claras e revisão automatizada de código |
22
+
23
+ O forge-sdd foi aberto para que a comunidade possa evoluir e adaptar o fluxo de scaffolding de SDDs para qualquer stack de desenvolvimento de forma livre.
24
+
25
+ ---
26
+
27
+ ## Instalação & Inicialização
28
+
29
+ Durante a inicialização, você deve definir para quais agentes de IA deseja gerar a estrutura do SDD (Copilot, Gemini ou Claude):
8
30
 
9
31
  ```bash
32
+ # Inicialização interativa (permite escolher os agentes no menu)
10
33
  npx @nathanramorim/forge-sdd@latest init
34
+
35
+ # Inicialização direta no diretório atual especificando os agentes
36
+ npx @nathanramorim/forge-sdd@latest init . --agent copilot,gemini,claude --name meu-projeto
11
37
  ```
12
38
 
13
- Apresenta um formulário interativo e cria toda a infraestrutura de memória de projeto, especificações, agentes e MCPs.
39
+ ### Requisitos
40
+
41
+ - Node.js ≥ 18
42
+ - O binário Go é baixado automaticamente e cacheado em `~/.cache/forge-sdd/`.
14
43
 
15
44
  ---
16
45
 
17
- ## Requisitos
46
+ ## O que é gerado após o `init`
18
47
 
19
- - Node.js ≥ 18
20
- - O binário Go é baixado automaticamente e cacheado em `~/.cache/forge-sdd/`.
48
+ ```
49
+ sdd/ → memória e especificação do projeto
50
+ memory/
51
+ progress.md → estado ativo (leia primeiro a cada sessão)
52
+ constitution.md → regras imutáveis do projeto
53
+ spec/
54
+ overview.md, stack.md, modules.md, flows.md, decisions.md
55
+ features/
56
+ feat-00-foundation.md → feature inicial
57
+ index.md → mapa de features
58
+
59
+ # Agente Selecionado (Ex: Gemini)
60
+ .gemini/
61
+ skills/*.chatmode.md → 6 papéis: Orquestrador, Builder, Revisor…
62
+ prompts/*.prompt.md → comandos: /status, /nova-feature…
63
+ GEMINI.md → Instruções de contexto para o Gemini
64
+
65
+ .vscode/
66
+ mcp.json → configuração dos MCPs (context7, git)
67
+ ```
21
68
 
22
69
  ---
23
70
 
24
- ## Opções CLI
71
+ ## 🗺️ Fluxo de Desenvolvimento
72
+
73
+ O Forge-SDD organiza o trabalho em ciclos curtos e incrementais. O diagrama abaixo mostra o fluxo completo:
74
+
75
+ ```mermaid
76
+ flowchart TD
77
+ A([🚀 Início da Sessão]) --> B["/status<br/>Entende o estado atual"]
78
+ B --> C{"Existe feature<br/>em andamento?"}
79
+ C -- Sim --> D["/proxima-feature<br/>Retoma a feature"]
80
+ C -- Não --> E{"Tenho uma<br/>ideia nova?"}
81
+ E -- "Sim, preciso explorar" --> F["/discovery<br/>Explora produto<br/>e engenharia"]
82
+ E -- "Já sei o que fazer" --> G["/nova-feature<br/>Especifica e<br/>cria a branch"]
83
+ F --> H{"Feature ficou<br/>muito grande?"}
84
+ G --> H
85
+ H -- "Sim, mais de 7 tasks" --> I["/split-features<br/>Quebra em<br/>feats independentes"]
86
+ H -- Não --> D
87
+ I --> D
88
+ D --> J["🔨 Builder implementa"]
89
+ J --> K["/revisar<br/>Revisor valida<br/>critério de conclusão"]
90
+ K -- Aprovado --> L["🔀 PR via gh cli<br/>Merge na main"]
91
+ K -- Reprovado --> J
92
+ L --> M([🔁 Próximo ciclo])
93
+ ```
94
+
95
+ ---
25
96
 
26
- ```bash
27
- # Modo interativo (padrão)
28
- npx @nathanramorim/forge-sdd@latest init
97
+ ## 📖 Guia: Quando usar cada comando?
29
98
 
30
- # Gemini (Google) - não interativo
31
- npx @nathanramorim/forge-sdd@latest init --yes --agent gemini
99
+ ### `/discovery` Explore antes de especificar
32
100
 
33
- # Claude (Anthropic)
34
- npx @nathanramorim/forge-sdd@latest init --yes --agent claude
101
+ Use quando você tem **uma ideia mas ainda não sabe exatamente o que construir**. O agente assume as personas de PM e Engenheiro Sênior e conduz uma sessão estruturada para definir o "o quê", o "para quem" e o "como".
35
102
 
36
- # Preview sem criar arquivos
37
- npx @nathanramorim/forge-sdd@latest init --yes --dry-run
103
+ ```
104
+ Quando usar: Ideia vaga → /discovery Features bem definidas
105
+ Quando NÃO usar: Se você já sabe exatamente o que fazer, vá direto para /nova-feature
38
106
  ```
39
107
 
40
- ---
108
+ ### `/nova-feature` — Registre e inicie
41
109
 
42
- ## O que é gerado
110
+ Use quando você já sabe o que implementar. O agente:
111
+ 1. Cria a branch `feat/<nome>` imediatamente
112
+ 2. Cria o arquivo `sdd/features/feat-XX-<nome>.md` com objetivo, tasks e critério de conclusão
113
+ 3. Atualiza o índice de features
43
114
 
44
- Uma árvore de aproximadamente 40 arquivos baseada na **Metodologia Forge-SDD**, organizada para minimizar o consumo de tokens e maximizar a precisão da IA:
115
+ ```
116
+ Regra de ouro: a branch é criada ANTES do arquivo de spec
117
+ ```
118
+
119
+ ### `/split-features` — Quebre features grandes
120
+
121
+ Use quando uma feature ficou **grande demais** (mais de 7 tasks ou abrange mais de um domínio). O agente aplica os critérios de desacoplamento:
122
+
123
+ ```mermaid
124
+ flowchart LR
125
+ A["feature-grande\n12 tasks, 3 domínios"] --> B{Critérios\nde quebra}
126
+
127
+ B --> C["✅ Cada sub-feature\nentrega valor\nindependente"]
128
+ B --> D["✅ Sem dependência\ncircular entre\nsub-features"]
129
+ B --> E["✅ Ordem respeita\ncamadas: infra →\ndomínio → app → UI"]
130
+ B --> F["✅ Cada sub-feature\ntem critério de\nconclusão próprio"]
45
131
 
46
- - `sdd/memory/`: Estado ativo e histórico.
47
- - `sdd/spec/`: Especificação particionada (overview, stack, modules...).
48
- - `sdd/features/`: Roadmap e tarefas executáveis.
49
- - **Agentes:** Arquivos de instrução e comandos customizados para o agente escolhido.
50
- - `.vscode/mcp.json`: Integração com MCP (Context7, Git).
132
+ C & D & E & F --> G["feat-XX-a\nfeat-XX-b\nfeat-XX-c"]
133
+ ```
134
+
135
+ ### `/proxima-feature` Implemente
136
+
137
+ Use quando quer iniciar ou retomar a próxima feature do backlog. O Orquestrador lê o `progress.md`, identifica a feature `todo` mais prioritária, cria a branch e delega ao Builder.
138
+
139
+ ### `/revisar` — Valide antes do merge
140
+
141
+ Sempre rode antes de criar o PR. O Revisor valida:
142
+ - ✅ O critério de conclusão definido na spec foi atingido?
143
+ - ✅ `go vet` / lint passou?
144
+ - ✅ Arquivos de memória (`progress.md`) estão atualizados?
51
145
 
52
146
  ---
53
147
 
54
- ## 🚀 Guia de Início Rápido
148
+ ## 🚀 Trilhas de Início Rápido
149
+
150
+ ### 🆕 Projeto do Zero
55
151
 
56
- ### 🆕 Trilha para Novos Projetos (Do Zero)
57
- 1. `npx @nathanramorim/forge-sdd@latest init`
58
- 2. `/constitution` → Define arquitetura e regras base.
59
- 3. `/discovery "sua ideia"` → **Discovery de Produto:** Onde o agente define o "que" e o "para quem" será construído.
60
- 4. `/nova-feature` → Mapeia o roadmap de tarefas baseado no discovery.
61
- 5. `/proxima-feature` → Inicia a implementação.
152
+ Ao iniciar um projeto do zero, você pode escolher quais agentes deseja configurar (Copilot, Gemini ou Claude). Use a flag `--agent` no `init` para configurar múltiplos agentes simultaneamente.
62
153
 
63
- ### 🏗️ Trilha para Projetos Existentes (Adoção)
64
- 1. `npx @nathanramorim/forge-sdd@latest init --yes`
65
- 2. `/constitution` O agente faz o **scan do seu codebase** e aprende suas regras.
66
- 3. `/status` Sincroniza o estado atual do projeto.
67
- 4. `/nova-feature` Mapeia a próxima evolução ou correção necessária.
154
+ ```mermaid
155
+ flowchart LR
156
+ A["npx forge-sdd init"] --> B["/constitution\nDefine arquitetura\ne regras base"]
157
+ B --> C["/discovery\nExplora a ideia"]
158
+ C --> D["/nova-feature\nCria as features\ndo roadmap"]
159
+ D --> E["/proxima-feature\nInicia a\nimplementação"]
160
+ ```
161
+
162
+ 1. `npx @nathanramorim/forge-sdd@latest init` (especifique os agentes: `--agent copilot`, `--agent gemini` ou `--agent claude`)
163
+ 2. `/constitution` → define arquitetura e regras base
164
+ 3. `/discovery "sua ideia"` → explora produto e engenharia
165
+ 4. `/nova-feature` → cria features do roadmap
166
+ 5. `/proxima-feature` → inicia a implementação
167
+
168
+ ### 🏗️ Projeto Existente (Adoção)
169
+
170
+ Para adotar a metodologia em um projeto existente sem alterar sua estrutura atual, inicialize diretamente no diretório corrente (`.`) e informe para quais agentes deseja gerar os arquivos:
171
+
172
+ ```mermaid
173
+ flowchart LR
174
+ A["npx forge-sdd init . --yes"] --> B["/constitution\nScan do codebase\naprende as regras"]
175
+ B --> C["/status\nSincroniza\nestado atual"]
176
+ C --> D["/nova-feature\nMapeie a próxima\nevolução"]
177
+ ```
178
+
179
+ 1. `npx @nathanramorim/forge-sdd@latest init . --yes` (especifique os agentes via flags, ex: `--agent copilot,gemini`)
180
+ 2. `/constitution` → o agente escaneia seu codebase e aprende as regras do seu projeto
181
+ 3. `/status` → sincroniza o estado atual do progresso
182
+ 4. `/nova-feature` → mapeia a próxima evolução
68
183
 
69
184
  ---
70
185
 
71
- ## Como interagir com os Agentes
186
+ ## 🛠️ Referência de Comandos
187
+
188
+ | Comando | Quando usar | O que faz |
189
+ |---------|-------------|-----------|
190
+ | `/status` | Início de sessão | Lê `progress.md` e reporta fases e bloqueios |
191
+ | `/discovery <ideia>` | Ideia vaga | Sessão de discovery com personas PM + Engenheiro Sênior |
192
+ | `/nova-feature <desc>` | Ideia clara | Cria branch + spec + atualiza índice |
193
+ | `/split-features` | Feature grande (>7 tasks) | Quebra em sub-features desacopladas |
194
+ | `/proxima-feature` | Iniciar implementação | Retoma a próxima feature `todo` |
195
+ | `/revisar` | Antes do PR | Valida critério de conclusão e qualidade |
196
+ | `/constitution` | Início ou mudança arch. | Alinha `constitution.md` com o codebase real |
197
+ | `/c4-architecture` | Documentar arquitetura | Gera diagramas C4 em Mermaid |
198
+ | `/doctor` | Diagnóstico | Verifica integridade, MCPs e budgets |
199
+ | `/archive` | `progress.md` > 1 KB | Move histórico antigo para o log |
200
+ | `/upgrade-sdd` | Nova versão SDD | Migra a estrutura para a versão mais recente |
201
+ | `/install-skill` | Reutilizar skill | Importa skill de uma URL do GitHub |
72
202
 
73
- A Metodologia Forge-SDD v1.5.2
203
+ ---
74
204
 
75
- ### 🛠️ Comandos Universais (Prompts)
205
+ ## 🤖 Agentes Suportados
76
206
 
77
- | Comando | O que faz | Agente (Ativação) |
78
- |---------|-----------|-------------------|
79
- | `/status` | Diagnóstico rápido do progresso e fases. | Copilot, Claude, Gemini |
80
- | `/proxima-feature` | Inicia a próxima tarefa (cria branch, delega). | Copilot, Claude, Gemini |
81
- | `/nova-feature` | Specifier cria nova feature e atualiza índice. | Copilot, Claude, Gemini |
82
- | `/revisar` | Revisor valida código e critério de conclusão. | Copilot, Claude, Gemini |
83
- | `/doctor` | Check-up de integridade, MCPs e budgets. | Copilot, Claude, Gemini |
84
- | `/archive` | Compacta `progress.md` movendo para o log. | Copilot, Claude, Gemini |
85
- | `/upgrade-sdd` | Migra a estrutura para uma nova versão. | Copilot, Claude, Gemini |
86
- | `/discovery` | Processo de Discovery (Produto + Engenharia Sênior). | Copilot, Claude, Gemini |
87
- | `/c4-architecture` | Gera diagramas C4 Model em Mermaid. | Copilot, Claude, Gemini |
88
- | `/split-features` | Quebra um plano de discovery em múltiplas features. | Copilot, Claude, Gemini |
89
- | `/install-skill` | Instala uma skill via URL do GitHub/Raw. | Copilot, Claude, Gemini |
207
+ | Agente | Flag | Como acionar os comandos |
208
+ |--------|------|--------------------------|
209
+ | **GitHub Copilot** | `copilot` | Use `/` no chat do VS Code (ex: `/status`) |
210
+ | **Claude** | `claude` | Mencione o comando no chat (ex: `/revisar`) |
211
+ | **Gemini** | `gemini` | Peça pelo nome ("rodar o status") |
90
212
 
91
- ### ♊ Gemini (Google AI Studio / CLI)
92
- Peça pelo nome do comando ou por uma frase de ação (ex: "rodar o status" ou "iniciar próxima tarefa"). O Gemini carrega automaticamente suas habilidades de Orquestrador, Builder, etc., localizadas em `.gemini/`.
213
+ ```bash
214
+ # Um agente
215
+ npx @nathanramorim/forge-sdd@latest init --yes --agent gemini --name meu-projeto
93
216
 
94
- ### 🤖 GitHub Copilot (VS Code Chat)
95
- Use comandos slash diretamente no chat (ex: `/status`). Configuração em `.github/chatmodes/` e `.github/prompts/`.
217
+ # Múltiplos agentes
218
+ npx @nathanramorim/forge-sdd@latest init --yes --agent copilot,claude,gemini --name meu-projeto
219
+ ```
96
220
 
97
221
  ---
98
222
 
99
223
  ## Links
100
224
 
101
225
  - [GitHub Repository](https://github.com/nathanramorim/forge-sdd)
102
- - [Metodologia SDD](https://github.com/nathanramorim/forge-sdd#readme)
226
+ - [Documentação da Metodologia](https://github.com/nathanramorim/forge-sdd#readme)
227
+ - [CONTRIBUTING.md](https://github.com/nathanramorim/forge-sdd/blob/main/CONTRIBUTING.md)
228
+
229
+ ## Licença
230
+
231
+ Distribuído sob a licença MIT. Veja [LICENSE](https://github.com/nathanramorim/forge-sdd/blob/main/LICENSE) para mais informações.
package/bin/run.js CHANGED
@@ -13,18 +13,18 @@ const zlib = require('zlib');
13
13
  // ─── helpers ──────────────────────────────────────────────────────────────────
14
14
 
15
15
  const VERSION = require('../package.json').version;
16
- const BASE_URL = `https://github.com/nathanramorim/homebrew-forge-sdd/releases/download/v${VERSION}`;
16
+ const BASE_URL = `https://github.com/nathanramorim/forge-sdd/releases/download/v${VERSION}`;
17
17
 
18
18
  function platformAsset() {
19
19
  const plat = process.platform;
20
20
  const arch = process.arch;
21
21
 
22
22
  const map = {
23
- 'linux-x64': { file: `homebrew-forge-sdd_linux_amd64.tar.gz`, ext: 'tar.gz' },
24
- 'linux-arm64': { file: `homebrew-forge-sdd_linux_arm64.tar.gz`, ext: 'tar.gz' },
25
- 'darwin-x64': { file: `homebrew-forge-sdd_darwin_amd64.tar.gz`, ext: 'tar.gz' },
26
- 'darwin-arm64': { file: `homebrew-forge-sdd_darwin_arm64.tar.gz`, ext: 'tar.gz' },
27
- 'win32-x64': { file: `homebrew-forge-sdd_windows_amd64.zip`, ext: 'zip' },
23
+ 'linux-x64': { file: `forge-sdd_linux_amd64.tar.gz`, ext: 'tar.gz' },
24
+ 'linux-arm64': { file: `forge-sdd_linux_arm64.tar.gz`, ext: 'tar.gz' },
25
+ 'darwin-x64': { file: `forge-sdd_darwin_amd64.tar.gz`, ext: 'tar.gz' },
26
+ 'darwin-arm64': { file: `forge-sdd_darwin_arm64.tar.gz`, ext: 'tar.gz' },
27
+ 'win32-x64': { file: `forge-sdd_windows_amd64.zip`, ext: 'zip' },
28
28
  };
29
29
 
30
30
  const key = `${plat}-${arch}`;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nathanramorim/forge-sdd",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "CLI que scaffolda estruturas Forge-SDD em segundos",
5
- "homepage": "https://github.com/nathanramorim/homebrew-forge-sdd",
5
+ "homepage": "https://github.com/nathanramorim/forge-sdd",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/nathanramorim/forge-sdd.git"