persisting-progress-across-sessions
Resume an interrupted orchestration run across Claude Code sessions using MANIFEST.yaml
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Resume an interrupted orchestration run across Claude Code sessions using MANIFEST.yaml
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Deterministic AI development workflow orchestrator. Manages task boards (.jonggrang/jonggrang-tasks.json), runs 16-phase pipelines (BUGFIX/SMALL/MEDIUM/LARGE), installs lifecycle hooks for Claude Code and OpenCode, and coordinates five specialist roles (Lead/Developer/Reviewer/TestLead/Tester). Use when planning features, executing multi-step development workflows, or orchestrating AI coding agents. Run via npx jonggrang.
16-phase feature orchestration workflow. Runs in the main thread as Kernel Mode. Coordinates the Lead→Developer→Reviewer→TestLead→Tester assembly line.
Protocol for agents to write structured outputs that survive session resets and are findable by the orchestrator.
GitHub workflow automation with the gh CLI — pull requests, issues, releases, the REST/GraphQL API, and safe message escaping. Auth via GH_TOKEN (set in global settings, attached to the sandbox env).
GitLab workflow automation with the glab CLI — merge requests, issues, CI, releases, and safe message escaping. Auth via GITLAB_TOKEN (set in global settings, attached to the sandbox env).
Prevents premature exit and infinite loops. Three mechanisms: Completion Promises, Scratchpads, Loop Detection.
| name | persisting-progress-across-sessions |
| description | Resume an interrupted orchestration run across Claude Code sessions using MANIFEST.yaml |
| trigger | resume|continue|restart|session.*reset|context.*compact|pick up where |
| category | core |
Use this skill when a session ends mid-orchestration (context compaction, manual restart, crash) and you need to resume without repeating completed work.
# List all in-progress features
ls .jonggrang/.output/features/
Look for a MANIFEST.yaml with status: running or status: paused. Read it:
cat .jonggrang/.output/features/{feature_id}/MANIFEST.yaml
Key fields to read:
current_phase — next phase to executeactive_phases — which phases this run is executingphases — per-phase status (completed / failed / pending)agents — which agents ran and their output pathsvalidation — review_passed, tests_passed, coverage_metDo NOT re-run completed phases. Read their outputs instead:
# Phase 7 output (architecture plan)
cat .jonggrang/.output/features/{feature_id}/07-lead-architecture-plan.json
# Phase 8 output (implementation)
cat .jonggrang/.output/features/{feature_id}/08-developer-{task_id}.json
# Any reviewer reports
cat .jonggrang/.output/features/{feature_id}/09-reviewer-report.json
current_phase in MANIFEST → start from this phase
phases[N].status == 'failed' → retry this phase
phases[N].status == 'completed' → skip, output already exists
Call orchestrating-feature with resume: true and the feature_id. Pass the reconstructed context as a summary — do NOT re-read all source code; trust the phase outputs.
Resuming feature: {feature_id}
Completed phases: 1, 2, 3, 4, 7, 8
Current phase: 9 (design-verification)
Architecture plan: [summary from 07-lead-architecture-plan.json]
Implementation: [summary from 08-developer.json]
The MANIFEST survives session resets. The ephemeral state does NOT:
| File | Survives reset? | Action on resume |
|---|---|---|
MANIFEST.yaml | ✅ Yes | Read to get current phase |
feedback-loop-state.json | ❌ No | Assume clean state, re-run review/test if dirty_bit lost |
compaction-state.json | ❌ No | Will be refreshed on next Task spawn |
session-roles.json | ❌ No | Will be re-populated on next session start |
If context compacted during phase 13 (testing), check validation.tests_passed in MANIFEST:
false → re-spawn testertrue → proceed to phase 14 (coverage)On resume, clean up any stale lock files left by crashed agents:
const { cleanStaleLocks } = require('./lib/locks');
cleanStaleLocks(projectRoot); // removes locks older than 30 minutes
Session ended at phase 9.
MANIFEST shows: phases[8].status = 'completed', phases[9].status = 'running'
Resume steps:
1. Read 07-lead-architecture-plan.json → architecture context
2. Read 08-developer-*.json → what was implemented
3. Re-spawn reviewer for phase 9 with the implementation context
4. Continue from phase 9 forward