Skip to content

ci: scheduled external-link monitor with lychee (closes #12)#24

Merged
VijitSingh97 merged 1 commit into
mainfrom
claude/link-monitor
Jun 18, 2026
Merged

ci: scheduled external-link monitor with lychee (closes #12)#24
VijitSingh97 merged 1 commit into
mainfrom
claude/link-monitor

Conversation

@VijitSingh97

Copy link
Copy Markdown
Contributor

Resolves #12. CI's htmltest runs with CheckExternal: false (deterministic — never flakes on a third-party outage), so nothing ever checks outbound links. Link rot to getmonero.org / GitHub / Tari goes unnoticed.

What this adds

  • .github/workflows/links.yml — a weekly (+ workflow_dispatch) job that builds the site and runs lychee over ./public, excluding our own domain (internal links stay htmltest's job). fail: false, so it never blocks a PR. On breakage it opens — or updates — a single Broken external links (lychee) tracking issue via gh (deduped by exact title).
  • .lycheeignore — documented placeholder for flaky/auth-walled hosts; none needed yet since the site only links to stable hosts.

The Hugo install reads .hugoversion when present (falls back to 0.162.1), so it auto-tracks the single-source pin from #15 once that merges.

Acceptance (#12)

  • Scheduled workflow checks external links on the built site
  • Broken links open/append to a tracking issue (never PR-blocking)
  • .lycheeignore for flaky hosts, documented

Verified locally

  • lychee --dump over a production build lists exactly the outbound links (github repos, getmonero.org, tari.com) with the own-domain internal links correctly excluded
  • prettier / YAML / zizmor all clean

Note: it's a scheduled workflow, so it doesn't run on this PR — verification is the local lychee --dump + static checks above. Trigger it manually via the Actions tab (workflow_dispatch) after merge to see a first run.

🤖 Generated with Claude Code

CI's htmltest runs with CheckExternal: false (deterministic, never flakes on a
third-party outage), so nothing ever checks outbound links — rot to
getmonero.org / GitHub / Tari goes unnoticed.

- links.yml: weekly (+ workflow_dispatch) job that builds the site and runs
  lychee over ./public, excluding our own domain (internal links stay
  htmltest's job). fail: false — it never blocks a PR. On breakage it opens, or
  updates, a single "Broken external links (lychee)" tracking issue via gh.
- .lycheeignore: documented placeholder for flaky/auth-walled hosts (none
  needed yet — the site only links to stable hosts).
- Hugo install reads .hugoversion when present (falls back to 0.162.1), so it
  picks up the single-source pin from #15 once that merges.

Verified locally: lychee --dump over a production build lists exactly the
outbound links (own domain excluded); prettier/YAML/zizmor clean. The job is
scheduled, so it doesn't run on this PR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@VijitSingh97 VijitSingh97 merged commit 862be57 into main Jun 18, 2026
6 checks passed
@VijitSingh97 VijitSingh97 deleted the claude/link-monitor branch June 18, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tooling: scheduled external/dead-link monitoring (lychee)

1 participant