Skip to content

Starter kits

stale-safe-batch-release — the current-changes-only release batcher

Reviews pending PRs, excludes anything stale or unfinished, and combines the valid ones into a release batch — built from complete artifacts off the…

Reviews pending PRs, excludes anything stale or unfinished, and combines the valid ones into a release batch — built from complete artifacts off the latest integrated main, never a task worktree or a partial file overlay. The 20th and final kit in this library.

Category: C · Release · Heartbeat: schedule/tag (per release window) · Level: L1 (report-only) · Cost: Low

Source: Loop #33, "The stale-safe batch release loop," from Forward Future's Loop Library, original prompt by Matthew Berman.

Quickstart

1. Read LOOP.md — the six parts, the prompt, the limits, the three stops.
2. stale-safe-batch-release-state.md is your spine — already committed with
   an empty per-PR register.
3. Claude Code: point a Routine at a release-tag event pointed at
   .claude/skills/loop-task/SKILL.md. OpenCode: rename
   opencode.json.example → opencode.json, add the AGENTS.md line, wire
   skills/loop-task.md into a cron/tag-triggered wrapper.
4. Rehearse once, by hand, before the schedule ever fires:
   "Run the stale-safe-batch-release skill now, exactly as the schedule
   would."
5. Grade the rehearsal with the loop-verifier agent — it fails any batch
   that can't prove it traces to main. PASS → arm the schedule. FAIL → fix
   the skill, never ship the batch anyway.

What's in this kit

FileRole
LOOP.mdthe definition — six parts, prompt, limits, ownership, three stops
stale-safe-batch-release-state.mdthe spine — per-PR current/stale decisions, artifact source verification
loop-budget.mdcaps: 15 runs, 150k tokens — added by this library; the source specified none
loop-constraints.mdthe constitution — never builds from a worktree/overlay, never actually releases
loop-run-log.mdappend-only, one line per beat
.claude/skills/loop-task/SKILL.mdthe procedure (Claude Code)
.claude/agents/loop-verifier.mdthe read-only reviewer — fails any batch that can't prove it traces to main
opencode.json.example · skills/loop-task.mdthe OpenCode twin — same skill text, cron/tag heartbeat

Loop Ready checklist

  • Provable success condition — the source's own spec, verbatim: "only current, complete changes ship in the combined release"
  • Run limit — 15 runs (added by this library)
  • Spine written first, committed empty
  • Report-only (L1) start — composes and reports the batch, never releases it
  • Human gate placed — you read the report and perform the actual release yourself
  • One log line per beat, no silent runs
  • Kill switch — loop-pause-all in loop-budget.md

How this relates to the course

This kit is a fitting bookend for the library: every other kit that touches code uses an isolated worktree to test safely — draft a fix, run it, throw it away (Step 8 · Worktrees). This loop exists to make sure the final release artifact never accidentally comes from one of those isolated sandboxes, or from any partial overlay — the source's own explicit rule: "deployment must use complete artifacts from the latest integrated main." Worktree isolation protects a beat; this loop protects the release.


Full attribution: resources/sources.md.