@orchestrator-claude/cli 1.4.0
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 +74 -0
- package/dist/api-client/OrchestratorAPIClient.d.ts +111 -0
- package/dist/api-client/OrchestratorAPIClient.d.ts.map +1 -0
- package/dist/api-client/OrchestratorAPIClient.js +176 -0
- package/dist/api-client/OrchestratorAPIClient.js.map +1 -0
- package/dist/api-client/index.d.ts +11 -0
- package/dist/api-client/index.d.ts.map +1 -0
- package/dist/api-client/index.js +10 -0
- package/dist/api-client/index.js.map +1 -0
- package/dist/api-client/retry.d.ts +29 -0
- package/dist/api-client/retry.d.ts.map +1 -0
- package/dist/api-client/retry.js +85 -0
- package/dist/api-client/retry.js.map +1 -0
- package/dist/api-client/types.d.ts +148 -0
- package/dist/api-client/types.d.ts.map +1 -0
- package/dist/api-client/types.js +10 -0
- package/dist/api-client/types.js.map +1 -0
- package/dist/commands/AgentsCommand.d.ts +74 -0
- package/dist/commands/AgentsCommand.d.ts.map +1 -0
- package/dist/commands/AgentsCommand.js +170 -0
- package/dist/commands/AgentsCommand.js.map +1 -0
- package/dist/commands/InitCommand.d.ts +63 -0
- package/dist/commands/InitCommand.d.ts.map +1 -0
- package/dist/commands/InitCommand.js +150 -0
- package/dist/commands/InitCommand.js.map +1 -0
- package/dist/commands/MigrateCommand.d.ts +93 -0
- package/dist/commands/MigrateCommand.d.ts.map +1 -0
- package/dist/commands/MigrateCommand.js +260 -0
- package/dist/commands/MigrateCommand.js.map +1 -0
- package/dist/commands/StatusCommand.d.ts +61 -0
- package/dist/commands/StatusCommand.d.ts.map +1 -0
- package/dist/commands/StatusCommand.js +142 -0
- package/dist/commands/StatusCommand.js.map +1 -0
- package/dist/commands/TemplatesCommand.d.ts +69 -0
- package/dist/commands/TemplatesCommand.d.ts.map +1 -0
- package/dist/commands/TemplatesCommand.js +147 -0
- package/dist/commands/TemplatesCommand.js.map +1 -0
- package/dist/commands/WorkflowCommand.d.ts +82 -0
- package/dist/commands/WorkflowCommand.d.ts.map +1 -0
- package/dist/commands/WorkflowCommand.js +203 -0
- package/dist/commands/WorkflowCommand.js.map +1 -0
- package/dist/config/CLIConfig.d.ts +66 -0
- package/dist/config/CLIConfig.d.ts.map +1 -0
- package/dist/config/CLIConfig.js +60 -0
- package/dist/config/CLIConfig.js.map +1 -0
- package/dist/formatters/OutputFormatter.d.ts +102 -0
- package/dist/formatters/OutputFormatter.d.ts.map +1 -0
- package/dist/formatters/OutputFormatter.js +182 -0
- package/dist/formatters/OutputFormatter.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +249 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/.gitkeep +0 -0
- package/dist/templates/TemplateEngine.d.ts +90 -0
- package/dist/templates/TemplateEngine.d.ts.map +1 -0
- package/dist/templates/TemplateEngine.js +149 -0
- package/dist/templates/TemplateEngine.js.map +1 -0
- package/dist/templates/base/CLAUDE.md.hbs +362 -0
- package/dist/templates/base/claude/agents/implementer.md +446 -0
- package/dist/templates/base/claude/agents/orchestrator.md +155 -0
- package/dist/templates/base/claude/agents/planner.md +348 -0
- package/dist/templates/base/claude/agents/researcher.md +390 -0
- package/dist/templates/base/claude/agents/reviewer.md +444 -0
- package/dist/templates/base/claude/agents/specifier.md +331 -0
- package/dist/templates/base/claude/agents/task-generator.md +382 -0
- package/dist/templates/base/claude/hooks/post-artifact-generate.sh +39 -0
- package/dist/templates/base/claude/hooks/post-implement-validate.sh +139 -0
- package/dist/templates/base/claude/hooks/post-phase-checkpoint.sh +322 -0
- package/dist/templates/base/claude/hooks/pre-agent-invoke.sh +34 -0
- package/dist/templates/base/claude/hooks/pre-phase-advance.sh +40 -0
- package/dist/templates/base/claude/hooks/track-agent-invocation.sh +230 -0
- package/dist/templates/base/claude/orchestrator-config.json +141 -0
- package/dist/templates/base/claude/settings.json +80 -0
- package/dist/templates/base/claude/skills/artifact-validator/SKILL.md +226 -0
- package/dist/templates/base/claude/skills/docs-guardian/SKILL.md +230 -0
- package/dist/templates/base/claude/skills/kb-lookup/SKILL.md +257 -0
- package/dist/templates/base/claude/skills/phase-gate-evaluator/SKILL.md +274 -0
- package/dist/templates/base/claude/skills/workflow-status/SKILL.md +322 -0
- package/dist/templates/base/docker-compose.yml.hbs +20 -0
- package/dist/templates/base/mcp.json.hbs +37 -0
- package/dist/templates/base/orchestrator/.state/.gitkeep +0 -0
- package/dist/templates/base/orchestrator-index.json.hbs +37 -0
- package/dist/templates/base/package.json.hbs +40 -0
- package/dist/templates/default/.orchestrator/orchestrator-index.json +19 -0
- package/dist/templates/default/README.md +58 -0
- package/dist/templates/default/docker-compose.yml +24 -0
- package/dist/templates/default/template.json +10 -0
- package/dist/templates/projects/api/files/index.ts.hbs +30 -0
- package/dist/templates/projects/api/files/server.ts.hbs +63 -0
- package/dist/templates/projects/api/files/tsconfig.json.hbs +27 -0
- package/dist/templates/projects/api/files/vitest.config.ts.hbs +28 -0
- package/dist/templates/projects/api/template.config.json +238 -0
- package/dist/templates/projects/api/template.config.ts +149 -0
- package/dist/templates/projects/cli/files/cli.ts.hbs +50 -0
- package/dist/templates/projects/cli/files/index.ts.hbs +8 -0
- package/dist/templates/projects/cli/files/tsconfig.json.hbs +27 -0
- package/dist/templates/projects/cli/files/vitest.config.ts.hbs +28 -0
- package/dist/templates/projects/cli/template.config.json +213 -0
- package/dist/templates/projects/cli/template.config.ts +126 -0
- package/dist/templates/projects/frontend/files/App.tsx.hbs +31 -0
- package/dist/templates/projects/frontend/files/index.html.hbs +13 -0
- package/dist/templates/projects/frontend/files/main.tsx.hbs +22 -0
- package/dist/templates/projects/frontend/files/tsconfig.json.hbs +34 -0
- package/dist/templates/projects/frontend/files/tsconfig.node.json.hbs +10 -0
- package/dist/templates/projects/frontend/files/vite.config.ts.hbs +19 -0
- package/dist/templates/projects/frontend/files/vitest.config.ts.hbs +36 -0
- package/dist/templates/projects/frontend/template.config.json +241 -0
- package/dist/templates/projects/frontend/template.config.ts +153 -0
- package/dist/templates/projects/minimal/files/claude-settings.json.hbs +20 -0
- package/dist/templates/projects/minimal/files/env.example.hbs +17 -0
- package/dist/templates/projects/minimal/files/gitignore.hbs +41 -0
- package/dist/templates/projects/minimal/files/index.ts.hbs +13 -0
- package/dist/templates/projects/minimal/files/tsconfig.json.hbs +27 -0
- package/dist/templates/projects/minimal/template.config.json +185 -0
- package/dist/templates/projects/minimal/template.config.ts +88 -0
- package/package.json +37 -0
- package/templates/.gitkeep +0 -0
- package/templates/base/CLAUDE.md.hbs +362 -0
- package/templates/base/claude/agents/implementer.md +446 -0
- package/templates/base/claude/agents/orchestrator.md +155 -0
- package/templates/base/claude/agents/planner.md +348 -0
- package/templates/base/claude/agents/researcher.md +390 -0
- package/templates/base/claude/agents/reviewer.md +444 -0
- package/templates/base/claude/agents/specifier.md +331 -0
- package/templates/base/claude/agents/task-generator.md +382 -0
- package/templates/base/claude/hooks/post-artifact-generate.sh +39 -0
- package/templates/base/claude/hooks/post-implement-validate.sh +139 -0
- package/templates/base/claude/hooks/post-phase-checkpoint.sh +322 -0
- package/templates/base/claude/hooks/pre-agent-invoke.sh +34 -0
- package/templates/base/claude/hooks/pre-phase-advance.sh +40 -0
- package/templates/base/claude/hooks/track-agent-invocation.sh +230 -0
- package/templates/base/claude/orchestrator-config.json +141 -0
- package/templates/base/claude/settings.json +80 -0
- package/templates/base/claude/skills/artifact-validator/SKILL.md +226 -0
- package/templates/base/claude/skills/docs-guardian/SKILL.md +230 -0
- package/templates/base/claude/skills/kb-lookup/SKILL.md +257 -0
- package/templates/base/claude/skills/phase-gate-evaluator/SKILL.md +274 -0
- package/templates/base/claude/skills/workflow-status/SKILL.md +322 -0
- package/templates/base/docker-compose.yml.hbs +20 -0
- package/templates/base/mcp.json.hbs +37 -0
- package/templates/base/orchestrator/.state/.gitkeep +0 -0
- package/templates/base/orchestrator-index.json.hbs +37 -0
- package/templates/base/package.json.hbs +40 -0
- package/templates/default/.orchestrator/orchestrator-index.json +19 -0
- package/templates/default/README.md +58 -0
- package/templates/default/docker-compose.yml +24 -0
- package/templates/default/template.json +10 -0
- package/templates/projects/api/files/index.ts.hbs +30 -0
- package/templates/projects/api/files/server.ts.hbs +63 -0
- package/templates/projects/api/files/tsconfig.json.hbs +27 -0
- package/templates/projects/api/files/vitest.config.ts.hbs +28 -0
- package/templates/projects/api/template.config.json +238 -0
- package/templates/projects/api/template.config.ts +149 -0
- package/templates/projects/cli/files/cli.ts.hbs +50 -0
- package/templates/projects/cli/files/index.ts.hbs +8 -0
- package/templates/projects/cli/files/tsconfig.json.hbs +27 -0
- package/templates/projects/cli/files/vitest.config.ts.hbs +28 -0
- package/templates/projects/cli/template.config.json +213 -0
- package/templates/projects/cli/template.config.ts +126 -0
- package/templates/projects/frontend/files/App.tsx.hbs +31 -0
- package/templates/projects/frontend/files/index.html.hbs +13 -0
- package/templates/projects/frontend/files/main.tsx.hbs +22 -0
- package/templates/projects/frontend/files/tsconfig.json.hbs +34 -0
- package/templates/projects/frontend/files/tsconfig.node.json.hbs +10 -0
- package/templates/projects/frontend/files/vite.config.ts.hbs +19 -0
- package/templates/projects/frontend/files/vitest.config.ts.hbs +36 -0
- package/templates/projects/frontend/template.config.json +241 -0
- package/templates/projects/frontend/template.config.ts +153 -0
- package/templates/projects/minimal/files/claude-settings.json.hbs +20 -0
- package/templates/projects/minimal/files/env.example.hbs +17 -0
- package/templates/projects/minimal/files/gitignore.hbs +41 -0
- package/templates/projects/minimal/files/index.ts.hbs +13 -0
- package/templates/projects/minimal/files/tsconfig.json.hbs +27 -0
- package/templates/projects/minimal/template.config.json +185 -0
- package/templates/projects/minimal/template.config.ts +88 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: phase-gate-evaluator
|
|
3
|
+
description: Avalia gates entre fases do workflow para verificar se criterios de qualidade foram atendidos. Use antes de avancar fase ou para diagnosticar bloqueios.
|
|
4
|
+
allowed-tools: Read, Grep, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Phase Gate Evaluator Skill
|
|
8
|
+
|
|
9
|
+
## Descricao
|
|
10
|
+
|
|
11
|
+
Esta skill avalia se um workflow pode avancar de uma fase para a proxima,
|
|
12
|
+
verificando criterios de qualidade (gates) definidos para cada transicao.
|
|
13
|
+
|
|
14
|
+
## Quando Usar
|
|
15
|
+
|
|
16
|
+
Use esta skill quando:
|
|
17
|
+
- Apos validacao bem-sucedida de um artefato
|
|
18
|
+
- Para verificar se pode avancar para proxima fase
|
|
19
|
+
- Para diagnosticar por que um gate nao passou
|
|
20
|
+
- Para listar criterios pendentes de uma fase
|
|
21
|
+
|
|
22
|
+
## Invocacao
|
|
23
|
+
|
|
24
|
+
Exemplos de como invocar esta skill:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
"Avalie o gate da fase specify para o workflow wf-123"
|
|
28
|
+
|
|
29
|
+
"Verifique se posso avancar de plan para tasks"
|
|
30
|
+
|
|
31
|
+
"Liste os criterios pendentes do gate de implementacao"
|
|
32
|
+
|
|
33
|
+
"Por que o gate da fase tasks nao passou?"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Parametros
|
|
37
|
+
|
|
38
|
+
| Parametro | Tipo | Obrigatorio | Descricao |
|
|
39
|
+
|-----------|------|-------------|-----------|
|
|
40
|
+
| `workflow_id` | string | Sim | ID do workflow sendo avaliado |
|
|
41
|
+
| `phase` | enum | Sim | research, specify, plan, tasks, implement |
|
|
42
|
+
| `evaluation_mode` | enum | Nao | evaluate (default), diagnose, list_criteria |
|
|
43
|
+
|
|
44
|
+
### Valores de evaluation_mode
|
|
45
|
+
|
|
46
|
+
- **evaluate**: Avalia gate e retorna passed/failed
|
|
47
|
+
- **diagnose**: Explica em detalhes por que gate falhou
|
|
48
|
+
- **list_criteria**: Lista todos os criterios do gate sem avaliar
|
|
49
|
+
|
|
50
|
+
## Gates por Fase
|
|
51
|
+
|
|
52
|
+
### RESEARCH → SPECIFY
|
|
53
|
+
```yaml
|
|
54
|
+
gate_id: research-complete
|
|
55
|
+
criteria:
|
|
56
|
+
- research_context_exists: true
|
|
57
|
+
- research_context_validated: true
|
|
58
|
+
- minimum_sources: 3
|
|
59
|
+
- has_patterns_identified: true
|
|
60
|
+
- has_risks_documented: true
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### SPECIFY → PLAN
|
|
64
|
+
```yaml
|
|
65
|
+
gate_id: specification-complete
|
|
66
|
+
criteria:
|
|
67
|
+
- spec_artifact_exists: true
|
|
68
|
+
- spec_artifact_validated: true
|
|
69
|
+
- all_rf_have_acceptance_criteria: true
|
|
70
|
+
- all_rnf_have_metrics: true
|
|
71
|
+
- scope_clearly_defined: true
|
|
72
|
+
- dependencies_identified: true
|
|
73
|
+
- risks_documented: true
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### PLAN → TASKS
|
|
77
|
+
```yaml
|
|
78
|
+
gate_id: plan-complete
|
|
79
|
+
criteria:
|
|
80
|
+
- plan_artifact_exists: true
|
|
81
|
+
- plan_artifact_validated: true
|
|
82
|
+
- architecture_decisions_documented: true
|
|
83
|
+
- phases_defined: true
|
|
84
|
+
- deliverables_per_phase: true
|
|
85
|
+
- technical_risks_mitigated: true
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### TASKS → IMPLEMENT
|
|
89
|
+
```yaml
|
|
90
|
+
gate_id: tasks-complete
|
|
91
|
+
criteria:
|
|
92
|
+
- tasks_artifact_exists: true
|
|
93
|
+
- tasks_artifact_validated: true
|
|
94
|
+
- all_tasks_have_acceptance_criteria: true
|
|
95
|
+
- dependencies_form_dag: true
|
|
96
|
+
- no_orphan_tasks: true
|
|
97
|
+
- estimates_provided: true
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### IMPLEMENT → DONE
|
|
101
|
+
```yaml
|
|
102
|
+
gate_id: implementation-complete
|
|
103
|
+
criteria:
|
|
104
|
+
- all_tasks_completed: true
|
|
105
|
+
- all_tests_passing: true
|
|
106
|
+
- code_review_approved: true
|
|
107
|
+
- documentation_updated: true
|
|
108
|
+
- checkpoint_created: true
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Output
|
|
112
|
+
|
|
113
|
+
### Modo: evaluate
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"gateId": "specification-complete",
|
|
117
|
+
"workflowId": "wf-123",
|
|
118
|
+
"phase": "specify",
|
|
119
|
+
"nextPhase": "plan",
|
|
120
|
+
"evaluatedAt": "2025-12-09T10:30:00Z",
|
|
121
|
+
|
|
122
|
+
"passed": false,
|
|
123
|
+
|
|
124
|
+
"criteria": [
|
|
125
|
+
{
|
|
126
|
+
"id": "spec_artifact_exists",
|
|
127
|
+
"description": "Artefato de especificacao existe",
|
|
128
|
+
"passed": true,
|
|
129
|
+
"evidence": ".orchestrator/artifacts/specify/spec.md"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "spec_artifact_validated",
|
|
133
|
+
"description": "Artefato validado sem erros",
|
|
134
|
+
"passed": true,
|
|
135
|
+
"evidence": "Validation passed at 2025-12-09T10:25:00Z"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "all_rf_have_acceptance_criteria",
|
|
139
|
+
"description": "Todos RFs tem criterios de aceite",
|
|
140
|
+
"passed": false,
|
|
141
|
+
"evidence": "RF-003 e RF-005 sem criterios de aceite",
|
|
142
|
+
"blockers": ["RF-003", "RF-005"]
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
|
|
146
|
+
"summary": {
|
|
147
|
+
"totalCriteria": 7,
|
|
148
|
+
"passedCriteria": 5,
|
|
149
|
+
"failedCriteria": 2,
|
|
150
|
+
"passRate": 71
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
"recommendation": "Adicione criterios de aceite para RF-003 e RF-005 antes de avancar"
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Modo: diagnose
|
|
158
|
+
```json
|
|
159
|
+
{
|
|
160
|
+
"gateId": "specification-complete",
|
|
161
|
+
"diagnosis": {
|
|
162
|
+
"failedCriteria": [
|
|
163
|
+
{
|
|
164
|
+
"id": "all_rf_have_acceptance_criteria",
|
|
165
|
+
"reason": "2 requisitos funcionais nao tem criterios de aceite verificaveis",
|
|
166
|
+
"affectedItems": ["RF-003", "RF-005"],
|
|
167
|
+
"howToFix": "Para cada RF, adicione uma secao 'Criterio de Aceite' com items verificaveis",
|
|
168
|
+
"example": "RF-003:\n Criterio de Aceite:\n - [ ] Usuario consegue fazer login em < 3 segundos\n - [ ] Mensagem de erro clara se credenciais invalidas"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"rootCause": "Especificacao incompleta - requisitos sem verificabilidade",
|
|
172
|
+
"estimatedEffort": "30 minutos para adicionar criterios faltantes",
|
|
173
|
+
"priority": "Alta - bloqueia avanco do workflow"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Modo: list_criteria
|
|
179
|
+
```json
|
|
180
|
+
{
|
|
181
|
+
"gateId": "specification-complete",
|
|
182
|
+
"phase": "specify",
|
|
183
|
+
"criteria": [
|
|
184
|
+
{
|
|
185
|
+
"id": "spec_artifact_exists",
|
|
186
|
+
"description": "Artefato de especificacao existe em .orchestrator/artifacts/specify/",
|
|
187
|
+
"type": "existence",
|
|
188
|
+
"required": true
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"id": "spec_artifact_validated",
|
|
192
|
+
"description": "Artefato passou validacao completa (schema + business)",
|
|
193
|
+
"type": "validation",
|
|
194
|
+
"required": true
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "all_rf_have_acceptance_criteria",
|
|
198
|
+
"description": "Cada requisito funcional deve ter pelo menos 1 criterio de aceite",
|
|
199
|
+
"type": "completeness",
|
|
200
|
+
"required": true
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "all_rnf_have_metrics",
|
|
204
|
+
"description": "Cada requisito nao-funcional deve ter metrica e target",
|
|
205
|
+
"type": "completeness",
|
|
206
|
+
"required": true
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"id": "scope_clearly_defined",
|
|
210
|
+
"description": "In scope e out of scope claramente definidos",
|
|
211
|
+
"type": "quality",
|
|
212
|
+
"required": true
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "dependencies_identified",
|
|
216
|
+
"description": "Dependencias externas e internas documentadas",
|
|
217
|
+
"type": "completeness",
|
|
218
|
+
"required": true
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "risks_documented",
|
|
222
|
+
"description": "Riscos identificados com mitigacoes",
|
|
223
|
+
"type": "quality",
|
|
224
|
+
"required": false
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Integracao com TypeScript
|
|
231
|
+
|
|
232
|
+
Esta skill invoca o handler TypeScript:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
// src/presentation/skills/PhaseGateSkillHandler.ts
|
|
236
|
+
|
|
237
|
+
export class PhaseGateSkillHandler {
|
|
238
|
+
async handle(params: GateParams): Promise<GateResult> {
|
|
239
|
+
// 1. Carrega definicao do gate para a fase
|
|
240
|
+
// 2. Carrega estado do workflow
|
|
241
|
+
// 3. Avalia cada criterio
|
|
242
|
+
// 4. Agrega resultados
|
|
243
|
+
// 5. Retorna GateResult
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Comportamento Especial
|
|
249
|
+
|
|
250
|
+
### Gate Parcial
|
|
251
|
+
Se alguns criterios passam mas outros nao:
|
|
252
|
+
- Retorna `passed: false`
|
|
253
|
+
- Lista criterios que passaram como evidencia de progresso
|
|
254
|
+
- Fornece guidance especifico para resolver blockers
|
|
255
|
+
|
|
256
|
+
### Gate com Warnings
|
|
257
|
+
Se gate passa mas tem warnings:
|
|
258
|
+
- Retorna `passed: true`
|
|
259
|
+
- Inclui warnings no resultado
|
|
260
|
+
- Recomenda enderecamento antes de continuar
|
|
261
|
+
|
|
262
|
+
### Re-avaliacao
|
|
263
|
+
Apos correcao de problemas:
|
|
264
|
+
- Pode re-avaliar mesmo gate
|
|
265
|
+
- Historico de avaliacoes mantido
|
|
266
|
+
- Mostra delta desde ultima avaliacao
|
|
267
|
+
|
|
268
|
+
## Notas Importantes
|
|
269
|
+
|
|
270
|
+
1. Gate **NAO** avanca fase automaticamente - apenas avalia
|
|
271
|
+
2. Use MCP `advancePhase` apos gate passar
|
|
272
|
+
3. Gates podem ser customizados por projeto via CONSTITUTION
|
|
273
|
+
4. Criterios `required: false` geram warnings, nao bloqueiam
|
|
274
|
+
5. Evidencias sao importantes para auditoria e rastreabilidade
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflow-status
|
|
3
|
+
description: Consulta status detalhado do workflow atual incluindo fase, artefatos, gates e proximos passos. Use para verificar progresso ou diagnosticar problemas.
|
|
4
|
+
allowed-tools: Read, Grep, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Workflow Status Skill
|
|
8
|
+
|
|
9
|
+
## Descricao
|
|
10
|
+
|
|
11
|
+
Esta skill fornece informacoes detalhadas sobre o status atual do workflow de orquestracao, incluindo fase atual, artefatos gerados, gates avaliados e proximos passos.
|
|
12
|
+
|
|
13
|
+
## Quando Usar
|
|
14
|
+
|
|
15
|
+
Use esta skill quando:
|
|
16
|
+
- Precisar saber o status atual do workflow
|
|
17
|
+
- Verificar quais artefatos foram gerados
|
|
18
|
+
- Consultar progresso por fase
|
|
19
|
+
- Identificar proximos passos
|
|
20
|
+
- Verificar checkpoints disponiveis
|
|
21
|
+
- Diagnosticar problemas no fluxo
|
|
22
|
+
|
|
23
|
+
## Invocacao
|
|
24
|
+
|
|
25
|
+
Exemplos de como invocar esta skill:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
"Qual o status atual do workflow?"
|
|
29
|
+
|
|
30
|
+
"Mostre o progresso da implementacao"
|
|
31
|
+
|
|
32
|
+
"Quais artefatos ja foram gerados?"
|
|
33
|
+
|
|
34
|
+
"Em qual fase estamos?"
|
|
35
|
+
|
|
36
|
+
"Quais sao os proximos passos?"
|
|
37
|
+
|
|
38
|
+
"Liste os checkpoints disponiveis"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Parametros
|
|
42
|
+
|
|
43
|
+
| Parametro | Tipo | Obrigatorio | Descricao |
|
|
44
|
+
|-----------|------|-------------|-----------|
|
|
45
|
+
| `workflowId` | string | Nao | ID do workflow (usa atual se omitido) |
|
|
46
|
+
| `detail_level` | enum | Nao | summary, standard, detailed |
|
|
47
|
+
| `include_artifacts` | boolean | Nao | Incluir lista de artefatos |
|
|
48
|
+
| `include_checkpoints` | boolean | Nao | Incluir lista de checkpoints |
|
|
49
|
+
| `include_gates` | boolean | Nao | Incluir status dos gates |
|
|
50
|
+
|
|
51
|
+
### Valores de detail_level
|
|
52
|
+
|
|
53
|
+
- **summary**: Apenas fase atual e status geral
|
|
54
|
+
- **standard** (default): Fase, status, ultimos artefatos, proximo passo
|
|
55
|
+
- **detailed**: Tudo incluindo historico completo
|
|
56
|
+
|
|
57
|
+
## Output
|
|
58
|
+
|
|
59
|
+
A skill retorna informacoes estruturadas:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"success": true,
|
|
64
|
+
"workflow": {
|
|
65
|
+
"id": "wf-123",
|
|
66
|
+
"type": "feature_development",
|
|
67
|
+
"feature": "OAuth2 Authentication",
|
|
68
|
+
"status": "in_progress",
|
|
69
|
+
"startedAt": "2025-12-09T10:00:00Z",
|
|
70
|
+
"updatedAt": "2025-12-09T14:30:00Z"
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
"currentPhase": {
|
|
74
|
+
"name": "implement",
|
|
75
|
+
"status": "in_progress",
|
|
76
|
+
"startedAt": "2025-12-09T14:00:00Z",
|
|
77
|
+
"progress": {
|
|
78
|
+
"totalTasks": 10,
|
|
79
|
+
"completedTasks": 6,
|
|
80
|
+
"percentage": 60
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
"phases": [
|
|
85
|
+
{
|
|
86
|
+
"name": "research",
|
|
87
|
+
"status": "completed",
|
|
88
|
+
"duration": "45m",
|
|
89
|
+
"artifacts": ["research-context.md"]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "specify",
|
|
93
|
+
"status": "completed",
|
|
94
|
+
"duration": "1h",
|
|
95
|
+
"artifacts": ["spec.md"]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "plan",
|
|
99
|
+
"status": "completed",
|
|
100
|
+
"duration": "1h 30m",
|
|
101
|
+
"artifacts": ["plan.md"]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "tasks",
|
|
105
|
+
"status": "completed",
|
|
106
|
+
"duration": "45m",
|
|
107
|
+
"artifacts": ["tasks.md"]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "implement",
|
|
111
|
+
"status": "in_progress",
|
|
112
|
+
"duration": "2h (ongoing)",
|
|
113
|
+
"artifacts": ["impl-001.md", "impl-002.md"]
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
|
|
117
|
+
"artifacts": [
|
|
118
|
+
{
|
|
119
|
+
"id": "art-001",
|
|
120
|
+
"type": "research",
|
|
121
|
+
"path": ".orchestrator/artifacts/research/research-context.md",
|
|
122
|
+
"status": "validated",
|
|
123
|
+
"createdAt": "2025-12-09T10:45:00Z"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "art-002",
|
|
127
|
+
"type": "specification",
|
|
128
|
+
"path": ".orchestrator/artifacts/specify/spec.md",
|
|
129
|
+
"status": "validated",
|
|
130
|
+
"createdAt": "2025-12-09T11:45:00Z"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
|
|
134
|
+
"gates": {
|
|
135
|
+
"research": { "passed": true, "evaluatedAt": "2025-12-09T10:50:00Z" },
|
|
136
|
+
"specify": { "passed": true, "evaluatedAt": "2025-12-09T11:50:00Z" },
|
|
137
|
+
"plan": { "passed": true, "evaluatedAt": "2025-12-09T13:20:00Z" },
|
|
138
|
+
"tasks": { "passed": true, "evaluatedAt": "2025-12-09T14:00:00Z" },
|
|
139
|
+
"implement": { "passed": false, "pending": true }
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
"checkpoints": [
|
|
143
|
+
{
|
|
144
|
+
"id": "chk-001",
|
|
145
|
+
"phase": "specify",
|
|
146
|
+
"message": "[orchestrator] specify: specification validated",
|
|
147
|
+
"gitRef": "abc123",
|
|
148
|
+
"createdAt": "2025-12-09T11:50:00Z"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "chk-002",
|
|
152
|
+
"phase": "plan",
|
|
153
|
+
"message": "[orchestrator] plan: technical plan approved",
|
|
154
|
+
"gitRef": "def456",
|
|
155
|
+
"createdAt": "2025-12-09T13:20:00Z"
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
|
|
159
|
+
"nextSteps": [
|
|
160
|
+
"Completar TASK-007: Implementar middleware de autenticacao",
|
|
161
|
+
"Executar testes de integracao",
|
|
162
|
+
"Avaliar gate de implement para concluir workflow"
|
|
163
|
+
],
|
|
164
|
+
|
|
165
|
+
"metrics": {
|
|
166
|
+
"totalDuration": "4h 30m",
|
|
167
|
+
"estimatedRemaining": "2h",
|
|
168
|
+
"artifactsGenerated": 6,
|
|
169
|
+
"gatesPassed": 4,
|
|
170
|
+
"checkpointsCreated": 4
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Formato de Output para Usuario
|
|
176
|
+
|
|
177
|
+
Quando invocada, a skill formata output amigavel:
|
|
178
|
+
|
|
179
|
+
```markdown
|
|
180
|
+
## Status do Workflow
|
|
181
|
+
|
|
182
|
+
**ID**: wf-123
|
|
183
|
+
**Tipo**: feature_development
|
|
184
|
+
**Feature**: OAuth2 Authentication
|
|
185
|
+
**Status**: 🟡 Em Progresso
|
|
186
|
+
|
|
187
|
+
### Fase Atual: IMPLEMENT
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
[████████░░░░░░░░░░░░] 60% (6/10 tasks)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Progresso por Fase
|
|
194
|
+
|
|
195
|
+
| Fase | Status | Duracao | Artefatos |
|
|
196
|
+
|------|--------|---------|-----------|
|
|
197
|
+
| research | ✅ Completo | 45m | 1 |
|
|
198
|
+
| specify | ✅ Completo | 1h | 1 |
|
|
199
|
+
| plan | ✅ Completo | 1h 30m | 1 |
|
|
200
|
+
| tasks | ✅ Completo | 45m | 1 |
|
|
201
|
+
| implement | 🟡 Em Progresso | 2h | 2 |
|
|
202
|
+
|
|
203
|
+
### Gates
|
|
204
|
+
|
|
205
|
+
- [x] research-complete
|
|
206
|
+
- [x] specification-complete
|
|
207
|
+
- [x] plan-complete
|
|
208
|
+
- [x] tasks-complete
|
|
209
|
+
- [ ] implementation-complete (pendente)
|
|
210
|
+
|
|
211
|
+
### Proximos Passos
|
|
212
|
+
|
|
213
|
+
1. Completar TASK-007: Implementar middleware de autenticacao
|
|
214
|
+
2. Executar testes de integracao
|
|
215
|
+
3. Avaliar gate de implement para concluir workflow
|
|
216
|
+
|
|
217
|
+
### Metricas
|
|
218
|
+
|
|
219
|
+
- **Tempo Total**: 4h 30m
|
|
220
|
+
- **Estimativa Restante**: 2h
|
|
221
|
+
- **Artefatos**: 6
|
|
222
|
+
- **Checkpoints**: 4
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Integracao com TypeScript
|
|
226
|
+
|
|
227
|
+
Esta skill invoca o handler TypeScript:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
// src/presentation/skills/WorkflowStatusSkill.ts
|
|
231
|
+
|
|
232
|
+
export class WorkflowStatusSkillHandler extends SkillHandler {
|
|
233
|
+
name = 'workflow-status';
|
|
234
|
+
description = 'Consulta status detalhado do workflow';
|
|
235
|
+
|
|
236
|
+
async execute(input: WorkflowStatusInput): Promise<SkillResult> {
|
|
237
|
+
// 1. Obtem workflow atual ou por ID
|
|
238
|
+
// 2. Carrega orchestrator-index.json
|
|
239
|
+
// 3. Coleta informacoes de fases
|
|
240
|
+
// 4. Coleta status de gates
|
|
241
|
+
// 5. Lista artefatos e checkpoints
|
|
242
|
+
// 6. Calcula metricas
|
|
243
|
+
// 7. Formata output
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Casos de Uso
|
|
249
|
+
|
|
250
|
+
### Verificar Status Rapido
|
|
251
|
+
```
|
|
252
|
+
User: "Status do workflow?"
|
|
253
|
+
Skill: workflow-status com detail_level=summary
|
|
254
|
+
Output: Fase atual, status, progresso percentual
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Relatorio Detalhado
|
|
258
|
+
```
|
|
259
|
+
User: "Me de um relatorio completo do progresso"
|
|
260
|
+
Skill: workflow-status com detail_level=detailed, todos includes=true
|
|
261
|
+
Output: Relatorio completo com historico
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Verificar Artefatos
|
|
265
|
+
```
|
|
266
|
+
User: "Quais artefatos ja temos?"
|
|
267
|
+
Skill: workflow-status com include_artifacts=true
|
|
268
|
+
Output: Lista de artefatos com status e paths
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Diagnostico de Problema
|
|
272
|
+
```
|
|
273
|
+
User: "Por que o workflow esta travado?"
|
|
274
|
+
Skill: workflow-status com include_gates=true
|
|
275
|
+
Output: Status detalhado mostrando gate pendente
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Comportamento em Casos Especiais
|
|
279
|
+
|
|
280
|
+
### Nenhum Workflow Ativo
|
|
281
|
+
```json
|
|
282
|
+
{
|
|
283
|
+
"success": false,
|
|
284
|
+
"error": {
|
|
285
|
+
"code": "NO_ACTIVE_WORKFLOW",
|
|
286
|
+
"message": "Nenhum workflow ativo encontrado",
|
|
287
|
+
"suggestion": "Use 'orchestrate start' para iniciar um novo workflow"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Workflow Nao Encontrado
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"success": false,
|
|
296
|
+
"error": {
|
|
297
|
+
"code": "WORKFLOW_NOT_FOUND",
|
|
298
|
+
"message": "Workflow 'wf-xyz' nao encontrado",
|
|
299
|
+
"suggestion": "Verifique o ID ou use sem parametro para workflow atual"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Index Corrompido
|
|
305
|
+
```json
|
|
306
|
+
{
|
|
307
|
+
"success": false,
|
|
308
|
+
"error": {
|
|
309
|
+
"code": "INDEX_CORRUPTED",
|
|
310
|
+
"message": "orchestrator-index.json esta corrompido ou invalido",
|
|
311
|
+
"suggestion": "Execute 'orchestrator config validate' para diagnosticar"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Notas Importantes
|
|
317
|
+
|
|
318
|
+
1. Esta skill e **read-only** - apenas consulta, nao modifica estado
|
|
319
|
+
2. Dados vem de `orchestrator-index.json` e artefatos
|
|
320
|
+
3. Metricas de tempo sao calculadas a partir de timestamps
|
|
321
|
+
4. Progresso de tarefas requer leitura de tasks.md
|
|
322
|
+
5. Cache de 30 segundos para evitar leituras repetidas
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
version: '3.8'
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
orchestrator-api:
|
|
5
|
+
image: orchestrator/api:{{orchestratorVersion}}
|
|
6
|
+
container_name: {{projectName}}-orchestrator-api
|
|
7
|
+
ports:
|
|
8
|
+
- "3000:3000"
|
|
9
|
+
volumes:
|
|
10
|
+
- .:/app/project:rw
|
|
11
|
+
environment:
|
|
12
|
+
- ORCHESTRATOR_ROOT=/app/project
|
|
13
|
+
- NODE_ENV=development
|
|
14
|
+
healthcheck:
|
|
15
|
+
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:3000/api/v1/health"]
|
|
16
|
+
interval: 30s
|
|
17
|
+
timeout: 3s
|
|
18
|
+
start_period: 10s
|
|
19
|
+
retries: 3
|
|
20
|
+
restart: unless-stopped
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://modelcontextprotocol.io/schemas/mcp-config.json",
|
|
3
|
+
"mcpServers": {
|
|
4
|
+
"orchestrator-tools": {
|
|
5
|
+
"command": "node",
|
|
6
|
+
"args": [
|
|
7
|
+
"node_modules/@orchestrator/core/dist/infrastructure/mcp/bin/orchestrator-server.js"
|
|
8
|
+
],
|
|
9
|
+
"env": {
|
|
10
|
+
"ORCHESTRATOR_ROOT": ".orchestrator",
|
|
11
|
+
"NODE_ENV": "production",
|
|
12
|
+
"MCP_DEBUG": "false"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"knowledge-base": {
|
|
16
|
+
"command": "node",
|
|
17
|
+
"args": [
|
|
18
|
+
"node_modules/@orchestrator/core/dist/infrastructure/mcp/bin/knowledge-base-server.js"
|
|
19
|
+
],
|
|
20
|
+
"env": {
|
|
21
|
+
"ORCHESTRATOR_ROOT": ".orchestrator",
|
|
22
|
+
"CACHE_ENABLED": "true",
|
|
23
|
+
"MCP_DEBUG": "false"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"perplexity": {
|
|
27
|
+
"command": "node",
|
|
28
|
+
"args": [
|
|
29
|
+
"node_modules/@orchestrator/core/dist/infrastructure/mcp/bin/perplexity-server.js"
|
|
30
|
+
],
|
|
31
|
+
"env": {
|
|
32
|
+
"CACHE_TTL_HOURS": "24",
|
|
33
|
+
"MCP_DEBUG": "false"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": {
|
|
3
|
+
"name": "{{projectName}}",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"created_at": "{{currentDate}}",
|
|
6
|
+
"orchestrator_version": "1.4.0"
|
|
7
|
+
},
|
|
8
|
+
"activeWorkflow": null,
|
|
9
|
+
"workflows": [],
|
|
10
|
+
"artifacts": [],
|
|
11
|
+
"checkpoints": [],
|
|
12
|
+
"taskToolInvocations": [],
|
|
13
|
+
"agentInvocations": [],
|
|
14
|
+
"gates": {},
|
|
15
|
+
"statistics": {
|
|
16
|
+
"totalWorkflows": 0,
|
|
17
|
+
"completedWorkflows": 0,
|
|
18
|
+
"failedWorkflows": 0,
|
|
19
|
+
"totalArtifacts": 0,
|
|
20
|
+
"totalCheckpoints": 0,
|
|
21
|
+
"totalInvocations": 0,
|
|
22
|
+
"lastActivity": "{{currentDate}}"
|
|
23
|
+
},
|
|
24
|
+
"metadata": {
|
|
25
|
+
"initialized_with": "orchestrator-cli",
|
|
26
|
+
"schema_version": "1.3"
|
|
27
|
+
},
|
|
28
|
+
"defaultHooks": {
|
|
29
|
+
"postImplement": {
|
|
30
|
+
"agent": "docs-guardian",
|
|
31
|
+
"mode": "auto",
|
|
32
|
+
"blocking": false,
|
|
33
|
+
"enabled": true,
|
|
34
|
+
"scope": "all"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|