goop-plan

goop-plan is a command for coding agents from hffmnnj/goopspec. It costs 11 tokens per session (908 once invoked), scanned A, original, MIT.

A command that turns an approved requirements document into a locked project specification and an executable work plan. It also checks whether the required discussion and research steps are complete before planning starts.

In plain words
What is it for?
Checking project readiness, recording project knowledge, deciding whether research is needed, and creating the specification and wave-based implementation plan.
Why use it?
It prevents implementation planning from beginning with missing requirements or skipped discovery work.

Command

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 commands/hffmnnj/goopspec/goop-plan
Clone the repo
git clone --depth 1 https://github.com/hffmnnj/goopspec

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 goop-plan

README.md
[![agentmods](https://agentmods.dev/badge/commands/hffmnnj/goopspec/goop-plan.svg)](https://agentmods.dev/commands/hffmnnj/goopspec/goop-plan)
Your own site
<a href="https://agentmods.dev/commands/hffmnnj/goopspec/goop-plan"><img src="https://agentmods.dev/badge/commands/hffmnnj/goopspec/goop-plan.svg" alt="Measured on agentmods" height="20"></a>
Per session 11 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 908 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.00011 $0.00908
Opus 5 $0.00005 $0.00454
Sonnet 5 $0.00002 $0.00182
Haiku 4.5 $0.00001 $0.00091

Measured 5d ago against content hash 49a799c09d5e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

goop-plan 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 5d ago.

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.

packages/opencode-plugin/commands/goop-plan.md · 84 lines

How it starts

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

/goop-plan

Turn the requirements document into a locked contract (SPEC.md) and an executable wave plan (BLUEPRINT.md).

Gate check

Call goop_state({ action: "get" }). If interviewComplete is not true or the requirements document does not exist — check via goop_read_db({ doc_type: "requirements" }) returning content (not a 'not found' message) — return BLOCKED with:

Run /goop-discuss first.

Research-first gate

Research-first gate: see agents/goop-orchestrator.md §Research-First Gate (Plan Phase) for the full procedure — dispatch rules, skip heuristic, fallback, mid-wave research, and sequencing. The orchestrator owns this gate; this command invokes it.

Load references

goop_reference({ name: "core-protocol" })
goop_reference({ name: "task-decomposition" })
goop_reference({ name: "phase-gates" })
goop_reference({ name: "pr-creation" })

Steps

  1. Read requirements via goop_read_db({ doc_types: ["requirements"] }), search memory, and create PROJECT_KNOWLEDGE_BASE.md if missing.
  2. Complete the Research-first gate above (or record the skip decision in ADL). Then spawn goop-planner with the discovery context, current depth, workflow isolation context, and the assembled ## Research Summary block.
  3. Review the draft SPEC.md and BLUEPRINT.md.

Validation-contract gate

Before wave decomposition is finalized, validate:

  • Every must-have maps to one or more tasks.
  • Every task maps to a must-have or an explicit enabler.
  • Out-of-scope, assumptions, and risks are captured.
  • The wave/task plan has 2–4 tasks per wave and clear verification steps (verified via goop_read_wave).
  • If atomic PRs enabled (REQUIREMENTS.md ## Atomic PR Strategy is Yes): every wave written via goop_write_wave must have pr_branch and pr_url populated.

If validation fails, send the planner back to fix gaps.

Lock the spec

Present a contract gate via the question tool (skipped when autopilot is active — see below):

  • Confirm and lock (Recommended)goop_state({ action: "lock-spec" }), then suggest /goop-execute.
  • Amend → Edit the draft and re-run the gate.
  • Cancel → Keep the spec unlocked.

Read the full file on GitHub · 84 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. 5d ago First seen · 84 lines · 11 tokens per session scan A 49a799c09d5e

Subscribe to this mod's changes

goop-plan is a command published in the GitHub repository hffmnnj/goopspec (46 stars, last pushed 24d ago), licensed MIT. It adds 11 tokens to every session and 908 once invoked, about $0.0001 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.