adi_dev_workflow 1.1.1 → 1.3.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 -311
- package/frameworks/agents/qa-validation-expert.md +458 -458
- package/frameworks/agents/tech-review-conformance.md +200 -200
- 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 +2 -0
- package/frameworks/commands/taskcard/run-taskcard.md +2 -0
- package/frameworks/config/ai-framework-config.yaml +112 -0
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -204
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -78
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -103
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -99
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -64
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -134
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -68
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -525
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -30
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -1126
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -131
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -452
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -78
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -101
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -133
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -248
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -49
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -1325
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -94
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -67
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -117
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -91
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -694
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -45
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -1087
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -124
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -84
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -70
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -148
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -249
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -80
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -1325
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -317
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -199
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -290
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -23
- package/package.json +28 -28
- package/src/cli.js +121 -121
- package/src/installer.js +155 -136
- package/src/transformer.js +86 -86
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
# Transcript — Task Plan Generation (without_skill)
|
|
2
|
-
|
|
3
|
-
## Ferramentas Utilizadas
|
|
4
|
-
|
|
5
|
-
### 1. Bash — Listar migracoes existentes
|
|
6
|
-
```
|
|
7
|
-
ls "H:/repos/flutter_experience/04_2026/cb_vakinhaburger_2025/vakinha-api-review/internal/db/migrations/"
|
|
8
|
-
```
|
|
9
|
-
**Resultado:** `001_create_usuarios.sql`, `002_add_endereco_usuarios.sql`
|
|
10
|
-
|
|
11
|
-
### 2. Bash — Listar queries SQLC
|
|
12
|
-
```
|
|
13
|
-
ls "H:/repos/flutter_experience/04_2026/cb_vakinhaburger_2025/vakinha-api-review/internal/db/queries/"
|
|
14
|
-
```
|
|
15
|
-
**Resultado:** Diretorio nao existe nesse caminho (queries estao em `internal/db/sqlc/queries/`)
|
|
16
|
-
|
|
17
|
-
### 3. Bash — Listar arquivos repository, service, handler, proto
|
|
18
|
-
```
|
|
19
|
-
ls para cada diretorio
|
|
20
|
-
```
|
|
21
|
-
**Resultado (parcial, outros cancelados por erro no queries):**
|
|
22
|
-
- `api/proto/v1/`: `user.proto`
|
|
23
|
-
- `internal/repository/`: `user_repository.go`, `user_repository_integration_test.go`
|
|
24
|
-
- `internal/service/`: `user_service.go`, `user_service_test.go`
|
|
25
|
-
- `internal/handler/grpc/`: `fx.go`, `user_handler.go`, `user_handler_test.go`
|
|
26
|
-
|
|
27
|
-
### 4. Bash — Encontrar todos os arquivos Go e SQL no internal
|
|
28
|
-
```
|
|
29
|
-
find "H:/repos/.../internal" -type f -name "*.go" -o -name "*.sql" | head -60
|
|
30
|
-
```
|
|
31
|
-
**Resultado:** Lista completa de 24 arquivos no projeto.
|
|
32
|
-
|
|
33
|
-
### 5. Read — Migracao 001
|
|
34
|
-
**Arquivo:** `internal/db/migrations/001_create_usuarios.sql`
|
|
35
|
-
**Conteudo:** CREATE TABLE usuarios com colunas id, nome, email, senha_hash, data_criacao, data_atualizacao.
|
|
36
|
-
|
|
37
|
-
### 6. Read — Migracao 002
|
|
38
|
-
**Arquivo:** `internal/db/migrations/002_add_endereco_usuarios.sql`
|
|
39
|
-
**Conteudo:** `ALTER TABLE usuarios ADD COLUMN endereco TEXT NOT NULL DEFAULT '';`
|
|
40
|
-
|
|
41
|
-
### 7. Read — Queries SQLC
|
|
42
|
-
**Arquivo:** `internal/db/sqlc/queries/user.sql`
|
|
43
|
-
**Conteudo:** 4 queries: CreateUser, GetUserByID, GetUserByEmail, UpdateUser. Todas com colunas em portugues.
|
|
44
|
-
|
|
45
|
-
### 8. Read — Repository
|
|
46
|
-
**Arquivo:** `internal/repository/user_repository.go`
|
|
47
|
-
**Conteudo:** Struct User (ID, Name, Email, PasswordHash, Address, CreatedAt, UpdatedAt), interface UserRepository, implementacao sqlcUserRepository, funcao toUser para mapeamento.
|
|
48
|
-
|
|
49
|
-
### 9. Read — Service
|
|
50
|
-
**Arquivo:** `internal/service/user_service.go`
|
|
51
|
-
**Conteudo:** CreateUserInput, UpdateUserInput (com campos opcionais via ponteiro), UserService interface, implementacao com validacoes, login, JWT, etc.
|
|
52
|
-
|
|
53
|
-
### 10. Read — Handler gRPC
|
|
54
|
-
**Arquivo:** `internal/handler/grpc/user_handler.go`
|
|
55
|
-
**Conteudo:** UserHandler com CreateUser, Login, GetUserLogged, UpdateUser. Funcoes auxiliares domainUserToProto e mapServiceError.
|
|
56
|
-
|
|
57
|
-
### 11. Read — Proto
|
|
58
|
-
**Arquivo:** `api/proto/v1/user.proto`
|
|
59
|
-
**Conteudo:** Mensagens User, CreateUserRequest/Response, LoginRequest/Response, GetUserLoggedRequest/Response, UpdateUserRequest/Response, servico UserService.
|
|
60
|
-
|
|
61
|
-
### 12. Read — Service Tests
|
|
62
|
-
**Arquivo:** `internal/service/user_service_test.go`
|
|
63
|
-
**Conteudo:** MockUserRepository, testes table-driven e individuais para CreateUser, Login, GetUserLogged, UpdateUser. Padrao testify/mock.
|
|
64
|
-
|
|
65
|
-
### 13. Read — Handler Tests
|
|
66
|
-
**Arquivo:** `internal/handler/grpc/user_handler_test.go`
|
|
67
|
-
**Conteudo:** MockUserService, testes para todos os handlers, TestMapServiceError_AllErrors, TestDomainUserToProto.
|
|
68
|
-
|
|
69
|
-
### 14. Glob — Encontrar sqlc.yaml
|
|
70
|
-
```
|
|
71
|
-
pattern: **/sqlc.yaml
|
|
72
|
-
```
|
|
73
|
-
**Resultado:** `internal/db/sqlc/sqlc.yaml`
|
|
74
|
-
|
|
75
|
-
### 15. Bash — Criar diretorio de output
|
|
76
|
-
```
|
|
77
|
-
mkdir -p ".../without_skill/outputs"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### 16. Write — response.md
|
|
81
|
-
Gerado o Task Plan completo com 7 tasks.
|
|
82
|
-
|
|
83
|
-
### 17. Write — transcript.md
|
|
84
|
-
Este arquivo.
|
|
1
|
+
# Transcript — Task Plan Generation (without_skill)
|
|
2
|
+
|
|
3
|
+
## Ferramentas Utilizadas
|
|
4
|
+
|
|
5
|
+
### 1. Bash — Listar migracoes existentes
|
|
6
|
+
```
|
|
7
|
+
ls "H:/repos/flutter_experience/04_2026/cb_vakinhaburger_2025/vakinha-api-review/internal/db/migrations/"
|
|
8
|
+
```
|
|
9
|
+
**Resultado:** `001_create_usuarios.sql`, `002_add_endereco_usuarios.sql`
|
|
10
|
+
|
|
11
|
+
### 2. Bash — Listar queries SQLC
|
|
12
|
+
```
|
|
13
|
+
ls "H:/repos/flutter_experience/04_2026/cb_vakinhaburger_2025/vakinha-api-review/internal/db/queries/"
|
|
14
|
+
```
|
|
15
|
+
**Resultado:** Diretorio nao existe nesse caminho (queries estao em `internal/db/sqlc/queries/`)
|
|
16
|
+
|
|
17
|
+
### 3. Bash — Listar arquivos repository, service, handler, proto
|
|
18
|
+
```
|
|
19
|
+
ls para cada diretorio
|
|
20
|
+
```
|
|
21
|
+
**Resultado (parcial, outros cancelados por erro no queries):**
|
|
22
|
+
- `api/proto/v1/`: `user.proto`
|
|
23
|
+
- `internal/repository/`: `user_repository.go`, `user_repository_integration_test.go`
|
|
24
|
+
- `internal/service/`: `user_service.go`, `user_service_test.go`
|
|
25
|
+
- `internal/handler/grpc/`: `fx.go`, `user_handler.go`, `user_handler_test.go`
|
|
26
|
+
|
|
27
|
+
### 4. Bash — Encontrar todos os arquivos Go e SQL no internal
|
|
28
|
+
```
|
|
29
|
+
find "H:/repos/.../internal" -type f -name "*.go" -o -name "*.sql" | head -60
|
|
30
|
+
```
|
|
31
|
+
**Resultado:** Lista completa de 24 arquivos no projeto.
|
|
32
|
+
|
|
33
|
+
### 5. Read — Migracao 001
|
|
34
|
+
**Arquivo:** `internal/db/migrations/001_create_usuarios.sql`
|
|
35
|
+
**Conteudo:** CREATE TABLE usuarios com colunas id, nome, email, senha_hash, data_criacao, data_atualizacao.
|
|
36
|
+
|
|
37
|
+
### 6. Read — Migracao 002
|
|
38
|
+
**Arquivo:** `internal/db/migrations/002_add_endereco_usuarios.sql`
|
|
39
|
+
**Conteudo:** `ALTER TABLE usuarios ADD COLUMN endereco TEXT NOT NULL DEFAULT '';`
|
|
40
|
+
|
|
41
|
+
### 7. Read — Queries SQLC
|
|
42
|
+
**Arquivo:** `internal/db/sqlc/queries/user.sql`
|
|
43
|
+
**Conteudo:** 4 queries: CreateUser, GetUserByID, GetUserByEmail, UpdateUser. Todas com colunas em portugues.
|
|
44
|
+
|
|
45
|
+
### 8. Read — Repository
|
|
46
|
+
**Arquivo:** `internal/repository/user_repository.go`
|
|
47
|
+
**Conteudo:** Struct User (ID, Name, Email, PasswordHash, Address, CreatedAt, UpdatedAt), interface UserRepository, implementacao sqlcUserRepository, funcao toUser para mapeamento.
|
|
48
|
+
|
|
49
|
+
### 9. Read — Service
|
|
50
|
+
**Arquivo:** `internal/service/user_service.go`
|
|
51
|
+
**Conteudo:** CreateUserInput, UpdateUserInput (com campos opcionais via ponteiro), UserService interface, implementacao com validacoes, login, JWT, etc.
|
|
52
|
+
|
|
53
|
+
### 10. Read — Handler gRPC
|
|
54
|
+
**Arquivo:** `internal/handler/grpc/user_handler.go`
|
|
55
|
+
**Conteudo:** UserHandler com CreateUser, Login, GetUserLogged, UpdateUser. Funcoes auxiliares domainUserToProto e mapServiceError.
|
|
56
|
+
|
|
57
|
+
### 11. Read — Proto
|
|
58
|
+
**Arquivo:** `api/proto/v1/user.proto`
|
|
59
|
+
**Conteudo:** Mensagens User, CreateUserRequest/Response, LoginRequest/Response, GetUserLoggedRequest/Response, UpdateUserRequest/Response, servico UserService.
|
|
60
|
+
|
|
61
|
+
### 12. Read — Service Tests
|
|
62
|
+
**Arquivo:** `internal/service/user_service_test.go`
|
|
63
|
+
**Conteudo:** MockUserRepository, testes table-driven e individuais para CreateUser, Login, GetUserLogged, UpdateUser. Padrao testify/mock.
|
|
64
|
+
|
|
65
|
+
### 13. Read — Handler Tests
|
|
66
|
+
**Arquivo:** `internal/handler/grpc/user_handler_test.go`
|
|
67
|
+
**Conteudo:** MockUserService, testes para todos os handlers, TestMapServiceError_AllErrors, TestDomainUserToProto.
|
|
68
|
+
|
|
69
|
+
### 14. Glob — Encontrar sqlc.yaml
|
|
70
|
+
```
|
|
71
|
+
pattern: **/sqlc.yaml
|
|
72
|
+
```
|
|
73
|
+
**Resultado:** `internal/db/sqlc/sqlc.yaml`
|
|
74
|
+
|
|
75
|
+
### 15. Bash — Criar diretorio de output
|
|
76
|
+
```
|
|
77
|
+
mkdir -p ".../without_skill/outputs"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 16. Write — response.md
|
|
81
|
+
Gerado o Task Plan completo com 7 tasks.
|
|
82
|
+
|
|
83
|
+
### 17. Write — transcript.md
|
|
84
|
+
Este arquivo.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"total_tokens": 61206, "duration_ms": 143285, "total_duration_seconds": 143.3}
|
|
1
|
+
{"total_tokens": 61206, "duration_ms": 143285, "total_duration_seconds": 143.3}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"eval_id": 3,
|
|
3
|
-
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
4
|
-
"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---",
|
|
5
|
-
"assertions": [
|
|
6
|
-
{"id": "c1", "text": "Detecta a ausencia de User Stories (US-XX) e PRD referenciado no SPEC_TECH", "type": "llm_judge"},
|
|
7
|
-
{"id": "c2", "text": "PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar", "type": "llm_judge"},
|
|
8
|
-
{"id": "c3", "text": "NAO inventa User Stories ficticias (guardrail: nunca invente informacoes)", "type": "llm_judge"},
|
|
9
|
-
{"id": "c4", "text": "Extrai corretamente o nome da feature como 'cache-de-cardapio' ou similar em kebab-case", "type": "llm_judge"},
|
|
10
|
-
{"id": "c5", "text": "Segue o processo interativo (uma pergunta por vez, confirma nome antes de prosseguir)", "type": "llm_judge"}
|
|
11
|
-
]
|
|
12
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 3,
|
|
3
|
+
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
4
|
+
"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---",
|
|
5
|
+
"assertions": [
|
|
6
|
+
{"id": "c1", "text": "Detecta a ausencia de User Stories (US-XX) e PRD referenciado no SPEC_TECH", "type": "llm_judge"},
|
|
7
|
+
{"id": "c2", "text": "PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar", "type": "llm_judge"},
|
|
8
|
+
{"id": "c3", "text": "NAO inventa User Stories ficticias (guardrail: nunca invente informacoes)", "type": "llm_judge"},
|
|
9
|
+
{"id": "c4", "text": "Extrai corretamente o nome da feature como 'cache-de-cardapio' ou similar em kebab-case", "type": "llm_judge"},
|
|
10
|
+
{"id": "c5", "text": "Segue o processo interativo (uma pergunta por vez, confirma nome antes de prosseguir)", "type": "llm_judge"}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
{
|
|
2
|
-
"eval_id": 3,
|
|
3
|
-
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
4
|
-
"configuration": "with_skill",
|
|
5
|
-
"expectations": [
|
|
6
|
-
{
|
|
7
|
-
"text": "Detecta a ausencia de User Stories (US-XX) e PRD referenciado no SPEC_TECH",
|
|
8
|
-
"passed": true,
|
|
9
|
-
"evidence": "Explicitamente diz 'O SPEC_TECH fornecido nao contem User Stories (US-XX) e nao referencia nenhum PRD' na secao 'Problema Identificado'."
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"text": "PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar",
|
|
13
|
-
"passed": true,
|
|
14
|
-
"evidence": "Faz pergunta com 3 opcoes (A: fornecer PRD, B: criar sem rastreabilidade, C: definir US simplificadas) e aguarda resposta."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"text": "NAO inventa User Stories ficticias (guardrail: nunca invente informacoes)",
|
|
18
|
-
"passed": true,
|
|
19
|
-
"evidence": "Nenhuma User Story ficticia foi criada. Apenas identificou a ausencia e perguntou ao usuario como proceder."
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"text": "Extrai corretamente o nome da feature como 'cache-de-cardapio' ou similar em kebab-case",
|
|
23
|
-
"passed": true,
|
|
24
|
-
"evidence": "Extraiu 'Cache de Cardapio em Memoria' e normalizou para 'cache-cardapio' em kebab-case."
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"text": "Segue o processo interativo (uma pergunta por vez, confirma nome antes de prosseguir)",
|
|
28
|
-
"passed": true,
|
|
29
|
-
"evidence": "Apresentou o nome extraido e fez UMA pergunta (sobre US/PRD + ProductService) aguardando resposta antes de prosseguir."
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 3,
|
|
3
|
+
"eval_name": "spec-tech-sem-user-stories-explicitas",
|
|
4
|
+
"configuration": "with_skill",
|
|
5
|
+
"expectations": [
|
|
6
|
+
{
|
|
7
|
+
"text": "Detecta a ausencia de User Stories (US-XX) e PRD referenciado no SPEC_TECH",
|
|
8
|
+
"passed": true,
|
|
9
|
+
"evidence": "Explicitamente diz 'O SPEC_TECH fornecido nao contem User Stories (US-XX) e nao referencia nenhum PRD' na secao 'Problema Identificado'."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"text": "PERGUNTA ao usuario sobre User Stories / PRD em vez de inventar ou ignorar",
|
|
13
|
+
"passed": true,
|
|
14
|
+
"evidence": "Faz pergunta com 3 opcoes (A: fornecer PRD, B: criar sem rastreabilidade, C: definir US simplificadas) e aguarda resposta."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"text": "NAO inventa User Stories ficticias (guardrail: nunca invente informacoes)",
|
|
18
|
+
"passed": true,
|
|
19
|
+
"evidence": "Nenhuma User Story ficticia foi criada. Apenas identificou a ausencia e perguntou ao usuario como proceder."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"text": "Extrai corretamente o nome da feature como 'cache-de-cardapio' ou similar em kebab-case",
|
|
23
|
+
"passed": true,
|
|
24
|
+
"evidence": "Extraiu 'Cache de Cardapio em Memoria' e normalizou para 'cache-cardapio' em kebab-case."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"text": "Segue o processo interativo (uma pergunta por vez, confirma nome antes de prosseguir)",
|
|
28
|
+
"passed": true,
|
|
29
|
+
"evidence": "Apresentou o nome extraido e fez UMA pergunta (sobre US/PRD + ProductService) aguardando resposta antes de prosseguir."
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
# Resposta do sdd-task-plan-expert
|
|
2
|
-
|
|
3
|
-
## Nome da Feature Extraido
|
|
4
|
-
|
|
5
|
-
Da secao "1. Identificacao" do SPEC_TECH, campo "Feature/Projeto": **Cache de Cardapio em Memoria**
|
|
6
|
-
|
|
7
|
-
Nome em kebab-case para diretorio: `cache-cardapio`
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Analise Obrigatoria do Projeto (Resultados)
|
|
12
|
-
|
|
13
|
-
### Passo 1: Rules lidas
|
|
14
|
-
|
|
15
|
-
Li todos os arquivos de regras do projeto:
|
|
16
|
-
- `CLAUDE.md` (raiz)
|
|
17
|
-
- `.claude/rules/code-conventions.md` — codigo em ingles, banco/logs/erros em portugues
|
|
18
|
-
- `.claude/rules/database.md` — SQLite WAL, migracoes imutaveis, nomenclatura em portugues
|
|
19
|
-
- `.claude/rules/fx-di.md` — Uber FX, modulos exportados via `var Module = fx.Module(...)`
|
|
20
|
-
- `.claude/rules/grpc.md` — handlers, mapeamento de erros, registro no server.go
|
|
21
|
-
- `.claude/rules/protobuf.md` — Buf, convencao de go_package
|
|
22
|
-
- `.claude/rules/repository.md` — interface + implementacao nao exportada, construtor recebe `*sql.DB`, mapeamento portugues->ingles
|
|
23
|
-
- `.claude/rules/service.md` — interface + implementacao nao exportada, erros exportados em portugues, logging com zap
|
|
24
|
-
- `.claude/rules/sqlc.md` — queries em `internal/db/queries/`, codigo gerado em `internal/db/sqlc/` (nao editar)
|
|
25
|
-
|
|
26
|
-
### Passo 2: Codebase explorado
|
|
27
|
-
|
|
28
|
-
**Descobertas criticas para o planejamento:**
|
|
29
|
-
|
|
30
|
-
1. **NAO existe ProductService, ProductRepository, nem nenhum codigo de produto/cardapio no projeto.** O unico modulo implementado e o de User (service, repository, handler, migrations, queries).
|
|
31
|
-
|
|
32
|
-
2. **NAO existe `internal/infra/cache/`** — o pacote de cache precisa ser criado do zero.
|
|
33
|
-
|
|
34
|
-
3. **NAO existe campo `cache` no `configs/config.yaml`** nem na struct `Config` (`internal/infra/config/config.go`). Atualmente a struct tem apenas: `GRPCHost`, `GRPCPort`, `DatabasePath`, `JWTSecret`, `JWTExpirationHours`, `LogLevel`.
|
|
35
|
-
|
|
36
|
-
4. **Padroes estabelecidos identificados:**
|
|
37
|
-
- FX modules: cada pacote exporta `var Module = fx.Module("nome", ...)`
|
|
38
|
-
- DI composition: `internal/infra/di/fx.go` lista todos os modulos
|
|
39
|
-
- Service pattern: interface publica + implementacao nao exportada + construtor `NewXxxService(repo, cfg, logger)`
|
|
40
|
-
- Repository pattern: interface publica + implementacao nao exportada + construtor `NewXxxRepository(db *sql.DB)`
|
|
41
|
-
- Testes: table-driven com testify/mock, mock definido no mesmo arquivo de teste
|
|
42
|
-
- Config: Viper com env prefix `APP_`, override via variaveis de ambiente
|
|
43
|
-
|
|
44
|
-
5. **Tabelas existentes no banco:** `usuarios` (migracoes 001, 002). Nenhuma tabela `produtos`.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Problema Identificado: SPEC_TECH sem User Stories e sem PRD
|
|
49
|
-
|
|
50
|
-
Antes de prosseguir, preciso levantar uma questao importante.
|
|
51
|
-
|
|
52
|
-
O SPEC_TECH fornecido **nao contem User Stories (US-XX)** e **nao referencia nenhum PRD**. No framework SDD, o TASK PLAN exige uma tabela de rastreabilidade mapeando User Stories do PRD para Tasks. Alem disso, o guardrail #8 do skill diz: "Rastreabilidade obrigatoria — toda User Story do PRD deve ter pelo menos uma task correspondente."
|
|
53
|
-
|
|
54
|
-
Alem disso, o SPEC_TECH menciona que "ProductService passa a consultar cache antes do repository", mas **nao existe nenhum ProductService no projeto atual**. O cache seria aplicado sobre um servico que ainda nao foi implementado.
|
|
55
|
-
|
|
56
|
-
### Pergunta que eu faria ao usuario:
|
|
57
|
-
|
|
58
|
-
> **Pergunta:** Identifiquei duas questoes no SPEC_TECH que precisam de esclarecimento antes de iniciarmos o TASK PLAN:
|
|
59
|
-
>
|
|
60
|
-
> 1. **Ausencia de User Stories e PRD:** O SPEC_TECH nao contem User Stories (US-XX) nem referencia um PRD. O framework SDD exige rastreabilidade US -> Tasks no TASK PLAN. Como deseja proceder?
|
|
61
|
-
> - **Opcao A:** Voce fornece o PRD com as User Stories para que eu faca a rastreabilidade completa.
|
|
62
|
-
> - **Opcao B:** Criamos o TASK PLAN sem a tabela de rastreabilidade US -> Tasks, marcando a secao como "N/A — SPEC_TECH sem PRD/User Stories associados". As tasks serao derivadas diretamente das Definicoes Tecnicas do SPEC_TECH.
|
|
63
|
-
> - **Opcao C:** Definimos User Stories simplificadas agora, antes de iniciar o planejamento.
|
|
64
|
-
>
|
|
65
|
-
> 2. **ProductService inexistente:** O SPEC_TECH assume que existe um `ProductService` que "passa a consultar cache antes do repository", mas nao existe nenhum codigo de produto no projeto (nem service, nem repository, nem migration, nem queries). O escopo deste TASK PLAN deve:
|
|
66
|
-
> - **Opcao A:** Incluir a criacao completa do modulo de produtos (migration, queries, repository, service, handler, proto) ALEM do cache — tornando o TASK PLAN significativamente maior.
|
|
67
|
-
> - **Opcao B:** Limitar-se apenas a infraestrutura de cache generica (`Cache[K, V]`, config, modulo FX), sem integrar com ProductService, deixando a integracao para quando o modulo de produtos existir.
|
|
68
|
-
> - **Opcao C:** Voce tem outro SPEC_TECH ou feature de produtos ja planejada que deve ser executada antes?
|
|
69
|
-
>
|
|
70
|
-
> Aguardo sua resposta para prosseguir.
|
|
1
|
+
# Resposta do sdd-task-plan-expert
|
|
2
|
+
|
|
3
|
+
## Nome da Feature Extraido
|
|
4
|
+
|
|
5
|
+
Da secao "1. Identificacao" do SPEC_TECH, campo "Feature/Projeto": **Cache de Cardapio em Memoria**
|
|
6
|
+
|
|
7
|
+
Nome em kebab-case para diretorio: `cache-cardapio`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Analise Obrigatoria do Projeto (Resultados)
|
|
12
|
+
|
|
13
|
+
### Passo 1: Rules lidas
|
|
14
|
+
|
|
15
|
+
Li todos os arquivos de regras do projeto:
|
|
16
|
+
- `CLAUDE.md` (raiz)
|
|
17
|
+
- `.claude/rules/code-conventions.md` — codigo em ingles, banco/logs/erros em portugues
|
|
18
|
+
- `.claude/rules/database.md` — SQLite WAL, migracoes imutaveis, nomenclatura em portugues
|
|
19
|
+
- `.claude/rules/fx-di.md` — Uber FX, modulos exportados via `var Module = fx.Module(...)`
|
|
20
|
+
- `.claude/rules/grpc.md` — handlers, mapeamento de erros, registro no server.go
|
|
21
|
+
- `.claude/rules/protobuf.md` — Buf, convencao de go_package
|
|
22
|
+
- `.claude/rules/repository.md` — interface + implementacao nao exportada, construtor recebe `*sql.DB`, mapeamento portugues->ingles
|
|
23
|
+
- `.claude/rules/service.md` — interface + implementacao nao exportada, erros exportados em portugues, logging com zap
|
|
24
|
+
- `.claude/rules/sqlc.md` — queries em `internal/db/queries/`, codigo gerado em `internal/db/sqlc/` (nao editar)
|
|
25
|
+
|
|
26
|
+
### Passo 2: Codebase explorado
|
|
27
|
+
|
|
28
|
+
**Descobertas criticas para o planejamento:**
|
|
29
|
+
|
|
30
|
+
1. **NAO existe ProductService, ProductRepository, nem nenhum codigo de produto/cardapio no projeto.** O unico modulo implementado e o de User (service, repository, handler, migrations, queries).
|
|
31
|
+
|
|
32
|
+
2. **NAO existe `internal/infra/cache/`** — o pacote de cache precisa ser criado do zero.
|
|
33
|
+
|
|
34
|
+
3. **NAO existe campo `cache` no `configs/config.yaml`** nem na struct `Config` (`internal/infra/config/config.go`). Atualmente a struct tem apenas: `GRPCHost`, `GRPCPort`, `DatabasePath`, `JWTSecret`, `JWTExpirationHours`, `LogLevel`.
|
|
35
|
+
|
|
36
|
+
4. **Padroes estabelecidos identificados:**
|
|
37
|
+
- FX modules: cada pacote exporta `var Module = fx.Module("nome", ...)`
|
|
38
|
+
- DI composition: `internal/infra/di/fx.go` lista todos os modulos
|
|
39
|
+
- Service pattern: interface publica + implementacao nao exportada + construtor `NewXxxService(repo, cfg, logger)`
|
|
40
|
+
- Repository pattern: interface publica + implementacao nao exportada + construtor `NewXxxRepository(db *sql.DB)`
|
|
41
|
+
- Testes: table-driven com testify/mock, mock definido no mesmo arquivo de teste
|
|
42
|
+
- Config: Viper com env prefix `APP_`, override via variaveis de ambiente
|
|
43
|
+
|
|
44
|
+
5. **Tabelas existentes no banco:** `usuarios` (migracoes 001, 002). Nenhuma tabela `produtos`.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Problema Identificado: SPEC_TECH sem User Stories e sem PRD
|
|
49
|
+
|
|
50
|
+
Antes de prosseguir, preciso levantar uma questao importante.
|
|
51
|
+
|
|
52
|
+
O SPEC_TECH fornecido **nao contem User Stories (US-XX)** e **nao referencia nenhum PRD**. No framework SDD, o TASK PLAN exige uma tabela de rastreabilidade mapeando User Stories do PRD para Tasks. Alem disso, o guardrail #8 do skill diz: "Rastreabilidade obrigatoria — toda User Story do PRD deve ter pelo menos uma task correspondente."
|
|
53
|
+
|
|
54
|
+
Alem disso, o SPEC_TECH menciona que "ProductService passa a consultar cache antes do repository", mas **nao existe nenhum ProductService no projeto atual**. O cache seria aplicado sobre um servico que ainda nao foi implementado.
|
|
55
|
+
|
|
56
|
+
### Pergunta que eu faria ao usuario:
|
|
57
|
+
|
|
58
|
+
> **Pergunta:** Identifiquei duas questoes no SPEC_TECH que precisam de esclarecimento antes de iniciarmos o TASK PLAN:
|
|
59
|
+
>
|
|
60
|
+
> 1. **Ausencia de User Stories e PRD:** O SPEC_TECH nao contem User Stories (US-XX) nem referencia um PRD. O framework SDD exige rastreabilidade US -> Tasks no TASK PLAN. Como deseja proceder?
|
|
61
|
+
> - **Opcao A:** Voce fornece o PRD com as User Stories para que eu faca a rastreabilidade completa.
|
|
62
|
+
> - **Opcao B:** Criamos o TASK PLAN sem a tabela de rastreabilidade US -> Tasks, marcando a secao como "N/A — SPEC_TECH sem PRD/User Stories associados". As tasks serao derivadas diretamente das Definicoes Tecnicas do SPEC_TECH.
|
|
63
|
+
> - **Opcao C:** Definimos User Stories simplificadas agora, antes de iniciar o planejamento.
|
|
64
|
+
>
|
|
65
|
+
> 2. **ProductService inexistente:** O SPEC_TECH assume que existe um `ProductService` que "passa a consultar cache antes do repository", mas nao existe nenhum codigo de produto no projeto (nem service, nem repository, nem migration, nem queries). O escopo deste TASK PLAN deve:
|
|
66
|
+
> - **Opcao A:** Incluir a criacao completa do modulo de produtos (migration, queries, repository, service, handler, proto) ALEM do cache — tornando o TASK PLAN significativamente maior.
|
|
67
|
+
> - **Opcao B:** Limitar-se apenas a infraestrutura de cache generica (`Cache[K, V]`, config, modulo FX), sem integrar com ProductService, deixando a integracao para quando o modulo de produtos existir.
|
|
68
|
+
> - **Opcao C:** Voce tem outro SPEC_TECH ou feature de produtos ja planejada que deve ser executada antes?
|
|
69
|
+
>
|
|
70
|
+
> Aguardo sua resposta para prosseguir.
|