PRD: os-sdlc:implement v2 — fresh agents every round, sharded parallel programmers, deterministic lint pre-pass #195
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#195
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PRD: os-sdlc:implement v2 — fresh agents every round, sharded parallel programmers, deterministic lint pre-pass
Source: fresh-context retro of session 229b7865 (llf-schema
docs/retros/2026-07-31-os-sdlc-implement-run3-fresh-context-retro.md) plus trace metrics.Problem Statement
As the operator of the os-sdlc pipeline, running one ticket end-to-end is far slower and more expensive than the work justifies. Evidence from the first real run (3 tickets, 163 minutes): a single programmer agent handed a 14-file ticket built a ~208k-token context in its first dispatch, then was resumed 4 more times, spending 20–40% of each resumed round re-reading files it had already read, and making arithmetic errors past ~179k context. Meanwhile a nearly fresh agent at 58.9k context fixed the same class of lint offense in 29 seconds. A real integration bug was caught only by an ad-hoc orchestrator check — the reviewer cannot run code and structurally cannot catch it. 31% of wall-clock time sat outside the pipeline, mostly batched merges (one approved ticket idled 95 minutes). The orchestrator hand-assembles the reviewer packet and retypes verdicts even though
review-packetandrecord-verdict --from-agent-outputsubcommands already exist.Solution
Restructure the implement pipeline around two principles: (1) no agent is ever resumed for test-writing, programming, or lint work — every round goes to a fresh agent with a distilled brief (the reviewer is exempt; its contexts stayed under 100k and resuming it works); (2) programming is sharded: one fresh programmer per test-file/collaborator cluster runs in parallel over disjoint file sets, shared entrypoint/registry files are reserved for a single fresh integration agent that wires and aligns everything, and the whole-suite green gate runs once after all shards land. Lint becomes deterministic-first: rubocop autocorrect runs before any LLM sees an offense, and residual offenses go to fresh mechanical (cheap-tier) agents. A named smoke/parity gate is added so integration bugs are caught by the pipeline, not by luck. Merges happen per-ticket at approval, never batched.
User Stories
review-packetsubcommand, so that I stop hand-assembling diffs and gate logs in main-loop context.record-verdict --from-agent-output, so that verdicts are never retyped by hand.Implementation Decisions
--from-agent-output) → verdict-assert → merge immediately.rubocop -a(safe corrections) as a gate-CLI pre-pass; unsafe/manual offenses are what reaches LLM agents.Testing Decisions
Out of Scope
Further Notes
attorney_seeder.rb, tickets #21/#17) motivates the reserved-file set;lib/llf.rb/bin/llfwere touched by two tickets and are canonical reserved-file examples.The smoke-parity gate was removed from the os-sdlc pipeline entirely (see commit d0cfc90). ac-lint pass now wires directly to workspace-housekeeping; #276 (smoke-parity follow-up) was closed as wontfix since the gate no longer exists.
Superseded by the actual build: ADR-0097 moved sequencing into the os-sdlc-runner Ruby stepper (implement/SKILL.md is now a thin dispatch loop). shard_plan.rb, review-packet/record-verdict wiring, and fresh-agent dispatch all exist in lib/os_sdlc/runner. Smoke-parity gate was removed entirely (2026-08-05 comment, commit d0cfc90). Remaining named gaps tracked separately in #197.