Skip to content

Stop naming a second runtime as the condition for a grade to diverge - #654

Merged
MongLong0214 merged 1 commit into
mainfrom
fix-readme-single-build-divergence
Aug 14, 2026
Merged

Stop naming a second runtime as the condition for a grade to diverge#654
MongLong0214 merged 1 commit into
mainfrom
fix-readme-single-build-divergence

Conversation

@MongLong0214

Copy link
Copy Markdown
Owner

main states something false about when a record's grade can be trusted. Correcting it ahead of the F-001 follow-ups, because waiting means holding the false statement for that long.

The sentence, on main today

Routes share one grading core, so untrusted text is information rather than an instruction — but a record has been observed grading differently through the CLI and through MCP when more than one CommitLore runtime was installed (#631, #635).

That reads as a safety condition. A reader with one runtime installed concludes this cannot happen to them.

Why it is wrong

#653 reproduces the divergence from a single build:

1) index built while the keyring was unreachable   => claim
2) keyring restored, same index                    => claim
3) same moment, --no-index                         => directive

Steps 2 and 3 are the same repository, the same record, the same moment and the same binary. The cause is not how many runtimes are installed — it is that the index caches a signature status, and a signature status is not a property of the repository. It is the verdict of whichever process ran git log, and it depends on the keys that process could reach.

What the replacement does

It moves the cause from the runtime count to the nature of the cache, and it gives the reader a check they can actually run: comparing a route against --no-index tells them whether they are reading a stale verdict. The old wording offered nothing to do, because it named a condition that was not the cause.

Scope

Only the English README carries this sentence — the three translations do not, so correcting it alone leaves nothing inconsistent, and the four-file section-order contracts are untouched.

spec/verify.sh 32 fixtures + README example sync + vocab table, check-readme-numbers matches bench/report.ts, readme-order 18 cases.

Provenance

The sentence was added earlier today in #643, in the same PR that corrected four other README claims for overstating what is proven. This is the same class of defect in the same place — a statement stronger than the evidence — found by the finding that came after it.

The sentence said a record had graded differently through the CLI and through
MCP "when more than one CommitLore runtime was installed", which reads as a
safety condition: install one runtime and this cannot happen. It can. #653
reproduces the divergence from one build, because the index caches the
signature status and a signature status is not a property of the repository —
it is the verdict of whichever process ran git log, and it depends on the keys
that process could reach.

Naming the cause rather than the count also gives the reader something to do:
comparing a route against --no-index says whether the answer came from a stale
cache. The old wording offered no such check, because it pointed at a condition
that was not the cause.

Limit: only the English README carries this sentence; the three translations do not, so nothing is left inconsistent by correcting it alone
Ruled-out: wait for the F-001 branch to avoid a conflict | main states something false about when records can be trusted, and every hour of waiting is an hour of holding it
Blast: local
Undo: easy
Certainty: firm
Provenance: authored
Record-Id: r-readmecache653
Verified: spec/verify.sh 32 fixtures + README example sync + vocab table; check-readme-numbers matches bench/report.ts; readme-order 18 cases
@github-actions

Copy link
Copy Markdown

CommitLore — record lint

Trailers: clean — 1 commit in origin/main..6035cae36c208122f4487edbbfef7e4393d8c2b9
Active constraints: not read — commitlore: the index is incomplete: the build stopped after its time budget with 667 commit(s) or note(s) unread — records in them are missing from this answer. fix: commitlore init (or commitlore index) to finish the index (1 changed path)

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 359e0f1 into main Aug 14, 2026
12 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