context-first-cli 1.3.2 → 1.5.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.
Files changed (43) hide show
  1. package/README.md +60 -96
  2. package/dist/commands/create-orchestrator.d.ts.map +1 -1
  3. package/dist/commands/create-orchestrator.js +12 -5
  4. package/dist/commands/create-orchestrator.js.map +1 -1
  5. package/dist/commands/doctor.d.ts.map +1 -1
  6. package/dist/commands/doctor.js +15 -5
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/feature.d.ts +4 -0
  9. package/dist/commands/feature.d.ts.map +1 -1
  10. package/dist/commands/feature.js +174 -59
  11. package/dist/commands/feature.js.map +1 -1
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +3 -2
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/update-commands.d.ts +2 -0
  16. package/dist/commands/update-commands.d.ts.map +1 -0
  17. package/dist/commands/update-commands.js +160 -0
  18. package/dist/commands/update-commands.js.map +1 -0
  19. package/dist/index.js +5 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/templates/commands/engineer/start.md +4 -4
  22. package/dist/templates/commands/engineer/work.md +1 -1
  23. package/dist/templates/commands/products/check.md +31 -17
  24. package/dist/templates/commands/products/collect.md +28 -12
  25. package/dist/templates/commands/products/refine.md +25 -5
  26. package/dist/templates/commands/products/spec.md +14 -5
  27. package/dist/templates/commands/warm-up.md +41 -28
  28. package/dist/utils/ai-properties.d.ts +29 -0
  29. package/dist/utils/ai-properties.d.ts.map +1 -0
  30. package/dist/utils/ai-properties.js +72 -0
  31. package/dist/utils/ai-properties.js.map +1 -0
  32. package/dist/utils/config.d.ts +0 -4
  33. package/dist/utils/config.d.ts.map +1 -1
  34. package/dist/utils/config.js +0 -7
  35. package/dist/utils/config.js.map +1 -1
  36. package/package.json +1 -1
  37. package/templates/commands/engineer/start.md +4 -4
  38. package/templates/commands/engineer/work.md +1 -1
  39. package/templates/commands/products/check.md +31 -17
  40. package/templates/commands/products/collect.md +28 -12
  41. package/templates/commands/products/refine.md +25 -5
  42. package/templates/commands/products/spec.md +14 -5
  43. package/templates/commands/warm-up.md +41 -28
@@ -25,30 +25,30 @@ Execute este comando:
25
25
  Navegue até o diretório do orchestrator e identifique quais metaspecs existem:
26
26
 
27
27
  ```bash
28
- ls -la ../.context-orchestrator/specs/
28
+ ls -la repositório de MetaSpecs
29
29
  ```
30
30
 
31
31
  ### 2. Validação de Negócio
32
32
 
33
- Se existirem metaspecs de negócio (`specs/business/`):
33
+ Se existirem metaspecs de negócio (`repositório de MetaSpecs (seção de negócio)`):
34
34
 
35
35
  ```markdown
36
36
  ## Validação de Negócio
37
37
 
38
38
  ### Estratégia de Produto
39
- - **Arquivo**: `specs/business/PRODUCT_STRATEGY.md`
39
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)PRODUCT_STRATEGY.md`
40
40
  - **Validação**: [Esta feature está alinhada com a estratégia?]
41
41
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
42
42
  - **Notas**: [Observações]
43
43
 
44
44
  ### Personas
45
- - **Arquivo**: `specs/business/CUSTOMER_PERSONAS.md`
45
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)CUSTOMER_PERSONAS.md`
46
46
  - **Validação**: [Atende a persona correta?]
47
47
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
48
48
  - **Notas**: [Observações]
49
49
 
50
50
  ### Métricas
51
- - **Arquivo**: `specs/business/PRODUCT_METRICS.md`
51
+ - **Arquivo**: `repositório de MetaSpecs (seção de negócio)PRODUCT_METRICS.md`
52
52
  - **Validação**: [Métrica de sucesso está documentada?]
53
53
  - **Status**: ✅ Alinhado / ⚠️ Parcialmente / ❌ Desalinhado
54
54
  - **Notas**: [Observações]
@@ -56,32 +56,32 @@ Se existirem metaspecs de negócio (`specs/business/`):
56
56
 
57
57
  ### 3. Validação Técnica
58
58
 
59
- Se existirem metaspecs técnicas (`specs/technical/`):
59
+ Se existirem metaspecs técnicas (`repositório de MetaSpecs (seção técnica)`):
60
60
 
61
61
  ```markdown
62
62
  ## Validação Técnica
63
63
 
64
64
  ### Stack Tecnológica
65
- - **Arquivo**: `specs/technical/meta/stack.md`
65
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)meta/stack.md`
66
66
  - **Validação**: [Usa apenas tecnologias aprovadas?]
67
67
  - **Status**: ✅ Conforme / ⚠️ Exceção justificada / ❌ Não conforme
68
68
  - **Notas**: [Tecnologias usadas e justificativas]
69
69
 
70
70
  ### Arquitetura
71
- - **Arquivo**: `specs/technical/ARCHITECTURE.md`
71
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)ARCHITECTURE.md`
72
72
  - **Validação**: [Segue padrões arquiteturais?]
73
73
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
74
74
  - **Notas**: [Observações]
75
75
 
76
76
  ### ADRs (Architecture Decision Records)
77
- - **Diretório**: `specs/technical/adr/`
77
+ - **Diretório**: `repositório de MetaSpecs (seção técnica)adr/`
78
78
  - **Validação**: [Respeita decisões arquiteturais documentadas?]
79
79
  - **ADRs Relevantes**: [Lista de ADRs verificados]
80
80
  - **Status**: ✅ Conforme / ⚠️ Conflito menor / ❌ Conflito crítico
81
81
  - **Notas**: [Observações]
82
82
 
83
83
  ### Regras de Negócio
84
- - **Arquivo**: `specs/technical/BUSINESS_LOGIC.md`
84
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)BUSINESS_LOGIC.md`
85
85
  - **Validação**: [Implementa regras de negócio corretamente?]
86
86
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
87
87
  - **Notas**: [Observações]
@@ -93,17 +93,17 @@ Se existirem metaspecs técnicas (`specs/technical/`):
93
93
  ## Validação de Padrões
94
94
 
95
95
  ### Código
96
- - **Arquivo**: `specs/technical/CODE_STANDARDS.md`
96
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)CODE_STANDARDS.md`
97
97
  - **Validação**: [Segue padrões de código?]
98
98
  - **Status**: ✅ Conforme / ⚠️ Pequenos desvios / ❌ Não conforme
99
99
 
100
100
  ### Testes
101
- - **Arquivo**: `specs/technical/TEST_STANDARDS.md`
101
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)TEST_STANDARDS.md`
102
102
  - **Validação**: [Estratégia de testes adequada?]
103
103
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
104
104
 
105
105
  ### Documentação
106
- - **Arquivo**: `specs/technical/DOC_STANDARDS.md`
106
+ - **Arquivo**: `repositório de MetaSpecs (seção técnica)DOC_STANDARDS.md`
107
107
  - **Validação**: [Documentação adequada?]
108
108
  - **Status**: ✅ Conforme / ⚠️ Parcialmente / ❌ Não conforme
109
109
  ```
@@ -140,9 +140,20 @@ Se houver desvios justificados:
140
140
  - **Documentação**: [Onde foi documentado]
