Files
Claude-Code-Workflow/.claude/commands/workflow/plan.md
catlog22 159dfd179e Refactor action plan verification command to plan verification
- Updated all references from `/workflow:action-plan-verify` to `/workflow:plan-verify` across various documentation and command files.
- Introduced a new command file for `/workflow:plan-verify` that performs read-only verification analysis on planning artifacts.
- Adjusted command relationships and help documentation to reflect the new command structure.
- Ensured consistency in command usage throughout the workflow guide and getting started documentation.
2026-01-24 10:46:15 +08:00

23 KiB

name, description, argument-hint, allowed-tools
name description argument-hint allowed-tools
plan 5-phase planning workflow with action-planning-agent task generation, outputs IMPL_PLAN.md and task JSONs [-y|--yes] "text description"|file.md SlashCommand(*), TodoWrite(*), Read(*), Bash(*)

Auto Mode

When --yes or -y: Auto-continue all phases (skip confirmations), use recommended conflict resolutions.

Workflow Plan Command (/workflow:plan)

Coordinator Role

This command is a pure orchestrator: Execute 5 slash commands in sequence (including a quality gate), parse their outputs, pass context between them, and ensure complete execution through automatic continuation.

Execution Model - Auto-Continue Workflow with Quality Gate:

This workflow runs fully autonomously once triggered. Phase 3 (conflict resolution) and Phase 4 (task generation) are delegated to specialized agents.

  1. User triggers: /workflow:plan "task"
  2. Phase 1 executes → Session discovery → Auto-continues
  3. Phase 2 executes → Context gathering → Auto-continues
  4. Phase 3 executes (optional, if conflict_risk ≥ medium) → Conflict resolution → Auto-continues
  5. Phase 4 executes → Task generation (task-generate-agent) → Reports final summary

Task Attachment Model:

  • SlashCommand execute expands workflow by attaching sub-tasks to current TodoWrite
  • When a sub-command is executed (e.g., /workflow:tools:context-gather), its internal tasks are attached to the orchestrator's TodoWrite
  • Orchestrator executes these attached tasks sequentially
  • After completion, attached tasks are collapsed back to high-level phase summary
  • This is task expansion, not external delegation

Auto-Continue Mechanism:

  • TodoList tracks current phase status and dynamically manages task attachment/collapse
  • When each phase finishes executing, automatically execute next pending phase
  • All phases run autonomously without user interaction (clarification handled in brainstorm phase)
  • Progress updates shown at each phase for visibility
  • ⚠️ CONTINUOUS EXECUTION - Do not stop until all phases complete

Core Rules

  1. Start Immediately: First action is TodoWrite initialization, second action is Phase 1 command execution
  2. No Preliminary Analysis: Do not read files, analyze structure, or gather context before Phase 1
  3. Parse Every Output: Extract required data from each command/agent output for next phase
  4. Auto-Continue via TodoList: Check TodoList status to execute next pending phase automatically
  5. Track Progress: Update TodoWrite dynamically with task attachment/collapse pattern
  6. Task Attachment Model: SlashCommand execute attaches sub-tasks to current workflow. Orchestrator executes these attached tasks itself, then collapses them after completion
  7. ⚠️ CRITICAL: DO NOT STOP: Continuous multi-phase workflow. After executing all attached tasks, immediately collapse them and execute next phase

Execution Process

Input Parsing:
   └─ Convert user input to structured format (GOAL/SCOPE/CONTEXT)

Phase 1: Session Discovery
   └─ /workflow:session:start --auto "structured-description"
      └─ Output: sessionId (WFS-xxx)

Phase 2: Context Gathering
   └─ /workflow:tools:context-gather --session sessionId "structured-description"
      ├─ Tasks attached: Analyze structure → Identify integration → Generate package
      └─ Output: contextPath + conflict_risk

Phase 3: Conflict Resolution 
   └─ Decision (conflict_risk check):
      ├─ conflict_risk ≥ medium → Execute /workflow:tools:conflict-resolution
      │   ├─ Tasks attached: Detect conflicts → Present to user → Apply strategies
      │   └─ Output: Modified brainstorm artifacts
      └─ conflict_risk < medium → Skip to Phase 4

