fp-plan/SKILL.md
Create plans and break them down into trackable fp issue hierarchies with dependencies. Activate when the user says "create a plan", "break down feature", "use fp", or "structure this work". Not for implementing tasks or reviewing code.
npx skillsauth add sanurb/skills fp-planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create plans and break them down into trackable fp issue hierarchies.
Activation guard: Only run when the user asks to plan, break down, or structure work. If the user says "use fp" without specifying a phase, ask: plan, implement, or review?
fp --version # Must be installed
fp tree # Must be initialized
If fp is not installed: curl -fsSL https://setup.fp.dev/install.sh | sh -s
If project is not initialized: fp init
In fp, a plan is an issue with a comprehensive description and child issues with dependencies:
Plan (Parent Issue)
├── Task 1 (Child) ─ no deps, can start immediately
├── Task 2 (Child) ─ depends on Task 1
└── Task 3 (Child) ─ depends on Task 1, Task 2
Typical depth: 2-3 levels. Typical task count: 3-8 per plan.
1. Gather input → user description, PRD, or spec
2. Create parent → fp issue create --title "..."
3. Break into tasks → fp issue create --parent <ID> --depends <IDs>
4. Verify with user → fp tree <ID>
Determine the source of the plan:
Where does the input come from?
├─ User describes feature in conversation → proceed to Step 2
├─ PRD exists (from prd-to-issues) → read references/import-from-prd.md
├─ Spec exists (from spec-planner) → extract goals and tasks from the spec
└─ User wants to think it through first → suggest running interviewing-plans or spec-planner first
If the request is vague or underspecified, suggest the user runs spec-planner or interviewing-plans first to sharpen requirements before creating issues.
fp issue create \
--title "Add user authentication system" \
--description "Goals, technical approach, and success criteria"
Write descriptions following references/task-descriptions.md.
For each task, create an issue with parent and dependencies:
fp issue create --title "Design data models" --parent <PLAN-ID>
fp issue create --title "Implement OAuth flow" --parent <PLAN-ID> --depends "<MODELS-ID>"
fp issue create --title "Add session management" --parent <PLAN-ID> --depends "<MODELS-ID>,<OAUTH-ID>"
fp issue create --title "Write tests" --parent <PLAN-ID> --depends "<SESSION-ID>"
Dependency modeling:
--depends)fp tree <PLAN-ID>
Present the tree. Ask: granularity right? Dependencies correct? Split or merge? Iterate until approved.
--parent linking it to the plan--depends — no implicit orderingfp tree output shown to user before plan is finalized| Skill | Relationship |
|-------|-------------|
| spec-planner | Run before fp-plan to sharpen vague requirements |
| interviewing-plans | Run before fp-plan to resolve design decisions |
| prd-to-issues | Import PRD vertical slices as fp issues — see import-from-prd.md |
| fp-implement | Next phase — pick up tasks created here |
| tdd | Tag tasks that need test-first approach in their description |
Read references/anti-patterns.md for what NOT to do.
| File | One Job | |------|---------| | task-descriptions.md | How to write clear task descriptions | | anti-patterns.md | Common mistakes to avoid | | import-from-prd.md | Bridge PRD issues into fp hierarchy |
development
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub, GitLab, fp, or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `fp-plan`, `fp-implement`, `fp-review`, `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.
development
Build a throwaway prototype to flush out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
tools
Control herdr (a terminal-native agent multiplexer) from inside it. Manage workspaces and tabs, split panes, spawn sibling agents, read pane output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1). Do not use outside herdr.
documentation
Compact the current conversation into a handoff document for another agent to pick up.