@nathanramorim/forge-sdd 1.8.1-beta → 1.9.1-beta
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.
- package/README.md +32 -22
- package/bin/postinstall.js +71 -0
- package/bin/run.js +10 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@nathanramorim/forge-sdd)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
-
> CLI open source que instala em qualquer projeto a **Metodologia Forge-SDD** v1.
|
|
6
|
+
> CLI open source que instala em qualquer projeto a **Metodologia Forge-SDD** v1.9.0-beta — 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.
|
|
7
7
|
|
|
8
8
|
🚀 **Landing Page Oficial:** [forge-sdd.vercel.app](https://forge-sdd.vercel.app)
|
|
9
9
|
📖 **Wiki & Documentação Completa:** [Wiki do Forge-SDD](https://forge-sdd.vercel.app/wiki#introducao)
|
|
@@ -20,8 +20,18 @@ Para conhecer todos os comandos disponíveis (`/status`, `/discovery`, `/nova-fe
|
|
|
20
20
|
|
|
21
21
|
## 💻 Instalação & Inicialização Rápida
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Você pode rodar diretamente via `npx` ou instalar globalmente para ter o comando simplificado `forge` à disposição:
|
|
24
24
|
|
|
25
|
+
### Via Instalação Global (Recomendado)
|
|
26
|
+
```bash
|
|
27
|
+
# Instale globalmente no seu sistema
|
|
28
|
+
npm install -g @nathanramorim/forge-sdd
|
|
29
|
+
|
|
30
|
+
# Inicialize de forma simples em qualquer projeto
|
|
31
|
+
forge init
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Via Execução Direta (npx)
|
|
25
35
|
```bash
|
|
26
36
|
# Inicialização interativa (escolha os agentes no menu)
|
|
27
37
|
npx @nathanramorim/forge-sdd@latest init
|
|
@@ -30,38 +40,38 @@ npx @nathanramorim/forge-sdd@latest init
|
|
|
30
40
|
npx @nathanramorim/forge-sdd@latest init . --agent copilot,gemini --name meu-projeto
|
|
31
41
|
```
|
|
32
42
|
|
|
33
|
-
## 📢 Novidades da Versão (v1.
|
|
43
|
+
## 📢 Novidades da Versão (v1.9.0-beta)
|
|
34
44
|
|
|
35
|
-
Esta versão de testes beta traz
|
|
45
|
+
Esta versão de testes beta traz o atalho global de execução `forge`, uma interface de onboarding pós-instalação e melhorias focadas em reduzir a curva de aprendizado do Forge-SDD:
|
|
36
46
|
|
|
37
|
-
* **
|
|
38
|
-
* **
|
|
39
|
-
*
|
|
40
|
-
* **
|
|
41
|
-
* **
|
|
47
|
+
* **Atalho Global (`forge`) e Onboarding Pós-Instalação:** Agora você pode acionar todos os comandos da CLI simplesmente usando `forge` (ex: `forge init`, `forge doctor`). Ao instalar o pacote globalmente, uma tela de boas-vindas interativa e instrutiva é exibida com o guia dos comandos.
|
|
48
|
+
* **Cheat-Sheet de Comandos:** O `forge init` agora imprime a lista completa dos comandos SDD disponíveis para os agentes escolhidos ao final da inicialização.
|
|
49
|
+
* **`/status` Prescritivo:** O comando `/status` (Copilot, Claude e Gemini) agora sempre sugere o próximo comando a ser executado, com base no estado real do progresso do projeto.
|
|
50
|
+
* **Diagnóstico de Deriva de Nomenclatura:** O comando `doctor` passa a detectar quando um projeto mistura a nomenclatura sequencial (`feat-NN`) com a nomenclatura por hash (`feat-xxxx`), alertando o usuário sobre a inconsistência.
|
|
51
|
+
* **Onboarding Guiado:** Novo comando `/tutorial` (Copilot, Claude e Gemini) guia o usuário por um ciclo SDD completo e fictício, isolado dos dados reais do projeto.
|
|
52
|
+
* **Comando `autopilot`:** Novo comando CLI que ativa o modo autopilot somente após um número mínimo de ciclos completos registrados em telemetria, com bypass consciente disponível via flag.
|
|
53
|
+
* **Modo Iniciante:** O comando `/constitution` (Copilot, Claude e Gemini) passa a perguntar, opcionalmente, se o usuário prefere explicações em linguagem simplificada, com exemplos concretos no lugar de jargão técnico.
|
|
42
54
|
|
|
43
55
|
---
|
|
44
56
|
|
|
45
|
-
## 📢 Novidades da Versão Anterior (v1.
|
|
57
|
+
## 📢 Novidades da Versão Anterior (v1.7.1-beta.5)
|
|
46
58
|
|
|
47
|
-
|
|
59
|
+
Esta versão de testes beta trouxe correções e alinhamento no fluxo de descobertas (discovery):
|
|
48
60
|
|
|
49
|
-
|
|
50
|
-
|
|
61
|
+
* **Plano de Discovery Padronizado:** O prompt de `/discovery` de todos os agentes (Copilot, Claude e Gemini) foi atualizado e alinhado para gerar obrigatoriamente o arquivo `plan-XX-*.md` na pasta `sdd/discovery/` contendo o roadmap e sugestão de quebra de tarefas/features.
|
|
62
|
+
* **Agrupamento Opcional de Releases Beta:** A política de releases beta (Regra 11 da Constituição) foi atualizada para explicitar que a publicação e geração de tags beta pode, opcionalmente, agrupar e acumular múltiplos fixes ou features antes de lançar novas tags ou bumps de versão, otimizando o fluxo.
|
|
63
|
+
* **Diagnóstico de Nome Padrão:** O comando `doctor` e os prompts `/doctor` dos agentes passam a verificar se o projeto ainda utiliza o nome genérico `"meu-projeto"`, listando as correções e os cabeçalhos de agentes recomendados a serem renomeados.
|
|
64
|
+
* **Métricas Granulares e Robustas:** Implementado mapeamento e telemetria incondicional para caminhos aninhados de subpastas de features e discoveries.
|
|
65
|
+
* **Prompt do Orquestrador Refatorado:** Instruções do Orquestrador atualizadas para impor os novos guardrails de close em todos os agentes suportados.
|
|
51
66
|
|
|
52
67
|
---
|
|
53
68
|
|
|
54
|
-
## 📢 Novidades da Versão Anterior (v1.6.0)
|
|
69
|
+
## 📢 Novidades da Versão Anterior (v1.6.1-beta.0)
|
|
55
70
|
|
|
56
|
-
A versão
|
|
71
|
+
A versão beta trouxe detecção inteligente de projetos existentes e upgrade aprimorado:
|
|
57
72
|
|
|
58
|
-
- **Fase
|
|
59
|
-
- **
|
|
60
|
-
- **Fase 34 — Reestruturação de Prompts por Agente**: Migração dos prompts do Copilot e unificação dos prompts de sistema e habilidades customizadas específicas para Gemini, Claude e Copilot.
|
|
61
|
-
- **Fase 33 — Sincronização Automática da Wiki**: A documentação oficial (diretório docs/ e README) agora é enviada e atualizada automaticamente na wiki do repositório lp-forge-sdd a cada nova tag publicada.
|
|
62
|
-
- **Fase 32 — Geração de Release Notes**: Agora o agente documenta as entregas de cada feature de forma automática e em linguagem clara de produto ao encerrar as tarefas.
|
|
63
|
-
- **Fase 31 — Preservação de Domínio no Upgrade**: As atualizações do Forge-SDD ou do CLI protegem e preservam todas as suas especificações e arquivos de domínio do usuário.
|
|
64
|
-
- **Fase 30 — Correções de Fluxo de Branches**: Ajustado o fluxo de desenvolvimento automático do agente para garantir criação prévia de branches e integração robusta de PRs via `gh` CLI.
|
|
73
|
+
- **Fase 38 — Detecção Inteligente e Upgrade no CLI**: O CLI agora detecta automaticamente se o diretório já possui a metodologia estruturada e redireciona para a interface de upgrade.
|
|
74
|
+
- **Integração NPM Registry**: O CLI consulta dinamicamente as versões oficiais (`latest`) e de teste (`beta`) publicadas no NPM Registry para que o usuário escolha para qual deseja atualizar.
|
|
65
75
|
|
|
66
76
|
---
|
|
67
77
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const isColorSupported = !process.env.NO_COLOR && (process.stdout.isTTY || process.env.FORCE_COLOR);
|
|
5
|
+
|
|
6
|
+
const colors = {
|
|
7
|
+
reset: isColorSupported ? '\x1b[0m' : '',
|
|
8
|
+
bold: isColorSupported ? '\x1b[1m' : '',
|
|
9
|
+
green: isColorSupported ? '\x1b[32m' : '',
|
|
10
|
+
cyan: isColorSupported ? '\x1b[36m' : '',
|
|
11
|
+
yellow: isColorSupported ? '\x1b[33m' : '',
|
|
12
|
+
dim: isColorSupported ? '\x1b[90m' : '',
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const width = 74;
|
|
16
|
+
|
|
17
|
+
function printLine(content, color = '') {
|
|
18
|
+
// Remove escapes ANSI para calcular o comprimento visível
|
|
19
|
+
const cleanLength = content.replace(/\x1b\[\d+m/g, '').length;
|
|
20
|
+
|
|
21
|
+
// Calcula o espaço restante
|
|
22
|
+
const spacesCount = Math.max(0, width - cleanLength - 1);
|
|
23
|
+
console.log(`${colors.cyan}│${colors.reset} ${color}${content}${colors.reset}${' '.repeat(spacesCount)}${colors.cyan}│${colors.reset}`);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function printEmptyLine() {
|
|
27
|
+
console.log(`${colors.cyan}│${colors.reset}${' '.repeat(width)}${colors.cyan}│${colors.reset}`);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function printSeparator() {
|
|
31
|
+
console.log(`${colors.cyan}├${'─'.repeat(width)}┤${colors.reset}`);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function printBorderTop() {
|
|
35
|
+
console.log(`${colors.cyan}┌${'─'.repeat(width)}┐${colors.reset}`);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function printBorderBottom() {
|
|
39
|
+
console.log(`${colors.cyan}└${'─'.repeat(width)}┘${colors.reset}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
console.log('');
|
|
43
|
+
printBorderTop();
|
|
44
|
+
printEmptyLine();
|
|
45
|
+
printLine(`🚀 ${colors.bold}${colors.cyan}Bem-vindo ao Forge-SDD!${colors.reset}`);
|
|
46
|
+
printEmptyLine();
|
|
47
|
+
printLine(`O CLI definitivo para scaffolding de Software Design Doc (SDD)`);
|
|
48
|
+
printLine(`pronto para uso com múltiplos agentes de Inteligência Artificial.`);
|
|
49
|
+
printEmptyLine();
|
|
50
|
+
printSeparator();
|
|
51
|
+
printEmptyLine();
|
|
52
|
+
printLine(`⚡ ${colors.bold}${colors.green}Comando global ativo: forge${colors.reset}`);
|
|
53
|
+
printEmptyLine();
|
|
54
|
+
printLine(`💡 ${colors.bold}Guia de Comandos Disponíveis:${colors.reset}`);
|
|
55
|
+
printEmptyLine();
|
|
56
|
+
printLine(` ${colors.cyan}•${colors.reset} ${colors.bold}forge init${colors.reset} ${colors.dim}─${colors.reset} Inicializa o SDD interativamente no projeto`);
|
|
57
|
+
printLine(` ${colors.cyan}•${colors.reset} ${colors.bold}forge update${colors.reset} ${colors.dim}─${colors.reset} Adiciona novos agentes ou atualiza a versão`);
|
|
58
|
+
printLine(` ${colors.cyan}•${colors.reset} ${colors.bold}forge doctor${colors.reset} ${colors.dim}─${colors.reset} Verifica a integridade da estrutura local`);
|
|
59
|
+
printLine(` ${colors.cyan}•${colors.reset} ${colors.bold}forge destroy${colors.reset} ${colors.dim}─${colors.reset} Remove a estrutura SDD local do projeto`);
|
|
60
|
+
printEmptyLine();
|
|
61
|
+
printSeparator();
|
|
62
|
+
printEmptyLine();
|
|
63
|
+
printLine(`👉 ${colors.bold}Como começar agora:${colors.reset}`);
|
|
64
|
+
printEmptyLine();
|
|
65
|
+
printLine(` 1. Navegue até o diretório do seu projeto`);
|
|
66
|
+
printLine(` 2. Execute o comando:`);
|
|
67
|
+
printLine(` ${colors.bold}${colors.yellow}$ forge init${colors.reset}`);
|
|
68
|
+
printLine(` 3. Abra seu projeto com VS Code, Claude Code ou Gemini!`);
|
|
69
|
+
printEmptyLine();
|
|
70
|
+
printBorderBottom();
|
|
71
|
+
console.log('');
|
package/bin/run.js
CHANGED
|
@@ -157,6 +157,16 @@ async function ensureBinary() {
|
|
|
157
157
|
fs.chmodSync(bin, 0o755);
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
// Executa a tela de boas-vindas pós-instalação no primeiro download
|
|
161
|
+
try {
|
|
162
|
+
const postinstallPath = path.join(__dirname, 'postinstall.js');
|
|
163
|
+
if (fs.existsSync(postinstallPath)) {
|
|
164
|
+
execFileSync(process.execPath, [postinstallPath], { stdio: 'inherit' });
|
|
165
|
+
}
|
|
166
|
+
} catch (err) {
|
|
167
|
+
// Silencia qualquer erro de renderização para não bloquear o fluxo do CLI
|
|
168
|
+
}
|
|
169
|
+
|
|
160
170
|
return bin;
|
|
161
171
|
}
|
|
162
172
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nathanramorim/forge-sdd",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.1-beta",
|
|
4
4
|
"description": "CLI que scaffolda estruturas Forge-SDD em segundos",
|
|
5
5
|
"homepage": "https://github.com/nathanramorim/forge-sdd",
|
|
6
6
|
"repository": {
|
|
@@ -9,10 +9,12 @@
|
|
|
9
9
|
},
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"bin": {
|
|
12
|
-
"forge-sdd": "bin/run.js"
|
|
12
|
+
"forge-sdd": "bin/run.js",
|
|
13
|
+
"forge": "bin/run.js"
|
|
13
14
|
},
|
|
14
15
|
"files": [
|
|
15
16
|
"bin/run.js",
|
|
17
|
+
"bin/postinstall.js",
|
|
16
18
|
"README.md"
|
|
17
19
|
],
|
|
18
20
|
"engines": {
|