planner
Create structured implementation plans for autonomous TDD development.
Skill by petemcw
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/petemcw-planner
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/planner
What's inside
- Skill name
planner- Description
- Create structured implementation plans for autonomous TDD development. Use for new features or multi-step, multi-file changes, including asks like "let's build", "help me build", "I want an app that", "a system for", or "users should be able to X, Y, Z". Not for running an existing plan (use `/farseer:orchestrate`), quick bug fixes, single-line changes, questions, or documentation.
- License
- MIT
- Instructions
- 589 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- body: 589 lines (spec recommends under 500)
Files (2)
- SKILL.md
- openai.yml · agents/
SKILL.md (first lines)
# Planner
Transform feature requests into structured plans with task breakdowns, dependencies, and TDD requirements for parallel autonomous execution.
**All multi-sentence output for user presentation** should trigger the Skill using `/farseer:humanize` to give a more human voice to the text.
## Glossary
<glossary>
@.farseer/glossary.md
</glossary>
## Project Architecture
<architecture>
@.farseer/architecture.md
</architecture>
## Project Context
Agents spawned by this skill read the project's context files themselves. Before the first spawn, resolve the project root once:
```bash
"{skill-base-dir}/../../hooks/resolve-project-dir.sh"
```
Build the list from the printed path (call it `$PROJECT_DIR`, and write it literally into later commands). Include each file **only if it exists**:
```bash
for f in glossary.md architecture.md code-standards.md; do
if [ -f "$PROJECT_DIR/.farseer/$f" ]; then printf '%s\n' "$PROJECT_DIR/.farseer/$f"; fi
done
```
Pass it to every agent as:
```markdown
## Project Context
Read the files below that bear on your job:
{the list, one absolute path per line}
```
**Never paste or summarize these files' contents into a prompt.** The agent reads the originals.
## Execution Flow
### Phase 0: Pre-plan hook
Run this once, at the very start, before Phase 1 discovery.
**Run the `pre-plan` hook.**
Run the discovery script — never enumerate agent files by hand:
```bash
"{skill-base-dir}/../../hooks/discover-hooks.sh" --hook=pre-plan
```
`{skill-base-dir}` is the **`Base directory for this skill`** value stated when this skill loaded. `${CLAUDE_PLUGIN_ROOT}` is not available in a skill's Bash calls.
- **Exit 0, empty stdout** → empty hook. This is the default. Return immediately: print nothing, spawn nothing, say nothing about the hook at all, and proceed to Phase 1. Do **not** narrate that the script returned no agents — that is the narration `HOOKS.md` forbids.
- **Exit 0, output** → **print the output verbatim** as the resolved agent order, then spawn each listed agent in order per its `mode`, with the Agent tool and `subagent_type` chosen by the row's `origin`: `farseer:{agent-name}` for `plugin`, `{agent-name}` for `local`.
- **Any non-zero exit** → **stop**. Surface the script's stderr verbatim and do not continue planning. Exit 3 means an agent file declares an invalid `phase` or `mode`; exit 4 means enrollment drifted. Neither is an empty hook. If the script is missing or not executable, that is also a hard stop — there is no fallback, and you must not reconstruct the routine by hand.
**IMPORTANT — no plan name exists yet.** The `pre-plan` hook fires _before_ Phase 1 discovery. The plan name and plan directory are not created until Phase 3, so there is **no plan name to pass**. Each `pre-plan` agent receives only:
1. The raw feature request (the user's verbatim ask).
2. The [Project Context](#project-context) list.
Do **not** attempt to pass a plan name or plan directory to a `pre-plan` agent — neither exists yet. The `pre-plan` hook is thin by design (policy gate / house-context injection).
### Phase 1: Discovery & Assumption Brainstorm
Approach this phase like a solution architect meeting with a client to flush out scope and requirements. Your job is not to ask everything — it's to think hard about the shape of the solution before asking grounded questions. Find the integration points, then enumerate the design axes the user probably hasn't thought about.
If a question can be answered by exploring the codebase, explore the codebase instead.
**Quick scope check first.** If the ask already specifies data model, scope boundaries, and integration points (e.g., "Add an `email_verified_at` column to users and a `SendVerificationEmail` job"), do a brief existence-check (do the named files/models exist?) and skip ahead to Phase 2 — the brainstorm below is for under-specified asks.
**1. Codebase discovery**
Read files specifically related to the ask. Architecture context is already loaded via the `<architecture>` block at the top of this skill — do not re-read `.farseer/architecture.md`. Instead:
- Use the terms in the `<glossary>` block (already loaded; do not re-read it) for task names, test names and issue titles. If a concept you need is missing, propose it to the user as a new entry rather than inventing a synonym.
- Read any `.farseer/adr/*.md` files for existing architectural decisions, especially before planning changes to a business-critical path listed in `architecture.md`. If the plan contradicts an ADR, say so explicitly rather than silently overriding it.
- Glob for domain-related files (e.g., for "track books", look for `book*`, `*Book*`, library/reading-list files)
- Read existing models, controllers, or components that overlap with the ask
- Note existing patterns the new feature must conform to or extend
- Identify what's already built vs. greenfield
#### Code Mining Sources (scan entries, expand along call chains)
For every behavioral assertion you encounter — regardless of whether it looks like an "API contract", a "business rule", a "calculation", or a "state transition" — capture it. Sources include:
- **Public function signatures**: input/output types, error conditions, side effects
- **Service-layer conditionals**: `if`/guard clauses that throw or return early based on domain state
- **Status transition code**: every path that changes an entity's status field
- **Validation logic**: beyond schema — domain-level validation like "start date before end date"
- **Calculation functions**: pure computations with domain inputs
- **Authorization checks**: role-based gates, ownership checks, rate limiters
- **Assert statements and database constraints**: invariants the code guarantees
- **Event emissions and side effects**: what happens after a behavior completes
- **Saga / compensating actions**: rollback logic when multi-step processes fail
**Do not skip a behavior because it doesn't fit a category.** If the code enforces something, it goes in the spec.
**2. Permutation & assumption brainstorm**
For each noun and verb in the ask, enumerate plausible interpretations. Then enumerate the **hidden axes** — design decisions the user almost certainly hasn't specified but the implementer needs to know. Surface the non-obvious ones a senior engineer would catch and a junior would miss.
Focus on permutations that meaningfully change **scope, data model, or architecture**. Avoid minutiae (button colors, field naming, trivial config defaults).
Example for "track books I'm reading":
- **Book schema**: title only? +author/ISBN/cover/genre/pages/publication date?
- **List structure**: one global list, or multiple states ("want to read", "reading", "finished")?
- **"Finished" semantics**: boolean state, dated event, or reversible?From petemcw/farseer, MIT.
More from petemcw/farseer
- 0.570score
prototype
petemcw
Build a throwaway but polished prototype that answers a design question.
SkillAFreshness: AClaude Code +9 - 0.570score
git-guardrails
petemcw
Set up Claude Code hooks to block dangerous Git commands (push, reset --hard, clean, branch -D, etc.) before they execute.
SkillAFreshness: AClaude Code +9 - 0.570score
illustrations
petemcw
Generate hand-drawn, Xiaohei-style in-article illustrations, or a shot list of where an article needs them.
SkillAFreshness: AClaude Code +9 - 0.567score
architecture-decision-records
petemcw
Capture architectural decisions made during coding sessions as structured ADRs.
SkillAFreshness: AClaude Code +9 - 0.567score
triage
petemcw
Move issues through a state machine of issue roles, categorize, verify, interview if needed, and write agent-ready briefs.
SkillAFreshness: AClaude Code +9 - 0.565score
interviewer
petemcw
Question the user relentlessly about a plan, decision, or an idea to uncover hidden assumptions, risks, and edge cases.
SkillAFreshness: AClaude Code +9 - 0.565score
repo-setup
petemcw
One-time interactive setup to configure a repository for autonomous development.
SkillAFreshness: AClaude Code +9 - 0.561score
farseer
petemcw
Plan a new project or a chunk of work too big for one agent session as a shared map of decision tickets on your issue tracker, then resolve them one at a time…
SkillAFreshness: AClaude Code +9 - 0.558score
humanize
petemcw
Cut out AI tells from any writing.
SkillAFreshness: AClaude Code +9 - 0.555score
orchestrate
petemcw
Execute implementation plans with parallel TDD workers.
SkillAFreshness: AClaude Code +9 - 0.544score
domain-modeling
petemcw
Build and sharpen a project's domain model.
SkillAFreshness: AClaude Code +9 - 0.538score
teach
petemcw
Teach the user a new skill or concept, within this workspace.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 15, 2026 (14 days ago)
- Last release
- Oct 15, 2026 (14 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/petemcw/farseer
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from petemcw
- 0.570score
illustrations
petemcw
Generate hand-drawn, Xiaohei-style in-article illustrations, or a shot list of where an article needs them.
SkillAFreshness: AClaude Code +9 - 0.570score
prototype
petemcw
Build a throwaway but polished prototype that answers a design question.
SkillAFreshness: AClaude Code +9 - 0.570score
git-guardrails
petemcw
Set up Claude Code hooks to block dangerous Git commands (push, reset --hard, clean, branch -D, etc.) before they execute.
SkillAFreshness: AClaude Code +9 - 0.567score
triage
petemcw
Move issues through a state machine of issue roles, categorize, verify, interview if needed, and write agent-ready briefs.
SkillAFreshness: AClaude Code +9 - 0.567score
architecture-decision-records
petemcw
Capture architectural decisions made during coding sessions as structured ADRs.
SkillAFreshness: AClaude Code +9 - 0.565score
repo-setup
petemcw
One-time interactive setup to configure a repository for autonomous development.
SkillAFreshness: AClaude Code +9
Cite this page
planner skill. Agent Mart. https://agentmart.dev/skills/petemcw-planner (last updated 2026-10-24)