Save and load Orchestrator task state for resuming interrupted workflows
The save-load skill allows Orchestrator to persist task state to a .opencode_save file and resume from that state later. This is useful for:
The skill captures:
Orchestrator uses the save-load skill in two scenarios:
When a task is long-running or complex, Orchestrator can save the current state:
Orchestrator: "Saving task state to .opencode_save for later resumption."
This captures everything needed to resume exactly where work left off.
When returning to a saved task, Orchestrator loads the state:
Orchestrator: "Loading task state from .opencode_save..."
Orchestrator then:
Orchestrator saves state by calling the skill with the save action:
User: "Save the current task state"
Orchestrator: [dispatches to save-load skill with save action]
The skill:
.git/LAZYGIT_PENDING_COMMIT).opencode_save as JSONOrchestrator loads state by calling the skill with the load action:
User: "Resume the saved task"
Orchestrator: [dispatches to save-load skill with load action]
The skill:
.opencode_save file.opencode_save file (optional, can keep for audit trail)The .opencode_save file is a JSON file with this structure:
{
"version": "1.0",
"timestamp": "2026-04-15T12:34:56Z",
"task_description": "Description of the overall task",
"todos": [
{
"content": "Task name",
"status": "pending|in_progress|completed|cancelled",
"priority": "high|medium|low"
}
],
"commit_messages": [
{
"step": 1,
"message": "Commit message text",
"status": "written|committed",
"timestamp": "2026-04-15T12:00:00Z"
}
],
"dispatch_history": [
{
"step": 1,
"agent": "engineer|writer|researcher|admin|summariser|supervisor",
"task": "Brief description of work",
"status": "dispatched|completed|failed",
"timestamp": "2026-04-15T12:05:00Z",
"result_summary": "What was accomplished"
}
],
"user_decisions": [
{
"step": 1,
"decision": "Description of user choice or feedback",
"timestamp": "2026-04-15T12:10:00Z"
}
],
"git_state": {
"branch": "main",
"last_commit": "abc123def456...",
"staged_files": ["file1.md", "file2.ts"],
"modified_files": ["file3.py"],
"untracked_files": []
},
"notes": "Any additional context or notes"
}
.opencode_save can be kept for audit or deleted after loading.opencode_save after task completion for cleanlinessThe save-load skill integrates seamlessly with Orchestrator's core workflow:
The skill does not interrupt the normal workflow — it's an optional enhancement for long-running or complex tasks.