← ClaudeAtlas

resumelisted

Resume an interrupted or paused JobPilot run by id. Re-flips the run to in_progress and replays the apply loop on any remaining approved jobs without re-asking for fit confirmation.
suxrobGM/jobpilot · ★ 18 · AI & Automation · score 84
Install: claude install-skill suxrobGM/jobpilot
# Resume — Continue an Interrupted Run Resumes a `paused` or `interrupted` Run by replaying the apply loop on jobs that are still `approved` (or `pending` if approval was implicit). The user already approved the fit when the run was first launched, so no re-confirmation gate. Live view: `http://localhost:8000/runs/<run-id>`. ## Setup Follow `plugin/skills/shared/setup.md` to load profile, resume, credentials. Check the web app is up: ```bash JOBPILOT_API=http://localhost:8000 curl -fsS "$JOBPILOT_API/api/health" >/dev/null || { echo "JobPilot web is down. Start it with 'bun run dev'."; exit 1; } ``` ## Phase 0: Resolve Run Argument is `<run-id>`. If missing, list candidates and ask: ```bash curl -fsS "$JOBPILOT_API/api/runs" \ | jq -r '.data[] | select(.status=="paused" or .status=="interrupted") | "\(.runId)\t\(.status)\t\(.source)\t\(.query)"' ``` Fetch the run + jobs: ```bash RUN_ID="<run-id>" RUN=$(curl -fsS "$JOBPILOT_API/api/runs/$RUN_ID") ``` Verify status is `paused` or `interrupted`. If `completed` or `failed`, stop: **"Run <id> is already <status>. Nothing to resume."** If `in_progress`, stop: **"Run <id> is still in progress. If the agent crashed, wait for the auto-reconciler (5 min) or stop the run from the UI first."** Refuse to resume if there are no jobs with `status === "approved"`: ```bash APPROVED=$(echo "$RUN" | jq '[.data.jobs[] | select(.status=="approved")] | length') [ "$APPROVED" = "0" ] && { echo "No approved jobs left to app