10 KiB
| description | allowed-tools | agents |
|---|---|---|
| Resume an interrupted workflow from saved state | Read, Write, Edit, Bash, AskUserQuestion, TodoWrite | workflow-orchestrator, workflow-validator |
Workflow Orchestrator - Resume
Resume a previously interrupted or paused workflow.
EXECUTION PROTOCOL
Step 1: Load Workflow State
Read .workflow/current.yml:
- If not found: Report "No workflow to resume" and exit
- If found: Load state and continue
Step 2: Display Resume Summary
╔══════════════════════════════════════════════════════════════╗
║ 🔄 RESUMING WORKFLOW ║
╠══════════════════════════════════════════════════════════════╣
║ Workflow ID: <id> ║
║ Feature: <feature> ║
║ Started: <started_at> ║
║ Last Updated: <updated_at> ║
╠══════════════════════════════════════════════════════════════╣
║ CURRENT STATE ║
║ Phase: <current_phase> ║
║ Resume Point: <resume_point.action> ║
╠══════════════════════════════════════════════════════════════╣
║ PROGRESS ║
║ Entities Designed: <progress.entities_designed> ║
║ Tasks Created: <progress.tasks_created> ║
║ Tasks Implemented: <progress.tasks_implemented> ║
║ Tasks Reviewed: <progress.tasks_reviewed> ║
║ Tasks Completed: <progress.tasks_completed> ║
╠══════════════════════════════════════════════════════════════╣
║ LAST ERROR (if any): <last_error> ║
╚══════════════════════════════════════════════════════════════╝
Step 3: Confirm Resume
Ask user:
- Option 1: "Continue - Resume from current point"
- Option 2: "Restart Phase - Redo current phase from beginning"
- Option 3: "Abort - Cancel workflow entirely"
Step 4: Resume Based on Phase
INITIALIZING: → Continue to DESIGNING phase
DESIGNING: → Continue architect work → Resume creating entities/tasks
AWAITING_DESIGN_APPROVAL: → Present design summary again → Ask for approval
DESIGN_APPROVED:
→ CRITICAL: Generate types before implementing
→ Run: python3 skills/guardrail-orchestrator/scripts/generate_types.py .workflow/versions/$VERSION_ID/design/design_document.yml --output-dir types
→ Verify types exist: ls types/types.ts types/component-props.ts types/api-types.ts
→ Transition to IMPLEMENTING
DESIGN_REJECTED: → Show rejection reason → Return to DESIGNING with feedback
IMPLEMENTING: → Step 1: Verify generated types exist
ls types/types.ts types/component-props.ts types/api-types.ts
If missing → Run type generation first
→ Step 2: Display type compliance reminder
╔══════════════════════════════════════════════════════════════╗
║ ⚠️ TYPE COMPLIANCE REQUIRED ║
╠══════════════════════════════════════════════════════════════╣
║ ALL implementations MUST: ║
║ 1. Import types from @/types ║
║ 2. Import component props from @/types/component-props ║
║ 3. Use object props (not flat props) ║
║ 4. Implement ALL events from design ║
╚══════════════════════════════════════════════════════════════╝
→ Step 3: Find incomplete tasks → Step 4: Continue implementation from next pending task → Step 5: Run validation after completing tasks:
python3 skills/guardrail-orchestrator/scripts/workflow_manager.py validate --checklist
REVIEWING: → Find tasks awaiting review → Continue review process
SECURITY_REVIEW:
→ Continue security scanning
→ Run: python3 skills/guardrail-orchestrator/scripts/security_scan.py --project-dir . --severity HIGH
→ Run: python3 skills/guardrail-orchestrator/scripts/validate_api_contract.py --project-dir .
→ If passed: Transition to AWAITING_IMPL_APPROVAL
→ If critical issues: Return to IMPLEMENTING with security feedback
AWAITING_IMPL_APPROVAL: → Present implementation summary again → Ask for approval
IMPL_APPROVED: → Continue to COMPLETING phase
IMPL_REJECTED: → Show rejection reason → Return to IMPLEMENTING with feedback
COMPLETING: → Continue marking tasks complete
PAUSED:
→ Resume from resume_point.phase
FAILED: → Show error details → Ask user how to proceed:
- Retry failed operation
- Skip and continue
- Abort workflow
Step 5: Continue Workflow
Execute remaining phases following /workflow:spawn protocol.
TASK-LEVEL RESUME
If resuming during IMPLEMENTING phase:
-
Verify types exist:
ls types/types.ts types/component-props.ts types/api-types.ts types/index.tsIf missing → Generate types first:
python3 skills/guardrail-orchestrator/scripts/generate_types.py \ .workflow/versions/$VERSION_ID/design/design_document.yml \ --output-dir types -
Verify IMPLEMENTATION_CONTEXT.md exists:
ls .workflow/versions/$VERSION_ID/IMPLEMENTATION_CONTEXT.mdIf missing → Regenerate (see spawn.md Step 3.5.4)
-
Display context reminder to agent:
╔══════════════════════════════════════════════════════════════╗ ║ 🔴 MANDATORY CONTEXT READING ║ ╠══════════════════════════════════════════════════════════════╣ ║ BEFORE implementing ANY task, you MUST read: ║ ║ ║ ║ 1. .workflow/versions/$VERSION_ID/IMPLEMENTATION_CONTEXT.md ║ ║ Contains: All rules, types, import patterns ║ ║ ║ ║ 2. .workflow/versions/$VERSION_ID/tasks/task_<id>.yml ║ ║ Contains: Task definition, acceptance criteria ║ ║ ║ ║ 3. .workflow/versions/$VERSION_ID/contexts/<id>.yml ║ ║ Contains: Entity context, props, events, schemas ║ ║ ║ ║ 4. types/component-props.ts OR types/api-types.ts ║ ║ Contains: Generated types - SOURCE OF TRUTH ║ ╚══════════════════════════════════════════════════════════════╝ -
Identify incomplete tasks:
# Resume from first task not in 'completed' or 'approved' resume_task: tasks.pending[0] || tasks.in_progress[0] || tasks.review[0] -
Skip completed work:
- Don't recreate files that exist and are valid
- Don't re-run validations that passed
-
Continue from failure point:
- If task failed mid-implementation, restart that task
- If validation failed, show error and retry
-
For each task, remind agent of type requirements:
⚠️ IMPLEMENTATION RULES: - READ .workflow/versions/$VERSION_ID/IMPLEMENTATION_CONTEXT.md FIRST - Import types from @/types (NOT define your own) - Import props from @/types/component-props - Use object props: { song: Song } NOT { id, title, ... } - Implement ALL events from design -
Run validation after completing tasks:
python3 skills/guardrail-orchestrator/scripts/workflow_manager.py validate --checklist- If errors found → Fix before proceeding
- If warnings only → Continue with caution
STATE RECOVERY
If .workflow/current.yml is corrupted:
- Check for backup:
.workflow/current.yml.bak - Attempt recovery from manifest:
- Read
project_manifest.jsonfor entity status - Scan version-specific tasks directory for task status
- Reconstruct workflow state
- Read
- If unrecoverable:
- Report error
- Suggest starting fresh with
/workflow:spawn
ABORT WORKFLOW
If user chooses to abort:
-
Confirm abort: "This will cancel the workflow. Files already created will remain. Continue?"
-
If confirmed:
- Archive state to
.workflow/history/<id>_aborted.yml - Clear
.workflow/current.yml - Report: "Workflow aborted. Created files remain in place."
- Archive state to
-
Cleanup options:
- Offer to rollback created files (if git available)
- Offer to keep partial implementation