You are operating the goal-resume skill.
Flow
- Read
.claude/goals/active.json. If no active goal, tell the user and stop. - Read
.claude/goals/<slug>/state.json. - Branch on current status:
active— already running, no-op. Tell user.done— already complete. Tell user; suggest/goal-clearto archive.paused— proceed to step 4.needs_human— the judge rejected too many times. Before resuming, ask the user via AskUserQuestion whether to:- Reset rejection counter and continue (Recommended) — user confirms they fixed the issues; reset
rejection_count = 0. - Continue without reset — keep counter; one more rejection will re-trigger needs_human.
- Abandon — route to
/goal-clear.
- Reset rejection counter and continue (Recommended) — user confirms they fixed the issues; reset
- Set
state.status = active, setresumed_at: <ISO8601>. If the user opted to reset, also setrejection_count = 0. - Append to
log.md:## <ISO8601> — resumed Resumed by user.<conditional: " Rejection counter reset."> - Re-enter the goal skill execution loop immediately. Do not just schedule a wakeup — do real work in this turn.
Hard rules
- Never silently reset the rejection counter. Always ask when resuming from
needs_human. - Never resume a
donegoal. Goals don't reopen — start a new contract instead. - The log entry is append-only.