@luanpdd/kit-mcp 1.6.1 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/gates/agent-no-recursive-dispatch.md +48 -0
  3. package/gates/budget-description.md +68 -0
  4. package/gates/no-personal-uuid.md +72 -0
  5. package/gates/skill-must-include.md +69 -0
  6. package/gates/sync-idempotent.md +62 -0
  7. package/kit/agents/advisor-researcher.md +1 -14
  8. package/kit/agents/assumptions-analyzer.md +1 -14
  9. package/kit/agents/codebase-mapper.md +2 -15
  10. package/kit/agents/debugger.md +1 -19
  11. package/kit/agents/executor.md +18 -18
  12. package/kit/agents/integration-checker.md +1 -16
  13. package/kit/agents/nyquist-auditor.md +1 -16
  14. package/kit/agents/phase-researcher.md +1 -14
  15. package/kit/agents/plan-checker.md +1 -16
  16. package/kit/agents/planner.md +36 -16
  17. package/kit/agents/project-researcher.md +2 -15
  18. package/kit/agents/research-synthesizer.md +1 -9
  19. package/kit/agents/roadmapper.md +1 -14
  20. package/kit/agents/schema-checker.md +4 -4
  21. package/kit/agents/supabase-architect.md +153 -0
  22. package/kit/agents/supabase-auth-bootstrapper.md +298 -0
  23. package/kit/agents/supabase-edge-fn-writer.md +185 -0
  24. package/kit/agents/supabase-migration-writer.md +156 -0
  25. package/kit/agents/supabase-realtime-implementer.md +252 -0
  26. package/kit/agents/supabase-rls-writer.md +218 -0
  27. package/kit/agents/supabase-storage-implementer.md +240 -0
  28. package/kit/agents/ui-auditor.md +1 -16
  29. package/kit/agents/ui-checker.md +1 -16
  30. package/kit/agents/ui-researcher.md +1 -14
  31. package/kit/agents/user-profiler.md +2 -10
  32. package/kit/agents/verifier.md +2 -17
  33. package/kit/commands/depurar.md +17 -0
  34. package/kit/commands/expresso.md +9 -0
  35. package/kit/commands/fazer.md +32 -4
  36. package/kit/commands/proximo.md +7 -0
  37. package/kit/commands/rapido.md +6 -0
  38. package/kit/commands/supabase.md +148 -0
  39. package/kit/framework/references/output-style.md +22 -0
  40. package/kit/framework/workflows/discuss-phase.md +62 -327
  41. package/kit/framework/workflows/help.md +14 -1
  42. package/kit/framework/workflows/new-project.md +16 -107
  43. package/kit/framework/workflows/plan-phase.md +53 -147
  44. package/kit/skills/_shared-supabase/glossary.md +180 -0
  45. package/kit/skills/supabase-auth-ssr/SKILL.md +260 -0
  46. package/kit/skills/supabase-cron-queues/SKILL.md +266 -0
  47. package/kit/skills/supabase-database-functions/SKILL.md +247 -0
  48. package/kit/skills/supabase-declarative-schema/SKILL.md +183 -0
  49. package/kit/skills/supabase-edge-functions/SKILL.md +242 -0
  50. package/kit/skills/supabase-migrations/SKILL.md +175 -0
  51. package/kit/skills/supabase-pgvector-rag/SKILL.md +253 -0
  52. package/kit/skills/supabase-postgres-style/SKILL.md +138 -0
  53. package/kit/skills/supabase-realtime/SKILL.md +236 -0
  54. package/kit/skills/supabase-rls-policies/SKILL.md +185 -0
  55. package/kit/skills/supabase-storage/SKILL.md +234 -0
  56. package/package.json +1 -1
  57. package/src/core/kit.js +55 -22
  58. package/src/core/sync.js +3 -1
@@ -21,50 +21,46 @@ 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 = fundador/visionário. Claude = construtor.**
24
+ **Usuário = visionário. Claude = construtor.**
25
25
 
26
- O usuário sabe:
27
- - Como imagina funcionando
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
- O usuário não sabe (e não deve ser perguntado):
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: Sem expansão de escopo.**
33
+ **CRÍTICO: sem expansão de escopo.** Limite da fase vem do ROADMAP e é FIXO. Discussão clarifica COMO, nunca SE adicionar capacidades.
43
34
 
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.
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?" |
45
40
 
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)
41
+ **Heurística:** clarifica o que já está na fase, ou adiciona capacidade que merece fase própria?
50
42
 
