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.
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.yamlExpected 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 5Expected 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.