Skip to content

Add orphan-content and dead-link validation to CI #29

Description

@TMHSDigital

Context / Problem Statement

validate.yml checks structure, frontmatter, name=dir, py_compile, and README aggregate counts, but nothing detects a snippet/skill/template/example that ships without being referenced by README.md, ROADMAP.md, or the manifest, nor does anything catch broken markdown links. New content can land orphaned (discoverable only by directory listing), and doc links can rot.

Proposed Solution / Implementation Steps

  1. Add an orphan-check job to validate.yml: enumerate files under snippets/, skills/, templates/, examples/; for each, grep README.md + ROADMAP.md for its name; fail listing any unreferenced item.
  2. Add a lightweight link check: collect markdown links from *.md, validate that relative targets exist on disk; optionally check external https:// links with a soft-fail mode to avoid flakiness (or gate external checks behind the weekly schedule, not PRs).
  3. Keep it stdlib-only (consistent with build_gallery.py) so no new CI deps are needed.

Definition of Done

  • CI fails when a snippet/skill/template/example is unreferenced in README/ROADMAP.
  • CI fails on a broken relative markdown link.
  • External link checks run on the weekly schedule, not on every PR (no PR flakiness).
  • A deliberately orphaned test file proves the gate fires, then is removed.

Filed from the repository technical audit — see docs/technical-audit.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cicontent-integrityValidation that shipped content matches reality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions