Skip to content

fix(ci): exclude generated plugin-skills mirror from link-check - #3452

Merged
max-sixty merged 1 commit into
mainfrom
fix/ci-29229600264
Jul 14, 2026
Merged

fix(ci): exclude generated plugin-skills mirror from link-check#3452
max-sixty merged 1 commit into
mainfrom
fix/ci-29229600264

Conversation

@worktrunk-bot

@worktrunk-bot worktrunk-bot commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Problem

The nightly link-check job failed on main (run):

[plugins/worktrunk/skills/worktrunk/reference/README.md]:
[ERROR] file:///.../plugins/worktrunk/skills/worktrunk/reference/docs/static/logo.png (at 3:15) | File not found.

Root cause is the generated plugin-skills mirror added in #3440. That mirror is a byte-identical copy of the authored repo-root skills/, synced by test_docs_are_in_sync. In skills/, worktrunk/reference/README.md is a symlink to the repo-root README.md, whose <img src="docs/static/logo.png"> resolves correctly relative to the repo root. The sync dereferences that symlink into a real file under plugins/worktrunk/skills/, so the same repo-root-relative image path now resolves to a nonexistent plugins/worktrunk/skills/worktrunk/reference/docs/static/logo.png — a false positive, not a real broken link.

The check runs as the manual-stage link-check job in the nightly workflow, not on PRs, so #3440 merged clean and the failure surfaced on the next nightly run.

Solution

Add exclude_path = ["plugins/worktrunk/skills/"] to .config/lychee.toml. The mirror is generated and every file in it is a duplicate of a file already link-checked at its authored skills/ source (and the logo path is validated via the repo-root README.md), so excluding the redundant copy loses no coverage — it just drops the false positive that materializing the symlink creates. exclude_path values are regexes matched against the file path; the pattern matches only the mirror.

Testing

Reproduced and verified with a prebuilt lychee 0.24.2 binary, offline:

  • Before — checking the mirror README reproduces the exact CI error (🚫 1 Error on .../reference/docs/static/logo.png, exit 2).
  • After — with the config, the mirror file is filtered out (0 Total, exit 0); the authored repo-root README.md is still checked and its docs/static/logo.png resolves (0 Errors).
  • Offline sweep of the full plugins/worktrunk + skills trees with the config: 0 Errors.

Automated fix for failed run

Closes #3449 — surfaced by the nightly-failure issue.

The skills mirror at plugins/worktrunk/skills/ (added in #3440) is a
byte-identical copy of skills/, synced by test_docs_are_in_sync. Its
reference/README.md is materialized from the authored skills/ symlink to
the repo-root README, whose relative docs/static/logo.png resolves at the
repo root but not under the mirror directory — so the nightly link-check
job reported a false-positive File-not-found on
plugins/worktrunk/skills/worktrunk/reference/docs/static/logo.png.

Exclude the redundant mirror from lychee via exclude_path. The authored
skills/ source (and the repo-root README) are still checked, so coverage
is unchanged.
@worktrunk-bot worktrunk-bot added the automated-fix Automated CI fix label Jul 13, 2026
This was referenced Jul 13, 2026
@worktrunk-bot

Copy link
Copy Markdown
Collaborator Author

The link-check failure this PR fixes recurred on mainrun 29291759499 (commit 1ff647b, the regex 1.13.0 bump). Same false positive: plugins/worktrunk/skills/worktrunk/reference/docs/static/logo.png reported as a broken link in the dereferenced mirror. The nightly link-check job will keep failing on each push to main until this merges.

@max-sixty
max-sixty merged commit 7a10de6 into main Jul 14, 2026
37 of 47 checks passed
@max-sixty
max-sixty deleted the fix/ci-29229600264 branch July 14, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated-fix Automated CI fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nightly tests failed

2 participants