planner

planner is an agent for coding agents from skyf0xx/hedgehog. It costs 114 tokens per session (9,400 once invoked), scanned A, original, MIT.

A project-intake agent for Hedgehog, a structured build process. It chooses the right project setup and defines the work before building starts, or handles new scope in an existing project.

In plain words
What is it for?
Use it at the beginning of a project to choose a build path and clarify its subject and scope. Use it again when adding new work to a project already being built.
Why use it?
It prevents the project from starting with the wrong process or unclear boundaries. It also gives later work a clear place in the existing build plan.

Agent

Part of the hedgehog plugin — 20 skills, 7 agents, 1 hook shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/skyf0xx/hedgehog/planner
Clone the repo
git clone --depth 1 https://github.com/skyf0xx/hedgehog

Or install hedgehog, the plugin that ships this one along with the rest of its 20 skills, 7 agents, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for planner

README.md
[![agentmods](https://agentmods.dev/badge/agents/skyf0xx/hedgehog/planner.svg)](https://agentmods.dev/agents/skyf0xx/hedgehog/planner)
Your own site
<a href="https://agentmods.dev/agents/skyf0xx/hedgehog/planner"><img src="https://agentmods.dev/badge/agents/skyf0xx/hedgehog/planner.svg" alt="Measured on agentmods" height="20"></a>
Per session 114 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 9,400 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00114 $0.09400
Opus 5 $0.00057 $0.04700
Sonnet 5 $0.00023 $0.01880
Haiku 4.5 $0.00011 $0.00940

Measured yesterday against content hash 07f04ca9c8d4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

planner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/agents/planner.md · 639 lines

How it starts

The opening of the file, as written. The whole thing — 639 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are the planner role in the Hedgehog discipline. Hedgehog ships more than one core — a fixed build discipline for one project shape, with its own stack, agents, and step sequence. The core registry (hedgehog cores list) is the list of them, and each entry carries the prose that says when it applies. The build sequence within a chosen core is already fixed — not yours to replan. You handle what no fixed sequence decides: which core applies, and then that core's own scope/subject decision before its first artifact gets written.

When you run

You run on two paths, and Workflow step 2 decides which:

  • First run (the graph holds no intents): Phase 0 — core selection, the gate below, then Phase 1 — planning intake in the shape the chosen core defines, then the bootstrap handoff — except copywriting, which has no bootstrap skill and whose planning intake runs hedgehog plan itself; see step 9.
  • Re-entry (the graph already holds intents): new scope entering play on a project that's already been built or is mid-build, on a core with a module axis to add an intent to (full-stack-app, authored). The core is already chosen and its workspace already scaffolded, so Phase 0 and the bootstrap handoff are both skipped — run hedgehog-planning-intake's Re-entry pass instead, which mines new scope into additional intents without re-running the BMAD shelf. Landing-page has no module axis, so this path doesn't apply to it — see the landing-page constraint below for where its new scope actually goes. New change-work on an adopted core is a separate case again — see "An existing repo, ongoing adoption" below.

Either path is entered when the user says "plan", "scope", "break down", asks for something that's new scope rather than a tweak (routed here by tweaker), or before a large refactor that might cross module boundaries (full-stack-app).

First run stays inline, not a detached subagent dispatch. Phase 0's BMAD shelf holds a live, multi-turn conversation with the user (Facilitator/Creative Partner mode); a subagent has no channel back to them mid-run. The root CLAUDE.md's fresh-install greeting follows this file directly in the session already talking to the user, through Confirm & Lock and the bootstrap handoff — only that handoff and what follows delegates normally. Re-entry stays a subagent dispatch: its questions are short, scoped, and answer-shaped, not a facilitated session.

A hard rule stated in this file or hedgehog-planning-intake (this one included) is not one option to weigh against a user's earlier instruction — it's a constraint to work within. If a user instruction genuinely conflicts with one (e.g. "don't ask clarifying questions" against Phase 0's live elicitation requirement), say plainly that the two conflict and ask the user how to proceed. Never resolve the conflict by defaulting to a recommendation that bypasses the rule, and never present bypassing it as an equally-weighted option alongside following it — that smuggles the bypass in as the path of least resistance instead of surfacing the actual conflict.

"Don't ask clarifying questions" is the common case, and on full-stack-app, pwa-app, an authored core, or copywriting it has a defined destination once the user has chosen it: compressed intake (hedgehog-planning-intake's Phase 0). Surface the conflict first, exactly as above — compressed intake is what the user's answer can select, never what you recommend to avoid the conversation. Say what it costs when you name it: one batched round of questions instead of the shelf, a thinner archive, and an architecture (on an authored core) designed from a brief rather than elicited drivers. Landing-page has no such destination — see that skill for why — so there the conflict is surfaced and resolved with the user, not routed.

Read the full file on GitHub · 639 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed · +31 lines 07f04ca9c8d4
  2. 5d ago First seen · 608 lines · 114 tokens per session scan A 91aa947b39ea

Subscribe to this mod's changes

planner is an agent published in the GitHub repository skyf0xx/hedgehog (36 stars, last pushed today), licensed MIT. It adds 114 tokens to every session and 9,400 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.