SKILL

Content Freshness Loop

Plain markdown at a stable URL. Fetch it, follow it.

Use when deploying the loopmaster.ai content-freshness template to audit stale docs, broken links, and source-backed content updates.

Open raw SKILL.md

Content freshness loop skill

Use this pack to install or verify content-freshness without copying the template guide. The template remains the source of truth; this skill is the thin operator checklist.

Canonical references:

  • templates/content-freshness/loop.yaml — permissions, gates, state paths, verification commands, and backend hints.
  • templates/content-freshness/AGENT-INSTALL.md — complete backend install guide.
  • templates/content-freshness/scripts/content_freshness.py — checked-in runner used by every backend.
  • templates/content-freshness/examples/dry-run-targets.json — local-only target config for scratch verification.
  • templates/content-freshness/examples/targets.json — editable target config for real installs.

If this pack conflicts with templates/content-freshness/AGENT-INSTALL.md, follow the template guide and fix this pack.

Preflight from repo root

test -f templates/content-freshness/loop.yaml
test -f templates/content-freshness/AGENT-INSTALL.md
python3 templates/content-freshness/scripts/content_freshness.py --help >/tmp/loopmaster-content-freshness-help.txt
uv run --with check-jsonschema --with pyyaml check-jsonschema --schemafile spec/loop.schema.json templates/content-freshness/loop.yaml

Expected result: each command exits 0 and manifest validation prints ok -- validation done.

Pick a backend

  • cron: shortest local path; writes reports/state in the checkout from a persistent env file.
  • GitHub Actions: repository scheduler; writes report/state artifacts and opens a PR for review.
  • agent-kanban: recurring agent task; the task must run the Python helper before making follow-up cards.

Use templates/content-freshness/AGENT-INSTALL.md for the exact backend steps.

Fast scratch verification

This is not a live install. It proves the runner and duplicate-safe report path under /tmp.

rm -rf /tmp/loopmaster-content-freshness /tmp/loopmaster-content-freshness-state.json
python3 templates/content-freshness/scripts/content_freshness.py \
  --targets templates/content-freshness/examples/dry-run-targets.json \
  --state /tmp/loopmaster-content-freshness-state.json \
  --output-dir /tmp/loopmaster-content-freshness \
  --max-link-checks 5

Expected stdout shape: CONTENT_FRESHNESS_REPORT=..., CONTENT_FRESHNESS_STATE=..., FINDINGS=..., AUDIT_ERRORS=0, and LINKS_CHECKED=....

Install notes

For a real install, copy or adapt templates/content-freshness/examples/targets.json, then follow the backend section in templates/content-freshness/AGENT-INSTALL.md. Keep env files out of git and never rely on one-time shell exports for cron.

Stop or roll back

  • cron: remove the crontab line that runs templates/content-freshness/scripts/content_freshness.py.
  • GitHub Actions: disable or delete the copied workflow in a PR.
  • agent-kanban: pause or remove the recurring task.
  • Bad report: close/revert the report PR or delete local artifacts after recording the failure.

First-week ownership checklist

  • Confirm every finding cites a file path, URL, or source check.
  • Confirm broken/skipped links are separated from stale-content findings.
  • Tune noisy targets before expanding scope.
  • Keep public publishing and content rewrites human-gated.