- Implemented Accordion component using Radix UI for collapsible sections. - Created Zustand store to manage coordinator execution state, command chains, logs, and interactive questions. - Added validation tests for CLI settings type definitions, ensuring type safety and correct behavior of helper functions.
27 KiB
name, description, argument-hint, allowed-tools
| name | description | argument-hint | allowed-tools |
|---|---|---|---|
| analyze-with-file | Interactive collaborative analysis with documented discussions, CLI-assisted exploration, and evolving understanding | [-y|--yes] [-c|--continue] "topic or question" | TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*) |
Auto Mode
When --yes or -y: Auto-confirm exploration decisions, use recommended analysis angles.
Workflow Analyze Command
Quick Start
# Basic usage
/workflow:analyze-with-file "如何优化这个项目的认证架构"
# With options
/workflow:analyze-with-file --continue "认证架构" # Continue existing session
/workflow:analyze-with-file -y "性能瓶颈分析" # Auto mode
Context Source: cli-explore-agent + Gemini/Codex analysis
Output Directory: .workflow/.analysis/{session-id}/
Core Innovation: Documented discussion timeline with evolving understanding
Output Artifacts
Phase 1: Topic Understanding
| Artifact | Description |
|---|---|
discussion.md |
Evolution of understanding & discussions (initialized) |
| Session variables | Dimensions, focus areas, analysis depth |
Phase 2: CLI Exploration
| Artifact | Description |
|---|---|
exploration-codebase.json |
Single codebase context from cli-explore-agent |
explorations/*.json |
Multi-perspective codebase explorations (parallel, up to 4) |
explorations.json |
Single perspective aggregated findings |
perspectives.json |
Multi-perspective findings (up to 4 perspectives) with synthesis |
Updated discussion.md |
Round 1 with exploration results |
Phase 3: Interactive Discussion
| Artifact | Description |
|---|---|
Updated discussion.md |
Round 2-N with user feedback and insights |
| Corrected assumptions | Tracked in discussion timeline |
Phase 4: Synthesis & Conclusion
| Artifact | Description |
|---|---|
conclusions.json |
Final synthesis with recommendations |
Final discussion.md |
⭐ Complete analysis with conclusions |
Overview
Interactive collaborative analysis workflow with documented discussion process. Records understanding evolution, facilitates multi-round Q&A, and uses CLI tools for deep exploration.
Core workflow: Topic → Explore → Discuss → Document → Refine → Conclude
┌─────────────────────────────────────────────────────────────────────────┐
│ INTERACTIVE ANALYSIS WORKFLOW │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Phase 1: Topic Understanding │
│ ├─ Parse topic/question │
│ ├─ Identify analysis dimensions (architecture, performance, etc.) │
│ ├─ Initial scoping with user │
│ └─ Initialize discussion.md │
│ │
│ Phase 2: CLI Exploration │
│ ├─ Codebase Exploration (cli-explore-agent, supports parallel ≤4) │
│ ├─ Multi-Perspective Analysis (AFTER exploration) │
│ │ ├─ Single: Comprehensive analysis │
│ │ └─ Multi (≤4): Parallel perspectives with synthesis │
│ ├─ Aggregate findings │
│ └─ Update discussion.md with Round 1 │
│ │
│ Phase 3: Interactive Discussion (Multi-Round) │
│ ├─ Present exploration findings │
│ ├─ Facilitate Q&A with user │
│ ├─ Capture user insights and corrections │
│ ├─ Actions: Deepen | Adjust direction | Answer questions │
│ ├─ Update discussion.md with each round │
│ └─ Repeat until clarity achieved (max 5 rounds) │
│ │
│ Phase 4: Synthesis & Conclusion │
│ ├─ Consolidate all insights │
│ ├─ Generate conclusions with recommendations │
│ ├─ Update discussion.md with final synthesis │
│ └─ Offer follow-up options (issue/task/report) │
│ │
└─────────────────────────────────────────────────────────────────────────┘
Output Structure
.workflow/.analysis/ANL-{slug}-{date}/
├── discussion.md # ⭐ Evolution of understanding & discussions
├── exploration-codebase.json # Phase 2: Single codebase context
├── explorations/ # Phase 2: Multi-perspective codebase explorations (if selected)
│ ├── technical.json
│ └── architectural.json
├── explorations.json # Phase 2: Single perspective findings
├── perspectives.json # Phase 2: Multi-perspective findings (if selected)
└── conclusions.json # Phase 4: Final synthesis
Implementation
Session Initialization
Objective: Create session context and directory structure for analysis.
Required Actions:
- Extract topic/question from
$ARGUMENTS - Generate session ID:
ANL-{slug}-{date}- slug: lowercase, alphanumeric + Chinese, max 40 chars
- date: YYYY-MM-DD (UTC+8)
- Define session folder:
.workflow/.analysis/{session-id} - Parse command options:
-cor--continuefor session continuation-yor--yesfor auto-approval mode
- Auto-detect mode: If session folder + discussion.md exist → continue mode
- Create directory structure:
{session-folder}/
Session Variables:
sessionId: Unique session identifiersessionFolder: Base directory for all artifactsautoMode: Boolean for auto-confirmationmode: new | continue
Phase 1: Topic Understanding
Objective: Analyze topic, identify dimensions, gather user input, initialize discussion.md.
Prerequisites:
- Session initialized with valid sessionId and sessionFolder
- Topic/question available from $ARGUMENTS
Workflow Steps:
-
Parse Topic & Identify Dimensions
- Match topic keywords against ANALYSIS_DIMENSIONS
- Identify relevant dimensions: architecture, implementation, performance, security, concept, comparison, decision
- Default to "general" if no match
-
Initial Scoping (if new session + not auto mode)
- Focus: Multi-select from directions generated by detected dimensions (see Dimension-Direction Mapping)
- Perspectives: Multi-select up to 4 analysis perspectives (see Analysis Perspectives), default: single comprehensive view
- Depth: Single-select from Quick Overview (10-15min) / Standard Analysis (30-60min) / Deep Dive (1-2hr)
-
Initialize discussion.md
- Create discussion.md with session metadata
- Add user context: focus areas, analysis depth
- Add initial understanding: dimensions, scope, key questions
- Create empty sections for discussion timeline
Success Criteria:
- Session folder created with discussion.md initialized
- Analysis dimensions identified
- User preferences captured (focus, depth)
Phase 2: CLI Exploration
Objective: Gather codebase context, then execute deep analysis via CLI tools.
Prerequisites:
- Phase 1 completed successfully
- discussion.md initialized
- Dimensions identified
Workflow Steps (⚠️ Codebase exploration FIRST):
- Codebase Exploration via cli-explore-agent (supports parallel up to 4)
- Agent type:
cli-explore-agent - Execution mode: parallel if multi-perspective selected, otherwise single (run_in_background: false for sequential, true for parallel)
- Single exploration: General codebase analysis
- Multi-perspective: Parallel explorations per perspective focus (max 4, each with specific angle)
- Common tasks: Run
ccw tool exec get_modules_by_depth '{}', execute searches based on topic keywords, read.workflow/project-tech.json - Output:
{sessionFolder}/exploration-codebase.json(single) or{sessionFolder}/explorations/{perspective}.json(multi) - Purpose: Enrich CLI prompts with codebase context for each perspective
- Agent type:
Single Exploration Example:
Task({
subagent_type: "cli-explore-agent",
run_in_background: false,
description: `Explore codebase: ${topicSlug}`,
prompt: `
## Analysis Context
Topic: ${topic_or_question}
Dimensions: ${dimensions.join(', ')}
Session: ${sessionFolder}
## MANDATORY FIRST STEPS
1. Run: ccw tool exec get_modules_by_depth '{}'
2. Execute relevant searches based on topic keywords
3. Read: .workflow/project-tech.json (if exists)
## Exploration Focus
${dimensions.map(d => `- ${d}: Identify relevant code patterns and structures`).join('\n')}
## Output
Write findings to: ${sessionFolder}/exploration-codebase.json
Schema: {relevant_files, patterns, key_findings, questions_for_user, _metadata}
`
})
Multi-Perspective Parallel Example (up to 4 agents):
// Launch parallel explorations for each selected perspective
selectedPerspectives.forEach(perspective => {
Task({
subagent_type: "cli-explore-agent",
run_in_background: false, // Sequential execution, wait for each
description: `Explore ${perspective.name}: ${topicSlug}`,
prompt: `
## Analysis Context
Topic: ${topic_or_question}
Perspective: ${perspective.name} - ${perspective.focus}
Session: ${sessionFolder}
## MANDATORY FIRST STEPS
1. Run: ccw tool exec get_modules_by_depth '{}'
2. Execute searches focused on ${perspective.focus}
3. Read: .workflow/project-tech.json (if exists)
## Exploration Focus (${perspective.name} angle)
${perspective.exploration_tasks.map(t => `- ${t}`).join('\n')}
## Output
Write findings to: ${sessionFolder}/explorations/${perspective.name}.json
Schema: {relevant_files, patterns, key_findings, perspective_insights, _metadata}
`
})
})
- Multi-Perspective CLI Analysis (⚠️ AFTER exploration)
- If user selected multiple perspectives (≤4): Launch CLI calls in parallel
- If single/default perspective: Launch single comprehensive CLI analysis
- Shared context: Include exploration-codebase.json findings in all prompts
- Execution: Bash with run_in_background: true, wait for all results
- Output: perspectives.json with analysis from each perspective
Single Perspective Example:
Bash({
command: `ccw cli -p "
PURPOSE: Analyze topic '${topic_or_question}' from ${dimensions.join(', ')} perspectives
Success: Actionable insights with clear reasoning
PRIOR EXPLORATION CONTEXT:
- Key files: ${explorationResults.relevant_files.slice(0,5).map(f => f.path).join(', ')}
- Patterns found: ${explorationResults.patterns.slice(0,3).join(', ')}
- Key findings: ${explorationResults.key_findings.slice(0,3).join(', ')}
TASK:
• Build on exploration findings above
• Analyze common patterns and anti-patterns
• Highlight potential issues or opportunities
• Generate discussion points for user clarification
MODE: analysis
CONTEXT: @**/* | Topic: ${topic_or_question}
EXPECTED: Structured analysis with clear sections, specific insights tied to evidence, questions to deepen understanding, recommendations with rationale
CONSTRAINTS: Focus on ${dimensions.join(', ')}
" --tool gemini --mode analysis`,
run_in_background: true
})
Multi-Perspective Example (parallel, up to 4):
// Build shared context once
const explorationContext = `
PRIOR EXPLORATION CONTEXT:
- Key files: ${explorationResults.relevant_files.slice(0,5).map(f => f.path).join(', ')}
- Patterns found: ${explorationResults.patterns.slice(0,3).join(', ')}
- Key findings: ${explorationResults.key_findings.slice(0,3).join(', ')}`
// Launch parallel CLI calls based on selected perspectives (max 4)
selectedPerspectives.forEach(perspective => {
Bash({
command: `ccw cli -p "
PURPOSE: ${perspective.purpose} for '${topic_or_question}'
Success: ${perspective.success_criteria}
${explorationContext}
TASK:
${perspective.tasks.map(t => `• ${t}`).join('\n')}
MODE: analysis
CONTEXT: @**/* | Topic: ${topic_or_question}
EXPECTED: ${perspective.expected_output}
CONSTRAINTS: ${perspective.constraints}
" --tool ${perspective.tool} --mode analysis`,
run_in_background: true
})
})
// ⚠️ STOP POINT: Wait for hook callback to receive all results before continuing
-
Aggregate Findings
- Consolidate all codebase explorations (exploration-codebase.json or explorations/*.json) and CLI perspective findings
- If multi-perspective: Extract synthesis from both explorations and analyses (convergent themes, conflicting views, unique contributions)
- Extract aggregated findings, discussion points, open questions across all sources
- Write to explorations.json (single) or perspectives.json (multi)
-
Update discussion.md
- Append Round 1 section with exploration results
- Single perspective: Include sources analyzed, key findings, discussion points, open questions
- Multi-perspective: Include per-perspective findings + synthesis section
explorations.json Schema (single perspective):
session_id: Session identifiertimestamp: Exploration completion timetopic: Original topic/questiondimensions[]: Analysis dimensionssources[]: {type, file/summary}key_findings[]: Main insightsdiscussion_points[]: Questions for useropen_questions[]: Unresolved questions
perspectives.json Schema (multi-perspective):
session_id: Session identifiertimestamp: Exploration completion timetopic: Original topic/questiondimensions[]: Analysis dimensionsperspectives[]: [{name, tool, findings, insights, questions}]synthesis: {convergent_themes, conflicting_views, unique_contributions}aggregated_findings[]: Main insights across perspectivesdiscussion_points[]: Questions for useropen_questions[]: Unresolved questions
Success Criteria:
- exploration-codebase.json (single) or explorations/*.json (multi) created with codebase context
- explorations.json (single) or perspectives.json (multi) created with findings
- discussion.md updated with Round 1 results
- All agents and CLI calls completed successfully
Phase 3: Interactive Discussion
Objective: Iteratively refine understanding through user-guided discussion cycles.
Prerequisites:
- Phase 2 completed successfully
- explorations.json contains initial findings
- discussion.md has Round 1 results
Guideline: For complex tasks (code analysis, implementation, refactoring), delegate to agents via Task tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process.
Workflow Steps:
-
Present Findings
- Display current findings from explorations.json
- Show key points for user input
-
Gather User Feedback (AskUserQuestion)
- Question: Feedback on current analysis
- Options (single-select):
- 同意,继续深入: Analysis direction correct, deepen exploration
- 需要调整方向: Different understanding or focus
- 分析完成: Sufficient information obtained
- 有具体问题: Specific questions to ask
-
Process User Response
Agree, Deepen:
- Continue analysis in current direction
- Use CLI for deeper exploration
Adjust Direction:
- AskUserQuestion for adjusted focus (code details / architecture / best practices)
- Launch new CLI exploration with adjusted scope
Specific Questions:
- Capture user questions
- Use CLI or direct analysis to answer
- Document Q&A in discussion.md
Complete:
- Exit discussion loop, proceed to Phase 4
-
Update discussion.md
- Append Round N section with:
- User input summary
- Direction adjustment (if any)
- User questions & answers (if any)
- Updated understanding
- Corrected assumptions
- New insights
- Append Round N section with:
-
Repeat or Converge
- Continue loop (max 5 rounds) or exit to Phase 4
Discussion Actions:
| User Choice | Action | Tool | Description |
|---|---|---|---|
| Deepen | Continue current direction | Gemini CLI | Deeper analysis in same focus |
| Adjust | Change analysis angle | Selected CLI | New exploration with adjusted scope |
| Questions | Answer specific questions | CLI or analysis | Address user inquiries |
| Complete | Exit discussion loop | - | Proceed to synthesis |
Success Criteria:
- User feedback processed for each round
- discussion.md updated with all discussion rounds
- Assumptions corrected and documented
- Exit condition reached (user selects "完成" or max rounds)
Phase 4: Synthesis & Conclusion
Objective: Consolidate insights, generate conclusions, offer next steps.
Prerequisites:
- Phase 3 completed successfully
- Multiple rounds of discussion documented
- User ready to conclude
Workflow Steps:
-
Consolidate Insights
- Extract all findings from discussion timeline
- Key conclusions: Main points with evidence and confidence levels (high/medium/low)
- Recommendations: Action items with rationale and priority (high/medium/low)
- Open questions: Remaining unresolved questions
- Follow-up suggestions: Issue/task creation suggestions
- Write to conclusions.json
-
Final discussion.md Update
- Append conclusions section:
- Summary: High-level overview
- Key Conclusions: Ranked with evidence and confidence
- Recommendations: Prioritized action items
- Remaining Questions: Unresolved items
- Update "Current Understanding (Final)":
- What We Established: Confirmed points
- What Was Clarified/Corrected: Important corrections
- Key Insights: Valuable learnings
- Add session statistics: rounds, duration, sources, artifacts
- Append conclusions section:
-
Post-Completion Options (AskUserQuestion)
- 创建Issue: Launch issue:new with conclusions
- 生成任务: Launch workflow:lite-plan for implementation
- 导出报告: Generate standalone analysis report
- 完成: No further action
conclusions.json Schema:
session_id: Session identifiertopic: Original topic/questioncompleted: Completion timestamptotal_rounds: Number of discussion roundssummary: Executive summarykey_conclusions[]: {point, evidence, confidence}recommendations[]: {action, rationale, priority}open_questions[]: Unresolved questionsfollow_up_suggestions[]: {type, summary}
Success Criteria:
- conclusions.json created with final synthesis
- discussion.md finalized with conclusions
- User offered next step options
- Session complete
Configuration
Analysis Perspectives
Optional multi-perspective parallel exploration (single perspective is default, max 4):
| Perspective | Tool | Focus | Best For |
|---|---|---|---|
| Technical | Gemini | Implementation, code patterns, technical feasibility | Understanding how and technical details |
| Architectural | Claude | System design, scalability, component interactions | Understanding structure and organization |
| Business | Codex | Value, ROI, stakeholder impact, strategy | Understanding business implications |
| Domain Expert | Gemini | Domain-specific patterns, best practices, standards | Industry-specific knowledge and practices |
Selection: User can multi-select up to 4 perspectives in Phase 1, or default to single comprehensive view
Dimension-Direction Mapping
When user selects focus areas, generate directions dynamically from detected dimensions (don't use static options):
| Dimension | Possible Directions |
|---|---|
| architecture | System Design, Component Interactions, Technology Choices, Integration Points, Design Patterns, Scalability Strategy |
| implementation | Code Structure, Implementation Details, Code Patterns, Error Handling, Testing Approach, Algorithm Analysis |
| performance | Performance Bottlenecks, Optimization Opportunities, Resource Utilization, Caching Strategy, Concurrency Issues |
| security | Security Vulnerabilities, Authentication/Authorization, Access Control, Data Protection, Input Validation |
| concept | Conceptual Foundation, Core Mechanisms, Fundamental Patterns, Theory & Principles, Trade-offs & Reasoning |
| comparison | Solution Comparison, Pros & Cons Analysis, Technology Evaluation, Approach Differences |
| decision | Decision Criteria, Trade-off Analysis, Risk Assessment, Impact Analysis, Implementation Implications |
Implementation: Present 2-3 top dimension-related directions, allow user to multi-select and add custom directions.
Analysis Dimensions
Dimensions matched against topic keywords to identify focus areas:
| Dimension | Keywords |
|---|---|
| architecture | 架构, architecture, design, structure, 设计 |
| implementation | 实现, implement, code, coding, 代码 |
| performance | 性能, performance, optimize, bottleneck, 优化 |
| security | 安全, security, auth, permission, 权限 |
| concept | 概念, concept, theory, principle, 原理 |
| comparison | 比较, compare, vs, difference, 区别 |
| decision | 决策, decision, choice, tradeoff, 选择 |
Consolidation Rules
When updating "Current Understanding":
| Rule | Description |
|---|---|
| Promote confirmed insights | Move validated findings to "What We Established" |
| Track corrections | Keep important wrong→right transformations |
| Focus on current state | What do we know NOW |
| Avoid timeline repetition | Don't copy discussion details |
| Preserve key learnings | Keep insights valuable for future reference |
Example:
❌ Bad (cluttered):
## Current Understanding
In round 1 we discussed X, then in round 2 user said Y...
✅ Good (consolidated):
## Current Understanding
### What We Established
- The authentication flow uses JWT with refresh tokens
- Rate limiting is implemented at API gateway level
### What Was Clarified
- ~~Assumed Redis for sessions~~ → Actually uses database-backed sessions
### Key Insights
- Current architecture supports horizontal scaling
Error Handling
| Error | Resolution |
|---|---|
| cli-explore-agent fails | Continue with available context, note limitation |
| CLI timeout | Retry with shorter prompt, or skip perspective |
| User timeout in discussion | Save state, show resume command |
| Max rounds reached | Force synthesis, offer continuation option |
| No relevant findings | Broaden search, ask user for clarification |
| Session folder conflict | Append timestamp suffix |
| Gemini unavailable | Fallback to Codex or manual analysis |
Best Practices
- Clear Topic Definition: Detailed topics → better dimension identification
- Agent-First for Complex Tasks: For code analysis, implementation, or refactoring tasks during discussion, delegate to agents via Task tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process
- Review discussion.md: Check understanding evolution before conclusions
- Embrace Corrections: Track wrong→right transformations as learnings
- Document Evolution: discussion.md captures full thinking process
- Use Continue Mode: Resume sessions to build on previous analysis
Templates
Discussion Document Structure
discussion.md contains:
- Header: Session metadata (ID, topic, started, dimensions)
- User Context: Focus areas, analysis depth
- Discussion Timeline: Round-by-round findings
- Round 1: Initial Understanding + Exploration Results
- Round 2-N: User feedback, adjusted understanding, corrections, new insights
- Conclusions: Summary, key conclusions, recommendations
- Current Understanding (Final): Consolidated insights
- Session Statistics: Rounds, duration, sources, artifacts
Example sections:
### Round 2 - Discussion (timestamp)
#### User Input
User agrees with current direction, wants deeper code analysis
#### Updated Understanding
- Identified session management uses database-backed approach
- Rate limiting applied at gateway, not application level
#### Corrected Assumptions
- ~~Assumed Redis for sessions~~ → Database-backed sessions
- Reason: User clarified architecture decision
#### New Insights
- Current design allows horizontal scaling without session affinity
Usage Recommendations(Requires User Confirmation)
When to Execute Directly :
- Short, focused analysis tasks (single module/component)
- Clear, well-defined topics with limited scope
- Quick information gathering without multi-round iteration
- Follow-up analysis building on existing session
Use Skill(skill="workflow:analyze-with-file", args="\"topic\"") when:
- Exploring a complex topic collaboratively
- Need documented discussion trail
- Decision-making requires multiple perspectives
- Want to iterate on understanding with user input
- Building shared understanding before implementation
Use Skill(skill="workflow:debug-with-file", args="\"bug description\"") when:
- Diagnosing specific bugs
- Need hypothesis-driven investigation
- Focus on evidence and verification
Use Skill(skill="workflow:brainstorm-with-file", args="\"topic or question\"") when:
- Generating new ideas or solutions
- Need creative exploration
- Want divergent thinking before convergence
Use Skill(skill="workflow:collaborative-plan-with-file", args="\"task description\"") when:
- Complex planning requiring multiple perspectives
- Large scope needing parallel sub-domain analysis
- Want shared collaborative planning document
- Need structured task breakdown with agent coordination
Use Skill(skill="workflow:lite-plan", args="\"task description\"") when:
- Ready to implement (past analysis phase)
- Need simple task breakdown
- Focus on quick execution planning
Now execute analyze-with-file for: $ARGUMENTS