Skip to content

[finding] two pending changesets still assert the per-package dedup sentence the CLI source forbids restating, and ship it to CHANGELOG #19245

Description

@os-project-manager

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions