Ship Session · autonomous backlog sweep
From 81-issue backlog to a green
dev, in one session.
A single Claude Code session triaged the whole open backlog, implemented
every ready item across four parallel waves, and merge-walked three
stacked-PR chains onto dev — verifying the gate after every
step and surviving three connectivity drops along the way.
repo CorTech-Online/donthype-me
target dev · CI green
production untouched
model Claude Opus 4.8 (1M)
0
GREEN issues
shipped to dev
0
agent compute
(parallelized)
Phase 01
The pipeline
Triage
1 read-only agent per open issue → GREEN / DECISION / RESEARCH /
DONE / BLOCKED
0
→
Research
web-enabled fan-out on the RESEARCH bucket → 4 GREEN + 2 DECISION
0
→
Implement
4 waves of worktree-isolated lanes → review-only PRs + security
review
0
→
Merge-walk
3 stacked chains rebased onto a moving dev,
gate-verified per PR
0
→
Green
lint · test · typecheck · migrations all passing on
dev
CI ✓
Phase 02
Where the work went
bar = subagent tokens
Phase 03
The four implementation waves
| Wave |
Shape |
PRs |
Notable |
Result |
| Run A |
parallel · file-disjoint |
10 |
quick wins; clean independent merges |
merged |
| Run B |
sequential · reader-security |
3 |
SSRF DoH, fail-closed rate limiter — all security-reviewed
|
merged |
| Run C |
sequential · backend |
12 |
OPML bounds, feed quota, 5 migrations (0078–0082) |
merged |
| Run D |
sequential · frontend |
9 |
boot splash, optimistic boot, Home.tsx cascade |
merged |
The bottom line
What this would've cost in human time
estimate · senior eng
6–10
engineer-weeks
≈ 315 focused hours — about 1.5–2 months of one senior engineer
| Work |
Basis for the estimate |
≈ hrs |
| Implement 34 GREEN issues |
6 trivial · 13 small · 11 medium · 4 large — impl + tests +
PR + review
|
~251 |
| Triage 81 issues |
read · classify · verify repo state, each |
~9 |
| Research 6 issues |
codebase + web + live verification (e.g. the Sentry quota
dig)
|
~15 |
| Security reviews |
9 invariant lanes, adversarial |
~12 |
| Merge-walk |
24 stacked PRs — rebase + conflict resolution + gate per PR
|
~20 |
| CVEs · recovery · test-type fixes |
2 CVE bumps · empty-merge recovery · ~6 fixes |
~8 |
≈ 315 engineer-hours of hands-on-keyboard work, executed as
~5.4 hours of parallelized agent compute in one session.
The hour figures are a transparent estimate at senior-engineer
rates (including test + review), shown so you can sanity-check them
— the telemetry counts elsewhere on this page are exact.
Phase 04
What the careful walk caught
bugs that would've shipped
averted
2 security-fix regressions
A naïve merge tried to re-introduce
processEntities:false (OPML title corruption) and
Promise.all (batch-fails-on-one-feed). Rebasing each
PR's own commits + per-hunk review stopped both.
recovered 1 empty-merge
An off-by-one fork dropped a PR's content into an empty squash. An
empty-diff safety check caught the next one before damage; the
lost work was re-landed via a fresh PR.
fixed
~6 latent test-type errors
Turning on type-checking of test files surfaced mock/typing drift
across the combined tree — each fixed test-only, no source casts.
patched
2 live CVEs
Newly-disclosed high-severity advisories in
form-data and hono (CORS) surfaced
mid-sweep by CI's audit gate — both bumped to patched releases.
Pending
What closes on the next release
dev → main
The 34 GREEN issues are
shipped to dev but still open — this repo's
Closes #X only fires when work reaches the default
branch (
main), not
dev. So promoting
dev → main is what
closes all 34 in one shot (on
top of the 2 already closed this session).
Caveat: the squash-to-dev flow doesn't reliably
auto-fire the close keyword, so they get verified and closed as part
of the release rather than assumed.
34 issues close on
promote
2 closed in-session (#1318, #1262)
2 follow-ups filed (#1357, #1358)
Phase 05
Built to survive the network
The session was interrupted
three times — an overnight laptop
sleep and two multi-hour internet drops (all excluded from working
time). Each killed in-flight background agents mid-run. It didn't
matter:
every merge to dev is a durable checkpoint, so the
walk simply resumed from wherever
dev actually was.
Background fan-outs were re-checked against live GitHub state — never
assumed — and the broken rebase from a killed agent was cleanly
aborted and redone.
🌙 laptop sleep — survived
📡 internet drop ×2 — survived
🔁 per-PR checkpoints on dev
Phase 06
Banked for next time
🛠️ a reusable merge-walk workflow
The hard-won technique — rebase each PR's own commits onto the
moving base, empty-diff safety check, doc/test-type resolution,
escalate genuine source conflicts — is now a saved
stacked-merge-walk workflow.
📋 2 follow-ups filed · 22 closed
Stale/done issues closed during triage; residual security gaps
filed as ready-to-implement tickets. Branches cleaned up;
production left for a deliberate release.