This repo ships two CI workflows under .github/workflows/:
Runs Lychee against every markdown file. Catches dead links to public Fhenix repos, docs pages, blog posts, and external references.
Triggers:
- Daily cron at 02:00 UTC
- Manual dispatch (
workflow_dispatch) - Pull requests touching
plugins/**,docs/**,README.md,CLAUDE.md,.lycheeignore, or the workflow file itself
Tuning:
- Concurrency capped at 4 to avoid hitting GitHub's rate limit
- 20-second timeout per URL
- 2-second retry wait on transient failures
False-positive suppression: .lycheeignore at repo root holds the allowlist of URLs to skip. Add entries one per line; lychee accepts plain strings or anchored regex.
Auth: uses secrets.GITHUB_TOKEN for api.github.com and raw.githubusercontent.com requests against the FhenixProtocol org. No additional secrets required.
Verifies that every URL referenced from plugins/*/skills/*/references/lookup-recipes.md still resolves. The intent is "if Claude follows a recipe, the recipe's URLs actually work today."
Triggers:
- Daily cron at 03:00 UTC
- Manual dispatch
- Pull requests touching any
lookup-recipes.mdor the workflow file
What it does:
- Four hand-picked smoke URLs (FHE.sol, cofhesdk core, mock-contracts CoFheTest, docs site) — fast failure on the most-load-bearing recipes.
- Programmatic extraction of all
https?://(raw.githubusercontent|api.github|cofhe-docs.fhenix|github.com|fhenix.io|npmjs.com|fhenix.mintlify).*URLs from every skill'slookup-recipes.md. Each is HEAD-checked with a 20-second timeout. Failures are listed and the job exits non-zero.
Deduplication: URLs are deduped within a run; the same URL referenced from multiple skills is only checked once.
# From a clone or the GitHub UI: Actions → workflow → "Run workflow"
gh workflow run link-check.yml
gh workflow run lookup-recipe-smoke.yml
# Tail the latest run
gh run watch
If you add a workflow:
- Place it in
.github/workflows/<name>.yml. - Document it here.
- Add a
paths:filter on pull-request triggers so the workflow only fires when relevant files change. - Use
secrets.GITHUB_TOKENfor authenticated GitHub API calls; avoid adding new secrets.
- Cross-repo
repository_dispatchfromcofhesdkandcofhe-contractson major releases — opens an auto-PR in this repo bumpingcompatibility.json. Tracked indocs/SPEC.md§9; deferred until v1.0 release. - If pattern snippets ever land in
references/patterns/, add apattern-compileworkflow (Foundry + tsc). Currently the design philosophy is to link to canonical examples instead of vendoring patterns; this workflow is therefore unneeded.