Skip to main content

/hook-plan-critic

Criticize a hook-plan. Do not write hooks. Do not turn REVISE into a new plan unless asked.

Outcome

You hold a verdict: PASS, REVISE, or REJECT. The hook-plan file is unchanged.

Assumptions

  • A {collection}-{slug}-hook-plan.md exists.
  • Skill file: .agents/skills/hook-plan-critic/SKILL.md
  • MCP tools are visible.

Non-goals

  • Do not write hooks.
  • Do not implement.
  • Do not write the next artifact unless the user asks for a new plan.

Contract

The critic is read-only. It audits redundancy, overlap, blast radius, style, and Pattern grammar.

Criticizing a hook-plan is scope=IN.

Re-query hook_graph for the planned path and callees.

Syntax

/hook-plan-critic
Ground: @payment-log-process-bank-import-hook-plan.md

If the slash name does not start the skill, put @.agents/skills/hook-plan-critic/SKILL.md on line 1.

Expected result: Findings with plan section and MCP evidence. Then PASS, REVISE, or REJECT.

Fields

Rules to load

  1. .agents/rules/mcp.md
  2. .agents/rules/logic/thinking.md
  3. .agents/rules/hook-utils-mcp.md
  4. .agents/rules/hook-utils-forbidden-constraints.md
  5. .agents/rules/hook-utils-patterns.md
  6. The selected authoring specialist from .agents/rules/hook-utils-patterns.md
  7. .agents/rules/hook/style-reviewer.md
  8. .agents/skills/hook-code-style/SKILL.md
  9. .agents/rules/hook/coder.md — path-load. Do not recopy.

Gate plan claims against coder BIND and CHECK: one LogicHookPattern, Pattern grammar order, ok + data, no invented identities.

The coder rule does not load thinking.md. This skill does.

Checklist

  • Pattern is exact. hook is last resort with a rejection matrix.
  • execute() order matches Pattern grammar.
  • Identity forbiddens of the pattern hold. Example: no persist on read-only patterns.
  • Shared forbiddens hold. No invented names. No unbounded .all(). No swallowed errors.
  • Redundancy: an existing hook already does this job.
  • Overlap: two planned writes to the same document, or competing unique keys.
  • Blast radius: upstream callers and downstream effects named. 🟢 / 🟡 / 🔴 honest.
  • Style: one class, one execute(), ok + data, structured errors, interface keys.
  • Unknowns stay questions. They are not guessed fields.

Verdict

VerdictWhen
REJECTPattern wrong, grammar order violated, or required evidence UNKNOWN
REVISEIncomplete gates, overlap, or understated blast without a blocker
PASSNo blocker remains

Cite plan section and MCP evidence.

Constraints

  • If the verdict is not PASS, revise the hook-plan. Do not call hook-coder.
  • After PASS, implement with @.agents/rules/hook/coder.md. That rule is not a skill.

Errors

ProblemCauseAction
Tools missingMCP not registeredStop. Fix Setup.
REJECT on patternWrong or generic LogicHookPatternReturn to /hook-plan
REJECT on grammarexecute() phases reorder the patternBind Pattern grammar order
Implement without PASSCritic skippedRe-run this skill. Do not write .ts