Skip to content

Scheduled CI check that flags stale catalog snapshots #2

Description

@TianCZeng

Problem

Records in programs/catalog/ are dated snapshots of official pages — each
carries retrieved_at and its source URLs. Official pages change, so a
catalog that was accurate when retrieved can silently ship stale deadlines
months later. The README frames every record as a dated snapshot, but nothing
actively tells the maintainer "this snapshot is now old."

Proposal

A scheduled GitHub Actions workflow (weekly cron) that:

  • scans every record in programs/catalog/;
  • flags records whose retrieved_at is older than a threshold (proposal:
    90 days, configurable in the workflow);
  • fails the scheduled run — or opens/updates a single tracking issue —
    listing each stale record with its official URL, so it can be re-verified
    against the live page.

It must not run on pull requests: contributors should never be blocked by
calendar drift they didn't cause. Freshness is a maintenance signal, not a
merge gate.

Acceptance criteria

  • New workflow under .github/workflows/ with schedule: and
    workflow_dispatch: triggers only.
  • Output lists each stale record's id, retrieved_at, and official URL.
  • Reuses the existing catalog parsing from scripts/verify/catalog.js where
    practical rather than re-implementing YAML handling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions