Add link-checker workflow for documentation quality #5
Workflow file for this run
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
| name: Link Checker | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| link-checker: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Link Checker | |
| uses: lycheeverse/lychee-action@v2.7.0 | |
| with: | |
| # Scan all markdown files in the repository | |
| args: >- | |
| --verbose | |
| --no-progress | |
| --exclude '^file://' | |
| --exclude '^mailto:' | |
| --scheme https | |
| --accept 200,201,202,203,204,300,301,302,303,307,308 | |
| --timeout 30 | |
| --max-retries 3 | |
| --retry-wait-time 5 | |
| 'skills/**/*.md' | |
| 'templates/**/*.md' | |
| 'README.md' | |
| 'CLAUDE.md' | |
| # Fail the build if broken links are found | |
| fail: true | |
| env: | |
| # Use GitHub token to avoid rate limiting | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Output link checker results | |
| if: always() | |
| run: | | |
| echo "📊 Link checker results are available in the workflow" | |
| echo " logs above." | |
| echo "" | |
| echo "To view detailed results:" | |
| echo "1. Go to the 'Actions' tab in the GitHub repository" | |
| echo "2. Select this workflow run" | |
| echo "3. Click on the 'link-checker' job" | |
| echo "4. Expand the 'Link Checker' step to see details" | |
| echo "" | |
| echo "🔧 How to fix broken links:" | |
| echo "1. Review the broken links in the output above" | |
| echo "2. Update or remove the broken links in your markdown" | |
| echo "3. For temporary outages, verify if the link works" | |
| echo "4. Consider using web.archive.org for dead links" | |
| echo "" | |
| echo "ℹ️ The workflow will fail if any broken links" | |
| echo " (404s, timeouts, etc.) are detected." | |
| echo "ℹ️ Only external HTTPS links are checked." | |
| echo " Local file paths and mailto links are excluded." |