freeze command assigns one spec-freezer subagent to turn the raw task text into a verifiable, unambiguous specification stored at .agent/tasks/<TASK_ID>/spec.md. All downstream commands — build, evidence, verify, and fix — treat this file as the single source of truth for acceptance criteria.
Parent prompt
Copy this prompt verbatim when delegating to the spec-freezer subagent. Replace<TASK_ID> with the actual task identifier.
What the spec-freezer reads
Task artifacts
Task artifacts
.agent/tasks/<TASK_ID>/spec.md— the seeded placeholder created byinit, which may already contain the original task statement- Any user-provided task file or inline task text passed to the parent
Repo guidance
Repo guidance
AGENTS.mdif presentCLAUDE.mdif present.claude/CLAUDE.mdif present- Relevant
.claude/rules/**/*.mdfiles if present
Code (minimum)
Code (minimum)
Only the minimum relevant production code needed to clarify ambiguity and freeze the spec. No broad codebase exploration.
What the spec-freezer writes
The spec-freezer writes or updates a single file:spec.md requirements
A frozenspec.md must contain at least:
Original task statement
The user’s task preserved verbatim or with only formatting changes. Never rewritten.
Acceptance criteria
Explicit, individually verifiable criteria labeled
AC1, AC2, AC3, … Each criterion must be independently provable by a fresh verifier.Verification plan
A concise plan describing how each acceptance criterion will be verified — commands to run, files to inspect, or behaviors to observe.
Hard boundaries
Must not touch
Any production code file in the repository.
Must not write
verdict.json, problems.md, evidence.md, or evidence.json.Run
init and confirm .agent/tasks/<TASK_ID>/spec.md exists before invoking the spec-freezer. Never overlap init with freeze or any other command.