From first-plan
Enforces a strict PLAN-FIRST protocol (Discovery, Plan, Approval, Execution, Report) for Claude Code plugin commands. Loads on `/fp:*` commands or references to "first-plan". Blocks execution until human approval is granted.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fp:protocolThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Skill base obrigatória do plugin. Toda execução de comando `/fp:*` carrega esta skill.
Skill base obrigatória do plugin. Toda execução de comando /fp:* carrega esta skill.
Antes de escrever uma linha de código, entenda o projeto. O plugin existe pra forçar essa disciplina. Não improvisar, não impor padrões externos, não duplicar trabalho.
Discovery -> Plan -> Approval -> Execution -> Report
Fases bloqueantes. Cada uma só inicia quando a anterior estiver concluída e validada.
Disparada por /fp:init. Resultado: .first-plan/ populado.
Mapear:
Cada finding tem confidence: 0.0-1.0. Findings com confidence < 0.7 viram entradas em .first-plan/08-meta/questions.md.
Disparada por /fp:plan <feature>. Resultado: .first-plan/07-state/plans/<slug>.md.
Antes de escrever o plano:
.first-plan/09-features/ - a feature ja existe?.first-plan/07-state/in-flight.md - alguém ja esta fazendo?.first-plan/03-reuse/INDEX.md - o que reusar?O plano deve seguir o template em ${CLAUDE_PLUGIN_ROOT}/meta-templates/plan.md. Pausa pedindo aprovação humana ao final.
Estado: awaiting_approval em .first-plan/07-state/STATE.md.
Aguardar:
/fp:execute → prossegueNão executa nada antes da aprovação. Não há atalho.
Disparada por /fp:execute. Resultado: código modificado conforme plano + atualização do STATE.
Durante:
Após execução completa. Resultado: .first-plan/07-state/reports/<slug>.md.
Incluir:
Recomendar /fp:refresh para atualizar a camada.
Estas regras nascem do briefing original do projeto. Não negociar.
Antes de criar qualquer função, componente, hook, helper ou tipo, verificar .first-plan/03-reuse/INDEX.md. Se existir equivalente, usar. Criar do zero é exceção que exige justificativa explícita no plano.
Não impor "best practices" externas. Se o projeto faz feio mas consistente, seguir o feio. Refatoração não está no escopo a menos que solicitada.
Usar apenas o que ja está em go.mod / package.json / composer.json / etc. Adicionar lib exige justificativa explícita no plano e aprovação separada.
Se o projeto tem padrão estabelecido, seguir mesmo que voce ache que existe forma melhor. Sugestões de melhoria vão pra "fora do escopo" do report, nunca executadas no fluxo da feature.
Permitida apenas quando não há precedente (primeiro componente de um tipo no projeto, primeiro endpoint de um domínio). Sempre justificar no plano + report.
Comentários, mensagens de erro, docs, commits - tudo com acentuação correta.
Respeitar o nível de tipagem do projeto. Nada de any / interface{} / dynamic se o projeto é estrito.
Quando confidence < 0.7 em qualquer finding crítico para uma decisão:
08-meta/questions.md com hipóteses/fp:plan, listar as perguntas pendentes na seção "Riscos e ambiguidades" do planoTudo persiste em arquivos:
.first-plan/07-state/STATE.md - máquina de estado, phase atual.first-plan/07-state/plans/ - planos ativos.first-plan/08-meta/cache.json - hashes de arquivos para invalidaçãoAo reabrir o Claude Code, o entry point é STATE.md. Claude lê phase e age conforme.
Cross-references entre arquivos do .first-plan/ usam sintaxe Obsidian-compatible:
Veja [[02-conventions/errors]] para padrões de error handling.
Detalhes em [[08-meta/questions]].
Formato: [[secao/arquivo]] (sem extensão .md, sem prefixo de path).
Razão: permite navegação como graph no Obsidian/Logseq. No GitHub web os wikilinks aparecem como texto plano (limitação aceita).
Quando referenciar:
02-conventions/errors.md exemplifica ou conflita com 06-rationale/dont.md, usar wikilinkQuando NÃO usar:
[label](url).first-plan/) - usar path:line/etc/..., comandos) - texto diretoSe durante /fp:execute Claude perceber que:
Então: parar imediatamente, atualizar STATE.md para paused, reportar ao usuário com:
npx claudepluginhub vynazevedo/first-plan --plugin fpGenerates a detailed implementation plan for a feature, checking for duplicates against an existing feature index, identifying reusable components, and enforcing project conventions. Always pauses for human approval before execution.
Conducts interview-driven planning with 20-40 clarifying questions, 5-15 parallel Explore agents for codebase analysis, verbatim requirements capture, and plan validation. For new features, refactoring, architecture changes, migrations.
Creates specs and phased file-level implementation plans for features, bugs, refactors by researching codebase with search, graph queries, and context files.