141
141
  ```
142
142
 
143
- ## 📄 Relatório de Validação
143
+ ## 📄 Salvamento do Relatório de Validação
144
144
 
145
- Crie `./.sessions/<ISSUE-ID>/check-report.md`:
145
+ **PRIORIDADE 1: Usar MCP (Model Context Protocol)**
146
+
147
+ - Leia `ai.properties.md` do orchestrator para identificar o `task_management_system`
148
+ - Use o MCP apropriado para adicionar o relatório à issue:
149
+ - Adicione como comentário na issue
150
+ - Atualize labels/tags conforme resultado (ex: "validated", "needs-adjustment", "blocked")
151
+ - Se houver conflitos críticos, atualize status da issue
152
+ - Informe ao usuário: "✅ Relatório de validação adicionado à issue [ID]"
153
+
154
+ **FALLBACK: Criar arquivo .md apenas se MCP falhar**
155
+
156
+ Se o MCP não estiver disponível ou falhar, crie `./.sessions/<ISSUE-ID>/check-report.md`:
146
157
 
147
158
  ```markdown
148
159
  # Relatório de Validação - [ISSUE-ID]
@@ -174,14 +185,17 @@ Crie `./.sessions/<ISSUE-ID>/check-report.md`:
174
185
  - [ ] Bloqueado