Phase 4: Task Generation
   └─ /workflow:tools:task-generate-agent --session sessionId
      └─ Output: IMPL_PLAN.md, task JSONs, TODO_LIST.md

Return:
   └─ Summary with recommended next steps

5-Phase Execution

Phase 1: Session Discovery

Step 1.1: Execute - Create or discover workflow session

SlashCommand(command="/workflow:session:start --auto \"[structured-task-description]\"")

Task Description Structure:

GOAL: [Clear, concise objective]
SCOPE: [What's included/excluded]
CONTEXT: [Relevant background or constraints]

Example:

GOAL: Build JWT-based authentication system
SCOPE: User registration, login, token validation
CONTEXT: Existing user database schema, REST API endpoints

Parse Output:

  • Extract: SESSION_ID: WFS-[id] (store as sessionId)

Validation:

  • Session ID successfully extracted
  • Session directory .workflow/active/[sessionId]/ exists

Note: Session directory contains workflow-session.json (metadata). Do NOT look for manifest.json here - it only exists in .workflow/archives/ for archived sessions.

TodoWrite: Mark phase 1 completed, phase 2 in_progress

After Phase 1: Return to user showing Phase 1 results, then auto-continue to Phase 2


Phase 2: Context Gathering

Step 2.1: Execute - Gather project context and analyze codebase

SlashCommand(command="/workflow:tools:context-gather --session [sessionId] \"[structured-task-description]\"")

Use Same Structured Description: Pass the same structured format from Phase 1

Input: sessionId from Phase 1

Parse Output:

  • Extract: context-package.json path (store as contextPath)
  • Typical pattern: .workflow/active/[sessionId]/.process/context-package.json

Validation:

  • Context package path extracted
  • File exists and is valid JSON

TodoWrite Update (Phase 2 SlashCommand executed - tasks attached):

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "in_progress", "activeForm": "Executing context gathering"},
  {"content": "  → Analyze codebase structure", "status": "in_progress", "activeForm": "Analyzing codebase structure"},
  {"content": "  → Identify integration points", "status": "pending", "activeForm": "Identifying integration points"},
  {"content": "  → Generate context package", "status": "pending", "activeForm": "Generating context package"},
  {"content": "Phase 4: Task Generation", "status": "pending", "activeForm": "Executing task generation"}
]

Note: SlashCommand execute attaches context-gather's 3 tasks. Orchestrator executes these tasks sequentially.

TodoWrite Update (Phase 2 completed - tasks collapsed):

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 4: Task Generation", "status": "pending", "activeForm": "Executing task generation"}
]

Note: Phase 2 tasks completed and collapsed to summary.

After Phase 2: Return to user showing Phase 2 results, then auto-continue to Phase 3/4 (depending on conflict_risk)


Phase 3: Conflict Resolution

Trigger: Only execute when context-package.json indicates conflict_risk is "medium" or "high"

Step 3.1: Execute - Detect and resolve conflicts with CLI analysis

SlashCommand(command="/workflow:tools:conflict-resolution --session [sessionId] --context [contextPath]")

Input:

  • sessionId from Phase 1
  • contextPath from Phase 2
  • conflict_risk from context-package.json

Parse Output:

  • Extract: Execution status (success/skipped/failed)
  • Verify: conflict-resolution.json file path (if executed)

Validation:

  • File .workflow/active/[sessionId]/.process/conflict-resolution.json exists (if executed)

Skip Behavior:

  • If conflict_risk is "none" or "low", skip directly to Phase 3.5
  • Display: "No significant conflicts detected, proceeding to clarification"

TodoWrite Update (Phase 3 SlashCommand executed - tasks attached, if conflict_risk ≥ medium):

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 3: Conflict Resolution", "status": "in_progress", "activeForm": "Resolving conflicts"},
  {"content": "  → Detect conflicts with CLI analysis", "status": "in_progress", "activeForm": "Detecting conflicts"},
  {"content": "  → Present conflicts to user", "status": "pending", "activeForm": "Presenting conflicts"},
  {"content": "  → Apply resolution strategies", "status": "pending", "activeForm": "Applying resolution strategies"},
  {"content": "Phase 4: Task Generation", "status": "pending", "activeForm": "Executing task generation"}
]

Note: SlashCommand execute attaches conflict-resolution's 3 tasks. Orchestrator executes these tasks sequentially.

