/hook-plan-critic
criticizes a hook-plan
It does not write hooks. It does not write a new plan from REVISE unless asked.
Ground a hook-plan
<ground> holds {collection}-{slug}-hook-plan.md. The hook-plan file stays unchanged.
Skill path
If the slash name does not start the skill, put the skill file on line 1.
Examples
Thought1s
The critic is read-only. Re-query hook_graph for the planned path and callees.
Do not trust the plan graph. Do not rewrite the plan. Do not implement.
Gate claims against coder BIND and CHECK: one LogicHookPattern, Pattern grammar order, ok + data, no invented identities.
Worked for 1m 12s
Findings with plan section and MCP evidence.
Then a verdict: PASS, REVISE, or REJECT.
payment-log-process-bank-import-hook-plan.md
Source: live MCP `hook_graph`. The hook-plan file is unchanged.
Cite plan section and MCP evidence. Do not rewrite the plan. Do not write .ts.
| Check | Result |
|---|---|
| Pattern | Exact LogicHookPattern. hook is last resort with a rejection matrix. |
| Grammar | execute() order matches Pattern grammar. |
| Identity forbiddens | Pattern identity forbiddens hold. Example: no persist on read-only patterns. |
| Shared forbiddens | No invented names. No unbounded .all(). No swallowed errors. |
| Redundancy | An existing hook does not already do this job. |
| Overlap | No two planned writes to the same document. No competing unique keys. |
| Blast radius | Upstream callers and downstream effects named. 🟢 / 🟡 / 🔴 honest. |
| Style | One class, one execute(), ok + data, structured errors, interface keys. |
| Unknowns | Unknowns stay questions. They are not guessed fields. |
Read the verdict
The critic is read-only. Criticizing a hook-plan is scope=IN.
If MCP tools are missing, stop. Fix Setup.
| Verdict | When |
|---|---|
REJECT | Pattern wrong, grammar order violated, or required evidence UNKNOWN |
REVISE | Incomplete gates, overlap, or understated blast without a blocker |
PASS | No blocker remains |
If the verdict is not PASS, revise the hook-plan. Do not call /hook-code.
After PASS, implement with /hook-code.
| Problem | Cause | Action |
|---|---|---|
| Tools missing | MCP not registered | Stop. Fix Setup. |
REJECT on pattern | Wrong or generic LogicHookPattern | Return to /hook-plan |
REJECT on grammar | execute() phases reorder the pattern | Bind Pattern grammar order |
Implement without PASS | Critic skipped | Re-run this skill. Do not write .ts |
Next steps
When /hook-code writes *.hook.ts, run /hook-critic.