175
186
  ```
176
187
 
188
+ Informe ao usuário: "⚠️ Relatório salvo localmente em .sessions/ (task manager não disponível)"
189
+
177
190
  ## 🚨 Ação em Caso de Conflitos
178
191
 
179
192
  Se conflitos críticos forem encontrados:
180
193
  1. 🛑 **PARE** o processo atual
181
194
  2. 📝 **DOCUMENTE** todos os conflitos
182
195
  3. 💬 **ALERTE** o usuário e stakeholders
183
- 4. 🔄 **AJUSTE** o plano/implementação conforme necessário
184
- 5. **REVALIDE** após ajustes
196
+ 4. **Via MCP**: Atualize status da issue para "Bloqueado" ou "Requer Ajustes"
197
+ 5. 🔄 **AJUSTE** o plano/implementação conforme necessário
198
+ 6. ✅ **REVALIDE** após ajustes
185
199
 
186
200
  ---
187
201
 
@@ -6,7 +6,7 @@ Você é um especialista em produto responsável por coletar e documentar novas
6
6
 
7
7
  **Este comando é APENAS para planejamento e documentação:**
8
8
  - ✅ Coletar e entender requisitos
9
- - ✅ Criar issue no task manager (se configurado)
9
+ - ✅ Criar issue no task manager via MCP
10
10
  - ✅ Fazer perguntas de esclarecimento
11
11
  - ❌ **NÃO implementar código**
12
12
  - ❌ **NÃO fazer edits em arquivos de código**
@@ -18,13 +18,13 @@ Você é um especialista em produto responsável por coletar e documentar novas
18
18
  ## Contexto do Projeto
19
19
 
20
20
  Antes de iniciar, carregue o contexto consultando:
21
- - `context-manifest.json` - Estrutura do projeto
22
- - `specs/business/` - Contexto de negócio (se disponível)
23
- - `specs/technical/` - Contexto técnico (se disponível)
21
+ - `context-manifest.json` do orchestrator - Estrutura do projeto
22
+ - Repositório de MetaSpecs (definido no manifest) - Leia os arquivos `index.md` como referência
23
+ - `README.md` dos repositórios envolvidos
24
24
 
25
25
  ## Seu Objetivo
26
26
 
27
- Entender a solicitação do usuário e capturá-la como issue para refinamento posterior.
27
+ Entender a solicitação do usuário e capturá-la como issue no task manager (via MCP).
28
28
 
29
29
  **Nesta fase, você NÃO precisa:**
30
30
  - ❌ Escrever especificação completa
@@ -80,13 +80,29 @@ Apenas certifique-se de que a ideia esteja **adequadamente compreendida**.
80
80
  - Faça ajustes conforme feedback
81
81
  - Obtenha aprovação final
82
82
 
83
- 4. **Salvamento**
84
- - **Se task manager estiver configurado**:
85
- - Use o MCP apropriado para criar a issue (ex: Linear, Jira)
86
- - Todos os dados ficam no task manager
87
- - **Se não houver task manager**:
88
- - Crie arquivo em `./.sessions/<ISSUE-ID>/collect.md`
89
- - Inclua data, tipo e conteúdo completo
83
+ 4. **Salvamento da Issue**
84
+
85
+ **PRIORIDADE 1: Usar MCP (Model Context Protocol)**
86
+
87
+ Verifique se MCP configurado para task manager:
88
+ - Leia `ai.properties.md` do orchestrator para identificar o `task_management_system`
89
+ - Se `task_management_system=jira`: Use MCP do Jira para criar a issue
90
+ - Se `task_management_system=linear`: Use MCP do Linear para criar a issue
91
+ - Se `task_management_system=github`: Use MCP do GitHub para criar a issue
92
+
93
+ **Ao usar MCP:**
94
+ - Crie a issue diretamente no task manager
95
+ - Obtenha o ID da issue criada (ex: FIN-123, LIN-456)
96
+ - Informe ao usuário: "✅ Issue [ID] criada no [task manager]"
97
+ - **NÃO crie arquivo .md**
98
+
99
+ **FALLBACK: Criar arquivo .md apenas se MCP falhar**
100
+
101
+ Se o MCP não estiver disponível ou falhar:
102
+ - Crie arquivo em `./.sessions/<ISSUE-ID>/collect.md`
103
+ - Use formato de ID manual: `LOCAL-001`, `LOCAL-002`, etc.
104
+ - Inclua data, tipo e conteúdo completo
105
+ - Informe ao usuário: "⚠️ Issue salva localmente em .sessions/ (task manager não disponível)"
90
106
 
91
107
  ## Perguntas de Esclarecimento
92
108
 
@@ -28,11 +28,19 @@ Refinar a issue coletada, esclarecendo:
28
28
 
29
29
  ### 1. Carregar Issue
30
30
 
31
- **Se task manager configurado**:
32
- - Leia a issue usando o MCP apropriado
31
+ **PRIORIDADE 1: Usar MCP (Model Context Protocol)**
32
+
33
+ - Leia `ai.properties.md` do orchestrator para identificar o `task_management_system`
34
+ - Use o MCP apropriado para buscar a issue:
35
+ - `task_management_system=jira`: Use MCP do Jira
36
+ - `task_management_system=linear`: Use MCP do Linear
37
+ - `task_management_system=github`: Use MCP do GitHub
38
+ - Carregue todos os dados da issue (título, descrição, labels, etc.)
39
+
40
+ **FALLBACK: Se MCP não estiver disponível ou falhar**
33
41
 
34
- **Senão**:
35
42
  - Leia `./.sessions/<ISSUE-ID>/collect.md`
43
+ - Se o arquivo não existir, informe o erro ao usuário
36
44
 
37
45
  ### 2. Análise de Escopo
38
46
 
@@ -110,9 +118,19 @@ Forneça estimativa de esforço:
110
118
 
111
119
  Liste perguntas que ainda precisam ser respondidas antes de iniciar a implementação.
112
120
 
113
- ## 📄 Documentação do Refinamento
121
+ ## 📄 Salvamento do Refinamento
122
+
123
+ **PRIORIDADE 1: Atualizar via MCP**
114
124
 
115
- Crie/atualize `./.sessions/<ISSUE-ID>/refine.md`:
125
+ - Use o MCP do task manager para atualizar a issue
126
+ - Adicione os critérios de aceitação como comentário ou campo customizado
127
+ - Atualize labels/tags se necessário (ex: "refined", "ready-for-spec")
128
+ - Adicione estimativa se o task manager suportar
129
+ - Informe ao usuário: "✅ Issue [ID] atualizada com refinamento"
130
+
131
+ **FALLBACK: Criar arquivo .md apenas se MCP falhar**
132
+
133
+ Se o MCP não estiver disponível ou falhar, crie/atualize `./.sessions/<ISSUE-ID>/refine.md`:
116
134
 
117
135
  ```markdown
