10 KiB
name, description, allowed-tools
| name | description | allowed-tools |
|---|---|---|
| workflow-lite-plan-execute | Unified lightweight planning skill with mode selection (Lite Plan, Multi-CLI Plan, Lite Fix). Supports exploration, diagnosis, multi-CLI collaboration, and shared execution via lite-execute. | spawn_agent, wait, send_input, close_agent, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, mcp__ace-tool__search_context |
Planning Workflow
Unified lightweight planning skill that consolidates multiple planning approaches into a single entry point with mode selection. Default mode: Lite Plan. All planning modes share a common execution phase (lite-execute).
Architecture Overview
┌──────────────────────────────────────────────────────────┐
│ Planning Workflow Orchestrator (SKILL.md) │
│ → Parse args → Mode selection → Load phase → Execute │
└────────────┬─────────────────────────────────────────────┘
│ Mode Selection (default: Lite Plan)
┌────────┼────────┬──────────┐
↓ ↓ ↓ ↓ (shared)
┌────────┐ ┌────────┐ ┌────────┐ ┌────────────┐
│Phase 1 │ │Phase 2 │ │Phase 3 │ │ Phase 4 │
│ Lite │ │Multi- │ │ Lite │ │ Lite │
│ Plan │ │CLI Plan│ │ Fix │ │ Execute │
└────────┘ └────────┘ └────────┘ └────────────┘
│ │ │ ↑
└──────────┴──────────┴───────────┘
(all hand off to Phase 4)
Key Design Principles
- Mode Selection First: User chooses planning approach before any work begins
- Shared Execution: All planning modes produce
executionContextconsumed by Phase 4 (lite-execute) - Progressive Phase Loading: Only load the selected planning phase + execution phase
- Auto-Continue: Planning phase completes → automatically loads execution phase
- Default Lite Plan: When no mode specified, use Lite Plan (most common)
Auto Mode
When --yes or -y: Skip mode selection (use default or flag-specified mode), auto-approve plan, skip clarifications.
Usage
Skill(skill="workflow-lite-plan-execute", args="<task description>")
Skill(skill="workflow-lite-plan-execute", args="[FLAGS] \"<task description>\"")
# Flags
--mode lite-plan|multi-cli|lite-fix Planning mode selection (default: lite-plan)
-y, --yes Skip all confirmations (auto mode)
-e, --explore Force exploration (lite-plan only)
--hotfix Fast hotfix mode (lite-fix only)
# Examples
Skill(skill="workflow-lite-plan-execute", args="\"Implement JWT authentication\"") # Default: lite-plan
Skill(skill="workflow-lite-plan-execute", args="--mode multi-cli \"Refactor payment module\"") # Multi-CLI planning
Skill(skill="workflow-lite-plan-execute", args="--mode lite-fix \"Login fails with 500 error\"") # Bug fix mode
Skill(skill="workflow-lite-plan-execute", args="-y \"Add user profile page\"") # Auto mode
Skill(skill="workflow-lite-plan-execute", args="--mode lite-fix --hotfix \"Production DB timeout\"") # Hotfix mode
Subagent API Reference
spawn_agent
Create a new subagent with task assignment.
const agentId = spawn_agent({
message: `
## TASK ASSIGNMENT
### MANDATORY FIRST STEPS (Agent Execute)
1. **Read role definition**: ~/.codex/agents/{agent-type}.md (MUST read first)
2. Read: .workflow/project-tech.json
3. Read: .workflow/project-guidelines.json
## TASK CONTEXT
${taskContext}
## DELIVERABLES
${deliverables}
`
})
wait
Get results from subagent (only way to retrieve results).
const result = wait({
ids: [agentId],
timeout_ms: 600000 // 10 minutes
})
if (result.timed_out) {
// Handle timeout - can continue waiting or send_input to prompt completion
}
send_input
Continue interaction with active subagent (for clarification or follow-up).
send_input({
id: agentId,
message: `
## CLARIFICATION ANSWERS
${answers}
## NEXT STEP
Continue with plan generation.
`
})
close_agent
Clean up subagent resources (irreversible).
close_agent({ id: agentId })
Execution Flow
Input Parsing:
├─ Extract flags: --mode, --yes, --explore, --hotfix
└─ Extract task description (string or file path)
Mode Selection:
└─ Decision:
├─ --mode lite-plan (or no --mode flag) → Read phases/01-lite-plan.md
├─ --mode multi-cli → Read phases/02-multi-cli-plan.md
├─ --mode lite-fix → Read phases/03-lite-fix.md
└─ No flag + not --yes → AskUserQuestion (default: Lite Plan)
Planning Phase (one of):
├─ Phase 1: Lite Plan
│ └─ Ref: phases/01-lite-plan.md
│ └─ Output: executionContext (plan.json + explorations + selections)
│
├─ Phase 2: Multi-CLI Plan
│ └─ Ref: phases/02-multi-cli-plan.md
│ └─ Output: executionContext (plan.json + synthesis rounds + selections)
│
└─ Phase 3: Lite Fix
└─ Ref: phases/03-lite-fix.md
└─ Output: executionContext (fix-plan.json + diagnoses + selections)
Execution Phase (always):
└─ Phase 4: Lite Execute
└─ Ref: phases/04-lite-execute.md
└─ Input: executionContext from planning phase
└─ Output: Executed tasks + optional code review
Phase Reference Documents (read on-demand when phase executes):
| Phase | Document | Purpose |
|---|---|---|
| 1 | phases/01-lite-plan.md | Lightweight planning with exploration, clarification, and plan generation |
| 2 | phases/02-multi-cli-plan.md | Multi-CLI collaborative planning with ACE context and cross-verification |
| 3 | phases/03-lite-fix.md | Bug diagnosis and fix planning with severity-based workflow |
| 4 | phases/04-lite-execute.md | Shared execution engine: task grouping, batch execution, code review |
Mode Selection Logic
// Flag parsing
const autoYes = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
const modeFlag = extractFlag($ARGUMENTS, '--mode') // 'lite-plan' | 'multi-cli' | 'lite-fix' | null
// Mode determination
let selectedMode
if (modeFlag) {
// Explicit mode flag
selectedMode = modeFlag
} else if (autoYes) {
// Auto mode: default to lite-plan
selectedMode = 'lite-plan'
} else {
// Interactive: ask user
const selection = AskUserQuestion({
questions: [{
question: "Select planning approach:",
header: "Mode",
multiSelect: false,
options: [
{ label: "Lite Plan (Recommended)", description: "Lightweight planning with exploration and clarification" },
{ label: "Multi-CLI Plan", description: "Multi-model collaborative planning (Gemini + Codex + Claude)" },
{ label: "Lite Fix", description: "Bug diagnosis and fix planning with severity assessment" }
]
}]
})
selectedMode = parseSelection(selection) // Map to 'lite-plan' | 'multi-cli' | 'lite-fix'
}
// Load phase document
const phaseDoc = {
'lite-plan': 'phases/01-lite-plan.md',
'multi-cli': 'phases/02-multi-cli-plan.md',
'lite-fix': 'phases/03-lite-fix.md'
}[selectedMode]
Read(phaseDoc) // Load selected planning phase
// Execute planning phase...
// After planning completes:
Read('phases/04-lite-execute.md') // Load execution phase
Data Flow
Planning Phase (01/02/03)
│
├─ Produces: executionContext = {
│ planObject: plan.json or fix-plan.json,
│ explorationsContext / diagnosisContext / synthesis rounds,
│ clarificationContext,
│ executionMethod: "Agent" | "Codex" | "Auto",
│ codeReviewTool: "Skip" | "Gemini Review" | ...,
│ originalUserInput: string,
│ session: { id, folder, artifacts }
│ }
│
↓
Execution Phase (04)
│
├─ Consumes: executionContext
├─ Task grouping → Batch creation → Parallel/sequential execution
├─ Optional code review
└─ Development index update
TodoWrite Pattern
Initialization (after mode selection):
[
{"content": "Mode: {selectedMode} - Planning", "status": "in_progress", "activeForm": "Planning ({selectedMode})"},
{"content": "Execution (Phase 4)", "status": "pending", "activeForm": "Executing tasks"}
]
After planning completes:
[
{"content": "Mode: {selectedMode} - Planning", "status": "completed", "activeForm": "Planning ({selectedMode})"},
{"content": "Execution (Phase 4)", "status": "in_progress", "activeForm": "Executing tasks"}
]
Phase-internal sub-tasks are managed by each phase document (attach/collapse pattern).
Core Rules
- Planning phases NEVER execute code - all execution delegated to Phase 4
- Only ONE planning phase runs per invocation (Phase 1, 2, or 3)
- Phase 4 ALWAYS runs after planning completes
- executionContext is the contract between planning and execution phases
- Progressive loading: Read phase doc ONLY when about to execute
- No cross-phase loading: Don't load Phase 2 if user selected Phase 1
- Explicit Lifecycle: Always close_agent after wait completes to free resources
Error Handling
| Error | Resolution |
|---|---|
| Unknown --mode value | Default to lite-plan with warning |
| Planning phase failure | Display error, offer retry or mode switch |
| executionContext missing | Error: planning phase did not produce context |
| Phase file not found | Error with file path for debugging |
Related Skills
- Full planning workflow: workflow-plan-execute/SKILL.md
- Brainstorming: workflow-brainstorm-auto-parallel/SKILL.md