TodoWrite Update (Phase 3 completed - tasks collapsed):

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 3: Conflict Resolution", "status": "completed", "activeForm": "Resolving conflicts"},
  {"content": "Phase 4: Task Generation", "status": "pending", "activeForm": "Executing task generation"}
]

Note: Phase 3 tasks completed and collapsed to summary.

After Phase 3: Return to user showing conflict resolution results (if executed) and selected strategies, then auto-continue to Phase 3.5

Memory State Check:

  • Evaluate current context window usage and memory state

  • If memory usage is high (>120K tokens or approaching context limits):

    Step 3.2: Execute - Optimize memory before proceeding

    SlashCommand(command="/compact")
    
  • Memory compaction is particularly important after analysis phase which may generate extensive documentation

  • Ensures optimal performance and prevents context overflow


Phase 3.5: Pre-Task Generation Validation (Optional Quality Gate)

Purpose: Optional quality gate before task generation - primarily handled by brainstorm synthesis phase

Current Behavior: Auto-skip to Phase 4 (Task Generation)

Future Enhancement: Could add additional validation steps like:

  • Cross-reference checks between conflict resolution and brainstorm analyses
  • Final sanity checks before task generation
  • User confirmation prompt for proceeding

TodoWrite: Mark phase 3.5 completed (auto-skip), phase 4 in_progress

After Phase 3.5: Auto-continue to Phase 4 immediately


Phase 4: Task Generation

Relationship with Brainstorm Phase:

  • If brainstorm role analyses exist ([role]/analysis.md files), Phase 3 analysis incorporates them as input
  • User's original intent is ALWAYS primary: New or refined user goals override brainstorm recommendations
  • Role analysis.md files define "WHAT": Requirements, design specs, role-specific insights
  • IMPL_PLAN.md defines "HOW": Executable task breakdown, dependencies, implementation sequence
  • Task generation translates high-level role analyses into concrete, actionable work items
  • Intent priority: Current user prompt > role analysis.md files > guidance-specification.md

Step 4.1: Execute - Generate implementation plan and task JSONs

SlashCommand(command="/workflow:tools:task-generate-agent --session [sessionId]")

CLI Execution Note: CLI tool usage is now determined semantically by action-planning-agent based on user's task description. If user specifies "use Codex/Gemini/Qwen for X", the agent embeds command fields in relevant implementation_approach steps.

Input: sessionId from Phase 1

Validation:

  • .workflow/active/[sessionId]/IMPL_PLAN.md exists
  • .workflow/active/[sessionId]/.task/IMPL-*.json exists (at least one)
  • .workflow/active/[sessionId]/TODO_LIST.md exists

TodoWrite Update (Phase 4 SlashCommand executed - agent task attached):

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 4: Task Generation", "status": "in_progress", "activeForm": "Executing task generation"}
]

Note: Single agent task attached. Agent autonomously completes discovery, planning, and output generation internally.

TodoWrite Update (Phase 4 completed):

[
  {"content": "Phase 1: Session Discovery", "status": "completed", "activeForm": "Executing session discovery"},
  {"content": "Phase 2: Context Gathering", "status": "completed", "activeForm": "Executing context gathering"},
  {"content": "Phase 4: Task Generation", "status": "completed", "activeForm": "Executing task generation"}
]

Note: Agent task completed. No collapse needed (single task).

Return to User:

Planning complete for session: [sessionId]
Tasks generated: [count]
Plan: .workflow/active/[sessionId]/IMPL_PLAN.md

Recommended Next Steps:
1. /workflow:plan-verify --session [sessionId]  # Verify plan quality before execution
2. /workflow:status  # Review task breakdown
3. /workflow:execute  # Start implementation (after verification)

Quality Gate: Consider running /workflow:plan-verify to catch issues early

TodoWrite Pattern

Core Concept: Dynamic task attachment and collapse for real-time visibility into workflow execution.