118
136
  # [Título da Issue] - Refinamento
@@ -153,6 +171,8 @@ Crie/atualize `./.sessions/<ISSUE-ID>/refine.md`:
153
171
  - [Risco 2 e mitigação]
154
172
  ```
155
173
 
174
+ Informe ao usuário: "⚠️ Refinamento salvo localmente em .sessions/ (task manager não disponível)"
175
+
156
176
  ## 🔍 Validação
157
177
 
158
178
  Valide o refinamento contra:
@@ -203,12 +203,20 @@ Justificativa: [Por que ficam para depois]
203
203
 
204
204
  ## 📄 Salvamento do PRD
205
205
 
206
- **Se task manager configurado**:
207
- - Adicione o PRD como comentário na issue
208
- - Ou anexe como arquivo
206
+ **PRIORIDADE 1: Usar MCP (Model Context Protocol)**
209
207
 
210
- **Senão**:
208
+ - Leia `ai.properties.md` do orchestrator para identificar o `task_management_system`
209
+ - Use o MCP apropriado para atualizar a issue com o PRD:
210
+ - Adicione o PRD completo como comentário na issue
211
+ - Ou anexe como arquivo (se o task manager suportar)
212
+ - Atualize status/labels (ex: "spec-ready", "ready-for-dev")
213
+ - Informe ao usuário: "✅ PRD adicionado à issue [ID]"
214
+
215
+ **FALLBACK: Criar arquivo .md apenas se MCP falhar**
216
+
217
+ Se o MCP não estiver disponível ou falhar:
211
218
  - Salve em `./.sessions/<ISSUE-ID>/prd.md`
219
+ - Informe ao usuário: "⚠️ PRD salvo localmente em .sessions/ (task manager não disponível)"
212
220
 
213
221
  ## 🔍 Revisão e Aprovação
214
222
 
@@ -216,7 +224,8 @@ Antes de finalizar:
216
224
  1. Revise o PRD com stakeholders
217
225
  2. Valide contra metaspecs (se disponíveis)
218
226
  3. Obtenha aprovação para iniciar implementação
219
- 4. Atualize a issue no task manager com status "Pronto para Desenvolvimento"
227
+ 4. **Via MCP**: Atualize a issue no task manager com status "Pronto para Desenvolvimento"
228
+ 5. **Fallback**: Documente aprovação em `./.sessions/<ISSUE-ID>/prd.md`
220
229
 
221
230
  ---
222
231
 
@@ -7,51 +7,64 @@ Este comando prepara o ambiente carregando o contexto completo do projeto e do w
7
7
  Verifique se você está dentro de um workspace criado pelo `context-cli`:
8
8
 
9
9
  ```bash
10
- # Procurar pelo arquivo .workspace.json no diretório atual ou pais
10
+ # Verificar se está em um diretório de workspace
11
11
  pwd
