/hook-plan
plans one business hook
Ground a named hook
<ground> holds @*.hook.ts, *-hook-plan.md, or collection/slug
Ground a hook file
A seen hook file is the operand. At most five Read calls. Zero reads are legal.
Ground a hook-plan
A seen hook-plan file is the operand for patch, spawn, or handoff-critic.
Create hook from an existing hook
Prime <prime> will understand the hook and expect a follow-up task inspired by the hook referenced
Hook from hook stacked
Prime <prime> will understand the hook while <ground> will explain the new plan
No ground
The first message does not name a job. It does not name a type. Empty <ground> is success.
Examples
Thought1s
The first message named a hook path. Pass 0 is local intake. Do not call MCP.
Fill seen and kind. Then ask which live job this run is.
Worked for 12s
What job is this run?
What job is this run?
Skip does not bind a job. Pass 2 starts only when job is a Pass 2 job.
Thought4s
spawn is a Pass 2 job. Call MCP. Bind one LogicHookPattern. Map execute() to Pattern grammar.
The primed hook is a reference only. Write the new hook-plan. Do not emit hook source. Do not change import-bill-of-materials.
Worked for 1m 40s
Wrote hook-plan.md. Job spawn.
Pattern, evidence ledger, decorator fields, execute() phases, result contract, replay, transaction, error policy, downstream calls, open questions.
Run /hook-plan-critic.
hook-plan.md
Source: MCP after job `spawn`. Primed `import-bill-of-materials`. Grain: one new hook. No `*.hook.ts`.
The hook-plan file holds all of:
- Pattern decision and rejection of narrower or wrong patterns
- Evidence ledger (
VERIFIED/INFERRED/UNKNOWN) - Decorator fields (
idempotent, concurrency, timeout) with justification execute()phase list matching Pattern grammar- Result contract (
ok+data) - Replay, transaction, error policy
- Downstream calls
- Open questions
The primed hook is a reference. It is not the artifact to change.
Pick a job
The skill starts in Pass 0. It shows an <intake> block. Then it asks which live job this run is.
The question box shows only live jobs. Do not add jobs outside the catalog.
This example grounded a hook-plan and primed a hook file. Live jobs are the ones in the question. spawn is selected.
| Pass 0 | live |
|---|---|
seen=none | spawn, handoff-discovery |
kind=hook.ts or named collection/slug | impact, patch, spawn, retire, explain, handoff-logic-plan |
kind=hook-plan.md | patch, spawn, handoff-critic |
| job | Pass | Prepares |
|---|---|---|
impact | 2 | a user story that may have upstream/downstream blast |
patch | 2 | a change to the seen hook |
spawn | 2 | a new hook |
retire | 2 | unwiring or deleting the seen hook |
explain | 1 terminal | read the seen stream with no change planned |
handoff-logic-plan | 1 terminal | plan many documents and hooks in order |
handoff-discovery | 1 terminal | find facts first |
handoff-critic | 1 terminal | audit the hook-plan that exists |
Several hooks or order-of-work → handoff-logic-plan.
patch / explain: understand the seen execute() stream only. Do not traverse callee hooks in that step. Extract, split, and reclassify are flavors of patch, not extra jobs.
spawn: a seen hook is a reference only. Do not treat it as the artifact to change. A primed hook is that reference.
If the job you want is missing, change <ground> or <prime> and send again.
Next steps
When the hook-plan file exists, run /hook-plan-critic.