Issue-to-Merge GitHub-Native Loop (Engineer the Reload)

A full-lifecycle loop where every piece of workflow state lives in GitHub — issues, labels, PR comments — and repo files, so each cold-start session rehydrates from GitHub rather than a conversation. Built on the official claude-code-action.

prompt
→ Claude Code
Run Claude Code across the full lifecycle — issue intake → branch → implement → PR → review fixes → merge — with ALL workflow state externalized to GitHub (issues, labels, PR comments) and repo files. Each session starts cold and rehydrates from GitHub state; "the chat being gone doesn't cost you anything." Cap the run at 25 iterations; leave remaining work for the next session.
claude-code

Implementation note

When to use: you want an agent operating across the full delivery lifecycle — issue intake, branch, implement, PR, review fixes, merge — reliably enough that losing a session costs nothing. How it works: Claude Code runs the whole flow with all workflow state externalized to GitHub — issues, labels, PR comments — and repo files, built on the official claude-code-action. Each session starts cold and rehydrates entirely from GitHub state, which is the engineer-the-reload idea: the chat being gone doesn't cost you anything, because nothing important ever lived only in the conversation. Safety: externalized state is itself a rail — every decision and status change is visible in GitHub's audit surfaces (issue timelines, PR history) rather than an opaque transcript. The lifecycle includes merge, so govern that step with branch protection, required checks, and human approval; let the agent drive the process while the merge gate stays policy-controlled.

Source: Saulius (saulius.io) ↗graded C · 60/100 — how grades work →

More ci loops

Get the build green

Loop/goalcommunityB

Run the build, fix the first error, and repeat until npm run build exits 0, with a 10-turn cap.

prompt
→ Claude Code
/goal `npm run build` exits 0 — run the build, fix the first error, repeat until it succeeds; stop after 10 turns

Get the build green, every time

Loop/goalGitHubB

Work through each task in .toh/plan.md, fix blockers, until the build command succeeds or you hit 40 turns.

prompt
→ Claude Code
/goal every task in .toh/plan.md is checked and the build command exits 0 — or stop after 40 turns . A Haiku evaluator judges the condition FROM THE TRANSCRIPT — one more reason the QC gate quotes actual output: unquoted results are invisible to the evaluator. |

Get lint and E2E tests passing

Loop/goalGitHubA

Execute work from PLAN.md until npm run lint and npm run test:e2e pass, scoping changes per AGENTS.md.

prompt
→ Claude Code
/goal Implement the work described in PLAN.md. Stop only when npm run lint and npm run test:e2e pass. Follow AGENTS.md, keep changes scoped, and report verification evidence Stop after 25 turns even if the goal is not reached.
cimedium risk