51
- **Não permitido (expansão de escopo):**
52
- - "Deveríamos também adicionar comentários?" (nova capacidade)
53
- - "E a busca/filtragem?" (nova capacidade)
54
- - "Talvez incluir favoritos?" (nova capacidade)
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.
44
+ </scope_guardrail>
55
45
 
56
- **A heurística:** Isso clarifica como implementamos o que já está na fase, ou adiciona uma nova capacidade que poderia ser sua própria fase?
46
+ <supabase_detection>
47
+ **Detecção de fase Supabase:** antes de identificar áreas cinzentas genéricas, verifique se a fase mexe em Supabase (DB/Auth/Realtime/Edge Functions/Storage/RLS/migrations).
57
48
 
58
- **Quando o usuário sugere expansão de escopo:**
59
- ```
60
- "[Funcionalidade X] seria uma nova capacidade é sua própria fase.
61
- Quer que eu anote para o backlog do roadmap?
49
+ Sinais de fase Supabase no objetivo do ROADMAP.md ou nos REQs mapeados:
50
+ - Menções a "Supabase", "Postgres", "RLS", "policy", "migration", "supabase/migrations/", "supabase/schemas/", "supabase/functions/"
51
+ - Menções a "Auth Next.js", "@supabase/ssr", "magic link", "OAuth", "MFA"
52
+ - Menções a "broadcast", "realtime", "presence", "postgres_changes"
53
+ - Menções a "Edge Function", "Deno", "pgvector", "RAG", "pg_cron", "pgmq"
54
+ - Menções a "bucket", "signed URL", "storage.objects"
62
55
 
63
- Por enquanto, vamos focar em [domínio da fase]."
56
+ **Se for fase Supabase:** considere delegar a discussão para o agent `supabase-architect` em vez de gerar áreas cinzentas genéricas. O architect já tem template de perguntas Supabase-específicas (tier Free/Pro, branches, RLS strategy multi-tenant, schema design, topology realtime, custos de egress/branches).
57
+
58
+ ```
59
+ Task(subagent_type=supabase-architect, prompt="Projete schema + RLS + topologia para esta fase Supabase: {phase_goal}. Retorne plano em formato Markdown estruturado para servir de base ao CONTEXT.md.")
64
60
  ```
65
61
 
66
- Capturar a ideia em uma seção "Ideias Adiadas". Não a perder, não agir sobre ela.
67
- </scope_guardrail>
62
+ Use o output do architect como base do `<decisions>` do CONTEXT.md em vez de fazer questionamento manual. **Para fases mistas** (parte Supabase, parte genérica) — use architect só para a parte Supabase, depois faça discussão padrão para o resto.
63
+ </supabase_detection>
68
64
 
69
65
  <gray_area_identification>
70
66
  Áreas cinzentas são **decisões de implementação que o usuário se importa** — coisas que podem ir de múltiplas formas e mudariam o resultado.
@@ -80,29 +76,11 @@ Capturar a ideia em uma seção "Ideias Adiadas". Não a perder, não agir sobre
80
76
  - Algo sendo ORGANIZADO → critérios, agrupamento, tratamento de exceções importam
81
77
  3. **Gerar áreas cinzentas específicas da fase** — Não categorias genéricas, mas decisões concretas para ESTA fase
82
78
 
83
- **Não usar rótulos de categoria genéricos** (UI, UX, Comportamento). Gerar áreas cinzentas específicas:
79
+ **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.
84
80
 
85
- ```
86
- Fase: "Autenticação de usuário"
87
- → Gerenciamento de sessão, Respostas de erro, Política multi-dispositivo, Fluxo de recuperação
88
-
89
- Fase: "Organizar biblioteca de fotos"
90
- → Critérios de agrupamento, Tratamento de duplicatas, Convenção de nomenclatura, Estrutura de pastas
91
-
92
- Fase: "CLI para backups de banco de dados"
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
- ```
81
+ **Pergunta-chave:** quais decisões mudariam o resultado que o usuário deveria opinar?
98
82
 
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)
83
+ **Claude trata sozinho (não perguntar):** detalhes técnicos, padrões de arquitetura, otimização, escopo (roadmap define).
106
84
  </gray_area_identification>
107
85
 
108
86
  <answer_validation>
@@ -202,57 +180,11 @@ Se "Cancelar": Sair do workflow.
202
180
  </step>
203
181
 
204
182
  <step name="load_prior_context">
205
- Ler contexto de projeto e de fases anteriores para evitar re-perguntar questões decididas e manter consistência.
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
183
+ 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).
219
184
 
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")
185
+ Construir contexto interno `<prior_decisions>` com seções "Nível de Projeto" + "Das Fases Anteriores".
230
186
 
231
- **Passo 3: Construir contexto interno `<prior_decisions>`**
232
-
233
- Estruturar as informações extraídas:
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.
187
+ **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
188
  </step>
257
189
 
258
190
  <step name="cross_reference_todos">
@@ -304,38 +236,11 @@ Varredura leve do código existente para informar identificação de áreas cinz
304
236
  ls .planning/codebase/*.md 2>/dev/null || true
305
237
  ```
