Path: none | unreleased changeset claim | 硬时限:下次发版即固化
Filed by the domain:cli execution PM seat (#6024, session session_01QCdUBjM47SxioST9z5Zwdf) out of the #18893 round (PR #19241), from that dev's out_of_scope_findings marked 「to file」, class (b) — contradicts a declared contract. ⛔ Filed bare: finding only; domain:*, type and priority are triage's.
Dedupe words: exactly the set the union could not see · 18677 changeset · 18778 changeset · CHANGELOG assertion · per-package dedup bound.
The shape
Two pending, unreleased changesets still state, as a claim, the sentence the CLI source explicitly forbids restating — and both attribute it to source text that no longer says it:
| file |
the words it uses |
why it is an assertion |
.changeset/18677-validate-per-package-authoring-pass.md |
"By compile.ts' own description the survivors of that second pass are «exactly the set the union could not see»" |
attributes the sentence to compile.ts, which now prohibits it |
.changeset/18778-lint-per-package-authoring-pass.md |
"every finding that pass produces — «exactly the set the union could not see», in the build command's own words" |
attributes it to the build command, which no longer says it |
The contract they contradict, quoted from the tree:
packages/cli/src/utils/artifact-packages.ts — the entitled claim "is narrower than" that sentence, and the key is "position-insensitive, ⛔ not collision-proof".
packages/cli/src/commands/compile.ts — "⛔ Do not re-inflate that to" it.
⚠️ Why this is worth a card rather than an acceptance note
A changeset body ships verbatim into CHANGELOG.md. These two are unreleased, so the cost of fixing is a diff; after the release that consumes them it is a published version number stating a falsehood to every upgrading reader — and an upgrading agent greps exactly that text. ⭐ This is the same clock that makes #18823 urgent, on one of the same files.
⛔ The 「somebody will touch this file anyway」 fallback does not hold for .changeset/* by the seat's own rule — which is precisely why this is filed rather than noted.
⭐ The third hit, checked and CLEARED — ⛔ not a miss
This seat re-derived the sweep over the whole population (482 changesets on origin/main 847e5773a, whitespace-normalised because the sentence wraps across lines; lit control 481/482) and found three files, not two. The third is legitimate and is named here so nobody re-opens it:
.changeset/18779-per-package-dedup-positional-key.md — "Also corrected: the sentence «…», which was false for as long as the key was positional". That is a quoted correction, the settled shape, ⛔ not an assertion.
⚠️ This seat's first sweep printed zero rows while two direct reads each returned 1 — a contradiction that exposed a broken instrument (the loop double-prefixed .changeset/, reading paths that do not exist), ⛔ not a clean tree. Recorded because the zero was entirely convincing on its own.
Successors, named
First act for whoever takes this
Re-derive both quotes at origin/main whitespace-normalised — ⚠️ the sentence wraps across two lines and a line-oriented grep -F returns 0 on it. Triage, two seats and this card's own sweep have each paid for that zero once. Then write the replacement from the source's settled wording; ⛔ do not invent a fourth phrasing of a bound that already has three.
Generated by Claude Code
Path: none | unreleased changeset claim | 硬时限:下次发版即固化
Filed by the
domain:cliexecution PM seat (#6024, sessionsession_01QCdUBjM47SxioST9z5Zwdf) out of the #18893 round (PR #19241), from that dev'sout_of_scope_findingsmarked 「to file」, class (b) — contradicts a declared contract. ⛔ Filed bare:findingonly;domain:*, type and priority are triage's.Dedupe words:
exactly the set the union could not see·18677 changeset·18778 changeset·CHANGELOG assertion·per-package dedup bound.The shape
Two pending, unreleased changesets still state, as a claim, the sentence the CLI source explicitly forbids restating — and both attribute it to source text that no longer says it:
.changeset/18677-validate-per-package-authoring-pass.mdcompile.ts' own description the survivors of that second pass are «exactly the set the union could not see»"compile.ts, which now prohibits it.changeset/18778-lint-per-package-authoring-pass.mdThe contract they contradict, quoted from the tree:
packages/cli/src/utils/artifact-packages.ts— the entitled claim "is narrower than" that sentence, and the key is "position-insensitive, ⛔ not collision-proof".packages/cli/src/commands/compile.ts— "⛔ Do not re-inflate that to" it.A changeset body ships verbatim into
CHANGELOG.md. These two are unreleased, so the cost of fixing is a diff; after the release that consumes them it is a published version number stating a falsehood to every upgrading reader — and an upgrading agent greps exactly that text. ⭐ This is the same clock that makes #18823 urgent, on one of the same files.⛔ The 「somebody will touch this file anyway」 fallback does not hold for
.changeset/*by the seat's own rule — which is precisely why this is filed rather than noted.⭐ The third hit, checked and CLEARED — ⛔ not a miss
This seat re-derived the sweep over the whole population (482 changesets on
origin/main847e5773a, whitespace-normalised because the sentence wraps across lines; lit control 481/482) and found three files, not two. The third is legitimate and is named here so nobody re-opens it:.changeset/18779-per-package-dedup-positional-key.md— "Also corrected: the sentence «…», which was false for as long as the key was positional". That is a quoted correction, the settled shape, ⛔ not an assertion..changeset/, reading paths that do not exist), ⛔ not a clean tree. Recorded because the zero was entirely convincing on its own.Successors, named
.changeset/18677-…is the claimed file surface of in-flight card [finding] PR #18769's PENDING changeset declines the BREAKING banner on the ground that the narrowing "could not be exhibited" — an at-tier review exhibited it, and the file is still unreleased #18823 (PR docs(cli): #18769's pending changeset declares theos validate --strictnarrowing an at-tier review exhibited #18867), for a different defect (its declined**BREAKING**banner). ⇒ whoever lands that card is already opening this file and can carry this half.pm:awaiting-maintainerand ⛔ must not be pre-empted..changeset/18778-…has no named successor. It is the half that would otherwise be lost.First act for whoever takes this
Re-derive both quotes at⚠️ the sentence wraps across two lines and a line-oriented
origin/mainwhitespace-normalised —grep -Freturns0on it. Triage, two seats and this card's own sweep have each paid for that zero once. Then write the replacement from the source's settled wording; ⛔ do not invent a fourth phrasing of a bound that already has three.Generated by Claude Code