Turn a large, mostly defined implementation request into a repository contract that a fresh agent can read, update, verify, and resume without reconstructing the project from chat history. Keep stable intent separate from mutable execution state, and require evidence before any task is called complete.
This is a tool-neutral document pattern. It does not depend on, replace, or configure any agent platform's built-in goal, task, plan, or project feature.
This skill fills the layer between planning and execution. It does not replace product discovery, detailed technical design, project-wide state governance, or retrospective auditing.
Use it when work:
Skip it for a small task that can be completed and verified in one session. If requirements are still unsettled, resolve them before freezing the implementation contract.
Inspect the repository before creating files. Reuse equivalent documents and the project's established names when their ownership is clear. For substantial multi-session work, the minimum logical document set is:
| Document | Owns | Must not become |
|---|---|---|
IMPLEMENTATION_CONTRACT.md |
stable intent, scope, tasks, acceptance, definition of done | a live activity log |
TASKS.md |
current task/subtask status, dependencies, evidence links | a second copy of the contract |
CHECKPOINT.md |
authoritative current position and exact next action | a vague progress summary |
DECISIONS.md |
material decisions, alternatives, and reasons | a transcript |
VALIDATION.md |
checks actually run, results, evidence, and unresolved gates | a list of planned tests |
These may live together under docs/<contract-slug>/ or follow an existing
repo layout. An existing GOAL.md, specification, or execution brief may own
the contract role; do not rename it or create parallel files solely to match
this skill.
IMPLEMENTATION_CONTRACT.md, or its existing repository equivalent, owns
the implementation contract. Do not silently change it to fit the current
code.When documents and reality disagree, reconcile status from evidence while preserving the contract's intent. Escalate any conflict that would materially change scope, behavior, or acceptance.
A new agent should be able to understand the work from the contract without the original conversation. Include only what is needed to execute correctly:
Use stable task and subtask IDs such as T03 and T03.2. Never renumber them
after execution starts; add new IDs or mark obsolete work explicitly.
Each task should use this compact form:
### T03 - <observable task outcome>
- [ ] T03.1 <first implementation slice>
- [ ] T03.2 <second implementation slice>
Dependencies: T01
Acceptance:
- <observable behavior or artifact>
- <required focused check and evidence>
Breakpoint:
- Update TASKS.md, VALIDATION.md, and CHECKPOINT.md after the accepted slice.
Write acceptance in pass/fail terms. File creation, code presence, or an agent's completion claim is not acceptance unless that is genuinely the whole requirement.
At the start of a session or after interruption, read in this order:
TASKS.md, CHECKPOINT.md, DECISIONS.md, and VALIDATION.md;HEAD, status, and relevant diff;Reconcile the checkpoint with the working tree before editing. Preserve partial and unrelated changes. Resume the exact unfinished subtask when it is still valid; otherwise record why the next action changed.
TASKS.md when work starts, blocks, or becomes evidence-backed done.CHECKPOINT.md with the latest authoritative resume state; Git owns
its detailed history.DECISIONS.md only for choices that constrain later work.VALIDATION.md only after a check is actually run or explicitly
recorded as not run.Do not duplicate the same mutable status across every document. Link to the owning record instead.
Use a small status vocabulary: pending, in_progress, blocked, and done.
A task may become done only when its acceptance criteria have supporting
evidence.
For each validation record, capture:
Run the smallest check that proves the current slice during implementation. Run broader integration or release suites at defined milestones or when the change's risk requires them. Never present a planned, mocked, or nominally successful check as observed behavior.
CHECKPOINT.md must let another agent continue immediately. Record:
# Checkpoint
Updated: <UTC timestamp>
Branch / HEAD: <branch> / <commit>
Active task: T03
Active subtask: T03.2
Status: in_progress
Completed behavior:
- <verified result and evidence link>
Work in progress:
- <files and partial state that must be preserved>
Validation performed:
- `<exact command>` -> <result>
Blockers or uncertainties:
- <blocker, owner, and condition for clearing it>
Pre-existing or unrelated changes:
- <paths or explicit none observed>
Next exact action:
- <one concrete edit, inspection, or command>
Next verification:
- <focused check that should follow that action>
Avoid next steps such as "continue implementation" or "finish tests." If the next agent must decide what those words mean, the checkpoint is incomplete.
in_progress and state the intended slice.At final handoff, report completed outcomes, evidence, unresolved blockers, branch and commit state, and the exact next action if anything remains. Do not promote partial task completion into overall contract completion.
spec-driven-loop when product requirements and technical design still
need structured discovery, freezing, and approval.planning-and-task-breakdown when only an executable plan is needed.project-state-governor when the need is canonical state across the
whole project rather than one scoped implementation effort.audit-agent-run-evidence for a read-only retrospective audit of an
already completed run.This skill owns the compact execution contract that connects those concerns: stable intent, mutable progress, verification evidence, and exact resume state.