306
238
 
307
- **Se mapas de codebase existirem:** Ler os mais relevantes (CONVENTIONS.md, STRUCTURE.md, STACK.md com base no tipo de fase). Extrair:
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
- ```
327
-
328
- Ler os 3-5 arquivos mais relevantes para entender padrões existentes.
329
-
330
- **Passo 3: Construir codebase_context interno**
239
+ **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.
331
240
 
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
241
+ **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.
337
242
 
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.
243
+ 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 — sessão atual.
339
244
  </step>
340
245
 
341
246
  <step name="analyze_phase">
@@ -365,30 +270,11 @@ Analisar a fase para identificar áreas cinzentas que valem a discussão. **Usar
365
270
 
366
271
  **Detecção de Modo Advisor:**
367
272
 
368
- Verificar se o modo advisor deve ativar:
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
273
+ `ADVISOR_MODE = exists("./.claude/framework/USER-PROFILE.md")`. Se false, pular todos os passos advisor workflow conversacional inalterado.
380
274
 
381
- Mapear para tier de calibração:
382
- - conservative OU thorough-evaluator → full_maturity
383
- - opinionated → minimal_decisive
384
- - pragmatic-fast OU qualquer outro valor OU vazio → standard
275
+ 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
276
 
386
- 3. Resolver modelo para agentes advisor:
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.
277
+ `ADVISOR_MODEL=$(node "./.claude/framework/bin/tools.cjs" resolve-model advisor-researcher --raw)`
392
278
 
393
279
  **Produzir sua análise internamente, então apresentar ao usuário.**
394
280
 
@@ -453,31 +339,10 @@ Vamos clarificar COMO implementar isso.
453
339
 
454
340
  **NÃO incluir opção "pular" ou "você decide".** O usuário executou este comando para discutir — dar escolhas reais.
455
341
 
456
- **Exemplos por domínio (com contexto de código):**
457
-
458
- Para "Feed de Posts" (funcionalidade visual):
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
- ```
342
+ **Exemplos por domínio:**
343
+ - Feed de Posts: layout (cards/lista/timeline), carregamento (infinito/paginação), ordenação, metadados
344
+ - Backup CLI: output (JSON/tabela/texto), flags (curtas/longas), progress (silencioso/bar/verbose), recovery (fail-fast/retry)
345
+ - Foto biblioteca: agrupamento (data/local/face/evento), duplicatas (melhor/todos/prompt), nomenclatura, pastas
481
346
 
482
347
  Continuar para discuss_areas com áreas selecionadas (ou advisor_research se ADVISOR_MODE for true).
483
348
  </step>
@@ -572,65 +437,14 @@ Rastrear ideias adiadas internamente.
572
437
 
573
438
  Para cada área selecionada, conduzir um loop de discussão focado.
574
439
 
575
- **Modo pesquisa-antes-das-perguntas:** Verificar se `workflow.research_before_questions` está habilitado na config (do contexto init ou `.planning/config.json`). Quando habilitado, antes de apresentar perguntas para cada área:
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
- ```
440
+ **Modos opcionais (lidos de config + args):**
624
441
 
625
- Isso ao usuário contexto para tomar decisões informadas sem prompts extras. Quando `--analyze` estiver ausente, apresentar perguntas diretamente como antes.
626
- - Aceitar `--batch`, `--batch=N`, ou `--batch N`
627
- - Padrão de 4 perguntas por batch quando nenhum número é fornecido
628
- - Limitar tamanhos explícitos a 2-5 para que um batch permaneça respondível
629
- - Se `--batch` estiver ausente, manter o fluxo existente de uma pergunta por vez
442
+ - **`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."
443
+ - **`--text` ou `workflow.text_mode: true`** substitui TODOS AskUserQuestion por listas numeradas em texto simples (necessário em sessões remotas Claude Code `/rc`).
444
+ - **`--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.
445
+ - **`--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
446
 
