Skip to content

feat(docs): add markdown-link-check/linkinator to docs CI (CA-12) #259

@krokoko

Description

@krokoko

This is a finding from https://github.com/krokoko/cairn (action item CA-12).

Component

Documentation

Describe the feature

Add a broken-link check (markdown-link-check or linkinator) to the docs CI so broken cross-references in the Markdown sources (docs/guides/, docs/design/, root docs) are detected automatically.

Use case

Doc-build verification is at Level 2/3 — astro check and the fail-on-mutation Starlight-sync gate are strong, but link validation is absent. Broken cross-refs between guides, design docs, and ADRs currently go undetected and rot silently. Since the docs are also agent context (e.g. API_CONTRACT.md, design docs), dead links degrade the context an agent reads. A link checker is a cheap fitness function that catches this class of decay at PR time.

Proposed solution

  1. Add markdown-link-check (or linkinator) as a dev dependency in docs.
  2. Configure it to scan docs/guides/, docs/design/, ADRs, and root Markdown (README.md, CONTRIBUTING.md, AGENTS.md).
  3. Wire it into the docs CI workflow (docs.yml); allowlist known-flaky external hosts to avoid false negatives.
  4. Run it alongside the existing astro check.

Acceptance criteria

  • A link checker runs in docs CI over the Markdown sources (not the generated Starlight mirror).
  • Internal/relative cross-refs are validated; broken links fail the check.
  • An allowlist/config handles intentionally-unreachable or rate-limited external links.
  • The check is documented in the developer guide / AGENTS.md docs-workflow notes.

Other information

Source reports: readiness-roadmap.md, verification-report.md (Documentation Verification — "Link validation: No"), verification-strategy.md (Documentation Verification). Effort: S. Per ADR-003 this issue needs the approved label before work begins.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationvalidation-loopTasks related to improve the validation loop for ABCA's codebase

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions