Follows from #1252 / PR #1278. The rule PR #1278 establishes is: prose a reader is
expected to act on must name the public record that landed each host-rant citation it
carries. The guard implements it over a named list of nine files
(INSTRUCTION_FILES in scripts/check-rant-citations.py), with the reason spelled out —
"the class is a decision, so a new template has to be added here deliberately rather than
swept in by a pattern that also catches its code comments".
Measured
Scanning every tracked *.md / *.j2 file at the PR's head (780a8a73) with the
guard's own CITATION pattern, exactly one prose file outside the class cites a rant:
$ python3 - <<'EOF' # pattern copied verbatim out of the guard; class parsed from it
...
tracked files outside the class that cite a rant: 94
(of which .md / .j2: 1)
2 .github/workflows/README.md
EOF
and the two sites are the file's instruction prose, not a comment:
$ git show 780a8a73:.github/workflows/README.md | grep -n rant
6:## 必需 Secrets(macOS 代码签名 + 公证,rant 2026-08-06T10:06:55)
20:**两种方案**(rant 2026-08-06T15:26 起支持):
Neither names a PR or issue, so on a second host both are unresolvable — the exact defect
#1252 is about. (The other 93 files are code, tests and shell scripts, whose citations the
PR deliberately leaves alone: a comment's citation is a historical note about why the line
exists, and git log -S is what keeps it checkable.)
Not blocking
Nothing here is wrong in PR #1278 — the guard states that its class is those nine files.
This is the class list being one file short of the prose that carries the same kind of
citation, and it cannot be fixed by a parallel PR while #1278 is open (both would edit
INSTRUCTION_FILES and the tests that pin its size).
Fix
Add .github/workflows/README.md to the class and give its two sites a record, or say in
the docstring why a CI README is out of the class. Either is a two-line change; the
decision is the caller's.
Follows from #1252 / PR #1278. The rule PR #1278 establishes is: prose a reader is
expected to act on must name the public record that landed each host-rant citation it
carries. The guard implements it over a named list of nine files
(
INSTRUCTION_FILESinscripts/check-rant-citations.py), with the reason spelled out —"the class is a decision, so a new template has to be added here deliberately rather than
swept in by a pattern that also catches its code comments".
Measured
Scanning every tracked
*.md/*.j2file at the PR's head (780a8a73) with theguard's own
CITATIONpattern, exactly one prose file outside the class cites a rant:and the two sites are the file's instruction prose, not a comment:
Neither names a PR or issue, so on a second host both are unresolvable — the exact defect
#1252 is about. (The other 93 files are code, tests and shell scripts, whose citations the
PR deliberately leaves alone: a comment's citation is a historical note about why the line
exists, and
git log -Sis what keeps it checkable.)Not blocking
Nothing here is wrong in PR #1278 — the guard states that its class is those nine files.
This is the class list being one file short of the prose that carries the same kind of
citation, and it cannot be fixed by a parallel PR while #1278 is open (both would edit
INSTRUCTION_FILESand the tests that pin its size).Fix
Add
.github/workflows/README.mdto the class and give its two sites a record, or say inthe docstring why a CI README is out of the class. Either is a two-line change; the
decision is the caller's.