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