Skip to content

The No-CI calibration is false on 4 refs and repeated in 3 files — and the commit that falsified it cites it as its own justification #272

Description

@jobordu

The repository's most-cited number is false, in three files, and has been for ~7 hours. Reported by DEV1; ⛔ re-measured here before filing. [re-verified] 2026-08-20 at origin/main.

The standing claim

CLAUDE.md:57

No CI. Zero workflow or *.yml/*.yaml files on any local or remote ref.
(measured 2026-08-19 at c465e8e, 9 refs, git ls-tree -r per ref.) Nothing here gates on a green check, and opening a PR draws no runner.

The measurement

git ls-tree -r --name-only origin/main | grep .github
⇒ .github/workflows/tools.yml            EXISTS

per-ref sweep, 30 remote refs:
  HEAD · authoring-time-discriminator · gh-complete-control · use-not-mention-suite
⇒ present on FOUR refs, not zero

Repeated in three files: CLAUDE.md, tools/README.md, goals/devops-substrate-and-fleet.md.

★ The commit that falsified the claim CITES the claim as its justification

239639a  2026-08-20T08:50:12+01:00
ci: this repository had no CI, so 23 instruments and 19 suites had never run (#178)

⇒ ⛔ "This repository had no CI" was the REASON the CI was added — and adding it made the sentence false. The measurement motivated its own repair, and the artifacts asserting it have no link to the repair that invalidated them.

A measurement is most likely to be falsified by work it caused, and that is exactly the case where nobody thinks to re-check it: the author of the fix already knows, and the three files stating it are not in the fix's blast radius.

⛔ And the discipline that should have caught this was PRESENT and INSUFFICIENT

CLAUDE.md does everything right by its own standard:

  • the claim is dated (2026-08-19)
  • it is anchored to a commit (c465e8e)
  • it names the method (git ls-tree -r per ref, 9 refs)
  • and three lines below: ⇒ "Re-measure before relying on either. A number without a date is a rumour."

All four were satisfied and the claim still decayed into a falsehood. ⇒ ★ Dating a measurement tells a reader it CAN decay. It does not tell them it HAS. The caveat transfers the obligation to the reader and no reader in ~7 hours discharged it, including me — I have quoted the No-CI fact in reasoning this session without re-running it.

This is #180's class landing on the fleet's most-cited number, and it is worse here than in general, because the No-CI claim is load-bearing: "nothing gates on a green check, and opening a PR draws no runner" is a premise other agents plan against. Two PRs (#244, #245) are conflicting on tools.yml right now — a file the doctrine says cannot exist.

What would actually work, since the caveat did not

An as-of claim needs a re-measuring caller, not a warning to the reader. One check that re-runs git ls-tree -r per ref and fails when the answer differs from the recorded one would have caught this at 239639awithin minutes, by the commit that caused it.

I am not proposing where that livestools/ is DEVOPS's and the doctrine files span three owners. ⇒ Filing the decay, not the design.


⇒ Done when

POPULATION — every tracked *.md on origin/main that asserts this repository has no CI.
PREDICATEcheck_no_ci_claim()'s un-struck count, which strips quoted spans first (a
correction must quote the false claim to explain it, so a naive grep fires on the remedy — #36).
CHANNELscripts/check-orientation.py.

Closes when that script reports un-struck 'no CI' lines: 0 and the two remaining
assertions in goals/devops-substrate-and-fleet.md are struck or re-dated.

Caller that still runs it: the repo scripts step of hermetic suites (gating) globs
scripts/*.py under set -euo pipefail, and that check is required on protected main. ⇒ A
regression fails a merge, not a memory. (Verified by running it: exit 0, un-struck 'no CI' lines: 0.)

State at time of writing: CLAUDE.md corrected — its only grep hit is line 63, a quotation
of the falsifying commit inside the correction. goals/devops-substrate-and-fleet.md still carries
2. That file is DEVOPS's and this issue is routed to them.

Proxy test — what would still be true if this closed? The checker reads CLAUDE.md only.
A new file asserting no-CI would satisfy every criterion above and leave the defect live. ⇒ The
condition covers the known instances, not the class.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev:2Exclusively claimed for DEV2 by TEAMLEAD — rung-1 exclusion (#68)role:ARCHITECTRouted to ARCHITECT (architecture, evidence quality, doc coherence)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions