spec-first-claude 0.5.0-beta.3 → 0.5.0-beta.4
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/lib/init.js
CHANGED
|
@@ -62,8 +62,8 @@ function init({ name, templatesDir, targetDir }) {
|
|
|
62
62
|
console.log(`\nDone! Project "${name}" is ready.`);
|
|
63
63
|
console.log('\nNext steps:');
|
|
64
64
|
console.log(` 1. cd ${name}`);
|
|
65
|
-
console.log(' 2.
|
|
66
|
-
console.log(' 3. Run /
|
|
65
|
+
console.log(' 2. Create a folder in workspace/Input/ with your project files (e.g. workspace/Input/my_app/)');
|
|
66
|
+
console.log(' 3. Run /new-project <folder-name> to start the pipeline');
|
|
67
67
|
console.log('');
|
|
68
68
|
}
|
|
69
69
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# /new-project <nome>
|
|
2
|
+
|
|
3
|
+
Orquestrador de bootstrap técnico do projeto.
|
|
4
|
+
Cria contexto TRD a partir dos insumos em `workspace/Input/{nome}/`, chama /extract e para no checkpoint de aprovação.
|
|
5
|
+
|
|
6
|
+
Simétrico ao `/feature <nome>` — a diferença é que gera TRD (perfil técnico) em vez de PRD (perfil de produto).
|
|
7
|
+
|
|
8
|
+
## Argumento
|
|
9
|
+
|
|
10
|
+
`<nome>` = nome do item no Input. O usuário nomeia livremente (ex: `app_barbearia`, `meu_sistema`, `api_pagamentos`). O agent busca `workspace/Input/{nome}/` — se não existir, para com erro.
|
|
11
|
+
|
|
12
|
+
## Execução
|
|
13
|
+
|
|
14
|
+
Siga EXATAMENTE os passos da skill em ordem. Leia o arquivo completo antes de agir.
|
|
15
|
+
|
|
16
|
+
### Pré-condições — validar TODAS antes de prosseguir
|
|
17
|
+
|
|
18
|
+
| # | Validação | Se falhar |
|
|
19
|
+
|---|-----------|-----------|
|
|
20
|
+
| 1 | `workspace/Input/{nome}/` existe | Parar → "Crie a pasta workspace/Input/{nome}/ e adicione seus insumos" |
|
|
21
|
+
| 2 | Pasta contém pelo menos 1 arquivo (ignorar .gitkeep) | Parar → "Adicione insumos na pasta (aceitos: .md, .txt, .sql, .xml, .html, .json, .csv, .png, .jpg, .pdf — qualquer formato)" |
|
|
22
|
+
| 3 | `workspace/Output/{nome}/.context.md` não existe ou status é `not_started` | Parar → "Este escopo já está em andamento. Verifique o status em .context.md" |
|
|
23
|
+
|
|
24
|
+
### Passos
|
|
25
|
+
|
|
26
|
+
1. Criar `workspace/Output/{nome}/` se não existir
|
|
27
|
+
|
|
28
|
+
2. Criar `.context.md`:
|
|
29
|
+
```yaml
|
|
30
|
+
---
|
|
31
|
+
nome: "{nome}"
|
|
32
|
+
tipo: "project"
|
|
33
|
+
documento: "TRD"
|
|
34
|
+
pm_path: "workspace/Input/{nome}/"
|
|
35
|
+
status: "not_started"
|
|
36
|
+
ultima_skill: "/new-project"
|
|
37
|
+
atualizado_em: "{{ISO_DATETIME}}"
|
|
38
|
+
---
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
3. Sugerir /discovery (RECOMENDADO):
|
|
42
|
+
```
|
|
43
|
+
Recomendo rodar /discovery antes da extração para análise profunda dos insumos.
|
|
44
|
+
Quer rodar /discovery workspace/Input/{nome}/ agora? (s/n)
|
|
45
|
+
```
|
|
46
|
+
Se SIM → rodar discovery, salvar discovery.md em workspace/Output/{nome}/
|
|
47
|
+
Se NÃO → pular direto para extract
|
|
48
|
+
|
|
49
|
+
4. Executar /extract {nome} (seguir o command /extract)
|
|
50
|
+
|
|
51
|
+
5. CHECKPOINT — Parar e informar:
|
|
52
|
+
```
|
|
53
|
+
TRD gerado em workspace/Output/{nome}/TRD.md
|
|
54
|
+
|
|
55
|
+
Revise o documento. Quando estiver satisfeito, execute:
|
|
56
|
+
/design {nome}
|
|
57
|
+
|
|
58
|
+
Se precisar adicionar mais insumos, coloque na pasta workspace/Input/{nome}/
|
|
59
|
+
e execute:
|
|
60
|
+
/extract {nome}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**O orquestrador encerra aqui.** Próximos passos do usuário:
|
|
64
|
+
1. `/design {nome}` (pergunta aprovação → gera SDD + docs/ + projetos.yaml)
|
|
65
|
+
2. `/plan {nome}` (gera tasks com campo Repo por task)
|
|
66
|
+
3. `/dev {nome}` (INFRA-001 cria/clona repos em projetos/, executa tasks nos repos corretos)
|
|
67
|
+
|
|
68
|
+
### Notas
|
|
69
|
+
- docs/ é gerado pelo /design (passo 3), não por tasks DOC
|
|
70
|
+
- `projetos.yaml` é gerado pelo /design (passo 3b) — mapeia serviços para repos
|
|
71
|
+
- Repos são criados/clonados pelo /dev (INFRA-001) dentro de `projetos/`
|
|
72
|
+
- /merge-delta NÃO se aplica ao new-project (é criação, não atualização)
|
package/templates/CLAUDE.md
CHANGED
|
@@ -24,7 +24,7 @@ Verificar que TODOS os 9 commands estão acessíveis:
|
|
|
24
24
|
|
|
25
25
|
| Command | Caminho |
|
|
26
26
|
|---------|---------|
|
|
27
|
-
| `/
|
|
27
|
+
| `/new-project` | `.claude/commands/new-project.md` |
|
|
28
28
|
| `/feature` | `.claude/commands/feature.md` |
|
|
29
29
|
| `/discovery` | `.claude/commands/discovery.md` |
|
|
30
30
|
| `/extract` | `.claude/commands/extract.md` |
|
|
@@ -76,7 +76,7 @@ ESTE REPO (projeto-base) = ORQUESTRADOR
|
|
|
76
76
|
|
|
77
77
|
```
|
|
78
78
|
workspace/Input/ (qualquer arquivo)
|
|
79
|
-
↓ /
|
|
79
|
+
↓ /new-project <nome> (TRD — bootstrap técnico) ou /feature <nome> (PRD — feature)
|
|
80
80
|
/discovery → análise profunda dos insumos (RECOMENDADO, opcional)
|
|
81
81
|
↓
|
|
82
82
|
/extract → PRD ou TRD em workspace/Output/{nome}/ (checkpoint — usuário revisa e aprova)
|
|
@@ -93,7 +93,7 @@ workspace/Input/ (qualquer arquivo)
|
|
|
93
93
|
|
|
94
94
|
| Command | Tipo | O que faz |
|
|
95
95
|
|---------|------|-----------|
|
|
96
|
-
| `/
|
|
96
|
+
| `/new-project <nome>` | Orquestrador | Bootstrap técnico: cria .context.md tipo TRD, chama /extract, para no checkpoint |
|
|
97
97
|
| `/feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /extract, para no checkpoint |
|
|
98
98
|
| `/discovery <path>` | Utilitária | Análise profunda dos insumos (RECOMENDADO antes do /extract) |
|
|
99
99
|
| `/extract <nome>` | Atômico | Lê workspace/Input/{nome}/ → gera PRD ou TRD. Re-executável para novos insumos |
|
|
@@ -166,8 +166,7 @@ specs/ ← AGENT CONTRACTS (projeções do SDD pro coder)
|
|
|
166
166
|
|
|
167
167
|
workspace/ ← TEAM CONTENT (futuro wiki)
|
|
168
168
|
├── Input/ ← Insumos brutos (QUALQUER formato — nunca modificar)
|
|
169
|
-
│
|
|
170
|
-
│ └── feat_*/ ← Insumos por feature
|
|
169
|
+
│ └── {nome}/ ← Nomeado livremente pelo usuário (ex: app_barbearia, feat_login)
|
|
171
170
|
└── Output/ ← Artefatos humanos gerados pelo workflow
|
|
172
171
|
└── {nome}/
|
|
173
172
|
├── PRD.md ou TRD.md ← Requirements (gerado pelo /extract)
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# /setup-projeto
|
|
2
|
-
|
|
3
|
-
Orquestrador de bootstrap do projeto. Executa uma única vez.
|
|
4
|
-
Cria contexto TRD, chama /extract e para no checkpoint de aprovação.
|
|
5
|
-
|
|
6
|
-
## Execução
|
|
7
|
-
|
|
8
|
-
Siga EXATAMENTE os passos da skill em ordem. Leia o arquivo completo antes de agir.
|
|
9
|
-
|
|
10
|
-
### Pré-condições — validar TODAS antes de prosseguir
|
|
11
|
-
|
|
12
|
-
| # | Validação | Se falhar |
|
|
13
|
-
|---|-----------|-----------|
|
|
14
|
-
| 1 | `workspace/Input/setup_projeto/` existe | Parar → "Crie a pasta workspace/Input/setup_projeto/ e adicione seus insumos" |
|
|
15
|
-
| 2 | Pasta contém pelo menos 1 arquivo (ignorar .gitkeep) | Parar → "Adicione insumos na pasta (aceitos: .md, .txt, .sql, .xml, .html, .json, .csv, .png, .jpg, .pdf — qualquer formato)" |
|
|
16
|
-
| 3 | `docs/` está vazio ou contém apenas .gitkeep | Parar → "Setup já foi executado. Use /feature para novas funcionalidades" |
|
|
17
|
-
| 4 | `workspace/Output/setup_projeto/.context.md` não existe ou status é `not_started` | Parar → "Setup já está em andamento. Verifique o status em .context.md" |
|
|
18
|
-
|
|
19
|
-
### Passos
|
|
20
|
-
|
|
21
|
-
1. Criar `workspace/Output/setup_projeto/` se não existir
|
|
22
|
-
|
|
23
|
-
2. Criar `.context.md`:
|
|
24
|
-
```yaml
|
|
25
|
-
---
|
|
26
|
-
nome: "setup_projeto"
|
|
27
|
-
tipo: "setup"
|
|
28
|
-
documento: "TRD"
|
|
29
|
-
pm_path: "workspace/Input/setup_projeto/"
|
|
30
|
-
status: "not_started"
|
|
31
|
-
ultima_skill: "/setup-projeto"
|
|
32
|
-
atualizado_em: "{{ISO_DATETIME}}"
|
|
33
|
-
---
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
3. Sugerir /sf-discovery (RECOMENDADO):
|
|
37
|
-
```
|
|
38
|
-
📋 Recomendo rodar /sf-discovery antes da extração para análise profunda dos insumos.
|
|
39
|
-
Quer rodar /sf-discovery workspace/Input/setup_projeto/ agora? (s/n)
|
|
40
|
-
```
|
|
41
|
-
Se SIM → rodar discovery, salvar discovery.md em workspace/Output/setup_projeto/
|
|
42
|
-
Se NÃO → pular direto para extract
|
|
43
|
-
|
|
44
|
-
4. Executar /extract setup_projeto (seguir o command /extract)
|
|
45
|
-
|
|
46
|
-
5. CHECKPOINT — Parar e informar:
|
|
47
|
-
```
|
|
48
|
-
✅ TRD gerado em workspace/Output/setup_projeto/TRD.md
|
|
49
|
-
|
|
50
|
-
Revise o documento. Quando estiver satisfeito, execute:
|
|
51
|
-
/design setup_projeto
|
|
52
|
-
|
|
53
|
-
Se precisar adicionar mais insumos, coloque na pasta workspace/Input/setup_projeto/
|
|
54
|
-
e execute:
|
|
55
|
-
/extract setup_projeto
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**O orquestrador encerra aqui.** Próximos passos do usuário:
|
|
59
|
-
1. `/design setup_projeto` (pergunta aprovação → gera SDD + docs/ + projetos.yaml)
|
|
60
|
-
2. `/plan setup_projeto` (gera tasks com campo Repo por task)
|
|
61
|
-
3. `/dev setup_projeto` (INFRA-001 cria/clona repos em projetos/, executa tasks nos repos corretos)
|
|
62
|
-
|
|
63
|
-
### Notas
|
|
64
|
-
- Esta skill roda UMA ÚNICA VEZ por projeto
|
|
65
|
-
- docs/ é gerado pelo /design (passo 3), não por tasks DOC
|
|
66
|
-
- `projetos.yaml` é gerado pelo /design (passo 3b) — mapeia serviços para repos
|
|
67
|
-
- Repos são criados/clonados pelo /dev (INFRA-001) dentro de `projetos/`
|
|
68
|
-
- /merge-delta NÃO se aplica ao setup (é criação, não atualização)
|
|
File without changes
|