v11.0.0
Remediates the Glings sprint 003 (subsystem-layout-migration) retrospective. Each reviewer now gets its own scoped file list and, in impl-review, its own .diff patch instead of a shared list and rendered diff text; concurrent dispatches are capped and large audits read in batches; scope collection drops the decision-prompt UI for free-form input and no longer clears context at phase boundaries; and a sprint may skip one enabled optional document for itself alone.
Migration
- No migration script. New manifest fields (
--base/--head,pureRenamerows, per-reviewer file lists) are optional tovalidate-ledger; a manifest emitted before the upgrade still validates, andstate.json's schema is unchanged. An in-flight review iteration started before the upgrade: finish it as emitted, or discard and re-emit it fresh under the new per-reviewer contract — both are safe.
Added
- Per-reviewer scope.
emit-manifestbuilds each reviewer's file list from one selector keyed by phase and reviewer (review-policy.md"Reviewer responsibility"). In impl-review, Testing narrows to theisTestfiles plus--test-plan <path...>(test-plan.mdand its segments); Correctness, Efficiency and Documentation keep the full scope list. .diffpatch files.emit-manifest --base <sha> --head <sha>(impl-review only) writes one patch per manifest or part (<reviewer>[.part-N].diff) beside it, and grants the compactpureRenamerow (NA_PREDICATES.pureRename) to every rename with identical content and mode — only a machine-proven rename qualifies, never a namespace/import-only edit. The reviewer payload carries the manifest and.diffpaths, never rendered diff text, and no reviewer is ever told to run git.- Dispatch ceiling.
DISPATCH_CEILING(20) caps concurrent dispatches in one phase step; anything above it runs in sequential sub-waves (review parts, impl task waves), each judged separately for correlated interruption.surfaceCheckalso returns the implied review-dispatch upper bound. A change-surface cap-override request states thedispatchescount it implies. - Batched audit reads.
AUDIT_BATCH_THRESHOLD_FILES(200): when the touched areas exceed it, the architect payload carries a batched-read plan (grep first, then targeted section reads) instead of a flat file dump;asd-architect'smaxTurnsrises to 150 to match (the batched-read plan, not the turn cap, is the real control). - Per-sprint document skip (
sprint-lifecycle.md"Optional documents"): the user may flip an enabledprd,ux_spec,adrorc4tofalsefor the active sprint only, at the scope gate or the audit exit, before any draft of that document exists — a hard gate, narrow-only, logged as " skipped this sprint by user" distinct from config-disabled.audititself is excluded. - Free-form scope. Raw scope arrives as a plain chat message, not a decision prompt; before the scope gate the orchestrator asks about cleanup and quality criteria (legacy removal, warning budget, doc consolidation) unless the raw scope already covers them.
- BA/UX doc rename/delete now routes through the orchestrator at
design-promote: the user approves, then the orchestrator runsgit mv/git rminline and re-dispatches the creator fresh to update content and inbound links. - Design-review draft correctness. Correctness gains a design-review rubric entry: AC completeness against
sprint.md, contract soundness, ADR decision soundness — covering every changed draft, not only UI drafts. From iteration 2 every design-review reviewer gets only the drafts changed since the previous iteration:runtime.js draft-snapshotpersists each iteration's draft hashes inreviews/design/iter-NN/snapshot.jsonand lists what changed.
Changed
- Context hygiene (
core.md): no instruction ever tells the orchestrator to clear context. A phase boundary continues the chain itself; context compaction is automatic and host-driven. The gate answer is written to disk before any further work, so a mid-gate compaction stays recoverable. - Stub-resolution verification moves from the Testing reviewer's rubric to Documentation's, alongside persistent-doc actuality.