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

Interview, then write SPEC and GOAL

Interview the user, capture what to build in SPEC.md, and how the agent should execute and verify it in GOAL.md.

prompt
→ Claude Code
Turn [rough coding idea] into two planning files before Codex starts /goal, its long-running task mode. Interview the user, then write SPEC.md: what to build, exclude, and consider, plus measurable done_when completion checks. Write GOAL.md: the work plan, progress scorecard, quick and final checks, memory files, evidence, and approval boundaries. If any key decision, permission, tool, environment requirement, or test is missing, stop as not ready. Do not start implementation without approval.
claude-code · codex

Use this when

Use this when a rough coding idea is too vague to hand to Codex for a long autonomous run and the user first needs to settle scope, completion checks, safety boundaries, and required tools.

How it runs

  1. Ask the user what the finished feature should do, what is out of scope, which edge cases matter, what could go wrong, and what evidence would prove completion; write those decisions in SPEC.md.
  2. Point out ambiguous requirements with concrete interpretations and have the user resolve product decisions instead of letting the coding agent silently choose.
  3. Write GOAL.md with the ordered work, a progress scorecard, quick checks for each iteration, slower final checks, memory files for long runs, approval boundaries, and required evidence.
  4. Confirm that the tools, permissions, environment, and tests exist; stop as not ready when anything essential is missing, and start the long-running task only after approval.

Done when

✓ The planning files say what to build, how to judge it, and when to stop. Every done_when completion check names observable evidence, the quick and final checks can actually run, the environment is ready, and unresolved decisions are clearly marked not ready.

Why it works

Goal Forge makes the user decide what success means before an agent spends hours coding. The two files give Codex a stable target, repeatable checks, memory across a long run, and an honest not-ready state when important information is missing.

Implementation note

In the source workflow, /goal is Codex's long-running task mode. SPEC.md describes the product decision; GOAL.md tells Codex how to execute and verify it; PLAN.md, ATTEMPTS.md, and NOTES.md preserve progress and learning across the run.

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