adi_dev_workflow 1.0.0 → 1.1.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/bin/index.js +0 -0
- package/frameworks/commands/generate-project-profile.md +68 -0
- package/frameworks/commands/generate-prompt.md +4 -2
- package/frameworks/commands/ministack/README.md +61 -46
- package/frameworks/commands/ministack/code-review.md +36 -49
- package/frameworks/commands/ministack/generate-intent.md +25 -2
- package/frameworks/commands/ministack/generate-scope.md +30 -6
- package/frameworks/commands/ministack/generate-tasks.md +191 -6
- package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
- package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
- package/frameworks/commands/ministack/status.md +153 -0
- package/frameworks/commands/sdd/code-review.md +10 -10
- package/frameworks/commands/sdd/generate-prd.md +32 -2
- package/frameworks/commands/sdd/generate-task-plan.md +199 -5
- package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -2
- package/frameworks/commands/sdd/run_tasks.md +391 -43
- package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
- package/frameworks/commands/sdd/status.md +160 -0
- package/frameworks/commands/sdd/validate-sdd.md +18 -2
- package/frameworks/commands/sync-tasks-to-linear.md +588 -588
- package/frameworks/commands/taskcard/generate-taskcard.md +42 -25
- package/frameworks/commands/taskcard/run-taskcard.md +203 -34
- package/frameworks/skills/ministack-intent-expert/SKILL.md +3 -2
- package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
- package/frameworks/skills/ministack-scope-expert/SKILL.md +6 -10
- package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +192 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +218 -0
- package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +143 -95
- package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
- package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
- package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +179 -201
- package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
- package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
- package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +223 -0
- package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +304 -0
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +26 -78
- package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
- package/package.json +1 -1
- package/frameworks/commands/ministack/generate-tests.md +0 -37
- package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
- package/frameworks/commands/taskcard/generate-tests.md +0 -37
- package/frameworks/skills/ministack-expert/SKILL.md +0 -415
- package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
- package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
- package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
- package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
- package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
- package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
- package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
- package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
- package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
- package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
- package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
- package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
- package/frameworks/templates/prompt_template.md +0 -164
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "sdd-task-plan-expert",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"name": "happy-path-spec-tech-usuario",
|
|
7
|
+
"prompt": "Gere o TASK PLAN para a feature de usuario. O SPEC_TECH aprovado esta em docs/feature-user/v1/spec_tech.md",
|
|
8
|
+
"expected_output": "A skill deve: (1) ler o SPEC_TECH do modulo de usuario, (2) extrair o nome da feature automaticamente ('feature-user' ou similar), (3) confirmar o nome com o usuario antes de prosseguir, (4) propor macro-fases de alto nivel e aguardar validacao, (5) fazer UMA pergunta por vez durante todo o processo. O task_plan.md deve ser um documento de REFERENCIA (sem corpo de tasks). Cada task deve ser salva em arquivo individual tasks/TN.md.",
|
|
9
|
+
"files": [
|
|
10
|
+
"docs/feature-user/v1/spec_tech.md"
|
|
11
|
+
],
|
|
12
|
+
"assertions": [
|
|
13
|
+
{
|
|
14
|
+
"id": "a1",
|
|
15
|
+
"text": "Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir",
|
|
16
|
+
"type": "llm_judge"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "a2",
|
|
20
|
+
"text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)",
|
|
21
|
+
"type": "llm_judge"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "a3",
|
|
25
|
+
"text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
26
|
+
"type": "llm_judge"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "a4",
|
|
30
|
+
"text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks",
|
|
31
|
+
"type": "llm_judge"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "a5",
|
|
35
|
+
"text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda",
|
|
36
|
+
"type": "llm_judge"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": 2,
|
|
42
|
+
"name": "spec-tech-simples-alteracao-pontual",
|
|
43
|
+
"prompt": "Preciso de um TASK PLAN para esta feature simples. O SPEC_TECH aprovado esta abaixo:\n\n---\n# SPEC_TECH — Adicionar Telefone ao Usuario v1\n\n## 1. Identificacao\n| Campo | Valor |\n|-------|-------|\n| **Feature/Projeto** | Adicionar Telefone ao Modulo de Usuario |\n| **Versao** | v1 |\n| **Data** | 2026-03-07 |\n| **PRD** | docs/feature-telefone-usuario/v1/prd.md |\n\n## 2. Resumo Tecnico\nAdicionar campo `telefone` (opcional) a tabela `usuarios` e expor via gRPC nos endpoints CreateUser e UpdateUser.\n\n## 3. Definicoes Tecnicas\n\n### 3.1 Banco de Dados\n- Nova migracao: `ALTER TABLE usuarios ADD COLUMN telefone TEXT;`\n\n### 3.2 SQLC\n- Atualizar queries CreateUser e UpdateUser para incluir coluna `telefone`\n\n### 3.3 Repository\n- Adicionar campo `Phone` ao modelo User\n- Mapear `telefone` (banco) para `Phone` (Go)\n\n### 3.4 Service\n- Aceitar campo opcional phone em CreateUser e UpdateUser\n- Validacao: se informado, deve ter entre 10 e 15 caracteres\n\n### 3.5 Handler gRPC\n- Adicionar campo `phone` nas mensagens proto CreateUserRequest, UpdateUserRequest e User\n\n### 3.6 Proto\n- Atualizar user.proto com campo `string phone = X;`\n\n## 4. User Stories Relacionadas\n- US-10: Como usuario, quero informar meu telefone para receber notificacoes por SMS\n---",
|
|
44
|
+
"expected_output": "A skill deve gerar um plano proporcional a complexidade — poucas tasks (3-5), poucas fases. Nao deve over-engineer com 10+ tasks para uma alteracao pontual. Deve respeitar a ordem de dependencias (migracao antes de SQLC, SQLC antes de repository, etc). Tasks devem ser granulares mas nao excessivamente fragmentadas.",
|
|
45
|
+
"files": [],
|
|
46
|
+
"assertions": [
|
|
47
|
+
{
|
|
48
|
+
"id": "b1",
|
|
49
|
+
"text": "Gera um numero proporcional de tasks (entre 3 e 6) — nao over-engineers com tasks demais para uma alteracao simples",
|
|
50
|
+
"type": "llm_judge"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "b2",
|
|
54
|
+
"text": "Respeita a ordem de dependencias das camadas (migracao > SQLC > repository > service > handler > proto)",
|
|
55
|
+
"type": "llm_judge"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "b3",
|
|
59
|
+
"text": "Mapeia a US-10 na tabela de rastreabilidade do task_plan",
|
|
60
|
+
"type": "llm_judge"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "b4",
|
|
64
|
+
"text": "Cada task segue o template completo (secoes 1-8) ou marca secoes N/A com justificativa",
|
|
65
|
+
"type": "llm_judge"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "b5",
|
|
69
|
+
"text": "Salva task_plan.md como documento de REFERENCIA (sem corpo detalhado de tasks dentro dele)",
|
|
70
|
+
"type": "llm_judge"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": 3,
|
|
76
|
+
"name": "spec-tech-sem-user-stories-explicitas",
|
|
77
|
+
"prompt": "Gere o TASK PLAN para esta feature. Segue o SPEC_TECH aprovado:\n\n---\n# SPEC_TECH — Cache de Cardapio v1\n\n## 1. Identificacao\n| Campo | Valor |\n|-------|-------|\n| **Feature/Projeto** | Cache de Cardapio em Memoria |\n| **Versao** | v1 |\n| **Data** | 2026-03-07 |\n\n## 2. Resumo Tecnico\nImplementar cache in-memory (sync.Map) para o cardapio de produtos, evitando queries repetidas ao SQLite. TTL configuravel via config.yaml.\n\n## 3. Definicoes Tecnicas\n\n### 3.1 Novo Pacote\n- `internal/infra/cache/` com interface `Cache[K, V]` e implementacao `InMemoryCache`\n- TTL configuravel via `cache.ttl_seconds` no config.yaml\n- Invalidacao manual via metodo `Invalidate(key)`\n\n### 3.2 Service\n- ProductService passa a consultar cache antes do repository\n- Cache miss: busca no repository e popula cache\n- Operacoes de escrita (Create, Update, Delete) invalidam a entrada correspondente\n\n### 3.3 Config\n- Novo campo `cache.ttl_seconds` (padrao: 300)\n\n### 3.4 DI\n- Registrar modulo cache no FX\n---",
|
|
78
|
+
"expected_output": "A skill deve detectar que NAO ha User Stories (US-XX) nem PRD referenciado no SPEC_TECH. Deve PERGUNTAR ao usuario sobre isso em vez de inventar user stories ou ignorar a rastreabilidade. Deve seguir o processo interativo normalmente (extrair nome, confirmar, propor fases).",
|
|
79
|
+
"files": [],
|
|
80
|
+
"assertions": [
|
|
81
|
+
{
|
|
82
|
+
"id": "c1",
|
|
83
|
+
"text": "Detecta a ausencia de User Stories (US-XX) e PRD referenciado no SPEC_TECH",
|
|
84
|
+
"type": "llm_judge"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "c2",
|
|
88
|
+
"text": "PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar",
|
|
89
|
+
"type": "llm_judge"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "c3",
|
|
93
|
+
"text": "NAO inventa User Stories ficticias (guardrail: nunca invente informacoes)",
|
|
94
|
+
"type": "llm_judge"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "c4",
|
|
98
|
+
"text": "Extrai corretamente o nome da feature como 'cache-de-cardapio' ou similar em kebab-case",
|
|
99
|
+
"type": "llm_judge"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "c5",
|
|
103
|
+
"text": "Segue o processo interativo (uma pergunta por vez, confirma nome antes de prosseguir)",
|
|
104
|
+
"type": "llm_judge"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
# TASK PLAN – Plano de
|
|
1
|
+
# TASK PLAN – Plano de Execução das Tasks
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1. Identificação
|
|
4
4
|
- **Feature/Projeto**:
|
|
5
|
-
- **
|
|
5
|
+
- **Responsável (Tech Lead)**:
|
|
6
6
|
- **Data**:
|
|
7
7
|
- **Status**: Rascunho | Em andamento | Fechado
|
|
8
|
-
- **
|
|
9
|
-
- **PRD
|
|
8
|
+
- **SPEC_TECH**: `docs/<nome-feature>/spec_tech.md`
|
|
9
|
+
- **PRD**: `docs/<nome-feature>/prd.md`
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## 2. Objetivo do Task Plan
|
|
14
|
-
Breve resumo do objetivo geral da feature e o que
|
|
14
|
+
Breve resumo do objetivo geral da feature e o que será entregue ao final das tasks.
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
## 3. Macro-Fases (alto
|
|
19
|
-
- **Fase 1 –
|
|
18
|
+
## 3. Macro-Fases (alto nível)
|
|
19
|
+
- **Fase 1 – Preparação / Fundamentos**
|
|
20
20
|
- Objetivo:
|
|
21
21
|
- Tasks: T1, T2
|
|
22
|
-
- **Fase 2 –
|
|
22
|
+
- **Fase 2 – Implementação Principal**
|
|
23
23
|
- Objetivo:
|
|
24
24
|
- Tasks: T3, T4, T5
|
|
25
|
-
- **Fase 3 –
|
|
25
|
+
- **Fase 3 – Integrações / Ajustes**
|
|
26
26
|
- Objetivo:
|
|
27
27
|
- Tasks: T6, T7
|
|
28
|
-
- **Fase 4 – Testes /
|
|
28
|
+
- **Fase 4 – Testes / Validação**
|
|
29
29
|
- Objetivo:
|
|
30
30
|
- Tasks: T8, T9
|
|
31
|
-
- **Fase 5 –
|
|
31
|
+
- **Fase 5 – Finalização / Entrega**
|
|
32
32
|
- Objetivo:
|
|
33
33
|
- Tasks: T10
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
-
## 4. Lista de Tasks (
|
|
38
|
-
| ID
|
|
39
|
-
|
|
40
|
-
| T1
|
|
41
|
-
| T2
|
|
37
|
+
## 4. Lista de Tasks (visão macro)
|
|
38
|
+
| ID | Nome da Task | Arquivo | Fase | Dependências | Pode Rodar em Paralelo? | Status |
|
|
39
|
+
| --- | ------------ | ----------------- | ---- | ------------ | ----------------------- | ------- |
|
|
40
|
+
| T1 | | [T1](tasks/T1.md) | | | Sim/Não | A Fazer |
|
|
41
|
+
| T2 | | [T2](tasks/T2.md) | | | Sim/Não | A Fazer |
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
45
|
## 5. Rastreabilidade: User Stories → Tasks
|
|
46
46
|
|
|
47
|
-
| User Story (PRD) |
|
|
48
|
-
|
|
49
|
-
| US-01 | | T1, T2
|
|
50
|
-
| US-02 | | T3, T4
|
|
47
|
+
| User Story (PRD) | Definição Técnica (SPEC) | Tasks Relacionadas | Status |
|
|
48
|
+
| ---------------- | ------------------------ | ------------------ | ------ |
|
|
49
|
+
| US-01 | | T1, T2 | |
|
|
50
|
+
| US-02 | | T3, T4 | |
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
<!-- LLM-ONLY: Esta tabela garante que TODAS as user stories do PRD tem tasks correspondentes para implementacao. -->
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
56
|
-
## 6.
|
|
57
|
-
Liste
|
|
56
|
+
## 6. Dependências Gerais
|
|
57
|
+
Liste dependências entre tasks, externas, bloqueios e pré-requisitos do time.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
-
## 7.
|
|
62
|
-
A feature
|
|
61
|
+
## 7. Critérios de Conclusão da Feature
|
|
62
|
+
A feature será considerada concluída quando:
|
|
63
63
|
- [ ] Todas as tasks estiverem completas
|
|
64
64
|
- [ ] Testes validados
|
|
65
|
-
- [ ]
|
|
65
|
+
- [ ] Critérios técnicos do SPEC atendidos
|
|
66
66
|
- [ ] Nenhum comportamento divergente do PRD
|
|
67
|
-
- [ ] Todas as User Stories cobertas (tabela
|
|
67
|
+
- [ ] Todas as User Stories cobertas (tabela seção 5)
|
|
68
68
|
- [ ] Deploy aprovado
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
-
## 8. Riscos &
|
|
73
|
-
- Risco 1 →
|
|
74
|
-
- Risco 2 →
|
|
72
|
+
## 8. Riscos & Mitigações
|
|
73
|
+
- Risco 1 → Mitigação
|
|
74
|
+
- Risco 2 → Mitigação
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
78
|
## 9. Checklist Final
|
|
79
79
|
- [ ] Task Plan completo
|
|
80
80
|
- [ ] Tasks mapeadas
|
|
81
|
-
- [ ]
|
|
81
|
+
- [ ] Dependências validadas
|
|
82
82
|
- [ ] Rastreabilidade User Stories → Tasks preenchida
|
|
83
|
-
- [ ] Pronto para
|
|
83
|
+
- [ ] Pronto para execução paralela
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
# TASK – Detalhamento da Task
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1. Identificação
|
|
4
4
|
- **ID**:
|
|
5
5
|
- **Nome da Task**:
|
|
6
|
-
- **
|
|
7
|
-
- **Status**: A Fazer | Em Progresso |
|
|
6
|
+
- **Responsável**:
|
|
7
|
+
- **Status**: A Fazer | Em Progresso | Revisão | Concluído
|
|
8
8
|
- **Fase**:
|
|
9
|
-
- **
|
|
9
|
+
- **Dependências**:
|
|
10
10
|
- **User Stories Relacionadas**: (US-XX do PRD)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
## 2. Objetivo da Task
|
|
15
|
-
Explique o que deve ser entregue ao final desta task (resultado
|
|
15
|
+
Explique o que deve ser entregue ao final desta task (resultado técnico direto, não comportamento do usuário).
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
## 3.
|
|
19
|
+
## 3. Descrição Detalhada
|
|
20
20
|
Explique COMO implementar, baseado no SPEC_TECH:
|
|
21
21
|
- O que deve ser criado
|
|
22
22
|
- O que deve ser modificado
|
|
23
|
-
- Fluxo
|
|
24
|
-
- Regras de
|
|
25
|
-
-
|
|
23
|
+
- Fluxo técnico envolvido
|
|
24
|
+
- Regras de implementação específicas
|
|
25
|
+
- Decisões técnicas já tomadas
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
<!-- LLM-ONLY: A descricao deve ser objetiva, clara e de engenharia. -->
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
|
-
## 4. Aceite
|
|
32
|
-
A task
|
|
31
|
+
## 4. Aceite Técnico (critérios objetivos)
|
|
32
|
+
A task estará concluída quando:
|
|
33
33
|
- [ ] Estrutura implementada conforme SPEC
|
|
34
|
-
- [ ] Fluxo
|
|
34
|
+
- [ ] Fluxo técnico funcional
|
|
35
35
|
- [ ] Erros corretamente tratados
|
|
36
|
-
- [ ] Testes da task criados (quando
|
|
37
|
-
- [ ]
|
|
36
|
+
- [ ] Testes da task criados (quando aplicável)
|
|
37
|
+
- [ ] Código revisado e aprovado
|
|
38
38
|
- [ ] Nenhuma quebra nos fluxos existentes
|
|
39
39
|
|
|
40
40
|
---
|
|
@@ -42,16 +42,16 @@ A task estara concluida quando:
|
|
|
42
42
|
## 5. Arquivos Impactados
|
|
43
43
|
|
|
44
44
|
### 5.1 Arquivos a Criar
|
|
45
|
-
| Arquivo |
|
|
45
|
+
| Arquivo | Descrição |
|
|
46
46
|
|---------|-----------|
|
|
47
47
|
| | |
|
|
48
48
|
|
|
49
49
|
### 5.2 Arquivos a Modificar
|
|
50
|
-
| Arquivo |
|
|
50
|
+
| Arquivo | Modificação |
|
|
51
51
|
|---------|------------|
|
|
52
52
|
| | |
|
|
53
53
|
|
|
54
|
-
### 5.3 Arquivos de
|
|
54
|
+
### 5.3 Arquivos de Referência
|
|
55
55
|
| Arquivo | Motivo da Consulta |
|
|
56
56
|
|---------|-------------------|
|
|
57
57
|
| | |
|
|
@@ -60,30 +60,56 @@ A task estara concluida quando:
|
|
|
60
60
|
|
|
61
61
|
## 6. Testes
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
- [ ] Teste: descricao do teste unitario
|
|
65
|
-
- [ ] Teste: descricao do teste unitario
|
|
63
|
+
<!-- LLM-ONLY: Coluna "Objetivo": Descreva em 1 frase O QUE o teste valida e POR QUE importa. Use o padrao: Verbo + comportamento especifico + condicao. Exemplo: "Verificar que apenas categorias com ativo=1 sao retornadas, ordenadas pelo campo 'ordem'". NAO repita o nome do teste — o objetivo deve dar contexto que o nome sozinho nao da. -->
|
|
66
64
|
|
|
67
|
-
### 6.
|
|
68
|
-
|
|
65
|
+
### 6.1 Testes Unitários
|
|
66
|
+
|
|
67
|
+
#### [Camada]: [NomeComponente] (`arquivo_test.go`)
|
|
68
|
+
|
|
69
|
+
Mock: [interfaces mockadas]
|
|
70
|
+
|
|
71
|
+
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
72
|
+
|----|-------|----|----------|-------|----------|------|
|
|
73
|
+
| CT-XX | TestMetodo_Cenario | CA-XX | Verificar que [comportamento esperado] quando [condição] | dados de entrada | resultado esperado | dependências mockadas |
|
|
74
|
+
|
|
75
|
+
### 6.2 Testes de Integração
|
|
76
|
+
|
|
77
|
+
#### [CamadaA + CamadaB] (`arquivo_test.go`)
|
|
78
|
+
|
|
79
|
+
Setup: [banco in-memory, migrações, fixtures]
|
|
80
|
+
|
|
81
|
+
| CT | Teste | CA | Objetivo | Fluxo | Validação |
|
|
82
|
+
|----|-------|----|----------|-------|-----------|
|
|
83
|
+
| CT-XX | TestIntegracao_Cenario | CA-XX | Verificar que [comportamento] quando [condição] | Passos do fluxo | Assertions esperadas |
|
|
69
84
|
|
|
70
85
|
### 6.3 Testes E2E
|
|
71
|
-
- [ ] Teste: descricao do teste e2e (quando aplicavel)
|
|
72
86
|
|
|
73
|
-
|
|
74
|
-
-
|
|
87
|
+
#### Fluxo: [Nome do Fluxo] (CT-XX)
|
|
88
|
+
- **CA**: CA-XX, CA-YY
|
|
89
|
+
- **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
|
|
90
|
+
- **Pré-condições**: (estado inicial do sistema)
|
|
91
|
+
- **Passos**:
|
|
92
|
+
1. Passo 1
|
|
93
|
+
2. Passo 2
|
|
94
|
+
- **Validações**: (assertions sobre dados e estado final)
|
|
95
|
+
|
|
96
|
+
### 6.4 Cenários de Erro
|
|
97
|
+
|
|
98
|
+
| Cenário | CA | Objetivo | Trigger | Código/Status | Log Esperado |
|
|
99
|
+
|---------|----|----------|---------|---------------|-------------|
|
|
100
|
+
| Descrição do cenário | CA-XX | Verificar que [constraint] impede [operação] e retorna erro adequado | Ação que dispara o erro | Código de erro esperado | Mensagem de log esperada |
|
|
75
101
|
|
|
76
102
|
---
|
|
77
103
|
|
|
78
|
-
## 7. Notas /
|
|
79
|
-
|
|
104
|
+
## 7. Notas / Observações
|
|
105
|
+
Anotações técnicas, decisões, pontos relevantes.
|
|
80
106
|
|
|
81
107
|
---
|
|
82
108
|
|
|
83
109
|
## 8. Checklist Final
|
|
84
110
|
- [ ] Implementada conforme SPEC
|
|
85
|
-
- [ ] Testes
|
|
86
|
-
- [ ] Testes de
|
|
87
|
-
- [ ] Aceite
|
|
111
|
+
- [ ] Testes unitários criados/atualizados
|
|
112
|
+
- [ ] Testes de integração criados/atualizados
|
|
113
|
+
- [ ] Aceite técnico atendido
|
|
88
114
|
- [ ] Revisada
|
|
89
|
-
- [ ] Integrada
|
|
115
|
+
- [ ] Integrada à branch principal
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "sdd-task-plan-expert",
|
|
3
|
+
"iteration": 1,
|
|
4
|
+
"configurations": [
|
|
5
|
+
{
|
|
6
|
+
"name": "with_skill",
|
|
7
|
+
"pass_rate": 0.933,
|
|
8
|
+
"mean_tokens": 55027,
|
|
9
|
+
"stddev_tokens": 10217,
|
|
10
|
+
"mean_duration_seconds": 184.9,
|
|
11
|
+
"stddev_duration_seconds": 85.7,
|
|
12
|
+
"evals": [
|
|
13
|
+
{
|
|
14
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
15
|
+
"pass_rate": 0.8,
|
|
16
|
+
"passed": 4,
|
|
17
|
+
"total": 5,
|
|
18
|
+
"tokens": 61221,
|
|
19
|
+
"duration_seconds": 138.2,
|
|
20
|
+
"failed_assertions": ["Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks"]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"eval_name": "spec-tech-simples-alteracao-pontual",
|
|
24
|
+
"pass_rate": 1.0,
|
|
25
|
+
"passed": 5,
|
|
26
|
+
"total": 5,
|
|
27
|
+
"tokens": 60596,
|
|
28
|
+
"duration_seconds": 286.6,
|
|
29
|
+
"failed_assertions": []
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
33
|
+
"pass_rate": 1.0,
|
|
34
|
+
"passed": 5,
|
|
35
|
+
"total": 5,
|
|
36
|
+
"tokens": 43263,
|
|
37
|
+
"duration_seconds": 130.0,
|
|
38
|
+
"failed_assertions": []
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "without_skill",
|
|
44
|
+
"pass_rate": 0.333,
|
|
45
|
+
"mean_tokens": 38834,
|
|
46
|
+
"stddev_tokens": 3912,
|
|
47
|
+
"mean_duration_seconds": 151.2,
|
|
48
|
+
"stddev_duration_seconds": 14.5,
|
|
49
|
+
"evals": [
|
|
50
|
+
{
|
|
51
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
52
|
+
"pass_rate": 0.2,
|
|
53
|
+
"passed": 1,
|
|
54
|
+
"total": 5,
|
|
55
|
+
"tokens": 40363,
|
|
56
|
+
"duration_seconds": 141.3,
|
|
57
|
+
"failed_assertions": [
|
|
58
|
+
"Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir",
|
|
59
|
+
"Faz apenas UMA pergunta por vez",
|
|
60
|
+
"Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
61
|
+
"Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"eval_name": "spec-tech-simples-alteracao-pontual",
|
|
66
|
+
"pass_rate": 0.2,
|
|
67
|
+
"passed": 1,
|
|
68
|
+
"total": 5,
|
|
69
|
+
"tokens": 41818,
|
|
70
|
+
"duration_seconds": 167.6,
|
|
71
|
+
"failed_assertions": [
|
|
72
|
+
"Gera um numero proporcional de tasks (entre 3 e 6)",
|
|
73
|
+
"Mapeia a US-10 na tabela de rastreabilidade do task_plan",
|
|
74
|
+
"Cada task segue o template completo (secoes 1-8)",
|
|
75
|
+
"Salva task_plan.md como documento de REFERENCIA"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
80
|
+
"pass_rate": 0.4,
|
|
81
|
+
"passed": 2,
|
|
82
|
+
"total": 5,
|
|
83
|
+
"tokens": 34322,
|
|
84
|
+
"duration_seconds": 144.7,
|
|
85
|
+
"failed_assertions": [
|
|
86
|
+
"PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar",
|
|
87
|
+
"Extrai corretamente o nome da feature em kebab-case",
|
|
88
|
+
"Segue o processo interativo (uma pergunta por vez)"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"delta": {
|
|
95
|
+
"pass_rate_improvement": "+60.0pp",
|
|
96
|
+
"tokens_overhead": "+41.7%",
|
|
97
|
+
"duration_overhead": "+22.3%"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Benchmark — sdd-task-plan-expert (Iteration 1)
|
|
2
|
+
|
|
3
|
+
## Resumo
|
|
4
|
+
|
|
5
|
+
| Metrica | With Skill | Without Skill (Baseline) | Delta |
|
|
6
|
+
|---------|-----------|-------------------------|-------|
|
|
7
|
+
| **Pass Rate** | **93.3%** (14/15) | 33.3% (5/15) | **+60.0pp** |
|
|
8
|
+
| **Tokens (media)** | 55,027 | 38,834 | +41.7% |
|
|
9
|
+
| **Duracao (media)** | 184.9s | 151.2s | +22.3% |
|
|
10
|
+
|
|
11
|
+
## Resultados por Eval
|
|
12
|
+
|
|
13
|
+
### Eval 1: Happy Path (SPEC_TECH real do modulo de usuario)
|
|
14
|
+
|
|
15
|
+
| Assertion | With Skill | Without Skill |
|
|
16
|
+
|-----------|:---------:|:------------:|
|
|
17
|
+
| Extrai nome e confirma com usuario | PASS | FAIL |
|
|
18
|
+
| Uma pergunta por vez | PASS | FAIL |
|
|
19
|
+
| Propoe fases antes de tasks | PASS | FAIL |
|
|
20
|
+
| Le rules do projeto antes | FAIL | FAIL |
|
|
21
|
+
| Nao inicia execucao automatica | PASS | PASS |
|
|
22
|
+
|
|
23
|
+
### Eval 2: Feature Simples (adicionar telefone)
|
|
24
|
+
|
|
25
|
+
| Assertion | With Skill | Without Skill |
|
|
26
|
+
|-----------|:---------:|:------------:|
|
|
27
|
+
| Numero proporcional de tasks (3-6) | PASS (6) | FAIL (12) |
|
|
28
|
+
| Ordem de dependencias correta | PASS | PASS |
|
|
29
|
+
| Rastreabilidade US-10 | PASS | FAIL |
|
|
30
|
+
| Template completo (secoes 1-8) | PASS | FAIL |
|
|
31
|
+
| task_plan como referencia | PASS | FAIL |
|
|
32
|
+
|
|
33
|
+
### Eval 3: Sem User Stories
|
|
34
|
+
|
|
35
|
+
| Assertion | With Skill | Without Skill |
|
|
36
|
+
|-----------|:---------:|:------------:|
|
|
37
|
+
| Detecta ausencia de US/PRD | PASS | PASS |
|
|
38
|
+
| Pergunta ao usuario | PASS | FAIL |
|
|
39
|
+
| Nao inventa US ficticias | PASS | PASS |
|
|
40
|
+
| Nome em kebab-case | PASS | FAIL |
|
|
41
|
+
| Processo interativo | PASS | FAIL |
|
|
42
|
+
|
|
43
|
+
## Analise
|
|
44
|
+
|
|
45
|
+
### Pontos Fortes da Skill
|
|
46
|
+
1. **Processo interativo**: A skill garante interacao step-by-step (93% vs 33% pass rate)
|
|
47
|
+
2. **Proporcionalidade**: 6 tasks para feature simples vs 12 sem skill
|
|
48
|
+
3. **Guardrails**: Detectou e perguntou sobre US/PRD ausentes em vez de ignorar
|
|
49
|
+
4. **Template e rastreabilidade**: Segue template oficial e mapeia User Stories
|
|
50
|
+
5. **Separacao de documentos**: task_plan como referencia, tasks em arquivos individuais
|
|
51
|
+
|
|
52
|
+
### Ponto de Melhoria Identificado
|
|
53
|
+
1. **Leitura de rules do projeto (a4)**: A skill instrui "Ler as rules do projeto", mas o agente leu extensivamente o codebase sem ler `.claude/rules/` e `CLAUDE.md` explicitamente. Sugestao: reforcar na skill que a leitura de rules e o PRIMEIRO passo, antes de explorar o codebase.
|
|
54
|
+
|
|
55
|
+
### Custo da Skill
|
|
56
|
+
- **+41.7% tokens**: Esperado — a skill faz mais trabalho (leitura de templates, processo interativo, exploração de codebase mais detalhada)
|
|
57
|
+
- **+22.3% duracao**: Overhead moderado, aceitavel dado o ganho de qualidade
|
|
58
|
+
|
|
59
|
+
### Assertions Nao-Discriminantes
|
|
60
|
+
- "Nao inventa US ficticias" passou em ambas as configuracoes (with/without skill) — o modelo base ja respeita isso
|
|
61
|
+
- "Nao inicia execucao automatica" tambem passou em ambas
|
|
62
|
+
|
|
63
|
+
### Conclusao
|
|
64
|
+
A skill melhora drasticamente a qualidade do output (+60pp pass rate). O unico ponto de falha (leitura de rules) e um refinamento menor. O custo adicional em tokens/tempo e justificado pelo ganho em estrutura, interatividade e conformidade com o framework SDD.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 1,
|
|
3
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
4
|
+
"prompt": "Gere o TASK PLAN para a feature de usuario. O SPEC_TECH aprovado esta em docs/feature-user/v1/spec_tech.md",
|
|
5
|
+
"assertions": [
|
|
6
|
+
{"id": "a1", "text": "Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir", "type": "llm_judge"},
|
|
7
|
+
{"id": "a2", "text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)", "type": "llm_judge"},
|
|
8
|
+
{"id": "a3", "text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks", "type": "llm_judge"},
|
|
9
|
+
{"id": "a4", "text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks", "type": "llm_judge"},
|
|
10
|
+
{"id": "a5", "text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda", "type": "llm_judge"}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 1,
|
|
3
|
+
"eval_name": "happy-path-spec-tech-usuario",
|
|
4
|
+
"configuration": "with_skill",
|
|
5
|
+
"expectations": [
|
|
6
|
+
{
|
|
7
|
+
"text": "Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir",
|
|
8
|
+
"passed": true,
|
|
9
|
+
"evidence": "Extraiu 'Modulo de Usuario -- Vakinha Burger', normalizou para 'feature-user' em kebab-case, e perguntou: 'Podemos iniciar a definicao macro das fases? Voce concorda com esta estrutura de 5 fases?'"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)",
|
|
13
|
+
"passed": true,
|
|
14
|
+
"evidence": "Fez apenas uma pergunta ao final: 'Podemos iniciar a definicao macro das fases?' Nao bombardeou com multiplas perguntas."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
18
|
+
"passed": true,
|
|
19
|
+
"evidence": "Propos 5 fases (Fundacao, Contratos/Dados, Logica de Negocio, Apresentacao, Testes) com justificativa para cada uma, e aguardou validacao antes de criar tasks detalhadas."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks",
|
|
23
|
+
"passed": false,
|
|
24
|
+
"evidence": "O transcript mostra leitura extensiva do codebase (13 arquivos Go, proto, config, PRD), mas NAO ha leitura explicita de .claude/rules/ nem CLAUDE.md. O agente explorou o codebase mas nao leu as rules do projeto."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda",
|
|
28
|
+
"passed": true,
|
|
29
|
+
"evidence": "Encerrou com 'Este e o primeiro turno de interacao' e explicou que o proximo passo seria destrinchar tasks da Fase 1. Nao iniciou execucao automatica."
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|