Key Principles

  1. Task Attachment (when SlashCommand executed):

    • Sub-command's internal tasks are attached to orchestrator's TodoWrite
    • Phase 2, 3: Multiple sub-tasks attached (e.g., Phase 2.1, 2.2, 2.3)
    • Phase 4: Single agent task attached (e.g., "Execute task-generate-agent")
    • First attached task marked as in_progress, others as pending
    • Orchestrator executes these attached tasks sequentially
  2. Task Collapse (after sub-tasks complete):

    • Applies to Phase 2, 3: Remove detailed sub-tasks from TodoWrite
    • Collapse to high-level phase summary
    • Example: Phase 2.1-2.3 collapse to "Execute context gathering: completed"
    • Phase 4: No collapse needed (single task, just mark completed)
    • Maintains clean orchestrator-level view
  3. Continuous Execution:

    • After completion, automatically proceed to next pending phase
    • No user intervention required between phases
    • TodoWrite dynamically reflects current execution state

Lifecycle Summary: Initial pending tasks → Phase executed (tasks ATTACHED) → Sub-tasks executed sequentially → Phase completed (tasks COLLAPSED to summary for Phase 2/3, or marked completed for Phase 4) → Next phase begins → Repeat until all phases complete.

Note: See individual Phase descriptions for detailed TodoWrite Update examples:

  • Phase 2, 3: Multiple sub-tasks with attach/collapse pattern
  • Phase 4: Single agent task (no collapse needed)

Input Processing

Convert User Input to Structured Format:

  1. Simple Text → Structure it:

    User: "Build authentication system"
    
    Structured:
    GOAL: Build authentication system
    SCOPE: Core authentication features
    CONTEXT: New implementation
    
  2. Detailed Text → Extract components:

    User: "Add JWT authentication with email/password login and token refresh"
    
    Structured:
    GOAL: Implement JWT-based authentication
    SCOPE: Email/password login, token generation, token refresh endpoints
    CONTEXT: JWT token-based security, refresh token rotation
    
  3. File Reference (e.g., requirements.md) → Read and structure:

    • Read file content
    • Extract goal, scope, requirements
    • Format into structured description

Data Flow

User Input (task description)
    ↓
[Convert to Structured Format]
    ↓ Structured Description:
    ↓   GOAL: [objective]
    ↓   SCOPE: [boundaries]
    ↓   CONTEXT: [background]
    ↓
Phase 1: session:start --auto "structured-description"
    ↓ Output: sessionId
    ↓ Session Memory: Previous tasks, context, artifacts
    ↓
Phase 2: context-gather --session sessionId "structured-description"
    ↓ Input: sessionId + session memory + structured description
    ↓ Output: contextPath (context-package.json) + conflict_risk
    ↓
Phase 3: conflict-resolution [AUTO-TRIGGERED if conflict_risk ≥ medium]
    ↓ Input: sessionId + contextPath + conflict_risk
    ↓ CLI-powered conflict detection (JSON output)
    ↓ AskUserQuestion: Present conflicts + resolution strategies
    ↓ User selects strategies (or skip)
    ↓ Apply modifications via Edit tool:
    ↓   - Update guidance-specification.md
    ↓   - Update role analyses (*.md)
    ↓   - Mark context-package.json as "resolved"
    ↓ Output: Modified brainstorm artifacts (NO report file)
    ↓ Skip if conflict_risk is none/low → proceed directly to Phase 4
    ↓
Phase 4: task-generate-agent --session sessionId
    ↓ Input: sessionId + resolved brainstorm artifacts + session memory
    ↓ Output: IMPL_PLAN.md, task JSONs, TODO_LIST.md
    ↓
Return summary to user

Session Memory Flow: Each phase receives session ID, which provides access to:

  • Previous task summaries
  • Existing context and analysis
  • Brainstorming artifacts (potentially modified by Phase 3)
  • Session-specific configuration

Execution Flow Diagram

User triggers: /workflow:plan "Build authentication system"
  ↓
[TodoWrite Init] 3 orchestrator-level tasks
  ↓
Phase 1: Session Discovery
  → sessionId extracted
  ↓
Phase 2: Context Gathering (SlashCommand executed)
  → ATTACH 3 sub-tasks: ← ATTACHED
    - → Analyze codebase structure
    - → Identify integration points
    - → Generate context package
  → Execute sub-tasks sequentially
  → COLLAPSE tasks ← COLLAPSED
  → contextPath + conflict_risk extracted
  ↓
