chore(orchestrator): closure-sweep round 3 — 50 verified umbrella closures (done.md backfill) - #1268
Merged
Merged
Conversation
…sures (done.md backfill) The 2026-08-07 /pipeline no-arg run found ~50 umbrella dirs whose work is verifiably merged but which lack done.md, poisoning the priority-score completion filter in both directions (false-open noise + a false-DONE on the live critical path arch-v2-context-pipeline-s-d-prime via C2 jaccard). Round-2 precedent: cf246c2 (#565). Every closure verified mechanically BEFORE writing done.md (gh pr view state/mergedAt, git log origin/staging --grep, git ls-tree deliverable checks). Breakdown: - 26 closed by a verified merged PR (aif-doctor-helper-parity #1147, hook-tsx-resolution-fix #1126, hook-tsx-resolution-sweep #1130, universalization-fix-s2 #517, multistack-augment-first #830, guard-liveness-v2-fullsweep #484, install-self-verification #823, arch-v2 stages s-a #1192 / s-b #1198 / s-c #1197 / s-e #1237 / s-g #1228 / s-h #1250 / s-i #1229 / s-l #1263, getff-any-stack-trace r1 #1254 / s1 #1166 / s2 #1169 / s2b #1233 / s3 #1253 / s4 #1262, getff-honest-signals s1-s6 #1140/#1145/#1150/#1167/#1170/#1175, preset-react-spa-iphase #661, preset-react-native-iphase #662). Note: the dispatch evidence list carried kickoff-CREATION PR numbers for three of these (#1127/#1125/#1131); the actual closing PRs are #1147/#1126/#1130 — verified by PR title + files. - 4 closed by deliverable-on-staging + merged PR (plan-currency-reconcile-s4-aif #789, live-research-default-delivery #824, story-recap #592, aif-loop-resilience-soak n/a — soak-journal AUTONOMOUS RUN COMPLETE 2026-06-05, API-harvest rounds #427/#429/#431). - 10 meta-launch dispatch records closed by parent umbrella DONE (adapter-jig #1240, getff-any-stack-trace #1262, getff-honest-signals #1175, ir-unfreeze #1084, launch-preannounce-track #994, ecosystem-wiring #1086, rule-tests-surface #1093, python-delivery-v0 #997, plan-currency-reconcile #792, live-generation #1055) — each parent's done.md verified present. - 7 closed as Status: superseded pointing at the absorbing umbrella: the five #1221-rescued kickoffs (fix-735-fresh-install-prepush -> #775/#747, generator-compile-forbid -> forbid-mvp #684-#697, recipe-declarative-tier -> forbid-mvp S2 #689, validator-anti-vacuity -> forbid-mvp S3 #693, rule-bootstrapping-live-adapter -> rule-research-live-adapter #805/#809), plus install-ast-wiring -> migration-ast Stage 4 #632 (GH #547 Layer 2) and arch-v2-context-pipeline-s-a-r2 -> executed in-session inside S-A #1192 (its own header says SUPERSEDED — do not dispatch). Genuinely open umbrellas untouched: beta-delivery-ux (+meta-launch), beta-ai-docs-agnosticism, beta-docs-showcase, arch-v2-context-pipeline (+s-d-prime, s-f, meta-launch), getff-freshness-widening, getff-python-dtz-adopt, getff-to-prod-meta-launch, modular-install-fullpack, shipped-artifact-liveness-gap family, phase-10-foundations-audit, heal-honest-capacity, shipped-skill-sync, trust-tiers-did-review, executable-aidocs-and-cargo-followups, h10-verdict-gate-research, stack-tooling-generation, zcode-full-parity-mega-umbrella, and the rest of the no-done.md residue not on the verified list.
artyhoo
added a commit
that referenced
this pull request
Aug 7, 2026
…rge-forward range fix (#1273) * fix(pre-push): exempt trunk-reachable commits from trailer gates — merge-forward range fix The documented merge-forward recipe (git-conflict-merge-forward.md §2) was structurally blocked by the very hook it must pass: a plain push after `git merge origin/staging` ran the §7/§1.7 trailer gates over the bare `remote_sha..local_sha` range, which sweeps in staging's own squash commits — trailer-less by squash-trailer-loss (the server-side PR-body gate #1098 covered them at merge) and unfixable by the pusher. Observed live 2026-08-07 harvesting PRs #1269/#1270 (staging commits from #1265/#1266/#1268 flagged). - utils/git.ts getCommits: optional excludeReachableFrom -> `--not <ref>`. - pre-push.ts resolveBase: env + stdin paths carry exclude=resolveDefaultBase(); commitsToCheck threads it. The Z40 new-branch path already excludes `--not --remotes` (a superset); the default path's base IS the trunk (no-op). - pre-push.fallback.sh: trunk resolved once (dual-pair parity with the TS resolver), env/stdin/default ranges exclude trunk-reachable commits, and `--no-merges` skips the merge commit its reduced PRESENCE-only check would otherwise flag (the TS core never flags merges: diff-tree / `git show --cc` are empty on a clean merge). - Paired-negative: tests/hooks/prepush-merge-forward-range.test.sh (TS + fallback channels, wired into audit-self.yml principles-meta-tests) — a merged-in trailer-less staging commit passes; the branch's OWN trailer-less capability commit still fails. Plus unit paired-negatives in utils/git.test.ts and a structural thread-through assertion in pre-push.test.ts. - git-conflict-merge-forward.md §2: recipe documents the gate interaction (step 1's fetch keeps the exclusion accurate; PREPUSH_UPSTREAM_REF override no longer needed). Range-correctness fix, not a gate relaxation: trunk-reachable commits were already gated at their own push time or by the PR-body gate at merge. Prior-art: skipped — range-correctness bug fix in existing hook + tests + doc update, no new capability §1.7: forward-check applied — attention-is-not-a-mechanism.md §1 deterministic-gate + paired-negative shape (packages/core/hooks/utils/git.test.ts:190); no-paid-llm-in-ci.md clean (bash-only CI step, .github/workflows/audit-self.yml:450); dual-pair twins updated in lockstep (packages/core/hooks/pre-push.fallback.sh:14); backward-check sweep — class = push-range derivation for commit-scoped gates; surfaces: getCommits FIXED (packages/core/hooks/utils/git.ts:157), fallback range_commits FIXED (packages/core/hooks/pre-push.fallback.sh:47), commitsNotOnRemotes SWEPT-CLEAN — already `--not --remotes`, a trunk superset (packages/core/hooks/utils/git.ts:119), rangeGit SWEPT-CLEAN — merge-base(base,head)..head excludes base-reachable by construction (packages/core/hooks/utils/git.ts:219), getChangedFiles deliberately UNCHANGED — §6/§8 gate pushed TREE content, not commit authorship (packages/core/hooks/pre-push.ts:1451) * chore(snapshot-regen): baselines after pre-push.fallback.sh range fix Prior-art: skipped — snapshot regeneration after shipped-hook edit, no new capability --------- Co-authored-by: Test <test@example.com>
artyhoo
added a commit
that referenced
this pull request
Aug 21, 2026
…us + principle 43 (#1506) * feat(host-verify-retrofit): kickoff inventory classifier — lanes + bulk-wave filter Warn-phase tool for the host-verify retrofit (PR #1491 park #2): classifies every .claude/orchestrator-prompts/*/kickoff.md into contracted | legacy-closed | attention/closed | attention/open. Fail-safe by direction of error: the blanket lane (legacy-closed) requires BOTH done.md AND last non-wave activity older than --min-days (default 30). Bulk waves (commits touching >10 umbrella dirs — back-catalog migration #523, done.md backfills, the FRS S2 spelling sweep itself) do not refresh activity dates. Contract recognition is delegated to scripts/host-verify.sh --list (the SSOT runner, dual-implementation-discipline §8) — never re-implemented here. Dirs without kickoff.md are out of scope by construction. Measured on staging c8d2e34 (322 kickoff files, lanes reconcile exactly): contracted 64, legacy-closed 86, attention/closed 133 (119 last=none-non-wave — every commit in their history is a bulk wave; 31 with dated non-wave activity — the human-review borderline), attention/open 39. Blanket-safe total: 86 + 119 = 205; manual lanes: 31 + 39 = 70. Recheck note: two dated files (pre-merge-carrier-meta-launch, generator-forbid-mvp-meta-launch) MENTION host-verify in prose/headings but carry no runner-recognized contract — classified as uncontracted, correctly. * docs(kickoff): host-verify retrofit B1 — blanket legacy-closed opt-outs (195 files) Retrofits the destination-environment-verification contract (.claude/rules/destination-environment-verification.md §1) onto the closed back-catalog: each file gets the canonical opt-out marker <!-- host-verify: none — legacy closed umbrella (done.md): work already accepted; no live host acceptance to declare — retro-marked 2026-08-21 --> recognized by the runner (bash scripts/host-verify.sh --list <path> → 0), replacing silent contract-absence with an explicit, greppable declaration. +2 lines per file, byte-identical otherwise. Population (lanes from scripts/kickoff-hv-inventory.sh, run at this commit): - legacy-closed 90 + attention/closed none-non-wave 102 → kickoff.md each - stage kickoffs of closed tracked umbrellas: beta-delivery-ux s1/s2/s3/s5 = 195 tracked files. Guards applied per file (escalate, never blanket): done.md required; runner-recognition skip; any prose 'host-verify' mention → individual lane. Escalated to B2: generator-forbid-mvp-meta-launch (prose mention the runner does not recognize — one of the two 'lying contracts'), beta-delivery-ux/ kickoff-r1.md (already carries a real contract; guard prevented a second declaration). consumer-install-{completeness,hardening} stage kickoffs are gitignored (per-umbrella un-ignore globs, .gitignore:31-55) — excluded: their kickoff.md is marked, the untracked stage files stay untouched. .husky/pre-commit, two accompaniments (both first-triggered by staging the corpus; no CI mirror, no shipped-template twin carries either gate — verified: grep 'exceeds 600' → only this hook): - 600-line gate: case entries for the two oversized closed meta-kickoffs it would otherwise block (queue-mode-bootstrap 730, strategic-clarity-dialogue 664). Both already self-declared the 'transient artifact' exemption in their headers at creation — only the case entry was missing. Same list∩marker shape as the two pre-existing entries. - markdownlint-cli2 arm now excludes .claude/orchestrator-prompts/**: the dispatch corpus is append-only history whose older files predate linting (95 pre-existing violations, 68 of them MD040 bare fences; zero introduced by this commit's EOF-only appends); full-file lint made any touch of an old kickoff a style-repair demand. The corpus keeps its dedicated spec-discipline soft-warn arm; all other md surfaces stay fully linted. * docs(kickoff): host-verify retrofit B2 — 28 individually adjudicated closed kickoffs The attention/closed-with-date lane: every umbrella HAS done.md but its dir saw non-wave activity inside the 30-day window, so the blanket pass refused them (guard: recent targeted touch = look before marking). Adjudication per dir — the git log of each — sorted every recent touch into four closure classes, zero live-work reopeners: - done.md closure commits (#1243 #1361 #1476 #1118 #1158 #1262 #1175 …) - closure-sweep backfills (#1268: 50 verified closures, round 3) - archival of superseded designs (#1221) - cosmetic example fixes on closed files (#1280 Jest→vitest in fenced examples; #1288 600-line unfreeze) Each of the 27 dated dirs + the G3-escalated generator-forbid-mvp-meta-launch gets the same canonical marker as B1 (+2 lines, EOF append). The two 'lying contracts' resolved as NOT lying declarations but prose vocabulary: generator-forbid-mvp-meta-launch §4d ('Cross-stage host-verify acceptance' section title, commands named as stage obligations — never a fenced contract) and pre-merge-carrier-meta-launch (prose pointers to the binding umbrella's §4 host-verify + 'both host-verify legs green' gate description). The runner is right to not see a contract; the marker states the machine truth, the historical prose stays byte-identical. * docs(kickoff): host-verify retrofit B3 — real contracts + honest opt-outs for the 39 open umbrellas (+ modular stages) The attention/open lane (no done.md — the lane the fail-safe classifier refuses to blanket): every file handled individually, error direction toward REAL contracts (an executable kickoff never gets a lazy opt-out). 17 contracts, each quoting the file's own acceptance material or the existing suites its acceptance names (mechanical quoting, no authorship): - heal-honest-capacity → the fixture suite §3 demands + criterion 8 - install-prepush-copylist → §5 bullet 2 verbatim (SHAs zeroed: the no-op deletion probe, live-verified exit 0 before quoting) - multi-model-profile-marker → live aif /tasks probe (§3 verifies live; the contract fails closed when the runtime is down — stated in the fence) - r2-enforced-zod-scope → gh-535-rule-enforced.test.sh (§6's harness) - r2-zod-aware-selector → make self-audit (§5 names it) - rule-bootstrapping-iphase-spike → snapshot compare (§7 byte-identical) - salg-m1-gate → principle 21 (its Part B, shipped) - salg-postinstall-smoke-p1 → the four harness homes §Deliverable names - shipped-skill-sync → check-skill-drift.sh (sibling gate, same surface) - zero-dep-synth-bundle → build-synth-bundle.sh --check (its step-6 gate) - zcode-full-parity + step1-emit-wrapper → the twin test suites §3/§4 name - modular-install-fullpack s1-s5 → snapshot compare (+shellcheck on s1), the §4 byte-identical guard; empirical consumer probes stay documented in §4 as live-session work 28 opt-outs, three precented classes, each naming its own evidence: - 15 planning STUBs (U4-U17 of the getff-to-prod МЕГАКИКОФФ + the self-declared stack-tooling-generation stub): stages are sketches; the full kickoff that replaces a stub declares the contract - 6 research/docs-only (h10, phase-10, salg R-phase, container-audit, worktree-flakiness tracker, trust-tiers adjudication): deliverable is a markdown artifact per each file's own header/scope - 7 meta-launch/orchestration/deferred (getff-to-prod МЕГАКИКОФФ, salg-meta-launch, beta-ai-docs-agnosticism [stages s1-s3 already carry contracts], modular umbrella + S0 table, executable-aidocs deferred WIs, m2-probe [DORMANT prose deliverable by design]) Every edited file verified: bash scripts/host-verify.sh --list <path> exits 0 (recognized contract or valid opt-out). * feat(principles): host-verify retrofit B4 — principle 43 (whole-population contract presence) + rule §1 note packages/core/principles/43-kickoff-host-verify-presence.test.ts: promotes the edit-time contract gate (fires only on touch) to a CI channel over the WHOLE tracked kickoff family — kickoff.md + stage kickoffs via kickoff-population.ts, mirrors excluded, gitignored stage files out of population (principle 40's tracked-file posture; they cannot ship a contract to CI). Detection shells to the SSOT runner (host-verify.sh --list) exactly like the edit-time gate — no second grammar (#sync-by-copy-paste avoided). Paired-negative fixtures prove the detector discriminates: absence fail-closed, fence pass, opt-out pass, too-short rationale fail; anti-tautology strips a real compliant kickoff and asserts the verdict flips; tripwire holds the population non-vacuous. First live run CAUGHT two real gaps the lane measurement missed: cross-worktree-symlink-iphase and f2-aif-fire-backend-iphase end in a dangling bare ``` (single fence line, CommonMark opens an unterminated code block), so their B1 opt-out markers landed inside the block and the runner rightly ignored them. Fixed by closing the dangling fence (+1 line, renders empty exactly as before); both now recognized. No exemption list: after the retrofit nothing is exempt. Rule §1 (destination-environment-verification.md): names the stage-kickoff family as bound (population SSOT), documents principle 43 as mechanism (c) in the Class header — honestly: PRESENCE, not execution; the Class-A promotion path is unchanged. Prior-art: prior-art-evaluations.md#229 (ADAPT — the destination-environment contract row; this commit promotes its edit-time gate to a population principle test on the same SSOT runner, grammar unchanged) * fix(review): host-verify retrofit B5 — cold-review round 1 fixes Code review (review-sidecar, cold): REVISE on one MAJOR, folded the cheap MINORs. Fidelity audit (cold): GO, no round-triggering findings. MAJOR — markdownlint exclusion was permanent and corpus-wide (no re-entry): new kickoffs would have escaped lint forever. Fixed by narrowing the carve-out to the legacy corpus ON TOUCH: the STAGED_MD filter now ADMITS orchestrator- prompts files with git status A (newly added — no pre-existing debt, fully linted), excludes only M-status touches of historical files. Re-entry trigger recorded in the comment, measurable: when 'npx markdownlint-cli2 .claude/orchestrator-prompts' reports zero, drop the filter. Awk filter unit-tested against synthetic A/M/R/non-md input. MINOR — principle 43 anti-tautology wrote its stripped copy INSIDE the real population dir (litter risk on mid-test failure): now mutates in tmpdir with a finally-cleanup; timeout 120_000 added (its find can spawn the runner hundreds of times on a non-compliant corpus). MINOR — comment precision: 342 tracked family files at retrofit (auditor's independent count), not 349. Verified: principle 43 4/4, sweep 26/26 (diff mode). * fix(hooks): host-verify retrofit B6 — pre-push §8 lychee legacy-corpus carve-out (A/M split) The push of the retrofit surfaced the same structural class the pre-commit markdownlint arm hit: §8 checks EVERY link in EVERY changed *.md, and the orchestrator-prompts back-catalog carries 101 pre-existing offline errors (links to since-moved targets — e.g. .github/workflows/discipline-self-check.yml resolved from the wrong base; gitignored drafts/ scratch; machine-local ~/… paths; one doubled .claude/.claude relative path). All 101 pre-date the retrofit; the touching commit introduces zero links. Fix mirrors the pre-commit markdownlint arm's A/M split exactly (one carve-out pattern, two gates): orchestrator-prompts *.md enter the lychee set only when git status A (newly authored — fully checked); M/R-status touches of legacy files are excluded. utils/git.ts gains getAddedFiles() (diff-filter=A via the existing parseNameStatus) reused by the section. Re-entry trigger recorded in the comment, measurable: when 'lychee --offline .claude/orchestrator-prompts' reports zero, drop the filter. No consumer-twin sync needed: the shipped husky-pre-push.sh template does not carry §8 (verified: zero lychee references). tsc clean; pre-push consumer-layout suite 32/32 (the §3 negative arm still guards the gate lives on consumer-owned md). * chore(install-sh): host-verify retrofit B7 — regenerate snapshot baselines for B6's shipped-file edits B6 edited two shipped files (packages/core/hooks/pre-push.ts §8 carve-out, packages/core/hooks/utils/git.ts getAddedFiles) without regenerating the fingerprints — the byte-identical battery (all 4 stacks × greenfield/brownfield) went RED on CI exactly as designed. SNAPSHOT_MODE=capture diff reviewed: only the two expected hash lines per baseline (fe4242205c0… pre-push.ts, 3a1b55973f… git.ts), matching the hashes CI computed — no other shipped byte moved. Sweep after B6 was skipped by me; this is the FRS S2 lesson repeated. * chore(install-sh): host-verify retrofit B8 — merge-forward staging + recapture refresh-baseline hashes staging moved under the PR (#1503 consumer-refresh-integrity R1 added the .ai-factory/refresh-baseline.json manifest + its baseline lines; #1504 R4; #1505 barrel fix). The PR merge-ref mixed my B6 hooks with staging's R1 manifest: the installed manifest hashes the shipped files, so B6's pre-push.ts/git.ts edits change its bytes — CI computed the new manifest hashes (7a39d960…/0b204c85…/34eb550e…/59008f53…), staging's baselines still carried the pre-B6 ones. merge origin/staging (clean, no conflicts) + SNAPSHOT_MODE=capture on the merged tree: diff is exactly the 4 refresh-baseline hash lines × 8 npm baselines, matching what CI's install computes — no other shipped byte moved. --------- Co-authored-by: Test <test@example.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Closure-sweep round 3 over
.claude/orchestrator-prompts/(round-2 precedent: cf246c2, #565). Adds exactly 50done.mdfiles — nothing else is touched. The 2026-08-07/pipelineno-arg run found ~50 umbrella dirs whose work is verifiably merged but which lackdone.md, poisoning the priority-score completion filter in BOTH directions: false-open noise, plus a false-DONE on the live critical patharch-v2-context-pipeline-s-d-primevia C2 jaccard (C3 done.md coverage starves C2 of cheap-closed umbrellas, so jaccard runs over a dirtier population).Method
Every closure verified mechanically BEFORE writing
done.md—gh pr view(state + mergedAt + title + files),git log origin/staging --grep,git ls-tree origin/stagingdeliverable checks. Format perdocs/meta-factory/operational-conventions.md §1(binding schema;priority-score.shLayer C3 parses the- Final PR: #<num>line).Breakdown (50)
.claude/skills/story/on staging), aif-loop-resilience-soakFinal PR: n/a(soak-journal.md carriesAUTONOMOUS RUN COMPLETE 2026-06-05T10:03Z, API-harvest rounds docs(soak): harvest c97c709c-5eab-4221-a121-d12d8b815e59 #427/docs(soak): harvest fe64cb11-bf8a-4992-823c-e373999a6e12 #429/docs(soak): harvest 4de9a2e3-4e51-47fa-a628-b8e916c0ddf6 #431).done.mdverified present): adapter-jig fix(backends/golangci): close J3 fork #2 from a captured v1.55.2 run — and the stdout-shape defect it exposed #1240, getff-any-stack-trace feat(getff-any-stack-trace): S4 — W6 acceptance cell + one-beat cold-run protocol + umbrella closure #1262, getff-honest-signals fix(hooks): inject-matching-rule reports once loudly on missing rules corpus — closes getff-honest-signals (S6, final) #1175, ir-unfreeze feat(ir): close ir-unfreeze S4 — 24-consumer sweep + SSOT #225 + multi-child NOR live-fire #1084, launch-preannounce-track feat(consumer-matrix): pnpm-monorepo start cell — fail-closed §1 acceptance gate (launch-preannounce-track S2) #994, ecosystem-wiring docs(ecosystem-wiring): W6 closure — scratch-consumer e2e proof (python + cargo) + done.md #1086, rule-tests-surface feat(rule-tests): S5 — guarded consumer pre-push arm + shipped firing runner + /getff routing + umbrella closure (rule-tests-surface S5) #1093, python-delivery-v0 docs(python-delivery): S3 — e2e firing proof + INSTALL-FOR-AI + doc-drift closure + done.md (CLOSES python-delivery-v0) #997, plan-currency-reconcile docs(readme): document react-spa + react-native stacks (plan-currency S3) #792, live-generation feat(live-generation): LG-S4 — ecosystem-python.ts adapter + unwired-debt tripwire #1055.Status: supersededpointing at the absorbing umbrella: the five docs(orchestrator): rescue 5 superseded kickoff design docs from an unpushed branch #1221-rescued kickoffs (fix-735-fresh-install-prepush → fix(install): ship complete pre-push import graph on the FRESH-install path (50-hooks.sh) — closes #735 #775/fix(install): ship pre-push.ts full import graph + drift guard (closes #735) #747; generator-compile-forbid → forbid-mvp feat(synthesizer): S1a no-restricted-syntax forbid pilot (generator-forbid-mvp) #684-chore(generator-forbid-mvp): umbrella closure done.md (Final PR #696) #697; recipe-declarative-tier → forbid-mvp S2 feat(synthesizer): S2 declarative check type + engine seam (generator-forbid-mvp) #689; validator-anti-vacuity → forbid-mvp S3 feat(validator): S3 anti-vacuity gates — single-token-diff + messageId-coverage + autofix-clean (generator-forbid-mvp) #693; rule-bootstrapping-live-adapter → rule-research-live-adapter rule-research live adapter — Phase 1 (live file-clients + manual-drop + portable agent) #805/chore(close): rule-research-live-adapter umbrella done (#805) #809, Decision B), plus install-ast-wiring → migration-ast Stage 4 feat(install): AST-wire R2 into consumer eslint config (migration-ast Stage 4, #547 Layer 2) #632 (GH UX-2026: install should auto-configure by reading the repo (auto-wire rule enforcement + AI-generate project passport) — not ship placeholders + an inert/red gate for the human to reconcile #547 Layer 2 — the PR title names it verbatim) and arch-v2-context-pipeline-s-a-r2 → executed in-session inside S-A fix(arch-v2-s-a): S-A stage — round-1 delivery + round-2 rework from acceptance #1192 (its own header saysSUPERSEDED — do not dispatch).Corrections vs the dispatch evidence list
Closes #811/#812implementation), not by the R-phase docs(generation-live-delivery): R-phase research-patch — generation-as-live-delivery (Q1 parked) #797 the evidence list cited (docs(generation-live-delivery): R-phase research-patch — generation-as-live-delivery (Q1 parked) #797 is the generation-live-delivery research-patch).Untouched (genuinely open)
beta-delivery-ux (+meta-launch), beta-ai-docs-agnosticism, beta-docs-showcase, arch-v2-context-pipeline (+s-d-prime, s-f, meta-launch), getff-freshness-widening, getff-python-dtz-adopt, getff-to-prod-meta-launch, modular-install-fullpack, shipped-artifact-liveness-gap family, phase-10-foundations-audit, heal-honest-capacity, shipped-skill-sync, trust-tiers-did-review, executable-aidocs-and-cargo-followups, h10-verdict-gate-research, stack-tooling-generation, zcode-full-parity-mega-umbrella — plus all residue dirs not on the verified list.
Residue candidates for a possible round 4 (NOT closed here, outside the dispatch list): getff-foreign-scan-triage-meta-launch (parent closed #1174), consumer-install-hardening-s4-meta-launch, zcode-parity-step1-emit-wrapper (+meta-launch), generation-live-delivery-meta-launch, and ~55 older dirs left open by rounds 1-2.
Fidelity verdict
FIDELITY: skipped — closure-record backfill (doc-only, additive
done.mdfiles); no dispatching stage kickoff declares a WHAT to audit against. EveryFinal PRclaim is mechanically sourced fromgh pr view/git logoutput gathered in-session.§1.7 Forward-check applied
operational-conventions.md §1(umbrella closure convention) — this PR is precisely that convention applied retroactively; the binding schema's- Final PR: #<num>line is followed in all 50 files. Evidence: docs/meta-factory/operational-conventions.md:37priority-score.shLayer C3 parse compatibility — every file keeps the greppable^- Final PR: #line; then/avariant and the extra- Status: supersededline are both tolerated by the parser. Evidence: .claude/skills/pipeline/helpers/priority-score.sh:258attention-is-not-a-mechanism.md— no new load-bearing check introduced; the sweep feeds an existing deterministic gate (C3), it does not add attention-dependent detection. Evidence: .claude/rules/attention-is-not-a-mechanism.md:22build-first-reuse-default.md/ Prior-art trailer — not a capability commit (no deps, no code modules; doc-only), per the CLAUDE.md capability-commit definition. Evidence: CLAUDE.md:24§1.7 Backward-check applied
Change class = done.md closure-marker backfill. Sibling surfaces swept:
n/a (deliverable-exists)variant reproduced byte-compatible. Evidence: .claude/orchestrator-prompts/coordination-adopt-hook/done.md:2priority-score.shC1/C2 layers — UNAFFECTED: C3-closed umbrellas are skipped before the expensive C2 jaccard pass, which is the intended fix direction for the s-d-prime false-DONE. Evidence: .claude/skills/pipeline/helpers/priority-score.sh:142git statusshowed exactly 50 additions, all enumerated above.