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.
Files changed (130) hide show
  1. package/bin/index.js +0 -0
  2. package/frameworks/commands/generate-project-profile.md +68 -0
  3. package/frameworks/commands/generate-prompt.md +4 -2
  4. package/frameworks/commands/ministack/README.md +61 -46
  5. package/frameworks/commands/ministack/code-review.md +36 -49
  6. package/frameworks/commands/ministack/generate-intent.md +25 -2
  7. package/frameworks/commands/ministack/generate-scope.md +30 -6
  8. package/frameworks/commands/ministack/generate-tasks.md +191 -6
  9. package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
  10. package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
  11. package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
  12. package/frameworks/commands/ministack/status.md +153 -0
  13. package/frameworks/commands/sdd/code-review.md +10 -10
  14. package/frameworks/commands/sdd/generate-prd.md +32 -2
  15. package/frameworks/commands/sdd/generate-task-plan.md +199 -5
  16. package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
  17. package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
  18. package/frameworks/commands/sdd/generate-tests.md +2 -2
  19. package/frameworks/commands/sdd/run_tasks.md +391 -43
  20. package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
  21. package/frameworks/commands/sdd/status.md +160 -0
  22. package/frameworks/commands/sdd/validate-sdd.md +18 -2
  23. package/frameworks/commands/sync-tasks-to-linear.md +588 -588
  24. package/frameworks/commands/taskcard/generate-taskcard.md +42 -25
  25. package/frameworks/commands/taskcard/run-taskcard.md +203 -34
  26. package/frameworks/skills/ministack-intent-expert/SKILL.md +3 -2
  27. package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
  28. package/frameworks/skills/ministack-scope-expert/SKILL.md +6 -10
  29. package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
  30. package/frameworks/skills/ministack-tasks-expert/SKILL.md +192 -0
  31. package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
  32. package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
  33. package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +218 -0
  34. package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
  35. package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
  36. package/frameworks/skills/sdd-prd-expert/SKILL.md +143 -95
  37. package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
  38. package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
  39. package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
  40. package/frameworks/skills/sdd-task-plan-expert/SKILL.md +179 -201
  41. package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
  42. package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
  43. package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
  44. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
  45. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
  46. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
  47. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
  48. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
  74. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
  75. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
  76. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
  77. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
  78. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
  79. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
  80. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
  81. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
  82. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
  83. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
  84. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
  85. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
  86. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
  87. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
  88. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
  89. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
  90. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
  91. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
  92. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
  93. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
  94. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
  95. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  96. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
  97. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
  98. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
  99. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  100. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
  101. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
  102. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
  103. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
  104. package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +223 -0
  105. package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
  106. package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
  107. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +304 -0
  108. package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
  109. package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
  110. package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
  111. package/frameworks/skills/taskcard-expert/SKILL.md +26 -78
  112. package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
  113. package/package.json +1 -1
  114. package/frameworks/commands/ministack/generate-tests.md +0 -37
  115. package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
  116. package/frameworks/commands/taskcard/generate-tests.md +0 -37
  117. package/frameworks/skills/ministack-expert/SKILL.md +0 -415
  118. package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
  119. package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
  120. package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
  121. package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
  122. package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
  123. package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
  124. package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
  125. package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
  126. package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
  127. package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
  128. package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
  129. package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
  130. 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 Execucao das Tasks
1
+ # TASK PLAN – Plano de Execução das Tasks
2
2
 
3
- ## 1. Identificacao
3
+ ## 1. Identificação
4
4
  - **Feature/Projeto**:
5
- - **Responsavel (Tech Lead)**:
5
+ - **Responsável (Tech Lead)**:
6
6
  - **Data**:
7
7
  - **Status**: Rascunho | Em andamento | Fechado
8
- - **SPEC Relacionado**:
9
- - **PRD Relacionado**:
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 sera entregue ao final das tasks.
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 nivel)
19
- - **Fase 1 – Preparacao / Fundamentos**
18
+ ## 3. Macro-Fases (alto nível)
19
+ - **Fase 1 – Preparação / Fundamentos**
20
20
  - Objetivo:
21
21
  - Tasks: T1, T2
22
- - **Fase 2 – Implementacao Principal**
22
+ - **Fase 2 – Implementação Principal**
23
23
  - Objetivo:
24
24
  - Tasks: T3, T4, T5
25
- - **Fase 3 – Integracoes / Ajustes**
25
+ - **Fase 3 – Integrações / Ajustes**
26
26
  - Objetivo:
27
27
  - Tasks: T6, T7
28
- - **Fase 4 – Testes / Validacao**
28
+ - **Fase 4 – Testes / Validação**
29
29
  - Objetivo:
30
30
  - Tasks: T8, T9
31
- - **Fase 5 – Finalizacao / Entrega**
31
+ - **Fase 5 – Finalização / Entrega**
32
32
  - Objetivo:
33
33
  - Tasks: T10
34
34
 
35
35
  ---
36
36
 
37
- ## 4. Lista de Tasks (visao macro)
38
- | ID | Nome da Task | Fase | Dependencias | Pode Rodar em Paralelo? | Status |
39
- |----|--------------|------|--------------|--------------------------|--------|
40
- | T1 | | | | Sim/Nao | A Fazer |
41
- | T2 | | | | Sim/Nao | A Fazer |
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) | Definicao Tecnica (SPEC) | Tasks Relacionadas | Status |
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
- > Esta tabela garante que TODAS as user stories do PRD tem tasks correspondentes para implementacao.
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. Dependencias Gerais
57
- Liste dependencias entre tasks, externas, bloqueios e pre-requisitos do time.
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. Criterios de Conclusao da Feature
62
- A feature sera considerada concluida quando:
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
- - [ ] Criterios tecnicos do SPEC atendidos
65
+ - [ ] Critérios técnicos do SPEC atendidos
66
66
  - [ ] Nenhum comportamento divergente do PRD
67
- - [ ] Todas as User Stories cobertas (tabela secao 5)
67
+ - [ ] Todas as User Stories cobertas (tabela seção 5)
68
68
  - [ ] Deploy aprovado
69
69
 
70
70
  ---
71
71
 
72
- ## 8. Riscos & Mitigacoes
73
- - Risco 1 → Mitigacao
74
- - Risco 2 → Mitigacao
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
- - [ ] Dependencias validadas
81
+ - [ ] Dependências validadas
82
82
  - [ ] Rastreabilidade User Stories → Tasks preenchida
83
- - [ ] Pronto para execucao paralela
83
+ - [ ] Pronto para execução paralela
@@ -1,40 +1,40 @@
1
1
  # TASK – Detalhamento da Task
2
2
 
3
- ## 1. Identificacao
3
+ ## 1. Identificação
4
4
  - **ID**:
5
5
  - **Nome da Task**:
6
- - **Responsavel**:
7
- - **Status**: A Fazer | Em Progresso | Revisao | Concluido
6
+ - **Responsável**:
7
+ - **Status**: A Fazer | Em Progresso | Revisão | Concluído
8
8
  - **Fase**:
9
- - **Dependencias**:
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 tecnico direto, nao comportamento do usuario).
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. Descricao Detalhada
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 tecnico envolvido
24
- - Regras de implementacao especificas
25
- - Decisoes tecnicas ja tomadas
23
+ - Fluxo técnico envolvido
24
+ - Regras de implementação específicas
25
+ - Decisões técnicas tomadas
26
26
 
27
- > Deve ser objetiva, clara e de engenharia.
27
+ <!-- LLM-ONLY: A descricao deve ser objetiva, clara e de engenharia. -->
28
28
 
29
29
  ---
30
30
 
31
- ## 4. Aceite Tecnico (criterios objetivos)
32
- A task estara concluida quando:
31
+ ## 4. Aceite Técnico (critérios objetivos)
32
+ A task estará concluída quando:
33
33
  - [ ] Estrutura implementada conforme SPEC
34
- - [ ] Fluxo tecnico funcional
34
+ - [ ] Fluxo técnico funcional
35
35
  - [ ] Erros corretamente tratados
36
- - [ ] Testes da task criados (quando aplicavel)
37
- - [ ] Codigo revisado e aprovado
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 | Descricao |
45
+ | Arquivo | Descrição |
46
46
  |---------|-----------|
47
47
  | | |
48
48
 
49
49
  ### 5.2 Arquivos a Modificar
50
- | Arquivo | Modificacao |
50
+ | Arquivo | Modificação |
51
51
  |---------|------------|
52
52
  | | |
53
53
 
54
- ### 5.3 Arquivos de Referencia
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
- ### 6.1 Testes Unitarios
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.2 Testes de Integracao
68
- - [ ] Teste: descricao do teste de integracao
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
- ### 6.4 Cenarios de Erro
74
- - [ ] Cenario: descricao do cenario de erro esperado
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 / Observacoes
79
- Anotacoes tecnicas, decisoes, pontos relevantes.
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 unitarios criados/atualizados
86
- - [ ] Testes de integracao criados/atualizados
87
- - [ ] Aceite tecnico atendido
111
+ - [ ] Testes unitários criados/atualizados
112
+ - [ ] Testes de integração criados/atualizados
113
+ - [ ] Aceite técnico atendido
88
114
  - [ ] Revisada
89
- - [ ] Integrada a branch principal
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
+ }