Conditional Branch: Check conflict_risk
  ├─ IF conflict_risk ≥ medium:
  │   Phase 3: Conflict Resolution (SlashCommand executed)
  │     → ATTACH 3 sub-tasks: ← ATTACHED
  │       - → Detect conflicts with CLI analysis
  │       - → Present conflicts to user
  │       - → Apply resolution strategies
  │     → Execute sub-tasks sequentially
  │     → COLLAPSE tasks ← COLLAPSED
  │
  └─ ELSE: Skip Phase 3, proceed to Phase 4
  ↓
Phase 4: Task Generation (SlashCommand executed)
  → Single agent task (no sub-tasks)
  → Agent autonomously completes internally:
    (discovery → planning → output)
  → Outputs: IMPL_PLAN.md, IMPL-*.json, TODO_LIST.md
  ↓
Return summary to user

Key Points:

  • ← ATTACHED: Tasks attached to TodoWrite when SlashCommand executed
    • Phase 2, 3: Multiple sub-tasks
    • Phase 4: Single agent task
  • ← COLLAPSED: Sub-tasks collapsed to summary after completion (Phase 2, 3 only)
  • Phase 4: Single agent task, no collapse (just mark completed)
  • Conditional Branch: Phase 3 only executes if conflict_risk ≥ medium
  • Continuous Flow: No user intervention between phases

Error Handling

  • Parsing Failure: If output parsing fails, retry command once, then report error
  • Validation Failure: If validation fails, report which file/data is missing
  • Command Failure: Keep phase in_progress, report error to user, do not proceed to next phase

Coordinator Checklist

  • Pre-Phase: Convert user input to structured format (GOAL/SCOPE/CONTEXT)
  • Initialize TodoWrite before any command (Phase 3 added dynamically after Phase 2)
  • Execute Phase 1 immediately with structured description
  • Parse session ID from Phase 1 output, store in memory
  • Pass session ID and structured description to Phase 2 command
  • Parse context path from Phase 2 output, store in memory
  • Extract conflict_risk from context-package.json: Determine Phase 3 execution
  • If conflict_risk ≥ medium: Launch Phase 3 conflict-resolution with sessionId and contextPath
  • Wait for Phase 3 to finish executing (if executed), verify conflict-resolution.json created
  • If conflict_risk is none/low: Skip Phase 3, proceed directly to Phase 4
  • Build Phase 4 command: /workflow:tools:task-generate-agent --session [sessionId]
  • Pass session ID to Phase 4 command
  • Verify all Phase 4 outputs
  • Update TodoWrite after each phase (dynamically adjust for Phase 3 presence)
  • After each phase, automatically continue to next phase based on TodoList status

Structure Template Reference

Minimal Structure:

GOAL: [What to achieve]
SCOPE: [What's included]
CONTEXT: [Relevant info]

Detailed Structure (optional, when more context available):

GOAL: [Primary objective]
SCOPE: [Included features/components]
CONTEXT: [Existing system, constraints, dependencies]
REQUIREMENTS: [Specific technical requirements]
CONSTRAINTS: [Limitations or boundaries]

Usage in Commands:

# Phase 1
/workflow:session:start --auto "GOAL: Build authentication\nSCOPE: JWT, login, registration\nCONTEXT: REST API"

# Phase 2
/workflow:tools:context-gather --session WFS-123 "GOAL: Build authentication\nSCOPE: JWT, login, registration\nCONTEXT: REST API"

Prerequisite Commands:

  • /workflow:brainstorm:artifacts - Optional: Generate role-based analyses before planning (if complex requirements need multiple perspectives)
  • /workflow:brainstorm:synthesis - Optional: Refine brainstorm analyses with clarifications

Called by This Command (5 phases):

  • /workflow:session:start - Phase 1: Create or discover workflow session
  • /workflow:tools:context-gather - Phase 2: Gather project context and analyze codebase
  • /workflow:tools:conflict-resolution - Phase 3: Detect and resolve conflicts (auto-triggered if conflict_risk ≥ medium)
  • /compact - Phase 3: Memory optimization (if context approaching limits)
  • /workflow:tools:task-generate-agent - Phase 4: Generate task JSON files with agent-driven approach

Follow-up Commands:

  • /workflow:plan-verify - Recommended: Verify plan quality and catch issues before execution
  • /workflow:status - Review task breakdown and current progress
  • /workflow:execute - Begin implementation of generated tasks