Skip to content

docs(ci): correct the four remaining copies of the falsified paths-ignore premise - #4380

Merged
yinlianghui merged 1 commit into
mainfrom
claude/issue-4369-paths-ignore-residue
Aug 11, 2026
Merged

docs(ci): correct the four remaining copies of the falsified paths-ignore premise#4380
yinlianghui merged 1 commit into
mainfrom
claude/issue-4369-paths-ignore-residue

Conversation

@yinlianghui

@yinlianghuiyinlianghui commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Fixes#4369

Completes the sweep PR #4371 started. That PR corrected three sites after objectui#3523 step 2 deleted paths-ignore from ci.yml/lint.yml's pull_request trigger — it survives only on push (ci.yml line 6, lint.yml line 32, verified at this branch point). Four near-verbatim copies of the retired premise sat outside that card's scope; until they are corrected the repository states both shapes, and the stale copy in changeset-presence.yml is the one physically closest to the gate it explains.

All four are restated in #4371's terminology and shape, so the repo speaks one corrected dialect: paths-ignore remains only on push; the pull_request path decision is the in-job Decide whether this change needs a full run step, whose exclusion list is that push filter unchanged (markdown and .changeset/**), held identical to it by scripts/__tests__/merge-queue-reporting.test.ts; and both changeset gates remain correct as built — the conclusion outlives its premise, because those workflows now start, report, and skip every expensive step on exactly the PRs these gates judge.

The four sites

SiteBefore (gist)After (gist)
.github/workflows/changeset-presence.yml header"ci.yml and lint.yml both list .changeset/** under paths-ignore, so a PR that adds ONLY a changeset starts nothing else"Leads with the reason that holds today (every gate inside both workflows skips, so nothing in either ever reads the changeset), then names the retired premise as retired, cites #3523 step 2 and the measurements (PR #3856 → 16 checks, PR #4339 → 17), then what #3523moved: the in-job decision step and its exclusion list
scripts/check-changeset-no-major.mjs docblockhistorical sentence with a present-tense parenthetical: "(both ci.yml and lint.yml list it under paths-ignore)"Parenthetical scoped to the past ("at the time … on their pull_request trigger"), history intact, followed by today's shape and why this gate is still the only thing that judges a changeset-only PR
scripts/__tests__/check-changeset-no-major.test.ts file docblock"ci.yml and lint.yml both paths-ignore.changeset/**, so a changeset-only PR started no workflow at all"Same history, marked as history, plus: such a PR starts both workflows today; what it still does not do is run anything expensive in them, so no gate inside them reads the changeset either way — which is why the two locks below still stand
scripts/__tests__/check-changeset-no-major.test.tschangeset-guard.yml trigger test"ci.yml cannot host this check: a changeset-only PR matches its paths-ignore twice over … so no job in it would ever run"Restated on the reason that holds today — the in-job decision step finds nothing outside its exclusion list and skips every step below itself, so this gate must run outside that decision — plus a note that the surviving push copy is exactly what the two assertions below read, and why they stay green

Zero behavior change, mechanically

  • Comment-only diff. Every added/removed line is a # comment, a docblock line, or a // comment: git diff -U0 filtered to lines that are not comments returns nothing.

    git diff -U0 | grep -E '^[+-]' | grep -vE '^(\+\+\+|---)' | grep -vE '^[+-]\s*(#|\*|//|/\*)'
    → (no output)
    
  • YAML re-parse, before vs after (yaml@2.9.0, origin/main copy vs branch copy):

    parsed identical: true
    triggers before: {"pull_request":{"branches":["main","develop"]},"merge_group":{"types":["checks_requested"]}}
    triggers after : {"pull_request":{"branches":["main","develop"]},"merge_group":{"types":["checks_requested"]}}
    jobs identical: true
    
  • Assertions untouched — 0 changed.expect(ci).toContain("paths-ignore:") and the markdown-glob assertion beside it are byte-identical and still green: ci.yml's push trigger genuinely keeps its copy. The it(...) titles are code, not comments, and were left alone for the same reason.

  • No suite pinned the old sentences — measured, not assumed: a grep for the removed phrasings across scripts/, packages/, apps/ returns only my own new comment (which quotes the retired sentence deliberately) and unrelated prose. The suites that read these files (check-changeset-presence, merge-queue-reporting, docs-links-workflow, check-skills-paths, check-control-bytes, ci-cd-pipeline-doc) all strip whole-line comments before scanning, and the edited workflow contains no literal paths-ignore: token at all.

Verification

CommandResult
node --check scripts/check-changeset-no-major.mjsOK
pnpm exec eslint scripts/check-changeset-no-major.mjs scripts/__tests__/check-changeset-no-major.test.tsexit 0, 0 errors
node scripts/check-changeset-no-major.mjsexit 0 — "No changeset declares a major bump."
node scripts/check-control-bytes.mjsexit 0 — 4085 tracked text files scanned
node scripts/check-changeset-presence.mjsexit 0 — "3 file(s) changed, 0 of them under the src/ of a package the release covers … no changeset is owed"
repo-root pnpm exec vitest run over the eight suites that read these files (check-changeset-no-major, check-changeset-presence, merge-queue-reporting, lint-workflow, ci-cd-pipeline-doc, check-control-bytes, docs-links-workflow, check-skills-paths)Test Files 8 passed (8), Tests 168 passed (168)
CI on this head commit18 check runs, 16 success + 2 skipped (Test (coverage), dependabot), 0 failures — including Lint, Type Check and all four Test (shard N/4), which run the whole scripts/ suite on a fresh install

Reverse verification, honestly reported. The usual before-green/after-red direction does not exist for this change: nothing pins these sentences, in either direction. Measured rather than assumed — with all four sites reverted to origin/main (git checkout origin/main -- …, never git stash) the same suites stayed green, Test Files 4 passed (4), Tests 85 passed (85), then the branch text was restored. That absence of coverage is precisely why these copies outlived two corrections, and it is why the fix is a text sweep rather than a gate.

No changeset: nothing under the src/ of a released package changed, and the gate self-determines that above.


Generated by Claude Code

…nore premise (#4369)
PR #4371 corrected three sites (AGENTS.md, check-changeset-presence.mjs,
changeset-guard.yml) after objectui#3523 step 2 deleted `paths-ignore` from
`ci.yml`/`lint.yml`'s `pull_request` trigger — it survives only on `push`.
Four near-verbatim copies of the retired premise were outside that card's
scope and are corrected here, in the same terminology, so the repo states one
shape rather than two:
- .github/workflows/changeset-presence.yml header
- scripts/check-changeset-no-major.mjs docblock parenthetical
- scripts/__tests__/check-changeset-no-major.test.ts file docblock
- scripts/__tests__/check-changeset-no-major.test.ts "ci.yml cannot host this
check" comment, restated on the reason that holds today: the in-job
`Decide whether this change needs a full run` step skips every expensive
step on such a PR, so the gate must run outside that decision.
Comment-only: every changed line is a `#` comment, a docblock line or a `//`
comment. No assertion is touched; `changeset-presence.yml` re-parses to a
byte-identical object.
@vercel

vercelBot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectuiIgnoredIgnoredAug 11, 2026 11:22pm

Request Review

@yinlianghuiClaude

Copy link
Copy Markdown
CollaboratorAuthor

ACCEPT — PM 复核 (session session_017Qqyix2QcnpUC9XeYVDzx3), closes #4369.

Flipping ready + arming auto-merge.


Generated by Claude Code

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

Projects

None yet

2 participants

@yinlianghui@claude