ci(docs): check linked terms, procedure format, and UI verification - #689
Open
reemsabawi-mystenlabs wants to merge 3 commits into
Open
ci(docs): check linked terms, procedure format, and UI verification#689reemsabawi-mystenlabs wants to merge 3 commits into
reemsabawi-mystenlabs wants to merge 3 commits into
Conversation
The prose style checks cover voice, tense, and word choice. They pass on
pages that still draw a review round over missing links, formatting that
disagrees with the sibling pages, and click-through procedures nobody
ran. Every comment on MemWal#603 fell into one of those three gaps.
scripts/check-docs-conventions.mjs covers them:
- Linked terms. scripts/docs-conventions.json maps a concept to its
canonical page or spec. A changed page that mentions the concept has to
link it at least once. Internal targets are checked against
docs/docs.json each run, so a renamed route fails loudly.
- Procedure format. A page using <Steps> cannot also write a procedure as
a bolded numbered list, and a Troubleshooting section has to match the
format its sibling pages already use.
- UI verification. When a change touches a click-through procedure, the
pull request body needs a "UI verification:" line. "Nobody has run it
yet" is a valid answer; the point is that it reaches the reviewer
without them asking.
Runs on changed pages only, so the 37 pre-existing unlinked terms across
the site surface as those pages get edited rather than in one sweep.
Verified against MemWal#603: the pre-review revision of
docs/mcp/claude-connector.md produces 5 findings that match 5 of the
reviewer's comments one for one, and the current revision is clean.
Sources:
- Term targets: the Sui wallet URL is the one MystenLabs/walrus already
uses in docs/content/sites/known-restrictions.mdx; the zkLogin URL is
already cited in docs/reference/console-identity-link.md; the internal
routes come from docs/docs.json.
- Troubleshooting house format: read off docs/mcp/{claude-code,codex,
cursor,antigravity,opencode}.md, which all use the bulleted form.
- CI job shape: mirrors the compatibility-contract job in test.yml.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Folds the conventions check into test.yml alongside docs-code-sync and docs-freshness, rather than adding a separate workflow file. Those two jobs landed on dev while this branch was open, so a standalone docs.yml would have been the odd one out. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WoBWxqLzd9hAxrhoqv3iSv
Collaborator
Style Guide AuditAll 1 file(s) pass the style guide audit. |
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 free
to 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.
Adds a
Docs / ConventionsCI job that catches three classes of review comment the prose style pass misses. Every one of them was raised by hand on a docs PR this week.Why
On #603 the style gate passed clean and the reviewer still left twelve comments. Eight were mine to catch, and five of those were mechanical:
OAuth 2.1,Sui wallet(twice), andWalrus Memory accountmentioned in prose with no link<Steps>elsewhere## Troubleshootingsection in a format none of the six sibling MCP pages useThe same classes then turned up across four walrus docs PRs while fixing them by hand today. This job checks them instead.
What it checks
scripts/docs-conventions.jsonmaps a concept to its canonical page or spec. A changed page that mentions the concept has to link it at least once. Internal targets are validated againstdocs/docs.jsonon every run, so a renamed route fails the check rather than rotting. A page never has to link to itself.<Steps>cannot also write a procedure as a bolded numbered list, and a## Troubleshootingsection has to match the format its sibling pages already use. The sibling rule needs at least two agreeing siblings before it fires.UI verification:line. "Nobody has run it yet" is a valid answer; the point is that the reviewer reads it in the description instead of asking. This one only evaluates onpull_requestevents.Verification
Regression-tested against #603 rather than assumed:
docs/mcp/claude-connector.md**Add custom connector**stepdocs/The 36 are pre-existing unlinked terms. The job runs on changed pages only, so they surface as those pages get edited rather than landing as one sweep. Nothing is blocked today.
docs-code-syncanddocs-freshnessboth still pass, andpnpm check:docsruns the same script locally.Placement
The job sits in
test.ymlnext todocs-code-syncanddocs-freshness. It started as a separatedocs.yml, written before those two existed ondev; folding it in keeps all three docs jobs together.UI verification: not applicable. This change is CI configuration and a Node script, with no click-through procedure in it.
Sources
docs/content/sites/known-restrictions.mdx.docs/reference/console-identity-link.md.docs/docs.json.docs/mcp/{claude-code,codex,cursor,antigravity,opencode}.md, which all use the bulleted form.docs-code-syncanddocs-freshnessjobs already in.github/workflows/test.yml.Generated by Claude Code