Loop/loopMaintenancehigh riskintermediatesafety B · 75Forward Futurepre-dates current gate · under review

Keep a verified daily project story

Turn repo activity, goals, and open threads into a verified daily narrative the next agent can trust.

prompt
→ Claude Code
On each [window], read the configured repositories, goals, prior STORY.md, and optional authorized sources. Update project files, then write STORY.md with focus, deadlines, open threads, and evidence-backed recent wins. Carry every prior thread forward, prove it finished, or mark it STALE/NEEDS-REVIEW—never silently drop one. Archive the snapshot and record the change. Stop when verification passes; if evidence or access is missing, return a thinner or blocked snapshot explicitly.
claude-code · codex

Use this when

Use this when work spans several repositories or context sources and future agents need a recurring, evidence-based account of priorities, progress, deadlines, and unfinished work.

How it runs

  1. Read the configured repositories, goals, personal context, optional authorized sources, previous STORY.md, and existing project files; report missing inputs instead of inventing them.
  2. Refresh each project record with current activity, branch state, shipped evidence, in-progress work, and stale status under the configured window.
  3. Write the new story with interpretation, focus, deadlines, open threads, and evidence-backed recent wins rather than a raw commit list.
  4. Reconcile every previous thread, archive the verified snapshot, update the changelog, and stop with an explicit complete, thinner, or blocked result.

Done when

✓ The current story accounts for every prior thread and supports every recent win with evidence. Each previous open thread is carried forward, closed with proof, or visibly flagged, and every claimed win cites a commit, release, closed task, deployment, sent deliverable, or generated artifact.

Why it works

A recurring narrative preserves the meaning behind activity without letting old commitments disappear. Evidence requirements keep recent wins factual, while thread reconciliation makes stale or unfinished work visible to the next agent.

Implementation note

Configure source paths and the stale window before relying on the story. Treat notes, calendars, task exports, and repository history as private; read only authorized sources and do not publish or transmit their contents without approval.

Source: Forward Future ↗graded B · 75/100 — how grades work →

More maintenance loops

Upgrade to current Node LTS

Loop/goallooprepoB

Move the project to the current Node LTS across .nvmrc, CI config, Dockerfiles, and engines, fixing deprecations until everything is green on the new runtime.

prompt
→ Claude Code
/goal the project runs on the current Node LTS — update .nvmrc, the engines field, CI workflow files, and any Dockerfile base images to the LTS version, then run install, build, lint, and the full test suite on it, fixing deprecation warnings and breakages one at a time; stop when all are green or after 15 turns

Upgrade dependencies one at a time

Loop/goallooprepoB

Walk through outdated dependencies one package per turn, upgrading, running the full check suite, and pinning back anything that breaks.

prompt
→ Claude Code
/goal `npm outdated` lists no minor or patch updates — upgrade exactly one package per turn, run tests, lint, and build after each, commit if green, and pin the previous version with a note in UPGRADE-BLOCKERS.md if it fails; stop after 20 turns

Triage untriaged issues to zero

Loop/looplooprepoA

Pick the oldest untriaged issue, validate it against the current build, then label it, close if obsolete, or document repro steps—one per turn until the queue empties or 12 iterations pass.

prompt
→ Claude Code
/loop pick the single oldest untriaged issue in the tracker; reproduce or validate it against the current build, then either label it (area, priority, effort), close it with a polite explanation if it is obsolete, or write the missing repro steps. One issue per iteration, never close anything that still reproduces, and propose bulk closes for maintainer review instead of executing them. Continue until the untriaged queue hits zero — stop after 12 turns and report the triaged/closed/escalated counts.
maintenancelow risk