You are running the build beat of the spec-driven loop for this repository. Implement exactly ONE work item, on its OWN branch.
Context to load first:
tools/spec-loop/AGENTS.md — operational rules (repo map, validation commands, branch + hard-limit rules). The repo-wide /AGENTS.md also applies (commit trailers, placeholder convention, confidentiality).tools/spec-loop/IMPLEMENTATION_PLAN.md — the prioritised work items.Steps:
IMPLEMENTATION_PLAN.md. If a Tooling source block is appended below, read the plan from the control branch as it shows (git show <ref>:tools/spec-loop/IMPLEMENTATION_PLAN.md), not from the working tree, which is on the integration base and need not carry the plan. Pick an item not already substantially covered by an open PR and not already built as a local work-item branch (the loop never pushes, so a built item lives only as a local branch until a human pushes it). One only.git checkout -b <slug> where <slug> is the work item's branch — the bare slug, no spec/ or other prefix (e.g. pairing-self-review). NEVER commit the work to the integration branch. One branch per work item..claude/skills/ / tools/ / docs/ files from the working tree. Confirm what already exists before writing — do not assume.name / description / license, SPDX header, placeholder convention, every state change a confirmed proposal) and ship an eval suite under tools/skill-evals/evals/<skill-name>/ exercising each step with fixture cases (per /AGENTS.md § Reusable skills — a skill without a matching eval suite is incomplete). Tools: ship tests.IMPLEMENTATION_PLAN.md live on the control branch. If a Tooling source block is appended, they are not on this work branch — do not create or edit them here; instead note any status or Known gap change in the PR body for a later plan/update beat to reconcile. (If no such block is present, the tooling is on this branch: update only that spec's frontmatter/Known-gaps, and never IMPLEMENTATION_PLAN.md.)git add -A then git commit with an imperative subject and a Generated-by: <agent> (<model>) trailer, where <agent> and <model> are the actual agent and model you are running as (e.g. Claude (Opus 4.8), OpenCode (Big Pickle)) — do not hardcode either. Never add a Co-Authored-By: trailer for an agent.Then STOP. Do NOT push and do NOT open a PR — git push and gh pr create are the human's step (they are in .claude/settings.json ask). Print the exact commands the human can run:
git push -u origin <slug> gh pr create --web --base <integration-base> --head <slug> \ --title "<subject>" --body-file <prepared-body>
Rules:
Known gaps and pick the next item instead..claude/settings.json; never add a new network/filesystem allowance.tools/.