@luanpdd/kit-mcp 1.6.1 → 1.7.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/CHANGELOG.md +25 -0
- package/kit/agents/advisor-researcher.md +1 -14
- package/kit/agents/assumptions-analyzer.md +1 -14
- package/kit/agents/codebase-mapper.md +1 -14
- package/kit/agents/debugger.md +1 -19
- package/kit/agents/executor.md +1 -18
- package/kit/agents/integration-checker.md +1 -16
- package/kit/agents/nyquist-auditor.md +1 -16
- package/kit/agents/phase-researcher.md +1 -14
- package/kit/agents/plan-checker.md +1 -16
- package/kit/agents/planner.md +1 -16
- package/kit/agents/project-researcher.md +1 -14
- package/kit/agents/research-synthesizer.md +1 -9
- package/kit/agents/roadmapper.md +1 -14
- package/kit/agents/ui-auditor.md +1 -16
- package/kit/agents/ui-checker.md +1 -16
- package/kit/agents/ui-researcher.md +1 -14
- package/kit/agents/user-profiler.md +1 -9
- package/kit/agents/verifier.md +1 -16
- package/kit/commands/expresso.md +9 -0
- package/kit/commands/fazer.md +17 -4
- package/kit/commands/proximo.md +7 -0
- package/kit/commands/rapido.md +6 -0
- package/kit/framework/references/output-style.md +22 -0
- package/kit/framework/workflows/discuss-phase.md +47 -331
- package/kit/framework/workflows/help.md +14 -1
- package/kit/framework/workflows/new-project.md +16 -107
- package/kit/framework/workflows/plan-phase.md +28 -147
- package/package.json +1 -1
- package/src/core/kit.js +55 -22
- package/src/core/sync.js +3 -1
|
@@ -21,49 +21,26 @@ Você é um parceiro de pensamento, não um entrevistador. O usuário é o visio
|
|
|
21
21
|
</downstream_awareness>
|
|
22
22
|
|
|
23
23
|
<philosophy>
|
|
24
|
-
**Usuário =
|
|
24
|
+
**Usuário = visionário. Claude = construtor.**
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- Como deve ser o visual/sensação
|
|
29
|
-
- O que é essencial vs bom ter
|
|
30
|
-
- Comportamentos ou referências específicas que têm em mente
|
|
26
|
+
Usuário SABE: como imagina, visual/sensação, essencial vs nice-to-have, referências específicas.
|
|
27
|
+
Usuário NÃO sabe (não pergunte): padrões da codebase (pesquisador lê), riscos técnicos (pesquisador), abordagem de implementação (planejador), métricas (inferidas).
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
- Padrões da base de código (pesquisador lê o código)
|
|
34
|
-
- Riscos técnicos (pesquisador identifica estes)
|
|
35
|
-
- Abordagem de implementação (planejador descobre isso)
|
|
36
|
-
- Métricas de sucesso (inferidas do trabalho)
|
|
37
|
-
|
|
38
|
-
Perguntar sobre visão e escolhas de implementação. Capturar decisões para agentes downstream.
|
|
29
|
+
Pergunte sobre visão e escolhas; capture decisões pra agentes downstream.
|
|
39
30
|
</philosophy>
|
|
40
31
|
|
|
41
32
|
<scope_guardrail>
|
|
42
|
-
**CRÍTICO:
|
|
43
|
-
|
|
44
|
-
O limite da fase vem do ROADMAP.md e é FIXO. A discussão clarifica COMO implementar o que está no escopo, nunca SE adicionar novas capacidades.
|
|
45
|
-
|
|
46
|
-
**Permitido (clarificando ambiguidade):**
|
|
47
|
-
- "Como os posts devem ser exibidos?" (layout, densidade, informações mostradas)
|
|
48
|
-
- "O que acontece em estado vazio?" (dentro da funcionalidade)
|
|
49
|
-
- "Pull to refresh ou manual?" (escolha de comportamento)
|
|
33
|
+
**CRÍTICO: sem expansão de escopo.** Limite da fase vem do ROADMAP e é FIXO. Discussão clarifica COMO, nunca SE adicionar capacidades.
|
|
50
34
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
35
|
+
| Permitido (clarifica) | Não permitido (expande) |
|
|
36
|
+
|---|---|
|
|
37
|
+
| "Como exibir posts?" (layout, densidade) | "Adicionar comentários?" (nova capacidade) |
|
|
38
|
+
| "O que em estado vazio?" | "E busca/filtragem?" |
|
|
39
|
+
| "Pull-to-refresh ou manual?" | "Incluir favoritos?" |
|
|
55
40
|
|
|
56
|
-
**
|
|
41
|
+
**Heurística:** clarifica o que já está na fase, ou adiciona capacidade que merece fase própria?
|
|
57
42
|
|
|
58
|
-
**Quando
|
|
59
|
-
```
|
|
60
|
-
"[Funcionalidade X] seria uma nova capacidade — é sua própria fase.
|
|
61
|
-
Quer que eu anote para o backlog do roadmap?
|
|
62
|
-
|
|
63
|
-
Por enquanto, vamos focar em [domínio da fase]."
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Capturar a ideia em uma seção "Ideias Adiadas". Não a perder, não agir sobre ela.
|
|
43
|
+
**Quando usuário sugere expansão:** "[X] seria nova capacidade — fase própria. Anoto pro backlog. De volta a [tópico]." Capture em "Ideias Adiadas". Não perca, não aja.
|
|
67
44
|
</scope_guardrail>
|
|
68
45
|
|
|
69
46
|
<gray_area_identification>
|
|
@@ -80,29 +57,11 @@ Capturar a ideia em uma seção "Ideias Adiadas". Não a perder, não agir sobre
|
|
|
80
57
|
- Algo sendo ORGANIZADO → critérios, agrupamento, tratamento de exceções importam
|
|
81
58
|
3. **Gerar áreas cinzentas específicas da fase** — Não categorias genéricas, mas decisões concretas para ESTA fase
|
|
82
59
|
|
|
83
|
-
**Não
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Fase: "Autenticação de usuário"
|
|
87
|
-
→ Gerenciamento de sessão, Respostas de erro, Política multi-dispositivo, Fluxo de recuperação
|
|
60
|
+
**Não use rótulos genéricos** (UI/UX/Comportamento). Gere áreas específicas. Exemplos: Auth → sessão, erros, multi-device, recuperação. Backups CLI → output, flags, progress, recovery. Foto biblioteca → agrupamento, duplicatas, nomenclatura, pastas. API docs → estrutura, exemplos, versionamento, interativos.
|
|
88
61
|
|
|
89
|
-
|
|
90
|
-
→ Critérios de agrupamento, Tratamento de duplicatas, Convenção de nomenclatura, Estrutura de pastas
|
|
62
|
+
**Pergunta-chave:** quais decisões mudariam o resultado que o usuário deveria opinar?
|
|
91
63
|
|
|
92
|
-
|
|
93
|
-
→ Formato de saída, Design de flags, Relatório de progresso, Recuperação de erros
|
|
94
|
-
|
|
95
|
-
Fase: "Documentação de API"
|
|
96
|
-
→ Estrutura/navegação, Profundidade de exemplos de código, Abordagem de versionamento, Elementos interativos
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**A pergunta-chave:** Quais decisões mudariam o resultado que o usuário deveria opinar?
|
|
100
|
-
|
|
101
|
-
**Claude lida com isso (não perguntar):**
|
|
102
|
-
- Detalhes técnicos de implementação
|
|
103
|
-
- Padrões de arquitetura
|
|
104
|
-
- Otimização de performance
|
|
105
|
-
- Escopo (roadmap define isso)
|
|
64
|
+
**Claude trata sozinho (não perguntar):** detalhes técnicos, padrões de arquitetura, otimização, escopo (roadmap define).
|
|
106
65
|
</gray_area_identification>
|
|
107
66
|
|
|
108
67
|
<answer_validation>
|
|
@@ -202,57 +161,11 @@ Se "Cancelar": Sair do workflow.
|
|
|
202
161
|
</step>
|
|
203
162
|
|
|
204
163
|
<step name="load_prior_context">
|
|
205
|
-
Ler
|
|
206
|
-
|
|
207
|
-
**Passo 1: Ler arquivos em nível de projeto**
|
|
208
|
-
```bash
|
|
209
|
-
# Arquivos centrais do projeto
|
|
210
|
-
cat .planning/PROJECT.md 2>/dev/null || true
|
|
211
|
-
cat .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
212
|
-
cat .planning/STATE.md 2>/dev/null || true
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Extrair destes:
|
|
216
|
-
- **PROJECT.md** — Visão, princípios, inegociáveis, preferências do usuário
|
|
217
|
-
- **REQUIREMENTS.md** — Critérios de aceitação, restrições, must-haves vs bom-ter
|
|
218
|
-
- **STATE.md** — Progresso atual, quaisquer flags ou notas de sessão
|
|
219
|
-
|
|
220
|
-
**Passo 2: Ler todos os arquivos CONTEXT.md anteriores**
|
|
221
|
-
```bash
|
|
222
|
-
# Encontrar todos os arquivos CONTEXT.md de fases anteriores à atual
|
|
223
|
-
(find .planning/phases -name "*-CONTEXT.md" 2>/dev/null || true) | sort
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
Para cada CONTEXT.md onde o número de fase < fase atual:
|
|
227
|
-
- Ler a seção `<decisions>` — estas são preferências bloqueadas
|
|
228
|
-
- Ler `<specifics>` — referências particulares ou momentos "quero como X"
|
|
229
|
-
- Notar quaisquer padrões (ex: "usuário consistentemente prefere UI minimalista", "usuário rejeitou atalhos de tecla única")
|
|
164
|
+
Ler PROJECT.md (visão/princípios/inegociáveis), REQUIREMENTS.md (critérios/must-haves), STATE.md (progresso/flags). Encontrar CONTEXT.md anteriores (`find .planning/phases -name "*-CONTEXT.md" | sort`); pra cada um com número < fase atual, extrair `<decisions>` (preferências bloqueadas) e `<specifics>` (refs particulares).
|
|
230
165
|
|
|
231
|
-
|
|
166
|
+
Construir contexto interno `<prior_decisions>` com seções "Nível de Projeto" + "Das Fases Anteriores".
|
|
232
167
|
|
|
233
|
-
|
|
234
|
-
```
|
|
235
|
-
<prior_decisions>
|
|
236
|
-
## Nível de Projeto
|
|
237
|
-
- [Princípio ou restrição chave do PROJECT.md]
|
|
238
|
-
- [Requisito que afeta esta fase do REQUIREMENTS.md]
|
|
239
|
-
|
|
240
|
-
## Das Fases Anteriores
|
|
241
|
-
### Fase N: [Nome]
|
|
242
|
-
- [Decisão que pode ser relevante para a fase atual]
|
|
243
|
-
- [Preferência que estabelece um padrão]
|
|
244
|
-
|
|
245
|
-
### Fase M: [Nome]
|
|
246
|
-
- [Outra decisão relevante]
|
|
247
|
-
</prior_decisions>
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
**Uso nos passos subsequentes:**
|
|
251
|
-
- `analyze_phase`: Pular áreas cinzentas já decididas em fases anteriores
|
|
252
|
-
- `present_gray_areas`: Anotar opções com decisões anteriores ("Você escolheu X na Fase 5")
|
|
253
|
-
- `discuss_areas`: Pré-preencher respostas ou sinalizar conflitos ("Isso contradiz a Fase 3 — mesmo aqui ou diferente?")
|
|
254
|
-
|
|
255
|
-
**Se nenhum contexto anterior existir:** Continuar sem — isso é esperado para fases iniciais.
|
|
168
|
+
**Uso downstream:** `analyze_phase` pula áreas já decididas; `present_gray_areas` anota com refs ("Você escolheu X na Fase 5"); `discuss_areas` pré-preenche ou sinaliza conflitos. Sem contexto anterior → continuar (esperado pra fases iniciais).
|
|
256
169
|
</step>
|
|
257
170
|
|
|
258
171
|
<step name="cross_reference_todos">
|
|
@@ -304,38 +217,11 @@ Varredura leve do código existente para informar identificação de áreas cinz
|
|
|
304
217
|
ls .planning/codebase/*.md 2>/dev/null || true
|
|
305
218
|
```
|
|
306
219
|
|
|
307
|
-
**
|
|
308
|
-
- Componentes/hooks/utilitários reutilizáveis
|
|
309
|
-
- Padrões estabelecidos (gerenciamento de estado, estilização, busca de dados)
|
|
310
|
-
- Pontos de integração (onde novo código se conectaria)
|
|
311
|
-
|
|
312
|
-
Pular para o Passo 3 abaixo.
|
|
313
|
-
|
|
314
|
-
**Passo 2: Se não há mapas de codebase, fazer grep direcionado**
|
|
315
|
-
|
|
316
|
-
Extrair termos-chave do objetivo da fase (ex: "feed" → "post", "card", "list"; "auth" → "login", "session", "token").
|
|
317
|
-
|
|
318
|
-
```bash
|
|
319
|
-
# Encontrar arquivos relacionados aos termos do objetivo da fase
|
|
320
|
-
grep -rl "{termo1}\|{termo2}" src/ app/ --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" 2>/dev/null | head -10 || true
|
|
321
|
-
|
|
322
|
-
# Encontrar componentes/hooks existentes
|
|
323
|
-
ls src/components/ 2>/dev/null || true
|
|
324
|
-
ls src/hooks/ 2>/dev/null || true
|
|
325
|
-
ls src/lib/ src/utils/ 2>/dev/null || true
|
|
326
|
-
```
|
|
220
|
+
**Mapas de codebase existem (`.planning/codebase/*.md`):** ler CONVENTIONS/STRUCTURE/STACK conforme tipo da fase. Extrair: ativos reutilizáveis, padrões estabelecidos, pontos de integração.
|
|
327
221
|
|
|
328
|
-
Ler
|
|
222
|
+
**Sem mapas:** grep direcionado por termos-chave do objetivo (`grep -rl "termo1\|termo2" src/ app/ --include='*.{ts,tsx,js,jsx}' | head -10`) + `ls src/{components,hooks,lib,utils}/`. Ler 3-5 arquivos mais relevantes.
|
|
329
223
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
Da varredura, identificar:
|
|
333
|
-
- **Ativos reutilizáveis** — componentes, hooks, utilitários existentes que poderiam ser usados nesta fase
|
|
334
|
-
- **Padrões estabelecidos** — como a base de código faz gerenciamento de estado, estilização, busca de dados
|
|
335
|
-
- **Pontos de integração** — onde novo código se conectaria (rotas, nav, providers)
|
|
336
|
-
- **Opções criativas** — abordagens que a arquitetura existente habilita ou restringe
|
|
337
|
-
|
|
338
|
-
Armazenar como `<codebase_context>` interno para uso em analyze_phase e present_gray_areas. Isso NÃO é escrito em arquivo — é usado apenas nesta sessão.
|
|
224
|
+
Construir `<codebase_context>` interno: ativos reutilizáveis, padrões, pontos de integração, opções criativas que a arquitetura habilita/restringe. Não escreve em arquivo — só sessão atual.
|
|
339
225
|
</step>
|
|
340
226
|
|
|
341
227
|
<step name="analyze_phase">
|
|
@@ -365,30 +251,11 @@ Analisar a fase para identificar áreas cinzentas que valem a discussão. **Usar
|
|
|
365
251
|
|
|
366
252
|
**Detecção de Modo Advisor:**
|
|
367
253
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
1. Verificar USER-PROFILE.md:
|
|
371
|
-
```bash
|
|
372
|
-
PROFILE_PATH="./.claude/framework/USER-PROFILE.md"
|
|
373
|
-
```
|
|
374
|
-
ADVISOR_MODE = arquivo existe em PROFILE_PATH → true, caso contrário → false
|
|
375
|
-
|
|
376
|
-
2. Se ADVISOR_MODE for true, resolver tier de calibração vendor_philosophy:
|
|
377
|
-
- Prioridade 1: Ler config.json > preferences.vendor_philosophy (override em nível de projeto)
|
|
378
|
-
- Prioridade 2: Ler avaliação Vendor Choices/Philosophy do USER-PROFILE.md (global)
|
|
379
|
-
- Prioridade 3: Padrão para "standard" se nenhum tiver valor ou valor for UNSCORED
|
|
254
|
+
`ADVISOR_MODE = exists("./.claude/framework/USER-PROFILE.md")`. Se false, pular todos os passos advisor — workflow conversacional inalterado.
|
|
380
255
|
|
|
381
|
-
|
|
382
|
-
- conservative OU thorough-evaluator → full_maturity
|
|
383
|
-
- opinionated → minimal_decisive
|
|
384
|
-
- pragmatic-fast OU qualquer outro valor OU vazio → standard
|
|
256
|
+
Se true, resolver `calibration_tier` por prioridade: (1) `config.json > preferences.vendor_philosophy` (project), (2) USER-PROFILE.md Vendor Choices/Philosophy (global), (3) default `standard`. Mapeamento: `conservative`/`thorough-evaluator` → `full_maturity`; `opinionated` → `minimal_decisive`; `pragmatic-fast` ou outro/vazio → `standard`.
|
|
385
257
|
|
|
386
|
-
|
|
387
|
-
```bash
|
|
388
|
-
ADVISOR_MODEL=$(node "./.claude/framework/bin/tools.cjs" resolve-model advisor-researcher --raw)
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
Se ADVISOR_MODE for false, pular todos os passos específicos de advisor — workflow prossegue com fluxo conversacional existente inalterado.
|
|
258
|
+
`ADVISOR_MODEL=$(node "./.claude/framework/bin/tools.cjs" resolve-model advisor-researcher --raw)`
|
|
392
259
|
|
|
393
260
|
**Produzir sua análise internamente, então apresentar ao usuário.**
|
|
394
261
|
|
|
@@ -453,31 +320,10 @@ Vamos clarificar COMO implementar isso.
|
|
|
453
320
|
|
|
454
321
|
**NÃO incluir opção "pular" ou "você decide".** O usuário executou este comando para discutir — dar escolhas reais.
|
|
455
322
|
|
|
456
|
-
**Exemplos por domínio
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
☐ Estilo de layout — Cards vs lista vs timeline? (Componente Card existe com variantes)
|
|
461
|
-
☐ Comportamento de carregamento — Scroll infinito ou paginação? (Hook useInfiniteQuery disponível)
|
|
462
|
-
☐ Ordenação de conteúdo — Cronológico, algorítmico, ou escolha do usuário?
|
|
463
|
-
☐ Metadados de post — Quais informações por post? Timestamps, reações, autor?
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
Para "CLI de backup de banco de dados" (ferramenta de linha de comando):
|
|
467
|
-
```
|
|
468
|
-
☐ Formato de saída — JSON, tabela, ou texto simples? Níveis de verbosidade?
|
|
469
|
-
☐ Design de flags — Flags curtas, longas, ou ambas? Obrigatórias vs opcionais?
|
|
470
|
-
☐ Relatório de progresso — Silencioso, barra de progresso, ou log verbose?
|
|
471
|
-
☐ Recuperação de erros — Falhar rápido, tentar novamente, ou solicitar ação?
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
Para "Organizar biblioteca de fotos" (tarefa de organização):
|
|
475
|
-
```
|
|
476
|
-
☐ Critérios de agrupamento — Por data, localização, faces, ou eventos?
|
|
477
|
-
☐ Tratamento de duplicatas — Manter melhor, manter todos, ou solicitar cada vez?
|
|
478
|
-
☐ Convenção de nomenclatura — Nomes originais, datas, ou descritivos?
|
|
479
|
-
☐ Estrutura de pastas — Plana, aninhada por ano, ou por categoria?
|
|
480
|
-
```
|
|
323
|
+
**Exemplos por domínio:**
|
|
324
|
+
- Feed de Posts: layout (cards/lista/timeline), carregamento (infinito/paginação), ordenação, metadados
|
|
325
|
+
- Backup CLI: output (JSON/tabela/texto), flags (curtas/longas), progress (silencioso/bar/verbose), recovery (fail-fast/retry)
|
|
326
|
+
- Foto biblioteca: agrupamento (data/local/face/evento), duplicatas (melhor/todos/prompt), nomenclatura, pastas
|
|
481
327
|
|
|
482
328
|
Continuar para discuss_areas com áreas selecionadas (ou advisor_research se ADVISOR_MODE for true).
|
|
483
329
|
</step>
|
|
@@ -572,65 +418,14 @@ Rastrear ideias adiadas internamente.
|
|
|
572
418
|
|
|
573
419
|
Para cada área selecionada, conduzir um loop de discussão focado.
|
|
574
420
|
|
|
575
|
-
**
|
|
576
|
-
1. Fazer uma breve busca na web por melhores práticas relacionadas ao tópico da área
|
|
577
|
-
2. Resumir as principais descobertas em 2-3 bullet points
|
|
578
|
-
3. Apresentar a pesquisa junto com a pergunta para que o usuário possa tomar uma decisão mais informada
|
|
579
|
-
|
|
580
|
-
Exemplo com pesquisa habilitada:
|
|
581
|
-
```
|
|
582
|
-
Vamos falar sobre [Estratégia de Autenticação].
|
|
583
|
-
|
|
584
|
-
📊 Pesquisa de melhores práticas:
|
|
585
|
-
• OAuth 2.0 + PKCE é o padrão atual para SPAs (substitui fluxo implícito)
|
|
586
|
-
• Tokens de sessão com cookies httpOnly preferidos sobre localStorage para proteção XSS
|
|
587
|
-
• Considerar suporte a passkey/WebAuthn — adoção está acelerando em 2025-2026
|
|
588
|
-
|
|
589
|
-
Com esse contexto: Como os usuários devem autenticar?
|
|
590
|
-
```
|
|
591
|
-
|
|
592
|
-
Quando desabilitado (padrão), pular a pesquisa e apresentar perguntas diretamente como antes.
|
|
593
|
-
|
|
594
|
-
**Suporte a modo texto:** Analisar `--text` opcional de `$ARGUMENTS`.
|
|
595
|
-
- Aceitar flag `--text` OU ler `workflow.text_mode` da config (do contexto init)
|
|
596
|
-
- Quando ativo, substituir TODAS as chamadas `AskUserQuestion` por listas numeradas de texto simples
|
|
597
|
-
- Usuário digita um número para selecionar, ou digita texto livre para "Outro"
|
|
598
|
-
- Isso é necessário para sessões remotas do Claude Code (modo `/rc`) onde menus TUI
|
|
599
|
-
não funcionam através do App Claude
|
|
600
|
-
|
|
601
|
-
**Suporte a modo batch:** Analisar `--batch` opcional de `$ARGUMENTS`.
|
|
602
|
-
- Aceitar `--batch`, `--batch=N`, ou `--batch N`
|
|
603
|
-
|
|
604
|
-
**Suporte a modo analyze:** Analisar `--analyze` opcional de `$ARGUMENTS`.
|
|
605
|
-
Quando `--analyze` estiver ativo, antes de apresentar cada pergunta (ou grupo de perguntas no modo batch), fornecer uma breve **análise de trade-offs** para a decisão:
|
|
606
|
-
- 2-3 opções com prós/contras baseados no contexto da codebase e padrões comuns
|
|
607
|
-
- Uma abordagem recomendada com raciocínio
|
|
608
|
-
- Armadilhas conhecidas ou restrições de fases anteriores
|
|
609
|
-
|
|
610
|
-
Exemplo com `--analyze`:
|
|
611
|
-
```
|
|
612
|
-
**Análise de trade-offs: Estratégia de autenticação**
|
|
613
|
-
|
|
614
|
-
| Abordagem | Prós | Contras |
|
|
615
|
-
|-----------|------|---------|
|
|
616
|
-
| Cookies de sessão | Simples, httpOnly evita XSS | Requer proteção CSRF, sessões fixas |
|
|
617
|
-
| JWT (stateless) | Escalável, sem estado no servidor | Tamanho do token, complexidade de revogação |
|
|
618
|
-
| OAuth 2.0 + PKCE | Padrão da indústria para SPAs | Mais configuração, UX de fluxo de redirecionamento |
|
|
619
|
-
|
|
620
|
-
💡 Recomendado: OAuth 2.0 + PKCE — seu app tem login social nos requisitos (REQ-04) e isso se alinha com a configuração NextAuth existente em `src/lib/auth.ts`.
|
|
621
|
-
|
|
622
|
-
Como os usuários devem autenticar?
|
|
623
|
-
```
|
|
421
|
+
**Modos opcionais (lidos de config + args):**
|
|
624
422
|
|
|
625
|
-
|
|
626
|
-
-
|
|
627
|
-
-
|
|
628
|
-
-
|
|
629
|
-
- Se `--batch` estiver ausente, manter o fluxo existente de uma pergunta por vez
|
|
423
|
+
- **`workflow.research_before_questions: true`** ou padrão off — antes de cada área, fazer 2-3 bullet de melhores práticas via web, apresentar com a pergunta. Ex: "OAuth 2.0 + PKCE é padrão atual pra SPAs; cookies httpOnly preferidos vs localStorage; passkey/WebAuthn em alta 2025-2026."
|
|
424
|
+
- **`--text` ou `workflow.text_mode: true`** — substitui TODOS AskUserQuestion por listas numeradas em texto simples (necessário em sessões remotas Claude Code `/rc`).
|
|
425
|
+
- **`--batch[=N]`** (default 4 quando ausente, range 2-5) — 1 turno agrupado com N perguntas numeradas em vez de N turnos de pergunta única. Após responder, refletir capturas e fazer follow-up mínimo.
|
|
426
|
+
- **`--analyze`** — antes de cada pergunta (ou batch), fornecer mini-tabela de trade-offs (2-3 opções, prós/contras baseados na codebase + padrões), recomendação destacada, pitfalls.
|
|
630
427
|
|
|
631
|
-
**Filosofia:**
|
|
632
|
-
- Modo padrão: 4 turnos de pergunta única, então verificar se continuar
|
|
633
|
-
- Modo `--batch`: 1 turno agrupado com 2-5 perguntas numeradas, então verificar se continuar
|
|
428
|
+
**Filosofia:** adaptativo, usuário escolhe o ritmo. Default: 4 turnos de pergunta única, depois verifica continuar. `--batch`: 1 turno agrupado, depois verifica.
|
|
634
429
|
|
|
635
430
|
Cada resposta (ou conjunto de respostas, no modo batch) deve revelar a próxima pergunta ou próximo batch.
|
|
636
431
|
|
|
@@ -695,37 +490,13 @@ Após todas as áreas serem auto-resolvidas, pular o prompt "Explorar mais área
|
|
|
695
490
|
- Loop: discutir novas áreas, então solicitar novamente
|
|
696
491
|
- Se "Estou pronto para o contexto": Prosseguir para write_context
|
|
697
492
|
|
|
698
|
-
**Acumulação de
|
|
699
|
-
Quando o usuário referencia um doc, spec, ou ADR durante qualquer resposta — ex: "leia adr-014", "verifique a spec MCP", "de acordo com browse-spec.md" — imediatamente:
|
|
700
|
-
1. Ler o doc referenciado (ou confirmar que existe)
|
|
701
|
-
2. Adicioná-lo ao acumulador de refs canônicas com caminho relativo completo
|
|
702
|
-
3. Usar o que aprendeu do doc para informar perguntas subsequentes
|
|
493
|
+
**Acumulação de refs canônicas:** quando usuário referencia doc/spec/ADR (ex: "leia adr-014"), imediatamente: leia o doc, adicione ao acumulador com caminho relativo completo, use pra informar perguntas seguintes. Esses são frequentemente MAIS importantes que refs do ROADMAP — usuário quer que agentes downstream sigam. Nunca perca.
|
|
703
494
|
|
|
704
|
-
|
|
495
|
+
**Design de perguntas:** opções concretas (não "Opção A"), cada resposta informa a próxima. Se usuário escolher "Outro" pra texto livre, faça acompanhamento em prompt simples (NÃO outro AskUserQuestion); reflita de volta e confirme.
|
|
705
496
|
|
|
706
|
-
**
|
|
707
|
-
- Opções devem ser concretas, não abstratas ("Cards" não "Opção A")
|
|
708
|
-
- Cada resposta deve informar a próxima pergunta ou próximo batch
|
|
709
|
-
- Se o usuário escolher "Outro" para fornecer input livre (ex: "deixa eu descrever", "outra coisa", ou uma resposta aberta), fazer o acompanhamento como texto simples — NÃO outro AskUserQuestion. Aguardar eles digitarem no prompt normal, então refletir seu input de volta e confirmar antes de retomar AskUserQuestion ou o próximo batch numerado.
|
|
497
|
+
**Expansão de escopo:** ver `<scope_guardrail>` acima — anote como Ideia Adiada, retorne ao tópico.
|
|
710
498
|
|
|
711
|
-
**
|
|
712
|
-
Se o usuário mencionar algo fora do domínio da fase:
|
|
713
|
-
```
|
|
714
|
-
"[Funcionalidade] parece uma nova capacidade — pertence à sua própria fase.
|
|
715
|
-
Vou anotá-la como uma ideia adiada.
|
|
716
|
-
|
|
717
|
-
De volta a [área atual]: [retornar à pergunta atual]"
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
Rastrear ideias adiadas internamente.
|
|
721
|
-
|
|
722
|
-
**Rastrear dados do log de discussão internamente:**
|
|
723
|
-
Para cada pergunta feita, acumular:
|
|
724
|
-
- Nome da área
|
|
725
|
-
- Todas as opções apresentadas (rótulo + descrição)
|
|
726
|
-
- Qual opção o usuário selecionou (ou sua resposta em texto livre)
|
|
727
|
-
- Quaisquer notas ou esclarecimentos de acompanhamento que o usuário forneceu
|
|
728
|
-
Esses dados são usados para gerar DISCUSSION-LOG.md no passo `write_context`.
|
|
499
|
+
**Log interno por pergunta:** área, opções apresentadas, seleção do usuário, notas de acompanhamento. Usado pra gerar DISCUSSION-LOG.md no `write_context`.
|
|
729
500
|
</step>
|
|
730
501
|
|
|
731
502
|
<step name="write_context">
|
|
@@ -959,74 +730,19 @@ node "./.claude/framework/bin/tools.cjs" commit "docs(state): record phase ${PHA
|
|
|
959
730
|
</step>
|
|
960
731
|
|
|
961
732
|
<step name="auto_advance">
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
1. Analisar flag `--auto` de $ARGUMENTS
|
|
965
|
-
2. **Sincronizar flag de cadeia com intenção** — se o usuário invocou manualmente (sem `--auto`), limpar a flag de cadeia efêmera de qualquer cadeia `--auto` anterior interrompida. Isso NÃO toca em `workflow.auto_advance` (preferência persistente do usuário):
|
|
966
|
-
```bash
|
|
967
|
-
if [[ ! "$ARGUMENTS" =~ --auto ]]; then
|
|
968
|
-
node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
|
|
969
|
-
fi
|
|
970
|
-
```
|
|
971
|
-
3. Ler tanto a flag de cadeia quanto a preferência do usuário:
|
|
972
|
-
```bash
|
|
973
|
-
AUTO_CHAIN=$(node "./.claude/framework/bin/tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
|
|
974
|
-
AUTO_CFG=$(node "./.claude/framework/bin/tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
975
|
-
```
|
|
976
|
-
|
|
977
|
-
**Se flag `--auto` presente E `AUTO_CHAIN` não for true:** Persistir flag de cadeia na config (lida com uso direto de `--auto` sem new-project):
|
|
978
|
-
```bash
|
|
979
|
-
node "./.claude/framework/bin/tools.cjs" config-set workflow._auto_chain_active true
|
|
980
|
-
```
|
|
733
|
+
**Detecção:** flag `--auto` em $ARGUMENTS, OR `workflow._auto_chain_active=true`, OR `workflow.auto_advance=true`.
|
|
981
734
|
|
|
982
|
-
**
|
|
735
|
+
**Sync de cadeia:** se usuário invocou manualmente (sem `--auto`), zere `workflow._auto_chain_active` (mas NÃO toque `workflow.auto_advance` — preferência do usuário). Se `--auto` presente e cadeia não estava ativa, set `_auto_chain_active=true` (handle uso direto de `--auto` sem new-project).
|
|
983
736
|
|
|
984
|
-
|
|
985
|
-
```
|
|
986
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
987
|
-
framework ► AVANÇANDO AUTOMATICAMENTE PARA PLANEJAMENTO
|
|
988
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
989
|
-
|
|
990
|
-
Contexto capturado. Iniciando plan-phase...
|
|
991
|
-
```
|
|
737
|
+
**Quando ativo:** dispare `Skill(skill="framework:planejar-fase", args="${PHASE} --auto ${WS}")` (use Skill, não Task aninhado — evita freeze de runtime, issue #686).
|
|
992
738
|
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
739
|
+
**Roteamento de retorno do plan-phase:**
|
|
740
|
+
- `FASE CONCLUÍDA` → cadeia completa. Próximo: `/discutir-fase ${NEXT_PHASE} --auto ${WS}` (após `/clear`)
|
|
741
|
+
- `PLANEJAMENTO CONCLUÍDO` → execução parou. Continuar: `/executar-fase ${PHASE} ${WS}`
|
|
742
|
+
- `PLANEJAMENTO INCONCLUSIVO / CHECKPOINT` → parou. Continuar: `/planejar-fase ${PHASE} ${WS}`
|
|
743
|
+
- `LACUNAS ENCONTRADAS` → parou. Continuar: `/planejar-fase ${PHASE} --gaps ${WS}`
|
|
997
744
|
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
**Lidar com retorno do plan-phase:**
|
|
1001
|
-
- **FASE CONCLUÍDA** → Cadeia completa bem-sucedida. Exibir:
|
|
1002
|
-
```
|
|
1003
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1004
|
-
framework ► FASE ${PHASE} CONCLUÍDA
|
|
1005
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1006
|
-
|
|
1007
|
-
Pipeline de avanço automático finalizado: discutir → planejar → executar
|
|
1008
|
-
|
|
1009
|
-
Próximo: /discutir-fase ${NEXT_PHASE} --auto ${WS}
|
|
1010
|
-
<sub>/clear primeiro → janela de contexto fresca</sub>
|
|
1011
|
-
```
|
|
1012
|
-
- **PLANEJAMENTO CONCLUÍDO** → Planejamento feito, execução não terminou:
|
|
1013
|
-
```
|
|
1014
|
-
Avanço automático parcial: Planejamento concluído, execução não terminou.
|
|
1015
|
-
Continuar: /executar-fase ${PHASE} ${WS}
|
|
1016
|
-
```
|
|
1017
|
-
- **PLANEJAMENTO INCONCLUSIVO / CHECKPOINT** → Parar cadeia:
|
|
1018
|
-
```
|
|
1019
|
-
Avanço automático parado: Planejamento precisa de input.
|
|
1020
|
-
Continuar: /planejar-fase ${PHASE} ${WS}
|
|
1021
|
-
```
|
|
1022
|
-
- **LACUNAS ENCONTRADAS** → Parar cadeia:
|
|
1023
|
-
```
|
|
1024
|
-
Avanço automático parado: Lacunas encontradas durante execução.
|
|
1025
|
-
Continuar: /planejar-fase ${PHASE} --gaps ${WS}
|
|
1026
|
-
```
|
|
1027
|
-
|
|
1028
|
-
**Se nem `--auto` nem config habilitado:**
|
|
1029
|
-
Rotear para passo `confirm_creation` (comportamento existente — mostrar próximos passos manuais).
|
|
745
|
+
**Quando inativo:** rotear pra `confirm_creation` (comportamento manual existente).
|
|
1030
746
|
</step>
|
|
1031
747
|
|
|
1032
748
|
</process>
|
|
@@ -5,7 +5,20 @@ Exibir a referência completa de comandos do framework. Emitir APENAS o conteúd
|
|
|
5
5
|
<reference>
|
|
6
6
|
# Referência de Comandos do framework
|
|
7
7
|
|
|
8
|
-
**framework**
|
|
8
|
+
**framework** cria planos hierárquicos de projeto otimizados para desenvolvimento ágil solo com Claude Code.
|
|
9
|
+
|
|
10
|
+
## ⭐ Em dúvida? Use `/fazer`
|
|
11
|
+
|
|
12
|
+
`/fazer "descrição livre"` é o **entrypoint canônico** — analisa sua intenção e roteia automaticamente para o melhor comando. Use sempre que não souber qual `/*` invocar.
|
|
13
|
+
|
|
14
|
+
| Sua intenção | Comando |
|
|
15
|
+
|---|---|
|
|
16
|
+
| Trivial (typo, rename, log) | `/rapido` |
|
|
17
|
+
| Concreta com commit limpo | `/expresso` |
|
|
18
|
+
| Multi-arquivo estruturado | `/discutir-fase` → `/planejar-fase` → `/executar-fase` |
|
|
19
|
+
| "Onde parei?" | `/proximo` |
|
|
20
|
+
| Investigar bug | `/depurar` |
|
|
21
|
+
| Capturar ideia sem agir | `/nota` ou `/adicionar-tarefa` |
|
|
9
22
|
|
|
10
23
|
## Início Rápido
|
|
11
24
|
|
|
@@ -210,69 +210,21 @@ Proceed to Step 4 (skip Steps 3 and 5).
|
|
|
210
210
|
|
|
211
211
|
## 3. Deep Questioning
|
|
212
212
|
|
|
213
|
-
**
|
|
213
|
+
**Auto mode:** pular (handled em 2a) — extrair contexto do documento e ir pra passo 4.
|
|
214
214
|
|
|
215
|
-
**
|
|
215
|
+
**Banner:** `framework ► QUESTIONING`.
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
219
|
-
framework ► QUESTIONING
|
|
220
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
**Open the conversation:**
|
|
224
|
-
|
|
225
|
-
Ask inline (freeform, NOT AskUserQuestion):
|
|
226
|
-
|
|
227
|
-
"What do you want to build?"
|
|
228
|
-
|
|
229
|
-
Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
|
|
230
|
-
|
|
231
|
-
**Research-before-questions mode:** Check if `workflow.research_before_questions` is enabled in `.planning/config.json` (or the config from init context). When enabled, before asking follow-up questions about a topic area:
|
|
232
|
-
|
|
233
|
-
1. Do a brief web search for best practices related to what the user described
|
|
234
|
-
2. Mention key findings naturally as you ask questions (e.g., "Most projects like this use X — is that what you're thinking, or something different?")
|
|
235
|
-
3. This makes questions more informed without changing the conversational flow
|
|
236
|
-
|
|
237
|
-
When disabled (default), ask questions directly as before.
|
|
238
|
-
|
|
239
|
-
**Follow the thread:**
|
|
240
|
-
|
|
241
|
-
Based on what they said, ask follow-up questions that dig into their response. Use AskUserQuestion with options that probe what they mentioned — interpretations, clarifications, concrete examples.
|
|
242
|
-
|
|
243
|
-
Keep following threads. Each answer opens new threads to explore. Ask about:
|
|
244
|
-
|
|
245
|
-
- What excited them
|
|
246
|
-
- What problem sparked this
|
|
247
|
-
- What they mean by vague terms
|
|
248
|
-
- What it would actually look like
|
|
249
|
-
- What's already decided
|
|
250
|
-
|
|
251
|
-
Consult `questioning.md` for techniques:
|
|
217
|
+
**Abrir:** pergunta inline freeform (NÃO AskUserQuestion): "What do you want to build?". Aguardar resposta.
|
|
252
218
|
|
|
253
|
-
-
|
|
254
|
-
- Make abstract concrete
|
|
255
|
-
- Surface assumptions
|
|
256
|
-
- Find edges
|
|
257
|
-
- Reveal motivation
|
|
219
|
+
**Modo `workflow.research_before_questions`:** se enabled, antes de follow-ups numa área, fazer breve web search por melhores práticas e mencionar findings naturalmente ("Most projects like this use X — is that what you're thinking?"). Default off, perguntar direto.
|
|
258
220
|
|
|
259
|
-
**
|
|
221
|
+
**Follow the thread:** AskUserQuestion com options que provocam interpretações/clarificações/exemplos. Cada resposta abre novos threads. Cobrir: o que empolgou, problema que sparkou, termos vagos, como seria na prática, o que já está decidido.
|
|
260
222
|
|
|
261
|
-
|
|
223
|
+
**Técnicas de `questioning.md`:** challenge vagueness, concretize abstract, surface assumptions, find edges, reveal motivation.
|
|
262
224
|
|
|
263
|
-
|
|
225
|
+
Mentalmente validar checklist do `questioning.md`; se gaps, tecer perguntas naturalmente (não modo checklist).
|
|
264
226
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
- header: "Ready?"
|
|
268
|
-
- question: "I think I understand what you're after. Ready to create PROJECT.md?"
|
|
269
|
-
- options:
|
|
270
|
-
- "Create PROJECT.md" — Let's move forward
|
|
271
|
-
- "Keep exploring" — I want to share more / ask me more
|
|
272
|
-
|
|
273
|
-
If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
|
|
274
|
-
|
|
275
|
-
Loop until "Create PROJECT.md" selected.
|
|
227
|
+
**Decision gate:** quando puder escrever PROJECT.md claro, AskUserQuestion `Ready?` — "Create PROJECT.md" ou "Keep exploring". Loop até "Create".
|
|
276
228
|
|
|
277
229
|
## 4. Write PROJECT.md
|
|
278
230
|
|
|
@@ -449,60 +401,17 @@ questions: [
|
|
|
449
401
|
]
|
|
450
402
|
```
|
|
451
403
|
|
|
452
|
-
**Round 2 — Workflow agents:**
|
|
404
|
+
**Round 2 — Workflow agents (opt-in, adicionam tokens/tempo, melhoram qualidade):**
|
|
453
405
|
|
|
454
|
-
|
|
406
|
+
| Agent | Quando | O que faz |
|
|
407
|
+
|---|---|---|
|
|
408
|
+
| Researcher | Antes de cada plan-phase | Investiga domínio, padrões, pitfalls |
|
|
409
|
+
| Plan Checker | Após plano criado | Verifica se plano atinge o goal |
|
|
410
|
+
| Verifier | Após execução | Confirma must-haves entregues |
|
|
455
411
|
|
|
456
|
-
|
|
457
|
-
|-------|--------------|--------------|
|
|
458
|
-
| **Researcher** | Before planning each phase | Investigates domain, finds patterns, surfaces gotchas |
|
|
459
|
-
| **Plan Checker** | After plan is created | Verifies plan actually achieves the phase goal |
|
|
460
|
-
| **Verifier** | After phase execution | Confirms must-haves were delivered |
|
|
412
|
+
Todos recomendados pra projetos sérios; pular pra experimentos rápidos.
|
|
461
413
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
```
|
|
465
|
-
questions: [
|
|
466
|
-
{
|
|
467
|
-
header: "Research",
|
|
468
|
-
question: "Research before planning each phase? (adds tokens/time)",
|
|
469
|
-
multiSelect: false,
|
|
470
|
-
options: [
|
|
471
|
-
{ label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
|
|
472
|
-
{ label: "No", description: "Plan directly from requirements" }
|
|
473
|
-
]
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
header: "Plan Check",
|
|
477
|
-
question: "Verify plans will achieve their goals? (adds tokens/time)",
|
|
478
|
-
multiSelect: false,
|
|
479
|
-
options: [
|
|
480
|
-
{ label: "Yes (Recommended)", description: "Catch gaps before execution starts" },
|
|
481
|
-
{ label: "No", description: "Execute plans without verification" }
|
|
482
|
-
]
|
|
483
|
-
},
|
|
484
|
-
{
|
|
485
|
-
header: "Verifier",
|
|
486
|
-
question: "Verify work satisfies requirements after each phase? (adds tokens/time)",
|
|
487
|
-
multiSelect: false,
|
|
488
|
-
options: [
|
|
489
|
-
{ label: "Yes (Recommended)", description: "Confirm deliverables match phase goals" },
|
|
490
|
-
{ label: "No", description: "Trust execution, skip verification" }
|
|
491
|
-
]
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
header: "AI Models",
|
|
495
|
-
question: "Which AI models for planning agents?",
|
|
496
|
-
multiSelect: false,
|
|
497
|
-
options: [
|
|
498
|
-
{ label: "Balanced (Recommended)", description: "Sonnet for most agents — good quality/cost ratio" },
|
|
499
|
-
{ label: "Quality", description: "Opus for research/roadmap — higher cost, deeper analysis" },
|
|
500
|
-
{ label: "Budget", description: "Haiku where possible — fastest, lowest cost" },
|
|
501
|
-
{ label: "Inherit", description: "Use the current session model for all agents (OpenCode /model)" }
|
|
502
|
-
]
|
|
503
|
-
}
|
|
504
|
-
]
|
|
505
|
-
```
|
|
414
|
+
AskUserQuestion: 4 perguntas — `Research` (yes/no), `Plan Check` (yes/no), `Verifier` (yes/no), `AI Models` (Balanced=Sonnet recomendado / Quality=Opus / Budget=Haiku / Inherit=session model).
|
|
506
415
|
|
|
507
416
|
Create `.planning/config.json` with all settings (CLI fills in remaining defaults automatically):
|
|
508
417
|
|