docs(agents): state the changeset gate's full population, not src/ alone - #7640
Draft
claude[bot] wants to merge 1 commit into
Draft
docs(agents): state the changeset gate's full population, not src/ alone#7640claude[bot] wants to merge 1 commit into
src/ alone#7640claude[bot] wants to merge 1 commit into
Conversation
…alone The Housekeeping sentence named `src/` as the whole population. The gate reads wider in two independent ways: `isPublishedSource` has three clauses (the package's `src/`, the package-root `index.html` build entry, and any path the package's own `package.json` `files` list publishes verbatim — the latter two minus `*.md` and `LICENSE*`), and `CONTRACT_FIELDS` asks a second question of the manifest itself, where a value move in any of eight published-contract fields owes a declaration even when no source file changed. A reader who applied the old sentence and concluded "I did not touch `src/`, nothing is owed" got the opposite answer from CI. The sentence now states the population in plain words and names the script's own header as the authoritative statement, so the prose stays honest when the gate moves again. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
This was referenced Sep 4, 2026
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 #6997
Root
AGENTS.md, one sentence under### Housekeeping. Its two child bullets are unchanged: the first (do not judge by "feature yes, bug-fix no") and the second (the local self-check command) both still hold word for word against the widened rule.改前 → 改后
src/(.changeset/config.json的fixed组,含apps/console),就必须新增一个.changeset/*.md—— 这一条由 ….changeset/config.json的fixed组,含apps/console)的已发布可执行源码 ——src/下的任何文件、包根的index.html构建入口、或该包package.json的files列表逐字发布的文件(后两类减去*.md与LICENSE*,src/下不减) —— 或者挪动了该包package.json里八个发布契约字段(sideEffects、exports、main、module、types、files、peerDependencies、engines)之一的值(哪怕一个源码文件都没动),就必须新增一个.changeset/*.md;判据的权威表述是scripts/check-changeset-presence.mjs的文件头,这段话与它不一致时以它为准 —— 这一条由 …The tail after 这一条由 … is byte-identical in both rows: the enforcing workflow,
pnpm changeset, the empty-frontmatter form, 要的是"声明一次",不是强制发版.What the gate tests, clause by clause, and where each clause now appears
Read from the code on
origin/main, not from the card. Reviewing this change is checking that every row's right-hand column is a faithful plain-words statement of its left-hand column.isPublishedSourceclause (a): the path is under the package'ssrc/— answers first and unconditionallysrc/下的任何文件index.html, the bundler's HTML entry compiled into the publisheddist/index.html构建入口package.jsonfileslist publishes the path verbatim (exact entry, or a directory prefix of one)package.json的files列表逐字发布的文件isDocumentation(*.md,LICENSE*) is subtracted from (b) and (c) only; clause (a) keeps its all-of-it reading*.md与LICENSE*,src/下不减CONTRACT_FIELDS: a value diff of eight named manifest fields, asked ofpackage.jsonitself and independent of any changed filepackage.json里八个发布契约字段(…)之一的值(哪怕一个源码文件都没动)fixedgroup of.changeset/config.jsonscripts/check-changeset-presence.mjs的文件头,这段话与它不一致时以它为准The pointer and the plain statement are both there on purpose. The plain statement is what an agent applies before running anything; the pointer is what keeps this prose honest the next time the population moves.
The gate's header and its code agree on every clause and on all eight field names. One cosmetic difference, reported and not acted on: the header's shorthand for the licence exception is
LICENSE*, whileisDocumentationmatches/^LICEN[SC]E/i, i.e. the British spelling too. The prose above follows the header's spelling. No change was made to the script.Gates run on
c20e2a8(this PR's head)pnpm check:control-bytescheck-control-bytes: OK (scanned 6242 tracked text file(s); skipped 85 binary).node scripts/check-changeset-presence.mjsNo source or published contract of a released package changed in this range, so no changeset is owed.pnpm check:shell-escape-residuecheck-shell-escape-residue: OK (5/5 root(s) resolved -- AGENTS.md: 1 file(s), 15 fence(s); …)pnpm check:governed-queue-guardOK check-governed-queue-guard self-test: 132 cases passpnpm check:doc-fencescheck:doc-fences — every TypeScript block in 227 document(s) is fenced ts/tsx/typescript …node scripts/check-doc-links.mjsLinks are valid across 17 scan roots.No changeset is added, and that is the gate's own answer quoted above rather than a judgement: this repository has no
skip-changesetmechanism, socheck-changeset-presence.mjsalone decides, and for a rootAGENTS.md-only diff it decides nothing is owed.Not run, with the reason:
check-links.ymldrives lychee over external URLs and this change adds none;ci.ymlandlint.ymlstart on a markdown-only PR but their in-job "needs a full run" switch excludes**/*.md, so their expensive steps skip; the live leg ofgoverned-surface-guard.ymlneeds the PR and the API and is CI's to run.🤖 Generated with Claude Code
https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
Generated by Claude Code