RECEIPT · SAVED STATE + QUIET STOP

Content freshness loop

A supervised content-audit pass scanned configured files, wrote a report and state file, found no findings, and stopped without mutating public copy.

Task loopTask loop: the checked pass varied actions inside one bounded audit job — scan, report, save state, stop.

Verified: the checked-in log records the command, check rule, evidence, state file, skipped actions, and stop outcome.

Goal loop proof: we've run one — read the log. Scheduled and task examples link their own run logs below.

All examplesRun log

LOG NOTES

What the log proves.

Contract / check
Runner must exit 0, print report and state paths, separate findings from audit errors, and avoid rewriting public content.
What varied
Actions inside a single content-audit task: read configured targets, inspect files, write a report, write state.
Stop reason
Done: zero source-backed findings, zero audit errors, and no follow-up task required.
Cost / budget
Budget: one supervised pass over two configured files with max five link checks. Monetary cost: unknown; the log does not record spend.
Underlying log
examples/content-freshness/2026-07-09-pass-log.md lines 12–34 record command output, check evidence, state, skipped actions, and clean stop.
Template
The content-freshness template guide and source file define the reusable content-freshness loop.
Learn lesson
Verify one run: the log demonstrates what ran, check result, state written, skipped actions, and decision.

FILLED PLAN

The one-page loop plan.

Goal
Find stale markers, age violations, and source-check problems before public docs drift.
Trigger
Monthly schedule or manual maintainer request.
State
Last report path, last run timestamp, unresolved findings, and scan counts.
Repeated pass
Read configured targets, inspect local files, optionally check links, write a report, update state.
Check
Runner exits 0, reports findings separately from errors, writes both report and state, and leaves public content untouched.
Stop rule
Stop quietly when findings are zero; create review work only for source-backed findings.
Approvals
Human approval before public publishing, content rewrites, positioning changes, deletion, or credentials.
Runner
Python helper under a supervised pass first; cron, Actions, or kanban only after approval.

REAL RUN LOG

The evidence this example earned.

The pass log records `FINDINGS=0`, `AUDIT_ERRORS=0`, two configured files scanned, state written, and no public mutation.

Pass log: Content freshness loop / 2026-07-09 19:44 UTC

Pass type: supervised dry run Operator: Hermes coder agent Harness used for this pass: checked-in Python runner

Plan version or source: checked-in content-freshness template source Input used: templates/content-freshness/examples/dry-run-targets.json Allowed actions: read repo files, write report under /tmp, write state under /tmp Approval gates active: public publishing, content rewrites, product positioning changes, deleting stale content, credential changes

What ran:

  • Command: python3 templates/content-freshness/scripts/content_freshness.py --targets templates/content-freshness/examples/dry-run-targets.json --state /tmp/lm-c5-content-state.json --output-dir /tmp/lm-c5-content --max-link-checks 5
  • Output: CONTENT_FRESHNESS_REPORT=/tmp/lm-c5-content/2026-07-09-content-freshness.md
  • Output: CONTENT_FRESHNESS_STATE=/tmp/lm-c5-content-state.json
  • Output: FINDINGS=0, AUDIT_ERRORS=0, LINKS_CHECKED=0

Check result:

  • Result: PASS
  • Check rule: the runner exits 0, writes both report and state paths, separates findings from errors, and does not rewrite public content.
  • Evidence: report scanned 2 configured files, found 0 stale markers or age violations, and wrote state with last_findings: 0 plus files_scanned: 2.

State written:

  • /tmp/lm-c5-content-state.json, with last_report, last_run_at, last_findings, and scan counts.

Skipped actions:

  • Did not publish public copy.
  • Did not rewrite content.
  • Did not delete stale content.
  • Did not touch credentials.
  • Did not schedule an unattended run.

Stop/escalation outcome:

  • Stopped cleanly after one supervised pass. No source-backed follow-up task was required because the fixture reported zero findings.

Harness decision after this pass:

  • GitHub Actions, cron, or kanban task remain viable runners; not scheduled by this pass.
  • Reason: the pass proved the read-only fixture path, report writing, state writing, and approval gates.

Next action:

  • Use project-specific targets and keep human approval gates before any public content changes.

WHAT IT TEACHES

The pattern to copy.

Use this when a schedule is only the trigger: the loop is the source-backed check, carried state, approval gate, and quiet stop when no review work exists.