docs(deployment): reconcile the gate section with the four doors, the real rule count and the retired alias rule (#7465) - #7483
Conversation
… real rule count and the retired alias rule (#7465) Three drifts between `validating-metadata.mdx` and `cli.mdx`, fixed in one commit because the first of them cannot be fixed in one file. 1. `## The one gate, three entry points` → `## The one gate, four doors`. Since #4463 P1 the table has four columns: the three CLI commands plus the runtime publish gate. "Entry points" cannot absorb the fourth — the section's own prose says that door "is not a command" — so the noun the section already uses for the superset ("There is a fourth door") becomes the heading. The rename is a three-site coordinated edit: heading, anchor fragment and link text. `cli.mdx:458` carried all of the last two, so it moves in the same commit; renaming the heading alone would have left a dead fragment and a link whose text contradicted its destination. Repo-wide grep for the old anchor and the old phrase found exactly these two sites. 2. The quoted `os validate` transcript read `Running author-time rules (26)`. That line prints `authoringRulesFor('validate').length`, measured at 38 by executing the registry — not the 26 of the #4409-era audit. The neighbouring "23 of 26 rules" sentence is a statement about that historical audit and is deliberately left alone. 3. `cli.mdx` still advertised `deprecated visibility aliases` among `os lint`'s advisories. `visibility-alias-deprecated` was retired by #6318; every remaining mention in the tree is commentary about the retirement, a test pinning it, a CHANGELOG entry or the changeset. The docs promised a lint output that can never appear, so the item is dropped. Fixes #7465 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qshjWWLkvNTRTSyoj8KdQ
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
CI: one red, and it is not mine to fix.
This PR releases nothing — it changes two ⛔ Not taking the third route: an empty-frontmatter changeset is rejected by the step below (#5471) and is the #4898 silent-release-stall failure mode. Everything else on
Per dispatch ruling 3 this seat does not poll; the PM owns CI convergence, the ready-flip and landing. I remain subscribed and will act on any further event. Generated by Claude Code |
Fixes #7465
Three drifts between
content/docs/deployment/validating-metadata.mdxandcontent/docs/deployment/cli.mdx, fixed in one commit — because the first of them provably cannot be fixed in one file.1. The heading — a three-site coordinated edit
validating-metadata.mdx:349read## The one gate, three entry points. Since #4463 P1 the matrix below it has four columns:os validate,os build,os lint, and the runtime publish gate that #7458 documented three hours ago.Chosen wording:
## The one gate, four doors— not "four entry points". The section's own prose rules that out: it introduces the fourth as "There is a fourth door, and it is not a command", and the sentence directly under the heading enumerates the three commands. "Entry point" in the original meant a CLI invocation, so stretching it over asaveMetaItemwrite path would make the heading false in the same way the old one was. "Door" is the noun the section already uses for the superset (it appears four times in the section), and it matches the four table columns. The later "for someone authoring in Studio that door is not one of four — it is the only one" is a perspective note about one author's reachable surface, not a competing count, so it stays untouched and still reads correctly under the new heading.Three sites moved together — heading, anchor fragment, link text:
validating-metadata.mdx:349## The one gate, three entry points## The one gate, four doorscli.mdx:458(fragment)#the-one-gate-three-entry-points#the-one-gate-four-doorscli.mdx:458(link text)The one gate, three entry pointsThe one gate, four doorsRepo-wide grep for
the-one-gate-three-entry-pointsandone gate, three entryfound exactly these two files — both inside the ruled file surface, nothing to widen to. (The threepackages/spechits for the bare phrase "three entry points" are about npm package exports and are unrelated.)Anchor verified mechanically with this repo's own
github-slugger@2.0.0:slug("The one gate, four doors")→the-one-gate-four-doors, which is the fragmentcli.mdxnow links.2. The transcript count — measured, not quoted
validating-metadata.mdx:482read→ Running author-time rules (26)....That line is printed by
packages/cli/src/commands/validate.ts:117as`Running author-time rules (${registered.length})...`whereregistered = authoringRulesFor('validate')— i.e.AUTHORING_RULESfiltered to entries whosecommandsincludevalidate, not the raw table length. Executed against the live registry:The transcript is a
◆ Validaterun, so 38 is the number that command would actually print. The two counts happen to coincide here because every entry currently runs onvalidate; they are not the same quantity, and anos linttranscript would have to say 35.Deliberately not changed:
validating-metadata.mdx:466, "the last audit (#4409) found 23 of 26 rules running on some strict subset of the three" — that is a statement about a past audit, not a live count.3. The retired rule
cli.mdx:473listeddeprecated visibility aliasesamong the advisoriesos lintreports.visibility-alias-deprecatedwas retired by #6318, and every surviving mention in the tree is commentary about the retirement (validate-visibility-predicates.ts:14,631,authoring-rules.ts:242,796), a test pinning it retired (authoring-rule-input-tier.test.ts:218,validate-visibility-predicates.test.ts:43), a CHANGELOG entry, or the changeset — no live rule. The item is dropped; the rest of the advisory list is unchanged.This was the only one of the three in the user-facing
declared ≠ enforceddirection: the docs promised a lint output that can never appear.Verification
pnpm check:doc-authoringpnpm --filter @objectstack/lint run check:doc-formula-expressionsnode scripts/check-nul-bytes.mjsnode scripts/check-adr-links.mjs --self-test && node scripts/check-adr-links.mjsCheck Documentation Links(lychee).github/workflows/check-links.ymllychee.tomlsetsinclude_fragments = "none", and I falsified the assumption directly rather than trusting the comment: a probe file linking/docs/deployment/validating-metadata#this-anchor-does-not-exist-at-allis reported[200] ✅ OKby the pinned lychee under the CI argv. It resolves the file target only. The anchor half of this rename is therefore verified by thegithub-sluggercomputation above and by the grep showing no residual references — not by any CI gate.Notes
skip-changesetis the PM's to apply).the three commands/all three, which is still correct, and the historical "23 of 26" is left as-is.packages/objectql/src/plugin.ts:76("the 26 sharedAUTHORING_RULES") andpackages/metadata-protocol/src/protocol.ts:2542("all 26 sharedAUTHORING_RULES"). Both are outside this card's ruled file surface and outside its docs-only shape; recording here so they stay discoverable rather than widening this PR.Generated by Claude Code