Skip to content

[finding] ci.yml's shard-classifier warning describes the pre-#6589 co-occurrence classifier — all three of its stated mechanisms are now false #10713

Description

@claude

Noticed while implementing #10057 (PR #10708), which edits the run: block this comment
guards. Not fixed there — out of scope for that card, and this is an observation about
comment accuracy, not a behaviour defect.

What is stale

.github/workflows/ci.yml (the "Compute this shard's package set" step) explains why it
spells git cat-file -e instead of git rev-parse:

check-shard-attestation.mjs classifies a job as an aggregate GATE when the job's joined
run: text
contains BOTH the string "check-shard-attestation.mjs" and, as a bare
substring
, that script's own dash-dash-verify flag. [...] so spelling that flag anywhere
in this step — including in a comment, since comments are part of run: — silently
reclassifies the shard job as a gate.

All three emphasised claims describe the pre-#6589 classifier. The current
scripts/check-shard-attestation.mjs repudiates each one in its own docblock:

ci.yml saysclassifier now does
"the job's joinedrun: text"jobInvokes is "Per STEP, never over the job's joined text: two steps' texts concatenated are not a command, and treating them as one is exactly #6589"
flag counts "as a bare substring""classification is by INVOCATION — invokesScript() requires the flag to be an argument of a command that runs this script — and never by two substrings co-occurring somewhere in a job"
"including in a comment, since comments are part of run:""The classifier therefore also drops shell comments [...] the self-test's dash-dash-verify-in-a-comment fixture is the pin"

Why it is worth correcting rather than leaving

The comment's instruction ("do not tidy this back") is still good — git cat-file -e is
fine and there is no reason to churn it. What has decayed is its reason, and that is the
part a reader acts on:

  • it overstates the hazard, so an agent editing this high-traffic block may contort to avoid
    writing a perfectly safe word in a comment (the classifier now pins that exact case);
  • a reader who checks the claim against the classifier finds it contradicted, which invites
    distrust of a guard that is in fact correct — the same failure mode as a stale runbook.

The honest replacement is roughly: the spelling is retained because it was measured under the
pre-#6589 co-occurrence classifier; that classifier has since been made adjacency-based and
comment-dropping, so the hazard is closed by construction and the spelling is now just a
harmless preference.

Suggested scope

Comment-only edit in .github/workflows/ci.yml; no behaviour change, no gate change.
Verified against origin/main at 47cd3ec1f8.


Generated by Claude Code


Generated by Claude Code

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions