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 examples · Run 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.