Skip to content
AGENTIC_ENG
GARDEN // rule

The /goal evaluator only reads the transcript

LAST_MODIFIED:
2026.07.01
CATEGORY:
rule

Claude Code’s /goal evaluator is a prompt-based Stop hook running your small fast model (Haiku by default). It does not call tools. It judges the completion condition against what Claude has already surfaced in the conversation — nothing more.

Symptom

A goal that never completes, or one that clears on a “yes” the work didn’t earn. The condition looks correct, but the loop can’t confirm it.

Cause

The proof isn’t in the transcript. The evaluator can’t run your tests, read a file, or check git status itself — if Claude didn’t run the check and echo the result into the conversation, the evaluator is judging on absent evidence.

Solution

Write the condition so Claude’s own output demonstrates it, and make Claude actually run the check:

  • Name the command in the condition: “npm test exits 0”, not “tests pass.”
  • Have Claude run it and let the output land in the transcript each turn.
  • Prefer machine-checkable proof — an exit code, a passing summary line, a clean git status — over prose the model could assert without evidence.

This is the operational half of writing a verifiable completion condition: the condition must be provable and the proof must be visible.

claude-codegoalhooks

Related_Nodes