refactor: remove self-attesting campaign bureaucracy - #3950
Conversation
|
Important Review skippedToo many files! This PR contains 531 files, which is 431 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (27)
📒 Files selected for processing (531)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@codex review Please review exact head |
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 629ceaee30
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact head |
|
@codex review Please review exact head |
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Please review exact head |
|
@codex review Please review exact head |
|
@codex review Please review exact head |
|
@codex review Please review exact head |
|
@codex review Please review exact head |
|
Codex Review: Didn't find any major issues. Swish! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
polylogue/.circleci/config.yml
Line 135 in 7f741f4
Fresh evidence after b6069b3 is that the new devtools.coverage_gate.read_coverage_threshold() requires [tool.coverage.report].fail_under, while this same change removes that table from pyproject.toml; invoking this exact command now raises ValueError: pyproject.toml does not define tool.coverage.report.fail_under before pytest starts. Both CircleCI and GitHub Actions therefore fail immediately instead of running the restored coverage suite, so retain the threshold or make the gate own a valid default.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
The reviewed head |
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f75be1dfca
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 750e9324c1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
750e932 to
5e15303
Compare
|
@codex review Please review exact pushed head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3550ca4ec0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
@coderabbitai review |
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8953f3e82d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Taking the inferred-corpus/schema-drift timeout cluster for Bead polylogue-lvz6. My write scope is tests/property/test_inferred_corpus_loop.py, tests/unit/schemas/test_inferred_corpus_manifest.py, tests/unit/storage/test_schema_drift_samples.py, plus only the narrow production or fixture helpers demonstrated responsible. I will avoid the files owned by PRs #3950, #3952, and #3962, along with the active status, rebuild, and durable-fixture lanes. |
Problem: three non-reconstructible audit records were removed even though open Beads still use them as historical evidence. What changed: restore the exact origin/master records and add a narrow index that marks them as historical evidence rather than current guides or generated gates. Ref #3950
The documentation command checker treated every unknown Polylogue root as a legal free-text query, even though the product CLI rejects unquoted roots without find or field syntax. Generated schemas and active help also retained invalid check, diagnostics, and machine-mode examples. Reuse the live root splitter and shared query-intent predicate, preserve shell quoting while scanning examples, exclude explicitly historical and proposed-design records, and regenerate current command surfaces from executable examples.
Problem: structured canary review references accepted arbitrary Bead and successor IDs, allowing an unexpected difference to be marked reviewed without durable open ownership. What changed: resolve Bead authorities from the exact Git-HEAD issues JSONL through the existing PR-scope parser. Expected Beads must exist; unexpected successors must exist and remain open. Preserve executable index-delta validation and add real manifest-loader regressions for unknown and closed authorities.
Cover the manifest-loader path that rejects an unexpected difference whose successor identifier is absent from the committed Bead snapshot.
5c47314 to
e49a320
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e49a320d15
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Exact-head P1 repaired in 13135b3: restored |
## Summary Validate Bead mutations and dispositions against the exact PR revisions and the prospective post-merge tracker state. ## Problem The v2 PR-scope check derived the merge base from `HEAD` and read candidate Beads from a mutable worktree path. That made the result depend on checkout state even when the caller already had immutable base and head revisions. It also checked some successor relationships against base state rather than the complete prospective base-plus-candidate state, so a PR could misclassify a successor it created or changed itself. An earlier version of this PR attempted to solve a broader candidate-code threat with an organization-level required-workflow ruleset. That design was removed after auditing the actual repository topology: `Sinity/polylogue` is user-owned, so GitHub's organization/enterprise required-workflow rule cannot be installed here. The retained change is the smaller revision-binding correctness fix. CircleCI and the local merge wrapper exercise it only as cooperative defense-in-depth: this user-owned repository has no required-workflow ruleset, and PR-controlled CI configuration can omit the job. Neither path is presented as an unspoofable repository security boundary. ## Solution - Resolve Bead mutation scope from explicit base and head Git objects, including the merge base and exact head `.beads/issues.jsonl` blob. - Build one prospective Bead snapshot by applying the complete candidate mutation set to base state before validating assigned Beads, residual successors, links, and digests. - Keep CircleCI.s existing base-revision validator and commit-to-open-PR fallback as an explicitly advisory signal; do not add an unenforceable workflow or another source-text policy test. - Read candidate Bead records from the immutable `head_sha` Git object whenever a base revision is supplied; mutable checkout paths are used only for revision-less local rendering. - Replace the misleading “authoritative” CLI wording with “base validator” and document the actual enforcement boundary. - Remove the proposed `pull_request_target` workflow, authority-only API, declarative workflow documentation, and 320 lines of tests that only supported the unavailable deployment shape. ## Verification - `direnv exec . devtools test tests/unit/devtools/test_pr_scope.py`: 45 passed. - `direnv exec . devtools verify --quick`: all 10 checks passed in 30.97s (`20260814T035204Z-quick-2171189-9c9a3203`). - `direnv exec . devtools workspace pr-scope check --pr 3973`: `pr-scope OK @ 419ba7d`. - The focused suite uses real temporary Git repositories and committed Beads snapshots; changing the head revision or prospective mutation set changes the verdict. ## Merge ordering #3950 is merged and this PR is retargeted to `master`; its effective delta remains the same two files. ## Bead disposition | Assigned | Mutated | Residual | | --- | --- | --- | | None | None | None | <!-- polylogue-pr-scope:v2 { "assigned_beads": [], "dispositions": [], "mutated_beads": [], "scope_digest": "79a7984a9ec80a157c96dc8d28561159c642c15de3793837eff751fa7eac34a1", "scope_kind": "self_contained", "version": 2 } -->
## Summary Remove declarative artifact topology and its self-attesting verification surfaces. Preserve the single executor apply gate exposed by the retained MCP authority oracle, and make bound executor prevalidation and audit-continuity recovery safe for concurrent and nested use. ## Problem The artifact registry duplicated runtime relationships as manually curated descriptors and code-reference claims. It could attest to itself without proving a production route. The retained MCP write-route oracle also exposed two real integration faults. `OperationExecutor.execute_bound` revalidated a typed plan but called `actuator.apply` directly. Routing the effect through `OperationExecutor.execute` initially used one mutable executor slot, so concurrent callers could overwrite each other's prevalidation authority. Separately, the new continuity write lock covered ordinary execution but not recovery; a concurrently constructed executor could reconcile and promote an in-flight writer's prepared command before that writer applied its domain effect. ## Solution - Delete the declarative artifact graph, generated/control-plane consumers, and artifact-specific source-shape checks while preserving real operation, scenario, daemon, and MCP behavior tests. - Route bound execution's final effect through `OperationExecutor.execute` after typed freshness and audit checks. - Hold the prevalidation scope as an immutable `ContextVar` stack and restore it by token after success or failure. Concurrent threads and async contexts are isolated; nested execution is supported; the bypass is limited to the exact active actuator and plan identities. - Serialize reconciliation, pending-rebind recovery, pre-continuity binding, restore reconciliation, and ordinary continuity writes under the same archive-scoped reentrant lock. - Keep ordinary `execute` calls on stale-plan revalidation. The executor regression uses one production executor, real `TagAddActuator` routes, real archive and audit SQLite tiers, and deterministic barrier ordering. It proves both receipts apply, both tags persist, and both audit runs complete with zero unknown effects. Restoring the former mutable executor slot makes it fail with `MutationTransactionError`. The continuity regression pauses a real source-WAL write after prepare, concurrently starts recovery through a second coordinator for the same archive, proves recovery cannot enter until the writer commits and promotes, and then verifies only the writer applied the command and both durable heads agree. Removing the recovery lock makes recovery steal the pending command and the original writer fail promotion. ## Verification - Focused operation/MCP/scenario/daemon/continuity suite: 129 passed in 21.49s. - `direnv exec . devtools verify --quick`: all 10 checks passed in 27.21s (`20260814T033945Z-quick-2109307-916454c8`). - `git diff --check`: clean. ## Merge ordering #3950 is merged and this PR is retargeted to `master`; its effective 34-file delta is unchanged. ## Bead disposition | Assigned | Mutated | Residual | | --- | --- | --- | | None | None | None | <!-- polylogue-pr-scope:v2 { "assigned_beads": [], "dispositions": [], "mutated_beads": [], "scope_digest": "79a7984a9ec80a157c96dc8d28561159c642c15de3793837eff751fa7eac34a1", "scope_kind": "self_contained", "version": 2 } -->
## Summary Replace Polylogue's bespoke seed, shard, mutation-proof, and repair registries with one automatic native `pytest-testmon` lifecycle owned by plain `devtools verify`. Every managed native pytest lane now runs under a closed-world command and environment contract, including ordinary affected selection. ## Problem The prior harness exposed several repair commands and separate state registries while still allowing stale or incomplete dependency authority. Untraceable runtime-data changes could select zero tests, deleted or moved modules could leave stale graph inputs, inherited pytest controls could suppress test bodies or narrow collection, configured discovery could omit failing tests, and linked worktrees could reuse or replace another checkout's database. Historical verification receipts could also be mistaken for current release authority. Classifying individual pytest options was not a stable security boundary. `--setup-only`, `--collect-only`, positional selectors, `--ignore-glob`, `--last-failed`, configured `addopts`, configured `testpaths`, discovery patterns, and ambient plugins all provided independent ways to change what a managed invocation executed. ## Solution - Make plain `devtools verify` create, validate, copy, repair, and replace native testmon state automatically. No operator or agent seed/repair command remains. - Replace the old shard, seed, testmon-state, and mutation-proof machinery with one native two-lane correctness corpus and one typed verification record. - Give affected, bootstrap, and full lanes one exact positive command contract: the explicit `tests` root, repository-owned file/class/function patterns, an empty recursion exclusion, empty configured `addopts`, and only explicitly owned pytest plugins. - Remove `PYTEST_ADDOPTS` and `PYTEST_PLUGINS` from every managed native child and disable ambient plugin autoload. Record addopts neutralization, plugin neutralization, and closed-world collection for each lane; release authority depends on those recorded invariants. - Validate the complete generated command instead of maintaining a pytest option deny-list. Added selectors, ignores, deselection controls, positional targets, or later overrides invalidate the managed-command receipt. - Force complete selection for untraceable package, test-runtime, and packaging changes. Exclude the intentional performance benchmark tree from correctness graph requirements. - Treat deleted and moved Python paths as bootstrap triggers, then require post-build graph edges only for executable paths that still exist. Ordinary imports are executable; `TYPE_CHECKING`-only imports remain declarations. - Bind testmon SQLite access to one no-follow checkout-owned directory descriptor through preparation, both lanes, and final inspection. Reject symlinked parents, database files, and sidecars; serialize the complete lifecycle with a checkout-local lock. - Keep the checkout mutation monitor active through final Git HEAD and worktree fingerprint sampling on normal, preflight-failure, runner-exception, and interrupt paths. Every exceptional finalization denies release authority. - Pin the validated native plugin range to `pytest-testmon>=2.2.0,<2.3.0` and assert the private schema contract used by the inspector. - Preserve the #3950/#3974 deletion set during the final rebase. Retired campaign, catalog, Beads, and evidence modules were not restored. ## Verification - `direnv exec . devtools workspace verify-worktree /realm/worktrees/polylogue-native-testmon --expect-branch feature/test/native-testmon-lifecycle`: isolated linked worktree verified at exact head `c7556c982384dac9948f142301769088d0eee2da`. - `direnv exec . devtools test tests/unit/devtools/test_verify.py tests/unit/devtools/test_testmon_bootstrap.py`: **227 passed in 34.63s**. This covers exact command construction, all three native modes, typed release authority, finalization paths, lifecycle locking, Git-authority monitoring, schema compatibility, change classification, plugin declarations, and symlink refusal. - `direnv exec . devtools test tests/integration/devtools/test_native_testmon_lifecycle.py -k 'production_affected_verify_neutralizes_execution_suppressing_addopts or production_verify_fails_closed_on_dynamic_pytest_plugins or managed_native_launch_keeps_state_inode_bound_during_parent_replacement or managed_native_routes_reject_replaced_cache_parent or production_verify_all_owns_complete_test_root_over_configured_testpaths or production_verify_all_neutralizes_external_pytest_addopts'`: **14 passed, 17 deselected in 126.43s**. Real nested `devtools verify` invocations prove affected failing bodies execute under inherited `--collect-only` and `--setup-only`; full lanes cannot be narrowed by positional selectors, ignore globs, last-failed state, configured addopts/testpaths/discovery, or ambient plugins; dynamic repository plugin declarations fail closed; and parent replacement cannot redirect managed SQLite state. - `direnv exec . devtools verify --quick`: all 10 format, lint, strict mypy, render, layering, command, schema, and promotion-audit gates passed in **28.17s**. The receipt records matching initial/final head `c7556c982384dac9948f142301769088d0eee2da` and matching worktree fingerprints. - `git merge-base --is-ancestor b0cee7b HEAD`: success. The branch is rebased onto the requested stable master. - All 27 review threads were classified against current code, answered with concrete evidence, and resolved. The final thread was an outdated operations-layer concern on a file byte-identical between exact base and head, so it was recorded as a potentially valid base issue but non-actionable for this verifier-scoped PR. Five independent adversarial review iterations were run. Each in-scope finding was fixed and covered; the loop reached its five-iteration cap after the fifth fixes, so this does not claim an unrun sixth clean iteration. ## Acceptance criteria | Criterion | Disposition | Evidence | | --- | --- | --- | | Fresh main checkouts and linked worktrees acquire usable testmon state automatically | Satisfied | Production lifecycle tests cover absent state, main-checkout build, linked-worktree copy/rebind, malformed cache recovery, and atomic replacement. | | Runtime or packaging data changes cannot yield a green zero-selection run | Satisfied | Change classification forces the complete correctness corpus, including additions and deletions. | | Deleted and moved modules cannot preserve stale release authority | Satisfied | Deleted paths trigger bootstrap while post-build requirements include only extant executable paths; real deletion and rename routes are covered. | | Ambient or configured pytest controls cannot suppress bodies or narrow managed authority | Satisfied | All native lanes own the exact command, environment, plugins, discovery, and explicit `tests` root. Production regressions observe failing parallel and load-sensitive bodies. | | Parallel and serial lanes use the same authority contract | Satisfied | Both commands come from one builder and every aggregate requires both lanes to attest neutralization and closed-world collection. | | Testmon state replacement is checkout-owned and race-safe | Satisfied | Parent/file/sidecar validation, no-follow directory binding, lifecycle locking, and mid-run parent replacement tests cover the production route. | | Historical or exceptional receipts cannot grant current release authority | Satisfied | Typed scope compatibility remains diagnostic; checkout drift, preparation failure, runner exceptions, and interrupts finalize with release authority denied. | | Manual seed, shard, and repair bureaucracy is removed | Satisfied | Legacy commands, registries, mutation-proof modules, seed-recovery suite, and scale-fixture registry remain deleted after rebasing. | ## Remaining scope `polylogue-lvz6` still owns final release-authority convergence. This PR supplies the automatic test-selection and baseline substrate; it does not claim that the production archive is release-ready. ## Stack resolution The branch is rebased directly onto stable master `b0cee7b99c36a7f8eb94bf122782255f42072709`. No further retarget or intermediate restack is required. <!-- polylogue-pr-scope:v2 { "assigned_beads": [], "dispositions": [], "mutated_beads": [], "scope_digest": "79a7984a9ec80a157c96dc8d28561159c642c15de3793837eff751fa7eac34a1", "scope_kind": "self_contained", "version": 2 } --> ## Exact-head review follow-up At `43fee85a2a47512e5da9efaebde7f38bc5aaed47`, all four current review findings were fixed and covered. - Release-baseline bootstrap and `--all` lanes now force the full Hypothesis profile, and native environment preparation receives that explicit profile identity. - The lifecycle lock is opened through a no-follow cache directory descriptor and checked as the same checkout-owned regular inode before it is truncated or written. - A transient tracked-file mutation observed during changed-path classification or native preparation now makes the final exact-head receipt ineligible, even if the file is restored before pytest begins. - Merge-train help and pending-status guidance now require a release-baseline `devtools verify --all` receipt; a narrow selection is explicitly described as insufficient. ## Review-fix verification - `direnv exec . devtools test tests/unit/devtools/test_verify.py::test_native_testmon_lifecycle_lock_refuses_symlink_without_touching_target tests/unit/devtools/test_verify.py::test_preparation_mutation_withholds_release_authority_after_restoration tests/unit/devtools/test_merge_boundary.py::test_train_status_requires_release_baseline_guidance tests/integration/devtools/test_native_testmon_lifecycle.py::test_release_native_runs_override_a_reduced_hypothesis_profile`: **5 passed in 19.50s**. The production regression invokes both automatic-bootstrap and `--all` routes with `HYPOTHESIS_PROFILE=verify`, while each fixture test asserts the full 100-example profile and the receipt grants release authority. - `direnv exec . devtools verify --quick`: all 10 quick gates passed in **25.78s** at the exact head above. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Verification automatically prepares, repairs, and validates its test state. - Verification history now reports clearer outcomes, resource usage, cleanup, containment, and deadlines. - Release-baseline verification is required for full merge validation. - Nightly large-scale benchmarks now run as an explicit four-test campaign. - **Bug Fixes** - Improved handling of invalid, interrupted, or outdated verification state. - Safer behavior for linked worktrees and temporary files. - **Documentation** - Updated verification and contribution guidance for the streamlined workflow. - **Tests** - Expanded coverage for native verification, worktrees, recovery, deadlines, and benchmarks. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Codex <noreply@openai.com>
test_lab_scenario asserted the scenario listing reports a baseline artifact_count, which #3950 deliberately removed as self-attesting bureaucracy -- reader-visual artifacts are produced into a report directory when the scenario runs. The case is literally named "reports_live_paths_without_baseline_counts", so it now asserts the key is absent rather than positive. test_resilience expected message ids without the position discriminator (`<session>:0.0` rather than `<session>:p:0.0`). The generated column carries `COALESCE(native_id, 'p:'||position||'.'||variant_index)`, so these rows -- which have no native id -- take the `p:` form. Verification: devtools test tests/unit/devtools/test_lab_scenario.py -> 11 passed (was 10 passed, 1 failed). devtools test tests/unit/pipeline/test_resilience.py -> 24 passed (was 23 passed, 1 failed). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HWcPJJJvuF25CqVwTFgSQC
polylogue-g8v5z asked how to bind the executable ARCHIVE_VERIFICATION_CHECKS registry to the conceptual incident ledger. That ledger was deleted in c17e385 (#3950) and no copy survives in the tree; its verify step is gone from the pipeline. Meanwhile all 26 checks now carry a populated, distinct invariant_id equal to the check name, plus a coarser bead_id grouping -- the identity field whose absence stopped the lane. So there is no two-plane mismatch to arbitrate, and polylogue-reindex-registry-two-plane-subset was blocked on a stale premise. That unblocks polylogue-t0m73 (P0). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HWcPJJJvuF25CqVwTFgSQC
## Summary Deletes 5 of the 8 devtools modules the WS-C pruning ledger's tranche-1 table listed for deletion, plus their catalog entries and tests. Three named rows (`dev_loop`, `mutmut_campaign`/`run_campaign`, `proof_world_real_slice`) turned out to be live or contested on verification and are explicitly excluded — see Problem below. ## Problem `.agent/campaigns/2026-08-overhaul/ws-c-devtools-pruning.md` catalogs ~139 devtools modules toward a ~45k LOC / ~55 command target. Tranche 1 lists 8 "retired-workflow fossil" rows as high-confidence deletions, gated on a per-row checklist (rule 5, "EVIDENCE BEFORE DELETION"): re-grep `.beads-hooks/`, `.circleci/config.yml`, `.claude/hooks/`, `scripts/`, and `.github/workflows/*.yml` for module invocations before deleting, because string-keyed CLI dispatch and shell-invoked entrypoints don't show up in an import-graph grep (this is exactly how `pre_push_gate` and `coverage_gate` were wrongly flagged for deletion in the ledger's own 2026-08-18 correction pass). Re-running that checklist per row (the ledger's 2026-08-19 spot-check had already run it, but omitted `.github/workflows/*.yml` from the grep target list) found two more wrong entries before this PR was first opened, and a third was caught afterward by cold adversarial re-verification: - **`dev_loop` (3,844 LOC + a cited product-side family in `daemon/http.py`, `daemon/cli.py`, `route_contracts.py`)** is not dead. It's catalog-registered as `workspace dev-loop` with a large flag surface (`--prepare`/`--launch-daemon`/`--capture-cli`/`--receiver-smoke`/etc.), has a 1,629-line test file, and a 757-line doc (`docs/dev-loop.md`) linked from `docs/README.md`'s nav — last touched by a real feature commit 5 days before this PR (#3333, "close remaining polylogue-5en gaps"). The ledger's citation ("devloop workflow explicitly retired, CLAUDE.md: do not resurrect") is a name collision: CLAUDE.md's retirement note is about the unrelated bespoke Beads/conductor-packet workflow, not this branch-local daemon/browser-capture preflight tool. - **`mutmut_campaign` + `run_campaign` (624 LOC)** are two unrelated modules the ledger conflated by name similarity. `mutmut_campaign.py` (catalog: `bench mutation`) is invoked weekly by `.github/workflows/mutation-testing.yml` (`devtools bench mutation run "$campaign"`) — exactly the grep the spot-check missed by skipping `.github/workflows/`. `run_campaign.py` (catalog: `bench synthetic`) is a separate, live-tested command (`test_benchmark_campaigns.py::test_run_campaign_skips_seed_archive_for_daemon_live`) driving the ledger's own NEEDS-EVIDENCE/default-keep `large_archive_generator` + `synthetic_benchmark_runtime` modules; it has nothing to do with mutation testing. - **AUDITED AND EXCLUDED (found by cold verification after this PR's first push, restored in a follow-up commit): `proof_world_real_slice` (440 LOC + test)**. The ledger's row cited it as belonging to the closed `jxe` uplift campaign, but the module's own docstring and its test both cite `polylogue-212.11` instead — an **open, P3** bead whose notes name this tool as "the harness half of the real-archive-data extension" with a pending, unpromoted deliverable. Same name-collision failure class as the `dev_loop`/`mutmut_campaign` catches above, just missed on this row during the original per-row pass. Restored verbatim (module, test, and the `demo real-slice-screen` CommandSpec) from before deletion. All three exclusions were reported to the coordinator (the first two before this PR was opened, the third as soon as cold review surfaced it). ## Solution Deletes the remaining 5 rows, each independently re-verified clean (no hook/CI/doc/production references beyond the module's own catalog entry and test file): - `claim_vs_evidence.py` + `claim_vs_evidence_evidence.py` (+ both test files) — the `polylogue-sru` campaign closed with terminal artifacts 2026-07-06; this CLI re-proved an already-recorded claim. The durable production primitive it wrote through, `PublicClaimProjection` (`polylogue/insights/measurement/public_claims.py`), is untouched and lives independently. Trimmed `docs/findings/claim-vs-evidence.md`'s now-dead "Reproduce"/"Regenerate" sections (they invoked the deleted command) while keeping the finding's substantive text as a frozen historical record — the 2026-08-14 purge (#3950) had already retired "the closed claim-vs-evidence campaign's private-report/calibration/publishing harness" in spirit; this PR finishes that. - `turso_probe.py` (+ test) — Turso storage-backend research (#2257/#2281, June) concluded; direction settled on SQLite independence + Sinex mode. - `resume_ranking_eval.py` (+ test) — orphan: no catalog entry, no importers beyond its own test. - `help_latency_probe.py` (no dedicated test file existed) — one-shot CLI-latency research; not wired into any gate. - `temporal_read_profile.py` + `temporal_archive_aggregates.py` (+ both test files) — one-shot read-profiling research (July 2). Each deleted module's `CommandSpec` was removed from `devtools/command_catalog.py`, then `devtools render devtools-reference` regenerated `docs/devtools.md`. No CLAUDE.md tooling-list lines named any of the six deleted commands, so none needed trimming there. `proof_world_real_slice`'s `CommandSpec` was restored to the same spot in the follow-up commit and `devtools render devtools-reference` re-run. ## Verification - `devtools render all --check` — exit 0, no `out of sync` surfaces. - `devtools verify --quick` — `"status": "success"`, `"exit_code": 0` (run again after the `proof_world_real_slice` restore, still green). - `devtools verify` (full, complete-corpus) — `"status": "success"`, `"exit_code": 0`, `"terminal_green": true`, `"complete_corpus_covered": true`, `"non_green_count": 0`, `"release_baseline_allowed": true`. - `devtools test tests/unit/devtools/test_proof_world_real_slice.py` — 20/20 passed, confirming the restored module's tests are intact. - `python -m devtools.verify_doc_commands` — `67 doc files scanned, no stale commands` (caught and fixed one accidental literal reference to the now-deleted claim-vs-evidence command in the trimmed findings doc). Anti-vacuity: pure deletion (plus one restoration); reachability evidence per surviving row is in the ledger plus the re-verification above (all rows independently re-grepped against `.beads-hooks/`, `.circleci/config.yml`, `.claude/hooks/`, `scripts/`, `.git/hooks/`, and `.github/workflows/*.yml`, and cross-checked against `docs/` and git log recency). ## Bead disposition matrix This PR does not close, claim, or otherwise mutate any Beads issue — it is pure code/doc deletion against the campaign's markdown ledger, not a Beads tracker item. `mutated_beads` is empty; using the `self_contained` scope carrier. `polylogue-212.11` is cited as evidence for the `proof_world_real_slice` exclusion but is not touched, claimed, or closed by this PR. Candidate follow-ups for the coordinator (not closed by this PR): | Item | Note | | --- | --- | | Tranche 1 revision | The ledger's tranche-1 table and its "Est. ~8.6k LOC" total need updating to remove `dev_loop`, `mutmut_campaign`/`run_campaign`, and `proof_world_real_slice` as confirmed-live/contested, plus record the `.github/workflows/` gap in the spot-check methodology so future tranches don't repeat it. | | Tranche 2 execution | Unblocked to proceed independently; nothing in this PR touches tranche-2 rows. | ## Verification commands run ``` devtools render all --check devtools verify --quick devtools verify devtools test tests/unit/devtools/test_proof_world_real_slice.py python -m devtools.verify_doc_commands ``` <!-- polylogue-pr-scope:v2 { "assigned_beads": [], "dispositions": [], "mutated_beads": [], "scope_digest": "79a7984a9ec80a157c96dc8d28561159c642c15de3793837eff751fa7eac34a1", "scope_kind": "self_contained", "version": 2 } -->
Summary
Remove self-attesting campaign machinery while retaining executable product behavior, durable authority, operational safety, and independently valuable verification.
Problem
The repository had accumulated generated mirrors, passive ledgers, campaign packets, duplicate tracker projections, source-text scans, one-shot reports, and tests that proved only their declarations. They increased maintenance cost and made process artifacts look like runtime authority. Review of the purge also exposed real defects in destructive deletion, raw-authority proof binding, canary authority, benchmark reporting, and continuity replay isolation.
Solution
Verification
167 passed in 154.70s.1 passed in 18.92s(previous redundant path was roughly 26–30 seconds).devtools render all --checkpassed.20260814T031542Z-quick-1912950-306d6f9e).20260814T033106Z-quick-2033174-5bd70dec).Scope disposition
This is self-contained repository cleanup and correctness repair. It assigns or mutates no Beads. #3952 merged first; this branch is now rebased onto that exact master, with the 98-test production-route suite and quick gate run at parent
e49a320d, then the published-migration repair verified at final head13135b37. The merge train still requires its terminal complete-suite/testmon receipt.