ci: fail static-check on broken markdown links (fixes a broken README image + 2 dead script refs) - #291
Merged
Conversation
…he 3 live ones) The checker walks every tracked *.md and resolves relative link and <img src> targets against the filesystem; external URLs and anchors are skipped. It found three real breaks on main: - README 'Reproduce the leaderboard' pointed at assets/icons/check-double.svg, which does not exist — the heading renders a broken image. Repointed at the existing shield-halved.svg. - docs/scoring.md and eval/scoring.md told readers to run scripts/clawbench_rescore.py, a path that has never existed; the real entry point is the clawbench-rescore console script (src/clawbench/eval/rescore.py). 128 relative links now resolve.
Collaborator
Author
|
Rebased onto |
reacher-z
force-pushed
the
ci/link-check
branch
from
August 18, 2026 10:59
40f3956 to
f024dd7
Compare
Perry2004
requested changes
Aug 19, 2026
Perry2004
left a comment
Collaborator
There was a problem hiding this comment.
The markdown check shouldn't be added to the existing static-check GHA since that won't even be triggered by changes in the docs/markdown.
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 the quality gate that would have caught three link breaks currently live on
main— and fixes those three.What it found
README.md— "Reproduce the leaderboard" heading usesassets/icons/check-double.svgdocs/scoring.md— "runscripts/clawbench_rescore.py" (link + code block + reference list)eval/scoring.md— same three referencesThe rescore entry point is the
clawbench-rescoreconsole script (src/clawbench/eval/rescore.py), so both docs now say that and link the module. The icon reference is repointed at the existingshield-halved.svg.The gate
scripts/check_markdown_links.pywalks every tracked*.md, resolves repo-relative[text](path),and<img src="path">targets against the filesystem, and exits 1 listingfile:line: targetfor each break. External URLs (http/https/mailto/data/tel) and pure anchors are skipped — this guards against renames and deletions, not against the network, so it stays fast and never flakes. Wired as the first step ofstatic-check.Verified both ways: clean tree →
all 128 repo-relative markdown links resolve(exit 0); with a deliberately planted bad link → exit 1 naming the file and line.Note on overlap
#283 independently spotted the missing icon and fixes it by adding
check-double.svg. If #283 lands first, drop my one-line icon change during rebase and keep theirs — the checker and the twoscripts/clawbench_rescore.pyfixes are unaffected either way.