From claude-hammer
Executes implementation plans with a worker→validator→critic loop plus security/QA review. Any failure triggers rework. Blocks turn completion until all tasks pass.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-hammer:hammerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Strikes until the metal holds. Every task runs a **worker → validator → implementation-critic** cycle; the whole run ends with an E2E gate and a **security + QA review panel**. Any FAIL at any layer sends the work back — the Stop hook will not let the turn end while the loop is open.
Strikes until the metal holds. Every task runs a worker → validator → implementation-critic cycle; the whole run ends with an E2E gate and a security + QA review panel. Any FAIL at any layer sends the work back — the Stop hook will not let the turn end while the loop is open.
The main agent orchestrates; it never implements or judges inline. Workers build, validators judge the contract, critics hunt fakery, reviewers attack the result. Each role is a separate subagent with only the information its role requires.
All judges answer fixed binary checklists (YES/NO per question, verdict = AND) — never holistic impressions. If the runtime does not expose implementation-critic / security-reviewer / qa-reviewer as named agent types, read the definition from this plugin's agents/<name>.md and dispatch a general-purpose subagent with that file's body as its instructions.
forge/blueprint.pass..glm-hammer/evidence/ and ends its final message with EVIDENCE_RECORDED: <path>. The Stop hook cross-checks state claims against these receipts — a completion claim without its receipt on disk blocks the turn:
evidence/tasks/task-<i>/validator.md (must contain VERDICT: PASS)evidence/tasks/task-<i>/critic.md (must contain VERDICT: APPROVE)evidence/e2e.mdevidence/reviews/security.md / evidence/reviews/qa.md (must contain VERDICT: PASS)
Before advancing state, confirm the receipt exists and matches the reported verdict. <i> is the plan's task number. Receipts are also checked for substance (a CHECKS: block + real content, not a bare verdict line) and must be dispatch-backed: the judge's dispatch prompt must contain its evidence path — the hooks record every subagent dispatch and reject receipts no judge was pointed at. Writing a judge's receipt yourself therefore does not work..glm-hammer/state.json current at every ⟨state⟩ checkpoint.{
"phase": "hammer",
"status": "executing | review | awaiting-user | done",
"plan": "docs/glm-hammer/plans/YYYY-MM-DD-<feature>.md",
"tasks": { "total": 0, "completed": 0, "current": "" },
"reviews": { "security": "pending", "qa": "pending" },
"stopBlocks": 0
}
tasks.completed only when a task passes both validator and critic.status: "awaiting-user" only for genuine escalations (3-strike failures, plan deadlocks) — this is the sole legitimate way to pause the loop.status: "done" only when tasks are complete AND both reviews are pass.Read the plan (including any ## Plan Amendment Log). Verify dependencies, file paths, criteria decidability. Build the task DAG; identify parallel groups.
For each task (parallel groups dispatched concurrently):
1a. Compliance check — predecessor outputs exist, no in-flight task shares files. Mismatch → resolve before dispatching.
1b. Worker (subagent). Prompt = the task verbatim from the plan. The worker follows steps, adapts minimally when a step contradicts reality (stale anchor, renamed symbol), runs each step's verification, and reports deviations. It stops and reports instead of adapting when a fix would change an interface another task consumes, touch files outside its list, or alter a criterion.
1c. Validator (subagent, information-isolated). Use this fixed template, filling fields verbatim from the plan — never paraphrase, never mention what the worker did:
You are an independent validator with no knowledge of how this task was
implemented. Judge whether the codebase currently meets the goal below by
reading files and running tests yourself.
## Task Goal
{TASK_GOAL — verbatim from plan}
## Acceptance Criteria
{CRITERIA — verbatim from plan}
## Files To Inspect
{FILES — verbatim from plan}
## Test Commands
{COMMANDS — verbatim from plan}
Treat each criterion as an ISOLATED yes/no question: "is this criterion
met right now?" — answer PASS or FAIL per criterion from what you read
and ran, never a holistic impression. Verdict = AND of all criteria. No
partial credit. If FAIL, state exactly which criteria failed, with file
paths — describe, don't fix.
Write your full report to {EVIDENCE_PATH} (create parent directories):
a "CHECKS:" block listing every criterion with PASS|FAIL and one-line
evidence of what you ran or read, then the line "VERDICT: PASS" or
"VERDICT: FAIL". End your final message with:
EVIDENCE_RECORDED: {EVIDENCE_PATH}
Fill {EVIDENCE_PATH} with .glm-hammer/evidence/tasks/task-<i>/validator.md.
1d. Implementation critic (subagent). After the validator passes, dispatch implementation-critic with the task's Goal, Files, and Criteria (verbatim from plan — still not the worker's output) plus its evidence path .glm-hammer/evidence/tasks/task-<i>/critic.md. The critic hunts what validators miss: stub bodies, hardcoded values shaped to pass the listed tests, swallowed errors, dead config, tests that assert nothing. Verdict APPROVE / REJECT with evidence, written to its receipt file.
1e. Verdict handling:
## Plan Amendment Log. A criterion may be corrected only if factually stale and only to verify the SAME outcome. Then fresh worker.After all tasks: run the plan's Verification Strategy command, then the full test suite. Save the raw output to .glm-hammer/evidence/e2e.md — the Stop hook requires this receipt. Failure = integration problem: diagnose → targeted fix via a worker → re-run (overwrite the receipt with the latest run). Two failed fix attempts → escalate. ⟨state: awaiting-user⟩
Dispatch in parallel, each receiving only the plan path, the diff scope (changed files list), and its evidence path (.glm-hammer/evidence/reviews/security.md / qa.md):
| Agent | Attack surface |
|---|---|
security-reviewer | Injection, authz/authn gaps, secrets, unsafe deserialization, path traversal, dependency risk in the changed code |
qa-reviewer | Behavior vs plan's success criteria, edge cases, error paths, regression risk, test adequacy |
Each returns PASS or FAIL with findings ranked by severity. ⟨state: reviews.security / reviews.qa⟩
| Anti-Pattern | Why It Fails |
|---|---|
| Main agent writing code or judging inline | Confirmation bias; defeats independent verification |
| Passing worker output/diff to validator or critic | Anchors the judge on the builder's framing |
| Paraphrasing plan content into the validator prompt | Leaks post-worker understanding; verbatim only |
| Weakening a criterion so a failing implementation passes | Reward hacking — the binary verdict exists to catch this |
| Retrying a worker against a plan defect | Burns strikes on an impossible task; triage first |
| Validator running the full suite per task | N redundant runs; regressions belong to the E2E gate, once |
| Re-running only the failed reviewer after fixes | A security fix can break behavior and vice versa; full panel |
Marking done in state while a review is fail | Falsified state; the hooks cross-check and the loop reopens |
| Advancing state on a verdict with no evidence receipt | A PASS you cannot show a receipt for did not happen; the Stop hook blocks it |
| Writing a judge's receipt file yourself | The receipt proves the judge ran; forging it defeats the audit trail |
Stopping mid-loop without awaiting-user escalation | The Stop hook bounces you back; escalate properly instead |
npx claudepluginhub tmdgusya/claude-hammer --plugin claude-hammerExecutes a plan via worker-validator-critic loop, then runs security/QA review gates. Use when a plan exists and implementation should run.
Executes implementation plans by dispatching builder agents per task with spec compliance and code quality reviews. Use for independent tasks or triggers like 'build this' or 'execute the plan'.
Loads a written implementation plan, reviews it critically, and executes tasks in dependency order with separate worker and validator subagents. Use when a plan document exists and you're ready to implement.