docs(hygiene): match the header-position pin's head clause to the gate's - #1364
Merged
Merged
Conversation
The comment above the "does not judge .d.ts" pin opened with a bare universal negative — "The rest of the scanned trees genuinely have no header today" — which is false read on its own: measured with the gate's own COPYRIGHT_HEADER, 7 of the 14 non-.ts files in the scanned trees do carry the header. Take the wording the gate's own docstring already landed rather than a third phrasing, so the file and the suite that tests it state one fact in one shape: "the header is *not* universal in the rest of the scanned trees". The em-dash clause, the fixtures, the assertions and the describe block are untouched. No integers and no counting guard, per the standing family ruling. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMzCeNC4SZcPNBpE2zCVCg
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1357
One comment sentence in
test/source-hygiene-header-position.test.ts. No executable line moves.The two lines, side by side
This is the whole point of the card, so here is the claim rather than an assertion of it. The gate and the suite that tests it now state one fact in one shape:
Before this PR the suite's half opened with a bare universal negative instead:
Both quotes deliberately name the file and not the line. This family's own lesson is that a hand-maintained integer in prose goes stale, and these two lines moved twice in the day between the finding and this PR — the card recorded the sentence at
~:250and it was at:249at dispatch.Why the head clause was wrong
Read on its own, "The rest of the scanned trees genuinely have no header today" is false. Measured with the gate's own
COPYRIGHT_HEADER—/^\/\/ Copyright \(c\) \d{4} ObjectStack\./, applied the wayscanHeaderPositionapplies it — overSCANNED(src,test,e2e,scripts) onmain@3e1b00b:.ts.mjs.mts.sh.mdSo 7 of the 14 non-
.tsfiles in the scanned trees do carry it. (.mtsis not.tsto this gate:isTsisf.endsWith('.ts') && !f.endsWith('.d.ts'), and"x.mts".endsWith(".ts")isfalse.)There was a defensible reading under which the old sentence was fine — the em-dash clause does carry a quantifier, so it can be read as a restrictive appositive naming which files the head clause is about. That ambiguity was the entire finding, which is why it was graded marginal rather than as a defect. It is still worth one word: the audience for a gate's comments is the next agent to edit the gate, and an agent reads a bare universal negative as a fact it can reason from.
Why this wording and not a better one
The gate's docstring took exactly this repair in PR #1356, where the contrast was explicit and the bare universal negative unambiguously false. Copying it is the requirement, not a shortcut — a third phrasing would re-create "one fact, two shapes" under a new spelling, which is the entire reason the card exists.
Deliberately unchanged
.shandsrc/docs/*.mdhalves are accurate and keep their wording; they read no more awkwardly after the change than before it.COPYRIGHT_HEADER,INDENTED_COPYRIGHT_HEADER, the scanned surface, every fixture, every assertion and thedescribeblock: byte-identical. The diff is 5 comment lines out, 6 in, plus the changeset.scripts/check-stackblitz-lock.mjsandscripts/sync-docs-screenshots.mjscarrying no licence header is known and deliberate, and The copyright header is.ts-only in practice: 3 of 5scripts/*.mjs, the.shandsrc/docs/*.mdhave none, and one.mjsuses different wording #1138 was closednot_planned. Out of scope here and untouched.Verification
pnpm verifygreen on the final commit of this branch,ab34da5— run after the changeset was committed, so the union covers everything the PR ships:The token ratchet is unmoved by construction — it measures
src/**/*.tscomment-stripped, and this change is a comment intest/.pnpm changeset status --since=3e1b00balso passes locally:NO packages to be bumpedat patch, minor or major.Changeset
.changeset/header-position-twin-head-clause.md, empty frontmatter — the sanctioned "this PR releases nothing" declaration that.github/workflows/changeset-check.ymldocuments. This one genuinely is the prose-only case: the diff is one comment intest/plus the changeset itself, and nothing undersrc/is touched.Generated by Claude Code
Generated by Claude Code