@luanpdd/kit-mcp 0.2.0 → 0.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/kit/COMANDOS.md +123 -0
- package/kit/agents/advisor-researcher.md +121 -0
- package/kit/agents/assumptions-analyzer.md +122 -0
- package/kit/agents/codebase-mapper.md +787 -0
- package/kit/agents/debugger.md +796 -0
- package/kit/agents/executor.md +516 -0
- package/kit/agents/integration-checker.md +217 -0
- package/kit/agents/nyquist-auditor.md +195 -0
- package/kit/agents/phase-researcher.md +715 -0
- package/kit/agents/plan-checker.md +289 -0
- package/kit/agents/planner.md +1373 -0
- package/kit/agents/project-researcher.md +671 -0
- package/kit/agents/research-synthesizer.md +259 -0
- package/kit/agents/roadmapper.md +696 -0
- package/kit/agents/ui-auditor.md +458 -0
- package/kit/agents/ui-checker.md +319 -0
- package/kit/agents/ui-researcher.md +374 -0
- package/kit/agents/user-profiler.md +183 -0
- package/kit/agents/verifier.md +719 -0
- package/kit/commands/adicionar-backlog.md +76 -0
- package/kit/commands/adicionar-fase.md +43 -0
- package/kit/commands/adicionar-tarefa.md +47 -0
- package/kit/commands/adicionar-testes.md +41 -0
- package/kit/commands/ajuda.md +22 -0
- package/kit/commands/atualizar.md +37 -0
- package/kit/commands/auditar-marco.md +36 -0
- package/kit/commands/auditar-uat.md +24 -0
- package/kit/commands/autonomo.md +41 -0
- package/kit/commands/branch-pr.md +25 -0
- package/kit/commands/concluir-marco.md +136 -0
- package/kit/commands/configuracoes.md +36 -0
- package/kit/commands/definir-perfil.md +12 -0
- package/kit/commands/depurar.md +173 -0
- package/kit/commands/discutir-fase.md +64 -0
- package/kit/commands/entrar-discord.md +18 -0
- package/kit/commands/estatisticas.md +18 -0
- package/kit/commands/executar-fase.md +59 -0
- package/kit/commands/expresso.md +47 -0
- package/kit/commands/fase-ui.md +34 -0
- package/kit/commands/fazer.md +30 -0
- package/kit/commands/fio.md +126 -0
- package/kit/commands/fluxos-trabalho.md +64 -0
- package/kit/commands/forense.md +56 -0
- package/kit/commands/gerenciador.md +39 -0
- package/kit/commands/inserir-fase.md +32 -0
- package/kit/commands/limpeza.md +18 -0
- package/kit/commands/listar-hipoteses-fase.md +46 -0
- package/kit/commands/listar-workspaces.md +19 -0
- package/kit/commands/mapear-codebase.md +71 -0
- package/kit/commands/nota.md +34 -0
- package/kit/commands/novo-marco.md +44 -0
- package/kit/commands/novo-projeto.md +42 -0
- package/kit/commands/novo-workspace.md +44 -0
- package/kit/commands/pausar-trabalho.md +38 -0
- package/kit/commands/perfil-usuario.md +46 -0
- package/kit/commands/pesquisar-fase.md +195 -0
- package/kit/commands/planejar-fase.md +47 -0
- package/kit/commands/planejar-lacunas.md +34 -0
- package/kit/commands/plantar-ideia.md +26 -0
- package/kit/commands/progresso.md +24 -0
- package/kit/commands/proximo.md +24 -0
- package/kit/commands/publicar.md +370 -0
- package/kit/commands/rapido.md +30 -0
- package/kit/commands/reaplicar-patches.md +124 -0
- package/kit/commands/relatorio-sessao.md +19 -0
- package/kit/commands/remover-fase.md +31 -0
- package/kit/commands/remover-workspace.md +26 -0
- package/kit/commands/resumo-marco.md +51 -0
- package/kit/commands/retomar-trabalho.md +40 -0
- package/kit/commands/revisar-backlog.md +60 -0
- package/kit/commands/revisar-ui.md +32 -0
- package/kit/commands/revisar.md +37 -0
- package/kit/commands/saude.md +22 -0
- package/kit/commands/setup-notion.md +93 -0
- package/kit/commands/sync-main.md +68 -0
- package/kit/commands/validar-fase.md +35 -0
- package/kit/commands/verificar-tarefas.md +45 -0
- package/kit/commands/verificar-trabalho.md +38 -0
- package/kit/file-manifest.json +219 -0
- package/kit/framework/VERSION +1 -0
- package/kit/framework/bin/lib/commands.cjs +959 -0
- package/kit/framework/bin/lib/config.cjs +442 -0
- package/kit/framework/bin/lib/core.cjs +1230 -0
- package/kit/framework/bin/lib/frontmatter.cjs +336 -0
- package/kit/framework/bin/lib/init.cjs +1442 -0
- package/kit/framework/bin/lib/milestone.cjs +252 -0
- package/kit/framework/bin/lib/model-profiles.cjs +68 -0
- package/kit/framework/bin/lib/phase.cjs +888 -0
- package/kit/framework/bin/lib/profile-output.cjs +952 -0
- package/kit/framework/bin/lib/profile-pipeline.cjs +539 -0
- package/kit/framework/bin/lib/roadmap.cjs +329 -0
- package/kit/framework/bin/lib/security.cjs +382 -0
- package/kit/framework/bin/lib/state.cjs +1031 -0
- package/kit/framework/bin/lib/template.cjs +222 -0
- package/kit/framework/bin/lib/uat.cjs +282 -0
- package/kit/framework/bin/lib/verify.cjs +888 -0
- package/kit/framework/bin/lib/workstream.cjs +491 -0
- package/kit/framework/bin/tools.cjs +918 -0
- package/kit/framework/commands/workstreams.md +63 -0
- package/kit/framework/references/checkpoints.md +778 -0
- package/kit/framework/references/continuation-format.md +249 -0
- package/kit/framework/references/decimal-phase-calculation.md +64 -0
- package/kit/framework/references/git-integration.md +295 -0
- package/kit/framework/references/git-planning-commit.md +38 -0
- package/kit/framework/references/model-profile-resolution.md +36 -0
- package/kit/framework/references/model-profiles.md +139 -0
- package/kit/framework/references/phase-argument-parsing.md +61 -0
- package/kit/framework/references/planning-config.md +202 -0
- package/kit/framework/references/questioning.md +162 -0
- package/kit/framework/references/tdd.md +263 -0
- package/kit/framework/references/ui-brand.md +160 -0
- package/kit/framework/references/user-profiling.md +657 -0
- package/kit/framework/references/verification-patterns.md +612 -0
- package/kit/framework/references/workstream-flag.md +58 -0
- package/kit/framework/templates/DEBUG.md +164 -0
- package/kit/framework/templates/UAT.md +265 -0
- package/kit/framework/templates/UI-SPEC.md +100 -0
- package/kit/framework/templates/VALIDATION.md +76 -0
- package/kit/framework/templates/claude-md.md +122 -0
- package/kit/framework/templates/codebase/architecture.md +185 -0
- package/kit/framework/templates/codebase/concerns.md +205 -0
- package/kit/framework/templates/codebase/conventions.md +204 -0
- package/kit/framework/templates/codebase/integrations.md +192 -0
- package/kit/framework/templates/codebase/stack.md +158 -0
- package/kit/framework/templates/codebase/structure.md +199 -0
- package/kit/framework/templates/codebase/testing.md +301 -0
- package/kit/framework/templates/config.json +44 -0
- package/kit/framework/templates/context.md +352 -0
- package/kit/framework/templates/continue-here.md +78 -0
- package/kit/framework/templates/copilot-instructions.md +7 -0
- package/kit/framework/templates/debug-subagent-prompt.md +91 -0
- package/kit/framework/templates/dev-preferences.md +20 -0
- package/kit/framework/templates/discovery.md +146 -0
- package/kit/framework/templates/discussion-log.md +63 -0
- package/kit/framework/templates/milestone-archive.md +123 -0
- package/kit/framework/templates/milestone.md +115 -0
- package/kit/framework/templates/phase-prompt.md +610 -0
- package/kit/framework/templates/planner-subagent-prompt.md +117 -0
- package/kit/framework/templates/project.md +186 -0
- package/kit/framework/templates/requirements.md +231 -0
- package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -0
- package/kit/framework/templates/research-project/FEATURES.md +147 -0
- package/kit/framework/templates/research-project/PITFALLS.md +200 -0
- package/kit/framework/templates/research-project/STACK.md +120 -0
- package/kit/framework/templates/research-project/SUMMARY.md +170 -0
- package/kit/framework/templates/research.md +419 -0
- package/kit/framework/templates/retrospective.md +54 -0
- package/kit/framework/templates/roadmap.md +202 -0
- package/kit/framework/templates/state.md +176 -0
- package/kit/framework/templates/summary-complex.md +59 -0
- package/kit/framework/templates/summary-minimal.md +41 -0
- package/kit/framework/templates/summary-standard.md +48 -0
- package/kit/framework/templates/summary.md +209 -0
- package/kit/framework/templates/user-profile.md +146 -0
- package/kit/framework/templates/user-setup.md +256 -0
- package/kit/framework/templates/verification-report.md +258 -0
- package/kit/framework/workflows/add-phase.md +112 -0
- package/kit/framework/workflows/add-tests.md +351 -0
- package/kit/framework/workflows/add-todo.md +158 -0
- package/kit/framework/workflows/audit-milestone.md +340 -0
- package/kit/framework/workflows/audit-uat.md +109 -0
- package/kit/framework/workflows/autonomous.md +891 -0
- package/kit/framework/workflows/check-todos.md +177 -0
- package/kit/framework/workflows/cleanup.md +152 -0
- package/kit/framework/workflows/complete-milestone.md +696 -0
- package/kit/framework/workflows/diagnose-issues.md +231 -0
- package/kit/framework/workflows/discovery-phase.md +289 -0
- package/kit/framework/workflows/discuss-phase-assumptions.md +653 -0
- package/kit/framework/workflows/discuss-phase.md +1049 -0
- package/kit/framework/workflows/do.md +104 -0
- package/kit/framework/workflows/execute-phase.md +838 -0
- package/kit/framework/workflows/execute-plan.md +510 -0
- package/kit/framework/workflows/fast.md +102 -0
- package/kit/framework/workflows/forensics.md +265 -0
- package/kit/framework/workflows/health.md +181 -0
- package/kit/framework/workflows/help.md +606 -0
- package/kit/framework/workflows/insert-phase.md +130 -0
- package/kit/framework/workflows/list-phase-assumptions.md +178 -0
- package/kit/framework/workflows/list-workspaces.md +56 -0
- package/kit/framework/workflows/manager.md +362 -0
- package/kit/framework/workflows/map-codebase.md +377 -0
- package/kit/framework/workflows/milestone-summary.md +223 -0
- package/kit/framework/workflows/new-milestone.md +486 -0
- package/kit/framework/workflows/new-project.md +1250 -0
- package/kit/framework/workflows/new-workspace.md +237 -0
- package/kit/framework/workflows/next.md +97 -0
- package/kit/framework/workflows/node-repair.md +92 -0
- package/kit/framework/workflows/note.md +156 -0
- package/kit/framework/workflows/pause-work.md +176 -0
- package/kit/framework/workflows/plan-milestone-gaps.md +273 -0
- package/kit/framework/workflows/plan-phase.md +859 -0
- package/kit/framework/workflows/plant-seed.md +169 -0
- package/kit/framework/workflows/pr-branch.md +129 -0
- package/kit/framework/workflows/profile-user.md +450 -0
- package/kit/framework/workflows/progress.md +507 -0
- package/kit/framework/workflows/quick.md +757 -0
- package/kit/framework/workflows/remove-phase.md +155 -0
- package/kit/framework/workflows/remove-workspace.md +90 -0
- package/kit/framework/workflows/research-phase.md +82 -0
- package/kit/framework/workflows/resume-project.md +326 -0
- package/kit/framework/workflows/review.md +228 -0
- package/kit/framework/workflows/session-report.md +146 -0
- package/kit/framework/workflows/settings.md +283 -0
- package/kit/framework/workflows/ship.md +228 -0
- package/kit/framework/workflows/stats.md +60 -0
- package/kit/framework/workflows/transition.md +671 -0
- package/kit/framework/workflows/ui-phase.md +302 -0
- package/kit/framework/workflows/ui-review.md +165 -0
- package/kit/framework/workflows/update.md +323 -0
- package/kit/framework/workflows/validate-phase.md +174 -0
- package/kit/framework/workflows/verify-phase.md +252 -0
- package/kit/framework/workflows/verify-work.md +637 -0
- package/kit/hooks/check-update.js +114 -0
- package/kit/hooks/context-monitor.js +156 -0
- package/kit/hooks/prompt-guard.js +96 -0
- package/kit/hooks/statusline.js +119 -0
- package/kit/hooks/workflow-guard.js +94 -0
- package/kit/settings.json +45 -0
- package/package.json +1 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Perfis de Modelo
|
|
2
|
+
|
|
3
|
+
Perfis de modelo controlam qual modelo Claude cada agente framework usa. Isso permite equilibrar qualidade vs. custo de tokens, ou herdar o modelo de sessão selecionado atualmente.
|
|
4
|
+
|
|
5
|
+
## Definições de Perfil
|
|
6
|
+
|
|
7
|
+
| Agente | `quality` | `balanced` | `budget` | `inherit` |
|
|
8
|
+
|--------|-----------|------------|----------|-----------|
|
|
9
|
+
| planner | opus | opus | sonnet | inherit |
|
|
10
|
+
| roadmapper | opus | sonnet | sonnet | inherit |
|
|
11
|
+
| executor | opus | sonnet | sonnet | inherit |
|
|
12
|
+
| phase-researcher | opus | sonnet | haiku | inherit |
|
|
13
|
+
| project-researcher | opus | sonnet | haiku | inherit |
|
|
14
|
+
| research-synthesizer | sonnet | sonnet | haiku | inherit |
|
|
15
|
+
| debugger | opus | sonnet | sonnet | inherit |
|
|
16
|
+
| codebase-mapper | sonnet | haiku | haiku | inherit |
|
|
17
|
+
| verifier | sonnet | sonnet | haiku | inherit |
|
|
18
|
+
| plan-checker | sonnet | sonnet | haiku | inherit |
|
|
19
|
+
| integration-checker | sonnet | sonnet | haiku | inherit |
|
|
20
|
+
| nyquist-auditor | sonnet | sonnet | haiku | inherit |
|
|
21
|
+
|
|
22
|
+
## Filosofia dos Perfis
|
|
23
|
+
|
|
24
|
+
**quality** - Máximo poder de raciocínio
|
|
25
|
+
- Opus para todos os agentes de tomada de decisão
|
|
26
|
+
- Sonnet para verificação somente-leitura
|
|
27
|
+
- Use quando: cota disponível, trabalho crítico de arquitetura
|
|
28
|
+
|
|
29
|
+
**balanced** (padrão) - Alocação inteligente
|
|
30
|
+
- Opus apenas para planejamento (onde decisões de arquitetura acontecem)
|
|
31
|
+
- Sonnet para execução e pesquisa (segue instruções explícitas)
|
|
32
|
+
- Sonnet para verificação (precisa de raciocínio, não apenas correspondência de padrões)
|
|
33
|
+
- Use quando: desenvolvimento normal, bom equilíbrio de qualidade e custo
|
|
34
|
+
|
|
35
|
+
**budget** - Uso mínimo de Opus
|
|
36
|
+
- Sonnet para qualquer coisa que escreva código
|
|
37
|
+
- Haiku para pesquisa e verificação
|
|
38
|
+
- Use quando: conservando cota, trabalho de alto volume, fases menos críticas
|
|
39
|
+
|
|
40
|
+
**inherit** - Seguir o modelo de sessão atual
|
|
41
|
+
- Todos os agentes resolvem para `inherit`
|
|
42
|
+
- Melhor quando você troca modelos interativamente (por exemplo `/model` do OpenCode)
|
|
43
|
+
- **Obrigatório ao usar provedores não-Anthropic** (OpenRouter, modelos locais, etc.) — caso contrário o framework pode chamar modelos Anthropic diretamente, gerando custos inesperados
|
|
44
|
+
- Use quando: você quer que o framework siga seu modelo de runtime selecionado atualmente
|
|
45
|
+
|
|
46
|
+
## Usando Runtimes Não-Claude (Codex, OpenCode, Gemini CLI)
|
|
47
|
+
|
|
48
|
+
Quando instalado para um runtime não-Claude, o instalador do framework define `resolve_model_ids: "omit"` em `~/.framework/defaults.json`. Isso retorna um parâmetro model vazio para todos os agentes, então cada agente usa o modelo padrão do runtime. Nenhuma configuração manual é necessária.
|
|
49
|
+
|
|
50
|
+
Para atribuir modelos diferentes a agentes diferentes, adicione `model_overrides` com IDs de modelo que seu runtime reconhece:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"resolve_model_ids": "omit",
|
|
55
|
+
"model_overrides": {
|
|
56
|
+
"planner": "o3",
|
|
57
|
+
"executor": "o4-mini",
|
|
58
|
+
"debugger": "o3",
|
|
59
|
+
"codebase-mapper": "o4-mini"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
A mesma lógica de níveis se aplica: modelos mais fortes para planejamento e debugging, modelos mais baratos para execução e mapeamento.
|
|
65
|
+
|
|
66
|
+
## Usando Claude Code com Provedores Não-Anthropic (OpenRouter, Local)
|
|
67
|
+
|
|
68
|
+
Se você estiver usando Claude Code com OpenRouter, um modelo local, ou qualquer provedor não-Anthropic, defina o perfil `inherit` para evitar que o framework chame modelos Anthropic para subagentes:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Via comando de configurações
|
|
72
|
+
/configuracoes
|
|
73
|
+
# → Selecione "Inherit" para perfil de modelo
|
|
74
|
+
|
|
75
|
+
# Ou manualmente em .planning/config.json
|
|
76
|
+
{
|
|
77
|
+
"model_profile": "inherit"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Sem `inherit`, o perfil `balanced` padrão do framework spawna modelos Anthropic específicos (`opus`, `sonnet`, `haiku`) para cada tipo de agente, o que pode resultar em custos adicionais de API pelo seu provedor não-Anthropic.
|
|
82
|
+
|
|
83
|
+
## Lógica de Resolução
|
|
84
|
+
|
|
85
|
+
Orquestradores resolvem o modelo antes de spawnar:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
1. Ler .planning/config.json
|
|
89
|
+
2. Verificar model_overrides para override específico de agente
|
|
90
|
+
3. Se não houver override, consultar agente na tabela de perfil
|
|
91
|
+
4. Passar parâmetro model para chamada Task
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Overrides Por Agente
|
|
95
|
+
|
|
96
|
+
Sobrescreva agentes específicos sem alterar o perfil inteiro:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"model_profile": "balanced",
|
|
101
|
+
"model_overrides": {
|
|
102
|
+
"executor": "opus",
|
|
103
|
+
"planner": "haiku"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Overrides têm precedência sobre o perfil. Valores válidos: `opus`, `sonnet`, `haiku`, `inherit`, ou qualquer ID de modelo totalmente qualificado (ex: `"o3"`, `"openai/o3"`, `"google/gemini-2.5-pro"`).
|
|
109
|
+
|
|
110
|
+
## Alternando Perfis
|
|
111
|
+
|
|
112
|
+
Runtime: `/definir-perfil <perfil>`
|
|
113
|
+
|
|
114
|
+
Padrão por projeto: Defina em `.planning/config.json`:
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"model_profile": "balanced"
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Justificativa do Design
|
|
122
|
+
|
|
123
|
+
**Por que Opus para planner?**
|
|
124
|
+
O planejamento envolve decisões de arquitetura, decomposição de objetivos e design de tarefas. É onde a qualidade do modelo tem o maior impacto.
|
|
125
|
+
|
|
126
|
+
**Por que Sonnet para executor?**
|
|
127
|
+
Executores seguem instruções explícitas do PLAN.md. O plano já contém o raciocínio; a execução é implementação.
|
|
128
|
+
|
|
129
|
+
**Por que Sonnet (não Haiku) para verificadores no balanced?**
|
|
130
|
+
A verificação requer raciocínio regressivo de objetivos — verificar se o código *entrega* o que a fase prometeu, não apenas correspondência de padrões. Sonnet lida bem com isso; Haiku pode perder lacunas sutis.
|
|
131
|
+
|
|
132
|
+
**Por que Haiku para codebase-mapper?**
|
|
133
|
+
Exploração somente-leitura e extração de padrões. Não requer raciocínio, apenas saída estruturada do conteúdo dos arquivos.
|
|
134
|
+
|
|
135
|
+
**Por que `inherit` em vez de passar `opus` diretamente?**
|
|
136
|
+
O alias `"opus"` do Claude Code mapeia para uma versão específica do modelo. Organizações podem bloquear versões mais antigas do opus enquanto permitem versões mais novas. O framework retorna `"inherit"` para agentes de nível opus, fazendo-os usar qualquer versão do opus que o usuário configurou na sessão. Isso evita conflitos de versão e fallbacks silenciosos para Sonnet.
|
|
137
|
+
|
|
138
|
+
**Por que o perfil `inherit`?**
|
|
139
|
+
Alguns runtimes (incluindo OpenCode) permitem que usuários troquem modelos em runtime (`/model`). O perfil `inherit` mantém todos os subagentes framework alinhados com essa seleção ao vivo.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Análise de Argumentos de Fase
|
|
2
|
+
|
|
3
|
+
Analise e normalize argumentos de fase para comandos que operam em fases.
|
|
4
|
+
|
|
5
|
+
## Extração
|
|
6
|
+
|
|
7
|
+
De `$ARGUMENTS`:
|
|
8
|
+
- Extraia o número da fase (primeiro argumento numérico)
|
|
9
|
+
- Extraia flags (prefixados com `--`)
|
|
10
|
+
- O texto restante é a descrição (para comandos de inserir/adicionar)
|
|
11
|
+
|
|
12
|
+
## Usando tools
|
|
13
|
+
|
|
14
|
+
O comando `find-phase` trata normalização e validação em uma única etapa:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
PHASE_INFO=$(node "./.claude/framework/bin/tools.cjs" find-phase "${PHASE}")
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Retorna JSON com:
|
|
21
|
+
- `found`: true/false
|
|
22
|
+
- `directory`: Caminho completo para o diretório da fase
|
|
23
|
+
- `phase_number`: Número normalizado (ex: "06", "06.1")
|
|
24
|
+
- `phase_name`: Parte do nome (ex: "foundation")
|
|
25
|
+
- `plans`: Array de arquivos PLAN.md
|
|
26
|
+
- `summaries`: Array de arquivos SUMMARY.md
|
|
27
|
+
|
|
28
|
+
## Normalização Manual (Legado)
|
|
29
|
+
|
|
30
|
+
Preencha fases inteiras com zero até 2 dígitos. Preserve sufixos decimais.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Normalizar número da fase
|
|
34
|
+
if [[ "$PHASE" =~ ^[0-9]+$ ]]; then
|
|
35
|
+
# Inteiro: 8 → 08
|
|
36
|
+
PHASE=$(printf "%02d" "$PHASE")
|
|
37
|
+
elif [[ "$PHASE" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
|
|
38
|
+
# Decimal: 2.1 → 02.1
|
|
39
|
+
PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
|
|
40
|
+
fi
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Validação
|
|
44
|
+
|
|
45
|
+
Use `roadmap get-phase` para validar se a fase existe:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
PHASE_CHECK=$(node "./.claude/framework/bin/tools.cjs" roadmap get-phase "${PHASE}" --pick found)
|
|
49
|
+
if [ "$PHASE_CHECK" = "false" ]; then
|
|
50
|
+
echo "ERRO: Fase ${PHASE} não encontrada no roadmap"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Busca de Diretório
|
|
56
|
+
|
|
57
|
+
Use `find-phase` para busca de diretório:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
PHASE_DIR=$(node "./.claude/framework/bin/tools.cjs" find-phase "${PHASE}" --raw)
|
|
61
|
+
```
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
<planning_config>
|
|
2
|
+
|
|
3
|
+
Opções de configuração para o comportamento do diretório `.planning/`.
|
|
4
|
+
|
|
5
|
+
<config_schema>
|
|
6
|
+
```json
|
|
7
|
+
"planning": {
|
|
8
|
+
"commit_docs": true,
|
|
9
|
+
"search_gitignored": false
|
|
10
|
+
},
|
|
11
|
+
"git": {
|
|
12
|
+
"branching_strategy": "none",
|
|
13
|
+
"phase_branch_template": "framework/phase-{phase}-{slug}",
|
|
14
|
+
"milestone_branch_template": "framework/{milestone}-{slug}",
|
|
15
|
+
"quick_branch_template": null
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
| Opção | Padrão | Descrição |
|
|
20
|
+
|-------|--------|-----------|
|
|
21
|
+
| `commit_docs` | `true` | Se deve commitar artefatos de planejamento no git |
|
|
22
|
+
| `search_gitignored` | `false` | Adicionar `--no-ignore` a buscas amplas com rg |
|
|
23
|
+
| `git.branching_strategy` | `"none"` | Abordagem de branching git: `"none"`, `"phase"`, ou `"milestone"` |
|
|
24
|
+
| `git.phase_branch_template` | `"framework/phase-{phase}-{slug}"` | Template de branch para estratégia phase |
|
|
25
|
+
| `git.milestone_branch_template` | `"framework/{milestone}-{slug}"` | Template de branch para estratégia milestone |
|
|
26
|
+
| `git.quick_branch_template` | `null` | Template de branch opcional para execuções de tarefa rápida |
|
|
27
|
+
</config_schema>
|
|
28
|
+
|
|
29
|
+
<commit_docs_behavior>
|
|
30
|
+
|
|
31
|
+
**Quando `commit_docs: true` (padrão):**
|
|
32
|
+
- Arquivos de planejamento commitados normalmente
|
|
33
|
+
- SUMMARY.md, STATE.md, ROADMAP.md rastreados no git
|
|
34
|
+
- Histórico completo de decisões de planejamento preservado
|
|
35
|
+
|
|
36
|
+
**Quando `commit_docs: false`:**
|
|
37
|
+
- Pular todos os `git add`/`git commit` para arquivos `.planning/`
|
|
38
|
+
- O usuário deve adicionar `.planning/` ao `.gitignore`
|
|
39
|
+
- Útil para: contribuições OSS, projetos de clientes, manter o planejamento privado
|
|
40
|
+
|
|
41
|
+
**Usando tools.cjs (preferido):**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Commit com verificações automáticas de commit_docs + gitignore:
|
|
45
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs: update state" --files .planning/STATE.md
|
|
46
|
+
|
|
47
|
+
# Carregar config via state load (retorna JSON):
|
|
48
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" state load)
|
|
49
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
50
|
+
# commit_docs está disponível na saída JSON
|
|
51
|
+
|
|
52
|
+
# Ou use comandos init que incluem commit_docs:
|
|
53
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init execute-phase "1")
|
|
54
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
55
|
+
# commit_docs está incluído em todas as saídas de comandos init
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Auto-detecção:** Se `.planning/` estiver no gitignore, `commit_docs` é automaticamente `false` independentemente do config.json. Isso evita erros de git quando usuários têm `.planning/` no `.gitignore`.
|
|
59
|
+
|
|
60
|
+
**Commit via CLI (trata verificações automaticamente):**
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
node "./.claude/framework/bin/tools.cjs" commit "docs: update state" --files .planning/STATE.md
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
O CLI verifica a configuração `commit_docs` e o status do gitignore internamente — sem condicionais manuais.
|
|
67
|
+
|
|
68
|
+
</commit_docs_behavior>
|
|
69
|
+
|
|
70
|
+
<search_behavior>
|
|
71
|
+
|
|
72
|
+
**Quando `search_gitignored: false` (padrão):**
|
|
73
|
+
- Comportamento padrão do rg (respeita .gitignore)
|
|
74
|
+
- Buscas por caminho direto funcionam: `rg "padrão" .planning/` encontra arquivos
|
|
75
|
+
- Buscas amplas pulam ignorados: `rg "padrão"` pula `.planning/`
|
|
76
|
+
|
|
77
|
+
**Quando `search_gitignored: true`:**
|
|
78
|
+
- Adicionar `--no-ignore` a buscas amplas com rg que devem incluir `.planning/`
|
|
79
|
+
- Necessário apenas ao buscar em todo o repositório e esperando correspondências em `.planning/`
|
|
80
|
+
|
|
81
|
+
**Nota:** A maioria das operações framework usa leituras diretas de arquivo ou caminhos explícitos, que funcionam independentemente do status do gitignore.
|
|
82
|
+
|
|
83
|
+
</search_behavior>
|
|
84
|
+
|
|
85
|
+
<setup_uncommitted_mode>
|
|
86
|
+
|
|
87
|
+
Para usar o modo não-commitado:
|
|
88
|
+
|
|
89
|
+
1. **Defina o config:**
|
|
90
|
+
```json
|
|
91
|
+
"planning": {
|
|
92
|
+
"commit_docs": false,
|
|
93
|
+
"search_gitignored": true
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
2. **Adicione ao .gitignore:**
|
|
98
|
+
```
|
|
99
|
+
.planning/
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
3. **Arquivos rastreados existentes:** Se `.planning/` foi rastreado anteriormente:
|
|
103
|
+
```bash
|
|
104
|
+
git rm -r --cached .planning/
|
|
105
|
+
git commit -m "chore: stop tracking planning docs"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
4. **Merges de branch:** Ao usar `branching_strategy: phase` ou `milestone`, o workflow `complete-milestone` remove automaticamente arquivos `.planning/` do staging antes de commits de merge quando `commit_docs: false`.
|
|
109
|
+
|
|
110
|
+
</setup_uncommitted_mode>
|
|
111
|
+
|
|
112
|
+
<branching_strategy_behavior>
|
|
113
|
+
|
|
114
|
+
**Estratégias de Branching:**
|
|
115
|
+
|
|
116
|
+
| Estratégia | Quando o branch é criado | Escopo do branch | Ponto de merge |
|
|
117
|
+
|------------|--------------------------|------------------|----------------|
|
|
118
|
+
| `none` | Nunca | N/A | N/A |
|
|
119
|
+
| `phase` | No início do `execute-phase` | Fase única | Usuário faz merge após a fase |
|
|
120
|
+
| `milestone` | No primeiro `execute-phase` do marco | Marco inteiro | Em `complete-milestone` |
|
|
121
|
+
|
|
122
|
+
**Quando `git.branching_strategy: "none"` (padrão):**
|
|
123
|
+
- Todo o trabalho commita para o branch atual
|
|
124
|
+
- Comportamento padrão do framework
|
|
125
|
+
|
|
126
|
+
**Quando `git.branching_strategy: "phase"`:**
|
|
127
|
+
- `execute-phase` cria/alterna para um branch antes da execução
|
|
128
|
+
- Nome do branch a partir de `phase_branch_template` (ex: `framework/phase-03-authentication`)
|
|
129
|
+
- Todos os commits do plano vão para aquele branch
|
|
130
|
+
- Usuário faz merge dos branches manualmente após a conclusão da fase
|
|
131
|
+
- `complete-milestone` oferece fazer merge de todos os branches de fase
|
|
132
|
+
|
|
133
|
+
**Quando `git.branching_strategy: "milestone"`:**
|
|
134
|
+
- O primeiro `execute-phase` do marco cria o branch do marco
|
|
135
|
+
- Nome do branch a partir de `milestone_branch_template` (ex: `framework/v1.0-mvp`)
|
|
136
|
+
- Todas as fases do marco commitam para o mesmo branch
|
|
137
|
+
- `complete-milestone` oferece fazer merge do branch do marco para main
|
|
138
|
+
|
|
139
|
+
**Variáveis de template:**
|
|
140
|
+
|
|
141
|
+
| Variável | Disponível em | Descrição |
|
|
142
|
+
|----------|---------------|-----------|
|
|
143
|
+
| `{phase}` | phase_branch_template | Número de fase com zero à esquerda (ex: "03") |
|
|
144
|
+
| `{slug}` | Ambos | Nome em minúsculas com hífens |
|
|
145
|
+
| `{milestone}` | milestone_branch_template | Versão do marco (ex: "v1.0") |
|
|
146
|
+
|
|
147
|
+
**Verificando o config:**
|
|
148
|
+
|
|
149
|
+
Use `init execute-phase` que retorna toda a config como JSON:
|
|
150
|
+
```bash
|
|
151
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" init execute-phase "1")
|
|
152
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
153
|
+
# Saída JSON inclui: branching_strategy, phase_branch_template, milestone_branch_template
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Ou use `state load` para os valores de config:
|
|
157
|
+
```bash
|
|
158
|
+
INIT=$(node "./.claude/framework/bin/tools.cjs" state load)
|
|
159
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
160
|
+
# Analise branching_strategy, phase_branch_template, milestone_branch_template do JSON
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Criação de branch:**
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Para estratégia phase
|
|
167
|
+
if [ "$BRANCHING_STRATEGY" = "phase" ]; then
|
|
168
|
+
PHASE_SLUG=$(echo "$PHASE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
|
169
|
+
BRANCH_NAME=$(echo "$PHASE_BRANCH_TEMPLATE" | sed "s/{phase}/$PADDED_PHASE/g" | sed "s/{slug}/$PHASE_SLUG/g")
|
|
170
|
+
git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
|
|
171
|
+
fi
|
|
172
|
+
|
|
173
|
+
# Para estratégia milestone
|
|
174
|
+
if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
|
|
175
|
+
MILESTONE_SLUG=$(echo "$MILESTONE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
|
176
|
+
BRANCH_NAME=$(echo "$MILESTONE_BRANCH_TEMPLATE" | sed "s/{milestone}/$MILESTONE_VERSION/g" | sed "s/{slug}/$MILESTONE_SLUG/g")
|
|
177
|
+
git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
|
|
178
|
+
fi
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Opções de merge em complete-milestone:**
|
|
182
|
+
|
|
183
|
+
| Opção | Comando git | Resultado |
|
|
184
|
+
|-------|-------------|-----------|
|
|
185
|
+
| Squash merge (recomendado) | `git merge --squash` | Único commit limpo por branch |
|
|
186
|
+
| Merge com histórico | `git merge --no-ff` | Preserva todos os commits individuais |
|
|
187
|
+
| Deletar sem merge | `git branch -D` | Descartar trabalho do branch |
|
|
188
|
+
| Manter branches | (nenhum) | Tratamento manual depois |
|
|
189
|
+
|
|
190
|
+
Squash merge é recomendado — mantém o histórico do branch main limpo enquanto preserva o histórico de desenvolvimento completo no branch (até ser deletado).
|
|
191
|
+
|
|
192
|
+
**Casos de uso:**
|
|
193
|
+
|
|
194
|
+
| Estratégia | Melhor para |
|
|
195
|
+
|------------|-------------|
|
|
196
|
+
| `none` | Desenvolvimento solo, projetos simples |
|
|
197
|
+
| `phase` | Code review por fase, rollback granular, colaboração em equipe |
|
|
198
|
+
| `milestone` | Branches de release, ambientes de staging, PR por versão |
|
|
199
|
+
|
|
200
|
+
</branching_strategy_behavior>
|
|
201
|
+
|
|
202
|
+
</planning_config>
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<questioning_guide>
|
|
2
|
+
|
|
3
|
+
A inicialização do projeto é extração de sonhos, não coleta de requisitos. Você está ajudando o usuário a descobrir e articular o que quer construir. Isso não é uma negociação de contrato — é um pensamento colaborativo.
|
|
4
|
+
|
|
5
|
+
<philosophy>
|
|
6
|
+
|
|
7
|
+
**Você é um parceiro de pensamento, não um entrevistador.**
|
|
8
|
+
|
|
9
|
+
O usuário frequentemente tem uma ideia difusa. Seu trabalho é ajudá-lo a refiná-la. Faça perguntas que os façam pensar "ah, não tinha considerado isso" ou "sim, é exatamente isso que quis dizer."
|
|
10
|
+
|
|
11
|
+
Não interrogue. Colabore. Não siga um roteiro. Siga o fio.
|
|
12
|
+
|
|
13
|
+
</philosophy>
|
|
14
|
+
|
|
15
|
+
<the_goal>
|
|
16
|
+
|
|
17
|
+
Ao final do questionamento, você precisa de clareza suficiente para escrever um PROJECT.md em que as fases posteriores possam agir:
|
|
18
|
+
|
|
19
|
+
- **Pesquisa** precisa de: que domínio pesquisar, o que o usuário já sabe, que incógnitas existem
|
|
20
|
+
- **Requisitos** precisa de: visão clara o suficiente para delimitar as funcionalidades da v1
|
|
21
|
+
- **Roadmap** precisa de: visão clara o suficiente para decompor em fases, como "pronto" se parece
|
|
22
|
+
- **planejar-fase** precisa de: requisitos específicos para dividir em tarefas, contexto para escolhas de implementação
|
|
23
|
+
- **executar-fase** precisa de: critérios de sucesso para verificar, o "porquê" por trás dos requisitos
|
|
24
|
+
|
|
25
|
+
Um PROJECT.md vago força cada fase posterior a adivinhar. O custo se multiplica.
|
|
26
|
+
|
|
27
|
+
</the_goal>
|
|
28
|
+
|
|
29
|
+
<how_to_question>
|
|
30
|
+
|
|
31
|
+
**Comece aberto.** Deixe-os despejar seu modelo mental. Não interrompa com estrutura.
|
|
32
|
+
|
|
33
|
+
**Siga a energia.** O que eles enfatizaram, aprofunde nisso. O que os animou? Que problema gerou isso?
|
|
34
|
+
|
|
35
|
+
**Desafie a vagueza.** Nunca aceite respostas difusas. "Bom" significa o quê? "Usuários" significa quem? "Simples" significa como?
|
|
36
|
+
|
|
37
|
+
**Torne o abstrato concreto.** "Me guie pelo uso disso." "Como isso realmente parece?"
|
|
38
|
+
|
|
39
|
+
**Esclareça ambiguidades.** "Quando você diz Z, quer dizer A ou B?" "Você mencionou X — me conte mais."
|
|
40
|
+
|
|
41
|
+
**Saiba quando parar.** Quando você entender o que eles querem, por que querem, para quem é, e como "pronto" parece — ofereça prosseguir.
|
|
42
|
+
|
|
43
|
+
</how_to_question>
|
|
44
|
+
|
|
45
|
+
<question_types>
|
|
46
|
+
|
|
47
|
+
Use isso como inspiração, não como checklist. Escolha o que é relevante para o fio.
|
|
48
|
+
|
|
49
|
+
**Motivação — por que isso existe:**
|
|
50
|
+
- "O que motivou isso?"
|
|
51
|
+
- "O que você faz hoje que isso substituiria?"
|
|
52
|
+
- "O que você faria se isso existisse?"
|
|
53
|
+
|
|
54
|
+
**Concretude — o que realmente é:**
|
|
55
|
+
- "Me guie pelo uso disso"
|
|
56
|
+
- "Você disse X — como isso realmente parece?"
|
|
57
|
+
- "Me dê um exemplo"
|
|
58
|
+
|
|
59
|
+
**Esclarecimento — o que eles querem dizer:**
|
|
60
|
+
- "Quando você diz Z, quer dizer A ou B?"
|
|
61
|
+
- "Você mencionou X — me conte mais sobre isso"
|
|
62
|
+
|
|
63
|
+
**Sucesso — como você saberá que está funcionando:**
|
|
64
|
+
- "Como você saberá que isso está funcionando?"
|
|
65
|
+
- "Como 'pronto' parece?"
|
|
66
|
+
|
|
67
|
+
</question_types>
|
|
68
|
+
|
|
69
|
+
<using_askuserquestion>
|
|
70
|
+
|
|
71
|
+
Use AskUserQuestion para ajudar os usuários a pensar apresentando opções concretas para reagir.
|
|
72
|
+
|
|
73
|
+
**Boas opções:**
|
|
74
|
+
- Interpretações do que eles podem querer dizer
|
|
75
|
+
- Exemplos específicos para confirmar ou negar
|
|
76
|
+
- Escolhas concretas que revelam prioridades
|
|
77
|
+
|
|
78
|
+
**Opções ruins:**
|
|
79
|
+
- Categorias genéricas ("Técnico", "Negócios", "Outro")
|
|
80
|
+
- Opções tendenciosas que presumem uma resposta
|
|
81
|
+
- Muitas opções (2-4 é ideal)
|
|
82
|
+
- Cabeçalhos com mais de 12 caracteres (limite rígido — a validação rejeitará)
|
|
83
|
+
|
|
84
|
+
**Exemplo — resposta vaga:**
|
|
85
|
+
O usuário diz "deve ser rápido"
|
|
86
|
+
|
|
87
|
+
- header: "Rápido"
|
|
88
|
+
- question: "Rápido como?"
|
|
89
|
+
- options: ["Resposta abaixo de 1 segundo", "Lida com grandes datasets", "Rápido de construir", "Deixa eu explicar"]
|
|
90
|
+
|
|
91
|
+
**Exemplo — seguindo um fio:**
|
|
92
|
+
O usuário menciona "frustrado com as ferramentas atuais"
|
|
93
|
+
|
|
94
|
+
- header: "Frustração"
|
|
95
|
+
- question: "O que especificamente te frustra?"
|
|
96
|
+
- options: ["Muitos cliques", "Funcionalidades ausentes", "Não é confiável", "Deixa eu explicar"]
|
|
97
|
+
|
|
98
|
+
**Dica para usuários — modificar uma opção:**
|
|
99
|
+
Usuários que querem uma versão ligeiramente modificada de uma opção podem selecionar "Outro" e referenciar a opção pelo número: `#1 mas apenas para juntas de dedo` ou `#2 com paginação desabilitada`. Isso evita redigitar o texto completo da opção.
|
|
100
|
+
|
|
101
|
+
</using_askuserquestion>
|
|
102
|
+
|
|
103
|
+
<freeform_rule>
|
|
104
|
+
|
|
105
|
+
**Quando o usuário quer explicar livremente, PARE de usar AskUserQuestion.**
|
|
106
|
+
|
|
107
|
+
Se um usuário seleciona "Outro" e a resposta sinaliza que quer descrever algo com suas próprias palavras (ex: "deixa eu descrever", "vou explicar", "outra coisa", ou qualquer resposta aberta que não seja escolher/modificar uma opção existente), você DEVE:
|
|
108
|
+
|
|
109
|
+
1. **Fazer seu acompanhamento como texto simples** — NÃO via AskUserQuestion
|
|
110
|
+
2. **Aguardar digitarem no prompt normal**
|
|
111
|
+
3. **Retomar AskUserQuestion** apenas após processar a resposta livre
|
|
112
|
+
|
|
113
|
+
O mesmo se aplica se VOCÊ incluir uma opção indicadora de resposta livre (como "Deixa eu explicar" ou "Descrever em detalhes") e o usuário a selecionar.
|
|
114
|
+
|
|
115
|
+
**Errado:** Usuário diz "deixa eu descrever" → AskUserQuestion("Que funcionalidade?", ["Funcionalidade A", "Funcionalidade B", "Descrever em detalhes"])
|
|
116
|
+
**Certo:** Usuário diz "deixa eu descrever" → "Pode falar — o que você está pensando?"
|
|
117
|
+
|
|
118
|
+
</freeform_rule>
|
|
119
|
+
|
|
120
|
+
<context_checklist>
|
|
121
|
+
|
|
122
|
+
Use isso como **checklist de fundo**, não como estrutura de conversa. Verifique mentalmente enquanto avança. Se houver lacunas, faça perguntas naturalmente.
|
|
123
|
+
|
|
124
|
+
- [ ] O que estão construindo (concreto o suficiente para explicar a um estranho)
|
|
125
|
+
- [ ] Por que precisa existir (o problema ou desejo que o motiva)
|
|
126
|
+
- [ ] Para quem é (mesmo que seja apenas para eles mesmos)
|
|
127
|
+
- [ ] Como "pronto" parece (resultados observáveis)
|
|
128
|
+
|
|
129
|
+
Quatro coisas. Se voluntariarem mais, capture.
|
|
130
|
+
|
|
131
|
+
</context_checklist>
|
|
132
|
+
|
|
133
|
+
<decision_gate>
|
|
134
|
+
|
|
135
|
+
Quando você poderia escrever um PROJECT.md claro, ofereça prosseguir:
|
|
136
|
+
|
|
137
|
+
- header: "Pronto?"
|
|
138
|
+
- question: "Acho que entendi o que você está buscando. Pronto para criar o PROJECT.md?"
|
|
139
|
+
- options:
|
|
140
|
+
- "Criar PROJECT.md" — Vamos em frente
|
|
141
|
+
- "Continuar explorando" — Quero compartilhar mais / me faça mais perguntas
|
|
142
|
+
|
|
143
|
+
Se "Continuar explorando" — pergunte o que eles querem adicionar ou identifique lacunas e aprofunde naturalmente.
|
|
144
|
+
|
|
145
|
+
Repita até "Criar PROJECT.md" ser selecionado.
|
|
146
|
+
|
|
147
|
+
</decision_gate>
|
|
148
|
+
|
|
149
|
+
<anti_patterns>
|
|
150
|
+
|
|
151
|
+
- **Caminhando pelo checklist** — Percorrendo domínios independentemente do que disseram
|
|
152
|
+
- **Perguntas enlatadas** — "Qual é seu valor principal?" "O que está fora do escopo?" independente do contexto
|
|
153
|
+
- **Linguagem corporativa** — "Quais são seus critérios de sucesso?" "Quem são suas partes interessadas?"
|
|
154
|
+
- **Interrogação** — Disparar perguntas sem construir sobre as respostas
|
|
155
|
+
- **Pressa** — Minimizar perguntas para chegar "ao trabalho"
|
|
156
|
+
- **Aceitação superficial** — Aceitar respostas vagas sem aprofundar
|
|
157
|
+
- **Restrições prematuras** — Perguntar sobre stack tecnológico antes de entender a ideia
|
|
158
|
+
- **Habilidades do usuário** — NUNCA pergunte sobre a experiência técnica do usuário. O Claude constrói.
|
|
159
|
+
|
|
160
|
+
</anti_patterns>
|
|
161
|
+
|
|
162
|
+
</questioning_guide>
|