adi_dev_workflow 1.1.0 → 1.2.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 +8 -8
- package/frameworks/agents/qa-staff-engineer.md +311 -0
- package/frameworks/agents/qa-validation-expert.md +458 -0
- package/frameworks/agents/tech-review-conformance.md +200 -0
- package/frameworks/commands/generate-prompt.md +33 -100
- package/frameworks/commands/ministack/README.md +2 -0
- package/frameworks/commands/ministack/code-review.md +2 -0
- package/frameworks/commands/ministack/generate-intent.md +2 -0
- package/frameworks/commands/ministack/generate-scope.md +2 -0
- package/frameworks/commands/ministack/generate-tasks.md +2 -0
- package/frameworks/commands/ministack/generate-tech-direction.md +2 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +3 -0
- package/frameworks/commands/ministack/run-ministack-withlinear.md +2 -0
- package/frameworks/commands/ministack/status.md +2 -0
- package/frameworks/commands/sdd/code-review.md +2 -0
- package/frameworks/commands/sdd/generate-prd.md +2 -0
- package/frameworks/commands/sdd/generate-task-plan.md +2 -0
- package/frameworks/commands/sdd/generate-tech-direction.md +2 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +2 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -0
- package/frameworks/commands/sdd/run_tasks.md +3 -0
- package/frameworks/commands/sdd/run_tasks_withlinear.md +2 -0
- package/frameworks/commands/sdd/status.md +2 -0
- package/frameworks/commands/sdd/validate-sdd.md +2 -0
- package/frameworks/commands/sync-tasks-to-linear.md +2 -0
- package/frameworks/commands/taskcard/generate-taskcard.md +106 -33
- package/frameworks/commands/taskcard/run-taskcard.md +2 -0
- package/frameworks/config/ai-framework-config.yaml +112 -0
- package/frameworks/skills/ministack-intent-expert/SKILL.md +15 -1
- package/frameworks/skills/ministack-scope-expert/SKILL.md +17 -1
- package/frameworks/skills/sdd-prd-expert/SKILL.md +14 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +14 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +30 -11
- package/frameworks/templates/prompt_template.md +207 -0
- package/package.json +28 -28
- package/src/cli.js +121 -121
- package/src/installer.js +155 -136
- package/src/transformer.js +86 -86
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +0 -192
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +0 -78
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +0 -103
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +0 -218
- package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +0 -1
- package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +0 -17
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +0 -99
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +0 -64
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +0 -134
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +0 -68
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +0 -525
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +0 -30
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +0 -1126
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -131
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +0 -452
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -78
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -101
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -133
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -248
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -49
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +0 -1325
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +0 -94
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +0 -67
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +0 -117
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +0 -91
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +0 -694
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +0 -45
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +0 -1087
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -124
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +0 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -84
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -70
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -148
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -249
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -80
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +0 -1325
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +0 -223
- package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +0 -1
- package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +0 -23
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +0 -304
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +0 -199
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +0 -290
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +0 -23
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"skill_name": "sdd-task-plan-expert",
|
|
3
|
-
"iteration": 2,
|
|
4
|
-
"date": "2026-03-08",
|
|
5
|
-
"configurations": [
|
|
6
|
-
{
|
|
7
|
-
"name": "with_skill",
|
|
8
|
-
"evals": [
|
|
9
|
-
{
|
|
10
|
-
"eval_id": 1,
|
|
11
|
-
"eval_name": "happy-path-spec-tech-usuario",
|
|
12
|
-
"assertions_passed": 5,
|
|
13
|
-
"assertions_total": 5,
|
|
14
|
-
"pass_rate": 1.0,
|
|
15
|
-
"tokens": 64193,
|
|
16
|
-
"duration_seconds": 125.6
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"eval_id": 2,
|
|
20
|
-
"eval_name": "spec-tech-simples-alteracao-pontual",
|
|
21
|
-
"assertions_passed": 5,
|
|
22
|
-
"assertions_total": 5,
|
|
23
|
-
"pass_rate": 1.0,
|
|
24
|
-
"tokens": 85600,
|
|
25
|
-
"duration_seconds": 305.6
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"eval_id": 3,
|
|
29
|
-
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
30
|
-
"assertions_passed": 5,
|
|
31
|
-
"assertions_total": 5,
|
|
32
|
-
"pass_rate": 1.0,
|
|
33
|
-
"tokens": 58132,
|
|
34
|
-
"duration_seconds": 136.9
|
|
35
|
-
}
|
|
36
|
-
],
|
|
37
|
-
"aggregate": {
|
|
38
|
-
"total_passed": 15,
|
|
39
|
-
"total_assertions": 15,
|
|
40
|
-
"pass_rate": 1.0,
|
|
41
|
-
"mean_tokens": 69308,
|
|
42
|
-
"stddev_tokens": 14283,
|
|
43
|
-
"mean_duration_seconds": 189.4,
|
|
44
|
-
"stddev_duration_seconds": 101.4
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"name": "without_skill",
|
|
49
|
-
"evals": [
|
|
50
|
-
{
|
|
51
|
-
"eval_id": 1,
|
|
52
|
-
"eval_name": "happy-path-spec-tech-usuario",
|
|
53
|
-
"assertions_passed": 1,
|
|
54
|
-
"assertions_total": 5,
|
|
55
|
-
"pass_rate": 0.2,
|
|
56
|
-
"tokens": 69814,
|
|
57
|
-
"duration_seconds": 347.3
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"eval_id": 2,
|
|
61
|
-
"eval_name": "spec-tech-simples-alteracao-pontual",
|
|
62
|
-
"assertions_passed": 1,
|
|
63
|
-
"assertions_total": 5,
|
|
64
|
-
"pass_rate": 0.2,
|
|
65
|
-
"tokens": 61206,
|
|
66
|
-
"duration_seconds": 143.3
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"eval_id": 3,
|
|
70
|
-
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
71
|
-
"assertions_passed": 2,
|
|
72
|
-
"assertions_total": 5,
|
|
73
|
-
"pass_rate": 0.4,
|
|
74
|
-
"tokens": 36808,
|
|
75
|
-
"duration_seconds": 147.5
|
|
76
|
-
}
|
|
77
|
-
],
|
|
78
|
-
"aggregate": {
|
|
79
|
-
"total_passed": 4,
|
|
80
|
-
"total_assertions": 15,
|
|
81
|
-
"pass_rate": 0.267,
|
|
82
|
-
"mean_tokens": 55943,
|
|
83
|
-
"stddev_tokens": 17257,
|
|
84
|
-
"mean_duration_seconds": 212.7,
|
|
85
|
-
"stddev_duration_seconds": 117.2
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"delta": {
|
|
90
|
-
"pass_rate": "+73.3pp",
|
|
91
|
-
"mean_tokens": "+13365 (+23.9%)",
|
|
92
|
-
"mean_duration_seconds": "-23.3s (-11.0%)"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# Benchmark — sdd-task-plan-expert (Iteration 2)
|
|
2
|
-
|
|
3
|
-
## Resumo
|
|
4
|
-
|
|
5
|
-
| Metrica | with_skill | without_skill | Delta |
|
|
6
|
-
|---------|-----------|---------------|-------|
|
|
7
|
-
| **Pass Rate** | **100.0%** (15/15) | 26.7% (4/15) | **+73.3pp** |
|
|
8
|
-
| Mean Tokens | 69,308 ± 14,283 | 55,943 ± 17,257 | +13,365 (+23.9%) |
|
|
9
|
-
| Mean Duration | 189.4s ± 101.4s | 212.7s ± 117.2s | -23.3s (-11.0%) |
|
|
10
|
-
|
|
11
|
-
## Comparacao com Iteration 1
|
|
12
|
-
|
|
13
|
-
| Metrica | Iter 1 with_skill | Iter 2 with_skill | Melhoria |
|
|
14
|
-
|---------|-------------------|-------------------|----------|
|
|
15
|
-
| **Pass Rate** | 93.3% (14/15) | **100.0% (15/15)** | **+6.7pp** |
|
|
16
|
-
| Assertion a4 (rules) | FAIL | **PASS** | Corrigido |
|
|
17
|
-
|
|
18
|
-
## Resultados por Eval
|
|
19
|
-
|
|
20
|
-
### Eval 1: Happy Path (SPEC_TECH do modulo de usuario)
|
|
21
|
-
|
|
22
|
-
| Assertion | with_skill | without_skill |
|
|
23
|
-
|-----------|-----------|---------------|
|
|
24
|
-
| a1: Extrai nome e confirma | PASS | FAIL |
|
|
25
|
-
| a2: Uma pergunta por vez | PASS | FAIL |
|
|
26
|
-
| a3: Propoe macro-fases | PASS | FAIL |
|
|
27
|
-
| a4: Le rules ANTES | **PASS** | FAIL |
|
|
28
|
-
| a5: Nao executa automaticamente | PASS | PASS |
|
|
29
|
-
|
|
30
|
-
### Eval 2: Spec Simples (alteracao pontual — telefone)
|
|
31
|
-
|
|
32
|
-
| Assertion | with_skill | without_skill |
|
|
33
|
-
|-----------|-----------|---------------|
|
|
34
|
-
| b1: 3-6 tasks proporcionais | PASS (6) | FAIL (7) |
|
|
35
|
-
| b2: Ordem de dependencias | PASS | PASS |
|
|
36
|
-
| b3: Rastreabilidade US-10 | PASS | FAIL |
|
|
37
|
-
| b4: Template completo (8 secoes) | PASS | FAIL |
|
|
38
|
-
| b5: task_plan.md de referencia | PASS | FAIL |
|
|
39
|
-
|
|
40
|
-
### Eval 3: Sem User Stories (cache de cardapio)
|
|
41
|
-
|
|
42
|
-
| Assertion | with_skill | without_skill |
|
|
43
|
-
|-----------|-----------|---------------|
|
|
44
|
-
| c1: Detecta ausencia de US | PASS | PASS |
|
|
45
|
-
| c2: Pergunta ao usuario | PASS | FAIL |
|
|
46
|
-
| c3: Nao inventa US ficticias | PASS | PASS |
|
|
47
|
-
| c4: Nome em kebab-case | PASS | FAIL |
|
|
48
|
-
| c5: Processo interativo | PASS | FAIL |
|
|
49
|
-
|
|
50
|
-
## Analise
|
|
51
|
-
|
|
52
|
-
### Melhoria Principal (Iteration 1 → 2)
|
|
53
|
-
A unica assertion que falhava na iteration 1 (a4: leitura de rules) foi corrigida. O transcript da eval 1 mostra explicitamente "Passo 1 -- Read ALL project rules" com lista de 9 arquivos lidos ANTES da exploracao do codebase. A correcao (separar Passo 1 e Passo 2 no SKILL.md) funcionou.
|
|
54
|
-
|
|
55
|
-
### Assertions Discriminantes
|
|
56
|
-
- **a4** (rules) era o unico discriminante na iteration 1 para with_skill. Agora esta corrigido.
|
|
57
|
-
- Todas as 15 assertions passam com a skill — 100% pass rate.
|
|
58
|
-
- Baseline (without_skill) consistentemente falha em: processo interativo, template compliance, rastreabilidade e kebab-case.
|
|
59
|
-
|
|
60
|
-
### Assertions Nao-Discriminantes
|
|
61
|
-
- **a5** (nao executa automaticamente): Passa em ambas as configuracoes em todas as evals.
|
|
62
|
-
- **c1** (detecta ausencia de US) e **c3** (nao inventa US): Passam em ambas.
|
|
63
|
-
|
|
64
|
-
### Tokens e Tempo
|
|
65
|
-
- with_skill usa ~24% mais tokens em media, mas completa ~11% mais rapido.
|
|
66
|
-
- A variancia e alta (stddev ~100s) devido a diferenca de complexidade entre evals.
|
|
67
|
-
- Eval 2 com skill levou 305s (mais longo) — provavelmente por gerar 6 tasks completas com template de 8 secoes.
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
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 'feature-user' da secao 1 do SPEC_TECH e perguntou 'Podemos iniciar a definicao macro das fases conforme proposto acima? Deseja ajustar algo na estrutura de fases?'"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)",
|
|
13
|
-
"passed": true,
|
|
14
|
-
"evidence": "Apenas uma pergunta ao final da primeira interacao, aguardando validacao das macro-fases."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
18
|
-
"passed": true,
|
|
19
|
-
"evidence": "Propos 5 macro-fases (Fundacao, Dados, Negocio, Apresentacao, Testes) com 11 tasks estimadas e aguardou confirmacao."
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks",
|
|
23
|
-
"passed": true,
|
|
24
|
-
"evidence": "Transcript mostra 'Passo 1 -- Read ALL project rules' com lista explicita de CLAUDE.md + 8 arquivos .claude/rules/. Executado ANTES da exploracao do codebase (Passo 2)."
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda",
|
|
28
|
-
"passed": true,
|
|
29
|
-
"evidence": "Explicitamente diz 'Esta e a PRIMEIRA interacao do processo. Nas proximas interacoes, seriam destrinchadas as tasks...' — nao executou nenhuma task."
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# Resposta — TASK PLAN para Feature de Usuario
|
|
2
|
-
|
|
3
|
-
## 1. Feature Identificada
|
|
4
|
-
|
|
5
|
-
Extraido da secao "1. Visao Geral Tecnica" do SPEC_TECH:
|
|
6
|
-
|
|
7
|
-
- **Feature**: Modulo de Usuario -- Vakinha Burger
|
|
8
|
-
- **Nome normalizado (kebab-case)**: `feature-user`
|
|
9
|
-
- **Versao**: v1
|
|
10
|
-
- **SPEC_TECH**: `docs/feature-user/v1/spec_tech.md`
|
|
11
|
-
- **PRD**: `docs/feature-user/v1/prd.md`
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 2. Confirmacao e Proposta de Macro-Fases
|
|
16
|
-
|
|
17
|
-
Obrigado! Vamos iniciar o TASK PLAN para **Modulo de Usuario -- Vakinha Burger**.
|
|
18
|
-
|
|
19
|
-
### Analise do Codebase (achados criticos)
|
|
20
|
-
|
|
21
|
-
Antes de propor as fases, realizei a analise obrigatoria do projeto (Passo 1 e Passo 2 do SKILL.md):
|
|
22
|
-
|
|
23
|
-
**Passo 1 -- Rules lidas:**
|
|
24
|
-
- `CLAUDE.md` (raiz)
|
|
25
|
-
- `.claude/rules/code-conventions.md`
|
|
26
|
-
- `.claude/rules/database.md`
|
|
27
|
-
- `.claude/rules/fx-di.md`
|
|
28
|
-
- `.claude/rules/grpc.md`
|
|
29
|
-
- `.claude/rules/protobuf.md`
|
|
30
|
-
- `.claude/rules/repository.md`
|
|
31
|
-
- `.claude/rules/service.md`
|
|
32
|
-
- `.claude/rules/sqlc.md`
|
|
33
|
-
|
|
34
|
-
**Passo 2 -- Exploracao do codebase:**
|
|
35
|
-
|
|
36
|
-
Identifiquei que **a feature ja esta integralmente implementada** no branch atual (`user-feature`). Todos os arquivos referenciados no SPEC_TECH ja existem e contem o codigo completo:
|
|
37
|
-
|
|
38
|
-
| Componente | Arquivo | Estado |
|
|
39
|
-
|------------|---------|--------|
|
|
40
|
-
| Identity package | `internal/pkg/identity/identity.go` | JA EXISTE -- Claims, GenerateToken, ParseToken, WithUserID, UserIDFromContext |
|
|
41
|
-
| Identity tests | `internal/pkg/identity/identity_test.go` | JA EXISTE |
|
|
42
|
-
| Auth interceptor | `internal/infra/grpc/interceptors/auth.go` | JA EXISTE -- Login em skipMethods, usa identity.ParseToken, injeta user_id |
|
|
43
|
-
| Auth interceptor tests | `internal/infra/grpc/interceptors/auth_test.go` | JA EXISTE |
|
|
44
|
-
| Migration 002 | `internal/db/migrations/002_add_endereco_usuarios.sql` | JA EXISTE |
|
|
45
|
-
| User repository | `internal/repository/user_repository.go` | JA EXISTE -- Create, GetByID, GetByEmail, Update, modelo User com Address |
|
|
46
|
-
| Repository integration tests | `internal/repository/user_repository_integration_test.go` | JA EXISTE |
|
|
47
|
-
| User service | `internal/service/user_service.go` | JA EXISTE -- CreateUser, Login, GetUserLogged, UpdateUser, todos os erros, todas as validacoes |
|
|
48
|
-
| User service tests | `internal/service/user_service_test.go` | JA EXISTE |
|
|
49
|
-
| User handler | `internal/handler/grpc/user_handler.go` | JA EXISTE -- CreateUser, Login, GetUserLogged, UpdateUser, mapServiceError |
|
|
50
|
-
| User handler tests | `internal/handler/grpc/user_handler_test.go` | JA EXISTE |
|
|
51
|
-
| Config | `internal/infra/config/config.go` | JA EXISTE -- JWTExpirationHours |
|
|
52
|
-
| E2E tests | `internal/e2e/user_e2e_test.go` | JA EXISTE |
|
|
53
|
-
|
|
54
|
-
**Conclusao da analise**: Como todo o codigo ja existe, o TASK PLAN que seria gerado teria TODAS as tasks com status "Concluido". Isso muda significativamente a natureza do plano.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### Proposta de Macro-Fases
|
|
59
|
-
|
|
60
|
-
Apesar de a implementacao ja existir, apresento as macro-fases que TERIAM sido utilizadas para decompor esta feature, conforme o SPEC_TECH:
|
|
61
|
-
|
|
62
|
-
**Fase 1 -- Fundacao e Infraestrutura**
|
|
63
|
-
- Objetivo: Criar os alicerces tecnicos que nao dependem de logica de negocio
|
|
64
|
-
- Escopo: pacote `identity` (JWT), migration 002, configuracao (`JWTExpirationHours`), queries SQLC, geracao de codigo (`make generate`)
|
|
65
|
-
- Tasks estimadas: T1 (identity package), T2 (migration + queries SQLC + make generate), T3 (config)
|
|
66
|
-
|
|
67
|
-
**Fase 2 -- Camada de Dados**
|
|
68
|
-
- Objetivo: Implementar o acesso a dados completo (repository)
|
|
69
|
-
- Escopo: Adicionar `Address` ao modelo `User`, implementar `GetByEmail()` e `Update()`, atualizar `Create()`
|
|
70
|
-
- Tasks estimadas: T4 (repository)
|
|
71
|
-
|
|
72
|
-
**Fase 3 -- Logica de Negocio**
|
|
73
|
-
- Objetivo: Implementar todas as regras de negocio no service
|
|
74
|
-
- Escopo: `CreateUser` (validacoes completas), `Login`, `GetUserLogged`, `UpdateUser`, erros de dominio
|
|
75
|
-
- Tasks estimadas: T5 (CreateUser atualizado + Login), T6 (GetUserLogged + UpdateUser)
|
|
76
|
-
|
|
77
|
-
**Fase 4 -- Camada de Apresentacao**
|
|
78
|
-
- Objetivo: Implementar handlers gRPC e atualizar o contrato proto
|
|
79
|
-
- Escopo: proto atualizado, handlers `Login`, `GetUserLogged`, `UpdateUser`, `mapServiceError`, interceptor atualizado
|
|
80
|
-
- Tasks estimadas: T7 (proto + make generate), T8 (handlers + interceptor)
|
|
81
|
-
|
|
82
|
-
**Fase 5 -- Testes e Validacao**
|
|
83
|
-
- Objetivo: Garantir cobertura de testes em todas as camadas
|
|
84
|
-
- Escopo: testes unitarios (identity, service, handler, interceptor), testes de integracao (repository, migration), testes E2E
|
|
85
|
-
- Tasks estimadas: T9 (testes unitarios), T10 (testes integracao), T11 (testes E2E)
|
|
86
|
-
|
|
87
|
-
### Rastreabilidade US -> Fases
|
|
88
|
-
|
|
89
|
-
| User Story | Fases Envolvidas |
|
|
90
|
-
|------------|-----------------|
|
|
91
|
-
| US-01 (Cadastro) | Fase 1, 2, 3, 4, 5 |
|
|
92
|
-
| US-02 (Login) | Fase 1, 3, 4, 5 |
|
|
93
|
-
| US-03 (Consultar dados) | Fase 1, 3, 4, 5 |
|
|
94
|
-
| US-04 (Atualizar dados) | Fase 2, 3, 4, 5 |
|
|
95
|
-
|
|
96
|
-
### Paralelismo Identificado
|
|
97
|
-
|
|
98
|
-
- T1 (identity), T2 (migration/SQLC), T3 (config) podem rodar em **paralelo** (Fase 1)
|
|
99
|
-
- T5 e T6 sao sequenciais (T6 depende de T5 para erros e tipos compartilhados)
|
|
100
|
-
- T7 deve rodar antes de T8 (handlers dependem do proto gerado)
|
|
101
|
-
- T9, T10, T11 podem rodar em **paralelo** (Fase 5), mas todas dependem de T1-T8
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Pergunta ao Usuario
|
|
106
|
-
|
|
107
|
-
> Podemos iniciar a definicao macro das fases conforme proposto acima? Deseja ajustar algo na estrutura de fases, no agrupamento de tasks ou na ordem de dependencias?
|
|
108
|
-
|
|
109
|
-
### Resposta Simulada (eval -- sem usuario real)
|
|
110
|
-
|
|
111
|
-
Como esta e uma execucao de avaliacao sem usuario real, assumo que o usuario responderia:
|
|
112
|
-
|
|
113
|
-
> "Sim, pode seguir com essas fases. A estrutura esta boa."
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
**Nota**: Esta e a PRIMEIRA interacao do processo. Nas proximas interacoes, seriam destrinchadas as tasks fase a fase, com criacao dos arquivos `tasks/TN.md` e, ao final, o `task_plan.md` de referencia. Conforme instrucoes do eval, paro aqui na primeira interacao.
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
# Transcript -- Tool Calls
|
|
2
|
-
|
|
3
|
-
## 1. Read skill and templates (parallel)
|
|
4
|
-
|
|
5
|
-
| Tool | Parameters |
|
|
6
|
-
|------|-----------|
|
|
7
|
-
| Read | `.claude/skills/sdd-task-plan-expert/SKILL.md` |
|
|
8
|
-
| Read | `.claude/skills/sdd-task-plan-expert/templates/task_plan_template.md` |
|
|
9
|
-
| Read | `.claude/skills/sdd-task-plan-expert/templates/task_template.md` |
|
|
10
|
-
| Read | `docs/feature-user/v1/spec_tech.md` |
|
|
11
|
-
|
|
12
|
-
> SKILL.md was read in full. Templates were read in full. SPEC_TECH triggered persisted-output due to size (49.8KB).
|
|
13
|
-
|
|
14
|
-
## 2. Read full SPEC_TECH (persisted output)
|
|
15
|
-
|
|
16
|
-
| Tool | Parameters |
|
|
17
|
-
|------|-----------|
|
|
18
|
-
| Read | Persisted output file (full SPEC_TECH content) |
|
|
19
|
-
|
|
20
|
-
> Still truncated. Proceeded with offset-based reads.
|
|
21
|
-
|
|
22
|
-
## 3. Read SPEC_TECH in chunks
|
|
23
|
-
|
|
24
|
-
| Tool | Parameters |
|
|
25
|
-
|------|-----------|
|
|
26
|
-
| Read | `docs/feature-user/v1/spec_tech.md`, offset=1, limit=200 |
|
|
27
|
-
| Read | `docs/feature-user/v1/spec_tech.md`, offset=200, limit=300 |
|
|
28
|
-
| Read | `docs/feature-user/v1/spec_tech.md`, offset=498, limit=200 |
|
|
29
|
-
| Read | `docs/feature-user/v1/spec_tech.md`, offset=697, limit=200 |
|
|
30
|
-
|
|
31
|
-
> Sections 1-16 of the SPEC_TECH were fully read.
|
|
32
|
-
|
|
33
|
-
## 4. Passo 1 -- Read ALL project rules
|
|
34
|
-
|
|
35
|
-
Rules already loaded from system-reminder context (CLAUDE.md and all .claude/rules/* files were provided as context). Confirmed reading:
|
|
36
|
-
- `CLAUDE.md`
|
|
37
|
-
- `.claude/rules/code-conventions.md`
|
|
38
|
-
- `.claude/rules/database.md`
|
|
39
|
-
- `.claude/rules/fx-di.md`
|
|
40
|
-
- `.claude/rules/grpc.md`
|
|
41
|
-
- `.claude/rules/protobuf.md`
|
|
42
|
-
- `.claude/rules/repository.md`
|
|
43
|
-
- `.claude/rules/service.md`
|
|
44
|
-
- `.claude/rules/sqlc.md`
|
|
45
|
-
|
|
46
|
-
## 5. Passo 2 -- Explore codebase (parallel)
|
|
47
|
-
|
|
48
|
-
| Tool | Parameters |
|
|
49
|
-
|------|-----------|
|
|
50
|
-
| Glob | pattern=`**/*.go`, path=project root |
|
|
51
|
-
| Glob | pattern=`internal/db/migrations/*`, path=project root |
|
|
52
|
-
| Glob | pattern=`internal/db/queries/*`, path=project root |
|
|
53
|
-
|
|
54
|
-
> Found 24 Go files. Found 2 migration files. No query files in `internal/db/queries/` (queries are in `internal/db/sqlc/queries/`).
|
|
55
|
-
|
|
56
|
-
## 6. Read existing implementation files (parallel)
|
|
57
|
-
|
|
58
|
-
| Tool | Parameters |
|
|
59
|
-
|------|-----------|
|
|
60
|
-
| Read | `internal/repository/user_repository.go` |
|
|
61
|
-
| Read | `internal/service/user_service.go` |
|
|
62
|
-
| Read | `internal/handler/grpc/user_handler.go` |
|
|
63
|
-
| Read | `internal/infra/grpc/interceptors/auth.go` |
|
|
64
|
-
| Read | `internal/infra/config/config.go` |
|
|
65
|
-
| Read | `internal/pkg/identity/identity.go` |
|
|
66
|
-
|
|
67
|
-
> All 6 files read successfully. Confirmed that the entire feature is already implemented.
|
|
68
|
-
|
|
69
|
-
## 7. Create output directory
|
|
70
|
-
|
|
71
|
-
| Tool | Parameters |
|
|
72
|
-
|------|-----------|
|
|
73
|
-
| Bash | `mkdir -p ...outputs/` |
|
|
74
|
-
|
|
75
|
-
## 8. Write output files
|
|
76
|
-
|
|
77
|
-
| Tool | Parameters |
|
|
78
|
-
|------|-----------|
|
|
79
|
-
| Write | `response.md` -- main response with feature name confirmation and macro-phases |
|
|
80
|
-
| Write | `transcript.md` -- this file |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Summary of Findings
|
|
85
|
-
|
|
86
|
-
- **Feature name extracted**: "Modulo de Usuario -- Vakinha Burger" from SPEC_TECH section 1
|
|
87
|
-
- **Feature directory**: `feature-user` (already exists at `docs/feature-user/v1/`)
|
|
88
|
-
- **Critical finding**: The entire feature is already implemented in the codebase. All files referenced in sections 3.1 and 15 of the SPEC_TECH exist with complete implementations.
|
|
89
|
-
- **Macro-phases proposed**: 5 phases (Fundacao, Dados, Negocio, Apresentacao, Testes) with 11 tasks
|
|
90
|
-
- **User Stories covered**: US-01 through US-04, all mapped to phases
|
|
91
|
-
- **First interaction completed**: Feature name confirmed + macro-phases proposed + awaiting user confirmation
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"total_tokens": 64193, "duration_ms": 125607, "total_duration_seconds": 125.6}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"eval_id": 1,
|
|
3
|
-
"eval_name": "happy-path-spec-tech-usuario",
|
|
4
|
-
"configuration": "without_skill",
|
|
5
|
-
"expectations": [
|
|
6
|
-
{
|
|
7
|
-
"text": "Extrai o nome da feature do SPEC_TECH e confirma com o usuario antes de prosseguir",
|
|
8
|
-
"passed": false,
|
|
9
|
-
"evidence": "Gerou o task plan completo com 12 tasks sem confirmar o nome da feature com o usuario. Identificou 'Modulo de Usuario v1' mas nao perguntou se estava correto."
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"text": "Faz apenas UMA pergunta por vez (nao bombardeia com multiplas perguntas no mesmo turno)",
|
|
13
|
-
"passed": false,
|
|
14
|
-
"evidence": "Nenhuma pergunta foi feita ao usuario. O output completo (695 linhas) foi gerado de uma vez sem interacao."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"text": "Propoe macro-fases de alto nivel e aguarda validacao antes de criar tasks",
|
|
18
|
-
"passed": false,
|
|
19
|
-
"evidence": "Pulou diretamente para tasks detalhadas (TASK 01-12) sem propor macro-fases primeiro e aguardar validacao."
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"text": "Le as rules do projeto (.claude/rules/ e CLAUDE.md) ANTES de gerar tasks",
|
|
23
|
-
"passed": false,
|
|
24
|
-
"evidence": "Transcript mostra apenas leitura do SPEC_TECH e arquivos de implementacao. Nenhuma leitura de .claude/rules/ ou CLAUDE.md foi registrada."
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"text": "NAO inicia execucao automatica de tasks — apenas apresenta o plano e aguarda",
|
|
28
|
-
"passed": true,
|
|
29
|
-
"evidence": "Apresentou apenas o plano sem executar nenhuma task."
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
}
|