Uh oh!
There was an error while loading. Please reload this page.
docs(ci): drop ci-cd-pipeline.md's hand-copied object-ui ratchet list and put the page under the guard (#3782) - #4153
Merged
Conversation
…d gate the page (#3782) `content/docs/guide/ci-cd-pipeline.md` argued from the `object-ui/*` error ratchets a fourth time. Its main clause was already the evergreen phrasing, but it closed on a parenthesised source list that named a rule outright — the same hand-copy #3261 removed from `lint.yml` and #3279 from `check-lint-coverage.mjs`. Option A per the ruling on #3782: the list goes, the reader's provenance pointer survives as a link to `eslint.config.js`, and the page joins the guard's surface list. Adding the surface exposed two matcher gaps that made the entry worthless as written: - the rule-name check matched only the config's `object-ui/`-qualified key, while prose names a rule bare — the page said `no-dynamic-import-in-test-hook`, so the guard passed on the very enumeration it was added for; - the count check read the quantifier in "every one of those `error` ratchets" as a cardinality. Both are closed, so the surface entry gates something.
The latest updates on your projects. Learn more about Vercel for GitHub. |
yinlianghui
marked this pull request as ready for review
August 10, 2026 15:08
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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#3782
Option A, per the delegated ruling on the card: the parenthetical enumeration in
content/docs/guide/ci-cd-pipeline.mdis gone, the sentence converges on the evergreen phrasing the other two surfaces have used since #3261 / #3279, and the page joins the guard's surface list so all three copies sit under one gate.What changed
The page. The sentence keeps its main clause verbatim — "the rules
eslint.config.jssets toerror" — and loses the parenthesis that hand-copied the sources and named a rule outright. The provenance pointer survives as a link toeslint.config.js, where each of the four ratchets carries its ADR or issue in the comment beside the rule (verified onmain: ADR-0054 Phase 5, objectui#2879, objectui#3090, and theobjectql.tstype-discipline ratchet).check-doc-linksresolves this repo's ownblob/main/URLs against the tree since #3507 / #3536, so that pointer is itself gated.The guard.
scripts/__tests__/lint-workflow.test.tsgains the page as a third surface. #3279 had already parameterised the two assertions over a surface list, so this was meant to be one entry. It was not.The two matcher gaps this exposed
Adding the surface with the matcher exactly as #3279 left it, against the un-fixed page:
object-ui/-qualified key; prose names a rule bare, and the page saidno-dynamic-import-in-test-hookerrorratchets was inert" — a phrase that asserts no cardinality and cannot driftThe first is the load-bearing one. Added under that matcher, the entry would have been a green surface sitting over a live enumeration — a gate that reads exactly as covered as one that works, which is this issue's own defect one level up. Both gaps are closed: the name check matches both spellings, and three lookbehinds drop the quantifier reading of
one. The narrowing is deliberate and small — "every one of the four ratchets" still fails, onfour.Reverse verification
In the order the card asked for, each step measured:
"one of those \error` ratchet"`;object-ui/no-dynamic-import-in-test-hook; count assertion green;Tests
No changeset:
scripts/check-changeset-presence.mjsarbitrates — "No source of a released package changed in this range, so no changeset is owed." Docs + test only, henceskip-changeset.Out of scope
The card asked for a sweep of the same page for other hand-copied enumerations of the same shape. Two were found, both already drifted, both a different fact from the ratchet list and neither fixable without its own wording decision — so they are filed rather than bundled, which is the discipline that produced this card in the first place (#3782 was itself kept out of #3279's PR). See the linked finding.
Generated by Claude Code