Skip to content

Canonical merge of #1158 - #1159

Merged
MongLong0214 merged 4 commits into
mainfrom
canonical/pr-1158
Oct 3, 2026
Merged

MongLong0214 merged 4 commits into
mainfrom
canonical/pr-1158

Conversation

@commitlore-canonical-build

Copy link
Copy Markdown
Contributor

The commit that will land for #1158: main plus that source plus a canonical rebuild, built together so all eleven required contexts run on the tree that merges rather than on one that resembles it.

#1158 carries source only, which is what a contributor on a host that cannot run a linux/amd64 Docker build can produce (#720). Nothing was rebuilt by hand.

Merge this with a merge commit, not a squash. This branch merged #1158 with --no-ff, so its head commit is an ancestor here: a merge commit lands that commit on main, and GitHub then records #1158 as merged because its head is reachable -- which is what T-1502 asks for. A squash lands new bytes instead, and #1158 stays open with nothing to point at.

This body deliberately carries no closing keyword. GitHub binds one only to the number straight after it, and a pull request closed by keyword is recorded closed rather than merged -- the opposite of the line above. Reachability does the closing here.

Opened by canonical-merge.yml for #719.

MongLong0214 and others added 4 commits October 3, 2026 18:13
`engines.node` is `>=22.23.2` and `@types/node` is pinned `^22.10.0` for that
reason: the types describe the oldest runtime this package supports, not the
newest one that exists. Dependabot opened the 22 -> 26 bump as #1151. It
typechecks cleanly, which is exactly the problem -- types from a later major
admit APIs node 22 does not have, and the type checker is the only thing that
would refuse them, so a release would compile here and fail on a runtime the
package claims to support.

A major bump here is a decision about the support floor, made by hand next to
`engines`. The ignore rule says so instead of leaving a pull request to be
closed unread every month. Minor and patch updates inside the pinned major
still arrive, and a security advisory ignores the block entirely.

Limit: `engines.node` is `>=22.23.2` and `@types/node` is pinned `^22.10.0`, so the types track the oldest supported runtime rather than the newest that exists
Ruled-out: taking the 22 -> 26 major bump of @types/node (#1151) | types from a later major describe APIs node 22 does not have, and the type checker is the only thing that would refuse them, so a release would compile here and fail on a supported runtime
Warn: a green typecheck on a `@types/node` major bump is not evidence the bump is safe; the floor is `engines.node`, and nothing in the suite asks whether an API exists on the oldest runtime
Blast: module
Undo: easy
Certainty: firm
Record-Id: r-typesnodefloor
Provenance: drafted
`build:canonical` on the merged tree, so the commit that lands matches the source it lands with. The pull request carried source only, which is what a contributor on a host that cannot run a linux/amd64 Docker build can produce (#720).

Limit: this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
Blast: system
Undo: easy
Certainty: firm
Record-Id: r-canonmerge1158
Provenance: authored
Verified: artifact:verify passed against the regenerated manifest in the same job, before any credential was available to it
CommitLore-Version: 2.0.0
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

CommitLore — record lint

Trailers: clean — 4 commits in origin/main..c04d20aea9b4d262925fec43e0706c7c2e8d80d8
Active constraints: 375 limits · 476 ruled-out · 112 warnings — from 414 records over 14 changed paths

Active constraints for the paths this PR touches

Limits (375)

  • r-canonmerge1158 c04d20a — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-typesnodefloor b59adb6 — engines.node is >=22.23.2 and @types/node is pinned ^22.10.0, so the types track the oldest supported runtime rather than the newest that exists
  • r-canonmerge1156 d703e48 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1154 7423261 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-2fb1c649b3ad 922f95f — 새 ip-address advisory가 기존 production audit gate를 실패시켜 이번 릴리즈에 compatible transitive patch가 필요하다.
  • r-3081e462f9b8 3b2fd09 — canonical-merge publication의 force push가 승인 조건과 충돌하여 공식 pinned builder로 artifacts를 만들고 일반 PR로 제출한다.
  • r-canonmerge1141 11e5a77 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-ef0defcd69a8 11ef133 — the previous version occurs 62 times across twelve files on main; 59 are install pins and manifest versions and moved, and the three that stay are CHANGELOG.md's 1.6.0 heading and the lockfile's sourcemap-codec version and tarball URL
  • r-canonmerge1139 c5c9a3f — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1132 21febb3 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-276fed4dac2b d71a55c — after the bump the only occurrence of the previous version is CHANGELOG.md's own 1.5.1 heading, which is that release's section and must not move; the other 59 across eleven files are install pins and manifest versions
  • r-canonmerge1130 031ff70 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1123 c9f1a0b — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release151 94e85f9 — two occurrences must not move and were read rather than filtered -- CHANGELOG.md carries 1.5.0 as its previous heading, and docs/adr/ADR-0009 carries gitlore@1.5.0, which is a different package's version and a coincidence of numbers
  • r-canonmerge1119 47e5337 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1117 579649a — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1080 e0bf513 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1067 e8baba1 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1064 cce948b — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release150 df9fe0d — enforcement exists only where a Bash PreToolUse hook does; a person at a terminal, CI, a script and every host without that hook get a simpler command and no gate
  • r-release150 df9fe0d — the trivial thresholds are chosen rather than measured, and are not configurable in this release -- a trivial block in the policy would move policy_identity_hash and invalidate every binding and pending transaction in flight
  • r-canonmerge1062 6415e5a — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1057 f5c3071 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release142 208b821 — the version pins moved across 11 files; installer/canonical-artifact.json is regenerated by the canonical build and is deliberately not among them
  • r-mcpdualrole1056 4b7a8aa — the new guard asserts the absence of one exact filename, because the filename is what the project loader keys on; a host that reads project-scope MCP configuration under some other name is not covered by it
  • r-mcpdualrole1056 4b7a8aa — commitlore init still writes a project-scope .mcp.json into user repositories, and running it in this checkout recreates the file -- gitignored now so it cannot be committed again, but the product-side removal is not in this commit
  • r-mcpscopes1 d2741f3 — claude mcp get answers whether the host knows the name, not at which scope, so already-registered can be reported for an entry made at a different scope than the one asked for; the line says so and points at claude mcp list
  • r-mcpscopes1 d2741f3 — the host-owned path is exercised against a stub named claude on PATH, which pins the argv and the two exit-code shapes but not the real CLI's behaviour on any particular version
  • r-mcpscopes1 d2741f3 — a machine with no claude reports at 0 with the command to run later, so a user scope that never took effect looks the same in the summary as one that was never asked for
  • r-canonmerge1052 3dea4df — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-treebind1030 ad4c4ef — the argument is optional, so a caller that does not pass it binds to the server's checkout exactly as before -- this closes the silent case only for callers that say what they meant
  • r-treebind1030 ad4c4ef — the assertion compares working trees, so a server and caller in the same tree at different times are indistinguishable; HEAD moving under a prepared transaction is still the receipt's job (r-requirereceipt1005)
  • r-treebind1030 ad4c4ef — commitlore capture on the CLI is unchanged and needs no assertion, because it binds to its own working directory -- only the MCP surface can disagree with its caller
  • r-readmeaccuracy140 ba745bf — the four translations were changed by matching the same passages, not by re-reading each in full, so a claim wrong only in one language is not covered here
  • r-readmeaccuracy140 ba745bf — the assertions checked are the ones a command or a file can answer -- prose about what the product is for is not checkable this way and was left as written
  • r-canonmerge1026 434ca28 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1018 9e5317c — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1016 0d2b737 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1013 4159c6b — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1010 cf5fdee — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1008 e3ff79f — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1006 d36e450 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1003 b6c6b5c — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge1000 74f684b — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-measurewrites988 4edfd9f — dbstat is a SQLite compile option, and the harness prints an empty table rather than failing where it is absent -- an empty table there means the measurement did not run, not that the cost is zero
  • r-measurewrites988 4edfd9f — a bare npx vitest run still reads whatever dist/ is on disk; only the two documented commands build first, and nothing but a paragraph in CONTRIBUTING guards the third
  • r-canonmerge998 9419931 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge996 fef169a — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge994 d9a01c0 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge992 9154912 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge983 78c4d9a — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-buildbeforetest960 346006a — npm test and a bare vitest run are untouched, so the same trap is still open for anyone who reaches past the documented command -- CI builds explicitly, which is why that is tolerable rather than fixed
  • r-believablesuite960 3ee700c — the harness reverses one hunk at a time, so a fix spread over two hunks that only fails together reads as two unguarded changes
  • r-believablesuite960 3ee700c — 120s is a measurement from one machine; a slower one needs its own number rather than this one inherited
  • r-canonmerge980 9fba099 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-pinnedmirror957 a06b984 — a note's own block still costs a process each, because %(trailers) parses the annotated commit's message and there is no atom for a note body
  • r-pinnedmirror957 a06b984 — the reachability filter still reads HEAD at listing time, so a HEAD that moves mid-pass can still change which notes are in scope; only the mirror is pinned here
  • r-canonmerge978 445c515 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-probeconsumers975 adcbd50 — the block cache lives on CollectCache and therefore for one invocation only -- hoisting it to module scope would serve a rewritten message from memory, which is the staleness r-staleonepass names
  • r-probeconsumers975 adcbd50 — doctor still spends 71 parses against a complete index, through its own short per-branch ranges; batching within a range trades N parses for one batch and a short range has few, so the batch has to span ranges to help there
  • r-canonmerge973 6ef03bb — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-monotonic968 8f5ee12 — two unbudgeted rebuilds racing still overwrite each other, and repeated replacement can still keep a drain from converging -- neither is closed by this
  • r-monotonic968 8f5ee12 — the comparison is inside the write transaction and the scan is not, so a rebuild can still do the whole scan and then discard it; what it cannot do is publish it over something better
  • r-canonmerge969 8f6b287 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-probebatch951 8d78b62 — the equivalence is proven over this repository's 114 candidate paragraphs and sixteen constructed shapes, not over every paragraph git can parse -- the two shapes that broke the first design were both outside the first corpus
  • r-probebatch951 8d78b62 — one temp directory per call, removed in a guarded finally; a process killed with SIGKILL leaves it for the operating system
  • r-probebatch951 8d78b62 — the batch shares an answer between identical paragraph texts within one call, which holds only while git's configuration is fixed for that call
  • r-canonmerge954 7672c37 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-atomreuse951 eb2869d — the saving is one process per message that reaches the recovery pass, so a history with no multi-block messages sees no change at all -- 20,000 generated commits spent zero interpret-trailers before this and spend zero after
  • r-atomreuse951 eb2869d — atomIsAmbiguous still sends a message to the process, so the count is bounded by the framing of real messages rather than by a rule
  • r-canonmerge952 7a57d4c — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-resume951b 3c1412d — the notes mirror is revalidated inside the transaction, which refuses stale work rather than merging it -- a drainer that loses the race discards what it read and the next call repeats it
  • r-resume951b 3c1412d — the concurrent orderings are argued from the transaction boundary and reproduced by injecting the interleaving at a clock reading, not by running two processes
  • r-resume951 83f5629 — the drain reads one batch before its deadline may cancel anything, so a call can overshoot its slice by one batch -- without that floor a batch costing more than the slice is cancelled every time and the queue never drains at all
  • r-resume951 83f5629 — a note's body is still read through the live ref after the mirror was listed from it, so a single invocation can cross a notes update; the queue now carries its originating ref, which closes the resumed case and not that one
  • r-resume951 83f5629 — the equivalence is proven on this repository and on synthetic histories of 400 commits, not over every repository shape
  • r-canonmerge947 b9819f6 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-changelogprose 84dcf58 — the entry states the added cost because the fix is slower, and a changelog that reports only the wins is a sales document
  • r-release1219 6fd1ed5 — the pin count is a property of this tree and grows with each README section, so the next release measures it rather than reusing 59
  • r-canonmerge945 f0e7122 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1218 3ba5d09 — the pin count is a property of this tree and grows with each README section, so the next release measures it rather than reusing 59
  • r-canonmerge940 31c971e — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-changelogmood e619a0d — the entry now describes the rule rather than its history; the two commits carry why it changed
  • r-canonmerge936 05e6419 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1217 4836a95 — the pin count is a property of this tree and grows with each README section, so the next release measures it rather than reusing 59
  • r-canonmerge932 73a9995 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1216 573d14c — the pin count is a property of this tree and grows with each README section, so the next release measures it again rather than reusing 59
  • r-canonmerge927 a1543bd — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1215 b6d2cfe — the pin count is a property of this tree; the surface grows with each README section, so the next release must measure it again rather than reuse 44
  • r-recipecannotrun926 6445ac3 — the row checks that cli-path is supplied, not that the path it names exists in the runner -- a checkout step that lands elsewhere still reads as wired
  • r-recipecannotrun926 6445ac3 — a repository that references the action from a job which never triggers still reads as protected
  • r-occupiedcheckout922 059e200 — the adoption path verifies the runtime manifest and the requested tag, which is what the reuse path checks -- it does not prove the two processes wrote identical bytes
  • r-occupiedcheckout922 059e200 — the reconciling line fires on any non-zero installer exit whose state nevertheless verifies, so an unrelated installer error reads as "a step was abandoned" too
  • r-canonmerge918 e998491 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1214 6e91b8e — dist/ is not rebuilt here -- the canonical bundle is rebuilt on linux/amd64 by canonical-merge.yml, and a macOS esbuild output would not match CI
  • r-canonmerge916 7be23ec — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1213 86f6dab — dist/ is not rebuilt here -- the canonical bundle is rebuilt on linux/amd64 by canonical-merge.yml, and a macOS esbuild output would not match CI
  • r-squashdiscovery915 b085e7f — this reports whether a workflow references the action, not whether that workflow is correct -- a job missing fetch-depth: 0 or the notes fetch references it and still cannot preserve anything
  • r-squashdiscovery915 b085e7f — a non-GitHub host that squashes is reported ok, because there is no action for it; the detail says that rather than claiming coverage
  • r-canonmerge912 29aa38c — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1212 0e93f7c — dist/ is not rebuilt here -- the canonical bundle is rebuilt on linux/amd64 by canonical-merge.yml, and a macOS esbuild output would not match CI
  • r-canonmerge908 d9ab06a — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1211 24dbdcf — dist/ is not rebuilt here -- the canonical bundle is rebuilt on linux/amd64 by canonical-merge.yml, and a macOS esbuild output would not match CI
  • r-canonmerge904 bb6b2e6 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release1210 da1cc9f — dist/ is not rebuilt here -- the canonical bundle is rebuilt on linux/amd64 by canonical-merge.yml, and a macOS esbuild output would not match CI
  • r-canonmerge899 3cae2fb — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release129 276feed — dist/ and installer/canonical-artifact.json are absent by design, so artifact:verify fails on this tree -- canonical-merge.yml rebuilds them on linux/amd64
  • r-canonmerge894 f48642f — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release128 795791c — dist/ and installer/canonical-artifact.json are absent by design, so artifact:verify fails on this tree -- canonical-merge.yml rebuilds them on linux/amd64
  • r-canonmerge891 f771749 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release127 ba88444 — dist/ and installer/canonical-artifact.json are absent by design, so artifact:verify fails on this tree -- canonical-merge.yml rebuilds them on linux/amd64
  • r-honoadvisory d339291 — this repairs one resolution rather than the class -- the next advisory in a transitive production dependency will block a release the same way, and nothing here notices earlier
  • r-canonmerge886 369e2e6 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release126 55e8d79 — dist/ and installer/canonical-artifact.json are absent by design, so artifact:verify fails on this tree -- canonical-merge.yml rebuilds them on linux/amd64, where a macOS esbuild output would not match
  • r-canonmerge882 2020ef1 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-release125 9d03977 — dist/ and installer/canonical-artifact.json are not in this commit, so artifact:verify fails on this tree by design -- canonical-merge.yml rebuilds them on linux/amd64, where a macOS esbuild output would not match
  • r-canonmerge879 87f6dac — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge874 09fa8b8 — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-canonmerge871 dcc1f6b — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-reviewcaughtserverjson c7debaf — the gate now reads server.json's .version; the installer command and release URL inside it are strings nothing compares, exactly as the four READMEs and two installers are
  • r-release121 9845d44 — npm audit is a claim about advisories published now, not about the code; and the canonical build was reproduced on one machine against the pinned image digest, which CI repeats twice but no one has repeated on another date
  • r-depsbatchbump 42013a6 — says nothing about behaviour changes inside SDK 1.30.0 itself; the suite covers this repository's use of the SDK, not the SDK
  • r-fasturiqsaudit 1752273 — an audit is a claim about advisories published at this moment, not about the code; a clean run says nothing about tomorrow's disclosures
  • r-cdebmanifest d64b006 — reproducibility is established for one run on one machine against the pinned image digest. The contract's own comment notes node:24-bookworm is mutable, and this says nothing about a rebuild on a different date
  • r-cdebremoval 36ae3ab — four documents still mention CDEB and are deliberately kept -- ADR-0033, the archived readiness SSOT, an archived handoff, and two CHANGELOG lines. They are the record of decisions that were made, and rewriting them would be deleting evidence rather than code
  • r-cdebremoval 36ae3ab — one full-suite run in the middle of this work reported a single failure that the next two runs did not reproduce, with no relevant change between them. Its name was not captured before the output was discarded, so it is recorded as an unidentified flake rather than as something this commit fixed
  • r-v5stage1r1reviewfixes 87cacec — the pilot-gate custody gap is open and needs role separation -- execution, custody of arm-coded outcomes, and continuation held by different parties. That is an owner decision and it has to be settled before the pilot, not after
  • r-v5stage1r1reviewfixes 87cacec — the firewall now names who produced the maintenance need and refuses a producer not declared record-blind, but a declaration is not evidence. Making it evidence needs an attestable isolated authoring environment this layer does not have
  • r-v5stage1r1reviewfixes 87cacec — tau_squared_bound = 0.06 is a frozen assumption, not a measurement. It is conservative in the direction that matters -- lower true heterogeneity means the study detects more than promised -- but nothing here establishes the true value
  • r-v5stage1r1designlayer 28699d8 — the task-author firewall has still never run. Whoever built this corpus has read all 241 records, so the record-blind half cannot be satisfied from here -- it needs an author whose only inputs are the base tree and the maintenance need, with the manifest proving it
  • r-v5stage1r1designlayer 28699d8 — no oracle exists for any of the 62. Stage 0 recorded that reviewers thought one could be written; between that and a validated discriminating oracle sits the whole of G2, and nothing has crossed it
  • r-v5stage1r1designlayer 28699d8 — the between-candidate variance in the power table is a range I chose to bracket, not a measurement. The pilot supplies the real value, and only then does the detectable effect stop being a family of curves
  • r-833multiblocknotice fe84c6b — this makes the cost audible, it does not remove it. A merge commit written from a multi-block draft still carries records that git-native tooling will not report as trailers, and --target remains the only way to have every record visible on both channels
  • r-v4qualification b8ff1b9 — G3 and G4 were judged from the commit message, the changed paths and the ruling. Neither reviewer read the current code or ran a test, so both are informed judgements about a maintenance task rather than measurements of one. G5 classifies whether an oracle could be written; none was built
  • r-v4qualification b8ff1b9 — this says nothing about whether recording decisions helps an agent. It says the four surveyed repositories cannot supply gold that is independent of the records being tested, which is a fact about these repositories and this gate
  • r-v3manifestsync c195b48 — this proves the manifest matches this checkout. It does not prove the pinned image produced the committed dist on any other machine, which is what the pinned digest is for
  • r-v3terminalseal 7754f1a — the placeholder row remains in the ledger and always will. This makes it legible, not absent, and a reader who takes digests on faith rather than reading the deviation is still misled
  • r-v3terminalseal 7754f1a — the canonical digest binds the artifact list it is given. A transition that names too few artifacts is bound to a partial set, and nothing here decides what the right set is for a future study
  • r-v3terminalseal 7754f1a — guard coverage is unchanged -- thirteen exclusion kinds remain uncovered and one scan inert, recorded in the mutation baseline
  • r-readmeparity dc89a2e — parity is asserted here by four counts that happen to agree, not by a test. Nothing stops the next English edit from separating them again, which is the same hole this commit is closing and the reason the assertion is worth writing next
  • r-coauthoredcasing 06354f9 — the exemption stays a fixed pair. A standardised trailer this repository has not met -- Reviewed-by:, say -- is still refused as unknown-key, which is deliberate but will read as the same bug to whoever hits it next
  • r-fieldreportgenre 631150c — one run, one repository, one installer, and no method was recorded by whoever ran it. The section says so in its first sentence, but a reader who skims headings still meets a story next to a study, and no label fully removes that
  • r-readmerunningcost 9abb092 — the token bullet states the budget cap, not what a payload actually costs in a given repository. The cap is what the code guarantees; the fill depends on record density and path scope, and nothing here measures that
  • r-brandmarklifecycle 96a366e — CSS keyframes inside an -embedded SVG are renderer behaviour rather than a guarantee; a client that renders SVG without CSS gets the static logo, which is the intended fallback but is not the animated one. The reversal of The README asks a cold reader for four minutes before it earns one #450's limits-before-evidence order is a judgement made against a recorded decision, and should be reversed if the reason for The README asks a cold reader for four minutes before it earns one #450 still holds
  • r-democopycanonicalbuild 8ce56bc — the bundle changed only because one output string did; nothing about the build is different
  • r-releasereviewstatus 37a0670 — this records the absence of a review, which is not the same as recording what a review would have found. It says the gate was the only thing that ran
  • r-release120 b073960 — the passive notice only speaks once a check has landed, so the first invocation after this install says nothing however out of date the next release finds it. That is the trade the zero-latency design buys, and the answer arrives on the following command
  • r-lazysignaturemode f7dc7ef — a scan that reads even one commit still asks, so the cost returns on any invocation that has catching up to do. That is the invocation that can afford it
  • r-rebuildworknobodyreads 1a66b26 — the deadline is still only checked between batches and before the expensive half of one, so a late batch of 1024 commits can overshoot by whatever that batch costs -- bounded by one batch rather than by the whole scan. And an unsigned-mode index now carries '' where it carried git's verdict, so a reader wanting the cached status without turning signature mode on no longer gets it; none exists
  • - 1ca0ac9 — the other tracked dist files auto-merged rather than conflicting, and a line-wise merge of generated JavaScript is not something to trust on its own -- the canonical rebuild is what makes them correct, not git's resolution
  • r-rebuildopensdamaged 70dc155 — this covers a full-text table that will not rebuild. Damage that makes createSchema or the first meta read fail still surfaces through the open's own catch, which is where it belonged already; nothing here widens that
  • r-initsayswhatitpinned c7de40d — the report names the pinned version and the newer one, but not whether the pinned checkout is intact -- doctor compares the running build against the pinned one and is where that question belongs
  • r-upgradeperforms b1e75c9 — nothing here can tell a current that resolves to the right tag over a checkout whose contents are wrong. install.sh verifies a reused checkout's manifest and tag, and doctor compares the running build against the pinned one; step 4's failure text names doctor for exactly that reason
  • r-doctorreleasefreshness 174e120 — latestReleaseSync cannot signal a process group, so a git that spawns an SSH client which then hangs is bounded by spawnSync's timeout on the child alone. The async path exists because the notice cannot afford that and this report can
  • r-passiveupdatenotice a783a95 — the notice speaks only when a check has already landed, so on a cold cache the first invocation says nothing however out of date it is. That is the trade the zero-latency property buys, and the answer arrives on the next command rather than the first
  • r-upgradereadonly ccc634c — upgrade accepts --check but performs no upgrade in this build, and --check is therefore the only behaviour. T-1606 makes the bare form act; until then the command names the install line rather than running it
  • r-integrityoffread 2584678 — commitlore index --rebuild still cannot open a structurally damaged index -- openIndex rebuilds the FTS table on open and throws first (commitlore index --rebuild cannot open the index it is meant to rebuild #785). That predates this change and the documented remedy has never run in that state; test/index-corruption.test.ts opens the database directly to work around it and says so
  • r-pluginawaredelivery 46c4169 — this does not clean up dual installs already on disk -- somebody in that state keeps paying twice until they remove one by hand. It also reads Claude Code's private state, which has already changed shape once (the registry is on version: 2); when that breaks, it breaks toward writing the hook, which is the direction chosen on purpose
  • r-hookmatcherunify fa4373d — neither installer knows the other exists -- init writes the settings.json hook unconditionally, so a user who follows the README to the plugin and then runs commitlore init carries two PreToolUse hooks running the same command. Unifying does not create that double fire, but it widens the overlap from Edit and Write to all five; the partial overlap it replaces was worse to diagnose, because the same user saw records twice on an edit and once on a read
  • r-rebuildschema a6d577e — this recreates the file whenever the recorded version differs, so a downgrade discards an index a newer build wrote rather than reading what it can from it
  • r-partialsilence 9553e2c — this says the scan was cut short, not which records were missed -- the payload cannot name what it never read
  • r-rel114 9692b6d — the README restructure and the mobile hero redesign are not in this release, so the four READMEs remain long and the hero's labels remain small at 375px
  • r-oneblock 308be65 — the block moved out of the surface most readers see, so a benchmark number now costs one click to reach
  • r-builderpin cb1515f — nothing checks that the pinned digest still exists upstream, so a digest deleted from the registry surfaces as a build failure rather than as a clear message
  • r-onepointer a3d3b95 — a reader in the upgrade section now has no inline route to the generation table, only to the command that names the affected repositories
  • r-ssotfive 9cff5ac — the translated sections were written to match the English contract rather than translated from it, so a later edit to one has no mechanical way of reaching the other three
  • r-canonmerge761 6a88f2f — this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
  • r-rel113 17a1301 — #749 question 1 stays open -- a fix that lives in the hook reaches a repository only on its next visit, and nothing on this machine knows which repositories exist
  • r-koregdrift ca4f99b — nothing checks this -- the rule lives in the PR that established it and in a comment, and the next section written in the wrong register will land the same way these did, from a branch that never touched the file the rule was recorded on
  • r-kohumanize 8e9cb09 — terminology is still doubled in places (path/경로, host/호스트, wiring/배선), and that is translation-consistency work that has to move ja and zh at the same time; one connective comma survives behind bold markers where splitting would make the span cross a sentence
  • r-heromeaning 9c85ad4 — nothing checks that the hero and the payload block below it stay consistent -- the test asserts the inversion is absent, not that the two describe the same record
  • r-machinescope e46af2a — this is one check's classification, not a scope field -- another machine-scoped check added later will default to claiming attention again, and nothing here would notice
  • r-upgraderebind 49765af — this reaches a repository only when its stub already carries the arm, so one installed before this still needs hooks install once -- the same boundary After an upgrade the hook says "cannot find the CLI" when the CLI is fine and containment refused it #746 recorded, and the reason that command stays the named remedy
  • r-protoown cac5cde — the evidence block is the other four-way duplicate and is untouched here -- check-readme-numbers.mjs still owns it in all four READMEs, and moving it is its own change with its own negative control
  • r-heroalt22 19969c7 — the two contracts are still enforced in separate files, so nothing fails if one of them is deleted -- the note is what connects them, and a note is weaker than a check
  • r-746message 5dda01b — the stub is written into .git/hooks at install time, so a repository wired before this keeps the old text and gets the old sentence until hooks install runs there; installing a corrected release is not enough
  • r-746narrow 5dda01b — commitlore.node is only tested for -x, so a recorded interpreter that exists but cannot run this bundle still reaches neither arm and falls through to the absence message
  • r-onevisual 5833281 — at 375px the README embeds at width="100%", so the 840px canvas scales by 0.446 and the 18px labels land near 8px -- better than the 1200px canvas it replaces (7.5px) and still under the 12px a caption usually needs; three columns and this copy do not fit under a 700px canvas, so the canvas question is unresolved rather than answered
  • r-rel112 ad6fee3 — the readback confirms the link, not that the interpreter behind it runs -- doctor remains the check for that
  • r-rel112 ad6fee3 — this repairs the installer; a machine already upgraded to 1.1.0 or 1.1.1 keeps its stale current until the installer is re-run, which is why the note names the command to check
  • r-currentlink735 49ca9ff — unlink-and-rename is not atomic, so a reader resolving current in that window sees it missing -- chosen over silently keeping the old target
  • r-currentlink735 49ca9ff — this fixes the report and the rename; a host that genuinely cannot symlink still falls through to the versioned-path note, unchanged
  • r-detectrule728 f1784ce — this records the rule, it does not enforce it -- a new host added with the wrong test still compiles, and Plant a host fixture in Windows CI so this class can't hide behind an empty runner #722's planted fixture is where that could be caught
  • r-detectwhy728 f1784ce — still recorded, not enforced -- a new host added with the wrong test compiles
  • r-readmewin111 b396de9 — the claim is Codex, Gemini CLI and Hermes on one machine at 1.1.1 -- claude-code is still notDetected there with its config present, and the READMEs do not promise otherwise
  • r-clogherm111 1915356 — the release body for v1.1.1 was already corrected and republished; this brings the in-repository record to match
  • r-rel111 8c29f5d — Hermes still fails on that machine for a cause that is not this one and is not yet named (Windows: every detected host fails to wire — the temp filename carries the whole path, and hasCommand cannot see a .cmd #716)
  • r-rel111 8c29f5d — a zero-byte .cursor/mcp.json on the tester's machine is a user file; the installer read the file it says it reads and reported the true reason
  • r-rel111why 8c29f5d — this changes the note, not the behaviour -- the behaviour shipped in the merged branch and is already covered by artifact:verify
  • r-canon720 7bf5b82 — this adds no judgement about the Windows behaviour -- it makes the branch buildable, and the live evidence on the pull request is still the only evidence for that path
  • r-canon720b 7bf5b82 — this rebuilds, it does not judge -- the Windows behaviour still rests on the live evidence recorded on the pull request, and Hermes and the first-run probe timeout are still open on Windows: every detected host fails to wire — the temp filename carries the whole path, and hasCommand cannot see a .cmd #716
  • r-winargv716 7bf5b82 — Does not change executable-only Claude detection or the pre-existing MCP probe shell path; a new canonical dist rebuild is not included from Windows
  • r-winexec716 7bf5b82 — Does not change MCP probing or rebuild generated artifacts.
  • r-rel110 d9a041f — this release does not make host wiring work on Windows -- detection still cannot see a .cmd and spawn still cannot run one (Windows: every detected host fails to wire — the temp filename carries the whole path, and hasCommand cannot see a .cmd #716)
  • r-rel110 d9a041f — 1.0.0 through 1.0.2 have no CHANGELOG entries; a pointer to the releases page stands in rather than reconstructing them
  • r-rellock110 d9a041f — nineteen version surfaces was already wrong before this -- the lockfile makes it twenty-one, and the count is only ever known after the gate says so
  • r-relmanifest110 d9a041f — this is the release commit's own repair, not a fix -- the next release will need the same regeneration for the same reason
  • r-namefile716 f728e69 — only failures name their file; a successful wire still reports no path
  • r-namefile716 f728e69 — this makes the cursor question answerable on the next Windows run -- it does not answer it, and the outcome (failed) was never in doubt
  • r-overlay709 7e08cbf — unattended is an input to the effective digest but not to the defaults digest -- M-UX: capture leaves the user's workflow #511's exclusion rests on a file's identity being its own bytes, which an overlay breaks
  • r-overlay709 7e08cbf — a broken overlay falls back to the built-in defaults, not to the committed file -- layering onto a policy nobody could read states an effective policy no file states
  • r-wintmp716 f0ed513 — this fixes the write, not the detection -- codex, hermes and claude-code failed for the second cause and still will
  • r-wintmp716 f0ed513 — no Windows machine has run this fix; the guard proves the name, not the install
  • r-dead691 6680425 — install.ps1 line coverage is unchanged -- what ran before still runs
  • r-pend710 b452535 — the wording is checked, not the severity — an abandoned draft still warns
  • r-rdupgr a3e04db — an upgrade path is documented where the install path is
  • r-rel102 25c11ed — an installer-boundary fix reaches nobody until it is released
  • r-adr22nm 31f6cf5 — a norm the product serves is not a capability the product claims
  • r-v102doc 597dad7 — the file a reader trusts for a fact must hold the current fact
  • r-codexok 9021dd9 — a requested integration that failed is not a healthy host
  • r-697codx ae6245f — one owner per host step, in the place both installers call
  • r-693curr 14909c3 — a hook records a path that does not name a release
  • r-693mut2 14909c3 — a rejection test names what does the rejecting
  • r-rel101 b65e34f — a distribution-boundary fix reaches nobody until it is released
  • r-689host c0e909b — a host is wired or reported undetected, never absent
  • r-660plug 5d0e422 — already installed is the upgrade case, never a skip
  • r-686skil adbe186 — a permanent config never records a path that belongs to one invocation
  • r-682herm 2e64424 — recognition is by field, never by formatting
  • r-680ver 47359a1 — an assertion that reads the source it checks proves nothing
  • r-rel100 47359a1 — a published install URL must resolve the moment it is published
  • r-status550 de514ea — a setting and a behaviour never share one word
  • r-590gate 63e48fa — the preregistered verdict is the authority for published M5 figures
  • r-g1build 63e48fa — identity travels as version and digest, never as a path
  • r-g1e2e1 63e48fa — parity is only measured across process boundaries
  • r-gateplan 63e48fa — a plan that lives only in a session is lost at the next compaction
  • r-631cov 92c1b37 — coverage describes the index, history describes the sources
  • r-638bnd 2607bae — git reports the message's origin, not the commit's
  • r-cleanrebuild664 da8948d — the manifest binds dist to committed source, so any uncommitted edit anywhere in src makes a local verification meaningless — this is a property of the check, not of this branch
  • r-formatnotmachine661 2cc274d — verified locally only; whether the warning list's numbering also shifts when the check flips is a question only CI answers, because the runners are where the two runs actually diverged
  • r-selfscan661 ccab7f4 — ancestry is only knowable while the ancestor lives; a server orphaned by a doctor that has already exited is indistinguishable from any other session's, and is correctly counted as one
  • r-liveruntime660 6a221db — ps is the seam, so this reports nothing on win32 and says so rather than claiming a clean machine
  • r-committedat650 f077870 — this pins the spelling, not the clock; nothing here makes two gits agree about anything else in %cI
  • r-prosetrailer647 30e40c7 — this changes the advice, not the outcome; the commit is still refused, which is correct while git reads the line as a trailer
  • r-repointsays629 c7ab87e — this reports the move, it does not verify the new target runs — hooks status owns that check and is unchanged here
  • r-childtreediag640 69c98a0 — the diagnosis is printed, not asserted — the next failure explains itself but the step still cannot say which outcome is acceptable
  • r-childtreepre640 69c98a0 — windows-latest is the only evidence for this path; nothing here was verified locally
  • r-coldstart640 69c98a0 — this measures the launcher's own child; it does not measure when cmd.exe started, so a stall before node is attributed to the same interval
  • r-launchernode640 69c98a0 — the earlier commit raising the probe budget to 15s stands on its own measurement — a healthy probe used 4478ms of 5000ms — but its message claimed that budget explained this flakiness, and it did not
  • r-launcherwhy640 69c98a0 — the deadline explanation is two independent diagnoses and a margin measurement, not a reproduction — the confirming evidence is the next run's own output
  • r-mcpidentity572 69c98a0 — Windows behaviour here rests on windows-latest runs and nothing else; a slower machine than three times the measured passing case will still be told it could not be verified, which is at least true
  • r-nodedrive640 69c98a0 — this reproduces the spawn, not the whole probe; a silent result narrows the cause without naming the fix
  • r-probefacts572 69c98a0 — the close-stdin outcome is measured, not guaranteed by the shell -- a platform whose shell defers the redirect past the parent's first write would produce the timeout code instead, and this case would then need its own seam rather than a looser assertion
  • r-proberace572 69c98a0 — this leaves one outcome unpinned, so a regression that swapped closed-input for timed-out on that fixture would not be caught here -- the four other cases still pin their codes exactly
  • r-reclaimnogate640 69c98a0 — windows-latest is the only evidence for this path, and one green run does not settle a race — this needs to hold across runs before The MCP probe's Windows behaviour is unverified: PATHEXT resolution and child-tree cleanup #640 can be called closed
  • r-sawinput640 69c98a0 — this records the arrival, not the response; if bytes arrive and nothing comes back, the next question is the probe's reader
  • r-slownotbroken640 69c98a0 — fifteen seconds is calibrated against one Windows runner's measurement; a machine slower than three times that will still be told it could not be verified, which is at least now true
  • r-mirrorsays632 aafd5ab — this states the retry, it does not verify it — nothing here checks that the following push actually published the note
  • r-keyringgen653 8b066c7 — the generation identifies the keys the verifier can list, not every reason git might reach a different verdict; expiry and revocation are outside what this binds
  • r-readmecache653 359e0f1 — only the English README carries this sentence; the three translations do not, so nothing is left inconsistent by correcting it alone
  • r-preflight002 0dca998 — MCP capture advertisement requires package manifest, SPEC, and schema to be available in the active runtime
  • r-recheck002 0dca998 — a readiness answer is only as fresh as the request that asked for it; nothing here prevents an asset vanishing between the check and the work
  • r-herosvg643 fc1009b — this renders in the README's first screen, so required wording must stay legible at mobile width
  • r-readmefact643 fc1009b — section order, demo asset and exposure table are cross-file contracts over four language files
  • r-canon605 f474cf4 — esbuild resolves a platform-specific binary
  • r-rel0820 59c6730 — release versions must agree across manifests, lockfile roots, installer pins, and the runtime CLI
  • r-epipe595 0d60c75 — the negative control could not be reproduced outside CI -- with the handler removed the suite still passes locally and in a linux container, because the probe reaches its five-second timeout instead of losing the race
  • r-hostsay595 0d60c75 — this surfaces what the host command said; it does not diagnose a command that says nothing, and that case is now named as unknown rather than guessed at
  • r-oid613 202913c — a source guard allows core/types.ts and rejects a local length copy anywhere else, so a future reader writing its own regex fails rather than silently reintroducing the class
  • r-sha256oid 202913c — git object ids are hex, abbreviation 4, full SHA-1 40 or SHA-256 64
  • r-522idx1 b0fa907 — a truncated scan must never render as a complete answer; unreadCommits is the existing channel
  • r-522idx1 b0fa907 — --no-index and a filesystem that cannot write to .git still fall back to a scan
  • r-answerown1 3547382 — warn distinguishes ours from not-ours by the command string, and does not execute anything -- a wrapper that really is a CommitLore server still reads as unverified, which is the safe direction but not a probe
  • r-pretag01 86e0153 — registers_commitlore reads the key, so a config that registers under a different key -- a host with its own naming -- still reads as unregistered and is wired again
  • r-engfloor01 fe83524 — the parser covers the range shapes npm packages actually publish -- comparators like >=22 <23, and pre-release identifiers, are read by their first version and not by their bounds
  • r-dropfake01 06961d3 — the runtime's presence proves this installer wrote the directory, not that its contents are unmodified since
  • r-secondcopy1 01ebee5 — the budget bounds the two scans, not the command -- process startup, path resolution and rendering still sit outside it
  • r-staleclaim1 59cb5d9 — withholding uses the same pattern table as every other route, so a payload that trips nothing still passes; this closes a route that had no grading at all, not the heuristic behind it
  • r-nodefloor1 f4c924f — this bounds the version, not the feature -- a Node that ships node:sqlite behind a flag, or removes it, is not detected here
  • r-release081 ffe702a — the capture half reaches a host that surfaces MCP instructions; one that ignores that field still needs --agents-md, and nothing detects which kind a host is
  • r-observed01 43cfa5e — existence is not identity -- a path that resolves to something other than this tool still reads as a working registration, which is doctor reports a registered MCP command as working without establishing its identity #572
  • r-ownsemver1 fcc6e4a — the evidence is a directory this installer wrote, so an install whose data directory was deleted is now refused rather than upgraded -- a refusal naming the file, against silently destroying it
  • r-saywhat01 56444db — entailment is still unchecked, and this narrows the claim rather than closing the gap -- the protection remains that no drafted record is ever delivered as a directive
  • r-bynottname1 8beaa6d — an entry whose command is launchable but wrong still counts as a registration; the check establishes that a host could start something, not that what it starts is this tool
  • r-winstall1 0b4e551 — this pins what the repository says about itself, and cannot check that the tag it names has been published -- the install gate does that, after the tag exists
  • r-vbind001 2c88d24 — this binds the requested tag to the runtime that answers, not the tag to its content -- a tag moved after publication installs whatever it now points at, which is a signing question rather than a version-binding one
  • r-insttxn1 afb7bfb — this establishes that the installed tree is complete and its commands run on this machine at this moment -- not that the machine will still have a working node tomorrow, and not that any agent host will load what was installed
  • r-authdir01 ae2a66f — in the default mode a directive establishes that the commit's author string matched a configured one, and nothing about who produced the commit
  • r-authdir01 ae2a66f — in signature mode a verified signature establishes that a key the verifier trusts signed this commit -- not that its holder has authority over this repository, and not that the record's content is true or safe
  • r-codexreg1 5933aa4 — an entry can be correct when the installer reads it and wrong afterwards -- a later install, a moved data root or a hand edit all leave the name intact, and nothing revisits it until the installer runs again
  • r-codexplug e5fe95a — a plugin can put a skill in front of a session; it cannot make the session follow it, and nothing here reports whether one did
  • r-readme001 7f82d47 — the README still cannot tell a reader whether their particular host will follow a written procedure; only the hosts with a plugin or an installer have that answered by a mechanism rather than by hope
  • r-hermesx01 2eb8176 — hermes skills inspect resolves remote sources only in this Hermes version, so discovery was verified through hermes skills list --source all in a fresh isolated profile rather than from inside a live conversation; that a session then follows the procedure is not something an installer can establish
  • r-codexwire 955f290 — an instruction file is guidance, not enforcement -- a host may ignore it, summarise it away, or never read it, and nothing here can tell whether any session followed the procedure
  • r-cdeb10reg 48bd5a8 — wrong-path viability, deterministic oracle feasibility, code disclosure, bounded implementation, and unproven ordinary or benchmark authorship cannot be decided from history and remain undecided for human review
  • r-cdeb08an 60db89f — the paired bootstrap describes resampling stability within these five frozen repositories and thirty frozen tasks, and says nothing about any other repository, task or agent population
  • r-unattshadow b7b532a — together the two features measure how often an unattended pipeline would have written, and remove the asking from the writing -- neither half can say whether what gets written is worth a reader's attention, so shadow's number for an unattended repository is a volume, not a value
  • r-retireserena c1171ef — the preregistration fixes claims before numbers exist, so what it says about the calibration cannot move to match later tree state
  • r-readmeorder 383f77d — the hook leads with the headline number, so a reader who stops there has the effect without the conditions on it; the section naming those conditions is now two screens up rather than at the end, which is a shorter path than before but still a path
  • r-m5sources b910dba — the seven shards are declared individually, so a shard added later is invisible to this block until someone lists it -- which is the property the declaration was built for and the cost that comes with it
  • r-rel071 af8e0ab — 0.7.0 stays published with its notes amended to name the defect at the top; retracting a tag people may already have installed trades a known-bad version for an unknown one
  • r-rel070 d4a4d8b — the README's behaviour claim now rests on M5 while the generated numbers block beneath it still publishes M4, which is The README's generated numbers block still publishes M4; M5 measured the thing the README leads with #480 rather than a release-time edit
  • r-numgate b770054 — the README's behaviour claim and the generated block below it now describe different studies until The README's generated numbers block still publishes M4; M5 measured the thing the README leads with #480 lands
  • r-readmem5 6d04c0b — the README now leads its behaviour claim with a [claim]-tier number while shipping a [directive] tier nobody has measured, and that gap will widen until something measures it
  • r-clog070 172fa3d — the entry stays under ## Unreleased and names no version, because the version bump belongs to the release commit and a changelog that pre-announces a number can be wrong about it
  • r-readmecold 08efdff — only README.md is reordered, so the ko, ja and zh-CN readers still meet the evidence first until the follow-up lands
  • r-selfaudit cd0068f — the page is maintained by hand, so an entry can go stale against the code it describes; the closing line says so and asks for an issue when it does
  • r-cdebver01 ce7b278 — the schemas freeze protocol 1.2.0 constants -- thresholds, matrix size, category names -- so a protocol change is a schema change and CI notices
  • r-claimsmatch 506ada4 — this fixes the sentences an external reviewer found; no systematic pass was made over every claim in the four files against every published measurement
  • r-m5analysis 3450656 — the script enforces the row count, not the identity of the rows; a run that produced 1,160 rows under a changed harness would satisfy it, which is what harness_commit and dist_digest on each row are for
  • r-benchscope 67f4375 — nothing checks the shape of the eight metric-row files. This gate names them and steps over them, and bench/deterministic/types.ts is the only definition that family has -- there is no JSON schema for it, so drift on that side is still invisible
  • r-benchscope 67f4375 — the pre-provenance exemption reads started_at, which is data on the row rather than a fact about the file. A row that misreported it would be held to the shorter list of requirements; that is a deliberate falsification rather than the omission this fixes, and nothing here detects it
  • r-priorart 507ae24 — the comparison is against Lore's README and its abstract; the full paper was not read, so a lifecycle described only in the PDF would have been missed
  • r-scaleproof 4c093f2 — the 100,000-commit figures come from a synthetic repository built by the deterministic harness, not from a real codebase of that size, so they describe the index's shape rather than any particular project
  • r-extbaseline 064daf6 — the band is four Python repositories chosen for having enough revert history to backfill from, so it is evidence about large long-lived Python projects rather than about repositories in general
  • r-3c9d52 dc9e769 — the sweep is two git log calls per path and the delivery phase runs git log --follow on every tracked path, so a full run over the four externals is hours rather than minutes on one machine
  • r-ledgerresult bc31c90 — both sides are byte-derived proxies under CHARS_PER_TOKEN=4 rather than a provider tokenizer, so the ratio cancels a uniform error and not a differential one between diff text and prose
  • r-ledgerresult bc31c90 — break-even in reads assumes reads land on the evaluation set the way the delivery run's per-path average describes, and real editing concentrates on a few files
  • r-surfacedeliv fae9e1e — every figure in the table is measured on this repository measuring itself, which is the weakest part of the evidence and is stated in the paragraph rather than left for a reader to discover
  • r-rel060 e999b9d — the install one-liner in all four READMEs now points at a tag that does not exist until this is tagged, so the window between merging to main and pushing v0.6.0 is one where the documented install is broken
  • r-pipesplit b4fa571 — test/dogfood.test.ts validates every record in this history, so a new violation class is only available if it rejects none of the 620 Ruled-out: values already written
  • r-readmesplit344 7314a03 — three checks bind content to a position in the README, so the complete record example, the protocol vocabulary table and the generated benchmark block could not move
  • r-failopen abc54ea — with the gate installed and no CLI resolvable, commits are still refused -- that is the one hook holding a verdict back, and this change does not reach it
  • r-heropolish f6144bc — README.ko.md still switches from 존댓말 to 해라체 below the hero; that split is older than this change and belongs to the restructure in README still carries the reference manual it should be linking to #344
  • r-pluginpath353 e364f3a — a plugin manifest has no way to add anything to PATH, so no plugin-side change can make the documented commands resolve
  • r-realoutput f9efea0 — a README block introduced as what the tool prints is a behavioural claim, and inventing its shape is the same defect as inventing a number
  • r-release051 19810d2 — the hook is written at install time, so no release repairs a repository that already has one; every release touching hook behaviour has to restate what does
  • r-heroinherit 89b13ac — a headline that implies detection commits the product to guard's numbers, and guard is an advisory measured at 22% recall
  • r-convertreadme e12c816 — a README claim about the default workflow is only true if the shipped skill performs it, and the skill currently requires the user to name CommitLore first
  • r-fieldreport 753f4e7 — this section reports one engineer's day on one repository; it is evidence that the mechanism works there, not a measured effect size, and the wording has to keep those apart
  • r-readmefinal 40aeae0 — a mutation oracle anchored on a claim that can become false will silently stop testing when the claim is removed; the needle has to be asserted present
  • r-release050 ad402c7 — the hook is written at install time, so a corrected release never reaches a repository that already has one; every release fixing hook behaviour has to say what repairs an existing install
  • r-compat1122 e7d8516 — a non-empty guard does not detect deletion; each table's row keys have to be asserted as a set or the statement can silently shrink to one row
  • r-compat1122 e7d8516 — substring comparison hides a narrowing -- ./ is inside ../ and Edit|Write is inside Edit|Write|MultiEdit|NotebookEdit -- so cells are compared as their rendered form
  • r-compat1122 e7d8516 — a sentinel containing \0 makes git treat the file as binary, which costs it diff, blame and log -p permanently
  • r-compat1122 e7d8516 — the plugin path needs bash, because scripts/commitlore-run.sh carries a #!/bin/bash shebang, and no install script checks for it
  • r-muslbullet1126 04ac181 — this ticket owns four bullets and not the tests that read the section around them, so a check that breaks here means a region was taken that was not allocated
  • r-ps1stderr282 e37b4d3 — Windows PowerShell 5.1 turns a native command's stderr into a terminating error under $ErrorActionPreference = Stop, so no native call in this script may merge stderr into its output
  • r-t1120nodeinst 14deeb4 — git and node are hard prerequisites now, so a host without them installs nothing and says which one is missing
  • r-gateb3rev a2e38b9 — the shipped install.sh downloads a platform asset, so no document may describe it as Node-only until the installer itself changes
  • r-rel041notes 71efe1f — 0.4.1 makes the installer honest about a verification it cannot complete rather than fixing the kill, so an upgrading user may still see the unverified message instead of a version
  • r-instverify256 3715677 — the root cause of the signal kill is unestablished; this makes the installer honest about it rather than fixing it, and Documented install exits 137 on upgrade: a killed verification turns a successful install into a failure #256 stays open for the cause
  • r-rel040pins b76c40b — the pin names a tag that does not exist until the tag is pushed; between this merge and that push the documented command refers forward
  • r-rel040notes 5d57a72 — the 26.3-point density gap quoted in the notes is measured at this head and will drift with merge volume; it is illustrative of the denominator problem rather than a stable figure
  • r-t1016svg 321c6f1 — byte-exactness is verified on this platform; a different platform's Node could in principle render differently, and nothing here proves it does not
  • r-t1021known 8dfffc1 — the figures are measured against one archived 417-decision corpus, which is deliberately hard and is not deployment prevalence
  • r-pin030readme 504b54e — install.sh must already support tag-based download for the one-liner to work; verified that the URL resolves to a tagged tree
  • r-notes030 a289ca5 — the density denominator is named here and in the handoff, not in the harness that emits it, so the next run reproduces the same ambiguity
  • r-hero172a bc0d971 — Stale-exposure benchmark is one corpus, one query, and one pinned embedding model at a fixed two-record budget
  • r-be140cost 8c01bd5 — no per-turn provider token ledger or observed avoided-work cost exists yet
  • r-readme129 ab5f210 — the break-even rests on tokens estimated from bytes at the product's own four-characters-per-token constant, so it moves with that assumption
  • r-m4basis 5e2d2cb — the guard question stays unanswered until the exposure instrument is verified and M4 is rerun on it
  • r-m4withdraw e5f9b73 — the guard question is now unanswered rather than answered null
  • r-instpath119 9e1fce7 — a user who ignores the printed line still gets "not found" on the next command
  • r-readmeux1 b664205 — interactive record building does not exist, so the honest answer is still "an agent writes it or you do"
  • r-rel021a a79e350 — v0.2.0 remains on the remote with no release attached
  • r-readmepos1 3cbcaaa — BENCH block is generated by bench/report.ts and must remain byte-identical
  • r-expreadme1 9e69abe — bench/VERDICT-M4.md still cites the Fisher figure; the two disagree until the verdict records why the number was withdrawn from the README
  • r-expomerge1 d6ad014 — M4's existing rows have no exposure field and must read as unknown, not as not-exposed — backfilling by inference would erase the finding
  • r-f61a2c 9114cf0 — the matcher remains deterministic and lexical; no embedding or semantic service is available to distinguish paraphrases
  • r-rdme96a 9c9371c — scripts/check-readme-numbers.mjs's withdrawal-notice and stray-statistic checks constrain what can appear outside the (absent, here) generated benchmark block — re-checked after every edit, not just at the end
  • r-fix92dupid 7f41a6e — cross-references between two blocks declared by the same commit (a Follows:/Supersedes: naming a sibling block's id) are still reported as dangling rather than resolved against the sibling -- unchanged from before this fix, and called out in validate.ts's own comment as future work

Truncated: 622 lines omitted — the comment hit GitHub's 65000 character limit.

Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR.

@MongLong0214
MongLong0214 merged commit 941c599 into main Oct 3, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant