mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-04 01:40:45 +08:00
- Enhanced 14 commands with flexible parameter support - Standardized argument formats across all commands - Added English parameter descriptions for clarity - Maintained backward compatibility Commands optimized: - analyze-with-file: Added --depth, --max-iterations - brainstorm-with-file: Added --perspectives, --max-ideas, --focus - debug-with-file: Added --scope, --focus, --depth - issue-execute: Unified format, added --skip-tests, --skip-build, --dry-run - lite-plan-a/b/c: Added depth and execution control flags - execute: Added --parallel, --filter, --skip-tests - brainstorm-to-cycle: Unified to --session format, added --launch - lite-fix: Added --hotfix, --severity, --scope - clean: Added --focus, --target, --confirm - lite-execute: Unified --plan format, added execution control - compact: Added --description, --tags, --force - issue-new: Complete flexible parameter support Unchanged (already optimal): - issue-plan, issue-discover, issue-queue, issue-discover-by-prompt
17 KiB
17 KiB
description, argument-hint
| description | argument-hint |
|---|---|
| Lightweight interactive planning workflow with hybrid mode - multi-agent parallel exploration + primary agent merge/clarify/plan. Supports agent count and iteration control. | TASK="<task description or file.md path>" [--num-agents=<n>] [--max-iterations=<n>] [--angles=role1,role2,...] |
Workflow Lite-Plan-B (Hybrid Mode)
Overview
Hybrid mode for complex planning tasks. Multiple agents explore in parallel from different angles, then the primary agent merges findings, handles clarification, and generates the implementation plan while retaining its exploration context.
Core capabilities:
- Parallel multi-angle exploration via multiple subagents
- Primary agent reuse for merge, clarification, and planning (context preserved)
- Intelligent deduplication and conflict resolution during merge
- Best for High complexity tasks requiring cross-module analysis
Applicable Scenarios
- High complexity tasks
- Multi-angle parallel exploration required
- Cross-module or architecture-level changes
- Complex dependencies requiring multiple perspectives
Core Advantages
| Metric | Traditional Separated Mode | Plan-B Hybrid Mode |
|---|---|---|
| Agent creation count | N + 1 (fully independent) | N → 1 (reuse primary agent) |
| Context transfer | Full serialization | Primary agent retained + incremental merge |
| Merge quality | Simple concatenation | Intelligent agent merge |
| Planning coherence | Low (new agent) | High (reuses exploration agent) |
Task Description
Target task: $TASK
--num-agents: Number of parallel agents (default: 4)--max-iterations: Max iteration rounds--angles: Exploration angles (role1,role2,...)
Execution Process
┌─────────────────────────────────────────────────────────────────┐
│ Phase 1: Parallel Exploration │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Agent 0 │ │Agent 1 │ │Agent 2 │ │Agent 3 │ │
│ │(primary)│ │(explore)│ │(explore)│ │(explore)│ │
│ │angle-0 │ │angle-1 │ │angle-2 │ │angle-3 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │ │
│ └───────────┴───────────┴───────────┘ │
│ ↓ │
│ wait({ ids: all }) │
│ ↓ │
├─────────────────────────────────────────────────────────────────┤
│ Phase 2: Merge + Clarify │
│ ↓ │
│ close(Agent 1, 2, 3) ← close non-primary agents │
│ ↓ │
│ send_input(Agent 0, { │
│ other_explorations: [Agent 1,2,3 results], │
│ task: "MERGE + CLARIFY" │
│ }) │
│ ↓ │
│ wait() → get merged results + clarification questions │
│ ↓ │
│ [Collect user answers] │
│ ↓ │
├─────────────────────────────────────────────────────────────────┤
│ Phase 3: Planning │
│ ↓ │
│ send_input(Agent 0, { │
│ clarification_answers: [...], │
│ task: "GENERATE PLAN" │
│ }) │
│ ↓ │
│ wait() → get plan.json │
│ ↓ │
│ close(Agent 0) │
└─────────────────────────────────────────────────────────────────┘
Implementation
Session Setup
Session Setup (MANDATORY - follow exactly):
// Helper: Get UTC+8 (China Standard Time) ISO string
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
const taskSlug = "$TASK".toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
const dateStr = getUtc8ISOString().substring(0, 10) // Format: 2025-11-29
const sessionId = `${taskSlug}-${dateStr}` // e.g., "implement-jwt-refresh-2025-11-29"
const sessionFolder = `.workflow/.lite-plan/${sessionId}`
// Create session folder
mkdir -p ${sessionFolder}
Complexity Assessment & Multi-Angle Selection
const complexity = analyzeTaskComplexity("$TASK")
// Plan-B is suitable for High complexity
const ANGLE_PRESETS = {
architecture: ['architecture', 'dependencies', 'modularity', 'integration-points'],
security: ['security', 'auth-patterns', 'dataflow', 'validation'],
performance: ['performance', 'bottlenecks', 'caching', 'data-access'],
bugfix: ['error-handling', 'dataflow', 'state-management', 'edge-cases'],
feature: ['patterns', 'integration-points', 'testing', 'dependencies']
}
// Plan-B selects 3-4 angles for parallel exploration
const selectedAngles = selectAngles("$TASK", 4) // e.g., ['architecture', 'patterns', 'testing', 'dependencies']
Phase 1: Parallel Exploration (Primary Agent Has Planning Capability)
// ==================== PLAN-B: HYBRID MODE ====================
// Step 1: Create parallel exploration agents (role files read by agents themselves)
// First agent is primary, has merge + planning capability
const explorationAgents = selectedAngles.map((angle, index) => {
const isPrimary = index === 0
return spawn_agent({
message: `
## TASK ASSIGNMENT (Phase 1: Exploration)
### Task Description
${task_description}
### Your Exploration Angle
**Angle**: ${angle}
**Index**: ${index + 1} of ${selectedAngles.length}
**Output File**: ${sessionFolder}/exploration-${angle}.json
${isPrimary ? '\n**Note**: You are the PRIMARY agent. After Phase 1, you will receive other agents\' results for merging and planning.' : ''}
### MANDATORY FIRST STEPS (Agent Execute)
1. **Read explorer role**: ~/.codex/agents/cli-explore-agent.md (MUST read first)
${isPrimary ? '2. **Read planner role**: ~/.codex/agents/cli-lite-planning-agent.md (for Phase 2 & 3)\n3.' : '2.'} Run: ccw tool exec get_modules_by_depth '{}'
${isPrimary ? '4.' : '3.'} Run: rg -l "{keyword}" --type ts
${isPrimary ? '5.' : '4.'} Read: .workflow/project-tech.json
${isPrimary ? '6.' : '5.'} Read: .workflow/project-guidelines.json
### Exploration Focus: ${angle}
**Structural Analysis**:
- Identify modules and files related to ${angle}
- Map imports/exports and dependencies
- Locate entry points and integration surfaces
**Semantic Analysis**:
- How does existing code handle ${angle} concerns?
- What patterns are established for ${angle}?
- Where would new code integrate from ${angle} viewpoint?
### Output Format
Write to ${sessionFolder}/exploration-${angle}.json:
\`\`\`json
{
"angle": "${angle}",
"project_structure": [...],
"relevant_files": [
{"path": "src/file.ts", "relevance": 0.9, "rationale": "..."}
],
"patterns": [...],
"dependencies": [...],
"integration_points": [
{"location": "file:line", "description": "..."}
],
"constraints": [...],
"clarification_needs": [
{"question": "...", "options": ["A", "B"], "recommended": 0, "context": "..."}
],
"_metadata": {
"exploration_angle": "${angle}",
"exploration_index": ${index + 1},
"timestamp": "..."
}
}
\`\`\`
### Return
2-3 sentence summary of ${angle} findings
`
})
})
// Step 2: Batch wait for ALL explorations to complete (KEY ADVANTAGE of Codex)
const exploreResults = wait({
ids: explorationAgents,
timeout_ms: 600000 // 10 minutes
})
// Step 3: Collect all exploration results
const allExplorations = selectedAngles.map((angle, index) => ({
angle: angle,
agentId: explorationAgents[index],
result: exploreResults.status[explorationAgents[index]].completed,
file: `${sessionFolder}/exploration-${angle}.json`
}))
console.log(`
## Phase 1 Complete
Explorations completed:
${allExplorations.map(e => `- ${e.angle}: ${e.result.substring(0, 100)}...`).join('\n')}
`)
Phase 2: Merge + Clarify (Reuse Primary Agent)
// Step 4: Close non-primary agents, keep primary agent (index=0)
const primaryAgent = explorationAgents[0]
const primaryAngle = selectedAngles[0]
explorationAgents.slice(1).forEach(id => close_agent({ id }))
// Step 5: Send merge task to primary agent
send_input({
id: primaryAgent,
message: `
## PHASE 2: MERGE + CLARIFY
You are now in **Merger** role. Combine your ${primaryAngle} findings with other explorations below.
### Other Explorations to Merge
${allExplorations.slice(1).map(e => `
#### ${e.angle} Exploration
**File**: ${e.file}
**Summary**: ${e.result}
Read the full exploration: Read("${e.file}")
`).join('\n')}
### Merge Instructions
1. **Read All Exploration Files**
${allExplorations.map(e => `- Read("${e.file}")`).join('\n ')}
2. **Consolidate Findings**
- **relevant_files**: Deduplicate, keep highest relevance score for each file
- **patterns**: Merge unique patterns, note which angle discovered each
- **integration_points**: Combine all, group by module
- **constraints**: Merge and categorize (hard vs soft constraints)
- **clarification_needs**: Deduplicate similar questions
3. **Write Merged Exploration**
Write to: ${sessionFolder}/exploration-merged.json
4. **Output Clarification Questions**
Format:
\`\`\`
MERGED_EXPLORATION_COMPLETE
Files consolidated: [count]
Patterns identified: [count]
Integration points: [count]
CLARIFICATION_NEEDED:
Q1: [merged question] | Options: [A, B, C] | Recommended: [X] | Source: [angles]
Q2: [merged question] | Options: [A, B] | Recommended: [Y] | Source: [angles]
\`\`\`
If no clarification needed:
\`\`\`
CLARIFICATION_NEEDED: NONE
Ready for Phase 3 (Planning). Send clarification answers or "PROCEED_TO_PLANNING".
\`\`\`
`
})
// Step 6: Wait for merge result
const mergeResult = wait({ ids: [primaryAgent], timeout_ms: 300000 })
const mergeOutput = mergeResult.status[primaryAgent].completed
// Step 7: Handle clarification
let clarificationAnswers = null
if (mergeOutput.includes('CLARIFICATION_NEEDED:') && !mergeOutput.includes('CLARIFICATION_NEEDED: NONE')) {
const questions = parseClarificationQuestions(mergeOutput)
console.log(`
## Clarification Needed (Merged from ${selectedAngles.length} angles)
${questions.map((q, i) => `
### Q${i+1}: ${q.question}
Options: ${q.options.join(', ')}
Recommended: ${q.recommended}
Source angles: ${q.source}
`).join('\n')}
**Please provide your answers...**
`)
clarificationAnswers = collectUserAnswers(questions)
}
Phase 3: Planning (Continue Reusing Primary Agent)
// Step 8: Send planning task
send_input({
id: primaryAgent,
message: `
## PHASE 3: GENERATE PLAN
You are now in **Planner** role. Generate implementation plan based on merged explorations.
${clarificationAnswers ? `
### Clarification Answers
${clarificationAnswers.map(a => `Q: ${a.question}\nA: ${a.answer}`).join('\n\n')}
` : '### No clarification needed'}
### Planning Instructions
1. **Read Schema**
Execute: cat ~/.claude/workflows/cli-templates/schemas/plan-json-schema.json
2. **Read Merged Exploration**
Read: ${sessionFolder}/exploration-merged.json
3. **Generate Plan**
Based on consolidated findings from ${selectedAngles.length} exploration angles:
- ${selectedAngles.join('\n - ')}
4. **Plan Requirements**
- Summary: 2-3 sentence overview
- Approach: High-level strategy referencing multiple angles
- Tasks: 2-7 tasks grouped by feature (NOT by file)
- Each task: id, title, scope, action, description, modification_points, implementation, acceptance, depends_on
- Reference exploration angles in task descriptions
5. **Task Grouping Rules**
- Group by feature: All changes for one feature = one task (even if spanning angles)
- Substantial tasks: 15-60 minutes each
- True dependencies only
- Prefer parallel execution
6. **Write Output**
Write: ${sessionFolder}/plan.json
### Metadata
Include in _metadata:
- exploration_angles: ${JSON.stringify(selectedAngles)}
- planning_mode: "merged-multi-angle"
- source_explorations: ${allExplorations.length}
### Return
Brief completion summary
`
})
// Step 9: Wait for planning to complete
const planResult = wait({ ids: [primaryAgent], timeout_ms: 600000 })
// Step 10: Final cleanup
close_agent({ id: primaryAgent })
Phase 4: Confirmation
const plan = JSON.parse(Read(`${sessionFolder}/plan.json`))
console.log(`
## Implementation Plan (Multi-Angle: ${selectedAngles.join(', ')})
**Summary**: ${plan.summary}
**Approach**: ${plan.approach}
**Complexity**: ${plan.complexity}
**Tasks** (${plan.tasks.length}):
${plan.tasks.map((t, i) => `${i+1}. ${t.title} (${t.scope})`).join('\n')}
**Estimated Time**: ${plan.estimated_time}
**Exploration Angles**: ${plan._metadata.exploration_angles.join(', ')}
---
## Confirmation Required
Please review the plan above and reply with one of the following:
- **"Allow"** - Confirm and finalize plan.json
- **"Modify"** - Describe what changes you want to make
- **"Cancel"** - Abort the planning workflow
**WAITING FOR USER CONFIRMATION...**
`)
Codex vs Claude Comparison (for hybrid mode)
| Aspect | Claude Code Task | Codex Subagent (Plan-B) |
|---|---|---|
| Creation | Task({ subagent_type, prompt }) |
spawn_agent({ message: role + task }) |
| Role Loading | Auto via subagent_type |
Manual: Agent reads ~/.codex/agents/*.md |
| Parallel Wait | Multiple Task() calls |
Batch wait({ ids: [...] }) |
| Result Retrieval | Sync return or TaskOutput |
wait({ ids }).status[id].completed |
| Agent Reuse | resume parameter |
send_input to continue |
| Cleanup | Automatic | Explicit close_agent({ id }) |
Plan-B Advantages:
- True parallel exploration with batch
wait - Primary agent retains context across all phases
- Fine-grained lifecycle control
Agent Lifecycle Comparison
Traditional Mode:
Agent 1 ──────● close
Agent 2 ──────● close
Agent 3 ──────● close
Agent 4 ──────● close
Planning Agent ────────────● close
Plan-B Hybrid Mode:
Agent 0 ─────────────────────────────────● close (reused until end)
Agent 1 ──────● close
Agent 2 ──────● close
Agent 3 ──────● close
↑ ↑ ↑
Phase1 Phase2 Phase3
(parallel) (merge+clarify) (planning)
Session Folder Structure
.workflow/.lite-plan/{task-slug}-{YYYY-MM-DD}/
├── exploration-architecture.json # Angle 1 (primary agent)
├── exploration-patterns.json # Angle 2
├── exploration-testing.json # Angle 3
├── exploration-dependencies.json # Angle 4
├── exploration-merged.json # Merged by primary agent
└── plan.json # Final plan
Workflow States
| State | Action | Next |
|---|---|---|
| Phase 1 Complete | All explorations done | → Phase 2 (Merge) |
| Phase 2 Output | Merged + questions | → Wait for user reply |
| User Replied | Answers received | → send_input to Phase 3 |
| Phase 3 Output | Plan generated | → Phase 4 (Confirmation) |
| User: "Allow" | Confirmed | → Output complete |
| User: "Modify" | Changes requested | → send_input with revisions |
| User: "Cancel" | Aborted | → close all agents, end workflow |
Error Handling
| Error | Resolution |
|---|---|
| Partial exploration timeout | Use completed results, note missing angles in merge |
| Primary agent unexpectedly closed | Re-spawn, paste existing exploration results in message |
| Merge phase timeout | send_input to request current merge progress |
| Planning phase timeout | send_input requesting partial plan output |
Execute task: $TASK