Fix dead links and gate the docs build in CI - #1066
Open
prk-Jr wants to merge 2 commits into
Open
Conversation
The VitePress build on main has been failing since #943 landed, and PR #1013 added more breakage on top of it. Nineteen dead links across three files: - Twelve links in the SSAT debug comment design point into the source tree via `../../../crates/...`. Those targets sit outside the VitePress root, so they can never resolve. Rewrite them as inline code spans, matching the 172 source references already written that way under `docs/superpowers/`. - Seven links in the archived ESI spike documents kept a `./` prefix after the documents moved into `superpowers/archive/`. Every target exists one directory over, in `superpowers/plans/` or `superpowers/specs/`. `npm run build` in `docs` now completes instead of reporting dead links.
The VitePress build is the only check that catches dead links, and `deploy-docs.yml` runs it on push to main alone. Docs breakage therefore stays invisible until it has already landed, which is how nineteen dead links accumulated across two merges. Run the build in the existing `format-docs` job instead. That job already runs on pull requests, already installs the `docs` dependencies, and is already one of the required status checks, so dead links become a merge blocker with no ruleset change. Leaving `deploy-docs.yml` alone also keeps its `pages: write` permission off pull request events. Verified the gate fails closed: a deliberate dead link exits 1 with `[vitepress] 1 dead link(s) found`, and the build completes once removed.
aram356
approved these changes
Aug 22, 2026
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.
Summary
mainhas been failing since Make the SSAT debug comment configurable #943 landed; Add shared root caching with hybrid ESI and streaming assembly #1013 addedmore breakage on top. Nineteen dead links across three files, now fixed, so
the docs deploy goes green again.
deploy-docs.yml, which runs on push tomainalone. Move the build into the existingformat-docsjob so the checkruns on pull requests, before breakage reaches
main.Changes
.github/workflows/format.ymlnpm run buildin theformat-docsjob. That job already runs onpull_request, already installs thedocsdependencies, and is already a required status check, so dead links become a merge blocker with no ruleset change.docs/superpowers/specs/2026-07-20-ssat-debug-comment-config-design.md../../../crates/.... Those targets sit outside the VitePress root and can never resolve. Rewritten as inline code spans, e.g.(`publisher.rs:950`), matching the 172 source references already written that way underdocs/superpowers/.docs/superpowers/archive/2026-08-08-esi-cacheable-root-validation-design.md./prefix after the document moved intoarchive/. Retargeted to../specs/.docs/superpowers/archive/2026-08-10-1009-esi-validation-spike.md../plans/. Every target already existed one directory over.Closes
No linked issue — this repairs a build that is red on
mainright now.Test plan
cd docs && npm run format— all matched files use Prettier code stylecd docs && npm run lint— cleancd docs && npm run build—build complete in 10.91s(was[vitepress] 19 dead link(s) found)cargo fmt --all -- --check[vitepress] 1 dead link(s) found; the build completes once removed.cargo test-fastly && cargo test-axum— not run, no Rust source changedcargo clippy-fastly && cargo clippy-axum— not run, no Rust source changedChecklist
unwrap()in production code — no Rust changedtracingmacros (notprintln!) — no Rust changedNote on the two fix sets
The two halves have different origins, worth separating for anyone reading
git loglater:at 04:34 on 2026-08-22.
d97bda69f. That commit carries the subjectprobebecause of a toolingerror during its merge; it is the "Add shared root caching with hybrid ESI and
streaming assembly" merge, and its full message body is intact.