blog.sshiling.com

Step 6 of 7

Implement

AFK/implement
Entry
A claimed, unblocked ticket at the frontier.
Exit
The declared PR boundary is complete: the full suite is green once, code-review findings are addressed, the change is verified end-to-end, and a pull request is opened with a QA plan and evidence.
Artifact
Commits and a pull request
Guards
  • Tests are written only at the pre-agreed seams; no test is added at a seam that wasn't confirmed during the spec.
  • Refactoring is deferred to a single ticket-end review pass, not performed on every red-green cycle.
  • The full test suite runs green exactly once, at the end; the change is then driven end-to-end and observed before the pull request opens.
  • Work happens on a feature branch with conventional commits — never directly on the main branch, and never a branch named after a pull-request number.

Implement is where code finally gets written — and by this point most of the decisions that usually make implementation hard have already been made. The technology was chosen in the grill. The behavior was specified. The test seams were agreed. The slicing and the PR boundaries were approved. What's left is genuinely just building the next slice.

It runs one ticket per session, always from the frontier of unblocked work, with context cleared between tickets. A fresh context per slice keeps each session sharp and stops half-remembered detail from one ticket leaking into the next.

How it runs

Inside a ticket the loop is test-first at the agreed seams: a failing test, then the smallest code that makes it pass. Typechecking runs continuously and individual test files run as the work touches them, but the full suite runs exactly once — at the end — rather than after every change.

Refactoring is deliberately held back. Instead of cleaning up after every red-green cycle, the tidy-up happens in one consolidated pass at the end of the ticket, as part of the review step. On work moving at agent speed, per-cycle refactoring mostly polishes code that the next slice rewrites anyway; doing it once, with the finished shape visible, is both cheaper and better.

What gets settled here

Less than you'd expect — and that's the point. Implement inherits its constraints rather than inventing them: technology from the grill, seams from the spec, PR boundaries from the tickets. What it genuinely owns is the code-level design within the slice and the final cleanup pass.

When the last ticket in a declared PR boundary lands green, the change is verified end-to-end — the actual flow driven and observed, not just tests passing — and a pull request is opened with a QA plan and that verification as its evidence. The agent stops there. It never merges its own work.

Built on

This step is built on Matt Pocock's implement skill, which drives his test-first skill at the seams and hands off to review and verification at the end. Verification and code review are handled by Claude Code's built-in commands, and their output becomes the pull request's evidence.