spec-first-copilot 0.7.0 → 0.8.0-beta.2

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.
@@ -1,89 +1,118 @@
1
- ---
2
- nome: "{{NOME}}"
3
- first_run: {{true|false}}
4
- prd_existe: {{true|false}}
5
- trd_existe: {{true|false}}
6
- prd_aprovado: {{true|false}}
7
- trd_aprovado: {{true|false}}
8
- areas_tocadas: []
9
- input_path: "workspace/Input/{{NOME}}/"
10
- status: "not_started"
11
- ultima_skill: ""
12
- atualizado_em: ""
13
- ---
14
-
15
- <!--
16
- =============================================================================
17
- INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
18
- =============================================================================
19
-
20
- SCHEMA v4 (mudou de v3):
21
- - prd_empty REMOVIDO (conceito obsoleto)
22
- - prd_existe/trd_existe: bool reais (SEM aspas) indicando se /sf-extract gerou cada doc
23
- - prd_aprovado/trd_aprovado: bool reais (SEM aspas) controlando gate do /sf-design
24
-
25
- CAMPOS:
26
- - nome: identificador livre do scope (ex: app_barbearia, feat_login, infra_k8s)
27
- - first_run: bool true se docs/ não existia quando /sf-start foi chamado.
28
- IMUTÁVEL após criação.
29
- - prd_existe: bool true se /sf-extract gerou PRD.md (insumos tinham produto).
30
- false em scopes puro-técnicos.
31
- - trd_existe: bool — true se /sf-extract gerou TRD.md (insumos tinham técnica).
32
- false em scopes puro-produto (raro).
33
- - prd_aprovado: bool — true após PM aprovar o PRD. Se prd_existe=false, este
34
- campo também fica false (não nada a aprovar).
35
- - trd_aprovado: bool true após dev aprovar o TRD. Se trd_existe=false, fica false.
36
- - areas_tocadas: lista de áreas do TRD que têm GATE=SIM. Preenchido pelo /sf-design.
37
- Possíveis: BACK, FRONT, DB, INFRA. Derivado dos GATEs do TRD §2-§5.
38
- - input_path: caminho relativo da pasta de insumos
39
- - status: estado atual da pipeline (ver fluxo abaixo)
40
- - ultima_skill: qual skill alterou este arquivo por último
41
- - atualizado_em: data/hora ISO da última atualização
42
-
43
- FLUXO DE STATUS (v4):
44
- not_started
45
- /sf-start cria .context.md
46
- discovery_done
47
- ↓ /sf-discovery roda (obrigatório no sfw-start)
48
- extract_done
49
- ↓ /sf-extract gera PRD e/ou TRD
50
- prd_approved ← apenas se prd_existe=true
51
- PM revisa e aprova PRD (skill atualiza prd_aprovado=true)
52
- trd_approved ← apenas se trd_existe=true
53
- dev revisa e aprova TRD (skill atualiza trd_aprovado=true)
54
- design_done
55
- /sf-design gera docs/ (first_run) + specs/ (sempre)
56
- plan_done
57
- ↓ /sf-plan gera tasks
58
- dev_in_progress
59
- ↓ /sf-dev executa tasks
60
- dev_done
61
- ↓ /sf-dev finaliza (chama /sf-merge-docs automaticamente)
62
- done
63
-
64
- Se prd_existe=false: status pula direto de extract_done → trd_approved (sem passar
65
- por prd_approved). Mesmo vice-versa. Ordem das aprovações dentro do par é irrelevante.
66
-
67
- QUEM ATUALIZA:
68
- - /sf-start: cria arquivo com status=not_started, first_run derivado de docs/
69
- - /sf-discovery: not_started → discovery_done
70
- - /sf-extract: discovery_done → extract_done, preenche prd_existe + trd_existe
71
- - PM aprova: extract_done → prd_approved (atualiza prd_aprovado=true)
72
- - dev aprova: extract_done|prd_approved → trd_approved (atualiza trd_aprovado=true)
73
- (skill futura /approve <doc> ou edição direta do campo + re-rodar /sf-design)
74
- - /sf-design: (prd_approved + trd_approved) → design_done, preenche areas_tocadas
75
- Nota: se só um dos docs existe, o outro aprovado não é exigido.
76
- - /sf-plan: design_doneplan_done
77
- - /sf-dev: plan_done dev_in_progress dev_done
78
- - /sf-merge-docs: dev_done → done (aplica PRD+TRD em docs/)
79
-
80
- REGRAS:
81
- - Nunca pular etapas no fluxo de status
82
- - Nunca editar manualmente — apenas skills atualizam este arquivo
83
- - Se status não corresponde ao esperado, a skill deve parar e avisar
84
- - first_run é IMUTÁVEL após criação (representa o estado no bootstrap do scope)
85
- - prd_existe/trd_existe são IMUTÁVEIS após o /sf-extract (só mudam via re-extração
86
- que detecta NOVO conteúdo na outra categoria)
87
-
88
- =============================================================================
89
- -->
1
+ ---
2
+ nome: "{{NOME}}"
3
+ tipo: "{{scope|onboard}}"
4
+ first_run: {{true|false}}
5
+ prd_existe: {{true|false}}
6
+ trd_existe: {{true|false}}
7
+ prd_aprovado: {{true|false}}
8
+ trd_aprovado: {{true|false}}
9
+ areas_tocadas: []
10
+ input_path: "workspace/Input/{{NOME}}/"
11
+ repo_url: ""
12
+ repo_branch: ""
13
+ repo_path: ""
14
+ status: "not_started"
15
+ ultima_skill: ""
16
+ atualizado_em: ""
17
+ ---
18
+
19
+ <!--
20
+ =============================================================================
21
+ INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
22
+ =============================================================================
23
+
24
+ SCHEMA v4 (mudou de v3):
25
+ - prd_empty REMOVIDO (conceito obsoleto)
26
+ - prd_existe/trd_existe: bool reais (SEM aspas) indicando se /sf-extract gerou cada doc
27
+ - prd_aprovado/trd_aprovado: bool reais (SEM aspas) controlando gate do /sf-design
28
+ - tipo: discrimina scopes do pipeline normal vs onboarding (brownfield)
29
+ - repo_*: preenchidos em scopes tipo "onboard"
30
+
31
+ CAMPOS:
32
+ - nome: identificador livre do scope (ex: app_barbearia, feat_login, infra_k8s,
33
+ onboard_app_legado)
34
+ - tipo: "scope" (default pipeline normal /sf-start) ou "onboard" (brownfield
35
+ via /sfw-onboardcódigo existe, ler e documentar sem PRD)
36
+ - first_run: bool true se docs/ não existia quando /sf-start foi chamado.
37
+ IMUTÁVEL após criação. Em onboard, sempre true.
38
+ - prd_existe: bool true se /sf-extract gerou PRD.md (insumos tinham produto).
39
+ false em scopes puro-técnicos.
40
+ - trd_existe: bool true se /sf-extract gerou TRD.md (insumos tinham técnica).
41
+ false em scopes puro-produto (raro).
42
+ - prd_aprovado: bool — true após PM aprovar o PRD. Se prd_existe=false, este
43
+ campo também fica false (não há nada a aprovar).
44
+ - trd_aprovado: bool — true após dev aprovar o TRD. Se trd_existe=false, fica false.
45
+ - areas_tocadas: lista de áreas do TRD que têm GATE=SIM. Preenchido pelo /sf-design.
46
+ Possíveis: BACK, FRONT, DB, INFRA. Derivado dos GATEs do TRD §2-§5.
47
+ - input_path: caminho relativo da pasta de insumos
48
+ - repo_url: (só onboard) URL git do repositório onboardeado
49
+ - repo_branch: (só onboard) branch/tag clonada
50
+ - repo_path: (só onboard) caminho relativo do clone em projetos/
51
+ - status: estado atual da pipeline (ver fluxo abaixo)
52
+ - ultima_skill: qual skill alterou este arquivo por último
53
+ - atualizado_em: data/hora ISO da última atualização
54
+
55
+ FLUXO DE STATUS (v4):
56
+ not_started
57
+ ↓ /sf-start cria .context.md
58
+ discovery_done
59
+ ↓ /sf-discovery roda (obrigatório no sfw-start)
60
+ extract_done
61
+ ↓ /sf-extract gera PRD e/ou TRD
62
+ prd_approved ← apenas se prd_existe=true
63
+ ↓ PM revisa e aprova PRD (skill atualiza prd_aprovado=true)
64
+ trd_approved ← apenas se trd_existe=true
65
+ dev revisa e aprova TRD (skill atualiza trd_aprovado=true)
66
+ design_done
67
+ /sf-design gera docs/ (first_run) + specs/ (sempre)
68
+ plan_done
69
+ /sf-plan gera tasks
70
+ dev_in_progress
71
+ ↓ /sf-dev executa tasks
72
+ dev_done
73
+ /sf-dev finaliza (chama /sf-merge-docs automaticamente)
74
+ done
75
+
76
+ Se prd_existe=false: status pula direto de extract_done trd_approved (sem passar
77
+ por prd_approved). Mesmo vice-versa. Ordem das aprovações dentro do par é irrelevante.
78
+
79
+ FLUXO ALTERNATIVO — tipo=onboard (brownfield):
80
+ not_started
81
+ ↓ /sfw-onboard cria .context.md, clona repo em projetos/<repo_path>/
82
+ cloned
83
+ snapshot gerado em workspace/Input/onboard_<repo>/
84
+ analyzing
85
+ readers paralelos + analyzer consolidam TRD + docs/ + projetos.yaml
86
+ done
87
+
88
+ Em onboard:
89
+ - prd_existe = false (sempre — código é técnico, sem PRD)
90
+ - trd_existe = true (sempre)
91
+ - trd_aprovado = true (sempre — código é a verdade, sem ambiguidades, dev valida lendo)
92
+ - areas_tocadas preenchidas a partir dos GATEs do TRD
93
+ - Re-onboard reentra em "analyzing" e refaz merge aditivo
94
+
95
+ QUEM ATUALIZA:
96
+ - /sfw-onboard: cria arquivo com tipo=onboard, status=not_started → cloned → analyzing → done
97
+ - /sf-start: cria arquivo com tipo=scope, status=not_started, first_run derivado de docs/
98
+ - /sf-discovery: not_started → discovery_done
99
+ - /sf-extract: discovery_done → extract_done, preenche prd_existe + trd_existe
100
+ - PM aprova: extract_done → prd_approved (atualiza prd_aprovado=true)
101
+ - dev aprova: extract_done|prd_approved → trd_approved (atualiza trd_aprovado=true)
102
+ (skill futura /approve <doc> ou edição direta do campo + re-rodar /sf-design)
103
+ - /sf-design: (prd_approved + trd_approved) → design_done, preenche areas_tocadas
104
+ Nota: se só um dos docs existe, o outro aprovado não é exigido.
105
+ - /sf-plan: design_done → plan_done
106
+ - /sf-dev: plan_done → dev_in_progress → dev_done
107
+ - /sf-merge-docs: dev_done → done (aplica PRD+TRD em docs/)
108
+
109
+ REGRAS:
110
+ - Nunca pular etapas no fluxo de status
111
+ - Nunca editar manualmente — apenas skills atualizam este arquivo
112
+ - Se status não corresponde ao esperado, a skill deve parar e avisar
113
+ - first_run é IMUTÁVEL após criação (representa o estado no bootstrap do scope)
114
+ - prd_existe/trd_existe são IMUTÁVEIS após o /sf-extract (só mudam via re-extração
115
+ que detecta NOVO conteúdo na outra categoria)
116
+
117
+ =============================================================================
118
+ -->