Loop/goalMaintenancemedium riskintermediatesafety C · 55Forward Futurepre-dates current gate · under review

Turn recent complaints into fixes

Convert recent user-reported problems into reusable failure patterns, fix every confirmed match, and verify a clean final pass.

prompt
→ Claude Code
Review all available threads from [lookback window] where I reported something wrong with [project] and asked for a fix. Build a deduplicated issue list, group it into failure patterns, and verify current state. Audit the complete project for every pattern, fix each confirmed instance, and add regression coverage where practical. Repeat the full audit until it finds no remaining instance or [iteration budget] ends. Stop on blocked or approval-gated work. Return the issues, fixes, evidence, and blockers.
claude-code · codex

Use this when

Use this after several days of project feedback when repeated mistakes may point to similar issues elsewhere and the agent can inspect both the conversation history and the complete current project.

How it runs

  1. Define the lookback window and complete project surface, then collect every accessible thread in which the user reported a problem and requested a fix.
  2. Deduplicate the reported issues, verify their current status, and turn the concrete examples into explicit failure patterns and audit checks.
  3. Audit every in-scope project surface for each pattern, fix one confirmed instance at a time, and add regression coverage where practical.
  4. Run targeted checks after each fix, then rerun the complete pattern audit and relevant full checks before declaring the sweep clean.

Done when

✓ The issue inventory is closed and a fresh pattern audit is clean. Every reported issue and newly found match has current proof of resolution; blocked, approval-gated, or budget-exhausted items remain explicitly open.

Why it works

Recent corrections are concrete examples of the quality bar the project missed. Grouping them into failure patterns turns one-off feedback into a reusable audit rubric, while a fresh full sweep catches sibling defects and verifies the current project rather than trusting old thread state.

Implementation note

Thread access and a complete surface inventory are prerequisites. Do not infer defects from neutral discussion, reopen resolved issues without checking current behavior, or claim success while an inaccessible, blocked, approval-gated, or budget-exhausted item remains. Get approval before destructive, production, or external actions.

Source: Forward Future ↗graded C · 55/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