Repository navigation
feat(comments): repository-wide no-code-comments gate + atomic strip/re-pin wave for 22 receipt paths (lane-05) - #189
Conversation
…d CI step Adds scripts/check_no_code_comments.py --all-tracked (ticket code-comments-20261113-05-final-audit): re-enumerates every tracked path via git ls-tree -r HEAD (git ls-files rejected: empty-index silently reports zero files in a detached worktree), classifies through language-aware backends in scripts/lib/no_code_comments_backends.py, and fails on handwritten comments. Allowlist classes, each with evidence rather than path-shaped trust: - go compiler/tool directives (go:*, //line, extern, export, #cgo), shebangs, shell/py/dockerfile tool directives, gomod // indirect, and JS tool directives (@vitest-environment 64 uses, eslint, ts-*, istanbul, __PURE__). - generator-provenance: 14 generated/ files + 2 gqlgen resolvers bound to generator + make regen command AND a required banner regex; a generated-path name or forged banner alone never exempts (provenance violation recorded). - governance-directive: stage_sequence.go D-16a attribution string, asserted verbatim by TestSQL16LawCells. - ledger-bound-pinned: the files-dict keys of both verification reviewed-sources.json ledgers (158), zero-diff byte contracts. - checksum-payload: postgres migration .sql executed through pgstore.LoadMigrations/MigrateSchema, which sha256-pins file bytes into the migration ledger (store/migrate.go:118, ErrMigrationChecksumMismatch :42, ledger INSERT :499); stripping changes hashes = deployed-DB behavior change. Bound by path evidence, never bare .sql (coordinator ruling 2026-11-13). - fixture-payload: the 8 ab05_pre_refactor testdata migration dirs. Markdown/log/data assets and binaries inventoried; unsupported formats reported and exit nonzero, never silently excluded (fail-closed classifier). scripts/tests/test_no_code_comments.py: 29 fixtures incl forged banners, fake .gen.go, commented-out code/TODO failures, directive/docstring/ string-URL-regex-template passes, markdown exclusion, payload binding by path evidence, ledger-bound pass, and self-compliance of checker/lib/tests/CI file. CI: wired as 'No-code-comments gate' in the tests.yaml ui-unit job after npm ci so the TS scanner resolves ui/node_modules/typescript.
…e files Removal wave for ticket code-comments-20261113-05-final-audit against the lane-04 lever (comment-stripped token/AST sequence identical pre/post, per language: go/scanner token-stream + go/parser + gofmt; acorn tokenize + ESTree equality). Evidence: levers-lane05/out/strip-all.json, all seven rows tokensEqual=true, parseOK=true. - scripts/run-arango-integration.mjs (207 removed), scripts/run-postgres-integration.mjs (206), scripts/run-postgres-integration.test.mjs (26), scripts/run-arango-integration.test.mjs (10): runner freeze lifted per coordinator ruling (2); node --check clean on all four, both own test suites pass (7/7, 37/37), importers (check-go-test-events.mjs, verification-inventory.mjs, pg-exec-03-skipset-verify.mjs) load, profiles registry (10 legs) intact - token identity guarantees the d42e7a5 spine-leg registry and 710f3bc strip survive untouched. - internal/catalog/helpers.go (3 doc comments). - internal/dataframe/compiler/render/postgres/stage_sequence_test.go (2): D-16a attribution remains satisfied in this file via the TestSQL16LawCells const attribution literal; decorative //nolint:govet removed (no linter consumes it anywhere in the repository). - stage_sequence.go: net-zero (its only comment is the governance-mandated D-16a attribution, restored and classified as an enumerated governance-directive). Go: go test -count=1 green for internal/catalog and the render/postgres package (incl TestSQL16LawCells); go build ./... clean; gofmt clean.
WEAK-CITATION hardening (ticket code-comments-20261113-05-final-audit): danglingCheckCitations (dangling_binding_e2e_test.go:84) and rrdCheckCitations (release_dangle_reconcile_e2e_test.go:85) accepted a citation when the want string appeared anywhere in the cited file, so a comment naming the right string on the wrong line passed the trust check. Adds shared citationLineMismatch: requires the want string at the cited line (TrimSpace-equal) and rejects past-EOF and non-positive line numbers; both e2e citation checks now call it. e2e paths stay gated on LOOM_TEST_ARANGO_URL as before. internal/backends/arango/internal/publication/citation_gate_test.go: 8 offline regression fixtures (exact-line accept, whitespace-trim accept, wrong-line fail - the forgery case, near-miss fail, past-EOF fail, non-positive-line fail, dangling table strict, rrd table strict); mutation control confirmed: reverting to the weak any-line scan turns the wrong-line fixture red.
…, not run failure
HARNESS-FINDING-ARANGO-CLEANUP-CATCH (coordinator assignment, same wave as
the lane-05 strip, separate commit so the strip token-identity proofs stay
clean). The runArango finally-loop marked the whole run failed whenever a
post-verification database-drop attempt threw a transient transport error,
even though every profile had already passed verification.
Extracts cleanupOwnedDatabases(endpoint, owned, evidence, request = fetch)
(following the ownDatabase injection pattern): thrown transport/timeout
errors now append {database, transportError} to evidence.cleanupAudit with a
[cleanup-audit] console warning and leave the run verdict untouched; an
explicit HTTP response outside ok/404 still hard-fails (environment contract
violation); ok/404 outcomes record as before.
Regression fixtures in run-arango-integration.test.mjs (3 new, 10/10 suite):
transport failure keeps a passed run passed with 2 audit records + warnings;
403 refusal fails the run with the original 'Database cleanup HTTP 403'
record and pinned request shape; 200/404 pass through recorded.
…esolvable-key inventory
Ledger pinning alone never exempts handwritten comments (C0 ruling): the
ledger-bound-pinned allowlist class is removed; pinned paths are inventoried
('ledger-bound') but comments there are violations like anywhere else. Keys in
either reviewed-sources.json files{} that match no tracked path are inventoried
as 'unresolvable-ledger-key' (visible, never gate-red; deferred hygiene ticket,
per C6). Adds js-tool-directive class entries for EXTRACT-START/END tool
sentinels (consumer: row96-killtree-escalation probe). Fixtures: 35 incl
policy-flip, unresolvable-class, EXTRACT sentinel + lookalike, vitest-env
repo-file checks.
Lane code-comments-20261113-05-final-audit (AO loom-experiment-213).
…aring paths (lane05, OPTION A ATOMIC) Comment-only removal with token/AST-sequence-identical proof per language (TLA+ lexer + token streams, TS/JS parse, gofmt) across 12 models and 7 code files; 3 UI-family files retain only tool-directive comments (EXTRACT sentinels, @vitest-environment, eslint-disable). Atomic scoped re-pin of publication-bundle reviewed-sources.json (coordinator scope authorization; strictly the md5/sha receipt fields for these wave paths): 23 machine digest fields recomputed TRUE vs post-strip blobs + 2 in-scope pre-existing-stale rows restored (waveBytesChanged=false recorded), 26 lane05Repin receipt blocks (#183 3040a67 hash-entry-only style), historical prose never rewritten (sibling Amendment annotations). FINDINGS.md / OPERATOR_REVIEW_DIGEST.md amendments annotate pre-strip digests; SKILL.md canonical probe value updated live. Proofs (artifact lane05-final-audit-census.json): - canonical probe PASS: disk == git blob == canonicalProbe.expectedMD5 - C5 TLC: all 52 receipt-cited arms determinate and matching receipts (witness depths baseline 9 / f2 15 / f3 7; controls complete 14,608,028 distinct); 3 unreferenced Horizon-8 dotfile ctrls not receipt-cited (Horizon-3 twins clean); negative controls 0 false-executions - C1 builder-formal source-proofs / trace-controls / generated phases exit 0 - gate: scanned 2963, violations 0, unsupported 0 - node --check + consumer suites + go vet/test-compile green post-strip - pre-existing-drift disclosure: recipe_execution_reader.go pin predates base; 46 out-of-scope stale rows inventoried, not touched (C6 deferred hygiene) Refs lane code-comments-20261113-05-final-audit (AO loom-experiment-213).
…added to tests.yaml Gate-completion repair: this lane's CI step fails on head while any handwritten comment exists; the comments were introduced by #184 after the wave population was fixed. Comment-only, YAML document-tree equality proven by proof_yaml.mjs (equal=true); all jobs, steps and ids unchanged. Not a #184 logic edit; job semantics untouched. Refs lane code-comments-20261113-05-final-audit (AO loom-experiment-213).
…resolve CI caught what the dev environment hid: the python-unit job has no node_modules, so the typescript module is unresolvable there, and scan() crashed instead of failing closed. TypeScript-family files (.js/.mjs/.cjs/ .mts/.ts/.tsx/.jsx all scanner-backed) are now inventoried 'unsupported' (gate-red via the existing unsupported exit rule), never silently passed. Fixtures: scanner-dependent tests declare their skip via ts_available() (ToolSentinels, unresolvable-keys repo scan), and a new bare-runnable test proves the fail-closed routing (unsupported inventory, empty violations, empty allowed). Self-compliance preserved: fail-closed note is a docstring, not a hash comment. Bare mode: 84 OK (11 declared skips). Full mode: 84 OK. Refs lane code-comments-20261113-05-final-audit (AO loom-experiment-213).
matthewpeterkort
left a comment
There was a problem hiding this comment.
NEEDS CHANGES. Review of head 85ab5ac (35 files, +2226/-1276). Three required changes are filed inline. CI at head is not green: Tests / Python tests fails with 5 errors in the new checker suite, and the overall run 43443590349 was cancelled, so the Go unit and Actual Arango legs produced no head evidence and need a re-run. Source proofs (4/4) failed only at Bootstrap pinned formal tools with curl HTTP 429 from setup-formal-tools.mjs obtain(); shards 1-3 passed, so that reads as an upstream rate limit rather than a change in this PR, but it still needs a green re-run. What is solid: the citation gate is a real strengthening, replacing file-wide contains with line-exact equality plus adversarial cases, and I checked both citation tables against head. The cited files are not line-shifted by this wave, since bundle_store.go is a same-line edit, so the strict checks are consistent. Not verifiable from the review position: the 22 re-pinned md5/sha receipts. No hashing tool is permitted in this review sandbox and nothing under scripts/ reads canonicalProbe or expectedMD5, only the ledger plus prose in FINDINGS.md and SKILL.md, so the digests were not independently recomputed; FINDINGS.md itself already records 42 match / 3 drift across 45 hash-bearing pins. The three publication docs this PR edits keep stale .files pins that had already drifted at base 7e081f4, so that is pre-existing rather than introduced here. Optional, not blocking: checkCitationTableStrict passes vacuously if a citation table is ever emptied, so add a length floor in the house anti-vacuity style; and cleanupOwnedDatabases now leaves evidence.status untouched on transport failure while nothing consumes evidence.cleanupAudit, which is acceptable for an ephemeral CI service but silent for local runs, so consider surfacing leftovers in summary.json.
…il-closed guard-quoted gate class CI (PR #189, head 1e52b4e) failed 8 tests in two packages: the FB20 STEP 0 anchor table (recipe_execution_reader_authz_e2e_test.go), publish_partial_pointer_e2e_test.go, and pointer_name_nul_ambiguity_e2e_test.go quote doc-comment prose verbatim as claim-source drift anchors; the lane05 strip wave orphaned those quotes in recipe_execution_reader.go, bundle_store.go, and internal/catalog/helpers.go. Retain guard-quoted anchors per lane02 precedent (retain commits recorded inside 4878319): all three files restored byte-identical to their 90267c0 base blobs (git hash-object verified). Systematic orphaned-quote sweeps re-run over the whole branch: forward (deleted comment lines vs test corpus) and reverse (25+ char test literals absent from non-test sources at HEAD but present in pre-strip blobs) show 0 remaining orphaned quotes; the only other hits are path-string citations against live production files (verified) and duplicated citation-gate helper code from this branch's own in-test refactor d566977. Gate: new allowlist category guard-quoted -- a comment block is allowed iff some line (marker-stripped, >=25 chars) appears verbatim in a tracked test-family file (excluding itself); corpus is built from the same enumeration as the scan and failure to build allows nothing (fail closed). Seven GuardQuotedAnchors fixtures pin the semantics: unquoted stays red, sub-threshold quote red, quote outside test files red, self-quoting test file red, quote removal flips back to red. scripts/tests suite 91/91. Adversarial controls re-run against the patched gate: positive (planted ts comment -> exit 1 VIOLATION) and mutation (typescript removed -> exit 1, 638 UNSUPPORTED). Ledger: lane05Repin blocks gain postStrip history + guardQuoteRestore receipts; bundle_store sha256 net-nil (returns to #183 value 1dce5b82c3...), reader sha256 set to true base-blob value b00d64740d... matching preExistingDrift. helpers.go has no ledger row. Verification: go test ok on resolver, clickhouse, catalog, arango (publication, dataset, root), dataframe/published, dataset, server, conformance/compiler; gate scanned=2969 violations=0 unsupported=0 with 7 guard-quoted allows.
… governance-directive gate class, python-unit ts resolution PR #189 review threads (coordinator triage 2026-11-13, batched one-wave order): T2 (CONFIRMED FINDING, thread PRRT_kwDOS-yV5s63I8f9): the 5f36dbe strip removed the file-level D-16a attribution comment from stage_sequence_test.go, which TestSQL16LawCells exists to protect; the own-file check was self-satisfying (const literal contains the asserted text, so strings.Contains(ownSource, attribution) was vacuous). Fix: (1) attribution line restored byte-identical to 7e081f4 (diff-verified); (2) law cell now requires the comment-line form '// D-16a attribution (mandatory, coordinator ruling 2026-11-11): ' + attribution, so the const alone can no longer satisfy it; go test -run TestSQL16LawCells green. (3) gate class closed, not just instance: GOVERNANCE_ATTRIBUTION in the allowlist matches D-<id> attribution + dated coordinator ruling on one line at ANY path -> category governance-directive (never strip-eligible; both tokens on one line closes the cross-line forgery). stage_sequence_test.go registered in GOVERNANCE_DIRECTIVES with tool linkage. 6 GovernanceAttribution fixtures incl forged-negatives: prose citing a ruling without the D-id token RED, D-id without dated ruling RED, tokens on separate lines RED, registered-path pattern scope pinned, repo file scan pinned. (4) one-off sweep proof (class closure): every non-md tracked line containing 'coordinator ruling' at 7e081f4 (3 lines, 2 files) present at wave head; table in artifact c8GovernanceAttributionRepair. //nolint:govet removal in same file left per coordinator pre-approved class. T1 (STALE, thread PRRT_kwDOS-yV5s63I8fu): the five python-unit failures (LedgerBound unresolvable-keys + 4 ToolSentinels, RuntimeError ts scanner unavailable) were from run 43443590349 at 85ab5ac; ts_available() guards + fail-closed routing landed at 1e52b4e/bdc036c1. Reviewer's real ask honored too: scanner now RESOLVABLE in python-unit (Install UI dependencies step mirroring node-unit + LOOM_TYPESCRIPT_DIR export), so those tests execute in a CI job instead of skipping everywhere; suite 97/97 with 0 skips under LOOM_TYPESCRIPT_DIR. T3 (documentation, thread PRRT_kwDOS-yV5s63I8gD): 18 unresolvable ledger keys subclass-tagged in artifact c6LedgerHygienePending: 15 A-stale-path-moved-or-renamed (arango relocations under internal/backends/arango/, deleted postgres/aliases.go) vs 3 B-malformed-non-path-key (two '... [pkg]' labels, one '....go.explorer'); checker already prints the named UNRESOLVABLE-LEDGER-KEY class; non-red deferral stands per coordinator ruling; hygiene ticket owns the split. No ledger impact: stage_sequence_test.go has no reviewed-sources.json row. Gate: scanned=2970 violations=0 unsupported=0. Refs lane code-comments-20261113-05-final-audit (AO session loom-experiment-213).
matthewpeterkort
left a comment
There was a problem hiding this comment.
APPROVED - no changes required. Re-review at head d6889e2 (base 492d3f0 after the origin/feature/postgres-backend merge 27f6d1c; 32 files, +2449/-1269). All 21 checks pass at head, including Tests / Python tests, Tests / Go unit tests, Tests / Actual Arango integration, Formal models and generated replays, and Source proofs 1/4 through 4/4, so the earlier red Python job, the cancelled run, and the Source proofs 4/4 curl 429 bootstrap failure at 85ab5ac are all resolved.
Prior threads, all closed. (1) TypeScript scanner resolution. Fixed on both axes. The production gate now fails closed: when detect_ts_family raises, every ts-family file is routed to the unsupported inventory, which the existing unsupported rule already makes gate-red, so ts files can never be silently passed; test_scanner_absence_routes_ts_family_to_unsupported_fail_closed proves that routing by monkeypatching the scanner to raise. Separately, python-unit now installs the ui dependencies and exports LOOM_TYPESCRIPT_DIR (tests.yaml 542-547), so the scanner-dependent assertions actually execute in CI rather than skipping everywhere, which was the anti-vacuity requirement. (2) D-16a attribution. The comment is restored byte-identical, and TestSQL16LawCells no longer satisfies itself: it now searches for the contiguous comment-line form, so the const literal alone cannot pass. The gate class is closed too, via GOVERNANCE_ATTRIBUTION plus a registered GOVERNANCE_DIRECTIVES entry, with forged-negative fixtures for missing D-id, missing dated ruling, and tokens split across lines. I confirmed the check is genuinely non-self-referential, because the searched concatenation does not occur contiguously in the test source. (3) Unresolvable ledger keys. I verified the deferral is legitimate rather than avoidance: the files key set is identical at base and head, 129 keys on both sides with identical names, so all 18 unresolvable keys including internal/backends/postgres/aliases.go, the relocated internal/*/arango paths, and the bracket-suffixed labels are pre-existing debt, not introduced by this wave. Deferring reconciliation to the hygiene ticket is a reasonable coordinator call.
Also checked in the new commits. The three guard-quoted anchor files are now byte-identical to base 492d3f0 and have dropped out of the PR diff entirely, so restoring them to pre-strip blobs did not revert any base work, which was the main regression risk in bdc036c. The guard-quoted corpus is fail closed: an OSError during corpus build yields an empty corpus and the empty corpus allows nothing, self-quoting is excluded, and there is a 25 character floor. The removed nolint govet directive is inert because vet.mjs runs go vet and no golangci-lint configuration exists in the tree, so nothing consumes nolint. Citation tables remain valid, since bundle_store.go is back to its base blob and therefore none of the cited lines shifted.
Not verifiable from the review position, unchanged from last round: the 22 re-pinned md5 and sha receipts. No hashing tool is permitted in this sandbox and nothing under scripts reads canonicalProbe or expectedMD5, so the digests were not independently recomputed; FINDINGS.md still records 42 match and 3 drift across 45 hash-bearing pins, and the three publication docs keep .files pins that had already drifted before this PR.
Optional, not blocking. The guard-quoted test is a substring match over the whole text of any tracked test-family file, so prose of 25 characters or more placed inside a string literal in any test file whitelists the same prose as a production comment; if the class proves load-bearing, consider requiring the match inside a parsed string literal or an explicit anchor-file allowlist. GOVERNANCE_ATTRIBUTION likewise accepts any line carrying a D-id token plus a dated ruling with a free-text tail, so a fabricated id and date could smuggle prose; pinning the set of known D-ids, or requiring the attributed line to be referenced by a law-cell assertion, would close that. guard_quoted depends on the corpus, so a single-file scan invocation cannot use the class at all; harmless for the all-tracked CI gate but surprising for ad-hoc runs. The unresolvable-ledger-key bucket has no count floor fixture, so growth there is silent; worth folding into the hygiene ticket. And if golangci-lint is ever adopted, nolint needs adding to GO_DIRECTIVE.
Summary
Lane-05 (
code-comments-20261113-05-final-audit): repository-wide handwritten-comment gate, its fixture matrix, CI wiring, and the unified strip + atomic re-pin wave for the 22 receipt-bearing paths (coordinator ruling: OPTION A ATOMIC, both populations in this one PR).Machine-path accounting (corrected): 22-path atomic receipt-bearing population = 19 machine-stripped + 3 guard-quoted restored byte-identical (
recipe_execution_reader.go,bundle_store.go[net-nil vs #183 pin],internal/catalog/helpers.go— absent from the PR net diff). Residual wave5f36dbec: 4 runner mjs +helpers.go;stage_sequence_test.gorestored in the review wave (attribution back,//nolintremoval pre-approved).tests.yaml: 12 prose comments removed + gate step added. Two UI-family ledger rows carriedwaveBytesChanged=false(listed, not byte-changed).Coordinator scope authorization (recorded per ruling): scope was extended beyond
scripts/+.github/toverification/publication-bundle/{FINDINGS.md, OPERATOR_REVIEW_DIGEST.md, SKILL.md, reviewed-sources.json}strictly for md5/sha receipt fields of the wave paths — nothing else in either ledger.Commits (10)
d7e134c4gate:scripts/check_no_code_comments.py --all-tracked(4-language backends incl. fixed TS scanner template path, nginx quote-aware#lexing), 29→35 fixtures, allowlist classes with evidence, CI step intests.yaml5f36dbecstrip wave 1: 4 runner mjs + 2 go (token-identical)d5669771citation-line accuracy enforcement for arango dangle gates (WEAK-CITATION hardening)e4ddaaf1arango runner cleanup transport-failure audit status (separate identity-proven commit per ruling)ab65fe5bchecker policy: ledger pinning never exempts comments (zero-suppression);unresolvable-ledger-keyinventory; EXTRACT-sentinel directive classc9ab396eatomic wave: 12 tla + 7 code files stripped (token/AST identity) + scoped re-pin ofreviewed-sources.json(25 machine fields, 26 receipt blocks, fix(verification): re-pin 10 comment-sweep-broken digest entries in the publication-bundle ledger [ledger-digest-repair] #1833040a679amendment style) + doc amendments85ab5acegate-completion strip of.github/workflows/tests.yaml: explicit disclosure — this commit removes 12 handwritten YAML comments that merged commit7e081f49(feat(pg): PostgreSQL adapter for ActivateRepositoryGeneration - second CAS of repository publish #184, PostgreSQL repository-publish spine) added to the workflow after this lane's 22-path population was frozen. Removal is required by this PR's own CI step (head must be comment-free), kept as a separate commit so the edit to merged content is auditable without archaeology; comment-only — YAML document-tree equality proven via proof_yaml.mjs (equal: true), all jobs, steps, and ids unchanged, zero logic. Independently confirmed by the coordinator: non-comment lines identical to parent. This is not a feat(pg): PostgreSQL adapter for ActivateRepositoryGeneration - second CAS of repository publish #184 logic edit; job semantics untouched.1e52b4e5checker fail-closed fix: unresolvable TypeScript scanner routes ts-family files to gate-redunsupported, never silent pass; fixtures declare skips viats_available(); new fail-closed fixturebdc036c1CI-found regression repair + guard-quoted gate class — see dedicated section belowd6889e2dbatched review wave (T1–T3) — see Review-response section belowAdversarial controls for the fail-closed gate semantics (coordinator condition, head
1e52b4e5)The
1e52b4e5fix routes TypeScript-family files to the gate-redunsupportedinventory when the scanner cannot resolve. Two controls prove this cannot neuter ts coverage:scripts/positive-control.unit.test.tswith a handwritten comment (scratch branch + scratch commit, since the gate enumeratesgit ls-tree HEAD; nothing pushed). Gate job invocation (npm ciinui, thenpython3 scripts/check_no_code_comments.py --all-tracked,LOOM_TYPESCRIPT_DIRunset): exit 1,VIOLATION scripts/positive-control.unit.test.ts:1 [ts/line] '// handwritten positive-control comment',scanned=2970 violations=1. Scratch branch deleted after the run.ui/node_modules/typescriptmoved away (mutating the gate job's env), same invocation: exit 1 with 638UNSUPPORTEDrows (every.mjs/.ts/.tsxfile in the tracked tree), log retained at/tmp/opencode/lane05-controls/mutation.log. Environment restored; rescan clean.Fixture-level guards mirror both:
test_scanner_absence_routes_ts_family_to_unsupported_fail_closed(bare-runnable) andts_available()-declared skips for the scanner-dependent suite (scripts/tests discover: 91 OK both bare and withui/node_modules/typescriptpresent, 11 declared ts skips bare; fixture file itself 43 tests incl. 7GuardQuotedAnchors).CI-found regression and guard-quoted retain repair (head
bdc036c1)CI on
1e52b4e5failed 8 tests: 6TestFB20*inrecipe_execution_reader_authz_e2e_test.go(STEP 0 anchorreader-promise-ids-are-not-credentialsquotes the doc-comment prose "themselves authorization credentials.") and 2 inclickhouse(publish_partial_pointer_e2e_test.goquotesbundle_store.go"Prevent the runner from deleting possibly published tables.";pointer_name_nul_ambiguity_e2e_test.goquotesinternal/catalog/helpers.go"catalogIdentityDigest hashes a length-prefixed sequence rather than a"). These are claim-source drift guards: the comment prose is a live verification anchor, and this repo's own precedent (lane02, retain commits recorded inside48783199) is that guard-quoted comments are retained through strip waves. My wave's local verification rango vet+ test-compile but not these package suites — CI is where the gap surfaced; disclosure stands on record here.Repair (
bdc036c1):90267c06base blobs (git hash-object== base blob verified):recipe_execution_reader.go,internal/dataframe/publication/clickhouse/bundle_store.go,internal/catalog/helpers.go.d5669771.guard-quotedallowlist class so the retained anchors stay green: a comment block is allowed iff some marker-stripped ≥25-char line appears verbatim in a tracked test-family file other than itself; the corpus is built from the same enumeration as the scan and any corpus-build failure allows nothing (fail closed). The allowance is dynamic: if a test later drops its quote, the comment goes gate-red. SevenGuardQuotedAnchorsfixtures pin the semantics (unquoted stays red; sub-threshold quote red; quote outside test files red; self-quoting test file red; quote removal flips back to red).lane05Repinblocks gainpostStriphistory +guardQuoteRestorereceipts.bundle_store.gosha256 returns to its pre-strip#183value1dce5b82c3…(net wave effect nil);recipe_execution_reader.gosha256 set to the true base-blob valueb00d64740d…, matching itspreExistingDriftlive value.helpers.gohas no ledger row.go testok on resolver, clickhouse, catalog, arango (publication/dataset/root), dataframe/published, dataset, server, conformance/compiler; gatescanned=2969 violations=0 unsupported=0with 7guard-quotedallows; scripts/tests 91/91; both adversarial controls re-run against the patched gate (positive: planted ts comment → exit 1 VIOLATION,scanned=2970 violations=1; mutation: typescript removed → exit 1, 638 UNSUPPORTED).C-list evidence (artifact
lane05-final-audit-census.json, attached in session)waveBytesChanged=false).source-proofs,trace-controls,generatedphases re-run offline exit 0 (logs retained); PR builder-formal CI job = ultimate proof.git add && md5sum && sha256sum && git hash-objectrecorded per row); verifier can recompute all 25 rows.lane05Repinblocks; historical prose never rewritten (sibling…Amendmentannotations); JSON stays parse-valid (structured round-trip exact). Disclosures:recipe_execution_reader.gopin predates the PR base (corrected); twocontentMD5values traceable to no committed blob (replaced with true values); 46 out-of-scope stale rows + 21/29 no-digest rows inventoried for the deferred hygiene ticket, untouched.InvariantNoDropUnderPointerper SKILL rule, controls complete at 14,608,028 distinct (documented widening figure); negative controls (each cfg vs foreign model): 0 false executions; per-run-metadirisolation + deadlines. 3 unreferenced.r27-tt-*-ctrlHorizon-8 dotfiles (zero receipt citations) not run to completion — Horizon-3 twins all clean. Canonical probe PASS: disk == git blob ==canonicalProbe.expectedMD5(36c66fb5…).unresolvable-ledger-key(18) visible in census +{key, git-log --follow candidate}list in artifact for the deferred pubbundle ticket. Not gate-red, not skipped.Validation
scanned=2969 violations=0 unsupported=0on combined head (post rebase onto7e081f49); unchanged atbdc036c1with 7guard-quotedallowsGuardQuotedAnchors); fullgo testgreen on the three restored files' packages plus all nine drift-check-holding packages;citation_gate_test.go8 fixtures; row96 + contracts node suites;go vet+ test-compile on touched Go packages;node --checkall touched mjs/tmp/opencode/lane05-tlc,/tmp/opencode/lane05-formal); exhaustive negative-control matrix (605 cells, 0 wrongly-executed) at/tmp/opencode/lane05-tlc-negfullSource proofs (4/4)failed once on a transient HTTP 429 fetching the pinnedtla2tools.jar(4 shards bootstrap in parallel; zero diff relation) — failed job rerun, authorized by coordinator as infraRisks / follow-ups
c6LedgerHygienePending).AO session:
loom-experiment-213.