12
- ls -la .workspace.json 2>/dev/null || echo "Não está em um workspace"
12
+ # O workspace geralmente está em ~/workspaces/<ISSUE-ID>/
13
13
  ```
14
14
 
15
- Se não estiver em um workspace, pergunte ao usuário qual workspace usar ou se deve criar um novo.
15
+ Se não estiver em um workspace, pergunte ao usuário qual workspace usar ou se deve criar um novo com `feature:start`.
16
16
 
17
- ## 2. Carregar Configuração do Orchestrator
17
+ ## 2. Carregar Configuração do Projeto
18
18
 
19
- Leia o arquivo `.workspace.json` para identificar:
20
- - Issue ID do workspace
21
- - Repositórios incluídos neste workspace
22
- - Data de criação e última atualização
19
+ Identifique o orchestrator do projeto:
23
20
 
24
- ## 3. Carregar Metaspecs (se disponíveis)
21
+ 1. **Procure o arquivo `.contextrc.json`** em qualquer um dos repositórios do workspace
22
+ 2. Este arquivo contém a URL do repositório orchestrator
23
+ 3. Se o orchestrator ainda não estiver clonado localmente, clone-o
25
24
 
26
- Navegue até o diretório do orchestrator (geralmente `../.context-orchestrator/`) e leia:
25
+ ## 3. Carregar Manifesto do Projeto
27
26
 
28
- 1. **Manifesto do Projeto**: `context-manifest.json`
29
- - Entenda a estrutura de repositórios
30
- - Identifique dependências entre repos
27
+ Leia o `context-manifest.json` do orchestrator para entender:
28
+ - Lista completa de repositórios do ecossistema
29
+ - URL do repositório de MetaSpecs
30
+ - Dependências entre repositórios
31
+ - Roles de cada repositório (application, library, service, specs-provider)
31
32
 
32
- 2. **Índices de Documentação** (se existirem):
33
- - `specs/business/index.md` - Contexto de negócio
34
- - `specs/technical/index.md` - Contexto técnico
35
- - `README.md` - Visão geral do projeto
33
+ ## 4. Carregar MetaSpecs
36
34
 
37
- 3. **Especificações Core** (se existirem):
38
- - `specs/business/PRODUCT_STRATEGY.md` - Estratégia do produto
39
- - `specs/technical/meta/intent.md` - Objetivos e constraints
40
- - `specs/technical/meta/stack.md` - Stack tecnológica e ADRs
35
+ O repositório de MetaSpecs está definido no `context-manifest.json` (geralmente com `role: "specs-provider"`).
41
36
 
42
- ## 4. Contexto dos Repositórios
37
+ **Leia sempre os arquivos de índice primeiro:**
43
38
 
44
- Para cada repositório no workspace, leia:
45
- - `README.md` - Entenda o propósito do repositório
46
- - `package.json` ou arquivo equivalente - Identifique dependências e scripts
39
+ 1. **`README.md`** - Visão geral do projeto e estrutura de documentação
40
+ 2. **`index.md`** (na raiz ou em subpastas) - Índice de especificações disponíveis
47
41
 
48
- ## 5. Navegação Inteligente
42
+ **Use os índices como referência** para navegar até as especificações específicas que você precisa. Não assuma que arquivos específicos existem - sempre consulte os índices primeiro.
43
+
44
+ ## 5. Carregar Sessão Atual (se existir)
45
+
46
+ Verifique se existe uma sessão salva para este workspace:
47
+
48
+ ```bash
49
+ # Procurar por sessão no orchestrator
50
+ ls -la .sessions/<ISSUE-ID>/ 2>/dev/null
51
+ ```
52
+
53
+ Se existir, leia os arquivos de sessão para recuperar o contexto da última execução.
54
+
55
+ ## 6. Contexto dos Repositórios
56
+
57
+ Para cada repositório presente no workspace, leia:
58
+ - `README.md` - Propósito e visão geral do repositório
59
+ - Arquivo de configuração principal (`package.json`, `pom.xml`, `requirements.txt`, etc.)
60
+
61
+ ## 7. Navegação Inteligente
49
62
 
50
63
  - **Código**: Use ferramentas de busca (glob, grep) para localizar arquivos relevantes
51
- - **Documentação**: Use os índices carregados para encontrar especificações
64
+ - **Documentação**: Use os índices dos MetaSpecs como referência
52
65
  - **Aguarde Instruções**: NÃO leia outros arquivos agora. Aguarde o próximo comando.
53
66
 
54
- ## 6. Princípio Jidoka (Parar ao Detectar Problemas)
67
+ ## 8. Princípio Jidoka (Parar ao Detectar Problemas)
55
68
 
56
69
  Se detectar desalinhamento, conflitos ou problemas:
57
70
  1. 🛑 **PARE** imediatamente