631
- **Filosofia:** permanecer adaptativo, mas deixar o usuário escolher o ritmo.
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
447
+ **Filosofia:** adaptativo, usuário escolhe o ritmo. Default: 4 turnos de pergunta única, depois verifica continuar. `--batch`: 1 turno agrupado, depois verifica.
634
448
 
635
449
  Cada resposta (ou conjunto de respostas, no modo batch) deve revelar a próxima pergunta ou próximo batch.
636
450
 
@@ -695,37 +509,13 @@ Após todas as áreas serem auto-resolvidas, pular o prompt "Explorar mais área
695
509
  - Loop: discutir novas áreas, então solicitar novamente
696
510
  - Se "Estou pronto para o contexto": Prosseguir para write_context
697
511
 
698
- **Acumulação de ref canônica durante a discussão:**
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
512
+ **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
513
 
704
- Esses docs referenciados pelo usuário são frequentemente MAIS importantes do que refs do ROADMAP.md porque representam docs que o usuário especificamente quer que agentes downstream sigam. Nunca os perder.
514
+ **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
515
 
706
- **Design de perguntas:**
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.
516
+ **Expansão de escopo:** ver `<scope_guardrail>` acima — anote como Ideia Adiada, retorne ao tópico.
710
517
 
711
- **Tratamento de expansão de escopo:**
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`.
518
+ **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
519
  </step>
730
520
 
731
521
  <step name="write_context">
@@ -959,74 +749,19 @@ node "./.claude/framework/bin/tools.cjs" commit "docs(state): record phase ${PHA
959
749
  </step>
960
750
 
961
751
  <step name="auto_advance">
962
- Verificar gatilho de avanço automático:
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
- ```
752
+ **Detecção:** flag `--auto` em $ARGUMENTS, OR `workflow._auto_chain_active=true`, OR `workflow.auto_advance=true`.
981
753
 
982
- **Se flag `--auto` presente OU `AUTO_CHAIN` for true OU `AUTO_CFG` for true:**
754
+ **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
755
 
984
- Exibir banner:
985
- ```
986
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
987
- framework ► AVANÇANDO AUTOMATICAMENTE PARA PLANEJAMENTO
988
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
989
-
990
- Contexto capturado. Iniciando plan-phase...
991
- ```
756
+ **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
757
 
993
- Iniciar plan-phase usando a ferramenta Skill para evitar sessões Task aninhadas (que causam freezes de runtime devido ao aninhamento profundo de agentes — ver #686):
994
- ```
995
- Skill(skill="framework:planejar-fase", args="${PHASE} --auto ${WS}")
996
- ```
758
+ **Roteamento de retorno do plan-phase:**
759
+ - `FASE CONCLUÍDA` → cadeia completa. Próximo: `/discutir-fase ${NEXT_PHASE} --auto ${WS}` (após `/clear`)
760
+ - `PLANEJAMENTO CONCLUÍDO` → execução parou. Continuar: `/executar-fase ${PHASE} ${WS}`
761
+ - `PLANEJAMENTO INCONCLUSIVO / CHECKPOINT` → parou. Continuar: `/planejar-fase ${PHASE} ${WS}`
762
+ - `LACUNAS ENCONTRADAS` → parou. Continuar: `/planejar-fase ${PHASE} --gaps ${WS}`
997
763
 
998
- Isso mantém a cadeia de avanço automático plana — discutir, planejar e executar todos rodam no mesmo nível de aninhamento em vez de criar agentes Task cada vez mais profundos.
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).
764
+ **Quando inativo:** rotear pra `confirm_creation` (comportamento manual existente).
1030
765
  </step>
1031
766
 
1032
767
  </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** (framework) cria planos hierárquicos de projeto otimizados para desenvolvimento ágil solo com Claude Code.
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