Loop/goalMaintenancehigh riskintermediatesafety C · 65Forward Futurepre-dates current gate · under review

Propagate a value everywhere it lives

Update every copy of a changed value across the project, hunt down leftovers, and prove only intentional old references remain.

prompt
→ Claude Code
After changing a version, count, rule, name, or configuration, list where the new value belongs and update it. Search the project for the old value and related forms. Review each match: fix real stale values, but keep intentional history, examples, migrations, or compatibility rules. Repeat until zero stale values remain. If one returns for two rounds, stop and identify what may be regenerating it. Return changes, intentional matches, and search output.
claude-code · codex

Use this when

Use this after changing something that appears in several files—such as a version number, feature name, count, rule, setting, or identifier—and every copy must stay consistent.

How it runs

  1. List the files, documentation, settings, generated outputs, or operational notes that are expected to copy the changed value.
  2. Update the known copies, then search the whole project for the old value, old spelling, and other likely leftover forms.
  3. Decide whether each match is truly stale or intentionally preserved history, an example, a migration, or a compatibility rule; fix only the stale matches.
  4. Repeat the same searches until no stale match remains; if one comes back for two rounds, stop and identify the generator or process restoring it.

Done when

✓ No unintended copy of the old value remains. The final searches find only references that are intentionally historical or required for examples, migrations, or compatibility, with a reason recorded for each one.

Why it works

The repeat search is the important part: it catches copies missed by the first update. Reviewing each match also prevents a broad replacement from corrupting historical notes, migration code, or examples that intentionally show the old value.

Implementation note

The exact files depend on the change. The original submission used several operational notes and procedure files; another project might need code, tests, documentation, deployment settings, generated files, or all of them.

Source: Forward Future ↗graded C · 65/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
Propagate a value everywhere it lives — /goal for claude-code, codex | looprepo