diff --git a/.claude/skills/_shared/COMMAND-TO-SKILL-CONVERSION.md b/.claude/skills/_shared/COMMAND-TO-SKILL-CONVERSION.md index 6758b30f..caf5d70b 100644 --- a/.claude/skills/_shared/COMMAND-TO-SKILL-CONVERSION.md +++ b/.claude/skills/_shared/COMMAND-TO-SKILL-CONVERSION.md @@ -1,6 +1,8 @@ -# 命令转 Skill 规范 v1.0 +# 命令转 Skill 规范 v2.0 -> 基于 `workflow-plan` 命令转换实践提炼的标准流程 +> 基于 `workflow-plan` 转换实践提炼的标准流程 +> +> **v2.0 变更**:命令调用引用统一转换为文件路径引用,不再保留 `/workflow:XX` 等命令调用语法 ## ⚠️ 核心要求 @@ -70,7 +72,7 @@ | ✅ 添加阶段标识 | Phase标题、来源标注 | `# Phase 1: Session Discovery` | | ✅ 添加组织结构 | 章节标题优化 | 添加 `## Execution Steps` | | ✅ 添加衔接说明 | Post-Phase Update | 阶段完成后的状态说明 | -| ✅ 移除命令调用语法 | 移除 `/workflow`、`/command` 等命令引用 | 原文 `/workflow:session:start` → 移除 | +| ✅ 命令引用转文件路径 | 将 `/workflow`、`/command` 等命令引用转换为相对文件路径 | 原文 `/workflow:session:start` → `phases/01-session-discovery.md` | | ✅ 移除 Frontmatter | 移除命令的 argument-hint、examples | 命令级元数据在 Skill 中不需要 | | ❌ 简化代码 | 任何代码的省略或改写 | 不允许 | | ❌ 简化Prompt | Agent Prompt的任何删减 | 不允许 | @@ -111,19 +113,19 @@ - ❌ 错误:省略JSON输出示例 - ✅ 正确:保留所有输入输出示例 -**应移除的命令特有内容**: +**引用转换规则**: -转换时应移除以下命令格式专有的内容: +命令引用统一转换为文件路径引用,规则如下: -| 移除内容 | 原因 | 示例 | -|---------|------|------| -| **Frontmatter** | Skill 使用 SKILL.md 的 Frontmatter | `argument-hint`、`allowed-tools`、`examples` | -| **命令调用语法** | Skill 使用 Phase 引用 | `/workflow:session:start` → 移除 | -| **命令路径引用** | 改为 Phase 路径引用 | `commands/workflow/tools/` → 移除 | -| **Skill 调用说明** | 在 SKILL.md 中统一说明 | `使用 /workflow:xxx 调用` → 移除 | -| **命令参数说明** | 仅保留执行参数 | `usage: /workflow:plan [session-id]` → 移除 | +| 原命令引用 | 转换方式 | 示例 | +|-----------|---------|------| +| **Frontmatter** | 移除,在 SKILL.md 中统一定义 | `argument-hint`、`examples` → 移除 | +| **命令调用语法** | 转换为 Phase 文件的相对路径 | `/workflow:session:start` → `phases/01-session-discovery.md` | +| **命令路径引用** | 转换为 Skill 目录内路径 | `commands/workflow/tools/` → `phases/` | +| **跨命令引用** | 转换为 Phase 间文件引用 | `/workflow:tools:context-gather` → `phases/02-context-gathering.md` | +| **命令参数说明** | 移除或转为 Phase Prerequisites | `usage: /workflow:plan [session-id]` → Phase Prerequisites 中说明 | -**示例**: +**转换示例**: 原命令文件中: ```markdown @@ -132,14 +134,21 @@ - `/workflow:tools:context-gather` - Gather context ``` -转换后Phase文件中: +转换后 Phase 文件中(使用文件路径引用): ```markdown ## Related Phases -- Phase 1: Session Discovery -- Phase 2: Context Gathering +- [Phase 1: Session Discovery](phases/01-session-discovery.md) +- [Phase 2: Context Gathering](phases/02-context-gathering.md) ``` -或直接移除相关命令说明章节,因为 SKILL.md 已包含完整的 Phase 引用表。 +或在 SKILL.md 的 Phase Reference Table 中统一管理引用关系: +```markdown +### Phase Reference Documents +| Phase | Document | Purpose | +|-------|----------|---------| +| Phase 1 | [phases/01-session-discovery.md](phases/01-session-discovery.md) | 会话发现与初始化 | +| Phase 2 | [phases/02-context-gathering.md](phases/02-context-gathering.md) | 上下文收集 | +``` ### 2.2 分布读取原则 @@ -675,3 +684,4 @@ wc -l skills/{skill-name}/SKILL.md skills/{skill-name}/phases/*.md |------|------|------| | v1.0 | 2025-02-05 | 基于 workflow-plan 转换实践创建 | | v1.1 | 2025-02-05 | 强化内容一致性要求;添加第7章一致性验证;添加应移除的命令特有内容说明 | +| v2.0 | 2026-02-05 | 命令调用引用统一转换为文件路径引用;移除 `/workflow:XX` 命令语法;引用转换规则重构 | diff --git a/.claude/skills/workflow-brainstorm-auto-parallel/SKILL.md b/.claude/skills/workflow-brainstorm-auto-parallel/SKILL.md new file mode 100644 index 00000000..5dacc5f1 --- /dev/null +++ b/.claude/skills/workflow-brainstorm-auto-parallel/SKILL.md @@ -0,0 +1,352 @@ +--- +name: workflow-brainstorm-auto-parallel +description: Parallel brainstorming automation with dynamic role selection and concurrent execution across multiple perspectives. Triggers on "workflow:brainstorm:auto-parallel". +allowed-tools: Task, AskUserQuestion, TodoWrite, Read, Write, Edit, Bash, Glob, Grep +--- + +# Workflow Brainstorm Auto-Parallel + +Parallel brainstorming automation orchestrating interactive framework generation, concurrent multi-role analysis, and synthesis integration to produce comprehensive guidance specifications. + +## Architecture Overview + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ Auto-Parallel Orchestrator (SKILL.md) │ +│ → Pure coordinator: Execute phases, parse outputs, manage tasks│ +└───────────────┬─────────────────────────────────────────────────┘ + │ + ┌───────────┼───────────┬───────────┐ + ↓ ↓ ↓ ↓ +┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ +│ Phase 0 │ │ Phase 1 │ │ Phase 2 │ │ Phase 3 │ +│ Parse │ │Framework│ │Parallel │ │Synthesis│ +│ Params │ │Generate │ │ Roles │ │Integrate│ +└─────────┘ └─────────┘ └─────────┘ └─────────┘ + ↓ ↓ ↓ ↓ + count, guidance- N role synthesis- +style-skill specification analyses specification +``` + +## Key Design Principles + +1. **Pure Orchestrator**: Execute phases in sequence (Phase 1, 3 sequential; Phase 2 parallel) +2. **Auto-Continue**: All phases run autonomously without user intervention between phases +3. **Task Attachment Model**: Sub-tasks are attached/collapsed dynamically in TodoWrite +4. **Progressive Phase Loading**: Phase docs are read on-demand when phase executes +5. **Parallel Execution**: Phase 2 launches N role agents concurrently + +## Auto Mode + +When `--yes` or `-y`: Auto-select recommended roles, skip all clarification questions, use default answers. + +## Execution Flow + +``` +Parameter Parsing: + ├─ Extract --count N (default: 3, max: 9) + ├─ Extract --style-skill package-name (optional, for ui-designer) + └─ Validate style SKILL package exists + +Phase 1: Interactive Framework Generation + └─ Ref: phases/01-interactive-framework.md + ├─ Tasks attached: Phase 0-5 (Context → Topic → Roles → Questions → Conflicts → Spec) + ├─ Output: guidance-specification.md + workflow-session.json + └─ Parse: selected_roles[], session_id + +Phase 2: Parallel Role Analysis + └─ Ref: phases/02-parallel-role-analysis.md + ├─ Tasks attached: N role agents (concurrent execution) + ├─ For each role: Execute conceptual-planning-agent + ├─ Optional: ui-designer appends --style-skill if provided + └─ Output: [role]/analysis*.md (one per role) + +Phase 3: Synthesis Integration + └─ Ref: phases/03-synthesis-integration.md + ├─ Tasks attached: Load → Analyze → Integrate → Generate + ├─ Input: All role analyses + guidance-specification.md + └─ Output: synthesis-specification.md + +Return: + └─ Summary with session info and next steps +``` + +**Phase Reference Documents** (read on-demand when phase executes): + +| Phase | Document | Purpose | +|-------|----------|---------| +| 1 | [phases/01-interactive-framework.md](phases/01-interactive-framework.md) | Interactive clarification generating confirmed guidance specification through role-based analysis | +| 2 | [phases/02-parallel-role-analysis.md](phases/02-parallel-role-analysis.md) | Unified role-specific analysis generation with interactive context gathering and concurrent execution | +| 3 | [phases/03-synthesis-integration.md](phases/03-synthesis-integration.md) | Cross-role synthesis integration with intelligent Q&A and targeted updates | + +## Core Rules + +1. **Start Immediately**: First action is TodoWrite initialization, second action is parameter parsing +2. **No Preliminary Analysis**: Do not analyze topic before Phase 1 - artifacts handles all analysis +3. **Parse Every Output**: Extract selected_roles from workflow-session.json after Phase 1 +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**: Phase executes **attach** sub-tasks to current workflow. Orchestrator **executes** these attached tasks, 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 +8. **Parallel Execution**: Phase 2 attaches multiple agent tasks simultaneously for concurrent execution +9. **Progressive Phase Loading**: Read phase docs ONLY when that phase is about to execute + +## Usage + +``` +Trigger: "workflow:brainstorm:auto-parallel" +Input: "" [--count N] [--style-skill package-name] +``` + +**Recommended Structured Format**: +``` +Input: "GOAL: [objective] SCOPE: [boundaries] CONTEXT: [background]" [--count N] [--style-skill package-name] +``` + +**Parameters**: +- `topic` (required): Topic or challenge description (structured format recommended) +- `--count N` (optional): Number of roles to select (default: 3, max: 9) +- `--style-skill package-name` (optional): Style SKILL package to load for ui-designer (located at `.claude/skills/style-{package-name}/`) + +## Data Flow + +### Phase 0 → Phase 1 + +**Input**: +- `topic`: User-provided topic or challenge description +- `count`: Number of roles to select (parsed from --count parameter) +- `style_skill_package`: Style SKILL package name (parsed from --style-skill parameter) + +**Output**: None (in-memory variables) + +### Phase 1 → Phase 2 + +**Input**: `topic`, `count`, `style_skill_package` + +**Output**: +- `session_id`: Workflow session identifier (WFS-{topic-slug}) +- `selected_roles[]`: Array of selected role names +- `guidance-specification.md`: Framework content +- `workflow-session.json`: Session metadata + +**Parsing**: +```javascript +// Read workflow-session.json after Phase 1 +const session_data = Read(".workflow/active/WFS-{topic}/workflow-session.json"); +const selected_roles = session_data.selected_roles; +const session_id = session_data.session_id; +const style_skill_package = session_data.style_skill_package || null; +``` + +### Phase 2 → Phase 3 + +**Input**: `session_id`, `selected_roles[]`, `style_skill_package` + +**Output**: +- `[role]/analysis*.md`: One analysis per selected role +- `.superdesign/design_iterations/`: UI design artifacts (if --style-skill provided) + +**Validation**: +```javascript +// Verify all role analyses created +for (const role of selected_roles) { + const analysis_path = `${brainstorm_dir}/${role}/analysis.md`; + if (!exists(analysis_path)) { + ERROR: `Missing analysis for ${role}`; + } +} +``` + +### Phase 3 → Completion + +**Input**: `session_id`, all role analyses, guidance-specification.md + +**Output**: +- `synthesis-specification.md`: Integrated cross-role analysis + +**Validation**: +```javascript +const synthesis_path = `${brainstorm_dir}/synthesis-specification.md`; +if (!exists(synthesis_path)) { + ERROR: "Synthesis generation failed"; +} +``` + +## TodoWrite Pattern + +**Core Concept**: Dynamic task attachment and collapse for parallel brainstorming workflow with interactive framework generation and concurrent role analysis. + +### Key Principles + +1. **Task Attachment** (when Phase executed): + - Phase's internal tasks are **attached** to orchestrator's TodoWrite + - Phase 1: artifacts attaches 5 internal tasks (Phase 0-5) + - Phase 2: Multiple role-analysis calls attach N role analysis tasks simultaneously + - Phase 3: synthesis attaches internal tasks + - First attached task marked as `in_progress`, others as `pending` + - Orchestrator **executes** these attached tasks (sequentially for Phase 1, 3; in parallel for Phase 2) + +2. **Task Collapse** (after sub-tasks complete): + - Remove detailed sub-tasks from TodoWrite + - **Collapse** to high-level phase summary + - Example: Phase 1 sub-tasks collapse to "Phase 1: Interactive Framework Generation: completed" + - Phase 2: Multiple role tasks collapse to "Phase 2: Parallel Role Analysis: completed" + - Phase 3: Synthesis tasks collapse to "Phase 3: Synthesis Integration: completed" + - Maintains clean orchestrator-level view + +3. **Continuous Execution**: + - After collapse, automatically proceed to next pending phase + - No user intervention required between phases + - TodoWrite dynamically reflects current execution state + +**Lifecycle Summary**: Initial pending tasks → Phase 1 executed (artifacts tasks ATTACHED) → Artifacts sub-tasks executed → Phase 1 completed (tasks COLLAPSED) → Phase 2 executed (N role tasks ATTACHED in parallel) → Role analyses executed concurrently → Phase 2 completed (tasks COLLAPSED) → Phase 3 executed (synthesis tasks ATTACHED) → Synthesis sub-tasks executed → Phase 3 completed (tasks COLLAPSED) → Workflow complete. + +### Brainstorming Workflow Specific Features + +- **Phase 1**: Interactive framework generation with user Q&A (Phase attachment) +- **Phase 2**: Parallel role analysis execution with N concurrent agents (Task agent attachments) +- **Phase 3**: Cross-role synthesis integration (Phase attachment) +- **Dynamic Role Count**: `--count N` parameter determines number of Phase 2 parallel tasks (default: 3, max: 9) +- **Mixed Execution**: Sequential (Phase 1, 3) and Parallel (Phase 2) task execution + +### Initial TodoWrite (Workflow Start) + +```json +[ + {"content": "Phase 0: Parameter Parsing", "status": "in_progress", "activeForm": "Parsing parameters"}, + {"content": "Phase 1: Interactive Framework Generation", "status": "pending", "activeForm": "Executing artifacts interactive framework"}, + {"content": "Phase 2: Parallel Role Analysis", "status": "pending", "activeForm": "Executing parallel role analysis"}, + {"content": "Phase 3: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis integration"} +] +``` + +### Phase 1 Task Attachment (Artifacts Execution) + +```json +[ + {"content": "Phase 0: Parameter Parsing", "status": "completed", "activeForm": "Parsing parameters"}, + {"content": "Phase 1: Interactive Framework Generation", "status": "in_progress", "activeForm": "Executing artifacts interactive framework"}, + {"content": " → Phase 0: Context collection", "status": "in_progress", "activeForm": "Collecting context"}, + {"content": " → Phase 1: Topic analysis", "status": "pending", "activeForm": "Analyzing topic"}, + {"content": " → Phase 2: Role selection", "status": "pending", "activeForm": "Selecting roles"}, + {"content": " → Phase 3: Role questions", "status": "pending", "activeForm": "Collecting role questions"}, + {"content": " → Phase 4: Conflict resolution", "status": "pending", "activeForm": "Resolving conflicts"}, + {"content": " → Phase 5: Generate specification", "status": "pending", "activeForm": "Generating specification"}, + {"content": "Phase 2: Parallel Role Analysis", "status": "pending", "activeForm": "Executing parallel role analysis"}, + {"content": "Phase 3: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis integration"} +] +``` + +### Phase 1 Task Collapse (Artifacts Completed) + +```json +[ + {"content": "Phase 0: Parameter Parsing", "status": "completed", "activeForm": "Parsing parameters"}, + {"content": "Phase 1: Interactive Framework Generation", "status": "completed", "activeForm": "Executing artifacts interactive framework"}, + {"content": "Phase 2: Parallel Role Analysis", "status": "pending", "activeForm": "Executing parallel role analysis"}, + {"content": "Phase 3: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis integration"} +] +``` + +### Phase 2 Task Attachment (Parallel Role Execution) + +```json +[ + {"content": "Phase 0: Parameter Parsing", "status": "completed", "activeForm": "Parsing parameters"}, + {"content": "Phase 1: Interactive Framework Generation", "status": "completed", "activeForm": "Executing artifacts interactive framework"}, + {"content": "Phase 2: Parallel Role Analysis", "status": "in_progress", "activeForm": "Executing parallel role analysis"}, + {"content": " → Execute system-architect analysis", "status": "in_progress", "activeForm": "Executing system-architect analysis"}, + {"content": " → Execute ui-designer analysis", "status": "in_progress", "activeForm": "Executing ui-designer analysis"}, + {"content": " → Execute product-manager analysis", "status": "in_progress", "activeForm": "Executing product-manager analysis"}, + {"content": "Phase 3: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis integration"} +] +``` + +### Phase 2 Task Collapse (All Roles Completed) + +```json +[ + {"content": "Phase 0: Parameter Parsing", "status": "completed", "activeForm": "Parsing parameters"}, + {"content": "Phase 1: Interactive Framework Generation", "status": "completed", "activeForm": "Executing artifacts interactive framework"}, + {"content": "Phase 2: Parallel Role Analysis", "status": "completed", "activeForm": "Executing parallel role analysis"}, + {"content": "Phase 3: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis integration"} +] +``` + +## Session Management + +**⚡ FIRST ACTION**: Check `.workflow/active/` for existing sessions before Phase 1 + +**Multiple Sessions Support**: +- Different Claude instances can have different brainstorming sessions +- If multiple sessions found, prompt user to select +- If single session found, use it +- If no session exists, create `WFS-[topic-slug]` + +**Session Continuity**: +- MUST use selected session for all phases +- Each role's context stored in session directory +- Session isolation: Each session maintains independent state + +## Output Structure + +**Phase 1 Output**: +- `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md` (framework content) +- `.workflow/active/WFS-{topic}/workflow-session.json` (metadata: selected_roles[], topic, timestamps, style_skill_package) + +**Phase 2 Output**: +- `.workflow/active/WFS-{topic}/.brainstorming/{role}/analysis.md` (one per role) +- `.superdesign/design_iterations/` (ui-designer artifacts, if --style-skill provided) + +**Phase 3 Output**: +- `.workflow/active/WFS-{topic}/.brainstorming/synthesis-specification.md` (integrated analysis) + +**⚠️ Storage Separation**: Guidance content in .md files, metadata in .json (no duplication) +**⚠️ Style References**: When --style-skill provided, workflow-session.json stores style_skill_package name, ui-designer loads from `.claude/skills/style-{package-name}/` + +## Available Roles + +- data-architect (数据架构师) +- product-manager (产品经理) +- product-owner (产品负责人) +- scrum-master (敏捷教练) +- subject-matter-expert (领域专家) +- system-architect (系统架构师) +- test-strategist (测试策略师) +- ui-designer (UI 设计师) +- ux-expert (UX 专家) + +**Role Selection**: Handled by Phase 1 (artifacts) - intelligent recommendation + user selection + +## Error Handling + +- **Role selection failure**: Phase 1 defaults to product-manager with explanation +- **Agent execution failure**: Agent-specific retry with minimal dependencies +- **Template loading issues**: Agent handles graceful degradation +- **Synthesis conflicts**: Phase 3 highlights disagreements without resolution +- **Context overflow protection**: Per-role limits enforced by conceptual-planning-agent + +## Reference Information + +**File Structure**: +``` +.workflow/active/WFS-[topic]/ +├── workflow-session.json # Session metadata ONLY +└── .brainstorming/ + ├── guidance-specification.md # Framework (Phase 1) + ├── {role}/ + │ ├── analysis.md # Main document (with optional @references) + │ └── analysis-{slug}.md # Section documents (max 5) + └── synthesis-specification.md # Integration (Phase 3) +``` + +**Next Steps** (returned to user): +``` +Brainstorming complete for session: {sessionId} +Roles analyzed: {count} +Synthesis: .workflow/active/WFS-{topic}/.brainstorming/synthesis-specification.md + +✅ Next Steps: +1. Phase 3 synthesis (phases/03-synthesis-integration.md) - Optional refinement (if not auto-executed) +2. Planning workflow (workflow-plan/SKILL.md) --session {sessionId} - Generate implementation plan +``` diff --git a/.claude/skills/workflow-brainstorm-auto-parallel/phases/01-interactive-framework.md b/.claude/skills/workflow-brainstorm-auto-parallel/phases/01-interactive-framework.md new file mode 100644 index 00000000..cebc344e --- /dev/null +++ b/.claude/skills/workflow-brainstorm-auto-parallel/phases/01-interactive-framework.md @@ -0,0 +1,460 @@ +# Phase 1: Interactive Framework Generation + +> 来源: `commands/workflow/brainstorm/artifacts.md` + +## Overview + +Seven-phase workflow: **Context collection** → **Topic analysis** → **Role selection** → **Role questions** → **Conflict resolution** → **Final check** → **Generate specification** + +All user interactions use AskUserQuestion tool (max 4 questions per call, multi-round). + +**Input**: `"GOAL: [objective] SCOPE: [boundaries] CONTEXT: [background]" [--count N]` +**Output**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md` +**Core Principle**: Questions dynamically generated from project context + topic keywords, NOT generic templates + +**Parameters**: +- `topic` (required): Topic or challenge description (structured format recommended) +- `--count N` (optional): Number of roles to select (system recommends N+2 options, default: 3) + +--- + +## Quick Reference + +### Phase Summary + +| Phase | Goal | AskUserQuestion | Storage | +|-------|------|-----------------|---------| +| 0 | Context collection | - | context-package.json | +| 1 | Topic analysis | 2-4 questions | intent_context | +| 2 | Role selection | 1 multi-select | selected_roles | +| 3 | Role questions | 3-4 per role | role_decisions[role] | +| 4 | Conflict resolution | max 4 per round | cross_role_decisions | +| 4.5 | Final check | progressive rounds | additional_decisions | +| 5 | Generate spec | - | guidance-specification.md | + +### AskUserQuestion Pattern + +```javascript +// Single-select (Phase 1, 3, 4) +AskUserQuestion({ + questions: [ + { + question: "{问题文本}", + header: "{短标签}", // max 12 chars + multiSelect: false, + options: [ + { label: "{选项}", description: "{说明和影响}" }, + { label: "{选项}", description: "{说明和影响}" }, + { label: "{选项}", description: "{说明和影响}" } + ] + } + // ... max 4 questions per call + ] +}) + +// Multi-select (Phase 2) +AskUserQuestion({ + questions: [{ + question: "请选择 {count} 个角色", + header: "角色选择", + multiSelect: true, + options: [/* max 4 options per call */] + }] +}) +``` + +### Multi-Round Execution + +```javascript +const BATCH_SIZE = 4; +for (let i = 0; i < allQuestions.length; i += BATCH_SIZE) { + const batch = allQuestions.slice(i, i + BATCH_SIZE); + AskUserQuestion({ questions: batch }); + // Store responses before next round +} +``` + +--- + +## Task Tracking + +**TodoWrite Rule**: EXTEND auto-parallel's task list (NOT replace/overwrite) + +**When called from auto-parallel**: +- Find artifacts parent task → Mark "in_progress" +- APPEND sub-tasks (Phase 0-5) → Mark each as completes +- When Phase 5 completes → Mark parent "completed" +- PRESERVE all other auto-parallel tasks + +**Standalone Mode**: +```json +[ + {"content": "Initialize session", "status": "pending", "activeForm": "Initializing"}, + {"content": "Phase 0: Context collection", "status": "pending", "activeForm": "Phase 0"}, + {"content": "Phase 1: Topic analysis (2-4 questions)", "status": "pending", "activeForm": "Phase 1"}, + {"content": "Phase 2: Role selection", "status": "pending", "activeForm": "Phase 2"}, + {"content": "Phase 3: Role questions (per role)", "status": "pending", "activeForm": "Phase 3"}, + {"content": "Phase 4: Conflict resolution", "status": "pending", "activeForm": "Phase 4"}, + {"content": "Phase 4.5: Final clarification", "status": "pending", "activeForm": "Phase 4.5"}, + {"content": "Phase 5: Generate specification", "status": "pending", "activeForm": "Phase 5"} +] +``` + +--- + +## Execution Phases + +### Session Management + +- Check `.workflow/active/` for existing sessions +- Multiple → Prompt selection | Single → Use it | None → Create `WFS-[topic-slug]` +- Parse `--count N` parameter (default: 3) +- Store decisions in `workflow-session.json` + +### Phase 0: Context Collection + +**Goal**: Gather project context BEFORE user interaction + +**Steps**: +1. Check if `context-package.json` exists → Skip if valid +2. Invoke `context-search-agent` (BRAINSTORM MODE - lightweight) +3. Output: `.workflow/active/WFS-{session-id}/.process/context-package.json` + +**Graceful Degradation**: If agent fails, continue to Phase 1 without context + +```javascript +Task( + subagent_type="context-search-agent", + run_in_background=false, + description="Gather project context for brainstorm", + prompt=` +Execute context-search-agent in BRAINSTORM MODE (Phase 1-2 only). + +Session: ${session_id} +Task: ${task_description} +Output: .workflow/${session_id}/.process/context-package.json + +Required fields: metadata, project_context, assets, dependencies, conflict_detection +` +) +``` + +### Phase 1: Topic Analysis + +**Goal**: Extract keywords/challenges enriched by Phase 0 context + +**Steps**: +1. Load Phase 0 context (tech_stack, modules, conflict_risk) +2. Deep topic analysis (entities, challenges, constraints, metrics) +3. Generate 2-4 context-aware probing questions +4. AskUserQuestion → Store to `session.intent_context` + +**Example**: +```javascript +AskUserQuestion({ + questions: [ + { + question: "实时协作平台的主要技术挑战?", + header: "核心挑战", + multiSelect: false, + options: [ + { label: "实时数据同步", description: "100+用户同时在线,状态同步复杂度高" }, + { label: "可扩展性架构", description: "用户规模增长时的系统扩展能力" }, + { label: "冲突解决机制", description: "多用户同时编辑的冲突处理策略" } + ] + }, + { + question: "MVP阶段最关注的指标?", + header: "优先级", + multiSelect: false, + options: [ + { label: "功能完整性", description: "实现所有核心功能" }, + { label: "用户体验", description: "流畅的交互体验和响应速度" }, + { label: "系统稳定性", description: "高可用性和数据一致性" } + ] + } + ] +}) +``` + +**⚠️ CRITICAL**: Questions MUST reference topic keywords. Generic "Project type?" violates dynamic generation. + +### Phase 2: Role Selection + +**Goal**: User selects roles from intelligent recommendations + +**Available Roles**: data-architect, product-manager, product-owner, scrum-master, subject-matter-expert, system-architect, test-strategist, ui-designer, ux-expert + +**Steps**: +1. Analyze Phase 1 keywords → Recommend count+2 roles with rationale +2. AskUserQuestion (multiSelect=true) → Store to `session.selected_roles` +3. If count+2 > 4, split into multiple rounds + +**Example**: +```javascript +AskUserQuestion({ + questions: [{ + question: "请选择 3 个角色参与头脑风暴分析", + header: "角色选择", + multiSelect: true, + options: [ + { label: "system-architect", description: "实时同步架构设计和技术选型" }, + { label: "ui-designer", description: "协作界面用户体验和状态展示" }, + { label: "product-manager", description: "功能优先级和MVP范围决策" }, + { label: "data-architect", description: "数据同步模型和存储方案设计" } + ] + }] +}) +``` + +**⚠️ CRITICAL**: User MUST interact. NEVER auto-select without confirmation. + +### Phase 3: Role-Specific Questions + +**Goal**: Generate deep questions mapping role expertise to Phase 1 challenges + +**Algorithm**: +1. FOR each selected role: + - Map Phase 1 challenges to role domain + - Generate 3-4 questions (implementation depth, trade-offs, edge cases) + - AskUserQuestion per role → Store to `session.role_decisions[role]` +2. Process roles sequentially (one at a time for clarity) +3. If role needs > 4 questions, split into multiple rounds + +**Example** (system-architect): +```javascript +AskUserQuestion({ + questions: [ + { + question: "100+ 用户实时状态同步方案?", + header: "状态同步", + multiSelect: false, + options: [ + { label: "Event Sourcing", description: "完整事件历史,支持回溯,存储成本高" }, + { label: "集中式状态管理", description: "实现简单,单点瓶颈风险" }, + { label: "CRDT", description: "去中心化,自动合并,学习曲线陡" } + ] + }, + { + question: "两个用户同时编辑冲突如何解决?", + header: "冲突解决", + multiSelect: false, + options: [ + { label: "自动合并", description: "用户无感知,可能产生意外结果" }, + { label: "手动解决", description: "用户控制,增加交互复杂度" }, + { label: "版本控制", description: "保留历史,需要分支管理" } + ] + } + ] +}) +``` + +### Phase 4: Conflict Resolution + +**Goal**: Resolve ACTUAL conflicts from Phase 3 answers + +**Algorithm**: +1. Analyze Phase 3 answers for conflicts: + - Contradictory choices (e.g., "fast iteration" vs "complex Event Sourcing") + - Missing integration (e.g., "Optimistic updates" but no conflict handling) + - Implicit dependencies (e.g., "Live cursors" but no auth defined) +2. Generate clarification questions referencing SPECIFIC Phase 3 choices +3. AskUserQuestion (max 4 per call, multi-round) → Store to `session.cross_role_decisions` +4. If NO conflicts: Skip Phase 4 (inform user: "未检测到跨角色冲突,跳过Phase 4") + +**Example**: +```javascript +AskUserQuestion({ + questions: [{ + question: "CRDT 与 UI 回滚期望冲突,如何解决?\n背景:system-architect选择CRDT,ui-designer期望回滚UI", + header: "架构冲突", + multiSelect: false, + options: [ + { label: "采用 CRDT", description: "保持去中心化,调整UI期望" }, + { label: "显示合并界面", description: "增加用户交互,展示冲突详情" }, + { label: "切换到 OT", description: "支持回滚,增加服务器复杂度" } + ] + }] +}) +``` + +### Phase 4.5: Final Clarification + +**Purpose**: Ensure no important points missed before generating specification + +**Steps**: +1. Ask initial check: + ```javascript + AskUserQuestion({ + questions: [{ + question: "在生成最终规范之前,是否有前面未澄清的重点需要补充?", + header: "补充确认", + multiSelect: false, + options: [ + { label: "无需补充", description: "前面的讨论已经足够完整" }, + { label: "需要补充", description: "还有重要内容需要澄清" } + ] + }] + }) + ``` +2. If "需要补充": + - Analyze user's additional points + - Generate progressive questions (not role-bound, interconnected) + - AskUserQuestion (max 4 per round) → Store to `session.additional_decisions` + - Repeat until user confirms completion +3. If "无需补充": Proceed to Phase 5 + +**Progressive Pattern**: Questions interconnected, each round informs next, continue until resolved. + +### Phase 5: Generate Specification + +**Steps**: +1. Load all decisions: `intent_context` + `selected_roles` + `role_decisions` + `cross_role_decisions` + `additional_decisions` +2. Transform Q&A to declarative: Questions → Headers, Answers → CONFIRMED/SELECTED statements +3. Generate `guidance-specification.md` +4. Update `workflow-session.json` (metadata only) +5. Validate: No interrogative sentences, all decisions traceable + +--- + +## Question Guidelines + +### Core Principle + +**Target**: 开发者(理解技术但需要从用户需求出发) + +**Question Structure**: `[业务场景/需求前提] + [技术关注点]` +**Option Structure**: `标签:[技术方案] + 说明:[业务影响] + [技术权衡]` + +### Quality Rules + +**MUST Include**: +- ✅ All questions in Chinese (用中文提问) +- ✅ 业务场景作为问题前提 +- ✅ 技术选项的业务影响说明 +- ✅ 量化指标和约束条件 + +**MUST Avoid**: +- ❌ 纯技术选型无业务上下文 +- ❌ 过度抽象的用户体验问题 +- ❌ 脱离话题的通用架构问题 + +### Phase-Specific Requirements + +| Phase | Focus | Key Requirements | +|-------|-------|------------------| +| 1 | 意图理解 | Reference topic keywords, 用户场景、业务约束、优先级 | +| 2 | 角色推荐 | Intelligent analysis (NOT keyword mapping), explain relevance | +| 3 | 角色问题 | Reference Phase 1 keywords, concrete options with trade-offs | +| 4 | 冲突解决 | Reference SPECIFIC Phase 3 choices, explain impact on both roles | + +--- + +## Output & Governance + +### Output Template + +**File**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md` + +```markdown +# [Project] - Confirmed Guidance Specification + +**Metadata**: [timestamp, type, focus, roles] + +## 1. Project Positioning & Goals +**CONFIRMED Objectives**: [from topic + Phase 1] +**CONFIRMED Success Criteria**: [from Phase 1 answers] + +## 2-N. [Role] Decisions +### SELECTED Choices +**[Question topic]**: [User's answer] +- **Rationale**: [From option description] +- **Impact**: [Implications] + +### Cross-Role Considerations +**[Conflict resolved]**: [Resolution from Phase 4] +- **Affected Roles**: [Roles involved] + +## Cross-Role Integration +**CONFIRMED Integration Points**: [API/Data/Auth from multiple roles] + +## Risks & Constraints +**Identified Risks**: [From answers] → Mitigation: [Approach] + +## Next Steps +**⚠️ Automatic Continuation** (when called from auto-parallel): +- auto-parallel assigns agents for role-specific analysis +- Each selected role gets conceptual-planning-agent +- Agents read this guidance-specification.md for context + +## Appendix: Decision Tracking +| Decision ID | Category | Question | Selected | Phase | Rationale | +|-------------|----------|----------|----------|-------|-----------| +| D-001 | Intent | [Q] | [A] | 1 | [Why] | +| D-002 | Roles | [Selected] | [Roles] | 2 | [Why] | +| D-003+ | [Role] | [Q] | [A] | 3 | [Why] | +``` + +### File Structure + +``` +.workflow/active/WFS-[topic]/ +├── workflow-session.json # Metadata ONLY +├── .process/ +│ └── context-package.json # Phase 0 output +└── .brainstorming/ + └── guidance-specification.md # Full guidance content +``` + +### Session Metadata + +```json +{ + "session_id": "WFS-{topic-slug}", + "type": "brainstorming", + "topic": "{original user input}", + "selected_roles": ["system-architect", "ui-designer", "product-manager"], + "phase_completed": "artifacts", + "timestamp": "2025-10-24T10:30:00Z", + "count_parameter": 3 +} +``` + +**⚠️ Rule**: Session JSON stores ONLY metadata. All guidance content goes to guidance-specification.md. + +### Validation Checklist + +- ✅ No interrogative sentences (use CONFIRMED/SELECTED) +- ✅ Every decision traceable to user answer +- ✅ Cross-role conflicts resolved or documented +- ✅ Next steps concrete and specific +- ✅ No content duplication between .json and .md + +### Update Mechanism + +``` +IF guidance-specification.md EXISTS: + Prompt: "Regenerate completely / Update sections / Cancel" +ELSE: + Run full Phase 0-5 flow +``` + +### Governance Rules + +- All decisions MUST use CONFIRMED/SELECTED (NO "?" in decision sections) +- Every decision MUST trace to user answer +- Conflicts MUST be resolved (not marked "TBD") +- Next steps MUST be actionable +- Topic preserved as authoritative reference + +**CRITICAL**: Guidance is single source of truth for downstream phases. Ambiguity violates governance. + +--- + +## Post-Phase Update + +After Phase 1 completes: +- **Output Created**: `guidance-specification.md`, `workflow-session.json` +- **Data Parsed**: `selected_roles[]`, `session_id` +- **Next Action**: Auto-continue to Phase 2 (parallel role analysis) +- **TodoWrite**: Collapse Phase 1 sub-tasks to "Phase 1: Interactive Framework Generation: completed" diff --git a/.claude/skills/workflow-brainstorm-auto-parallel/phases/02-parallel-role-analysis.md b/.claude/skills/workflow-brainstorm-auto-parallel/phases/02-parallel-role-analysis.md new file mode 100644 index 00000000..04f68b97 --- /dev/null +++ b/.claude/skills/workflow-brainstorm-auto-parallel/phases/02-parallel-role-analysis.md @@ -0,0 +1,704 @@ +# Phase 2: Parallel Role Analysis + +> 来源: `commands/workflow/brainstorm/role-analysis.md` + +## Overview + +**Unified command for generating and updating role-specific analysis** with interactive context gathering, framework alignment, and incremental update support. Replaces 9 individual role commands with single parameterized workflow. + +### Core Function +- **Multi-Role Support**: Single command supports all 9 brainstorming roles +- **Interactive Context**: Dynamic question generation based on role and framework +- **Incremental Updates**: Merge new insights into existing analyses +- **Framework Alignment**: Address guidance-specification.md discussion points +- **Agent Delegation**: Use conceptual-planning-agent with role-specific templates + +### Supported Roles + +| Role ID | Title | Focus Area | Context Questions | +|---------|-------|------------|-------------------| +| `ux-expert` | UX专家 | User research, information architecture, user journey | 4 | +| `ui-designer` | UI设计师 | Visual design, high-fidelity mockups, design systems | 4 | +| `system-architect` | 系统架构师 | Technical architecture, scalability, integration patterns | 5 | +| `product-manager` | 产品经理 | Product strategy, roadmap, prioritization | 4 | +| `product-owner` | 产品负责人 | Backlog management, user stories, acceptance criteria | 4 | +| `scrum-master` | 敏捷教练 | Process facilitation, impediment removal, team dynamics | 3 | +| `subject-matter-expert` | 领域专家 | Domain knowledge, business rules, compliance | 4 | +| `data-architect` | 数据架构师 | Data models, storage strategies, data flow | 5 | +| `api-designer` | API设计师 | API contracts, versioning, integration patterns | 4 | + +--- + +## Usage + +```bash +# Generate new analysis with interactive context +role-analysis ux-expert + +# Generate with existing framework + context questions +role-analysis system-architect --session WFS-xxx --include-questions + +# Update existing analysis (incremental merge) +role-analysis ui-designer --session WFS-xxx --update + +# Quick generation (skip interactive context) +role-analysis product-manager --session WFS-xxx --skip-questions +``` + +--- + +## Execution Protocol + +### Phase 1: Detection & Validation + +**Step 1.1: Role Validation** +```bash +VALIDATE role_name IN [ + ux-expert, ui-designer, system-architect, product-manager, + product-owner, scrum-master, subject-matter-expert, + data-architect, api-designer +] +IF invalid: + ERROR: "Unknown role: {role_name}. Use one of: ux-expert, ui-designer, ..." + EXIT +``` + +**Step 1.2: Session Detection** +```bash +IF --session PROVIDED: + session_id = --session + brainstorm_dir = .workflow/active/{session_id}/.brainstorming/ +ELSE: + FIND .workflow/active/WFS-*/ + IF multiple: + PROMPT user to select + ELSE IF single: + USE existing + ELSE: + ERROR: "No active session. Run Phase 1 (artifacts) first" + EXIT + +VALIDATE brainstorm_dir EXISTS +``` + +**Step 1.3: Framework Detection** +```bash +framework_file = {brainstorm_dir}/guidance-specification.md +IF framework_file EXISTS: + framework_mode = true + LOAD framework_content +ELSE: + WARN: "No framework found - will create standalone analysis" + framework_mode = false +``` + +**Step 1.4: Update Mode Detection** +```bash +existing_analysis = {brainstorm_dir}/{role_name}/analysis*.md +IF --update FLAG OR existing_analysis EXISTS: + update_mode = true + IF --update NOT PROVIDED: + ASK: "Analysis exists. Update or regenerate?" + OPTIONS: ["Incremental update", "Full regenerate", "Cancel"] +ELSE: + update_mode = false +``` + +### Phase 2: Interactive Context Gathering + +**Trigger Conditions**: +- Default: Always ask unless `--skip-questions` provided +- `--include-questions`: Force context gathering even if analysis exists +- `--skip-questions`: Skip all interactive questions + +**Step 2.1: Load Role Configuration** +```javascript +const roleConfig = { + 'ux-expert': { + title: 'UX专家', + focus_area: 'User research, information architecture, user journey', + question_categories: ['User Intent', 'Requirements', 'UX'], + question_count: 4, + template: '~/.claude/workflows/cli-templates/planning-roles/ux-expert.md' + }, + 'ui-designer': { + title: 'UI设计师', + focus_area: 'Visual design, high-fidelity mockups, design systems', + question_categories: ['Requirements', 'UX', 'Feasibility'], + question_count: 4, + template: '~/.claude/workflows/cli-templates/planning-roles/ui-designer.md' + }, + 'system-architect': { + title: '系统架构师', + focus_area: 'Technical architecture, scalability, integration patterns', + question_categories: ['Scale & Performance', 'Technical Constraints', 'Architecture Complexity', 'Non-Functional Requirements'], + question_count: 5, + template: '~/.claude/workflows/cli-templates/planning-roles/system-architect.md' + }, + 'product-manager': { + title: '产品经理', + focus_area: 'Product strategy, roadmap, prioritization', + question_categories: ['User Intent', 'Requirements', 'Process'], + question_count: 4, + template: '~/.claude/workflows/cli-templates/planning-roles/product-manager.md' + }, + 'product-owner': { + title: '产品负责人', + focus_area: 'Backlog management, user stories, acceptance criteria', + question_categories: ['Requirements', 'Decisions', 'Process'], + question_count: 4, + template: '~/.claude/workflows/cli-templates/planning-roles/product-owner.md' + }, + 'scrum-master': { + title: '敏捷教练', + focus_area: 'Process facilitation, impediment removal, team dynamics', + question_categories: ['Process', 'Risk', 'Decisions'], + question_count: 3, + template: '~/.claude/workflows/cli-templates/planning-roles/scrum-master.md' + }, + 'subject-matter-expert': { + title: '领域专家', + focus_area: 'Domain knowledge, business rules, compliance', + question_categories: ['Requirements', 'Feasibility', 'Terminology'], + question_count: 4, + template: '~/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md' + }, + 'data-architect': { + title: '数据架构师', + focus_area: 'Data models, storage strategies, data flow', + question_categories: ['Architecture', 'Scale & Performance', 'Technical Constraints', 'Feasibility'], + question_count: 5, + template: '~/.claude/workflows/cli-templates/planning-roles/data-architect.md' + }, + 'api-designer': { + title: 'API设计师', + focus_area: 'API contracts, versioning, integration patterns', + question_categories: ['Architecture', 'Requirements', 'Feasibility', 'Decisions'], + question_count: 4, + template: '~/.claude/workflows/cli-templates/planning-roles/api-designer.md' + } +}; + +config = roleConfig[role_name]; +``` + +**Step 2.2: Generate Role-Specific Questions** + +**9-Category Taxonomy** (from synthesis.md): + +| Category | Focus | Example Question Pattern | +|----------|-------|--------------------------| +| User Intent | 用户目标 | "该分析的核心目标是什么?" | +| Requirements | 需求细化 | "需求的优先级如何排序?" | +| Architecture | 架构决策 | "技术栈的选择考量?" | +| UX | 用户体验 | "交互复杂度的取舍?" | +| Feasibility | 可行性 | "资源约束下的实现范围?" | +| Risk | 风险管理 | "风险容忍度是多少?" | +| Process | 流程规范 | "开发迭代的节奏?" | +| Decisions | 决策确认 | "冲突的解决方案?" | +| Terminology | 术语统一 | "统一使用哪个术语?" | +| Scale & Performance | 性能扩展 | "预期的负载和性能要求?" | +| Technical Constraints | 技术约束 | "现有技术栈的限制?" | +| Architecture Complexity | 架构复杂度 | "架构的复杂度权衡?" | +| Non-Functional Requirements | 非功能需求 | "可用性和可维护性要求?" | + +**Question Generation Algorithm**: +```javascript +async function generateQuestions(role_name, framework_content) { + const config = roleConfig[role_name]; + const questions = []; + + // Parse framework for keywords + const keywords = extractKeywords(framework_content); + + // Generate category-specific questions + for (const category of config.question_categories) { + const question = generateCategoryQuestion(category, keywords, role_name); + questions.push(question); + } + + return questions.slice(0, config.question_count); +} +``` + +**Step 2.3: Multi-Round Question Execution** + +```javascript +const BATCH_SIZE = 4; +const user_context = {}; + +for (let i = 0; i < questions.length; i += BATCH_SIZE) { + const batch = questions.slice(i, i + BATCH_SIZE); + const currentRound = Math.floor(i / BATCH_SIZE) + 1; + const totalRounds = Math.ceil(questions.length / BATCH_SIZE); + + console.log(`\n[Round ${currentRound}/${totalRounds}] ${config.title} 上下文询问\n`); + + AskUserQuestion({ + questions: batch.map(q => ({ + question: q.question, + header: q.category.substring(0, 12), + multiSelect: false, + options: q.options.map(opt => ({ + label: opt.label, + description: opt.description + })) + })) + }); + + // Store responses before next round + for (const answer of responses) { + user_context[answer.question] = { + answer: answer.selected, + category: answer.category, + timestamp: new Date().toISOString() + }; + } +} + +// Save context to file +Write( + `${brainstorm_dir}/${role_name}/${role_name}-context.md`, + formatUserContext(user_context) +); +``` + +**Question Quality Rules** (from artifacts.md): + +**MUST Include**: +- ✅ All questions in Chinese (用中文提问) +- ✅ 业务场景作为问题前提 +- ✅ 技术选项的业务影响说明 +- ✅ 量化指标和约束条件 + +**MUST Avoid**: +- ❌ 纯技术选型无业务上下文 +- ❌ 过度抽象的通用问题 +- ❌ 脱离框架的重复询问 + +### Phase 3: Agent Execution + +**Step 3.1: Load Session Metadata** +```bash +session_metadata = Read(.workflow/active/{session_id}/workflow-session.json) +original_topic = session_metadata.topic +selected_roles = session_metadata.selected_roles +``` + +**Step 3.2: Prepare Agent Context** +```javascript +const agentContext = { + role_name: role_name, + role_config: roleConfig[role_name], + output_location: `${brainstorm_dir}/${role_name}/`, + framework_mode: framework_mode, + framework_path: framework_mode ? `${brainstorm_dir}/guidance-specification.md` : null, + update_mode: update_mode, + user_context: user_context, + original_topic: original_topic, + session_id: session_id +}; +``` + +**Step 3.3: Execute Conceptual Planning Agent** + +**Framework-Based Analysis** (when guidance-specification.md exists): +```javascript +Task( + subagent_type="conceptual-planning-agent", + run_in_background=false, + description=`Generate ${role_name} analysis`, + prompt=` +[FLOW_CONTROL] + +Execute ${role_name} analysis for existing topic framework + +## Context Loading +ASSIGNED_ROLE: ${role_name} +OUTPUT_LOCATION: ${agentContext.output_location} +ANALYSIS_MODE: ${framework_mode ? "framework_based" : "standalone"} +UPDATE_MODE: ${update_mode} + +## Flow Control Steps +1. **load_topic_framework** + - Action: Load structured topic discussion framework + - Command: Read(${agentContext.framework_path}) + - Output: topic_framework_content + +2. **load_role_template** + - Action: Load ${role_name} planning template + - Command: Read(${roleConfig[role_name].template}) + - Output: role_template_guidelines + +3. **load_session_metadata** + - Action: Load session metadata and user intent + - Command: Read(.workflow/active/${session_id}/workflow-session.json) + - Output: session_context + +4. **load_user_context** (if exists) + - Action: Load interactive context responses + - Command: Read(${brainstorm_dir}/${role_name}/${role_name}-context.md) + - Output: user_context_answers + +5. **${update_mode ? 'load_existing_analysis' : 'skip'}** + ${update_mode ? ` + - Action: Load existing analysis for incremental update + - Command: Read(${brainstorm_dir}/${role_name}/analysis.md) + - Output: existing_analysis_content + ` : ''} + +## Analysis Requirements +**Primary Reference**: Original user prompt from workflow-session.json is authoritative +**Framework Source**: Address all discussion points in guidance-specification.md from ${role_name} perspective +**User Context Integration**: Incorporate interactive Q&A responses into analysis +**Role Focus**: ${roleConfig[role_name].focus_area} +**Template Integration**: Apply role template guidelines within framework structure + +## Expected Deliverables +1. **analysis.md** (main document, optionally with analysis-{slug}.md sub-documents) +2. **Framework Reference**: @../guidance-specification.md (if framework_mode) +3. **User Context Reference**: @./${role_name}-context.md (if user context exists) +4. **User Intent Alignment**: Validate against session_context + +## Update Requirements (if UPDATE_MODE) +- **Preserve Structure**: Maintain existing analysis structure +- **Add "Clarifications" Section**: Document new user context with timestamp +- **Merge Insights**: Integrate new perspectives without removing existing content +- **Resolve Conflicts**: If new context contradicts existing analysis, document both and recommend resolution + +## Completion Criteria +- Address each discussion point from guidance-specification.md with ${role_name} expertise +- Provide actionable recommendations from ${role_name} perspective within analysis files +- All output files MUST start with "analysis" prefix (no recommendations.md or other naming) +- Reference framework document using @ notation for integration +- Update workflow-session.json with completion status +` +); +``` + +### Phase 4: Validation & Finalization + +**Step 4.1: Validate Output** +```bash +VERIFY EXISTS: ${brainstorm_dir}/${role_name}/analysis.md +VERIFY CONTAINS: "@../guidance-specification.md" (if framework_mode) +IF user_context EXISTS: + VERIFY CONTAINS: "@./${role_name}-context.md" OR "## Clarifications" section +``` + +**Step 4.2: Update Session Metadata** +```json +{ + "phases": { + "BRAINSTORM": { + "${role_name}": { + "status": "${update_mode ? 'updated' : 'completed'}", + "completed_at": "timestamp", + "framework_addressed": true, + "context_gathered": user_context ? true : false, + "output_location": "${brainstorm_dir}/${role_name}/analysis.md", + "update_history": [ + { + "timestamp": "ISO8601", + "mode": "${update_mode ? 'incremental' : 'initial'}", + "context_questions": question_count + } + ] + } + } + } +} +``` + +**Step 4.3: Completion Report** +```markdown +✅ ${roleConfig[role_name].title} Analysis Complete + +**Output**: ${brainstorm_dir}/${role_name}/analysis.md +**Mode**: ${update_mode ? 'Incremental Update' : 'New Generation'} +**Framework**: ${framework_mode ? '✓ Aligned' : '✗ Standalone'} +**Context Questions**: ${question_count} answered + +${update_mode ? ' +**Changes**: +- Added "Clarifications" section with new user context +- Merged new insights into existing sections +- Resolved conflicts with framework alignment +' : ''} + +**Next Steps**: +${selected_roles.length > 1 ? ` + - Continue with other roles: ${selected_roles.filter(r => r !== role_name).join(', ')} + - Run synthesis: Phase 3 (synthesis integration) +` : ` + - Clarify insights: Phase 3 (synthesis integration) + - Generate plan: workflow-plan/SKILL.md --session ${session_id} +`} +``` + +--- + +## TodoWrite Integration + +### Workflow Progress Tracking + +```javascript +TodoWrite({ + todos: [ + { + content: "Phase 1: Detect session and validate role configuration", + status: "in_progress", + activeForm: "Detecting session and role" + }, + { + content: "Phase 2: Interactive context gathering with AskUserQuestion", + status: "pending", + activeForm: "Gathering user context" + }, + { + content: "Phase 3: Execute conceptual-planning-agent for role analysis", + status: "pending", + activeForm: "Executing agent analysis" + }, + { + content: "Phase 4: Validate output and update session metadata", + status: "pending", + activeForm: "Finalizing and validating" + } + ] +}); +``` + +--- + +## Output Structure + +### Directory Layout + +``` +.workflow/active/WFS-{session}/.brainstorming/ +├── guidance-specification.md # Framework (if exists) +└── {role-name}/ + ├── {role-name}-context.md # Interactive Q&A responses + ├── analysis.md # Main analysis (REQUIRED) + └── analysis-{slug}.md # Section documents (optional, max 5) +``` + +### Analysis Document Structure (New Generation) + +```markdown +# ${roleConfig[role_name].title} Analysis: [Topic from Framework] + +## Framework Reference +**Topic Framework**: @../guidance-specification.md +**Role Focus**: ${roleConfig[role_name].focus_area} +**User Context**: @./${role_name}-context.md + +## User Context Summary +**Context Gathered**: ${question_count} questions answered +**Categories**: ${question_categories.join(', ')} + +${user_context ? formatContextSummary(user_context) : ''} + +## Discussion Points Analysis +[Address each point from guidance-specification.md with ${role_name} expertise] + +### Core Requirements (from framework) +[Role-specific perspective on requirements] + +### Technical Considerations (from framework) +[Role-specific technical analysis] + +### User Experience Factors (from framework) +[Role-specific UX considerations] + +### Implementation Challenges (from framework) +[Role-specific challenges and solutions] + +### Success Metrics (from framework) +[Role-specific metrics and KPIs] + +## ${roleConfig[role_name].title} Specific Recommendations +[Role-specific actionable strategies] + +--- +*Generated by ${role_name} analysis addressing structured framework* +*Context gathered: ${new Date().toISOString()}* +``` + +### Analysis Document Structure (Incremental Update) + +```markdown +# ${roleConfig[role_name].title} Analysis: [Topic] + +## Framework Reference +[Existing content preserved] + +## Clarifications +### Session ${new Date().toISOString().split('T')[0]} +${Object.entries(user_context).map(([q, a]) => ` +- **Q**: ${q} (Category: ${a.category}) + **A**: ${a.answer} +`).join('\n')} + +## User Context Summary +[Updated with new context] + +## Discussion Points Analysis +[Existing content enhanced with new insights] + +[Rest of sections updated based on clarifications] +``` + +--- + +## Integration with Other Phases + +### Called By +- Auto-parallel orchestrator (Phase 2 - parallel role execution) +- Manual invocation for single-role analysis + +### Calls To +- `conceptual-planning-agent` (agent execution) +- `AskUserQuestion` (interactive context gathering) + +### Coordinates With +- Phase 1 (artifacts) - creates framework for role analysis +- Phase 3 (synthesis) - reads role analyses for integration + +--- + +## Quality Assurance + +### Required Analysis Elements +- [ ] Framework discussion points addressed (if framework_mode) +- [ ] User context integrated (if context gathered) +- [ ] Role template guidelines applied +- [ ] Output files follow naming convention (analysis*.md only) +- [ ] Framework reference using @ notation +- [ ] Session metadata updated + +### Context Quality +- [ ] Questions in Chinese with business context +- [ ] Options include technical trade-offs +- [ ] Categories aligned with role focus +- [ ] No generic questions unrelated to framework + +### Update Quality (if update_mode) +- [ ] "Clarifications" section added with timestamp +- [ ] New insights merged without content loss +- [ ] Conflicts documented and resolved +- [ ] Framework alignment maintained + +--- + +## Command Parameters + +### Required Parameters +- `[role-name]`: Role identifier (ux-expert, ui-designer, system-architect, etc.) + +### Optional Parameters +- `--session [session-id]`: Specify brainstorming session (auto-detect if omitted) +- `--update`: Force incremental update mode (auto-detect if analysis exists) +- `--include-questions`: Force context gathering even if analysis exists +- `--skip-questions`: Skip all interactive context gathering +- `--style-skill [package]`: For ui-designer only, load style SKILL package + +### Parameter Combinations + +| Scenario | Command | Behavior | +|----------|---------|----------| +| New analysis | `role-analysis ux-expert` | Generate + ask context questions | +| Quick generation | `role-analysis ux-expert --skip-questions` | Generate without context | +| Update existing | `role-analysis ux-expert --update` | Ask clarifications + merge | +| Force questions | `role-analysis ux-expert --include-questions` | Ask even if exists | +| Specific session | `role-analysis ux-expert --session WFS-xxx` | Target specific session | + +--- + +## Error Handling + +### Invalid Role Name +``` +ERROR: Unknown role: "ui-expert" +Valid roles: ux-expert, ui-designer, system-architect, product-manager, + product-owner, scrum-master, subject-matter-expert, + data-architect, api-designer +``` + +### No Active Session +``` +ERROR: No active brainstorming session found +Run: Phase 1 (artifacts) to create session +``` + +### Missing Framework (with warning) +``` +WARN: No guidance-specification.md found +Generating standalone analysis without framework alignment +Recommend: Run Phase 1 (artifacts) first for better results +``` + +### Agent Execution Failure +``` +ERROR: Conceptual planning agent failed +Check: ${brainstorm_dir}/${role_name}/error.log +Action: Retry with --skip-questions or check framework validity +``` + +--- + +## Advanced Usage + +### Batch Role Generation (via auto-parallel) +```bash +# This is handled by auto-parallel orchestrator +# → Internally calls role-analysis for each selected role in parallel +``` + +### Manual Multi-Role Workflow +```bash +# 1. Create framework (Phase 1) +# Run Phase 1 (artifacts) for topic with --count 3 + +# 2. Generate each role with context +# Execute role-analysis for system-architect --include-questions +# Execute role-analysis for ui-designer --include-questions +# Execute role-analysis for product-manager --include-questions + +# 3. Synthesize insights (Phase 3) +# Run Phase 3 (synthesis) --session WFS-xxx +``` + +### Iterative Refinement +```bash +# Initial generation +# Execute role-analysis for ux-expert + +# User reviews and wants more depth +# Execute role-analysis for ux-expert --update --include-questions +# → Asks clarification questions, merges new insights +``` + +--- + +## Reference Information + +### Role Template Locations +- Templates: `~/.claude/workflows/cli-templates/planning-roles/` +- Format: `{role-name}.md` (e.g., `ux-expert.md`, `system-architect.md`) + +### Context Package +- Location: `.workflow/active/WFS-{session}/.process/context-package.json` +- Used by: `context-search-agent` (Phase 0 of artifacts) +- Contains: Project context, tech stack, conflict risks + +--- + +## Post-Phase Update + +After Phase 2 completes: +- **Output Created**: `[role]/analysis*.md` for each selected role +- **Parallel Execution**: All N roles executed concurrently +- **Next Action**: Auto-continue to Phase 3 (synthesis integration) +- **TodoWrite**: Collapse Phase 2 sub-tasks to "Phase 2: Parallel Role Analysis: completed" diff --git a/.claude/skills/workflow-brainstorm-auto-parallel/phases/03-synthesis-integration.md b/.claude/skills/workflow-brainstorm-auto-parallel/phases/03-synthesis-integration.md new file mode 100644 index 00000000..439ad077 --- /dev/null +++ b/.claude/skills/workflow-brainstorm-auto-parallel/phases/03-synthesis-integration.md @@ -0,0 +1,405 @@ +# Phase 3: Synthesis Integration + +> 来源: `commands/workflow/brainstorm/synthesis.md` + +## Overview + +Six-phase workflow to eliminate ambiguities and enhance conceptual depth in role analyses: + +**Phase 1-2**: Session detection → File discovery → Path preparation +**Phase 3A**: Cross-role analysis agent → Generate recommendations +**Phase 4**: User selects enhancements → User answers clarifications (via AskUserQuestion) +**Phase 5**: Parallel update agents (one per role) +**Phase 6**: Context package update → Metadata update → Completion report + +All user interactions use AskUserQuestion tool (max 4 questions per call, multi-round). + +**Document Flow**: +- Input: `[role]/analysis*.md`, `guidance-specification.md`, session metadata +- Output: Updated `[role]/analysis*.md` with Enhancements + Clarifications sections + +--- + +## Quick Reference + +### Phase Summary + +| Phase | Goal | Executor | Output | +|-------|------|----------|--------| +| 1 | Session detection | Main flow | session_id, brainstorm_dir | +| 2 | File discovery | Main flow | role_analysis_paths | +| 3A | Cross-role analysis | Agent | enhancement_recommendations | +| 4 | User interaction | Main flow + AskUserQuestion | update_plan | +| 5 | Document updates | Parallel agents | Updated analysis*.md | +| 6 | Finalization | Main flow | context-package.json, report | + +### AskUserQuestion Pattern + +```javascript +// Enhancement selection (multi-select) +AskUserQuestion({ + questions: [{ + question: "请选择要应用的改进建议", + header: "改进选择", + multiSelect: true, + options: [ + { label: "EP-001: API Contract", description: "添加详细的请求/响应 schema 定义" }, + { label: "EP-002: User Intent", description: "明确用户需求优先级和验收标准" } + ] + }] +}) + +// Clarification questions (single-select, multi-round) +AskUserQuestion({ + questions: [ + { + question: "MVP 阶段的核心目标是什么?", + header: "用户意图", + multiSelect: false, + options: [ + { label: "快速验证", description: "最小功能集,快速上线获取反馈" }, + { label: "技术壁垒", description: "完善架构,为长期发展打基础" }, + { label: "功能完整", description: "覆盖所有规划功能,延迟上线" } + ] + } + ] +}) +``` + +--- + +## Task Tracking + +```json +[ + {"content": "Detect session and validate analyses", "status": "pending", "activeForm": "Detecting session"}, + {"content": "Discover role analysis file paths", "status": "pending", "activeForm": "Discovering paths"}, + {"content": "Execute analysis agent (cross-role analysis)", "status": "pending", "activeForm": "Executing analysis"}, + {"content": "Present enhancements via AskUserQuestion", "status": "pending", "activeForm": "Selecting enhancements"}, + {"content": "Clarification questions via AskUserQuestion", "status": "pending", "activeForm": "Clarifying"}, + {"content": "Execute parallel update agents", "status": "pending", "activeForm": "Updating documents"}, + {"content": "Update context package and metadata", "status": "pending", "activeForm": "Finalizing"} +] +``` + +--- + +## Execution Phases + +### Phase 1: Discovery & Validation + +1. **Detect Session**: Use `--session` parameter or find `.workflow/active/WFS-*` +2. **Validate Files**: + - `guidance-specification.md` (optional, warn if missing) + - `*/analysis*.md` (required, error if empty) +3. **Load User Intent**: Extract from `workflow-session.json` + +### Phase 2: Role Discovery & Path Preparation + +**Main flow prepares file paths for Agent**: + +1. **Discover Analysis Files**: + - Glob: `.workflow/active/WFS-{session}/.brainstorming/*/analysis*.md` + - Supports: analysis.md + analysis-{slug}.md (max 5) + +2. **Extract Role Information**: + - `role_analysis_paths`: Relative paths + - `participating_roles`: Role names from directories + +3. **Pass to Agent**: session_id, brainstorm_dir, role_analysis_paths, participating_roles + +### Phase 3A: Analysis & Enhancement Agent + +**Agent executes cross-role analysis**: + +```javascript +Task(conceptual-planning-agent, ` +## Agent Mission +Analyze role documents, identify conflicts/gaps, generate enhancement recommendations + +## Input +- brainstorm_dir: ${brainstorm_dir} +- role_analysis_paths: ${role_analysis_paths} +- participating_roles: ${participating_roles} + +## Flow Control Steps +1. load_session_metadata → Read workflow-session.json +2. load_role_analyses → Read all analysis files +3. cross_role_analysis → Identify consensus, conflicts, gaps, ambiguities +4. generate_recommendations → Format as EP-001, EP-002, ... + +## Output Format +[ + { + "id": "EP-001", + "title": "API Contract Specification", + "affected_roles": ["system-architect", "api-designer"], + "category": "Architecture", + "current_state": "High-level API descriptions", + "enhancement": "Add detailed contract definitions", + "rationale": "Enables precise implementation", + "priority": "High" + } +] +`) +``` + +### Phase 4: User Interaction + +**All interactions via AskUserQuestion (Chinese questions)** + +#### Step 1: Enhancement Selection + +```javascript +// If enhancements > 4, split into multiple rounds +const enhancements = [...]; // from Phase 3A +const BATCH_SIZE = 4; + +for (let i = 0; i < enhancements.length; i += BATCH_SIZE) { + const batch = enhancements.slice(i, i + BATCH_SIZE); + + AskUserQuestion({ + questions: [{ + question: `请选择要应用的改进建议 (第${Math.floor(i/BATCH_SIZE)+1}轮)`, + header: "改进选择", + multiSelect: true, + options: batch.map(ep => ({ + label: `${ep.id}: ${ep.title}`, + description: `影响: ${ep.affected_roles.join(', ')} | ${ep.enhancement}` + })) + }] + }) + + // Store selections before next round +} + +// User can also skip: provide "跳过" option +``` + +#### Step 2: Clarification Questions + +```javascript +// Generate questions based on 9-category taxonomy scan +// Categories: User Intent, Requirements, Architecture, UX, Feasibility, Risk, Process, Decisions, Terminology + +const clarifications = [...]; // from analysis +const BATCH_SIZE = 4; + +for (let i = 0; i < clarifications.length; i += BATCH_SIZE) { + const batch = clarifications.slice(i, i + BATCH_SIZE); + const currentRound = Math.floor(i / BATCH_SIZE) + 1; + const totalRounds = Math.ceil(clarifications.length / BATCH_SIZE); + + AskUserQuestion({ + questions: batch.map(q => ({ + question: q.question, + header: q.category.substring(0, 12), + multiSelect: false, + options: q.options.map(opt => ({ + label: opt.label, + description: opt.description + })) + })) + }) + + // Store answers before next round +} +``` + +### Question Guidelines + +**Target**: 开发者(理解技术但需要从用户需求出发) + +**Question Structure**: `[跨角色分析发现] + [需要澄清的决策点]` +**Option Structure**: `标签:[具体方案] + 说明:[业务影响] + [技术权衡]` + +**9-Category Taxonomy**: + +| Category | Focus | Example Question Pattern | +|----------|-------|--------------------------| +| User Intent | 用户目标 | "MVP阶段核心目标?" + 验证/壁垒/完整性 | +| Requirements | 需求细化 | "功能优先级如何排序?" + 核心/增强/可选 | +| Architecture | 架构决策 | "技术栈选择考量?" + 熟悉度/先进性/成熟度 | +| UX | 用户体验 | "交互复杂度取舍?" + 简洁/丰富/渐进 | +| Feasibility | 可行性 | "资源约束下的范围?" + 最小/标准/完整 | +| Risk | 风险管理 | "风险容忍度?" + 保守/平衡/激进 | +| Process | 流程规范 | "迭代节奏?" + 快速/稳定/灵活 | +| Decisions | 决策确认 | "冲突解决方案?" + 方案A/方案B/折中 | +| Terminology | 术语统一 | "统一使用哪个术语?" + 术语A/术语B | + +**Quality Rules**: + +**MUST Include**: +- ✅ All questions in Chinese (用中文提问) +- ✅ 基于跨角色分析的具体发现 +- ✅ 选项包含业务影响说明 +- ✅ 解决实际的模糊点或冲突 + +**MUST Avoid**: +- ❌ 与角色分析无关的通用问题 +- ❌ 重复已在 artifacts 阶段确认的内容 +- ❌ 过于细节的实现级问题 + +#### Step 3: Build Update Plan + +```javascript +update_plan = { + "role1": { + "enhancements": ["EP-001", "EP-003"], + "clarifications": [ + {"question": "...", "answer": "...", "category": "..."} + ] + }, + "role2": { + "enhancements": ["EP-002"], + "clarifications": [...] + } +} +``` + +### Phase 5: Parallel Document Update Agents + +**Execute in parallel** (one agent per role): + +```javascript +// Single message with multiple Task calls for parallelism +Task(conceptual-planning-agent, ` +## Agent Mission +Apply enhancements and clarifications to ${role} analysis + +## Input +- role: ${role} +- analysis_path: ${brainstorm_dir}/${role}/analysis.md +- enhancements: ${role_enhancements} +- clarifications: ${role_clarifications} +- original_user_intent: ${intent} + +## Flow Control Steps +1. load_current_analysis → Read analysis file +2. add_clarifications_section → Insert Q&A section +3. apply_enhancements → Integrate into relevant sections +4. resolve_contradictions → Remove conflicts +5. enforce_terminology → Align terminology +6. validate_intent → Verify alignment with user intent +7. write_updated_file → Save changes + +## Output +Updated ${role}/analysis.md +`) +``` + +**Agent Characteristics**: +- **Isolation**: Each agent updates exactly ONE role (parallel safe) +- **Dependencies**: Zero cross-agent dependencies +- **Validation**: All updates must align with original_user_intent + +### Phase 6: Finalization + +#### Step 1: Update Context Package + +```javascript +// Sync updated analyses to context-package.json +const context_pkg = Read(".workflow/active/WFS-{session}/.process/context-package.json") + +// Update guidance-specification if exists +// Update synthesis-specification if exists +// Re-read all role analysis files +// Update metadata timestamps + +Write(context_pkg_path, JSON.stringify(context_pkg)) +``` + +#### Step 2: Update Session Metadata + +```json +{ + "phases": { + "BRAINSTORM": { + "status": "clarification_completed", + "clarification_completed": true, + "completed_at": "timestamp", + "participating_roles": [...], + "clarification_results": { + "enhancements_applied": ["EP-001", "EP-002"], + "questions_asked": 3, + "categories_clarified": ["Architecture", "UX"], + "roles_updated": ["role1", "role2"] + }, + "quality_metrics": { + "user_intent_alignment": "validated", + "ambiguity_resolution": "complete", + "terminology_consistency": "enforced" + } + } + } +} +``` + +#### Step 3: Completion Report + +```markdown +## ✅ Clarification Complete + +**Enhancements Applied**: EP-001, EP-002, EP-003 +**Questions Answered**: 3/5 +**Roles Updated**: role1, role2, role3 + +### Next Steps +✅ PROCEED: Planning workflow (`workflow-plan/SKILL.md`) --session WFS-{session-id} +``` + +--- + +## Output + +**Location**: `.workflow/active/WFS-{session}/.brainstorming/[role]/analysis*.md` + +**Updated Structure**: +```markdown +## Clarifications +### Session {date} +- **Q**: {question} (Category: {category}) + **A**: {answer} + +## {Existing Sections} +{Refined content based on clarifications} +``` + +**Changes**: +- User intent validated/corrected +- Requirements more specific/measurable +- Architecture with rationale +- Ambiguities resolved, placeholders removed +- Consistent terminology + +--- + +## Quality Checklist + +**Content**: +- ✅ All role analyses loaded/analyzed +- ✅ Cross-role analysis (consensus, conflicts, gaps) +- ✅ 9-category ambiguity scan +- ✅ Questions prioritized + +**Analysis**: +- ✅ User intent validated +- ✅ Cross-role synthesis complete +- ✅ Ambiguities resolved +- ✅ Terminology consistent + +**Documents**: +- ✅ Clarifications section formatted +- ✅ Sections reflect answers +- ✅ No placeholders (TODO/TBD) +- ✅ Valid Markdown + +--- + +## Post-Phase Update + +After Phase 3 completes: +- **Output Created**: `synthesis-specification.md`, updated role `analysis*.md` files +- **Cross-Role Integration**: All role insights synthesized and conflicts resolved +- **Next Action**: Workflow complete, recommend planning workflow (`workflow-plan/SKILL.md`) --session {session_id} +- **TodoWrite**: Collapse Phase 3 sub-tasks to "Phase 3: Synthesis Integration: completed" diff --git a/.codex/skills/workflow-brainstorm-auto-parallel/SKILL.md b/.codex/skills/workflow-brainstorm-auto-parallel/SKILL.md new file mode 100644 index 00000000..f43566dc --- /dev/null +++ b/.codex/skills/workflow-brainstorm-auto-parallel/SKILL.md @@ -0,0 +1,328 @@ +--- +name: workflow-brainstorm-auto-parallel +description: Parallel brainstorming automation with dynamic role selection and concurrent execution across multiple perspectives. Triggers on "workflow:brainstorm:auto-parallel". +allowed-tools: spawn_agent, wait, send_input, close_agent, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep +--- + +# Workflow Brainstorm Auto-Parallel + +Parallel brainstorming automation orchestrating interactive framework generation, concurrent multi-role analysis, and synthesis integration to produce comprehensive guidance specifications. + +## Architecture Overview + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ Auto-Parallel Orchestrator (SKILL.md) │ +│ → Pure coordinator: Execute phases, parse outputs, manage agents│ +└───────────────┬─────────────────────────────────────────────────┘ + │ + ┌───────────┼───────────┬───────────┐ + ↓ ↓ ↓ ↓ +┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ +│ Phase 0 │ │ Phase 1 │ │ Phase 2 │ │ Phase 3 │ +│ Parse │ │Framework│ │Parallel │ │Synthesis│ +│ Params │ │Generate │ │ Roles │ │Integrate│ +└─────────┘ └─────────┘ └─────────┘ └─────────┘ + ↓ ↓ ↓ ↓ + count, guidance- N role synthesis- +style-skill specification analyses specification +``` + +## Key Design Principles + +1. **Pure Orchestrator**: Execute phases in sequence (Phase 1, 3 sequential; Phase 2 parallel) +2. **Auto-Continue**: All phases run autonomously without user intervention between phases +3. **Subagent Lifecycle**: Explicit lifecycle management with spawn_agent → wait → close_agent +4. **Progressive Phase Loading**: Phase docs are read on-demand when phase executes +5. **Parallel Execution**: Phase 2 launches N role agents concurrently +6. **Role Path Loading**: Subagent roles loaded via path reference in MANDATORY FIRST STEPS + +## Auto Mode + +When `--yes` or `-y`: Auto-select recommended roles, skip all clarification questions, use default answers. + +## Execution Flow + +``` +Parameter Parsing: + ├─ Extract --count N (default: 3, max: 9) + ├─ Extract --style-skill package-name (optional, for ui-designer) + └─ Validate style SKILL package exists + +Phase 1: Interactive Framework Generation + └─ Ref: phases/01-interactive-framework.md + ├─ Sub-phases: Phase 0-5 (Context → Topic → Roles → Questions → Conflicts → Spec) + ├─ Output: guidance-specification.md + workflow-session.json + └─ Parse: selected_roles[], session_id + +Phase 2: Parallel Role Analysis + └─ Ref: phases/02-parallel-role-analysis.md + ├─ Spawn N conceptual-planning-agent (concurrent execution) + ├─ For each role: Execute framework-based analysis + ├─ Optional: ui-designer appends --style-skill if provided + ├─ Lifecycle: spawn_agent → batch wait → close_agent + └─ Output: [role]/analysis*.md (one per role) + +Phase 3: Synthesis Integration + └─ Ref: phases/03-synthesis-integration.md + ├─ Spawn cross-role analysis agent + ├─ User interaction: Enhancement selection + clarifications + ├─ Spawn parallel update agents (one per role) + ├─ Lifecycle: spawn_agent → wait → close_agent for each agent + └─ Output: synthesis-specification.md + updated analyses + +Return: + └─ Summary with session info and next steps +``` + +**Phase Reference Documents** (read on-demand when phase executes): + +| Phase | Document | Purpose | +|-------|----------|---------| +| 1 | [phases/01-interactive-framework.md](phases/01-interactive-framework.md) | Interactive clarification generating confirmed guidance specification through role-based analysis | +| 2 | [phases/02-parallel-role-analysis.md](phases/02-parallel-role-analysis.md) | Unified role-specific analysis generation with interactive context gathering and concurrent execution | +| 3 | [phases/03-synthesis-integration.md](phases/03-synthesis-integration.md) | Cross-role synthesis integration with intelligent Q&A and targeted updates | + +## Core Rules + +1. **Start Immediately**: First action is parameter parsing +2. **No Preliminary Analysis**: Do not analyze topic before Phase 1 - artifacts handles all analysis +3. **Parse Every Output**: Extract selected_roles from workflow-session.json after Phase 1 +4. **Auto-Continue**: Execute next pending phase automatically after previous completes +5. **Track Progress**: Phase execution state managed through workflow-session.json +6. **⚠️ CRITICAL: DO NOT STOP**: Continuous multi-phase workflow. After completing each phase, immediately proceed to next +7. **Parallel Execution**: Phase 2 spawns multiple agent tasks simultaneously for concurrent execution +8. **Progressive Phase Loading**: Read phase docs ONLY when that phase is about to execute +9. **Explicit Lifecycle**: Always close_agent after wait completes to free resources + +## Usage + +```bash +workflow:brainstorm:auto-parallel "" [--count N] [--style-skill package-name] +``` + +**Recommended Structured Format**: +```bash +workflow:brainstorm:auto-parallel "GOAL: [objective] SCOPE: [boundaries] CONTEXT: [background]" [--count N] [--style-skill package-name] +``` + +**Parameters**: +- `topic` (required): Topic or challenge description (structured format recommended) +- `--count N` (optional): Number of roles to select (default: 3, max: 9) +- `--style-skill package-name` (optional): Style SKILL package to load for ui-designer (located at `.codex/skills/style-{package-name}/`) + +## Data Flow + +### Phase 0 → Phase 1 + +**Input**: +- `topic`: User-provided topic or challenge description +- `count`: Number of roles to select (parsed from --count parameter) +- `style_skill_package`: Style SKILL package name (parsed from --style-skill parameter) + +**Output**: None (in-memory variables) + +### Phase 1 → Phase 2 + +**Input**: `topic`, `count`, `style_skill_package` + +**Output**: +- `session_id`: Workflow session identifier (WFS-{topic-slug}) +- `selected_roles[]`: Array of selected role names +- `guidance-specification.md`: Framework content +- `workflow-session.json`: Session metadata + +**Parsing**: +```javascript +// Read workflow-session.json after Phase 1 +const session_data = Read(".workflow/active/WFS-{topic}/workflow-session.json"); +const selected_roles = session_data.selected_roles; +const session_id = session_data.session_id; +const style_skill_package = session_data.style_skill_package || null; +``` + +### Phase 2 → Phase 3 + +**Input**: `session_id`, `selected_roles[]`, `style_skill_package` + +**Output**: +- `[role]/analysis*.md`: One analysis per selected role +- `.superdesign/design_iterations/`: UI design artifacts (if --style-skill provided) + +**Validation**: +```javascript +// Verify all role analyses created +for (const role of selected_roles) { + const analysis_path = `${brainstorm_dir}/${role}/analysis.md`; + if (!exists(analysis_path)) { + ERROR: `Missing analysis for ${role}`; + } +} +``` + +### Phase 3 → Completion + +**Input**: `session_id`, all role analyses, guidance-specification.md + +**Output**: +- `synthesis-specification.md`: Integrated cross-role analysis +- Updated `[role]/analysis*.md` with clarifications + +**Validation**: +```javascript +const synthesis_path = `${brainstorm_dir}/synthesis-specification.md`; +if (!exists(synthesis_path)) { + ERROR: "Synthesis generation failed"; +} +``` + +## Subagent API Reference + +### spawn_agent + +Create a new subagent with task assignment. + +```javascript +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). + +```javascript +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 +} + +// Check completion status +if (result.status[agentId].completed) { + const output = result.status[agentId].completed; +} +``` + +### send_input + +Continue interaction with active subagent (for clarification or follow-up). + +```javascript +send_input({ + id: agentId, + message: ` +## CLARIFICATION ANSWERS +${answers} + +## NEXT STEP +Continue with analysis generation. +` +}) +``` + +### close_agent + +Clean up subagent resources (irreversible). + +```javascript +close_agent({ id: agentId }) +``` + +## Session Management + +**⚡ FIRST ACTION**: Check `.workflow/active/` for existing sessions before Phase 1 + +**Multiple Sessions Support**: +- Different Codex instances can have different brainstorming sessions +- If multiple sessions found, prompt user to select +- If single session found, use it +- If no session exists, create `WFS-[topic-slug]` + +**Session Continuity**: +- MUST use selected session for all phases +- Each role's context stored in session directory +- Session isolation: Each session maintains independent state + +## Output Structure + +**Phase 1 Output**: +- `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md` (framework content) +- `.workflow/active/WFS-{topic}/workflow-session.json` (metadata: selected_roles[], topic, timestamps, style_skill_package) + +**Phase 2 Output**: +- `.workflow/active/WFS-{topic}/.brainstorming/{role}/analysis.md` (one per role) +- `.superdesign/design_iterations/` (ui-designer artifacts, if --style-skill provided) + +**Phase 3 Output**: +- `.workflow/active/WFS-{topic}/.brainstorming/synthesis-specification.md` (integrated analysis) +- Updated `[role]/analysis*.md` with Enhancements + Clarifications sections + +**⚠️ Storage Separation**: Guidance content in .md files, metadata in .json (no duplication) +**⚠️ Style References**: When --style-skill provided, workflow-session.json stores style_skill_package name, ui-designer loads from `.codex/skills/style-{package-name}/` + +## Available Roles + +- data-architect (数据架构师) +- product-manager (产品经理) +- product-owner (产品负责人) +- scrum-master (敏捷教练) +- subject-matter-expert (领域专家) +- system-architect (系统架构师) +- test-strategist (测试策略师) +- ui-designer (UI 设计师) +- ux-expert (UX 专家) + +**Role Selection**: Handled by Phase 1 (artifacts) - intelligent recommendation + user selection + +## Error Handling + +- **Role selection failure**: Phase 1 defaults to product-manager with explanation +- **Agent execution failure**: Agent-specific retry with minimal dependencies +- **Template loading issues**: Agent handles graceful degradation +- **Synthesis conflicts**: Phase 3 highlights disagreements without resolution +- **Context overflow protection**: Per-role limits enforced by conceptual-planning-agent +- **Agent lifecycle errors**: Ensure close_agent in error paths to prevent resource leaks + +## Reference Information + +**File Structure**: +``` +.workflow/active/WFS-[topic]/ +├── workflow-session.json # Session metadata ONLY +└── .brainstorming/ + ├── guidance-specification.md # Framework (Phase 1) + ├── {role}/ + │ ├── analysis.md # Main document (with optional @references) + │ └── analysis-{slug}.md # Section documents (max 5) + └── synthesis-specification.md # Integration (Phase 3) +``` + +**Next Steps** (returned to user): +``` +Brainstorming complete for session: {sessionId} +Roles analyzed: {count} +Synthesis: .workflow/active/WFS-{topic}/.brainstorming/synthesis-specification.md + +✅ Next Steps: +1. workflow:plan --session {sessionId} # Generate implementation plan +``` diff --git a/.codex/skills/workflow-brainstorm-auto-parallel/phases/01-interactive-framework.md b/.codex/skills/workflow-brainstorm-auto-parallel/phases/01-interactive-framework.md new file mode 100644 index 00000000..7d0570c0 --- /dev/null +++ b/.codex/skills/workflow-brainstorm-auto-parallel/phases/01-interactive-framework.md @@ -0,0 +1,456 @@ +## Overview + +Seven-phase workflow: **Context collection** → **Topic analysis** → **Role selection** → **Role questions** → **Conflict resolution** → **Final check** → **Generate specification** + +All user interactions use AskUserQuestion tool (max 4 questions per call, multi-round). + +**Input**: `"GOAL: [objective] SCOPE: [boundaries] CONTEXT: [background]" [--count N]` +**Output**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md` +**Core Principle**: Questions dynamically generated from project context + topic keywords, NOT generic templates + +**Parameters**: +- `topic` (required): Topic or challenge description (structured format recommended) +- `--count N` (optional): Number of roles to select (system recommends N+2 options, default: 3) + +--- + +## Quick Reference + +### Phase Summary + +| Phase | Goal | AskUserQuestion | Storage | +|-------|------|-----------------|---------| +| 0 | Context collection | - | context-package.json | +| 1 | Topic analysis | 2-4 questions | intent_context | +| 2 | Role selection | 1 multi-select | selected_roles | +| 3 | Role questions | 3-4 per role | role_decisions[role] | +| 4 | Conflict resolution | max 4 per round | cross_role_decisions | +| 4.5 | Final check | progressive rounds | additional_decisions | +| 5 | Generate spec | - | guidance-specification.md | + +### AskUserQuestion Pattern + +```javascript +// Single-select (Phase 1, 3, 4) +AskUserQuestion({ + questions: [ + { + question: "{问题文本}", + header: "{短标签}", // max 12 chars + multiSelect: false, + options: [ + { label: "{选项}", description: "{说明和影响}" }, + { label: "{选项}", description: "{说明和影响}" }, + { label: "{选项}", description: "{说明和影响}" } + ] + } + // ... max 4 questions per call + ] +}) + +// Multi-select (Phase 2) +AskUserQuestion({ + questions: [{ + question: "请选择 {count} 个角色", + header: "角色选择", + multiSelect: true, + options: [/* max 4 options per call */] + }] +}) +``` + +### Multi-Round Execution + +```javascript +const BATCH_SIZE = 4; +for (let i = 0; i < allQuestions.length; i += BATCH_SIZE) { + const batch = allQuestions.slice(i, i + BATCH_SIZE); + AskUserQuestion({ questions: batch }); + // Store responses before next round +} +``` + +--- + +## Session Management + +- Check `.workflow/active/` for existing sessions +- Multiple → Prompt selection | Single → Use it | None → Create `WFS-[topic-slug]` +- Parse `--count N` parameter (default: 3) +- Store decisions in `workflow-session.json` + +--- + +## Execution Phases + +### Phase 0: Context Collection + +**Goal**: Gather project context BEFORE user interaction + +**Steps**: +1. Check if `context-package.json` exists → Skip if valid +2. Invoke `context-search-agent` (BRAINSTORM MODE - lightweight) +3. Output: `.workflow/active/WFS-{session-id}/.process/context-package.json` + +**Graceful Degradation**: If agent fails, continue to Phase 1 without context + +```javascript +// Spawn context-search-agent +const contextAgentId = spawn_agent({ + message: ` +## TASK ASSIGNMENT + +### MANDATORY FIRST STEPS (Agent Execute) +1. **Read role definition**: ~/.codex/agents/context-search-agent.md (MUST read first) +2. Read: .workflow/project-tech.json +3. Read: .workflow/project-guidelines.json + +--- + +## Task Objective +Execute context-search-agent in BRAINSTORM MODE (Phase 1-2 only). + +## Assigned Context +- **Session**: ${session_id} +- **Task**: ${task_description} +- **Output**: .workflow/${session_id}/.process/context-package.json + +## Required Output Fields +metadata, project_context, assets, dependencies, conflict_detection +` +}); + +// Wait for completion +const contextResult = wait({ + ids: [contextAgentId], + timeout_ms: 300000 // 5 minutes +}); + +// Clean up agent +close_agent({ id: contextAgentId }); + +// Check result +if (contextResult.timed_out) { + console.warn("Context gathering timed out, continuing without context"); +} +``` + +### Phase 1: Topic Analysis + +**Goal**: Extract keywords/challenges enriched by Phase 0 context + +**Steps**: +1. Load Phase 0 context (tech_stack, modules, conflict_risk) +2. Deep topic analysis (entities, challenges, constraints, metrics) +3. Generate 2-4 context-aware probing questions +4. AskUserQuestion → Store to `session.intent_context` + +**Example**: +```javascript +AskUserQuestion({ + questions: [ + { + question: "实时协作平台的主要技术挑战?", + header: "核心挑战", + multiSelect: false, + options: [ + { label: "实时数据同步", description: "100+用户同时在线,状态同步复杂度高" }, + { label: "可扩展性架构", description: "用户规模增长时的系统扩展能力" }, + { label: "冲突解决机制", description: "多用户同时编辑的冲突处理策略" } + ] + }, + { + question: "MVP阶段最关注的指标?", + header: "优先级", + multiSelect: false, + options: [ + { label: "功能完整性", description: "实现所有核心功能" }, + { label: "用户体验", description: "流畅的交互体验和响应速度" }, + { label: "系统稳定性", description: "高可用性和数据一致性" } + ] + } + ] +}) +``` + +**⚠️ CRITICAL**: Questions MUST reference topic keywords. Generic "Project type?" violates dynamic generation. + +### Phase 2: Role Selection + +**Goal**: User selects roles from intelligent recommendations + +**Available Roles**: data-architect, product-manager, product-owner, scrum-master, subject-matter-expert, system-architect, test-strategist, ui-designer, ux-expert + +**Steps**: +1. Analyze Phase 1 keywords → Recommend count+2 roles with rationale +2. AskUserQuestion (multiSelect=true) → Store to `session.selected_roles` +3. If count+2 > 4, split into multiple rounds + +**Example**: +```javascript +AskUserQuestion({ + questions: [{ + question: "请选择 3 个角色参与头脑风暴分析", + header: "角色选择", + multiSelect: true, + options: [ + { label: "system-architect", description: "实时同步架构设计和技术选型" }, + { label: "ui-designer", description: "协作界面用户体验和状态展示" }, + { label: "product-manager", description: "功能优先级和MVP范围决策" }, + { label: "data-architect", description: "数据同步模型和存储方案设计" } + ] + }] +}) +``` + +**⚠️ CRITICAL**: User MUST interact. NEVER auto-select without confirmation. + +### Phase 3: Role-Specific Questions + +**Goal**: Generate deep questions mapping role expertise to Phase 1 challenges + +**Algorithm**: +1. FOR each selected role: + - Map Phase 1 challenges to role domain + - Generate 3-4 questions (implementation depth, trade-offs, edge cases) + - AskUserQuestion per role → Store to `session.role_decisions[role]` +2. Process roles sequentially (one at a time for clarity) +3. If role needs > 4 questions, split into multiple rounds + +**Example** (system-architect): +```javascript +AskUserQuestion({ + questions: [ + { + question: "100+ 用户实时状态同步方案?", + header: "状态同步", + multiSelect: false, + options: [ + { label: "Event Sourcing", description: "完整事件历史,支持回溯,存储成本高" }, + { label: "集中式状态管理", description: "实现简单,单点瓶颈风险" }, + { label: "CRDT", description: "去中心化,自动合并,学习曲线陡" } + ] + }, + { + question: "两个用户同时编辑冲突如何解决?", + header: "冲突解决", + multiSelect: false, + options: [ + { label: "自动合并", description: "用户无感知,可能产生意外结果" }, + { label: "手动解决", description: "用户控制,增加交互复杂度" }, + { label: "版本控制", description: "保留历史,需要分支管理" } + ] + } + ] +}) +``` + +### Phase 4: Conflict Resolution + +**Goal**: Resolve ACTUAL conflicts from Phase 3 answers + +**Algorithm**: +1. Analyze Phase 3 answers for conflicts: + - Contradictory choices (e.g., "fast iteration" vs "complex Event Sourcing") + - Missing integration (e.g., "Optimistic updates" but no conflict handling) + - Implicit dependencies (e.g., "Live cursors" but no auth defined) +2. Generate clarification questions referencing SPECIFIC Phase 3 choices +3. AskUserQuestion (max 4 per call, multi-round) → Store to `session.cross_role_decisions` +4. If NO conflicts: Skip Phase 4 (inform user: "未检测到跨角色冲突,跳过Phase 4") + +**Example**: +```javascript +AskUserQuestion({ + questions: [{ + question: "CRDT 与 UI 回滚期望冲突,如何解决?\n背景:system-architect选择CRDT,ui-designer期望回滚UI", + header: "架构冲突", + multiSelect: false, + options: [ + { label: "采用 CRDT", description: "保持去中心化,调整UI期望" }, + { label: "显示合并界面", description: "增加用户交互,展示冲突详情" }, + { label: "切换到 OT", description: "支持回滚,增加服务器复杂度" } + ] + }] +}) +``` + +### Phase 4.5: Final Clarification + +**Purpose**: Ensure no important points missed before generating specification + +**Steps**: +1. Ask initial check: + ```javascript + AskUserQuestion({ + questions: [{ + question: "在生成最终规范之前,是否有前面未澄清的重点需要补充?", + header: "补充确认", + multiSelect: false, + options: [ + { label: "无需补充", description: "前面的讨论已经足够完整" }, + { label: "需要补充", description: "还有重要内容需要澄清" } + ] + }] + }) + ``` +2. If "需要补充": + - Analyze user's additional points + - Generate progressive questions (not role-bound, interconnected) + - AskUserQuestion (max 4 per round) → Store to `session.additional_decisions` + - Repeat until user confirms completion +3. If "无需补充": Proceed to Phase 5 + +**Progressive Pattern**: Questions interconnected, each round informs next, continue until resolved. + +### Phase 5: Generate Specification + +**Steps**: +1. Load all decisions: `intent_context` + `selected_roles` + `role_decisions` + `cross_role_decisions` + `additional_decisions` +2. Transform Q&A to declarative: Questions → Headers, Answers → CONFIRMED/SELECTED statements +3. Generate `guidance-specification.md` +4. Update `workflow-session.json` (metadata only) +5. Validate: No interrogative sentences, all decisions traceable + +--- + +## Question Guidelines + +### Core Principle + +**Target**: 开发者(理解技术但需要从用户需求出发) + +**Question Structure**: `[业务场景/需求前提] + [技术关注点]` +**Option Structure**: `标签:[技术方案] + 说明:[业务影响] + [技术权衡]` + +### Quality Rules + +**MUST Include**: +- ✅ All questions in Chinese (用中文提问) +- ✅ 业务场景作为问题前提 +- ✅ 技术选项的业务影响说明 +- ✅ 量化指标和约束条件 + +**MUST Avoid**: +- ❌ 纯技术选型无业务上下文 +- ❌ 过度抽象的用户体验问题 +- ❌ 脱离话题的通用架构问题 + +### Phase-Specific Requirements + +| Phase | Focus | Key Requirements | +|-------|-------|------------------| +| 1 | 意图理解 | Reference topic keywords, 用户场景、业务约束、优先级 | +| 2 | 角色推荐 | Intelligent analysis (NOT keyword mapping), explain relevance | +| 3 | 角色问题 | Reference Phase 1 keywords, concrete options with trade-offs | +| 4 | 冲突解决 | Reference SPECIFIC Phase 3 choices, explain impact on both roles | + +--- + +## Output & Governance + +### Output Template + +**File**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md` + +```markdown +# [Project] - Confirmed Guidance Specification + +**Metadata**: [timestamp, type, focus, roles] + +## 1. Project Positioning & Goals +**CONFIRMED Objectives**: [from topic + Phase 1] +**CONFIRMED Success Criteria**: [from Phase 1 answers] + +## 2-N. [Role] Decisions +### SELECTED Choices +**[Question topic]**: [User's answer] +- **Rationale**: [From option description] +- **Impact**: [Implications] + +### Cross-Role Considerations +**[Conflict resolved]**: [Resolution from Phase 4] +- **Affected Roles**: [Roles involved] + +## Cross-Role Integration +**CONFIRMED Integration Points**: [API/Data/Auth from multiple roles] + +## Risks & Constraints +**Identified Risks**: [From answers] → Mitigation: [Approach] + +## Next Steps +**⚠️ Automatic Continuation** (when called from auto-parallel): +- auto-parallel spawns agents for role-specific analysis +- Each selected role gets conceptual-planning-agent +- Agents read this guidance-specification.md for context + +## Appendix: Decision Tracking +| Decision ID | Category | Question | Selected | Phase | Rationale | +|-------------|----------|----------|----------|-------|-----------| +| D-001 | Intent | [Q] | [A] | 1 | [Why] | +| D-002 | Roles | [Selected] | [Roles] | 2 | [Why] | +| D-003+ | [Role] | [Q] | [A] | 3 | [Why] | +``` + +### File Structure + +``` +.workflow/active/WFS-[topic]/ +├── workflow-session.json # Metadata ONLY +├── .process/ +│ └── context-package.json # Phase 0 output +└── .brainstorming/ + └── guidance-specification.md # Full guidance content +``` + +### Session Metadata + +```json +{ + "session_id": "WFS-{topic-slug}", + "type": "brainstorming", + "topic": "{original user input}", + "selected_roles": ["system-architect", "ui-designer", "product-manager"], + "phase_completed": "artifacts", + "timestamp": "2025-10-24T10:30:00Z", + "count_parameter": 3 +} +``` + +**⚠️ Rule**: Session JSON stores ONLY metadata. All guidance content goes to guidance-specification.md. + +### Validation Checklist + +- ✅ No interrogative sentences (use CONFIRMED/SELECTED) +- ✅ Every decision traceable to user answer +- ✅ Cross-role conflicts resolved or documented +- ✅ Next steps concrete and specific +- ✅ No content duplication between .json and .md + +### Update Mechanism + +``` +IF guidance-specification.md EXISTS: + Prompt: "Regenerate completely / Update sections / Cancel" +ELSE: + Run full Phase 0-5 flow +``` + +### Governance Rules + +- All decisions MUST use CONFIRMED/SELECTED (NO "?" in decision sections) +- Every decision MUST trace to user answer +- Conflicts MUST be resolved (not marked "TBD") +- Next steps MUST be actionable +- Topic preserved as authoritative reference + +**CRITICAL**: Guidance is single source of truth for downstream phases. Ambiguity violates governance. + +--- + +## Post-Phase Update + +After Phase 1 completes: +- **Output Created**: `guidance-specification.md`, `workflow-session.json` +- **Data Parsed**: `selected_roles[]`, `session_id` +- **Next Action**: Auto-continue to Phase 2 (parallel role analysis) +- **State Update**: Update workflow-session.json with `phase_completed: "artifacts"` diff --git a/.codex/skills/workflow-brainstorm-auto-parallel/phases/02-parallel-role-analysis.md b/.codex/skills/workflow-brainstorm-auto-parallel/phases/02-parallel-role-analysis.md new file mode 100644 index 00000000..7d24ce9b --- /dev/null +++ b/.codex/skills/workflow-brainstorm-auto-parallel/phases/02-parallel-role-analysis.md @@ -0,0 +1,770 @@ +## Overview + +**Unified command for generating and updating role-specific analysis** with interactive context gathering, framework alignment, and incremental update support. Replaces 9 individual role commands with single parameterized workflow. + +### Core Function +- **Multi-Role Support**: Single command supports all 9 brainstorming roles +- **Interactive Context**: Dynamic question generation based on role and framework +- **Incremental Updates**: Merge new insights into existing analyses +- **Framework Alignment**: Address guidance-specification.md discussion points +- **Agent Delegation**: Use conceptual-planning-agent with role-specific templates +- **Explicit Lifecycle**: Manage subagent creation, waiting, and cleanup + +### Supported Roles + +| Role ID | Title | Focus Area | Context Questions | +|---------|-------|------------|-------------------| +| `ux-expert` | UX专家 | User research, information architecture, user journey | 4 | +| `ui-designer` | UI设计师 | Visual design, high-fidelity mockups, design systems | 4 | +| `system-architect` | 系统架构师 | Technical architecture, scalability, integration patterns | 5 | +| `product-manager` | 产品经理 | Product strategy, roadmap, prioritization | 4 | +| `product-owner` | 产品负责人 | Backlog management, user stories, acceptance criteria | 4 | +| `scrum-master` | 敏捷教练 | Process facilitation, impediment removal, team dynamics | 3 | +| `subject-matter-expert` | 领域专家 | Domain knowledge, business rules, compliance | 4 | +| `data-architect` | 数据架构师 | Data models, storage strategies, data flow | 5 | +| `api-designer` | API设计师 | API contracts, versioning, integration patterns | 4 | + +--- + +## Usage + +```bash +# Generate new analysis with interactive context +role-analysis ux-expert + +# Generate with existing framework + context questions +role-analysis system-architect --session WFS-xxx --include-questions + +# Update existing analysis (incremental merge) +role-analysis ui-designer --session WFS-xxx --update + +# Quick generation (skip interactive context) +role-analysis product-manager --session WFS-xxx --skip-questions +``` + +--- + +## Execution Protocol + +### Phase 1: Detection & Validation + +**Step 1.1: Role Validation** +```bash +VALIDATE role_name IN [ + ux-expert, ui-designer, system-architect, product-manager, + product-owner, scrum-master, subject-matter-expert, + data-architect, api-designer +] +IF invalid: + ERROR: "Unknown role: {role_name}. Use one of: ux-expert, ui-designer, ..." + EXIT +``` + +**Step 1.2: Session Detection** +```bash +IF --session PROVIDED: + session_id = --session + brainstorm_dir = .workflow/active/{session_id}/.brainstorming/ +ELSE: + FIND .workflow/active/WFS-*/ + IF multiple: + PROMPT user to select + ELSE IF single: + USE existing + ELSE: + ERROR: "No active session. Run Phase 1 (artifacts) first" + EXIT + +VALIDATE brainstorm_dir EXISTS +``` + +**Step 1.3: Framework Detection** +```bash +framework_file = {brainstorm_dir}/guidance-specification.md +IF framework_file EXISTS: + framework_mode = true + LOAD framework_content +ELSE: + WARN: "No framework found - will create standalone analysis" + framework_mode = false +``` + +**Step 1.4: Update Mode Detection** +```bash +existing_analysis = {brainstorm_dir}/{role_name}/analysis*.md +IF --update FLAG OR existing_analysis EXISTS: + update_mode = true + IF --update NOT PROVIDED: + ASK: "Analysis exists. Update or regenerate?" + OPTIONS: ["Incremental update", "Full regenerate", "Cancel"] +ELSE: + update_mode = false +``` + +### Phase 2: Interactive Context Gathering + +**Trigger Conditions**: +- Default: Always ask unless `--skip-questions` provided +- `--include-questions`: Force context gathering even if analysis exists +- `--skip-questions`: Skip all interactive questions + +**Step 2.1: Load Role Configuration** +```javascript +const roleConfig = { + 'ux-expert': { + title: 'UX专家', + focus_area: 'User research, information architecture, user journey', + question_categories: ['User Intent', 'Requirements', 'UX'], + question_count: 4, + template: '~/.codex/workflows/cli-templates/planning-roles/ux-expert.md' + }, + 'ui-designer': { + title: 'UI设计师', + focus_area: 'Visual design, high-fidelity mockups, design systems', + question_categories: ['Requirements', 'UX', 'Feasibility'], + question_count: 4, + template: '~/.codex/workflows/cli-templates/planning-roles/ui-designer.md' + }, + 'system-architect': { + title: '系统架构师', + focus_area: 'Technical architecture, scalability, integration patterns', + question_categories: ['Scale & Performance', 'Technical Constraints', 'Architecture Complexity', 'Non-Functional Requirements'], + question_count: 5, + template: '~/.codex/workflows/cli-templates/planning-roles/system-architect.md' + }, + 'product-manager': { + title: '产品经理', + focus_area: 'Product strategy, roadmap, prioritization', + question_categories: ['User Intent', 'Requirements', 'Process'], + question_count: 4, + template: '~/.codex/workflows/cli-templates/planning-roles/product-manager.md' + }, + 'product-owner': { + title: '产品负责人', + focus_area: 'Backlog management, user stories, acceptance criteria', + question_categories: ['Requirements', 'Decisions', 'Process'], + question_count: 4, + template: '~/.codex/workflows/cli-templates/planning-roles/product-owner.md' + }, + 'scrum-master': { + title: '敏捷教练', + focus_area: 'Process facilitation, impediment removal, team dynamics', + question_categories: ['Process', 'Risk', 'Decisions'], + question_count: 3, + template: '~/.codex/workflows/cli-templates/planning-roles/scrum-master.md' + }, + 'subject-matter-expert': { + title: '领域专家', + focus_area: 'Domain knowledge, business rules, compliance', + question_categories: ['Requirements', 'Feasibility', 'Terminology'], + question_count: 4, + template: '~/.codex/workflows/cli-templates/planning-roles/subject-matter-expert.md' + }, + 'data-architect': { + title: '数据架构师', + focus_area: 'Data models, storage strategies, data flow', + question_categories: ['Architecture', 'Scale & Performance', 'Technical Constraints', 'Feasibility'], + question_count: 5, + template: '~/.codex/workflows/cli-templates/planning-roles/data-architect.md' + }, + 'api-designer': { + title: 'API设计师', + focus_area: 'API contracts, versioning, integration patterns', + question_categories: ['Architecture', 'Requirements', 'Feasibility', 'Decisions'], + question_count: 4, + template: '~/.codex/workflows/cli-templates/planning-roles/api-designer.md' + } +}; + +config = roleConfig[role_name]; +``` + +**Step 2.2: Generate Role-Specific Questions** + +**9-Category Taxonomy**: + +| Category | Focus | Example Question Pattern | +|----------|-------|--------------------------| +| User Intent | 用户目标 | "该分析的核心目标是什么?" | +| Requirements | 需求细化 | "需求的优先级如何排序?" | +| Architecture | 架构决策 | "技术栈的选择考量?" | +| UX | 用户体验 | "交互复杂度的取舍?" | +| Feasibility | 可行性 | "资源约束下的实现范围?" | +| Risk | 风险管理 | "风险容忍度是多少?" | +| Process | 流程规范 | "开发迭代的节奏?" | +| Decisions | 决策确认 | "冲突的解决方案?" | +| Terminology | 术语统一 | "统一使用哪个术语?" | +| Scale & Performance | 性能扩展 | "预期的负载和性能要求?" | +| Technical Constraints | 技术约束 | "现有技术栈的限制?" | +| Architecture Complexity | 架构复杂度 | "架构的复杂度权衡?" | +| Non-Functional Requirements | 非功能需求 | "可用性和可维护性要求?" | + +**Question Generation Algorithm**: +```javascript +async function generateQuestions(role_name, framework_content) { + const config = roleConfig[role_name]; + const questions = []; + + // Parse framework for keywords + const keywords = extractKeywords(framework_content); + + // Generate category-specific questions + for (const category of config.question_categories) { + const question = generateCategoryQuestion(category, keywords, role_name); + questions.push(question); + } + + return questions.slice(0, config.question_count); +} +``` + +**Step 2.3: Multi-Round Question Execution** + +```javascript +const BATCH_SIZE = 4; +const user_context = {}; + +for (let i = 0; i < questions.length; i += BATCH_SIZE) { + const batch = questions.slice(i, i + BATCH_SIZE); + const currentRound = Math.floor(i / BATCH_SIZE) + 1; + const totalRounds = Math.ceil(questions.length / BATCH_SIZE); + + console.log(`\n[Round ${currentRound}/${totalRounds}] ${config.title} 上下文询问\n`); + + AskUserQuestion({ + questions: batch.map(q => ({ + question: q.question, + header: q.category.substring(0, 12), + multiSelect: false, + options: q.options.map(opt => ({ + label: opt.label, + description: opt.description + })) + })) + }); + + // Store responses before next round + for (const answer of responses) { + user_context[answer.question] = { + answer: answer.selected, + category: answer.category, + timestamp: new Date().toISOString() + }; + } +} + +// Save context to file +Write( + `${brainstorm_dir}/${role_name}/${role_name}-context.md`, + formatUserContext(user_context) +); +``` + +**Question Quality Rules**: + +**MUST Include**: +- ✅ All questions in Chinese (用中文提问) +- ✅ 业务场景作为问题前提 +- ✅ 技术选项的业务影响说明 +- ✅ 量化指标和约束条件 + +**MUST Avoid**: +- ❌ 纯技术选型无业务上下文 +- ❌ 过度抽象的通用问题 +- ❌ 脱离框架的重复询问 + +### Phase 3: Agent Execution + +**Step 3.1: Load Session Metadata** +```bash +session_metadata = Read(.workflow/active/{session_id}/workflow-session.json) +original_topic = session_metadata.topic +selected_roles = session_metadata.selected_roles +``` + +**Step 3.2: Prepare Agent Context** +```javascript +const agentContext = { + role_name: role_name, + role_config: roleConfig[role_name], + output_location: `${brainstorm_dir}/${role_name}/`, + framework_mode: framework_mode, + framework_path: framework_mode ? `${brainstorm_dir}/guidance-specification.md` : null, + update_mode: update_mode, + user_context: user_context, + original_topic: original_topic, + session_id: session_id +}; +``` + +**Step 3.3: Execute Conceptual Planning Agent** + +**Framework-Based Analysis** (when guidance-specification.md exists): +```javascript +// Spawn conceptual-planning-agent +const roleAgentId = spawn_agent({ + message: ` +## TASK ASSIGNMENT + +### MANDATORY FIRST STEPS (Agent Execute) +1. **Read role definition**: ~/.codex/agents/conceptual-planning-agent.md (MUST read first) +2. Read: .workflow/project-tech.json +3. Read: .workflow/project-guidelines.json + +--- + +[FLOW_CONTROL] + +Execute ${role_name} analysis for existing topic framework + +## Context Loading +ASSIGNED_ROLE: ${role_name} +OUTPUT_LOCATION: ${agentContext.output_location} +ANALYSIS_MODE: ${framework_mode ? "framework_based" : "standalone"} +UPDATE_MODE: ${update_mode} + +## Flow Control Steps +1. **load_topic_framework** + - Action: Load structured topic discussion framework + - Command: Read(${agentContext.framework_path}) + - Output: topic_framework_content + +2. **load_role_template** + - Action: Load ${role_name} planning template + - Command: Read(${roleConfig[role_name].template}) + - Output: role_template_guidelines + +3. **load_session_metadata** + - Action: Load session metadata and user intent + - Command: Read(.workflow/active/${session_id}/workflow-session.json) + - Output: session_context + +4. **load_user_context** (if exists) + - Action: Load interactive context responses + - Command: Read(${brainstorm_dir}/${role_name}/${role_name}-context.md) + - Output: user_context_answers + +5. **${update_mode ? 'load_existing_analysis' : 'skip'}** + ${update_mode ? ` + - Action: Load existing analysis for incremental update + - Command: Read(${brainstorm_dir}/${role_name}/analysis.md) + - Output: existing_analysis_content + ` : ''} + +## Analysis Requirements +**Primary Reference**: Original user prompt from workflow-session.json is authoritative +**Framework Source**: Address all discussion points in guidance-specification.md from ${role_name} perspective +**User Context Integration**: Incorporate interactive Q&A responses into analysis +**Role Focus**: ${roleConfig[role_name].focus_area} +**Template Integration**: Apply role template guidelines within framework structure + +## Expected Deliverables +1. **analysis.md** (main document, optionally with analysis-{slug}.md sub-documents) +2. **Framework Reference**: @../guidance-specification.md (if framework_mode) +3. **User Context Reference**: @./${role_name}-context.md (if user context exists) +4. **User Intent Alignment**: Validate against session_context + +## Update Requirements (if UPDATE_MODE) +- **Preserve Structure**: Maintain existing analysis structure +- **Add "Clarifications" Section**: Document new user context with timestamp +- **Merge Insights**: Integrate new perspectives without removing existing content +- **Resolve Conflicts**: If new context contradicts existing analysis, document both and recommend resolution + +## Completion Criteria +- Address each discussion point from guidance-specification.md with ${role_name} expertise +- Provide actionable recommendations from ${role_name} perspective within analysis files +- All output files MUST start with "analysis" prefix (no recommendations.md or other naming) +- Reference framework document using @ notation for integration +- Update workflow-session.json with completion status +` +}); + +// Wait for agent completion +const roleResult = wait({ + ids: [roleAgentId], + timeout_ms: 600000 // 10 minutes +}); + +// Check result and cleanup +if (roleResult.timed_out) { + console.warn(`${role_name} analysis timed out`); +} + +// Always close agent +close_agent({ id: roleAgentId }); +``` + +### Phase 3 (Parallel Mode): Execute Multiple Roles Concurrently + +**When called from auto-parallel orchestrator**, execute all selected roles in parallel: + +```javascript +// Step 1: Spawn all role agents in parallel +const roleAgents = []; + +selected_roles.forEach((role_name, index) => { + const config = roleConfig[role_name]; + + // For ui-designer, append style-skill if provided + const styleContext = (role_name === 'ui-designer' && style_skill_package) + ? `\n## Style Reference\n**Style SKILL Package**: .codex/skills/style-${style_skill_package}/\n**Load First**: Read SKILL.md from style package for design tokens` + : ''; + + const agentId = spawn_agent({ + message: ` +## TASK ASSIGNMENT + +### MANDATORY FIRST STEPS (Agent Execute) +1. **Read role definition**: ~/.codex/agents/conceptual-planning-agent.md (MUST read first) +2. Read: .workflow/project-tech.json +3. Read: .workflow/project-guidelines.json + +--- + +## Task Objective +Execute **${role_name}** (${config.title}) analysis for brainstorming session. + +## Assigned Context +- **Role**: ${role_name} +- **Role Focus**: ${config.focus_area} +- **Session ID**: ${session_id} +- **Framework Path**: ${brainstorm_dir}/guidance-specification.md +- **Output Location**: ${brainstorm_dir}/${role_name}/ +- **Role Index**: ${index + 1} of ${selected_roles.length} +${styleContext} + +## Analysis Requirements +**Primary Reference**: Original user prompt from workflow-session.json is authoritative +**Framework Source**: Address all discussion points in guidance-specification.md from ${role_name} perspective +**Role Focus**: ${config.focus_area} + +## Expected Deliverables +1. **analysis.md** (main document) +2. **analysis-{slug}.md** (optional sub-documents, max 5) +3. **Framework Reference**: @../guidance-specification.md + +## Completion Criteria +- Address each framework discussion point with ${role_name} expertise +- Provide actionable recommendations within analysis files +- All output files MUST start with "analysis" prefix +` + }); + + roleAgents.push({ agentId, role_name }); +}); + +// Step 2: Batch wait for all agents +const agentIds = roleAgents.map(a => a.agentId); +const parallelResults = wait({ + ids: agentIds, + timeout_ms: 900000 // 15 minutes for all agents +}); + +// Step 3: Process results and check completion +const completedRoles = []; +const failedRoles = []; + +roleAgents.forEach(({ agentId, role_name }) => { + if (parallelResults.status[agentId]?.completed) { + completedRoles.push(role_name); + } else { + failedRoles.push(role_name); + } +}); + +if (parallelResults.timed_out) { + console.warn('Some role analyses timed out:', failedRoles); +} + +// Step 4: Batch cleanup - IMPORTANT: always close all agents +roleAgents.forEach(({ agentId }) => { + close_agent({ id: agentId }); +}); + +console.log(`Completed: ${completedRoles.length}/${selected_roles.length} roles`); +console.log(`Completed roles: ${completedRoles.join(', ')}`); +if (failedRoles.length > 0) { + console.warn(`Failed roles: ${failedRoles.join(', ')}`); +} +``` + +### Phase 4: Validation & Finalization + +**Step 4.1: Validate Output** +```bash +VERIFY EXISTS: ${brainstorm_dir}/${role_name}/analysis.md +VERIFY CONTAINS: "@../guidance-specification.md" (if framework_mode) +IF user_context EXISTS: + VERIFY CONTAINS: "@./${role_name}-context.md" OR "## Clarifications" section +``` + +**Step 4.2: Update Session Metadata** +```json +{ + "phases": { + "BRAINSTORM": { + "${role_name}": { + "status": "${update_mode ? 'updated' : 'completed'}", + "completed_at": "timestamp", + "framework_addressed": true, + "context_gathered": user_context ? true : false, + "output_location": "${brainstorm_dir}/${role_name}/analysis.md", + "update_history": [ + { + "timestamp": "ISO8601", + "mode": "${update_mode ? 'incremental' : 'initial'}", + "context_questions": question_count + } + ] + } + } + } +} +``` + +**Step 4.3: Completion Report** +```markdown +✅ ${roleConfig[role_name].title} Analysis Complete + +**Output**: ${brainstorm_dir}/${role_name}/analysis.md +**Mode**: ${update_mode ? 'Incremental Update' : 'New Generation'} +**Framework**: ${framework_mode ? '✓ Aligned' : '✗ Standalone'} +**Context Questions**: ${question_count} answered + +${update_mode ? ' +**Changes**: +- Added "Clarifications" section with new user context +- Merged new insights into existing sections +- Resolved conflicts with framework alignment +' : ''} + +**Next Steps**: +${selected_roles.length > 1 ? ` + - Continue with other roles: ${selected_roles.filter(r => r !== role_name).join(', ')} + - Run synthesis: Phase 3 (synthesis integration) +` : ` + - Clarify insights: Phase 3 (synthesis integration) + - Generate plan: workflow:plan --session ${session_id} +`} +``` + +--- + +## Output Structure + +### Directory Layout + +``` +.workflow/active/WFS-{session}/.brainstorming/ +├── guidance-specification.md # Framework (if exists) +└── {role-name}/ + ├── {role-name}-context.md # Interactive Q&A responses + ├── analysis.md # Main analysis (REQUIRED) + └── analysis-{slug}.md # Section documents (optional, max 5) +``` + +### Analysis Document Structure (New Generation) + +```markdown +# ${roleConfig[role_name].title} Analysis: [Topic from Framework] + +## Framework Reference +**Topic Framework**: @../guidance-specification.md +**Role Focus**: ${roleConfig[role_name].focus_area} +**User Context**: @./${role_name}-context.md + +## User Context Summary +**Context Gathered**: ${question_count} questions answered +**Categories**: ${question_categories.join(', ')} + +${user_context ? formatContextSummary(user_context) : ''} + +## Discussion Points Analysis +[Address each point from guidance-specification.md with ${role_name} expertise] + +### Core Requirements (from framework) +[Role-specific perspective on requirements] + +### Technical Considerations (from framework) +[Role-specific technical analysis] + +### User Experience Factors (from framework) +[Role-specific UX considerations] + +### Implementation Challenges (from framework) +[Role-specific challenges and solutions] + +### Success Metrics (from framework) +[Role-specific metrics and KPIs] + +## ${roleConfig[role_name].title} Specific Recommendations +[Role-specific actionable strategies] + +--- +*Generated by ${role_name} analysis addressing structured framework* +*Context gathered: ${new Date().toISOString()}* +``` + +### Analysis Document Structure (Incremental Update) + +```markdown +# ${roleConfig[role_name].title} Analysis: [Topic] + +## Framework Reference +[Existing content preserved] + +## Clarifications +### Session ${new Date().toISOString().split('T')[0]} +${Object.entries(user_context).map(([q, a]) => ` +- **Q**: ${q} (Category: ${a.category}) + **A**: ${a.answer} +`).join('\n')} + +## User Context Summary +[Updated with new context] + +## Discussion Points Analysis +[Existing content enhanced with new insights] + +[Rest of sections updated based on clarifications] +``` + +--- + +## Integration with Other Phases + +### Called By +- Auto-parallel orchestrator (Phase 2 - parallel role execution) +- Manual invocation for single-role analysis + +### Spawns +- `conceptual-planning-agent` (via spawn_agent → wait → close_agent) + +### Coordinates With +- Phase 1 (artifacts) - creates framework for role analysis +- Phase 3 (synthesis) - reads role analyses for integration + +--- + +## Quality Assurance + +### Required Analysis Elements +- [ ] Framework discussion points addressed (if framework_mode) +- [ ] User context integrated (if context gathered) +- [ ] Role template guidelines applied +- [ ] Output files follow naming convention (analysis*.md only) +- [ ] Framework reference using @ notation +- [ ] Session metadata updated + +### Context Quality +- [ ] Questions in Chinese with business context +- [ ] Options include technical trade-offs +- [ ] Categories aligned with role focus +- [ ] No generic questions unrelated to framework + +### Update Quality (if update_mode) +- [ ] "Clarifications" section added with timestamp +- [ ] New insights merged without content loss +- [ ] Conflicts documented and resolved +- [ ] Framework alignment maintained + +### Agent Lifecycle Quality +- [ ] All spawn_agent have corresponding close_agent +- [ ] All wait calls have reasonable timeout +- [ ] Parallel agents use batch wait +- [ ] Error paths include agent cleanup + +--- + +## Command Parameters + +### Required Parameters +- `[role-name]`: Role identifier (ux-expert, ui-designer, system-architect, etc.) + +### Optional Parameters +- `--session [session-id]`: Specify brainstorming session (auto-detect if omitted) +- `--update`: Force incremental update mode (auto-detect if analysis exists) +- `--include-questions`: Force context gathering even if analysis exists +- `--skip-questions`: Skip all interactive context gathering +- `--style-skill [package]`: For ui-designer only, load style SKILL package + +### Parameter Combinations + +| Scenario | Command | Behavior | +|----------|---------|----------| +| New analysis | `role-analysis ux-expert` | Generate + ask context questions | +| Quick generation | `role-analysis ux-expert --skip-questions` | Generate without context | +| Update existing | `role-analysis ux-expert --update` | Ask clarifications + merge | +| Force questions | `role-analysis ux-expert --include-questions` | Ask even if exists | +| Specific session | `role-analysis ux-expert --session WFS-xxx` | Target specific session | + +--- + +## Error Handling + +### Invalid Role Name +``` +ERROR: Unknown role: "ui-expert" +Valid roles: ux-expert, ui-designer, system-architect, product-manager, + product-owner, scrum-master, subject-matter-expert, + data-architect, api-designer +``` + +### No Active Session +``` +ERROR: No active brainstorming session found +Run: Phase 1 (artifacts) to create session +``` + +### Missing Framework (with warning) +``` +WARN: No guidance-specification.md found +Generating standalone analysis without framework alignment +Recommend: Run Phase 1 (artifacts) first for better results +``` + +### Agent Execution Failure +``` +ERROR: Conceptual planning agent failed +Check: ${brainstorm_dir}/${role_name}/error.log +Action: Retry with --skip-questions or check framework validity +``` + +### Agent Lifecycle Errors +```javascript +// Always ensure cleanup in error paths +try { + const agentId = spawn_agent({ message: "..." }); + const result = wait({ ids: [agentId], timeout_ms: 600000 }); + // ... process result ... + close_agent({ id: agentId }); +} catch (error) { + // Ensure cleanup even on error + if (agentId) close_agent({ id: agentId }); + throw error; +} +``` + +--- + +## Reference Information + +### Role Template Locations +- Templates: `~/.codex/workflows/cli-templates/planning-roles/` +- Format: `{role-name}.md` (e.g., `ux-expert.md`, `system-architect.md`) + +### Context Package +- Location: `.workflow/active/WFS-{session}/.process/context-package.json` +- Used by: `context-search-agent` (Phase 0 of artifacts) +- Contains: Project context, tech stack, conflict risks + +--- + +## Post-Phase Update + +After Phase 2 completes: +- **Output Created**: `[role]/analysis*.md` for each selected role +- **Parallel Execution**: All N roles executed concurrently via spawn_agent + batch wait +- **Agent Cleanup**: All agents closed after wait completes +- **Next Action**: Auto-continue to Phase 3 (synthesis integration) +- **State Update**: Update workflow-session.json with role completion status diff --git a/.codex/skills/workflow-brainstorm-auto-parallel/phases/03-synthesis-integration.md b/.codex/skills/workflow-brainstorm-auto-parallel/phases/03-synthesis-integration.md new file mode 100644 index 00000000..0b7c0099 --- /dev/null +++ b/.codex/skills/workflow-brainstorm-auto-parallel/phases/03-synthesis-integration.md @@ -0,0 +1,476 @@ +## Overview + +Six-phase workflow to eliminate ambiguities and enhance conceptual depth in role analyses: + +**Phase 1-2**: Session detection → File discovery → Path preparation +**Phase 3A**: Cross-role analysis agent → Generate recommendations +**Phase 4**: User selects enhancements → User answers clarifications (via AskUserQuestion) +**Phase 5**: Parallel update agents (one per role) +**Phase 6**: Context package update → Metadata update → Completion report + +All user interactions use AskUserQuestion tool (max 4 questions per call, multi-round). + +**Document Flow**: +- Input: `[role]/analysis*.md`, `guidance-specification.md`, session metadata +- Output: Updated `[role]/analysis*.md` with Enhancements + Clarifications sections + +--- + +## Quick Reference + +### Phase Summary + +| Phase | Goal | Executor | Output | +|-------|------|----------|--------| +| 1 | Session detection | Main flow | session_id, brainstorm_dir | +| 2 | File discovery | Main flow | role_analysis_paths | +| 3A | Cross-role analysis | spawn_agent | enhancement_recommendations | +| 4 | User interaction | Main flow + AskUserQuestion | update_plan | +| 5 | Document updates | spawn_agent[] (parallel) | Updated analysis*.md | +| 6 | Finalization | Main flow | context-package.json, report | + +### AskUserQuestion Pattern + +```javascript +// Enhancement selection (multi-select) +AskUserQuestion({ + questions: [{ + question: "请选择要应用的改进建议", + header: "改进选择", + multiSelect: true, + options: [ + { label: "EP-001: API Contract", description: "添加详细的请求/响应 schema 定义" }, + { label: "EP-002: User Intent", description: "明确用户需求优先级和验收标准" } + ] + }] +}) + +// Clarification questions (single-select, multi-round) +AskUserQuestion({ + questions: [ + { + question: "MVP 阶段的核心目标是什么?", + header: "用户意图", + multiSelect: false, + options: [ + { label: "快速验证", description: "最小功能集,快速上线获取反馈" }, + { label: "技术壁垒", description: "完善架构,为长期发展打基础" }, + { label: "功能完整", description: "覆盖所有规划功能,延迟上线" } + ] + } + ] +}) +``` + +--- + +## Execution Phases + +### Phase 1: Discovery & Validation + +1. **Detect Session**: Use `--session` parameter or find `.workflow/active/WFS-*` +2. **Validate Files**: + - `guidance-specification.md` (optional, warn if missing) + - `*/analysis*.md` (required, error if empty) +3. **Load User Intent**: Extract from `workflow-session.json` + +### Phase 2: Role Discovery & Path Preparation + +**Main flow prepares file paths for Agent**: + +1. **Discover Analysis Files**: + - Glob: `.workflow/active/WFS-{session}/.brainstorming/*/analysis*.md` + - Supports: analysis.md + analysis-{slug}.md (max 5) + +2. **Extract Role Information**: + - `role_analysis_paths`: Relative paths + - `participating_roles`: Role names from directories + +3. **Pass to Agent**: session_id, brainstorm_dir, role_analysis_paths, participating_roles + +### Phase 3A: Analysis & Enhancement Agent + +**Agent executes cross-role analysis**: + +```javascript +// Spawn analysis agent +const analysisAgentId = spawn_agent({ + message: ` +## TASK ASSIGNMENT + +### MANDATORY FIRST STEPS (Agent Execute) +1. **Read role definition**: ~/.codex/agents/conceptual-planning-agent.md (MUST read first) +2. Read: .workflow/project-tech.json +3. Read: .workflow/project-guidelines.json + +--- + +## Agent Mission +Analyze role documents, identify conflicts/gaps, generate enhancement recommendations + +## Input +- brainstorm_dir: ${brainstorm_dir} +- role_analysis_paths: ${role_analysis_paths} +- participating_roles: ${participating_roles} + +## Flow Control Steps +1. load_session_metadata → Read workflow-session.json +2. load_role_analyses → Read all analysis files +3. cross_role_analysis → Identify consensus, conflicts, gaps, ambiguities +4. generate_recommendations → Format as EP-001, EP-002, ... + +## Output Format +[ + { + "id": "EP-001", + "title": "API Contract Specification", + "affected_roles": ["system-architect", "api-designer"], + "category": "Architecture", + "current_state": "High-level API descriptions", + "enhancement": "Add detailed contract definitions", + "rationale": "Enables precise implementation", + "priority": "High" + } +] +` +}); + +// Wait for analysis completion +const analysisResult = wait({ + ids: [analysisAgentId], + timeout_ms: 600000 // 10 minutes +}); + +// Parse enhancement recommendations +const recommendations = JSON.parse(analysisResult.status[analysisAgentId]?.completed || '[]'); + +// Clean up agent +close_agent({ id: analysisAgentId }); +``` + +### Phase 4: User Interaction + +**All interactions via AskUserQuestion (Chinese questions)** + +#### Step 1: Enhancement Selection + +```javascript +// If enhancements > 4, split into multiple rounds +const enhancements = recommendations; // from Phase 3A +const BATCH_SIZE = 4; +const selectedEnhancements = []; + +for (let i = 0; i < enhancements.length; i += BATCH_SIZE) { + const batch = enhancements.slice(i, i + BATCH_SIZE); + + AskUserQuestion({ + questions: [{ + question: `请选择要应用的改进建议 (第${Math.floor(i/BATCH_SIZE)+1}轮)`, + header: "改进选择", + multiSelect: true, + options: batch.map(ep => ({ + label: `${ep.id}: ${ep.title}`, + description: `影响: ${ep.affected_roles.join(', ')} | ${ep.enhancement}` + })) + }] + }) + + // Store selections before next round + selectedEnhancements.push(...user_selections); +} + +// User can also skip: provide "跳过" option +``` + +#### Step 2: Clarification Questions + +```javascript +// Generate questions based on 9-category taxonomy scan +// Categories: User Intent, Requirements, Architecture, UX, Feasibility, Risk, Process, Decisions, Terminology + +const clarifications = [...]; // from analysis +const BATCH_SIZE = 4; +const userAnswers = {}; + +for (let i = 0; i < clarifications.length; i += BATCH_SIZE) { + const batch = clarifications.slice(i, i + BATCH_SIZE); + const currentRound = Math.floor(i / BATCH_SIZE) + 1; + const totalRounds = Math.ceil(clarifications.length / BATCH_SIZE); + + AskUserQuestion({ + questions: batch.map(q => ({ + question: q.question, + header: q.category.substring(0, 12), + multiSelect: false, + options: q.options.map(opt => ({ + label: opt.label, + description: opt.description + })) + })) + }) + + // Store answers before next round + batch.forEach((q, idx) => { + userAnswers[q.id] = { + question: q.question, + answer: responses[idx], + category: q.category + }; + }); +} +``` + +### Question Guidelines + +**Target**: 开发者(理解技术但需要从用户需求出发) + +**Question Structure**: `[跨角色分析发现] + [需要澄清的决策点]` +**Option Structure**: `标签:[具体方案] + 说明:[业务影响] + [技术权衡]` + +**9-Category Taxonomy**: + +| Category | Focus | Example Question Pattern | +|----------|-------|--------------------------| +| User Intent | 用户目标 | "MVP阶段核心目标?" + 验证/壁垒/完整性 | +| Requirements | 需求细化 | "功能优先级如何排序?" + 核心/增强/可选 | +| Architecture | 架构决策 | "技术栈选择考量?" + 熟悉度/先进性/成熟度 | +| UX | 用户体验 | "交互复杂度取舍?" + 简洁/丰富/渐进 | +| Feasibility | 可行性 | "资源约束下的范围?" + 最小/标准/完整 | +| Risk | 风险管理 | "风险容忍度?" + 保守/平衡/激进 | +| Process | 流程规范 | "迭代节奏?" + 快速/稳定/灵活 | +| Decisions | 决策确认 | "冲突解决方案?" + 方案A/方案B/折中 | +| Terminology | 术语统一 | "统一使用哪个术语?" + 术语A/术语B | + +**Quality Rules**: + +**MUST Include**: +- ✅ All questions in Chinese (用中文提问) +- ✅ 基于跨角色分析的具体发现 +- ✅ 选项包含业务影响说明 +- ✅ 解决实际的模糊点或冲突 + +**MUST Avoid**: +- ❌ 与角色分析无关的通用问题 +- ❌ 重复已在 artifacts 阶段确认的内容 +- ❌ 过于细节的实现级问题 + +#### Step 3: Build Update Plan + +```javascript +update_plan = { + "role1": { + "enhancements": ["EP-001", "EP-003"], + "clarifications": [ + {"question": "...", "answer": "...", "category": "..."} + ] + }, + "role2": { + "enhancements": ["EP-002"], + "clarifications": [...] + } +} +``` + +### Phase 5: Parallel Document Update Agents + +**Execute in parallel** (one agent per role): + +```javascript +// Step 1: Spawn all update agents in parallel +const updateAgents = []; + +participating_roles.forEach((role, index) => { + const role_plan = update_plan[role]; + + const agentId = spawn_agent({ + message: ` +## TASK ASSIGNMENT + +### MANDATORY FIRST STEPS (Agent Execute) +1. **Read role definition**: ~/.codex/agents/conceptual-planning-agent.md (MUST read first) +2. Read: .workflow/project-tech.json +3. Read: .workflow/project-guidelines.json + +--- + +## Agent Mission +Apply enhancements and clarifications to ${role} analysis + +## Input +- role: ${role} +- analysis_path: ${brainstorm_dir}/${role}/analysis.md +- enhancements: ${JSON.stringify(role_plan.enhancements)} +- clarifications: ${JSON.stringify(role_plan.clarifications)} +- original_user_intent: ${intent} + +## Flow Control Steps +1. load_current_analysis → Read analysis file +2. add_clarifications_section → Insert Q&A section +3. apply_enhancements → Integrate into relevant sections +4. resolve_contradictions → Remove conflicts +5. enforce_terminology → Align terminology +6. validate_intent → Verify alignment with user intent +7. write_updated_file → Save changes + +## Output +Updated ${role}/analysis.md +` + }); + + updateAgents.push({ agentId, role }); +}); + +// Step 2: Batch wait for all update agents +const updateIds = updateAgents.map(a => a.agentId); +const updateResults = wait({ + ids: updateIds, + timeout_ms: 900000 // 15 minutes for all updates +}); + +// Step 3: Check completion status +const updatedRoles = []; +const failedUpdates = []; + +updateAgents.forEach(({ agentId, role }) => { + if (updateResults.status[agentId]?.completed) { + updatedRoles.push(role); + } else { + failedUpdates.push(role); + } +}); + +if (updateResults.timed_out) { + console.warn('Some role updates timed out:', failedUpdates); +} + +// Step 4: Batch cleanup - IMPORTANT +updateAgents.forEach(({ agentId }) => { + close_agent({ id: agentId }); +}); + +console.log(`Updated: ${updatedRoles.length}/${participating_roles.length} roles`); +``` + +**Agent Characteristics**: +- **Isolation**: Each agent updates exactly ONE role (parallel safe) +- **Dependencies**: Zero cross-agent dependencies +- **Validation**: All updates must align with original_user_intent +- **Lifecycle**: Explicit spawn → wait → close for each agent + +### Phase 6: Finalization + +#### Step 1: Update Context Package + +```javascript +// Sync updated analyses to context-package.json +const context_pkg = Read(".workflow/active/WFS-{session}/.process/context-package.json") + +// Update guidance-specification if exists +// Update synthesis-specification if exists +// Re-read all role analysis files +// Update metadata timestamps + +Write(context_pkg_path, JSON.stringify(context_pkg)) +``` + +#### Step 2: Update Session Metadata + +```json +{ + "phases": { + "BRAINSTORM": { + "status": "clarification_completed", + "clarification_completed": true, + "completed_at": "timestamp", + "participating_roles": [...], + "clarification_results": { + "enhancements_applied": ["EP-001", "EP-002"], + "questions_asked": 3, + "categories_clarified": ["Architecture", "UX"], + "roles_updated": ["role1", "role2"] + }, + "quality_metrics": { + "user_intent_alignment": "validated", + "ambiguity_resolution": "complete", + "terminology_consistency": "enforced" + } + } + } +} +``` + +#### Step 3: Completion Report + +```markdown +## ✅ Clarification Complete + +**Enhancements Applied**: EP-001, EP-002, EP-003 +**Questions Answered**: 3/5 +**Roles Updated**: role1, role2, role3 + +### Next Steps +✅ PROCEED: `workflow:plan --session WFS-{session-id}` +``` + +--- + +## Output + +**Location**: `.workflow/active/WFS-{session}/.brainstorming/[role]/analysis*.md` + +**Updated Structure**: +```markdown +## Clarifications +### Session {date} +- **Q**: {question} (Category: {category}) + **A**: {answer} + +## {Existing Sections} +{Refined content based on clarifications} +``` + +**Changes**: +- User intent validated/corrected +- Requirements more specific/measurable +- Architecture with rationale +- Ambiguities resolved, placeholders removed +- Consistent terminology + +--- + +## Quality Checklist + +**Content**: +- ✅ All role analyses loaded/analyzed +- ✅ Cross-role analysis (consensus, conflicts, gaps) +- ✅ 9-category ambiguity scan +- ✅ Questions prioritized + +**Analysis**: +- ✅ User intent validated +- ✅ Cross-role synthesis complete +- ✅ Ambiguities resolved +- ✅ Terminology consistent + +**Documents**: +- ✅ Clarifications section formatted +- ✅ Sections reflect answers +- ✅ No placeholders (TODO/TBD) +- ✅ Valid Markdown + +**Agent Lifecycle**: +- ✅ All spawn_agent have corresponding close_agent +- ✅ Analysis agent closed before update agents spawn +- ✅ All update agents closed after batch wait +- ✅ Error paths include agent cleanup + +--- + +## Post-Phase Update + +After Phase 3 completes: +- **Output Created**: `synthesis-specification.md`, updated role `analysis*.md` files +- **Cross-Role Integration**: All role insights synthesized and conflicts resolved +- **Agent Cleanup**: All agents (analysis + update) properly closed +- **Next Action**: Workflow complete, recommend `workflow:plan --session {session_id}` +- **State Update**: Update workflow-session.json with synthesis completion status diff --git a/ccw/docs-site/.docusaurus/client-manifest.json b/ccw/docs-site/.docusaurus/client-manifest.json index e8c04daf..219bc86d 100644 --- a/ccw/docs-site/.docusaurus/client-manifest.json +++ b/ccw/docs-site/.docusaurus/client-manifest.json @@ -146,9 +146,9 @@ "11": { "js": [ { - "file": "assets/js/ea313555.83795af1.js", - "hash": "c278f1a5486a6d4f", - "publicPath": "/docs/zh/assets/js/ea313555.83795af1.js" + "file": "assets/js/ea313555.a8cac875.js", + "hash": "98808163b4aebb60", + "publicPath": "/docs/zh/assets/js/ea313555.a8cac875.js" } ] }, @@ -227,9 +227,9 @@ "207": { "js": [ { - "file": "assets/js/562bb8cb.5f71cec9.js", - "hash": "8c9024ec8e242da5", - "publicPath": "/docs/zh/assets/js/562bb8cb.5f71cec9.js" + "file": "assets/js/562bb8cb.2d7d52c7.js", + "hash": "fe9fce65416e15af", + "publicPath": "/docs/zh/assets/js/562bb8cb.2d7d52c7.js" } ] }, @@ -245,9 +245,9 @@ "273": { "js": [ { - "file": "assets/js/8a7e39ed.dcce61e8.js", - "hash": "0de4a6cd536cf48e", - "publicPath": "/docs/zh/assets/js/8a7e39ed.dcce61e8.js" + "file": "assets/js/8a7e39ed.b54858fe.js", + "hash": "2817123aeb7d32ac", + "publicPath": "/docs/zh/assets/js/8a7e39ed.b54858fe.js" } ] }, @@ -263,18 +263,18 @@ "354": { "js": [ { - "file": "assets/js/runtime~main.3343a00a.js", - "hash": "612541bfdd44e998", - "publicPath": "/docs/zh/assets/js/runtime~main.3343a00a.js" + "file": "assets/js/runtime~main.bd5a8ace.js", + "hash": "e9e746aba7bc0059", + "publicPath": "/docs/zh/assets/js/runtime~main.bd5a8ace.js" } ] }, "366": { "js": [ { - "file": "assets/js/775938bf.8d71fe29.js", - "hash": "d836a8b541f49213", - "publicPath": "/docs/zh/assets/js/775938bf.8d71fe29.js" + "file": "assets/js/775938bf.0f3b32d9.js", + "hash": "5b8d55ebddf46ae1", + "publicPath": "/docs/zh/assets/js/775938bf.0f3b32d9.js" } ] }, @@ -344,9 +344,9 @@ "567": { "js": [ { - "file": "assets/js/46f40178.2e24b189.js", - "hash": "42807532af314910", - "publicPath": "/docs/zh/assets/js/46f40178.2e24b189.js" + "file": "assets/js/46f40178.a8a5a914.js", + "hash": "328f7f208a4181bf", + "publicPath": "/docs/zh/assets/js/46f40178.a8a5a914.js" } ] }, diff --git a/ccw/docs-site/build/404.html b/ccw/docs-site/build/404.html index 9bc6524a..d39887f1 100644 --- a/ccw/docs-site/build/404.html +++ b/ccw/docs-site/build/404.html @@ -4,7 +4,7 @@ CCW Help Documentation - + diff --git a/ccw/docs-site/build/assets/js/ea313555.0d8924d5.js b/ccw/docs-site/build/assets/js/ea313555.0d8924d5.js deleted file mode 100644 index d4a409bf..00000000 --- a/ccw/docs-site/build/assets/js/ea313555.0d8924d5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[11],{1184(e,n,s){s.d(n,{R:()=>t,x:()=>o});var i=s(3696);const l={},r=i.createContext(l);function t(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(r.Provider,{value:n},e.children)}},4040(e,n,s){s.d(n,{A:()=>m});var i=s(3696),l=s(4357),r=s(6357),t=s(213),o=s(6476);const c="details_B4FW",d="isBrowser_Cof9",a="collapsibleContent_VYua";var h=s(2540);function x(e){return!!e&&("SUMMARY"===e.tagName||x(e.parentElement))}function j(e,n){return!!e&&(e===n||j(e.parentElement,n))}function u({summary:e,children:n,...s}){(0,r.A)().collectAnchor(s.id);const u=(0,t.A)(),p=(0,i.useRef)(null),{collapsed:m,setCollapsed:g}=(0,o.u)({initialState:!s.open}),[w,f]=(0,i.useState)(s.open),v=i.isValidElement(e)?e:(0,h.jsx)("summary",{children:e??"Details"});return(0,h.jsxs)("details",{...s,ref:p,open:w,"data-collapsed":m,className:(0,l.A)(c,u&&d,s.className),onMouseDown:e=>{x(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;x(n)&&j(n,p.current)&&(e.preventDefault(),m?(g(!1),f(!0)):g(!0))},children:[v,(0,h.jsx)(o.N,{lazy:!1,collapsed:m,onCollapseTransitionEnd:e=>{g(e),f(!e)},children:(0,h.jsx)("div",{className:a,children:n})})]})}const p="details_SZgV";function m({...e}){return(0,h.jsx)(u,{...e,className:(0,l.A)("alert alert--info",p,e.className)})}},4220(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"faq","title":"Frequently Asked Questions","description":"Common questions about CCW, workflows, commands, and troubleshooting.","source":"@site/docs/faq.mdx","sourceDirName":".","slug":"/faq","permalink":"/docs/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/faq.mdx","tags":[],"version":"current","sidebarPosition":99,"frontMatter":{"title":"Frequently Asked Questions","sidebar_label":"FAQ","sidebar_position":99},"sidebar":"docs","previous":{"title":"Level 5: Intelligent","permalink":"/docs/workflows/level-5-intelligent"}}');var l=s(2540),r=s(1184),t=s(4040);s(2436);const o={title:"Frequently Asked Questions",sidebar_label:"FAQ",sidebar_position:99},c="Frequently Asked Questions",d={},a=[{value:"General Questions",id:"general-questions",level:2},{value:"What is CCW?",id:"what-is-ccw",level:3},{value:"What are the system requirements?",id:"what-are-the-system-requirements",level:3},{value:"How do I install CCW?",id:"how-do-i-install-ccw",level:3},{value:"Is CCW free to use?",id:"is-ccw-free-to-use",level:3},{value:"What programming languages are supported?",id:"what-programming-languages-are-supported",level:3},{value:"Workflow Selection",id:"workflow-selection",level:2},{value:"How do I choose the right workflow?",id:"how-do-i-choose-the-right-workflow",level:3},{value:"What's the difference between Main Workflow and Issue Workflow?",id:"whats-the-difference-between-main-workflow-and-issue-workflow",level:3},{value:"What are Minimum Execution Units?",id:"what-are-minimum-execution-units",level:3},{value:"When should I use each workflow level?",id:"when-should-i-use-each-workflow-level",level:3},{value:"Command Usage",id:"command-usage",level:2},{value:"How do I use workflow commands?",id:"how-do-i-use-workflow-commands",level:3},{value:"What is the difference between lite-execute and execute?",id:"what-is-the-difference-between-lite-execute-and-execute",level:3},{value:"How do I use hotfix mode?",id:"how-do-i-use-hotfix-mode",level:3},{value:"How do I resume a paused session?",id:"how-do-i-resume-a-paused-session",level:3},{value:"AI Models",id:"ai-models",level:2},{value:"Which AI models does CCW support?",id:"which-ai-models-does-ccw-support",level:3},{value:"How do I configure API keys?",id:"how-do-i-configure-api-keys",level:3},{value:"What is multi-CLI collaboration?",id:"what-is-multi-cli-collaboration",level:3},{value:"Testing",id:"testing",level:2},{value:"How do I add tests to existing code?",id:"how-do-i-add-tests-to-existing-code",level:3},{value:"How do I fix failing tests?",id:"how-do-i-fix-failing-tests",level:3},{value:"What is TDD (Test-Driven Development)?",id:"what-is-tdd-test-driven-development",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"My workflow failed. What should I do?",id:"my-workflow-failed-what-should-i-do",level:3},{value:"How do I skip a failing task?",id:"how-do-i-skip-a-failing-task",level:3},{value:"How do I clean up old sessions?",id:"how-do-i-clean-up-old-sessions",level:3},{value:"Why is my workflow running slowly?",id:"why-is-my-workflow-running-slowly",level:3},{value:"How do I debug workflow issues?",id:"how-do-i-debug-workflow-issues",level:3},{value:"Integration",id:"integration",level:2},{value:"Can I use CCW with my existing CI/CD?",id:"can-i-use-ccw-with-my-existing-cicd",level:3},{value:"Can CCW work with monorepos?",id:"can-ccw-work-with-monorepos",level:3},{value:"How do I migrate from another tool?",id:"how-do-i-migrate-from-another-tool",level:3},{value:"Best Practices",id:"best-practices",level:2},{value:"What are the workflow best practices?",id:"what-are-the-workflow-best-practices",level:3},{value:"How do I get the most out of AI assistance?",id:"how-do-i-get-the-most-out-of-ai-assistance",level:3},{value:"Related Documentation",id:"related-documentation",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"frequently-asked-questions",children:"Frequently Asked Questions"})}),"\n",(0,l.jsx)(n.p,{children:"Common questions about CCW, workflows, commands, and troubleshooting."}),"\n",(0,l.jsx)(n.h2,{id:"general-questions",children:"General Questions"}),"\n",(0,l.jsx)(n.h3,{id:"what-is-ccw",children:"What is CCW?"}),"\n",(0,l.jsx)(n.p,{children:"CCW (Claude Code Workflows) is a professional workflow automation platform that combines AI-powered intelligence with structured development workflows. It provides 40+ commands and 15 integrated workflows to accelerate software development while maintaining quality standards."}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Key Features:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"AI-powered code analysis, generation, and review"}),"\n",(0,l.jsx)(n.li,{children:"15 workflow levels from rapid execution to intelligent orchestration"}),"\n",(0,l.jsx)(n.li,{children:"Session management with full state persistence"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination with parallel execution"}),"\n",(0,l.jsx)(n.li,{children:"Built-in testing, verification, and code review"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-system-requirements",children:"What are the system requirements?"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Minimum Requirements:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 16.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"Git 2.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"4GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"500MB disk space"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Recommended:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 18.x LTS"}),"\n",(0,l.jsx)(n.li,{children:"8GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"2GB disk space for artifacts and sessions"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-install-ccw",children:"How do I install CCW?"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Install globally via npm\r\nnpm install -g @ccw/cli\r\n\r\n# Or use npx (no installation required)\r\nnpx @ccw/cli init\r\n\r\n# Initialize in your project\r\nccw init\n"})}),"\n",(0,l.jsx)(n.h3,{id:"is-ccw-free-to-use",children:"Is CCW free to use?"}),"\n",(0,l.jsx)(n.p,{children:"Yes, CCW is open-source and free to use. However, CCW integrates with third-party AI services (Gemini, Codex, Claude, Qwen) that may have their own pricing. You'll need API keys for any AI services you want to use."}),"\n",(0,l.jsx)(n.h3,{id:"what-programming-languages-are-supported",children:"What programming languages are supported?"}),"\n",(0,l.jsx)(n.p,{children:"CCW supports all programming languages. The AI models can analyze and generate code in any language, including:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Web"}),": JavaScript, TypeScript, Python, PHP, Ruby"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Mobile"}),": Swift, Kotlin, React Native, Flutter"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Systems"}),": Rust, Go, C, C++"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Data"}),": Python, R, SQL"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Enterprise"}),": Java, C#, .NET"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"workflow-selection",children:"Workflow Selection"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-choose-the-right-workflow",children:"How do I choose the right workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Decision Framework"}),(0,l.jsx)(n.p,{children:"Use this quick decision tree:"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Post-development maintenance?"})," \u2192 Use ",(0,l.jsx)(n.a,{href:"/docs/workflows/faq#what-is-the-difference-between-main-workflow-and-issue-workflow",children:"Issue Workflow"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Uncertain which commands to use?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"ccw-coordinator"})," (Level 5)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Requirements unclear?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"brainstorm:auto-parallel"})," (Level 4)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need persistent session?"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Standard development \u2192 ",(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test-driven \u2192 ",(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test fixes \u2192 ",(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})," (Level 3)"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need multi-perspective analysis?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"multi-cli-plan"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Bug fix?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-fix"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need planning?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Quick task?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-lite-lite"})," (Level 1)"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"whats-the-difference-between-main-workflow-and-issue-workflow",children:"What's the difference between Main Workflow and Issue Workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Main Workflow"})," is for primary development:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Feature development (Levels 1-5)"}),"\n",(0,l.jsx)(n.li,{children:"Active development phase"}),"\n",(0,l.jsx)(n.li,{children:"Dependency-based parallelism"}),"\n",(0,l.jsx)(n.li,{children:"Works on current branch"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Issue Workflow"})," is for post-development maintenance:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Bug fixes and enhancements after merge"}),"\n",(0,l.jsx)(n.li,{children:"After main workflow completes"}),"\n",(0,l.jsx)(n.li,{children:"Optional worktree isolation"}),"\n",(0,l.jsx)(n.li,{children:"Keeps main branch stable"}),"\n"]}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Main Workflow"}),(0,l.jsx)(n.th,{children:"Issue Workflow"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Purpose"})}),(0,l.jsx)(n.td,{children:"Feature development"}),(0,l.jsx)(n.td,{children:"Post-development fixes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Timing"})}),(0,l.jsx)(n.td,{children:"Development phase"}),(0,l.jsx)(n.td,{children:"After main workflow completes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Scope"})}),(0,l.jsx)(n.td,{children:"Complete feature implementation"}),(0,l.jsx)(n.td,{children:"Targeted fixes/enhancements"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Parallelism"})}),(0,l.jsx)(n.td,{children:"Dependency analysis"}),(0,l.jsx)(n.td,{children:"Worktree isolation (optional)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Branch Model"})}),(0,l.jsx)(n.td,{children:"Work on current branch"}),(0,l.jsx)(n.td,{children:"Can use isolated worktree"})]})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-minimum-execution-units",children:"What are Minimum Execution Units?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Minimum Execution Units"})," are sets of commands that must execute together as atomic groups to achieve meaningful workflow milestones. Splitting these commands breaks logical flow and creates incomplete states."]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common Minimum Execution Units:"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Unit"}),(0,l.jsx)(n.th,{children:"Commands"}),(0,l.jsx)(n.th,{children:"Purpose"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Quick Implementation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Lightweight plan and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Multi-CLI Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"multi-cli-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Multi-perspective analysis and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Bug Fix"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-fix"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Bug diagnosis and fix execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Verified Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"plan-verify"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Planning with verification and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"TDD Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Test-driven development planning and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Test Validation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})]}),(0,l.jsx)(n.td,{children:"Generate test tasks and execute test-fix cycle"})]})]})]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Example"}),": The unit ",(0,l.jsx)(n.code,{children:"lite-plan \u2192 lite-execute"})," must complete together. Stopping after ",(0,l.jsx)(n.code,{children:"lite-plan"})," leaves you with a plan but no implementation."]})]}),"\n",(0,l.jsx)(n.h3,{id:"when-should-i-use-each-workflow-level",children:"When should I use each workflow level?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Level Selection Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 1 (lite-lite-lite):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Quick fixes (typos, minor adjustments)"}),"\n",(0,l.jsx)(n.li,{children:"Simple features (single function, small utility)"}),"\n",(0,l.jsx)(n.li,{children:"Config changes (environment variables, timeouts)"}),"\n",(0,l.jsx)(n.li,{children:"Documentation updates"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 2 (lite-plan, lite-fix, multi-cli-plan):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Single-module features"}),"\n",(0,l.jsx)(n.li,{children:"Bug diagnosis and fixes"}),"\n",(0,l.jsx)(n.li,{children:"Technology selection decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 3 (plan, tdd-plan, test-fix-gen):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Multi-module changes"}),"\n",(0,l.jsx)(n.li,{children:"Refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Test-driven development"}),"\n",(0,l.jsx)(n.li,{children:"Test failure fixes"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Level 4 (brainstorm",":auto-parallel","):"]})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"New feature design"}),"\n",(0,l.jsx)(n.li,{children:"System architecture refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Exploratory requirements"}),"\n",(0,l.jsx)(n.li,{children:"Multi-dimensional trade-offs"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 5 (ccw-coordinator):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complex multi-step workflows"}),"\n",(0,l.jsx)(n.li,{children:"Uncertain which commands to use"}),"\n",(0,l.jsx)(n.li,{children:"End-to-end automation"}),"\n",(0,l.jsx)(n.li,{children:"Team collaboration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Issue Workflow:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Post-development issue fixes"}),"\n",(0,l.jsx)(n.li,{children:"Maintaining main branch stability"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"command-usage",children:"Command Usage"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-workflow-commands",children:"How do I use workflow commands?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Command Patterns"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Basic Pattern:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw <command> <arguments>\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Examples:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Level 1 - Direct execution\r\nccw lite-lite-lite "Fix login button"\r\n\r\n# Level 2 - Lightweight planning\r\nccw lite-plan "Add user profile page"\r\nccw lite-execute --in-memory\r\n\r\n# Level 3 - Full workflow\r\nccw workflow:plan "Implement OAuth2"\r\nccw workflow:execute --session WFS-oauth-auth\r\n\r\n# Level 4 - Brainstorming\r\nccw brainstorm:auto-parallel "Design notification system"\r\n\r\n# Level 5 - Intelligent coordination\r\nccw ccw-coordinator "Refactor API layer"\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-the-difference-between-lite-execute-and-execute",children:"What is the difference between lite-execute and execute?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"lite-execute"})," (Level 2):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw lite-execute --in-memory\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 2 workflows"}),"\n",(0,l.jsx)(n.li,{children:"In-memory planning (no session files)"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution for independent tasks"}),"\n",(0,l.jsx)(n.li,{children:"Optional code review"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"execute"})," (Level 3):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw workflow:execute --session WFS-{session-id}\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 3 workflows"}),"\n",(0,l.jsx)(n.li,{children:"Session-based execution"}),"\n",(0,l.jsx)(n.li,{children:"Dependency analysis"}),"\n",(0,l.jsx)(n.li,{children:"Full state tracking and resumability"}),"\n",(0,l.jsx)(n.li,{children:"Task completion summaries"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-hotfix-mode",children:"How do I use hotfix mode?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Hotfix Usage"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Hotfix mode"})," is for production emergencies:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw lite-fix --hotfix "Production database connection failing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"What it does:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Skips most diagnosis phases"}),"\n",(0,l.jsx)(n.li,{children:"Minimal planning (direct execution)"}),"\n",(0,l.jsx)(n.li,{children:"Auto-generates follow-up tasks for complete fix + post-mortem"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"When to use:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Production incidents"}),"\n",(0,l.jsx)(n.li,{children:"Critical bugs requiring immediate fix"}),"\n",(0,l.jsx)(n.li,{children:"Outages and service disruptions"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"What happens after:"}),"\r\nCCW automatically generates follow-up tasks for:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete root cause analysis"}),"\n",(0,l.jsx)(n.li,{children:"Comprehensive fix"}),"\n",(0,l.jsx)(n.li,{children:"Post-mortem documentation"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-resume-a-paused-session",children:"How do I resume a paused session?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Session Resume"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Resume most recent session\r\nccw workflow:session:resume\r\n\r\n# Resume specific session\r\nccw workflow:session:resume WFS-user-auth-v2\r\n\r\n# List all sessions\r\nccw workflow:session:list\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session states:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"active"}),": Currently running"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"paused"}),": Stopped, can be resumed"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"completed"}),": Finished and archived"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"ai-models",children:"AI Models"}),"\n",(0,l.jsx)(n.h3,{id:"which-ai-models-does-ccw-support",children:"Which AI models does CCW support?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Supported Models"}),(0,l.jsx)(n.p,{children:"CCW supports multiple AI models via CLI endpoints:"}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Model"}),(0,l.jsx)(n.th,{children:"Capabilities"}),(0,l.jsx)(n.th,{children:"Best For"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Gemini"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code review, debugging, refactoring"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Codex"})}),(0,l.jsx)(n.td,{children:"Analysis + Write + Review"}),(0,l.jsx)(n.td,{children:"Git-aware code review, implementation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Claude"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Complex reasoning, documentation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Qwen"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code generation, pattern matching"})]})]})]}),(0,l.jsxs)(n.p,{children:["Configure models in ",(0,l.jsx)(n.code,{children:"~/.claude/cli-tools.json"}),"."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-configure-api-keys",children:"How do I configure API keys?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"API Key Configuration"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Set environment variables:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Gemini\r\nexport GEMINI_API_KEY="your-key-here"\r\n\r\n# OpenAI (Codex)\r\nexport OPENAI_API_KEY="your-key-here"\r\n\r\n# Anthropic (Claude)\r\nexport ANTHROPIC_API_KEY="your-key-here"\r\n\r\n# Qwen\r\nexport DASHSCOPE_API_KEY="your-key-here"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Or configure in ",(0,l.jsx)(n.code,{children:".env"})," file:"]})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-env",children:"GEMINI_API_KEY=your-key-here\r\nOPENAI_API_KEY=your-key-here\r\nANTHROPIC_API_KEY=your-key-here\r\nDASHSCOPE_API_KEY=your-key-here\n"})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-multi-cli-collaboration",children:"What is multi-CLI collaboration?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Multi-CLI Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Multi-CLI collaboration"})," uses multiple AI models to analyze the same problem from different perspectives:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw multi-cli-plan "Compare Redis vs RabbitMQ for message queuing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"How it works:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Multiple AI models analyze independently"}),"\n",(0,l.jsx)(n.li,{children:"Each provides unique insights and recommendations"}),"\n",(0,l.jsx)(n.li,{children:"Results are synthesized into a comprehensive analysis"}),"\n",(0,l.jsx)(n.li,{children:"You get multiple perspectives before making decisions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best for:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Technology selection"}),"\n",(0,l.jsx)(n.li,{children:"Architecture decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n",(0,l.jsx)(n.li,{children:"Trade-off analysis"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-add-tests-to-existing-code",children:"How do I add tests to existing code?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Generation"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session Mode (from existing session):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw test-fix-gen WFS-user-auth-v2\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prompt Mode (direct description):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw test-fix-gen "Add unit tests for the auth API"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"CCW will:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze the code structure"}),"\n",(0,l.jsx)(n.li,{children:"Generate appropriate test cases"}),"\n",(0,l.jsx)(n.li,{children:"Create test files following project patterns"}),"\n",(0,l.jsx)(n.li,{children:"Implement tests with proper assertions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-fix-failing-tests",children:"How do I fix failing tests?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Fix Workflow"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Generate test fix tasks\r\nccw test-fix-gen "Tests failing for user registration"\r\n\r\n# Execute test-fix cycle\r\nccw test-cycle-execute\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workflow:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze test failures"}),"\n",(0,l.jsx)(n.li,{children:"Identify root causes"}),"\n",(0,l.jsx)(n.li,{children:"Fix issues iteratively"}),"\n",(0,l.jsx)(n.li,{children:"Verify >= 95% pass rate"}),"\n",(0,l.jsx)(n.li,{children:"Stop when tests pass or max iterations reached"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-tdd-test-driven-development",children:"What is TDD (Test-Driven Development)?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"TDD Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"TDD"})," follows the Red-Green-Refactor cycle:"]}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Red"}),": Write a failing test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Green"}),": Write minimal code to pass the test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Refactor"}),": Improve code while keeping tests green"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"The Iron Law:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:"NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Why write tests first?"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Test-First"}),(0,l.jsx)(n.th,{children:"Test-After"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Proof"})}),(0,l.jsx)(n.td,{children:"Tests fail before implementation"}),(0,l.jsx)(n.td,{children:"Tests pass immediately (proves nothing)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Discovery"})}),(0,l.jsx)(n.td,{children:"Edge cases found before coding"}),(0,l.jsx)(n.td,{children:"Edge cases found after coding"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Verification"})}),(0,l.jsx)(n.td,{children:"Verifies requirements"}),(0,l.jsx)(n.td,{children:"Verifies implementation"})]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,l.jsx)(n.h3,{id:"my-workflow-failed-what-should-i-do",children:"My workflow failed. What should I do?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Troubleshooting Steps"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Check the error message"})," - Identify the root cause"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Review session state"})," - Check ",(0,l.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Resume the session"})," - Use ",(0,l.jsx)(n.code,{children:"ccw workflow:session:resume"})," to continue"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Adjust and retry"})," - Modify approach based on error"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common fixes:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"API key errors"}),": Verify environment variables are set"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Module not found"}),": Run ",(0,l.jsx)(n.code,{children:"npm install"})," or ",(0,l.jsx)(n.code,{children:"pip install"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Git errors"}),": Ensure clean git state (",(0,l.jsx)(n.code,{children:"git status"}),")"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Timeout errors"}),": Increase timeout in task JSON"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-skip-a-failing-task",children:"How do I skip a failing task?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Skip Task"}),(0,l.jsx)(n.p,{children:'Edit the task JSON to set status to "completed":'}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Use with caution:"})," Skipping tasks may leave the workflow in an incomplete state."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-clean-up-old-sessions",children:"How do I clean up old sessions?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Cleanup Commands"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# List sessions\r\nccw workflow:session:list\r\n\r\n# Remove specific session\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# Clean all completed sessions\r\nccw workflow:clean\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Automatic cleanup:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Completed sessions are archived to ",(0,l.jsx)(n.code,{children:".workflow/completed/"})]}),"\n",(0,l.jsx)(n.li,{children:"Old sessions (> 30 days) can be safely removed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"why-is-my-workflow-running-slowly",children:"Why is my workflow running slowly?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Performance Tips"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Possible causes:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Large codebase"}),": CCW analyzes the entire project"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use ",(0,l.jsx)(n.code,{children:"--focus-paths"})," to limit analysis scope"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Many dependencies"}),": Slow AI response times"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use faster models (Gemini Flash) for initial analysis"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Sequential tasks"}),": Waiting on dependent tasks"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Review task dependencies in ",(0,l.jsx)(n.code,{children:"plan-verify"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Network issues"}),": Slow API calls to AI services"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Check network connectivity and API status"]}),"\n"]}),"\n"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Optimization tips:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Limit analysis scope\r\nccw plan "Add login" --focus-paths src/auth\r\n\r\n# Use faster model for initial analysis\r\nccw cli -p "Quick analysis" --model gemini-2.0-flash --mode analysis\r\n\r\n# Run in parallel when possible\r\nccw workflow:execute --parallel 4\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-debug-workflow-issues",children:"How do I debug workflow issues?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Debugging Workflow"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Enable debug logging:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'DEBUG=ccw:* ccw workflow:plan "My feature"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Check session logs:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# View session state\r\ncat .workflow/active/WFS-{session}/workflow-session.json\r\n\r\n# View task progress\r\ncat .workflow/active/WFS-{session}/TODO_LIST.md\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Use debug workflow:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw workflow:debug-with-file "Debug memory leak in connection handler"\n'})}),(0,l.jsx)(n.p,{children:"This provides hypothesis-driven debugging with documented exploration."})]}),"\n",(0,l.jsx)(n.h2,{id:"integration",children:"Integration"}),"\n",(0,l.jsx)(n.h3,{id:"can-i-use-ccw-with-my-existing-cicd",children:"Can I use CCW with my existing CI/CD?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"CI/CD Integration"}),(0,l.jsx)(n.p,{children:"Yes, CCW can be integrated into CI/CD pipelines:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"GitHub Actions Example:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:'- name: Run CCW Workflow\r\n run: |\r\n ccw workflow:plan "Implement feature"\r\n ccw workflow:execute --session WFS-feature\r\n env:\r\n GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best practices:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Use ",(0,l.jsx)(n.code,{children:"--mode analysis"})," for code review in CI"]}),"\n",(0,l.jsx)(n.li,{children:"Store API keys in secret management"}),"\n",(0,l.jsx)(n.li,{children:"Run workflows in isolated environments"}),"\n",(0,l.jsx)(n.li,{children:"Archive sessions for audit trails"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"can-ccw-work-with-monorepos",children:"Can CCW work with monorepos?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Monorepo Support"}),(0,l.jsx)(n.p,{children:"Yes, CCW supports monorepos:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workspace-aware execution:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Execute in specific package\r\nccw plan "Add auth to frontend" --cd packages/frontend\r\n\r\n# Execute across packages\r\nccw plan "Update API contracts" --include-dir packages/api,packages/shared\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Benefits:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Dependency-aware task distribution"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution across packages"}),"\n",(0,l.jsx)(n.li,{children:"Shared session state"}),"\n",(0,l.jsx)(n.li,{children:"Coordinated changes across workspaces"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-migrate-from-another-tool",children:"How do I migrate from another tool?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Migration Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From basic Git workflows:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Before: Manual planning\r\ngit checkout -b feature\r\n# ... manual planning ...\r\n\r\n# After: CCW planning\r\nccw plan "Add feature"\r\nccw execute --session WFS-feature\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From other AI tools:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"CCW provides structured workflows (vs. ad-hoc prompts)"}),"\n",(0,l.jsx)(n.li,{children:"Session management (vs. chat history)"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination (vs. single AI)"}),"\n",(0,l.jsx)(n.li,{children:"Persistent artifacts (vs. transient responses)"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Migration steps:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Install CCW: ",(0,l.jsx)(n.code,{children:"npm install -g @ccw/cli"})]}),"\n",(0,l.jsxs)(n.li,{children:["Initialize: ",(0,l.jsx)(n.code,{children:"ccw init"})]}),"\n",(0,l.jsx)(n.li,{children:"Start with Level 2 workflows for familiar patterns"}),"\n",(0,l.jsx)(n.li,{children:"Gradually adopt higher levels as needed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-workflow-best-practices",children:"What are the workflow best practices?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Start Simple"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use the lowest level that meets your needs"}),"\n",(0,l.jsx)(n.li,{children:"Don't over-engineer simple tasks"}),"\n",(0,l.jsx)(n.li,{children:"Scale up complexity as needed"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Plan Before Executing"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use verification steps when available"}),"\n",(0,l.jsx)(n.li,{children:"Review generated plans before execution"}),"\n",(0,l.jsx)(n.li,{children:"Adjust tasks based on project context"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Test Continuously"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Integrate testing into your workflow"}),"\n",(0,l.jsx)(n.li,{children:"Use TDD for critical features"}),"\n",(0,l.jsx)(n.li,{children:"Run tests after each iteration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Review Code"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use built-in review workflows"}),"\n",(0,l.jsx)(n.li,{children:"Leverage multi-CLI collaboration"}),"\n",(0,l.jsx)(n.li,{children:"Merge review feedback iteratively"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Document Decisions"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use brainstorm workflows for complex decisions"}),"\n",(0,l.jsx)(n.li,{children:"Keep session artifacts for reference"}),"\n",(0,l.jsx)(n.li,{children:"Archive completed sessions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"6. Maintain Session Hygiene"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete sessions when done"}),"\n",(0,l.jsx)(n.li,{children:"Clean up old sessions regularly"}),"\n",(0,l.jsx)(n.li,{children:"Archive important sessions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-get-the-most-out-of-ai-assistance",children:"How do I get the most out of AI assistance?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"AI Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Be Specific in Prompts"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'Bad: "Fix the bug"\r\nGood: "Fix the 500 error when users update their profile picture"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Provide Context"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw plan "Add OAuth2" \\\r\n --context "Using Express.js, MongoDB, Passport.js" \\\r\n --reference "Similar to existing Google OAuth implementation"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Use Multi-CLI Collaboration"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Get multiple perspectives\r\nccw multi-cli-plan "Architecture decision"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Leverage Memory"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Build on previous work\r\nccw plan "Continue auth refactor" --memory WFS-auth-v1\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Choose the Right Model"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Flash"}),": Fast, good for initial analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Pro"}),": Deep reasoning, complex tasks"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Codex"}),": Code review, git-aware analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Claude"}),": Documentation, complex reasoning"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"related-documentation",children:"Related Documentation"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/workflows/introduction",children:"Workflow Introduction"})," - Complete workflow guide"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/workflows/faq",children:"Workflow FAQ"})," - Workflow-specific questions"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/commands/general/ccw",children:"Command Reference"})," - All commands"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Still have questions?"})," ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"Open an issue"})," or check the ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/discussions",children:"discussion forums"}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/assets/js/ea313555.26e7d495.js b/ccw/docs-site/build/assets/js/ea313555.26e7d495.js new file mode 100644 index 00000000..a5749326 --- /dev/null +++ b/ccw/docs-site/build/assets/js/ea313555.26e7d495.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[11],{1184(e,n,s){s.d(n,{R:()=>t,x:()=>o});var i=s(3696);const l={},r=i.createContext(l);function t(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(r.Provider,{value:n},e.children)}},4040(e,n,s){s.d(n,{A:()=>m});var i=s(3696),l=s(4357),r=s(6357),t=s(213),o=s(6476);const c="details_B4FW",d="isBrowser_Cof9",a="collapsibleContent_VYua";var h=s(2540);function x(e){return!!e&&("SUMMARY"===e.tagName||x(e.parentElement))}function j(e,n){return!!e&&(e===n||j(e.parentElement,n))}function u({summary:e,children:n,...s}){(0,r.A)().collectAnchor(s.id);const u=(0,t.A)(),p=(0,i.useRef)(null),{collapsed:m,setCollapsed:g}=(0,o.u)({initialState:!s.open}),[w,f]=(0,i.useState)(s.open),v=i.isValidElement(e)?e:(0,h.jsx)("summary",{children:e??"Details"});return(0,h.jsxs)("details",{...s,ref:p,open:w,"data-collapsed":m,className:(0,l.A)(c,u&&d,s.className),onMouseDown:e=>{x(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;x(n)&&j(n,p.current)&&(e.preventDefault(),m?(g(!1),f(!0)):g(!0))},children:[v,(0,h.jsx)(o.N,{lazy:!1,collapsed:m,onCollapseTransitionEnd:e=>{g(e),f(!e)},children:(0,h.jsx)("div",{className:a,children:n})})]})}const p="details_SZgV";function m({...e}){return(0,h.jsx)(u,{...e,className:(0,l.A)("alert alert--info",p,e.className)})}},4220(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"faq","title":"Frequently Asked Questions","description":"Common questions about CCW, workflows, commands, and troubleshooting.","source":"@site/docs/faq.mdx","sourceDirName":".","slug":"/faq","permalink":"/docs/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/faq.mdx","tags":[],"version":"current","sidebarPosition":99,"frontMatter":{"title":"Frequently Asked Questions","sidebar_label":"FAQ","sidebar_position":99},"sidebar":"docs","previous":{"title":"Level 5: Intelligent","permalink":"/docs/workflows/level-5-intelligent"}}');var l=s(2540),r=s(1184),t=s(4040);s(2436);const o={title:"Frequently Asked Questions",sidebar_label:"FAQ",sidebar_position:99},c="Frequently Asked Questions",d={},a=[{value:"General Questions",id:"general-questions",level:2},{value:"What is CCW?",id:"what-is-ccw",level:3},{value:"What are the system requirements?",id:"what-are-the-system-requirements",level:3},{value:"How do I install CCW?",id:"how-do-i-install-ccw",level:3},{value:"Is CCW free to use?",id:"is-ccw-free-to-use",level:3},{value:"What programming languages are supported?",id:"what-programming-languages-are-supported",level:3},{value:"Workflow Selection",id:"workflow-selection",level:2},{value:"How do I choose the right workflow?",id:"how-do-i-choose-the-right-workflow",level:3},{value:"What's the difference between Main Workflow and Issue Workflow?",id:"whats-the-difference-between-main-workflow-and-issue-workflow",level:3},{value:"What are Minimum Execution Units?",id:"what-are-minimum-execution-units",level:3},{value:"When should I use each workflow level?",id:"when-should-i-use-each-workflow-level",level:3},{value:"Command Usage",id:"command-usage",level:2},{value:"How do I use workflow commands?",id:"how-do-i-use-workflow-commands",level:3},{value:"What is the difference between lite-execute and execute?",id:"what-is-the-difference-between-lite-execute-and-execute",level:3},{value:"How do I use hotfix mode?",id:"how-do-i-use-hotfix-mode",level:3},{value:"How do I resume a paused session?",id:"how-do-i-resume-a-paused-session",level:3},{value:"AI Models",id:"ai-models",level:2},{value:"Which AI models does CCW support?",id:"which-ai-models-does-ccw-support",level:3},{value:"How do I configure API keys?",id:"how-do-i-configure-api-keys",level:3},{value:"What is multi-CLI collaboration?",id:"what-is-multi-cli-collaboration",level:3},{value:"Testing",id:"testing",level:2},{value:"How do I add tests to existing code?",id:"how-do-i-add-tests-to-existing-code",level:3},{value:"How do I fix failing tests?",id:"how-do-i-fix-failing-tests",level:3},{value:"What is TDD (Test-Driven Development)?",id:"what-is-tdd-test-driven-development",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"My workflow failed. What should I do?",id:"my-workflow-failed-what-should-i-do",level:3},{value:"How do I skip a failing task?",id:"how-do-i-skip-a-failing-task",level:3},{value:"How do I clean up old sessions?",id:"how-do-i-clean-up-old-sessions",level:3},{value:"Why is my workflow running slowly?",id:"why-is-my-workflow-running-slowly",level:3},{value:"How do I debug workflow issues?",id:"how-do-i-debug-workflow-issues",level:3},{value:"Integration",id:"integration",level:2},{value:"Can I use CCW with my existing CI/CD?",id:"can-i-use-ccw-with-my-existing-cicd",level:3},{value:"Can CCW work with monorepos?",id:"can-ccw-work-with-monorepos",level:3},{value:"How do I migrate from another tool?",id:"how-do-i-migrate-from-another-tool",level:3},{value:"Best Practices",id:"best-practices",level:2},{value:"What are the workflow best practices?",id:"what-are-the-workflow-best-practices",level:3},{value:"How do I get the most out of AI assistance?",id:"how-do-i-get-the-most-out-of-ai-assistance",level:3},{value:"Related Documentation",id:"related-documentation",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"frequently-asked-questions",children:"Frequently Asked Questions"})}),"\n",(0,l.jsx)(n.p,{children:"Common questions about CCW, workflows, commands, and troubleshooting."}),"\n",(0,l.jsx)(n.h2,{id:"general-questions",children:"General Questions"}),"\n",(0,l.jsx)(n.h3,{id:"what-is-ccw",children:"What is CCW?"}),"\n",(0,l.jsx)(n.p,{children:"CCW (Claude Code Workflows) is a professional workflow automation platform that combines AI-powered intelligence with structured development workflows. It provides 40+ commands and 15 integrated workflows to accelerate software development while maintaining quality standards."}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Key Features:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"AI-powered code analysis, generation, and review"}),"\n",(0,l.jsx)(n.li,{children:"15 workflow levels from rapid execution to intelligent orchestration"}),"\n",(0,l.jsx)(n.li,{children:"Session management with full state persistence"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination with parallel execution"}),"\n",(0,l.jsx)(n.li,{children:"Built-in testing, verification, and code review"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-system-requirements",children:"What are the system requirements?"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Minimum Requirements:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 16.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"Git 2.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"4GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"500MB disk space"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Recommended:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 18.x LTS"}),"\n",(0,l.jsx)(n.li,{children:"8GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"2GB disk space for artifacts and sessions"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-install-ccw",children:"How do I install CCW?"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Install globally via npm\r\nnpm install -g @ccw/cli\r\n\r\n# Or use npx (no installation required)\r\nnpx @ccw/cli init\r\n\r\n# Initialize in your project\r\nccw init\n"})}),"\n",(0,l.jsx)(n.h3,{id:"is-ccw-free-to-use",children:"Is CCW free to use?"}),"\n",(0,l.jsx)(n.p,{children:"Yes, CCW is open-source and free to use. However, CCW integrates with third-party AI services (Gemini, Codex, Claude, Qwen) that may have their own pricing. You'll need API keys for any AI services you want to use."}),"\n",(0,l.jsx)(n.h3,{id:"what-programming-languages-are-supported",children:"What programming languages are supported?"}),"\n",(0,l.jsx)(n.p,{children:"CCW supports all programming languages. The AI models can analyze and generate code in any language, including:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Web"}),": JavaScript, TypeScript, Python, PHP, Ruby"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Mobile"}),": Swift, Kotlin, React Native, Flutter"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Systems"}),": Rust, Go, C, C++"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Data"}),": Python, R, SQL"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Enterprise"}),": Java, C#, .NET"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"workflow-selection",children:"Workflow Selection"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-choose-the-right-workflow",children:"How do I choose the right workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Decision Framework"}),(0,l.jsx)(n.p,{children:"Use this quick decision tree:"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Post-development maintenance?"})," \u2192 Use ",(0,l.jsx)(n.a,{href:"/workflows/faq#what-is-the-difference-between-main-workflow-and-issue-workflow",children:"Issue Workflow"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Uncertain which commands to use?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"ccw-coordinator"})," (Level 5)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Requirements unclear?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"brainstorm:auto-parallel"})," (Level 4)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need persistent session?"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Standard development \u2192 ",(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test-driven \u2192 ",(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test fixes \u2192 ",(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})," (Level 3)"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need multi-perspective analysis?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"multi-cli-plan"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Bug fix?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-fix"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need planning?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Quick task?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-lite-lite"})," (Level 1)"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"whats-the-difference-between-main-workflow-and-issue-workflow",children:"What's the difference between Main Workflow and Issue Workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Main Workflow"})," is for primary development:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Feature development (Levels 1-5)"}),"\n",(0,l.jsx)(n.li,{children:"Active development phase"}),"\n",(0,l.jsx)(n.li,{children:"Dependency-based parallelism"}),"\n",(0,l.jsx)(n.li,{children:"Works on current branch"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Issue Workflow"})," is for post-development maintenance:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Bug fixes and enhancements after merge"}),"\n",(0,l.jsx)(n.li,{children:"After main workflow completes"}),"\n",(0,l.jsx)(n.li,{children:"Optional worktree isolation"}),"\n",(0,l.jsx)(n.li,{children:"Keeps main branch stable"}),"\n"]}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Main Workflow"}),(0,l.jsx)(n.th,{children:"Issue Workflow"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Purpose"})}),(0,l.jsx)(n.td,{children:"Feature development"}),(0,l.jsx)(n.td,{children:"Post-development fixes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Timing"})}),(0,l.jsx)(n.td,{children:"Development phase"}),(0,l.jsx)(n.td,{children:"After main workflow completes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Scope"})}),(0,l.jsx)(n.td,{children:"Complete feature implementation"}),(0,l.jsx)(n.td,{children:"Targeted fixes/enhancements"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Parallelism"})}),(0,l.jsx)(n.td,{children:"Dependency analysis"}),(0,l.jsx)(n.td,{children:"Worktree isolation (optional)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Branch Model"})}),(0,l.jsx)(n.td,{children:"Work on current branch"}),(0,l.jsx)(n.td,{children:"Can use isolated worktree"})]})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-minimum-execution-units",children:"What are Minimum Execution Units?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Minimum Execution Units"})," are sets of commands that must execute together as atomic groups to achieve meaningful workflow milestones. Splitting these commands breaks logical flow and creates incomplete states."]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common Minimum Execution Units:"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Unit"}),(0,l.jsx)(n.th,{children:"Commands"}),(0,l.jsx)(n.th,{children:"Purpose"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Quick Implementation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Lightweight plan and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Multi-CLI Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"multi-cli-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Multi-perspective analysis and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Bug Fix"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-fix"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Bug diagnosis and fix execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Verified Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"plan-verify"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Planning with verification and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"TDD Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Test-driven development planning and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Test Validation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})]}),(0,l.jsx)(n.td,{children:"Generate test tasks and execute test-fix cycle"})]})]})]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Example"}),": The unit ",(0,l.jsx)(n.code,{children:"lite-plan \u2192 lite-execute"})," must complete together. Stopping after ",(0,l.jsx)(n.code,{children:"lite-plan"})," leaves you with a plan but no implementation."]})]}),"\n",(0,l.jsx)(n.h3,{id:"when-should-i-use-each-workflow-level",children:"When should I use each workflow level?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Level Selection Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 1 (lite-lite-lite):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Quick fixes (typos, minor adjustments)"}),"\n",(0,l.jsx)(n.li,{children:"Simple features (single function, small utility)"}),"\n",(0,l.jsx)(n.li,{children:"Config changes (environment variables, timeouts)"}),"\n",(0,l.jsx)(n.li,{children:"Documentation updates"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 2 (lite-plan, lite-fix, multi-cli-plan):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Single-module features"}),"\n",(0,l.jsx)(n.li,{children:"Bug diagnosis and fixes"}),"\n",(0,l.jsx)(n.li,{children:"Technology selection decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 3 (plan, tdd-plan, test-fix-gen):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Multi-module changes"}),"\n",(0,l.jsx)(n.li,{children:"Refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Test-driven development"}),"\n",(0,l.jsx)(n.li,{children:"Test failure fixes"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Level 4 (brainstorm",":auto-parallel","):"]})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"New feature design"}),"\n",(0,l.jsx)(n.li,{children:"System architecture refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Exploratory requirements"}),"\n",(0,l.jsx)(n.li,{children:"Multi-dimensional trade-offs"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 5 (ccw-coordinator):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complex multi-step workflows"}),"\n",(0,l.jsx)(n.li,{children:"Uncertain which commands to use"}),"\n",(0,l.jsx)(n.li,{children:"End-to-end automation"}),"\n",(0,l.jsx)(n.li,{children:"Team collaboration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Issue Workflow:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Post-development issue fixes"}),"\n",(0,l.jsx)(n.li,{children:"Maintaining main branch stability"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"command-usage",children:"Command Usage"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-workflow-commands",children:"How do I use workflow commands?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Command Patterns"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Basic Pattern:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw <command> <arguments>\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Examples:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Level 1 - Direct execution\r\nccw lite-lite-lite "Fix login button"\r\n\r\n# Level 2 - Lightweight planning\r\nccw lite-plan "Add user profile page"\r\nccw lite-execute --in-memory\r\n\r\n# Level 3 - Full workflow\r\nccw workflow:plan "Implement OAuth2"\r\nccw workflow:execute --session WFS-oauth-auth\r\n\r\n# Level 4 - Brainstorming\r\nccw brainstorm:auto-parallel "Design notification system"\r\n\r\n# Level 5 - Intelligent coordination\r\nccw ccw-coordinator "Refactor API layer"\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-the-difference-between-lite-execute-and-execute",children:"What is the difference between lite-execute and execute?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"lite-execute"})," (Level 2):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw lite-execute --in-memory\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 2 workflows"}),"\n",(0,l.jsx)(n.li,{children:"In-memory planning (no session files)"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution for independent tasks"}),"\n",(0,l.jsx)(n.li,{children:"Optional code review"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"execute"})," (Level 3):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw workflow:execute --session WFS-{session-id}\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 3 workflows"}),"\n",(0,l.jsx)(n.li,{children:"Session-based execution"}),"\n",(0,l.jsx)(n.li,{children:"Dependency analysis"}),"\n",(0,l.jsx)(n.li,{children:"Full state tracking and resumability"}),"\n",(0,l.jsx)(n.li,{children:"Task completion summaries"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-hotfix-mode",children:"How do I use hotfix mode?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Hotfix Usage"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Hotfix mode"})," is for production emergencies:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw lite-fix --hotfix "Production database connection failing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"What it does:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Skips most diagnosis phases"}),"\n",(0,l.jsx)(n.li,{children:"Minimal planning (direct execution)"}),"\n",(0,l.jsx)(n.li,{children:"Auto-generates follow-up tasks for complete fix + post-mortem"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"When to use:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Production incidents"}),"\n",(0,l.jsx)(n.li,{children:"Critical bugs requiring immediate fix"}),"\n",(0,l.jsx)(n.li,{children:"Outages and service disruptions"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"What happens after:"}),"\r\nCCW automatically generates follow-up tasks for:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete root cause analysis"}),"\n",(0,l.jsx)(n.li,{children:"Comprehensive fix"}),"\n",(0,l.jsx)(n.li,{children:"Post-mortem documentation"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-resume-a-paused-session",children:"How do I resume a paused session?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Session Resume"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Resume most recent session\r\nccw workflow:session:resume\r\n\r\n# Resume specific session\r\nccw workflow:session:resume WFS-user-auth-v2\r\n\r\n# List all sessions\r\nccw workflow:session:list\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session states:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"active"}),": Currently running"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"paused"}),": Stopped, can be resumed"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"completed"}),": Finished and archived"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"ai-models",children:"AI Models"}),"\n",(0,l.jsx)(n.h3,{id:"which-ai-models-does-ccw-support",children:"Which AI models does CCW support?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Supported Models"}),(0,l.jsx)(n.p,{children:"CCW supports multiple AI models via CLI endpoints:"}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Model"}),(0,l.jsx)(n.th,{children:"Capabilities"}),(0,l.jsx)(n.th,{children:"Best For"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Gemini"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code review, debugging, refactoring"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Codex"})}),(0,l.jsx)(n.td,{children:"Analysis + Write + Review"}),(0,l.jsx)(n.td,{children:"Git-aware code review, implementation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Claude"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Complex reasoning, documentation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Qwen"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code generation, pattern matching"})]})]})]}),(0,l.jsxs)(n.p,{children:["Configure models in ",(0,l.jsx)(n.code,{children:"~/.claude/cli-tools.json"}),"."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-configure-api-keys",children:"How do I configure API keys?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"API Key Configuration"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Set environment variables:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Gemini\r\nexport GEMINI_API_KEY="your-key-here"\r\n\r\n# OpenAI (Codex)\r\nexport OPENAI_API_KEY="your-key-here"\r\n\r\n# Anthropic (Claude)\r\nexport ANTHROPIC_API_KEY="your-key-here"\r\n\r\n# Qwen\r\nexport DASHSCOPE_API_KEY="your-key-here"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Or configure in ",(0,l.jsx)(n.code,{children:".env"})," file:"]})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-env",children:"GEMINI_API_KEY=your-key-here\r\nOPENAI_API_KEY=your-key-here\r\nANTHROPIC_API_KEY=your-key-here\r\nDASHSCOPE_API_KEY=your-key-here\n"})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-multi-cli-collaboration",children:"What is multi-CLI collaboration?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Multi-CLI Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Multi-CLI collaboration"})," uses multiple AI models to analyze the same problem from different perspectives:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw multi-cli-plan "Compare Redis vs RabbitMQ for message queuing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"How it works:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Multiple AI models analyze independently"}),"\n",(0,l.jsx)(n.li,{children:"Each provides unique insights and recommendations"}),"\n",(0,l.jsx)(n.li,{children:"Results are synthesized into a comprehensive analysis"}),"\n",(0,l.jsx)(n.li,{children:"You get multiple perspectives before making decisions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best for:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Technology selection"}),"\n",(0,l.jsx)(n.li,{children:"Architecture decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n",(0,l.jsx)(n.li,{children:"Trade-off analysis"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-add-tests-to-existing-code",children:"How do I add tests to existing code?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Generation"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session Mode (from existing session):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw test-fix-gen WFS-user-auth-v2\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prompt Mode (direct description):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw test-fix-gen "Add unit tests for the auth API"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"CCW will:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze the code structure"}),"\n",(0,l.jsx)(n.li,{children:"Generate appropriate test cases"}),"\n",(0,l.jsx)(n.li,{children:"Create test files following project patterns"}),"\n",(0,l.jsx)(n.li,{children:"Implement tests with proper assertions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-fix-failing-tests",children:"How do I fix failing tests?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Fix Workflow"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Generate test fix tasks\r\nccw test-fix-gen "Tests failing for user registration"\r\n\r\n# Execute test-fix cycle\r\nccw test-cycle-execute\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workflow:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze test failures"}),"\n",(0,l.jsx)(n.li,{children:"Identify root causes"}),"\n",(0,l.jsx)(n.li,{children:"Fix issues iteratively"}),"\n",(0,l.jsx)(n.li,{children:"Verify >= 95% pass rate"}),"\n",(0,l.jsx)(n.li,{children:"Stop when tests pass or max iterations reached"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-tdd-test-driven-development",children:"What is TDD (Test-Driven Development)?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"TDD Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"TDD"})," follows the Red-Green-Refactor cycle:"]}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Red"}),": Write a failing test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Green"}),": Write minimal code to pass the test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Refactor"}),": Improve code while keeping tests green"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"The Iron Law:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:"NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Why write tests first?"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Test-First"}),(0,l.jsx)(n.th,{children:"Test-After"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Proof"})}),(0,l.jsx)(n.td,{children:"Tests fail before implementation"}),(0,l.jsx)(n.td,{children:"Tests pass immediately (proves nothing)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Discovery"})}),(0,l.jsx)(n.td,{children:"Edge cases found before coding"}),(0,l.jsx)(n.td,{children:"Edge cases found after coding"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Verification"})}),(0,l.jsx)(n.td,{children:"Verifies requirements"}),(0,l.jsx)(n.td,{children:"Verifies implementation"})]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,l.jsx)(n.h3,{id:"my-workflow-failed-what-should-i-do",children:"My workflow failed. What should I do?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Troubleshooting Steps"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Check the error message"})," - Identify the root cause"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Review session state"})," - Check ",(0,l.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Resume the session"})," - Use ",(0,l.jsx)(n.code,{children:"ccw workflow:session:resume"})," to continue"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Adjust and retry"})," - Modify approach based on error"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common fixes:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"API key errors"}),": Verify environment variables are set"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Module not found"}),": Run ",(0,l.jsx)(n.code,{children:"npm install"})," or ",(0,l.jsx)(n.code,{children:"pip install"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Git errors"}),": Ensure clean git state (",(0,l.jsx)(n.code,{children:"git status"}),")"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Timeout errors"}),": Increase timeout in task JSON"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-skip-a-failing-task",children:"How do I skip a failing task?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Skip Task"}),(0,l.jsx)(n.p,{children:'Edit the task JSON to set status to "completed":'}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Use with caution:"})," Skipping tasks may leave the workflow in an incomplete state."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-clean-up-old-sessions",children:"How do I clean up old sessions?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Cleanup Commands"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# List sessions\r\nccw workflow:session:list\r\n\r\n# Remove specific session\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# Clean all completed sessions\r\nccw workflow:clean\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Automatic cleanup:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Completed sessions are archived to ",(0,l.jsx)(n.code,{children:".workflow/completed/"})]}),"\n",(0,l.jsx)(n.li,{children:"Old sessions (> 30 days) can be safely removed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"why-is-my-workflow-running-slowly",children:"Why is my workflow running slowly?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Performance Tips"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Possible causes:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Large codebase"}),": CCW analyzes the entire project"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use ",(0,l.jsx)(n.code,{children:"--focus-paths"})," to limit analysis scope"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Many dependencies"}),": Slow AI response times"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use faster models (Gemini Flash) for initial analysis"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Sequential tasks"}),": Waiting on dependent tasks"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Review task dependencies in ",(0,l.jsx)(n.code,{children:"plan-verify"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Network issues"}),": Slow API calls to AI services"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Check network connectivity and API status"]}),"\n"]}),"\n"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Optimization tips:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Limit analysis scope\r\nccw plan "Add login" --focus-paths src/auth\r\n\r\n# Use faster model for initial analysis\r\nccw cli -p "Quick analysis" --model gemini-2.0-flash --mode analysis\r\n\r\n# Run in parallel when possible\r\nccw workflow:execute --parallel 4\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-debug-workflow-issues",children:"How do I debug workflow issues?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Debugging Workflow"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Enable debug logging:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'DEBUG=ccw:* ccw workflow:plan "My feature"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Check session logs:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# View session state\r\ncat .workflow/active/WFS-{session}/workflow-session.json\r\n\r\n# View task progress\r\ncat .workflow/active/WFS-{session}/TODO_LIST.md\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Use debug workflow:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw workflow:debug-with-file "Debug memory leak in connection handler"\n'})}),(0,l.jsx)(n.p,{children:"This provides hypothesis-driven debugging with documented exploration."})]}),"\n",(0,l.jsx)(n.h2,{id:"integration",children:"Integration"}),"\n",(0,l.jsx)(n.h3,{id:"can-i-use-ccw-with-my-existing-cicd",children:"Can I use CCW with my existing CI/CD?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"CI/CD Integration"}),(0,l.jsx)(n.p,{children:"Yes, CCW can be integrated into CI/CD pipelines:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"GitHub Actions Example:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:'- name: Run CCW Workflow\r\n run: |\r\n ccw workflow:plan "Implement feature"\r\n ccw workflow:execute --session WFS-feature\r\n env:\r\n GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best practices:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Use ",(0,l.jsx)(n.code,{children:"--mode analysis"})," for code review in CI"]}),"\n",(0,l.jsx)(n.li,{children:"Store API keys in secret management"}),"\n",(0,l.jsx)(n.li,{children:"Run workflows in isolated environments"}),"\n",(0,l.jsx)(n.li,{children:"Archive sessions for audit trails"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"can-ccw-work-with-monorepos",children:"Can CCW work with monorepos?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Monorepo Support"}),(0,l.jsx)(n.p,{children:"Yes, CCW supports monorepos:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workspace-aware execution:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Execute in specific package\r\nccw plan "Add auth to frontend" --cd packages/frontend\r\n\r\n# Execute across packages\r\nccw plan "Update API contracts" --include-dir packages/api,packages/shared\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Benefits:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Dependency-aware task distribution"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution across packages"}),"\n",(0,l.jsx)(n.li,{children:"Shared session state"}),"\n",(0,l.jsx)(n.li,{children:"Coordinated changes across workspaces"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-migrate-from-another-tool",children:"How do I migrate from another tool?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Migration Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From basic Git workflows:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Before: Manual planning\r\ngit checkout -b feature\r\n# ... manual planning ...\r\n\r\n# After: CCW planning\r\nccw plan "Add feature"\r\nccw execute --session WFS-feature\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From other AI tools:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"CCW provides structured workflows (vs. ad-hoc prompts)"}),"\n",(0,l.jsx)(n.li,{children:"Session management (vs. chat history)"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination (vs. single AI)"}),"\n",(0,l.jsx)(n.li,{children:"Persistent artifacts (vs. transient responses)"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Migration steps:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Install CCW: ",(0,l.jsx)(n.code,{children:"npm install -g @ccw/cli"})]}),"\n",(0,l.jsxs)(n.li,{children:["Initialize: ",(0,l.jsx)(n.code,{children:"ccw init"})]}),"\n",(0,l.jsx)(n.li,{children:"Start with Level 2 workflows for familiar patterns"}),"\n",(0,l.jsx)(n.li,{children:"Gradually adopt higher levels as needed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-workflow-best-practices",children:"What are the workflow best practices?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Start Simple"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use the lowest level that meets your needs"}),"\n",(0,l.jsx)(n.li,{children:"Don't over-engineer simple tasks"}),"\n",(0,l.jsx)(n.li,{children:"Scale up complexity as needed"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Plan Before Executing"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use verification steps when available"}),"\n",(0,l.jsx)(n.li,{children:"Review generated plans before execution"}),"\n",(0,l.jsx)(n.li,{children:"Adjust tasks based on project context"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Test Continuously"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Integrate testing into your workflow"}),"\n",(0,l.jsx)(n.li,{children:"Use TDD for critical features"}),"\n",(0,l.jsx)(n.li,{children:"Run tests after each iteration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Review Code"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use built-in review workflows"}),"\n",(0,l.jsx)(n.li,{children:"Leverage multi-CLI collaboration"}),"\n",(0,l.jsx)(n.li,{children:"Merge review feedback iteratively"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Document Decisions"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use brainstorm workflows for complex decisions"}),"\n",(0,l.jsx)(n.li,{children:"Keep session artifacts for reference"}),"\n",(0,l.jsx)(n.li,{children:"Archive completed sessions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"6. Maintain Session Hygiene"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete sessions when done"}),"\n",(0,l.jsx)(n.li,{children:"Clean up old sessions regularly"}),"\n",(0,l.jsx)(n.li,{children:"Archive important sessions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-get-the-most-out-of-ai-assistance",children:"How do I get the most out of AI assistance?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"AI Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Be Specific in Prompts"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'Bad: "Fix the bug"\r\nGood: "Fix the 500 error when users update their profile picture"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Provide Context"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw plan "Add OAuth2" \\\r\n --context "Using Express.js, MongoDB, Passport.js" \\\r\n --reference "Similar to existing Google OAuth implementation"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Use Multi-CLI Collaboration"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Get multiple perspectives\r\nccw multi-cli-plan "Architecture decision"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Leverage Memory"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Build on previous work\r\nccw plan "Continue auth refactor" --memory WFS-auth-v1\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Choose the Right Model"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Flash"}),": Fast, good for initial analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Pro"}),": Deep reasoning, complex tasks"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Codex"}),": Code review, git-aware analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Claude"}),": Documentation, complex reasoning"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"related-documentation",children:"Related Documentation"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/workflows/introduction",children:"Workflow Introduction"})," - Complete workflow guide"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/workflows/faq",children:"Workflow FAQ"})," - Workflow-specific questions"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/commands/general/ccw",children:"Command Reference"})," - All commands"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Still have questions?"})," ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"Open an issue"})," or check the ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/discussions",children:"discussion forums"}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/assets/js/runtime~main.febf0209.js b/ccw/docs-site/build/assets/js/runtime~main.c1a45787.js similarity index 97% rename from ccw/docs-site/build/assets/js/runtime~main.febf0209.js rename to ccw/docs-site/build/assets/js/runtime~main.c1a45787.js index abc46d91..a3c1d3f7 100644 --- a/ccw/docs-site/build/assets/js/runtime~main.febf0209.js +++ b/ccw/docs-site/build/assets/js/runtime~main.c1a45787.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,r,t,f={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var c=d[e]={exports:{}};return f[e].call(c.exports,c,c.exports,b),c.exports}b.m=f,e=[],b.O=(a,c,r,t)=>{if(!c){var f=1/0;for(i=0;i=t)&&Object.keys(b.O).every(e=>b.O[e](c[o]))?c.splice(o--,1):(d=!1,t0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[c,r,t]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var t=Object.create(null);b.r(t);var f={};a=a||[null,c({}),c([]),c(c)];for(var d=2&r&&e;("object"==typeof d||"function"==typeof d)&&!~a.indexOf(d);d=c(d))Object.getOwnPropertyNames(d).forEach(a=>f[a]=()=>e[a]);return f.default=()=>e,b.d(t,f),t},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,c)=>(b.f[c](e,a),a),[])),b.u=e=>"assets/js/"+({11:"ea313555",17:"ccef5d0f",47:"157db180",48:"a94703ab",57:"19b64556",98:"a7bd4aaa",121:"5c7b2278",142:"0566a0a8",148:"4cc74730",235:"18891827",241:"d045285b",256:"11b43341",268:"60eef997",288:"666bb1bf",308:"4edc808e",368:"186dcf4e",401:"17896441",407:"611877e1",411:"d550a629",412:"1bac9067",448:"f9222419",482:"c5a82d8d",511:"bdb2b105",647:"5e95c892",725:"bcf6b37c",742:"aba21aa0",777:"fabaf1c8",814:"97c6e66a",849:"4ad7db0f",856:"2ecf8b4a",896:"f4817052",927:"04db0a2e",934:"7a1ee27c",954:"f1bf82ec",971:"fe8e3dcf",973:"9f4ca91e",975:"1e3006f3",991:"a6c3df16"}[e]||e)+"."+{11:"0d8924d5",17:"bf024fcc",47:"791164b8",48:"7b43e8e3",57:"267a65e7",98:"e4fb75f9",121:"c1c9335e",142:"502cb794",148:"46c1b3ec",235:"68e4aff6",241:"b85db2b1",256:"f1389cc9",268:"151fec41",288:"45a4152a",308:"b5696aa5",368:"19dbd8a2",401:"d1575d23",407:"45f8bc05",411:"e7b002e0",412:"db693171",448:"99229d0f",482:"d17a5054",511:"3f786190",647:"ba4a4619",723:"83f5aec0",725:"6fb645f5",742:"dc3eeab8",777:"1c5418de",814:"5b6891f6",849:"b9b38a4a",856:"99d227b2",896:"97b6ae69",927:"b743edea",934:"d03b31a7",954:"58d787a8",971:"789ec323",973:"5435862e",975:"7fa46a95",991:"82b13c53"}[e]+".js",b.miniCssF=e=>{},b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},t="ccw-docs:",b.l=(e,a,c,f)=>{if(r[e])r[e].push(a);else{var d,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var t=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),t&&t.forEach(e=>e(c)),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),o&&document.head.appendChild(d)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/docs/",b.gca=function(e){return e={17896441:"401",18891827:"235",ea313555:"11",ccef5d0f:"17","157db180":"47",a94703ab:"48","19b64556":"57",a7bd4aaa:"98","5c7b2278":"121","0566a0a8":"142","4cc74730":"148",d045285b:"241","11b43341":"256","60eef997":"268","666bb1bf":"288","4edc808e":"308","186dcf4e":"368","611877e1":"407",d550a629:"411","1bac9067":"412",f9222419:"448",c5a82d8d:"482",bdb2b105:"511","5e95c892":"647",bcf6b37c:"725",aba21aa0:"742",fabaf1c8:"777","97c6e66a":"814","4ad7db0f":"849","2ecf8b4a":"856",f4817052:"896","04db0a2e":"927","7a1ee27c":"934",f1bf82ec:"954",fe8e3dcf:"971","9f4ca91e":"973","1e3006f3":"975",a6c3df16:"991"}[e]||e,b.p+b.u(e)},(()=>{var e={354:0,869:0};b.f.j=(a,c)=>{var r=b.o(e,a)?e[a]:void 0;if(0!==r)if(r)c.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var t=new Promise((c,t)=>r=e[a]=[c,t]);c.push(r[2]=t);var f=b.p+b.u(a),d=new Error;b.l(f,c=>{if(b.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var t=c&&("load"===c.type?"missing":c.type),f=c&&c.target&&c.target.src;d.message="Loading chunk "+a+" failed.\n("+t+": "+f+")",d.name="ChunkLoadError",d.type=t,d.request=f,r[1](d)}},"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var r,t,[f,d,o]=c,n=0;if(f.some(a=>0!==e[a])){for(r in d)b.o(d,r)&&(b.m[r]=d[r]);if(o)var i=o(b)}for(a&&a(c);n{"use strict";var e,a,c,r,t,f={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var c=d[e]={exports:{}};return f[e].call(c.exports,c,c.exports,b),c.exports}b.m=f,e=[],b.O=(a,c,r,t)=>{if(!c){var f=1/0;for(i=0;i=t)&&Object.keys(b.O).every(e=>b.O[e](c[o]))?c.splice(o--,1):(d=!1,t0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[c,r,t]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var t=Object.create(null);b.r(t);var f={};a=a||[null,c({}),c([]),c(c)];for(var d=2&r&&e;("object"==typeof d||"function"==typeof d)&&!~a.indexOf(d);d=c(d))Object.getOwnPropertyNames(d).forEach(a=>f[a]=()=>e[a]);return f.default=()=>e,b.d(t,f),t},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,c)=>(b.f[c](e,a),a),[])),b.u=e=>"assets/js/"+({11:"ea313555",17:"ccef5d0f",47:"157db180",48:"a94703ab",57:"19b64556",98:"a7bd4aaa",121:"5c7b2278",142:"0566a0a8",148:"4cc74730",235:"18891827",241:"d045285b",256:"11b43341",268:"60eef997",288:"666bb1bf",308:"4edc808e",368:"186dcf4e",401:"17896441",407:"611877e1",411:"d550a629",412:"1bac9067",448:"f9222419",482:"c5a82d8d",511:"bdb2b105",647:"5e95c892",725:"bcf6b37c",742:"aba21aa0",777:"fabaf1c8",814:"97c6e66a",849:"4ad7db0f",856:"2ecf8b4a",896:"f4817052",927:"04db0a2e",934:"7a1ee27c",954:"f1bf82ec",971:"fe8e3dcf",973:"9f4ca91e",975:"1e3006f3",991:"a6c3df16"}[e]||e)+"."+{11:"26e7d495",17:"bf024fcc",47:"791164b8",48:"7b43e8e3",57:"267a65e7",98:"e4fb75f9",121:"c1c9335e",142:"502cb794",148:"46c1b3ec",235:"68e4aff6",241:"b85db2b1",256:"f1389cc9",268:"151fec41",288:"45a4152a",308:"b5696aa5",368:"19dbd8a2",401:"d1575d23",407:"45f8bc05",411:"e7b002e0",412:"db693171",448:"99229d0f",482:"d17a5054",511:"3f786190",647:"ba4a4619",723:"83f5aec0",725:"6fb645f5",742:"dc3eeab8",777:"1c5418de",814:"5b6891f6",849:"b9b38a4a",856:"99d227b2",896:"97b6ae69",927:"b743edea",934:"d03b31a7",954:"58d787a8",971:"789ec323",973:"5435862e",975:"7fa46a95",991:"82b13c53"}[e]+".js",b.miniCssF=e=>{},b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},t="ccw-docs:",b.l=(e,a,c,f)=>{if(r[e])r[e].push(a);else{var d,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var t=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),t&&t.forEach(e=>e(c)),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),o&&document.head.appendChild(d)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/docs/",b.gca=function(e){return e={17896441:"401",18891827:"235",ea313555:"11",ccef5d0f:"17","157db180":"47",a94703ab:"48","19b64556":"57",a7bd4aaa:"98","5c7b2278":"121","0566a0a8":"142","4cc74730":"148",d045285b:"241","11b43341":"256","60eef997":"268","666bb1bf":"288","4edc808e":"308","186dcf4e":"368","611877e1":"407",d550a629:"411","1bac9067":"412",f9222419:"448",c5a82d8d:"482",bdb2b105:"511","5e95c892":"647",bcf6b37c:"725",aba21aa0:"742",fabaf1c8:"777","97c6e66a":"814","4ad7db0f":"849","2ecf8b4a":"856",f4817052:"896","04db0a2e":"927","7a1ee27c":"934",f1bf82ec:"954",fe8e3dcf:"971","9f4ca91e":"973","1e3006f3":"975",a6c3df16:"991"}[e]||e,b.p+b.u(e)},(()=>{var e={354:0,869:0};b.f.j=(a,c)=>{var r=b.o(e,a)?e[a]:void 0;if(0!==r)if(r)c.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var t=new Promise((c,t)=>r=e[a]=[c,t]);c.push(r[2]=t);var f=b.p+b.u(a),d=new Error;b.l(f,c=>{if(b.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var t=c&&("load"===c.type?"missing":c.type),f=c&&c.target&&c.target.src;d.message="Loading chunk "+a+" failed.\n("+t+": "+f+")",d.name="ChunkLoadError",d.type=t,d.request=f,r[1](d)}},"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var r,t,[f,d,o]=c,n=0;if(f.some(a=>0!==e[a])){for(r in d)b.o(d,r)&&(b.m[r]=d[r]);if(o)var i=o(b)}for(a&&a(c);n /cli:cli-init | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/cli/codex-review.html b/ccw/docs-site/build/commands/cli/codex-review.html index 9424a92b..83bf2ca1 100644 --- a/ccw/docs-site/build/commands/cli/codex-review.html +++ b/ccw/docs-site/build/commands/cli/codex-review.html @@ -4,7 +4,7 @@ /cli:codex-review | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/ccw-coordinator.html b/ccw/docs-site/build/commands/general/ccw-coordinator.html index ea8e8b19..74be0102 100644 --- a/ccw/docs-site/build/commands/general/ccw-coordinator.html +++ b/ccw/docs-site/build/commands/general/ccw-coordinator.html @@ -4,7 +4,7 @@ /ccw-coordinator | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/ccw-debug.html b/ccw/docs-site/build/commands/general/ccw-debug.html index 490e2a8b..1516e709 100644 --- a/ccw/docs-site/build/commands/general/ccw-debug.html +++ b/ccw/docs-site/build/commands/general/ccw-debug.html @@ -4,7 +4,7 @@ /ccw-debug | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/ccw-plan.html b/ccw/docs-site/build/commands/general/ccw-plan.html index bf70dc6a..b0f4057e 100644 --- a/ccw/docs-site/build/commands/general/ccw-plan.html +++ b/ccw/docs-site/build/commands/general/ccw-plan.html @@ -4,7 +4,7 @@ /ccw-plan | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/ccw-test.html b/ccw/docs-site/build/commands/general/ccw-test.html index b2fde48e..790892cd 100644 --- a/ccw/docs-site/build/commands/general/ccw-test.html +++ b/ccw/docs-site/build/commands/general/ccw-test.html @@ -4,7 +4,7 @@ /ccw-test | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/ccw.html b/ccw/docs-site/build/commands/general/ccw.html index 84d1349d..905f81bd 100644 --- a/ccw/docs-site/build/commands/general/ccw.html +++ b/ccw/docs-site/build/commands/general/ccw.html @@ -4,7 +4,7 @@ /ccw | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/codex-coordinator.html b/ccw/docs-site/build/commands/general/codex-coordinator.html index 37809ef3..a47fc909 100644 --- a/ccw/docs-site/build/commands/general/codex-coordinator.html +++ b/ccw/docs-site/build/commands/general/codex-coordinator.html @@ -4,7 +4,7 @@ /codex-coordinator | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/general/flow-create.html b/ccw/docs-site/build/commands/general/flow-create.html index a2055f0e..9aa2903d 100644 --- a/ccw/docs-site/build/commands/general/flow-create.html +++ b/ccw/docs-site/build/commands/general/flow-create.html @@ -4,7 +4,7 @@ /flow-create | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-convert-to-plan.html b/ccw/docs-site/build/commands/issue/issue-convert-to-plan.html index ca19de18..6052bf4c 100644 --- a/ccw/docs-site/build/commands/issue/issue-convert-to-plan.html +++ b/ccw/docs-site/build/commands/issue/issue-convert-to-plan.html @@ -4,7 +4,7 @@ issue:convert-to-plan | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-discover.html b/ccw/docs-site/build/commands/issue/issue-discover.html index 09ccf41d..0a9ccc94 100644 --- a/ccw/docs-site/build/commands/issue/issue-discover.html +++ b/ccw/docs-site/build/commands/issue/issue-discover.html @@ -4,7 +4,7 @@ issue:discover | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-execute.html b/ccw/docs-site/build/commands/issue/issue-execute.html index a4f45565..cf91e8bc 100644 --- a/ccw/docs-site/build/commands/issue/issue-execute.html +++ b/ccw/docs-site/build/commands/issue/issue-execute.html @@ -4,7 +4,7 @@ issue:execute | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-from-brainstorm.html b/ccw/docs-site/build/commands/issue/issue-from-brainstorm.html index 53c3d408..eb7bdb65 100644 --- a/ccw/docs-site/build/commands/issue/issue-from-brainstorm.html +++ b/ccw/docs-site/build/commands/issue/issue-from-brainstorm.html @@ -4,7 +4,7 @@ issue:from-brainstorm | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-new.html b/ccw/docs-site/build/commands/issue/issue-new.html index 9e672a27..139467aa 100644 --- a/ccw/docs-site/build/commands/issue/issue-new.html +++ b/ccw/docs-site/build/commands/issue/issue-new.html @@ -4,7 +4,7 @@ issue:new | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-plan.html b/ccw/docs-site/build/commands/issue/issue-plan.html index 6320f0d8..08e7795e 100644 --- a/ccw/docs-site/build/commands/issue/issue-plan.html +++ b/ccw/docs-site/build/commands/issue/issue-plan.html @@ -4,7 +4,7 @@ issue:plan | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/issue/issue-queue.html b/ccw/docs-site/build/commands/issue/issue-queue.html index 339cf431..a7491ff1 100644 --- a/ccw/docs-site/build/commands/issue/issue-queue.html +++ b/ccw/docs-site/build/commands/issue/issue-queue.html @@ -4,7 +4,7 @@ issue:queue | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/memory/memory-compact.html b/ccw/docs-site/build/commands/memory/memory-compact.html index 8a6c66cb..b8f80c7c 100644 --- a/ccw/docs-site/build/commands/memory/memory-compact.html +++ b/ccw/docs-site/build/commands/memory/memory-compact.html @@ -4,7 +4,7 @@ /memory:compact | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/memory/memory-docs-full-cli.html b/ccw/docs-site/build/commands/memory/memory-docs-full-cli.html index 845bda79..b353550e 100644 --- a/ccw/docs-site/build/commands/memory/memory-docs-full-cli.html +++ b/ccw/docs-site/build/commands/memory/memory-docs-full-cli.html @@ -4,7 +4,7 @@ /memory:docs-full-cli | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/memory/memory-docs-related-cli.html b/ccw/docs-site/build/commands/memory/memory-docs-related-cli.html index f77df1b4..4ea65386 100644 --- a/ccw/docs-site/build/commands/memory/memory-docs-related-cli.html +++ b/ccw/docs-site/build/commands/memory/memory-docs-related-cli.html @@ -4,7 +4,7 @@ /memory:docs-related-cli | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/memory/memory-load.html b/ccw/docs-site/build/commands/memory/memory-load.html index 627110f5..9cbd7ff6 100644 --- a/ccw/docs-site/build/commands/memory/memory-load.html +++ b/ccw/docs-site/build/commands/memory/memory-load.html @@ -4,7 +4,7 @@ /memory:load | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/memory/memory-update-full.html b/ccw/docs-site/build/commands/memory/memory-update-full.html index 3af04865..67d8b3e2 100644 --- a/ccw/docs-site/build/commands/memory/memory-update-full.html +++ b/ccw/docs-site/build/commands/memory/memory-update-full.html @@ -4,7 +4,7 @@ /memory:update-full | CCW Help Documentation - + diff --git a/ccw/docs-site/build/commands/memory/memory-update-related.html b/ccw/docs-site/build/commands/memory/memory-update-related.html index e6b9136c..a6da488d 100644 --- a/ccw/docs-site/build/commands/memory/memory-update-related.html +++ b/ccw/docs-site/build/commands/memory/memory-update-related.html @@ -4,7 +4,7 @@ /memory:update-related | CCW Help Documentation - + diff --git a/ccw/docs-site/build/faq.html b/ccw/docs-site/build/faq.html index e0a7f959..b44008fb 100644 --- a/ccw/docs-site/build/faq.html +++ b/ccw/docs-site/build/faq.html @@ -4,7 +4,7 @@ Frequently Asked Questions | CCW Help Documentation - + diff --git a/ccw/docs-site/build/index.html b/ccw/docs-site/build/index.html index 2eeb3bbb..42fa96cb 100644 --- a/ccw/docs-site/build/index.html +++ b/ccw/docs-site/build/index.html @@ -4,7 +4,7 @@ CCW Help Documentation - + diff --git a/ccw/docs-site/build/overview.html b/ccw/docs-site/build/overview.html index da6e19b8..d81551f2 100644 --- a/ccw/docs-site/build/overview.html +++ b/ccw/docs-site/build/overview.html @@ -4,7 +4,7 @@ Welcome to CCW | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/faq.html b/ccw/docs-site/build/workflows/faq.html index c8ae9002..e91a6214 100644 --- a/ccw/docs-site/build/workflows/faq.html +++ b/ccw/docs-site/build/workflows/faq.html @@ -4,7 +4,7 @@ Workflow FAQ | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/introduction.html b/ccw/docs-site/build/workflows/introduction.html index 9c2ad597..b458384a 100644 --- a/ccw/docs-site/build/workflows/introduction.html +++ b/ccw/docs-site/build/workflows/introduction.html @@ -4,7 +4,7 @@ Workflow Introduction | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/level-1-ultra-lightweight.html b/ccw/docs-site/build/workflows/level-1-ultra-lightweight.html index c02c29ff..0635fb40 100644 --- a/ccw/docs-site/build/workflows/level-1-ultra-lightweight.html +++ b/ccw/docs-site/build/workflows/level-1-ultra-lightweight.html @@ -4,7 +4,7 @@ Level 1 - Ultra-Lightweight Workflows | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/level-2-rapid.html b/ccw/docs-site/build/workflows/level-2-rapid.html index a1ac6d88..09ce851e 100644 --- a/ccw/docs-site/build/workflows/level-2-rapid.html +++ b/ccw/docs-site/build/workflows/level-2-rapid.html @@ -4,7 +4,7 @@ Level 2 - Rapid Workflows | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/level-3-standard.html b/ccw/docs-site/build/workflows/level-3-standard.html index fdc5ae6e..6f912b25 100644 --- a/ccw/docs-site/build/workflows/level-3-standard.html +++ b/ccw/docs-site/build/workflows/level-3-standard.html @@ -4,7 +4,7 @@ Level 3 - Standard Workflows | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/level-4-brainstorm.html b/ccw/docs-site/build/workflows/level-4-brainstorm.html index 4eb7e8ef..56ec7f46 100644 --- a/ccw/docs-site/build/workflows/level-4-brainstorm.html +++ b/ccw/docs-site/build/workflows/level-4-brainstorm.html @@ -4,7 +4,7 @@ Level 4 - Brainstorm Workflows | CCW Help Documentation - + diff --git a/ccw/docs-site/build/workflows/level-5-intelligent.html b/ccw/docs-site/build/workflows/level-5-intelligent.html index 9b11b1cf..c710f8c5 100644 --- a/ccw/docs-site/build/workflows/level-5-intelligent.html +++ b/ccw/docs-site/build/workflows/level-5-intelligent.html @@ -4,7 +4,7 @@ Level 5 - Intelligent Workflows | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/404.html b/ccw/docs-site/build/zh/404.html index 947c7ee2..aaf484d1 100644 --- a/ccw/docs-site/build/zh/404.html +++ b/ccw/docs-site/build/zh/404.html @@ -4,7 +4,7 @@ CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/assets/js/46f40178.2e24b189.js b/ccw/docs-site/build/zh/assets/js/46f40178.2e24b189.js deleted file mode 100644 index 9549219e..00000000 --- a/ccw/docs-site/build/zh/assets/js/46f40178.2e24b189.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[567],{1184(e,l,n){n.d(l,{R:()=>r,x:()=>c});var s=n(3696);const i={},d=s.createContext(i);function r(e){const l=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(l):{...l,...e}},[l,e])}function c(e){let l;return l=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(d.Provider,{value:l},e.children)}},1878(e,l,n){n.r(l),n.d(l,{assets:()=>t,contentTitle:()=>h,default:()=>o,frontMatter:()=>c,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"workflows/faq","title":"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898","description":"\u5de5\u4f5c\u6d41\u4f7f\u7528\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/faq.mdx","sourceDirName":"workflows","slug":"/workflows/faq","permalink":"/docs/zh/workflows/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/faq.mdx","tags":[],"version":"current","sidebarPosition":7,"frontMatter":{"title":"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898","description":"\u5de5\u4f5c\u6d41\u4f7f\u7528\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54","sidebar_position":7}}');var i=n(2540),d=n(1184),r=n(1540);const c={title:"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898",description:"\u5de5\u4f5c\u6d41\u4f7f\u7528\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54",sidebar_position:7},h="\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898",t={},x=[{value:"\u901a\u7528\u95ee\u9898",id:"\u901a\u7528\u95ee\u9898",level:2},{value:"Main Workflow \u548c Issue Workflow \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"main-workflow-\u548c-issue-workflow-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b\uff1f",id:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b",level:3},{value:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143\uff1f",id:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143",level:3},{value:"Level 1 \u95ee\u9898",id:"level-1-\u95ee\u9898",level:2},{value:"\u4f55\u65f6\u4f7f\u7528 Level 1\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-level-1",level:3},{value:"Level 2 \u95ee\u9898",id:"level-2-\u95ee\u9898",level:2},{value:"lite-plan\u3001lite-fix \u548c multi-cli-plan \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"lite-planlite-fix-\u548c-multi-cli-plan-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f\uff1f",id:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f",level:3},{value:"\u4f55\u65f6\u4f7f\u7528 multi-cli-plan vs lite-plan\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-multi-cli-plan-vs-lite-plan",level:3},{value:"Level 3 \u95ee\u9898",id:"level-3-\u95ee\u9898",level:2},{value:"plan\u3001tdd-plan \u548c test-fix-gen \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"plantdd-plan-\u548c-test-fix-gen-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4ec0\u4e48\u662f TDD\uff08\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff09\uff1f",id:"\u4ec0\u4e48\u662f-tdd\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1",level:3},{value:"\u4e3a\u4ec0\u4e48 TDD \u8981\u6c42\u5148\u5199\u6d4b\u8bd5\uff1f",id:"\u4e3a\u4ec0\u4e48-tdd-\u8981\u6c42\u5148\u5199\u6d4b\u8bd5",level:3},{value:"test-fix-gen \u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7\uff1f",id:"test-fix-gen-\u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7",level:3},{value:"Level 4 \u95ee\u9898",id:"level-4-\u95ee\u9898",level:2},{value:"\u4f55\u65f6\u4f7f\u7528 brainstorm\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-brainstorm",level:3},{value:"brainstorm \u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272\uff1f",id:"brainstorm-\u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272",level:3},{value:"\u4ec0\u4e48\u662f With-File \u5de5\u4f5c\u6d41\uff1f",id:"\u4ec0\u4e48\u662f-with-file-\u5de5\u4f5c\u6d41",level:3},{value:"Level 5 \u95ee\u9898",id:"level-5-\u95ee\u9898",level:2},{value:"\u4f55\u65f6\u4f7f\u7528 ccw-coordinator\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-ccw-coordinator",level:3},{value:"ccw-coordinator \u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c\uff1f",id:"ccw-coordinator-\u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c",level:3},{value:"\u6267\u884c\u95ee\u9898",id:"\u6267\u884c\u95ee\u9898",level:2},{value:"\u4ec0\u4e48\u662f lite-execute\uff1f",id:"\u4ec0\u4e48\u662f-lite-execute",level:3},{value:"\u4ec0\u4e48\u662f execute\uff1f",id:"\u4ec0\u4e48\u662f-execute",level:3},{value:"\u4f1a\u8bdd\u95ee\u9898",id:"\u4f1a\u8bdd\u95ee\u9898",level:2},{value:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd",level:3},{value:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd",level:3},{value:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd",level:3},{value:"\u4ea7\u7269\u95ee\u9898",id:"\u4ea7\u7269\u95ee\u9898",level:2},{value:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc\uff1f",id:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc",level:3},{value:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6\uff1f",id:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6",level:3},{value:"\u6d4b\u8bd5\u95ee\u9898",id:"\u6d4b\u8bd5\u95ee\u9898",level:2},{value:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5\uff1f",id:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5",level:3},{value:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5\uff1f",id:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5",level:3},{value:"\u6545\u969c\u6392\u9664",id:"\u6545\u969c\u6392\u9664",level:2},{value:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\uff0c\u8be5\u600e\u4e48\u529e\uff1f",id:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\u8be5\u600e\u4e48\u529e",level:3},{value:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1\uff1f",id:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1",level:3},{value:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:2},{value:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b\uff1f",id:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b",level:3},{value:"\u4f55\u65f6\u4f7f\u7528 worktree \u9694\u79bb\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-worktree-\u9694\u79bb",level:3},{value:"\u76f8\u5173\u6587\u6863",id:"\u76f8\u5173\u6587\u6863",level:2}];function j(e){const l={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.header,{children:(0,i.jsx)(l.h1,{id:"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898",children:"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898"})}),"\n",(0,i.jsx)(l.p,{children:"CCW \u5de5\u4f5c\u6d41\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54\u3002"}),"\n",(0,i.jsx)(l.h2,{id:"\u901a\u7528\u95ee\u9898",children:"\u901a\u7528\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"main-workflow-\u548c-issue-workflow-\u6709\u4ec0\u4e48\u533a\u522b",children:"Main Workflow \u548c Issue Workflow \u6709\u4ec0\u4e48\u533a\u522b\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"Main Workflow"})," \u7528\u4e8e\u4e3b\u8981\u5f00\u53d1\uff08Level 1-5\uff09\uff0c\u800c ",(0,i.jsx)(l.strong,{children:"Issue Workflow"})," \u7528\u4e8e\u5f00\u53d1\u540e\u671f\u7684\u7ef4\u62a4\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u65b9\u9762"}),(0,i.jsx)(l.th,{children:"Main Workflow"}),(0,i.jsx)(l.th,{children:"Issue Workflow"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u7528\u9014"})}),(0,i.jsx)(l.td,{children:"\u529f\u80fd\u5f00\u53d1"}),(0,i.jsx)(l.td,{children:"\u5f00\u53d1\u540e\u4fee\u590d"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u65f6\u673a"})}),(0,i.jsx)(l.td,{children:"\u5f00\u53d1\u9636\u6bb5"}),(0,i.jsx)(l.td,{children:"\u4e3b\u5de5\u4f5c\u6d41\u5b8c\u6210\u540e"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u5e76\u884c\u5904\u7406"})}),(0,i.jsx)(l.td,{children:"\u4f9d\u8d56\u5206\u6790"}),(0,i.jsx)(l.td,{children:"Worktree \u9694\u79bb\uff08\u53ef\u9009\uff09"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b",children:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b\uff1f"}),"\n",(0,i.jsx)(r.A,{chart:'\n flowchart TD\n Start([\u5f00\u59cb]) --\x3e Q1{\u5f00\u53d1\u540e\u671f?}\n Q1 --\x3e|\u662f| Issue["Issue Workflow"]\n Q1 --\x3e|\u5426| Q2{\u547d\u4ee4\u4e0d\u786e\u5b9a?}\n Q2 --\x3e|\u662f| L5["Level 5: ccw-coordinator"]\n Q2 --\x3e|\u5426| Q3{\u9700\u6c42\u6e05\u6670?}\n Q3 --\x3e|\u5426| L4["Level 4: brainstorm"]\n Q3 --\x3e|\u662f| Q4{\u9700\u8981\u6301\u4e45\u5316\u4f1a\u8bdd?}\n Q4 --\x3e|\u662f| Q5{\u5f00\u53d1\u7c7b\u578b?}\n Q4 --\x3e|\u5426| Q6{\u591a\u89c6\u89d2\u5206\u6790?}\n Q5 --\x3e|\u6807\u51c6\u5f00\u53d1| L3Std["Level 3: plan"]\n Q5 --\x3e|TDD| L3TDD["Level 3: tdd-plan"]\n Q5 --\x3e|\u6d4b\u8bd5\u4fee\u590d| L3Test["Level 3: test-fix-gen"]\n Q6 --\x3e|\u662f| L2Multi["Level 2: multi-cli-plan"]\n Q6 --\x3e|\u5426| Q7{Bug \u4fee\u590d?}\n Q7 --\x3e|\u662f| L2Fix["Level 2: lite-fix"]\n Q7 --\x3e|\u5426| Q8{\u9700\u8981\u89c4\u5212?}\n Q8 --\x3e|\u662f| L2Plan["Level 2: lite-plan"]\n Q8 --\x3e|\u5426| L1["Level 1: lite-lite-lite"]\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef level fill:#e3f2fd,stroke:#1976d2\n\n class Start startend,Q1,Q2,Q3,Q4,Q6,Q7,Q8 decision,Issue,L1,L2Plan,L2Fix,L2Multi,L3Std,L3TDD,L3Test,L4,L5 level\n'}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143",children:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\u662f\u6307\u5fc5\u987b\u4f5c\u4e3a\u539f\u5b50\u7ec4\u4e00\u8d77\u6267\u884c\u7684\u547d\u4ee4\u96c6\u5408\u3002\u62c6\u5206\u8fd9\u4e9b\u547d\u4ee4\u4f1a\u7834\u574f\u903b\u8f91\u6d41\u7a0b\u5e76\u4ea7\u751f\u4e0d\u5b8c\u6574\u7684\u72b6\u6001\u3002"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u793a\u4f8b"}),"\uff1a\u5355\u5143 ",(0,i.jsx)(l.code,{children:"lite-plan -> lite-execute"})," \u5fc5\u987b\u4e00\u8d77\u5b8c\u6210\u3002\u5728 ",(0,i.jsx)(l.code,{children:"lite-plan"})," \u4e4b\u540e\u505c\u6b62\u4f1a\u7559\u4e0b\u8ba1\u5212\u4f46\u6ca1\u6709\u5b9e\u73b0\u3002"]}),"\n",(0,i.jsx)(l.h2,{id:"level-1-\u95ee\u9898",children:"Level 1 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-level-1",children:"\u4f55\u65f6\u4f7f\u7528 Level 1\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 Level 1 (",(0,i.jsx)(l.code,{children:"lite-lite-lite"}),")\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u5feb\u901f\u4fee\u590d\uff08\u62fc\u5199\u9519\u8bef\u3001\u5c0f\u5e45\u8c03\u6574\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u7b80\u5355\u529f\u80fd\uff08\u5355\u4e2a\u51fd\u6570\u3001\u5c0f\u578b\u5de5\u5177\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u914d\u7f6e\u66f4\u6539\uff08\u73af\u5883\u53d8\u91cf\u3001\u8d85\u65f6\u503c\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u6587\u6863\u66f4\u65b0\uff08readme\u3001\u6ce8\u91ca\uff09"}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u4e0d\u8981\u4f7f\u7528"}),"\u5728\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u591a\u6a21\u5757\u66f4\u6539"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u6301\u4e45\u5316\u8bb0\u5f55"}),"\n",(0,i.jsx)(l.li,{children:"\u590d\u6742\u91cd\u6784"}),"\n",(0,i.jsx)(l.li,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"level-2-\u95ee\u9898",children:"Level 2 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"lite-planlite-fix-\u548c-multi-cli-plan-\u6709\u4ec0\u4e48\u533a\u522b",children:"lite-plan\u3001lite-fix \u548c multi-cli-plan \u6709\u4ec0\u4e48\u533a\u522b\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(l.th,{children:"\u7528\u9014"}),(0,i.jsx)(l.th,{children:"\u4f7f\u7528\u573a\u666f"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"lite-plan"})}),(0,i.jsx)(l.td,{children:"\u9700\u6c42\u6e05\u6670"}),(0,i.jsx)(l.td,{children:"\u5355\u6a21\u5757\u529f\u80fd"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"lite-fix"})}),(0,i.jsx)(l.td,{children:"Bug \u8bca\u65ad"}),(0,i.jsx)(l.td,{children:"Bug \u4fee\u590d\u3001\u751f\u4ea7\u95ee\u9898"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"multi-cli-plan"})}),(0,i.jsx)(l.td,{children:"\u591a\u89c6\u89d2\u5206\u6790"}),(0,i.jsx)(l.td,{children:"\u6280\u672f\u9009\u578b\u3001\u65b9\u6848\u6bd4\u8f83"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f",children:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:'/workflow:lite-fix --hotfix "Production database connection failing"\n'})}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u70ed\u4fee\u590d\u6a21\u5f0f"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u8df3\u8fc7\u5927\u90e8\u5206\u8bca\u65ad\u9636\u6bb5"}),"\n",(0,i.jsx)(l.li,{children:"\u6700\u5c0f\u5316\u89c4\u5212\uff08\u76f4\u63a5\u6267\u884c\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u81ea\u52a8\u751f\u6210\u540e\u7eed\u4efb\u52a1\u7528\u4e8e\u5b8c\u6574\u4fee\u590d + \u590d\u76d8"}),"\n",(0,i.jsx)(l.li,{children:(0,i.jsx)(l.strong,{children:"\u4ec5\u7528\u4e8e\u751f\u4ea7\u7d27\u6025\u60c5\u51b5"})}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-multi-cli-plan-vs-lite-plan",children:"\u4f55\u65f6\u4f7f\u7528 multi-cli-plan vs lite-plan\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 ",(0,i.jsx)(l.code,{children:"multi-cli-plan"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u591a\u4e2a\u89c6\u89d2\uff08Gemini\u3001Codex\u3001Claude\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u6280\u672f\u9009\u578b\u51b3\u7b56"}),"\n",(0,i.jsx)(l.li,{children:"\u65b9\u6848\u6bd4\u8f83"}),"\n",(0,i.jsx)(l.li,{children:"\u67b6\u6784\u6743\u8861"}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 ",(0,i.jsx)(l.code,{children:"lite-plan"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u9700\u6c42\u6e05\u6670"}),"\n",(0,i.jsx)(l.li,{children:"\u5355\u89c6\u89d2\u8db3\u591f"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u66f4\u5feb\u8fed\u4ee3"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"level-3-\u95ee\u9898",children:"Level 3 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"plantdd-plan-\u548c-test-fix-gen-\u6709\u4ec0\u4e48\u533a\u522b",children:"plan\u3001tdd-plan \u548c test-fix-gen \u6709\u4ec0\u4e48\u533a\u522b\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(l.th,{children:"\u7528\u9014"}),(0,i.jsx)(l.th,{children:"\u5173\u952e\u7279\u6027"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"plan"})}),(0,i.jsx)(l.td,{children:"\u6807\u51c6\u5f00\u53d1"}),(0,i.jsx)(l.td,{children:"5 \u9636\u6bb5\u89c4\u5212\u4e0e\u9a8c\u8bc1"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"tdd-plan"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,i.jsx)(l.td,{children:"\u7ea2-\u7eff-\u91cd\u6784\u5faa\u73af"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"test-fix-gen"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u4fee\u590d"}),(0,i.jsx)(l.td,{children:"\u6e10\u8fdb\u5f0f\u6d4b\u8bd5\u5c42\u7ea7\uff08L0-L3\uff09"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-tdd\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1",children:"\u4ec0\u4e48\u662f TDD\uff08\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff09\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"TDD"})," \u9075\u5faa\u7ea2-\u7eff-\u91cd\u6784\u5faa\u73af\uff1a"]}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u7ea2\uff08Red\uff09"}),"\uff1a\u7f16\u5199\u5931\u8d25\u7684\u6d4b\u8bd5"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u7eff\uff08Green\uff09"}),"\uff1a\u7f16\u5199\u6700\u5c0f\u4ee3\u7801\u4f7f\u6d4b\u8bd5\u901a\u8fc7"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u91cd\u6784\uff08Refactor\uff09"}),"\uff1a\u5728\u4fdd\u6301\u6d4b\u8bd5\u901a\u8fc7\u7684\u540c\u65f6\u6539\u8fdb\u4ee3\u7801"]}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u94c1\u5f8b"}),"\uff1a"]}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{children:"\u6ca1\u6709\u5931\u8d25\u7684\u6d4b\u8bd5\u5c31\u4e0d\u5199\u751f\u4ea7\u4ee3\u7801\n"})}),"\n",(0,i.jsx)(l.h3,{id:"\u4e3a\u4ec0\u4e48-tdd-\u8981\u6c42\u5148\u5199\u6d4b\u8bd5",children:"\u4e3a\u4ec0\u4e48 TDD \u8981\u6c42\u5148\u5199\u6d4b\u8bd5\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u65b9\u9762"}),(0,i.jsx)(l.th,{children:"\u6d4b\u8bd5\u4f18\u5148"}),(0,i.jsx)(l.th,{children:"\u6d4b\u8bd5\u968f\u540e"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u8bc1\u660e"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u5728\u5b9e\u73b0\u524d\u5931\u8d25"}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u7acb\u5373\u901a\u8fc7\uff08\u65e0\u8bc1\u660e\uff09"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u53d1\u73b0"})}),(0,i.jsx)(l.td,{children:"\u7f16\u7801\u524d\u53d1\u73b0\u8fb9\u754c\u60c5\u51b5"}),(0,i.jsx)(l.td,{children:"\u7f16\u7801\u540e\u53d1\u73b0\u8fb9\u754c\u60c5\u51b5"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u9a8c\u8bc1"})}),(0,i.jsx)(l.td,{children:"\u9a8c\u8bc1\u9700\u6c42"}),(0,i.jsx)(l.td,{children:"\u9a8c\u8bc1\u5b9e\u73b0"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"test-fix-gen-\u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7",children:"test-fix-gen \u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5c42\u7ea7"}),(0,i.jsx)(l.th,{children:"\u7c7b\u578b"}),(0,i.jsx)(l.th,{children:"\u63cf\u8ff0"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L0"})}),(0,i.jsx)(l.td,{children:"\u9759\u6001"}),(0,i.jsx)(l.td,{children:"\u7c7b\u578b\u68c0\u67e5\u3001linting"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L1"})}),(0,i.jsx)(l.td,{children:"\u5355\u5143"}),(0,i.jsx)(l.td,{children:"\u51fd\u6570\u7ea7\u522b\u6d4b\u8bd5"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L2"})}),(0,i.jsx)(l.td,{children:"\u96c6\u6210"}),(0,i.jsx)(l.td,{children:"\u7ec4\u4ef6\u4ea4\u4e92"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L3"})}),(0,i.jsx)(l.td,{children:"E2E"}),(0,i.jsx)(l.td,{children:"\u5b8c\u6574\u7cfb\u7edf\u6d4b\u8bd5"})]})]})]}),"\n",(0,i.jsx)(l.h2,{id:"level-4-\u95ee\u9898",children:"Level 4 \u95ee\u9898"}),"\n",(0,i.jsxs)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-brainstorm",children:["\u4f55\u65f6\u4f7f\u7528 brainstorm",":auto-parallel","\uff1f"]}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 Level 4 (",(0,i.jsx)(l.code,{children:"brainstorm:auto-parallel"}),")\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u65b0\u529f\u80fd\u8bbe\u8ba1"}),"\n",(0,i.jsx)(l.li,{children:"\u7cfb\u7edf\u67b6\u6784\u91cd\u6784"}),"\n",(0,i.jsx)(l.li,{children:"\u63a2\u7d22\u6027\u9700\u6c42"}),"\n",(0,i.jsx)(l.li,{children:"\u4e0d\u786e\u5b9a\u7684\u5b9e\u73b0\u65b9\u6cd5"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u591a\u7ef4\u5ea6\u6743\u8861"}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"brainstorm-\u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272",children:"brainstorm \u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u89d2\u8272"}),(0,i.jsx)(l.th,{children:"\u63cf\u8ff0"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"system-architect"})}),(0,i.jsx)(l.td,{children:"\u7cfb\u7edf\u8bbe\u8ba1"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"ui-designer"})}),(0,i.jsx)(l.td,{children:"UI \u8bbe\u8ba1"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"ux-expert"})}),(0,i.jsx)(l.td,{children:"\u7528\u6237\u4f53\u9a8c"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"product-manager"})}),(0,i.jsx)(l.td,{children:"\u4ea7\u54c1\u9700\u6c42"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"product-owner"})}),(0,i.jsx)(l.td,{children:"\u4e1a\u52a1\u4ef7\u503c"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"data-architect"})}),(0,i.jsx)(l.td,{children:"\u6570\u636e\u7ed3\u6784"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"scrum-master"})}),(0,i.jsx)(l.td,{children:"\u6d41\u7a0b\u548c\u56e2\u961f"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"subject-matter-expert"})}),(0,i.jsx)(l.td,{children:"\u9886\u57df\u4e13\u4e1a\u77e5\u8bc6"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"test-strategist"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u7b56\u7565"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-with-file-\u5de5\u4f5c\u6d41",children:"\u4ec0\u4e48\u662f With-File \u5de5\u4f5c\u6d41\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"With-File \u5de5\u4f5c\u6d41"}),"\u63d0\u4f9b\u591a CLI \u534f\u4f5c\u7684\u6587\u6863\u5316\u63a2\u7d22\uff1a"]}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(l.th,{children:"\u7528\u9014"}),(0,i.jsx)(l.th,{children:"\u7ea7\u522b"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"brainstorm-with-file"})}),(0,i.jsx)(l.td,{children:"\u591a\u89c6\u89d2\u6784\u601d"}),(0,i.jsx)(l.td,{children:"4"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"debug-with-file"})}),(0,i.jsx)(l.td,{children:"\u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5"}),(0,i.jsx)(l.td,{children:"3"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"analyze-with-file"})}),(0,i.jsx)(l.td,{children:"\u534f\u4f5c\u5206\u6790"}),(0,i.jsx)(l.td,{children:"3"})]})]})]}),"\n",(0,i.jsx)(l.h2,{id:"level-5-\u95ee\u9898",children:"Level 5 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-ccw-coordinator",children:"\u4f55\u65f6\u4f7f\u7528 ccw-coordinator\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 Level 5 (",(0,i.jsx)(l.code,{children:"ccw-coordinator"}),")\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u590d\u6742\u7684\u591a\u6b65\u9aa4\u5de5\u4f5c\u6d41"}),"\n",(0,i.jsx)(l.li,{children:"\u4e0d\u786e\u5b9a\u4f7f\u7528\u54ea\u4e9b\u547d\u4ee4"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u7aef\u5230\u7aef\u81ea\u52a8\u5316"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u5b8c\u6574\u7684\u72b6\u6001\u8ddf\u8e2a\u548c\u53ef\u6062\u590d\u6027"}),"\n",(0,i.jsx)(l.li,{children:"\u56e2\u961f\u534f\u4f5c\u7edf\u4e00\u6267\u884c\u6d41\u7a0b"}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"ccw-coordinator-\u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c",children:"ccw-coordinator \u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u65b9\u9762"}),(0,i.jsx)(l.th,{children:"Level 1-4"}),(0,i.jsx)(l.th,{children:"Level 5"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u547d\u4ee4\u9009\u62e9"})}),(0,i.jsx)(l.td,{children:"\u624b\u52a8"}),(0,i.jsx)(l.td,{children:"\u81ea\u52a8"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u7f16\u6392"})}),(0,i.jsx)(l.td,{children:"\u624b\u52a8"}),(0,i.jsx)(l.td,{children:"\u667a\u80fd"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u72b6\u6001\u8ddf\u8e2a"})}),(0,i.jsx)(l.td,{children:"\u5404\u5f02"}),(0,i.jsx)(l.td,{children:"\u5b8c\u6574\u6301\u4e45\u5316"})]})]})]}),"\n",(0,i.jsx)(l.h2,{id:"\u6267\u884c\u95ee\u9898",children:"\u6267\u884c\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-lite-execute",children:"\u4ec0\u4e48\u662f lite-execute\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.code,{children:"lite-execute"})," \u662f Level 2 \u5de5\u4f5c\u6d41\u7684\u7edf\u4e00\u6267\u884c\u547d\u4ee4\uff1a"]}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:lite-execute --in-memory\n"})}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u7279\u6027"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u72ec\u7acb\u4efb\u52a1\u5e76\u884c\u6267\u884c"}),"\n",(0,i.jsx)(l.li,{children:"\u4f9d\u8d56\u4efb\u52a1\u987a\u5e8f\u6267\u884c"}),"\n",(0,i.jsx)(l.li,{children:"\u901a\u8fc7 TodoWrite \u8ddf\u8e2a\u8fdb\u5ea6"}),"\n",(0,i.jsx)(l.li,{children:"\u53ef\u9009\u4ee3\u7801\u5ba1\u67e5"}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-execute",children:"\u4ec0\u4e48\u662f execute\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.code,{children:"execute"})," \u662f Level 3 \u5de5\u4f5c\u6d41\u7684\u7edf\u4e00\u6267\u884c\u547d\u4ee4\uff1a"]}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:execute --session WFS-{session-id}\n"})}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u7279\u6027"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u4f9d\u8d56\u5206\u6790"}),"\n",(0,i.jsx)(l.li,{children:"\u5e76\u884c/\u987a\u5e8f\u4efb\u52a1\u6267\u884c"}),"\n",(0,i.jsx)(l.li,{children:"\u57fa\u4e8e\u4f1a\u8bdd\u7684\u8fdb\u5ea6\u8ddf\u8e2a"}),"\n",(0,i.jsx)(l.li,{children:"\u4efb\u52a1\u5b8c\u6210\u6458\u8981"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"\u4f1a\u8bdd\u95ee\u9898",children:"\u4f1a\u8bdd\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd",children:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:session:resume # \u6062\u590d\u6700\u8fd1\u7684\u4f1a\u8bdd\r\n/workflow:session:resume WFS-{session-id} # \u6062\u590d\u7279\u5b9a\u4f1a\u8bdd\n"})}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd",children:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:session:complete --session WFS-{session-id}\n"})}),"\n",(0,i.jsx)(l.p,{children:"\u8fd9\u5c06\u4f7f\u7528\u7ecf\u9a8c\u6559\u8bad\u5f52\u6863\u4f1a\u8bdd\u5e76\u66f4\u65b0\u6e05\u5355\u3002"}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd",children:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:session:list\n"})}),"\n",(0,i.jsx)(l.h2,{id:"\u4ea7\u7269\u95ee\u9898",children:"\u4ea7\u7269\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc",children:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u7ea7\u522b"}),(0,i.jsx)(l.th,{children:"\u4ea7\u7269\u4f4d\u7f6e"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 1"}),(0,i.jsx)(l.td,{children:"\u65e0\uff08\u65e0\u72b6\u6001\uff09"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 2"}),(0,i.jsxs)(l.td,{children:[(0,i.jsx)(l.code,{children:"memory://plan"})," \u6216 ",(0,i.jsx)(l.code,{children:".workflow/.lite-fix/"}),"\u3001",(0,i.jsx)(l.code,{children:".workflow/.multi-cli-plan/"})]})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 3"}),(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:".workflow/active/WFS-{session}/"})})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 4"}),(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:".workflow/active/WFS-{session}/.brainstorming/"})})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 5"}),(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:".workflow/.ccw-coordinator/{session}/"})})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6",children:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{children:".workflow/active/WFS-{session}/\r\n\u251c\u2500\u2500 workflow-session.json # \u4f1a\u8bdd\u5143\u6570\u636e\r\n\u251c\u2500\u2500 IMPL_PLAN.md # \u5b9e\u73b0\u8ba1\u5212\r\n\u251c\u2500\u2500 TODO_LIST.md # \u8fdb\u5ea6\u8ddf\u8e2a\r\n\u251c\u2500\u2500 .task/\r\n\u2502 \u251c\u2500\u2500 IMPL-001.json # \u4efb\u52a1\u5b9a\u4e49\r\n\u2502 \u251c\u2500\u2500 IMPL-002.json\r\n\u2502 \u2514\u2500\u2500 ...\r\n\u2514\u2500\u2500 .process/\r\n \u251c\u2500\u2500 context-package.json # \u9879\u76ee\u4e0a\u4e0b\u6587\r\n \u2514\u2500\u2500 planning-notes.md\n"})}),"\n",(0,i.jsx)(l.h2,{id:"\u6d4b\u8bd5\u95ee\u9898",children:"\u6d4b\u8bd5\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5",children:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:'# \u4f1a\u8bdd\u6a21\u5f0f\uff08\u4ece\u73b0\u6709\u4f1a\u8bdd\uff09\r\n/workflow:test-fix-gen WFS-user-auth-v2\r\n\r\n# \u63d0\u793a\u6a21\u5f0f\uff08\u76f4\u63a5\u63cf\u8ff0\uff09\r\n/workflow:test-fix-gen "Add unit tests for the auth API"\n'})}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5",children:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:'/workflow:test-fix-gen "Tests failing for user registration"\r\n/workflow:test-cycle-execute\n'})}),"\n",(0,i.jsx)(l.p,{children:"\u5de5\u4f5c\u6d41\u5c06\uff1a"}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsx)(l.li,{children:"\u5206\u6790\u6d4b\u8bd5\u5931\u8d25"}),"\n",(0,i.jsx)(l.li,{children:"\u8bc6\u522b\u6839\u672c\u539f\u56e0"}),"\n",(0,i.jsx)(l.li,{children:"\u8fed\u4ee3\u4fee\u590d\u95ee\u9898"}),"\n",(0,i.jsx)(l.li,{children:"\u9a8c\u8bc1 >= 95% \u901a\u8fc7\u7387"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"\u6545\u969c\u6392\u9664",children:"\u6545\u969c\u6392\u9664"}),"\n",(0,i.jsx)(l.h3,{id:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\u8be5\u600e\u4e48\u529e",children:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\uff0c\u8be5\u600e\u4e48\u529e\uff1f"}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u68c0\u67e5\u9519\u8bef\u6d88\u606f"})," - \u8bc6\u522b\u6839\u672c\u539f\u56e0"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u67e5\u770b state.json"})," - \u68c0\u67e5 ",(0,i.jsx)(l.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u6062\u590d\u4f1a\u8bdd"})," - \u4f7f\u7528 ",(0,i.jsx)(l.code,{children:"/workflow:session:resume"})," \u7ee7\u7eed"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u8c03\u6574\u5e76\u91cd\u8bd5"})," - \u6839\u636e\u9519\u8bef\u4fee\u6539\u65b9\u6cd5"]}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1",children:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1\uff1f"}),"\n",(0,i.jsx)(l.p,{children:'\u7f16\u8f91\u4efb\u52a1 JSON \u5c06\u72b6\u6001\u8bbe\u7f6e\u4e3a "completed"\uff1a'}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd",children:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"# \u5217\u51fa\u4f1a\u8bdd\r\n/workflow:session:list\r\n\r\n# \u5220\u9664\u7279\u5b9a\u4f1a\u8bdd\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# \u6e05\u7406\u6240\u6709\u5df2\u5b8c\u6210\u7684\u4f1a\u8bdd\r\n/workflow:clean\n"})}),"\n",(0,i.jsx)(l.h2,{id:"\u6700\u4f73\u5b9e\u8df5",children:"\u6700\u4f73\u5b9e\u8df5"}),"\n",(0,i.jsx)(l.h3,{id:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b",children:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b\uff1f"}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u4ece\u7b80\u5355\u5f00\u59cb"})," - \u4f7f\u7528\u6ee1\u8db3\u9700\u6c42\u7684\u6700\u4f4e\u7ea7\u522b"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u6267\u884c\u524d\u89c4\u5212"})," - \u5c3d\u53ef\u80fd\u4f7f\u7528\u9a8c\u8bc1\u6b65\u9aa4"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u6301\u7eed\u6d4b\u8bd5"})," - \u5c06\u6d4b\u8bd5\u96c6\u6210\u5230\u5de5\u4f5c\u6d41\u4e2d"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u4ee3\u7801\u5ba1\u67e5"})," - \u4f7f\u7528\u5185\u7f6e\u5ba1\u67e5\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u8bb0\u5f55\u51b3\u7b56"})," - \u5bf9\u590d\u6742\u51b3\u7b56\u4f7f\u7528\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41"]}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-worktree-\u9694\u79bb",children:"\u4f55\u65f6\u4f7f\u7528 worktree \u9694\u79bb\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"Worktree \u9694\u79bb"}),"\u4e3b\u8981\u7528\u4e8e ",(0,i.jsx)(l.strong,{children:"Issue Workflow"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u4e3b\u5f00\u53d1\u5b8c\u6210\u540e"}),"\n",(0,i.jsxs)(l.li,{children:["\u5df2\u5408\u5e76\u5230 ",(0,i.jsx)(l.code,{children:"main"})," \u5206\u652f"]}),"\n",(0,i.jsx)(l.li,{children:"\u53d1\u73b0\u9700\u8981\u4fee\u590d\u7684\u95ee\u9898"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u5728\u4e0d\u5f71\u54cd\u5f53\u524d\u5f00\u53d1\u7684\u60c5\u51b5\u4e0b\u4fee\u590d"}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"Main Workflow"})," \u4e0d\u9700\u8981 worktree\uff0c\u56e0\u4e3a\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u4f9d\u8d56\u5206\u6790\u89e3\u51b3\u4e86\u5e76\u884c\u95ee\u9898"}),"\n",(0,i.jsx)(l.li,{children:"\u4ee3\u7406\u5e76\u884c\u6267\u884c\u72ec\u7acb\u4efb\u52a1"}),"\n",(0,i.jsx)(l.li,{children:"\u4e0d\u9700\u8981\u6587\u4ef6\u7cfb\u7edf\u9694\u79bb"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"\u76f8\u5173\u6587\u6863",children:"\u76f8\u5173\u6587\u6863"}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/introduction",children:"\u7b80\u4ecb"})," - \u5de5\u4f5c\u6d41\u6982\u8ff0"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-1-ultra-lightweight",children:"Level 1"})," - \u8d85\u8f7b\u91cf\u7ea7\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-2-rapid",children:"Level 2"})," - \u5feb\u901f\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-3-standard",children:"Level 3"})," - \u6807\u51c6\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"Level 4"})," - \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"Level 5"})," - \u667a\u80fd\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"../commands/general/ccw.mdx",children:"\u547d\u4ee4"})," - \u547d\u4ee4\u53c2\u8003"]}),"\n"]})]})}function o(e={}){const{wrapper:l}={...(0,d.R)(),...e.components};return l?(0,i.jsx)(l,{...e,children:(0,i.jsx)(j,{...e})}):j(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/46f40178.a8a5a914.js b/ccw/docs-site/build/zh/assets/js/46f40178.a8a5a914.js new file mode 100644 index 00000000..609314ff --- /dev/null +++ b/ccw/docs-site/build/zh/assets/js/46f40178.a8a5a914.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[567],{1184(e,l,n){n.d(l,{R:()=>r,x:()=>c});var s=n(3696);const i={},d=s.createContext(i);function r(e){const l=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(l):{...l,...e}},[l,e])}function c(e){let l;return l=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(d.Provider,{value:l},e.children)}},1878(e,l,n){n.r(l),n.d(l,{assets:()=>t,contentTitle:()=>h,default:()=>o,frontMatter:()=>c,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"workflows/faq","title":"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898","description":"\u5de5\u4f5c\u6d41\u4f7f\u7528\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/faq.mdx","sourceDirName":"workflows","slug":"/workflows/faq","permalink":"/docs/zh/workflows/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/faq.mdx","tags":[],"version":"current","sidebarPosition":7,"frontMatter":{"title":"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898","description":"\u5de5\u4f5c\u6d41\u4f7f\u7528\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54","sidebar_position":7}}');var i=n(2540),d=n(1184),r=n(1540);const c={title:"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898",description:"\u5de5\u4f5c\u6d41\u4f7f\u7528\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54",sidebar_position:7},h="\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898",t={},x=[{value:"\u901a\u7528\u95ee\u9898",id:"\u901a\u7528\u95ee\u9898",level:2},{value:"Main Workflow \u548c Issue Workflow \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"what-is-the-difference-between-main-workflow-and-issue-workflow",level:3},{value:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b\uff1f",id:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b",level:3},{value:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143\uff1f",id:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143",level:3},{value:"Level 1 \u95ee\u9898",id:"level-1-\u95ee\u9898",level:2},{value:"\u4f55\u65f6\u4f7f\u7528 Level 1\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-level-1",level:3},{value:"Level 2 \u95ee\u9898",id:"level-2-\u95ee\u9898",level:2},{value:"lite-plan\u3001lite-fix \u548c multi-cli-plan \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"lite-planlite-fix-\u548c-multi-cli-plan-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f\uff1f",id:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f",level:3},{value:"\u4f55\u65f6\u4f7f\u7528 multi-cli-plan vs lite-plan\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-multi-cli-plan-vs-lite-plan",level:3},{value:"Level 3 \u95ee\u9898",id:"level-3-\u95ee\u9898",level:2},{value:"plan\u3001tdd-plan \u548c test-fix-gen \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"plantdd-plan-\u548c-test-fix-gen-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4ec0\u4e48\u662f TDD\uff08\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff09\uff1f",id:"\u4ec0\u4e48\u662f-tdd\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1",level:3},{value:"\u4e3a\u4ec0\u4e48 TDD \u8981\u6c42\u5148\u5199\u6d4b\u8bd5\uff1f",id:"\u4e3a\u4ec0\u4e48-tdd-\u8981\u6c42\u5148\u5199\u6d4b\u8bd5",level:3},{value:"test-fix-gen \u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7\uff1f",id:"test-fix-gen-\u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7",level:3},{value:"Level 4 \u95ee\u9898",id:"level-4-\u95ee\u9898",level:2},{value:"\u4f55\u65f6\u4f7f\u7528 brainstorm\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-brainstorm",level:3},{value:"brainstorm \u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272\uff1f",id:"brainstorm-\u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272",level:3},{value:"\u4ec0\u4e48\u662f With-File \u5de5\u4f5c\u6d41\uff1f",id:"\u4ec0\u4e48\u662f-with-file-\u5de5\u4f5c\u6d41",level:3},{value:"Level 5 \u95ee\u9898",id:"level-5-\u95ee\u9898",level:2},{value:"\u4f55\u65f6\u4f7f\u7528 ccw-coordinator\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-ccw-coordinator",level:3},{value:"ccw-coordinator \u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c\uff1f",id:"ccw-coordinator-\u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c",level:3},{value:"\u6267\u884c\u95ee\u9898",id:"\u6267\u884c\u95ee\u9898",level:2},{value:"\u4ec0\u4e48\u662f lite-execute\uff1f",id:"\u4ec0\u4e48\u662f-lite-execute",level:3},{value:"\u4ec0\u4e48\u662f execute\uff1f",id:"\u4ec0\u4e48\u662f-execute",level:3},{value:"\u4f1a\u8bdd\u95ee\u9898",id:"\u4f1a\u8bdd\u95ee\u9898",level:2},{value:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd",level:3},{value:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd",level:3},{value:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd",level:3},{value:"\u4ea7\u7269\u95ee\u9898",id:"\u4ea7\u7269\u95ee\u9898",level:2},{value:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc\uff1f",id:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc",level:3},{value:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6\uff1f",id:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6",level:3},{value:"\u6d4b\u8bd5\u95ee\u9898",id:"\u6d4b\u8bd5\u95ee\u9898",level:2},{value:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5\uff1f",id:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5",level:3},{value:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5\uff1f",id:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5",level:3},{value:"\u6545\u969c\u6392\u9664",id:"\u6545\u969c\u6392\u9664",level:2},{value:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\uff0c\u8be5\u600e\u4e48\u529e\uff1f",id:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\u8be5\u600e\u4e48\u529e",level:3},{value:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1\uff1f",id:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1",level:3},{value:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd\uff1f",id:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:2},{value:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b\uff1f",id:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b",level:3},{value:"\u4f55\u65f6\u4f7f\u7528 worktree \u9694\u79bb\uff1f",id:"\u4f55\u65f6\u4f7f\u7528-worktree-\u9694\u79bb",level:3},{value:"\u76f8\u5173\u6587\u6863",id:"\u76f8\u5173\u6587\u6863",level:2}];function j(e){const l={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.header,{children:(0,i.jsx)(l.h1,{id:"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898",children:"\u5de5\u4f5c\u6d41\u5e38\u89c1\u95ee\u9898"})}),"\n",(0,i.jsx)(l.p,{children:"CCW \u5de5\u4f5c\u6d41\u7684\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u7b54\u3002"}),"\n",(0,i.jsx)(l.h2,{id:"\u901a\u7528\u95ee\u9898",children:"\u901a\u7528\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"what-is-the-difference-between-main-workflow-and-issue-workflow",children:"Main Workflow \u548c Issue Workflow \u6709\u4ec0\u4e48\u533a\u522b\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"Main Workflow"})," \u7528\u4e8e\u4e3b\u8981\u5f00\u53d1\uff08Level 1-5\uff09\uff0c\u800c ",(0,i.jsx)(l.strong,{children:"Issue Workflow"})," \u7528\u4e8e\u5f00\u53d1\u540e\u671f\u7684\u7ef4\u62a4\u5de5\u4f5c\u3002"]}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u65b9\u9762"}),(0,i.jsx)(l.th,{children:"Main Workflow"}),(0,i.jsx)(l.th,{children:"Issue Workflow"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u7528\u9014"})}),(0,i.jsx)(l.td,{children:"\u529f\u80fd\u5f00\u53d1"}),(0,i.jsx)(l.td,{children:"\u5f00\u53d1\u540e\u4fee\u590d"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u65f6\u673a"})}),(0,i.jsx)(l.td,{children:"\u5f00\u53d1\u9636\u6bb5"}),(0,i.jsx)(l.td,{children:"\u4e3b\u5de5\u4f5c\u6d41\u5b8c\u6210\u540e"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u5e76\u884c\u5904\u7406"})}),(0,i.jsx)(l.td,{children:"\u4f9d\u8d56\u5206\u6790"}),(0,i.jsx)(l.td,{children:"Worktree \u9694\u79bb\uff08\u53ef\u9009\uff09"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b",children:"\u5982\u4f55\u9009\u62e9\u5408\u9002\u7684\u5de5\u4f5c\u6d41\u7ea7\u522b\uff1f"}),"\n",(0,i.jsx)(r.A,{chart:'\n flowchart TD\n Start([\u5f00\u59cb]) --\x3e Q1{\u5f00\u53d1\u540e\u671f?}\n Q1 --\x3e|\u662f| Issue["Issue Workflow"]\n Q1 --\x3e|\u5426| Q2{\u547d\u4ee4\u4e0d\u786e\u5b9a?}\n Q2 --\x3e|\u662f| L5["Level 5: ccw-coordinator"]\n Q2 --\x3e|\u5426| Q3{\u9700\u6c42\u6e05\u6670?}\n Q3 --\x3e|\u5426| L4["Level 4: brainstorm"]\n Q3 --\x3e|\u662f| Q4{\u9700\u8981\u6301\u4e45\u5316\u4f1a\u8bdd?}\n Q4 --\x3e|\u662f| Q5{\u5f00\u53d1\u7c7b\u578b?}\n Q4 --\x3e|\u5426| Q6{\u591a\u89c6\u89d2\u5206\u6790?}\n Q5 --\x3e|\u6807\u51c6\u5f00\u53d1| L3Std["Level 3: plan"]\n Q5 --\x3e|TDD| L3TDD["Level 3: tdd-plan"]\n Q5 --\x3e|\u6d4b\u8bd5\u4fee\u590d| L3Test["Level 3: test-fix-gen"]\n Q6 --\x3e|\u662f| L2Multi["Level 2: multi-cli-plan"]\n Q6 --\x3e|\u5426| Q7{Bug \u4fee\u590d?}\n Q7 --\x3e|\u662f| L2Fix["Level 2: lite-fix"]\n Q7 --\x3e|\u5426| Q8{\u9700\u8981\u89c4\u5212?}\n Q8 --\x3e|\u662f| L2Plan["Level 2: lite-plan"]\n Q8 --\x3e|\u5426| L1["Level 1: lite-lite-lite"]\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef level fill:#e3f2fd,stroke:#1976d2\n\n class Start startend,Q1,Q2,Q3,Q4,Q6,Q7,Q8 decision,Issue,L1,L2Plan,L2Fix,L2Multi,L3Std,L3TDD,L3Test,L4,L5 level\n'}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143",children:"\u4ec0\u4e48\u662f\u6700\u5c0f\u6267\u884c\u5355\u5143\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\u662f\u6307\u5fc5\u987b\u4f5c\u4e3a\u539f\u5b50\u7ec4\u4e00\u8d77\u6267\u884c\u7684\u547d\u4ee4\u96c6\u5408\u3002\u62c6\u5206\u8fd9\u4e9b\u547d\u4ee4\u4f1a\u7834\u574f\u903b\u8f91\u6d41\u7a0b\u5e76\u4ea7\u751f\u4e0d\u5b8c\u6574\u7684\u72b6\u6001\u3002"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u793a\u4f8b"}),"\uff1a\u5355\u5143 ",(0,i.jsx)(l.code,{children:"lite-plan -> lite-execute"})," \u5fc5\u987b\u4e00\u8d77\u5b8c\u6210\u3002\u5728 ",(0,i.jsx)(l.code,{children:"lite-plan"})," \u4e4b\u540e\u505c\u6b62\u4f1a\u7559\u4e0b\u8ba1\u5212\u4f46\u6ca1\u6709\u5b9e\u73b0\u3002"]}),"\n",(0,i.jsx)(l.h2,{id:"level-1-\u95ee\u9898",children:"Level 1 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-level-1",children:"\u4f55\u65f6\u4f7f\u7528 Level 1\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 Level 1 (",(0,i.jsx)(l.code,{children:"lite-lite-lite"}),")\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u5feb\u901f\u4fee\u590d\uff08\u62fc\u5199\u9519\u8bef\u3001\u5c0f\u5e45\u8c03\u6574\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u7b80\u5355\u529f\u80fd\uff08\u5355\u4e2a\u51fd\u6570\u3001\u5c0f\u578b\u5de5\u5177\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u914d\u7f6e\u66f4\u6539\uff08\u73af\u5883\u53d8\u91cf\u3001\u8d85\u65f6\u503c\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u6587\u6863\u66f4\u65b0\uff08readme\u3001\u6ce8\u91ca\uff09"}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u4e0d\u8981\u4f7f\u7528"}),"\u5728\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u591a\u6a21\u5757\u66f4\u6539"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u6301\u4e45\u5316\u8bb0\u5f55"}),"\n",(0,i.jsx)(l.li,{children:"\u590d\u6742\u91cd\u6784"}),"\n",(0,i.jsx)(l.li,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"level-2-\u95ee\u9898",children:"Level 2 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"lite-planlite-fix-\u548c-multi-cli-plan-\u6709\u4ec0\u4e48\u533a\u522b",children:"lite-plan\u3001lite-fix \u548c multi-cli-plan \u6709\u4ec0\u4e48\u533a\u522b\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(l.th,{children:"\u7528\u9014"}),(0,i.jsx)(l.th,{children:"\u4f7f\u7528\u573a\u666f"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"lite-plan"})}),(0,i.jsx)(l.td,{children:"\u9700\u6c42\u6e05\u6670"}),(0,i.jsx)(l.td,{children:"\u5355\u6a21\u5757\u529f\u80fd"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"lite-fix"})}),(0,i.jsx)(l.td,{children:"Bug \u8bca\u65ad"}),(0,i.jsx)(l.td,{children:"Bug \u4fee\u590d\u3001\u751f\u4ea7\u95ee\u9898"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"multi-cli-plan"})}),(0,i.jsx)(l.td,{children:"\u591a\u89c6\u89d2\u5206\u6790"}),(0,i.jsx)(l.td,{children:"\u6280\u672f\u9009\u578b\u3001\u65b9\u6848\u6bd4\u8f83"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f",children:"\u4ec0\u4e48\u662f\u70ed\u4fee\u590d\u6a21\u5f0f\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:'/workflow:lite-fix --hotfix "Production database connection failing"\n'})}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u70ed\u4fee\u590d\u6a21\u5f0f"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u8df3\u8fc7\u5927\u90e8\u5206\u8bca\u65ad\u9636\u6bb5"}),"\n",(0,i.jsx)(l.li,{children:"\u6700\u5c0f\u5316\u89c4\u5212\uff08\u76f4\u63a5\u6267\u884c\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u81ea\u52a8\u751f\u6210\u540e\u7eed\u4efb\u52a1\u7528\u4e8e\u5b8c\u6574\u4fee\u590d + \u590d\u76d8"}),"\n",(0,i.jsx)(l.li,{children:(0,i.jsx)(l.strong,{children:"\u4ec5\u7528\u4e8e\u751f\u4ea7\u7d27\u6025\u60c5\u51b5"})}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-multi-cli-plan-vs-lite-plan",children:"\u4f55\u65f6\u4f7f\u7528 multi-cli-plan vs lite-plan\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 ",(0,i.jsx)(l.code,{children:"multi-cli-plan"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u591a\u4e2a\u89c6\u89d2\uff08Gemini\u3001Codex\u3001Claude\uff09"}),"\n",(0,i.jsx)(l.li,{children:"\u6280\u672f\u9009\u578b\u51b3\u7b56"}),"\n",(0,i.jsx)(l.li,{children:"\u65b9\u6848\u6bd4\u8f83"}),"\n",(0,i.jsx)(l.li,{children:"\u67b6\u6784\u6743\u8861"}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 ",(0,i.jsx)(l.code,{children:"lite-plan"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u9700\u6c42\u6e05\u6670"}),"\n",(0,i.jsx)(l.li,{children:"\u5355\u89c6\u89d2\u8db3\u591f"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u66f4\u5feb\u8fed\u4ee3"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"level-3-\u95ee\u9898",children:"Level 3 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"plantdd-plan-\u548c-test-fix-gen-\u6709\u4ec0\u4e48\u533a\u522b",children:"plan\u3001tdd-plan \u548c test-fix-gen \u6709\u4ec0\u4e48\u533a\u522b\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(l.th,{children:"\u7528\u9014"}),(0,i.jsx)(l.th,{children:"\u5173\u952e\u7279\u6027"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"plan"})}),(0,i.jsx)(l.td,{children:"\u6807\u51c6\u5f00\u53d1"}),(0,i.jsx)(l.td,{children:"5 \u9636\u6bb5\u89c4\u5212\u4e0e\u9a8c\u8bc1"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"tdd-plan"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,i.jsx)(l.td,{children:"\u7ea2-\u7eff-\u91cd\u6784\u5faa\u73af"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"test-fix-gen"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u4fee\u590d"}),(0,i.jsx)(l.td,{children:"\u6e10\u8fdb\u5f0f\u6d4b\u8bd5\u5c42\u7ea7\uff08L0-L3\uff09"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-tdd\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1",children:"\u4ec0\u4e48\u662f TDD\uff08\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\uff09\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"TDD"})," \u9075\u5faa\u7ea2-\u7eff-\u91cd\u6784\u5faa\u73af\uff1a"]}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u7ea2\uff08Red\uff09"}),"\uff1a\u7f16\u5199\u5931\u8d25\u7684\u6d4b\u8bd5"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u7eff\uff08Green\uff09"}),"\uff1a\u7f16\u5199\u6700\u5c0f\u4ee3\u7801\u4f7f\u6d4b\u8bd5\u901a\u8fc7"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u91cd\u6784\uff08Refactor\uff09"}),"\uff1a\u5728\u4fdd\u6301\u6d4b\u8bd5\u901a\u8fc7\u7684\u540c\u65f6\u6539\u8fdb\u4ee3\u7801"]}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u94c1\u5f8b"}),"\uff1a"]}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{children:"\u6ca1\u6709\u5931\u8d25\u7684\u6d4b\u8bd5\u5c31\u4e0d\u5199\u751f\u4ea7\u4ee3\u7801\n"})}),"\n",(0,i.jsx)(l.h3,{id:"\u4e3a\u4ec0\u4e48-tdd-\u8981\u6c42\u5148\u5199\u6d4b\u8bd5",children:"\u4e3a\u4ec0\u4e48 TDD \u8981\u6c42\u5148\u5199\u6d4b\u8bd5\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u65b9\u9762"}),(0,i.jsx)(l.th,{children:"\u6d4b\u8bd5\u4f18\u5148"}),(0,i.jsx)(l.th,{children:"\u6d4b\u8bd5\u968f\u540e"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u8bc1\u660e"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u5728\u5b9e\u73b0\u524d\u5931\u8d25"}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u7acb\u5373\u901a\u8fc7\uff08\u65e0\u8bc1\u660e\uff09"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u53d1\u73b0"})}),(0,i.jsx)(l.td,{children:"\u7f16\u7801\u524d\u53d1\u73b0\u8fb9\u754c\u60c5\u51b5"}),(0,i.jsx)(l.td,{children:"\u7f16\u7801\u540e\u53d1\u73b0\u8fb9\u754c\u60c5\u51b5"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u9a8c\u8bc1"})}),(0,i.jsx)(l.td,{children:"\u9a8c\u8bc1\u9700\u6c42"}),(0,i.jsx)(l.td,{children:"\u9a8c\u8bc1\u5b9e\u73b0"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"test-fix-gen-\u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7",children:"test-fix-gen \u4e2d\u6709\u54ea\u4e9b\u6d4b\u8bd5\u5c42\u7ea7\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5c42\u7ea7"}),(0,i.jsx)(l.th,{children:"\u7c7b\u578b"}),(0,i.jsx)(l.th,{children:"\u63cf\u8ff0"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L0"})}),(0,i.jsx)(l.td,{children:"\u9759\u6001"}),(0,i.jsx)(l.td,{children:"\u7c7b\u578b\u68c0\u67e5\u3001linting"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L1"})}),(0,i.jsx)(l.td,{children:"\u5355\u5143"}),(0,i.jsx)(l.td,{children:"\u51fd\u6570\u7ea7\u522b\u6d4b\u8bd5"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L2"})}),(0,i.jsx)(l.td,{children:"\u96c6\u6210"}),(0,i.jsx)(l.td,{children:"\u7ec4\u4ef6\u4ea4\u4e92"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"L3"})}),(0,i.jsx)(l.td,{children:"E2E"}),(0,i.jsx)(l.td,{children:"\u5b8c\u6574\u7cfb\u7edf\u6d4b\u8bd5"})]})]})]}),"\n",(0,i.jsx)(l.h2,{id:"level-4-\u95ee\u9898",children:"Level 4 \u95ee\u9898"}),"\n",(0,i.jsxs)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-brainstorm",children:["\u4f55\u65f6\u4f7f\u7528 brainstorm",":auto-parallel","\uff1f"]}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 Level 4 (",(0,i.jsx)(l.code,{children:"brainstorm:auto-parallel"}),")\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u65b0\u529f\u80fd\u8bbe\u8ba1"}),"\n",(0,i.jsx)(l.li,{children:"\u7cfb\u7edf\u67b6\u6784\u91cd\u6784"}),"\n",(0,i.jsx)(l.li,{children:"\u63a2\u7d22\u6027\u9700\u6c42"}),"\n",(0,i.jsx)(l.li,{children:"\u4e0d\u786e\u5b9a\u7684\u5b9e\u73b0\u65b9\u6cd5"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u591a\u7ef4\u5ea6\u6743\u8861"}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"brainstorm-\u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272",children:"brainstorm \u4e2d\u6709\u54ea\u4e9b\u53ef\u7528\u89d2\u8272\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u89d2\u8272"}),(0,i.jsx)(l.th,{children:"\u63cf\u8ff0"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"system-architect"})}),(0,i.jsx)(l.td,{children:"\u7cfb\u7edf\u8bbe\u8ba1"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"ui-designer"})}),(0,i.jsx)(l.td,{children:"UI \u8bbe\u8ba1"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"ux-expert"})}),(0,i.jsx)(l.td,{children:"\u7528\u6237\u4f53\u9a8c"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"product-manager"})}),(0,i.jsx)(l.td,{children:"\u4ea7\u54c1\u9700\u6c42"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"product-owner"})}),(0,i.jsx)(l.td,{children:"\u4e1a\u52a1\u4ef7\u503c"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"data-architect"})}),(0,i.jsx)(l.td,{children:"\u6570\u636e\u7ed3\u6784"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"scrum-master"})}),(0,i.jsx)(l.td,{children:"\u6d41\u7a0b\u548c\u56e2\u961f"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"subject-matter-expert"})}),(0,i.jsx)(l.td,{children:"\u9886\u57df\u4e13\u4e1a\u77e5\u8bc6"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"test-strategist"})}),(0,i.jsx)(l.td,{children:"\u6d4b\u8bd5\u7b56\u7565"})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-with-file-\u5de5\u4f5c\u6d41",children:"\u4ec0\u4e48\u662f With-File \u5de5\u4f5c\u6d41\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"With-File \u5de5\u4f5c\u6d41"}),"\u63d0\u4f9b\u591a CLI \u534f\u4f5c\u7684\u6587\u6863\u5316\u63a2\u7d22\uff1a"]}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(l.th,{children:"\u7528\u9014"}),(0,i.jsx)(l.th,{children:"\u7ea7\u522b"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"brainstorm-with-file"})}),(0,i.jsx)(l.td,{children:"\u591a\u89c6\u89d2\u6784\u601d"}),(0,i.jsx)(l.td,{children:"4"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"debug-with-file"})}),(0,i.jsx)(l.td,{children:"\u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5"}),(0,i.jsx)(l.td,{children:"3"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:"analyze-with-file"})}),(0,i.jsx)(l.td,{children:"\u534f\u4f5c\u5206\u6790"}),(0,i.jsx)(l.td,{children:"3"})]})]})]}),"\n",(0,i.jsx)(l.h2,{id:"level-5-\u95ee\u9898",children:"Level 5 \u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-ccw-coordinator",children:"\u4f55\u65f6\u4f7f\u7528 ccw-coordinator\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:["\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u4f7f\u7528 Level 5 (",(0,i.jsx)(l.code,{children:"ccw-coordinator"}),")\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u590d\u6742\u7684\u591a\u6b65\u9aa4\u5de5\u4f5c\u6d41"}),"\n",(0,i.jsx)(l.li,{children:"\u4e0d\u786e\u5b9a\u4f7f\u7528\u54ea\u4e9b\u547d\u4ee4"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u7aef\u5230\u7aef\u81ea\u52a8\u5316"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u5b8c\u6574\u7684\u72b6\u6001\u8ddf\u8e2a\u548c\u53ef\u6062\u590d\u6027"}),"\n",(0,i.jsx)(l.li,{children:"\u56e2\u961f\u534f\u4f5c\u7edf\u4e00\u6267\u884c\u6d41\u7a0b"}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"ccw-coordinator-\u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c",children:"ccw-coordinator \u4e0e\u5176\u4ed6\u7ea7\u522b\u6709\u4f55\u4e0d\u540c\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u65b9\u9762"}),(0,i.jsx)(l.th,{children:"Level 1-4"}),(0,i.jsx)(l.th,{children:"Level 5"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u547d\u4ee4\u9009\u62e9"})}),(0,i.jsx)(l.td,{children:"\u624b\u52a8"}),(0,i.jsx)(l.td,{children:"\u81ea\u52a8"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u7f16\u6392"})}),(0,i.jsx)(l.td,{children:"\u624b\u52a8"}),(0,i.jsx)(l.td,{children:"\u667a\u80fd"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:(0,i.jsx)(l.strong,{children:"\u72b6\u6001\u8ddf\u8e2a"})}),(0,i.jsx)(l.td,{children:"\u5404\u5f02"}),(0,i.jsx)(l.td,{children:"\u5b8c\u6574\u6301\u4e45\u5316"})]})]})]}),"\n",(0,i.jsx)(l.h2,{id:"\u6267\u884c\u95ee\u9898",children:"\u6267\u884c\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-lite-execute",children:"\u4ec0\u4e48\u662f lite-execute\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.code,{children:"lite-execute"})," \u662f Level 2 \u5de5\u4f5c\u6d41\u7684\u7edf\u4e00\u6267\u884c\u547d\u4ee4\uff1a"]}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:lite-execute --in-memory\n"})}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u7279\u6027"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u72ec\u7acb\u4efb\u52a1\u5e76\u884c\u6267\u884c"}),"\n",(0,i.jsx)(l.li,{children:"\u4f9d\u8d56\u4efb\u52a1\u987a\u5e8f\u6267\u884c"}),"\n",(0,i.jsx)(l.li,{children:"\u901a\u8fc7 TodoWrite \u8ddf\u8e2a\u8fdb\u5ea6"}),"\n",(0,i.jsx)(l.li,{children:"\u53ef\u9009\u4ee3\u7801\u5ba1\u67e5"}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u4ec0\u4e48\u662f-execute",children:"\u4ec0\u4e48\u662f execute\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.code,{children:"execute"})," \u662f Level 3 \u5de5\u4f5c\u6d41\u7684\u7edf\u4e00\u6267\u884c\u547d\u4ee4\uff1a"]}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:execute --session WFS-{session-id}\n"})}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"\u7279\u6027"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u4f9d\u8d56\u5206\u6790"}),"\n",(0,i.jsx)(l.li,{children:"\u5e76\u884c/\u987a\u5e8f\u4efb\u52a1\u6267\u884c"}),"\n",(0,i.jsx)(l.li,{children:"\u57fa\u4e8e\u4f1a\u8bdd\u7684\u8fdb\u5ea6\u8ddf\u8e2a"}),"\n",(0,i.jsx)(l.li,{children:"\u4efb\u52a1\u5b8c\u6210\u6458\u8981"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"\u4f1a\u8bdd\u95ee\u9898",children:"\u4f1a\u8bdd\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd",children:"\u5982\u4f55\u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:session:resume # \u6062\u590d\u6700\u8fd1\u7684\u4f1a\u8bdd\r\n/workflow:session:resume WFS-{session-id} # \u6062\u590d\u7279\u5b9a\u4f1a\u8bdd\n"})}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd",children:"\u5982\u4f55\u5b8c\u6210\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:session:complete --session WFS-{session-id}\n"})}),"\n",(0,i.jsx)(l.p,{children:"\u8fd9\u5c06\u4f7f\u7528\u7ecf\u9a8c\u6559\u8bad\u5f52\u6863\u4f1a\u8bdd\u5e76\u66f4\u65b0\u6e05\u5355\u3002"}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd",children:"\u5982\u4f55\u5217\u51fa\u6240\u6709\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"/workflow:session:list\n"})}),"\n",(0,i.jsx)(l.h2,{id:"\u4ea7\u7269\u95ee\u9898",children:"\u4ea7\u7269\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc",children:"\u5de5\u4f5c\u6d41\u4ea7\u7269\u5b58\u50a8\u5728\u54ea\u91cc\uff1f"}),"\n",(0,i.jsxs)(l.table,{children:[(0,i.jsx)(l.thead,{children:(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.th,{children:"\u7ea7\u522b"}),(0,i.jsx)(l.th,{children:"\u4ea7\u7269\u4f4d\u7f6e"})]})}),(0,i.jsxs)(l.tbody,{children:[(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 1"}),(0,i.jsx)(l.td,{children:"\u65e0\uff08\u65e0\u72b6\u6001\uff09"})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 2"}),(0,i.jsxs)(l.td,{children:[(0,i.jsx)(l.code,{children:"memory://plan"})," \u6216 ",(0,i.jsx)(l.code,{children:".workflow/.lite-fix/"}),"\u3001",(0,i.jsx)(l.code,{children:".workflow/.multi-cli-plan/"})]})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 3"}),(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:".workflow/active/WFS-{session}/"})})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 4"}),(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:".workflow/active/WFS-{session}/.brainstorming/"})})]}),(0,i.jsxs)(l.tr,{children:[(0,i.jsx)(l.td,{children:"Level 5"}),(0,i.jsx)(l.td,{children:(0,i.jsx)(l.code,{children:".workflow/.ccw-coordinator/{session}/"})})]})]})]}),"\n",(0,i.jsx)(l.h3,{id:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6",children:"\u4f1a\u8bdd\u4e2d\u5305\u542b\u54ea\u4e9b\u6587\u4ef6\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{children:".workflow/active/WFS-{session}/\r\n\u251c\u2500\u2500 workflow-session.json # \u4f1a\u8bdd\u5143\u6570\u636e\r\n\u251c\u2500\u2500 IMPL_PLAN.md # \u5b9e\u73b0\u8ba1\u5212\r\n\u251c\u2500\u2500 TODO_LIST.md # \u8fdb\u5ea6\u8ddf\u8e2a\r\n\u251c\u2500\u2500 .task/\r\n\u2502 \u251c\u2500\u2500 IMPL-001.json # \u4efb\u52a1\u5b9a\u4e49\r\n\u2502 \u251c\u2500\u2500 IMPL-002.json\r\n\u2502 \u2514\u2500\u2500 ...\r\n\u2514\u2500\u2500 .process/\r\n \u251c\u2500\u2500 context-package.json # \u9879\u76ee\u4e0a\u4e0b\u6587\r\n \u2514\u2500\u2500 planning-notes.md\n"})}),"\n",(0,i.jsx)(l.h2,{id:"\u6d4b\u8bd5\u95ee\u9898",children:"\u6d4b\u8bd5\u95ee\u9898"}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5",children:"\u5982\u4f55\u4e3a\u73b0\u6709\u4ee3\u7801\u6dfb\u52a0\u6d4b\u8bd5\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:'# \u4f1a\u8bdd\u6a21\u5f0f\uff08\u4ece\u73b0\u6709\u4f1a\u8bdd\uff09\r\n/workflow:test-fix-gen WFS-user-auth-v2\r\n\r\n# \u63d0\u793a\u6a21\u5f0f\uff08\u76f4\u63a5\u63cf\u8ff0\uff09\r\n/workflow:test-fix-gen "Add unit tests for the auth API"\n'})}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5",children:"\u5982\u4f55\u4fee\u590d\u5931\u8d25\u7684\u6d4b\u8bd5\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:'/workflow:test-fix-gen "Tests failing for user registration"\r\n/workflow:test-cycle-execute\n'})}),"\n",(0,i.jsx)(l.p,{children:"\u5de5\u4f5c\u6d41\u5c06\uff1a"}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsx)(l.li,{children:"\u5206\u6790\u6d4b\u8bd5\u5931\u8d25"}),"\n",(0,i.jsx)(l.li,{children:"\u8bc6\u522b\u6839\u672c\u539f\u56e0"}),"\n",(0,i.jsx)(l.li,{children:"\u8fed\u4ee3\u4fee\u590d\u95ee\u9898"}),"\n",(0,i.jsx)(l.li,{children:"\u9a8c\u8bc1 >= 95% \u901a\u8fc7\u7387"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"\u6545\u969c\u6392\u9664",children:"\u6545\u969c\u6392\u9664"}),"\n",(0,i.jsx)(l.h3,{id:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\u8be5\u600e\u4e48\u529e",children:"\u6211\u7684\u5de5\u4f5c\u6d41\u5931\u8d25\u4e86\uff0c\u8be5\u600e\u4e48\u529e\uff1f"}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u68c0\u67e5\u9519\u8bef\u6d88\u606f"})," - \u8bc6\u522b\u6839\u672c\u539f\u56e0"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u67e5\u770b state.json"})," - \u68c0\u67e5 ",(0,i.jsx)(l.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u6062\u590d\u4f1a\u8bdd"})," - \u4f7f\u7528 ",(0,i.jsx)(l.code,{children:"/workflow:session:resume"})," \u7ee7\u7eed"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u8c03\u6574\u5e76\u91cd\u8bd5"})," - \u6839\u636e\u9519\u8bef\u4fee\u6539\u65b9\u6cd5"]}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1",children:"\u5982\u4f55\u8df3\u8fc7\u5931\u8d25\u7684\u4efb\u52a1\uff1f"}),"\n",(0,i.jsx)(l.p,{children:'\u7f16\u8f91\u4efb\u52a1 JSON \u5c06\u72b6\u6001\u8bbe\u7f6e\u4e3a "completed"\uff1a'}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),"\n",(0,i.jsx)(l.h3,{id:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd",children:"\u5982\u4f55\u6e05\u7406\u65e7\u4f1a\u8bdd\uff1f"}),"\n",(0,i.jsx)(l.pre,{children:(0,i.jsx)(l.code,{className:"language-bash",children:"# \u5217\u51fa\u4f1a\u8bdd\r\n/workflow:session:list\r\n\r\n# \u5220\u9664\u7279\u5b9a\u4f1a\u8bdd\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# \u6e05\u7406\u6240\u6709\u5df2\u5b8c\u6210\u7684\u4f1a\u8bdd\r\n/workflow:clean\n"})}),"\n",(0,i.jsx)(l.h2,{id:"\u6700\u4f73\u5b9e\u8df5",children:"\u6700\u4f73\u5b9e\u8df5"}),"\n",(0,i.jsx)(l.h3,{id:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b",children:"\u5de5\u4f5c\u6d41\u6700\u4f73\u5b9e\u8df5\u6709\u54ea\u4e9b\uff1f"}),"\n",(0,i.jsxs)(l.ol,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u4ece\u7b80\u5355\u5f00\u59cb"})," - \u4f7f\u7528\u6ee1\u8db3\u9700\u6c42\u7684\u6700\u4f4e\u7ea7\u522b"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u6267\u884c\u524d\u89c4\u5212"})," - \u5c3d\u53ef\u80fd\u4f7f\u7528\u9a8c\u8bc1\u6b65\u9aa4"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u6301\u7eed\u6d4b\u8bd5"})," - \u5c06\u6d4b\u8bd5\u96c6\u6210\u5230\u5de5\u4f5c\u6d41\u4e2d"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u4ee3\u7801\u5ba1\u67e5"})," - \u4f7f\u7528\u5185\u7f6e\u5ba1\u67e5\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.strong,{children:"\u8bb0\u5f55\u51b3\u7b56"})," - \u5bf9\u590d\u6742\u51b3\u7b56\u4f7f\u7528\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41"]}),"\n"]}),"\n",(0,i.jsx)(l.h3,{id:"\u4f55\u65f6\u4f7f\u7528-worktree-\u9694\u79bb",children:"\u4f55\u65f6\u4f7f\u7528 worktree \u9694\u79bb\uff1f"}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"Worktree \u9694\u79bb"}),"\u4e3b\u8981\u7528\u4e8e ",(0,i.jsx)(l.strong,{children:"Issue Workflow"}),"\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u4e3b\u5f00\u53d1\u5b8c\u6210\u540e"}),"\n",(0,i.jsxs)(l.li,{children:["\u5df2\u5408\u5e76\u5230 ",(0,i.jsx)(l.code,{children:"main"})," \u5206\u652f"]}),"\n",(0,i.jsx)(l.li,{children:"\u53d1\u73b0\u9700\u8981\u4fee\u590d\u7684\u95ee\u9898"}),"\n",(0,i.jsx)(l.li,{children:"\u9700\u8981\u5728\u4e0d\u5f71\u54cd\u5f53\u524d\u5f00\u53d1\u7684\u60c5\u51b5\u4e0b\u4fee\u590d"}),"\n"]}),"\n",(0,i.jsxs)(l.p,{children:[(0,i.jsx)(l.strong,{children:"Main Workflow"})," \u4e0d\u9700\u8981 worktree\uff0c\u56e0\u4e3a\uff1a"]}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsx)(l.li,{children:"\u4f9d\u8d56\u5206\u6790\u89e3\u51b3\u4e86\u5e76\u884c\u95ee\u9898"}),"\n",(0,i.jsx)(l.li,{children:"\u4ee3\u7406\u5e76\u884c\u6267\u884c\u72ec\u7acb\u4efb\u52a1"}),"\n",(0,i.jsx)(l.li,{children:"\u4e0d\u9700\u8981\u6587\u4ef6\u7cfb\u7edf\u9694\u79bb"}),"\n"]}),"\n",(0,i.jsx)(l.h2,{id:"\u76f8\u5173\u6587\u6863",children:"\u76f8\u5173\u6587\u6863"}),"\n",(0,i.jsxs)(l.ul,{children:["\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/introduction",children:"\u7b80\u4ecb"})," - \u5de5\u4f5c\u6d41\u6982\u8ff0"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-1-ultra-lightweight",children:"Level 1"})," - \u8d85\u8f7b\u91cf\u7ea7\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-2-rapid",children:"Level 2"})," - \u5feb\u901f\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-3-standard",children:"Level 3"})," - \u6807\u51c6\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"Level 4"})," - \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"Level 5"})," - \u667a\u80fd\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(l.li,{children:[(0,i.jsx)(l.a,{href:"/commands/general/ccw",children:"\u547d\u4ee4"})," - \u547d\u4ee4\u53c2\u8003"]}),"\n"]})]})}function o(e={}){const{wrapper:l}={...(0,d.R)(),...e.components};return l?(0,i.jsx)(l,{...e,children:(0,i.jsx)(j,{...e})}):j(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/562bb8cb.5f71cec9.js b/ccw/docs-site/build/zh/assets/js/562bb8cb.2d7d52c7.js similarity index 98% rename from ccw/docs-site/build/zh/assets/js/562bb8cb.5f71cec9.js rename to ccw/docs-site/build/zh/assets/js/562bb8cb.2d7d52c7.js index 83726ae6..823a4c54 100644 --- a/ccw/docs-site/build/zh/assets/js/562bb8cb.5f71cec9.js +++ b/ccw/docs-site/build/zh/assets/js/562bb8cb.2d7d52c7.js @@ -1 +1 @@ -"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[207],{1184(e,n,t){t.d(n,{R:()=>l,x:()=>c});var i=t(3696);const s={},r=i.createContext(s);function l(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:n},e.children)}},5877(e,n,t){t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>x});const i=JSON.parse('{"id":"workflows/level-5-intelligent","title":"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41","description":"\u667a\u80fd\u7f16\u6392\u5de5\u4f5c\u6d41 - \u81ea\u52a8\u5206\u6790\u548c\u63a8\u8350","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-5-intelligent.mdx","sourceDirName":"workflows","slug":"/workflows/level-5-intelligent","permalink":"/docs/zh/workflows/level-5-intelligent","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/level-5-intelligent.mdx","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41","description":"\u667a\u80fd\u7f16\u6392\u5de5\u4f5c\u6d41 - \u81ea\u52a8\u5206\u6790\u548c\u63a8\u8350","sidebar_position":6},"sidebar":"docs","previous":{"title":"Level 4: Brainstorm","permalink":"/docs/zh/workflows/level-4-brainstorm"},"next":{"title":"FAQ","permalink":"/docs/zh/faq"}}');var s=t(2540),r=t(1184),l=t(1540);const c={title:"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41",description:"\u667a\u80fd\u7f16\u6392\u5de5\u4f5c\u6d41 - \u81ea\u52a8\u5206\u6790\u548c\u63a8\u8350",sidebar_position:6},d="\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41",o={},x=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:2},{value:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41: ccw-coordinator",id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-ccw-coordinator",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4",level:3},{value:"\u6838\u5fc3\u6982\u5ff5: \u6700\u5c0f\u6267\u884c\u5355\u5143",id:"\u6838\u5fc3\u6982\u5ff5-\u6700\u5c0f\u6267\u884c\u5355\u5143",level:3},{value:"\u6700\u5c0f\u6267\u884c\u5355\u5143",id:"\u6700\u5c0f\u6267\u884c\u5355\u5143",level:3},{value:"\u89c4\u5212 + \u6267\u884c\u5355\u5143",id:"\u89c4\u5212--\u6267\u884c\u5355\u5143",level:4},{value:"\u6d4b\u8bd5\u5355\u5143",id:"\u6d4b\u8bd5\u5355\u5143",level:4},{value:"\u5ba1\u67e5\u5355\u5143",id:"\u5ba1\u67e5\u5355\u5143",level:4},{value:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41",id:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41",level:3},{value:"\u9636\u6bb5 1: \u5206\u6790\u9700\u6c42",id:"\u9636\u6bb5-1-\u5206\u6790\u9700\u6c42",level:4},{value:"\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe",id:"\u9636\u6bb5-2-\u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe",level:4},{value:"\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe",id:"\u9636\u6bb5-3-\u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe",level:4},{value:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784",id:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784",level:3},{value:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe",id:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe",level:3},{value:"\u4f7f\u7528\u573a\u666f",id:"\u4f7f\u7528\u573a\u666f",level:3},{value:"\u4f55\u65f6\u4f7f\u7528",id:"\u4f55\u65f6\u4f7f\u7528",level:3},{value:"\u4f55\u65f6\u4e0d\u4f7f\u7528",id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",level:3},{value:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb",id:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb",level:3},{value:"\u76f8\u5173\u5de5\u4f5c\u6d41",id:"\u76f8\u5173\u5de5\u4f5c\u6d41",level:2},{value:"\u547d\u4ee4\u53c2\u8003",id:"\u547d\u4ee4\u53c2\u8003",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u5c42\u7ea7-5-\u667a\u80fd\u5de5\u4f5c\u6d41",children:"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"}),": \u6240\u6709\u5c42\u7ea7 | ",(0,s.jsx)(n.strong,{children:"\u4ea7\u7269"}),": \u5b8c\u6574\u72b6\u6001\u6301\u4e45\u5316 | ",(0,s.jsx)(n.strong,{children:"\u81ea\u52a8\u5316"}),": \u5b8c\u5168\u81ea\u52a8\u5316"]}),"\n",(0,s.jsx)(n.p,{children:"\u5c42\u7ea7 5 \u5de5\u4f5c\u6d41\u63d0\u4f9b\u6700\u667a\u80fd\u7684\u81ea\u52a8\u5316\u529f\u80fd - \u5e26\u6709\u987a\u5e8f\u6267\u884c\u548c\u72b6\u6001\u6301\u4e45\u5316\u7684\u81ea\u52a8\u547d\u4ee4\u94fe\u7f16\u6392\u3002\u5b83\u4eec\u80fd\u591f\u81ea\u52a8\u5206\u6790\u9700\u6c42\u3001\u63a8\u8350\u6700\u4f18\u547d\u4ee4\u94fe\uff0c\u5e76\u7aef\u5230\u7aef\u6267\u884c\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u6982\u8ff0",children:"\u6982\u8ff0"}),"\n",(0,s.jsx)(l.A,{chart:"\n flowchart TD\n Start([\u7528\u6237\u8f93\u5165]) --\x3e Analyze[\u9636\u6bb5 1: \u5206\u6790
\u9700\u6c42]\n Analyze --\x3e Recommend[\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4
& \u63a8\u8350\u547d\u4ee4\u94fe]\n Recommend --\x3e Confirm[\u7528\u6237\u786e\u8ba4
\u53ef\u9009]\n Confirm --\x3e Execute[\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c
\u547d\u4ee4\u94fe]\n\n Execute --\x3e State[\u72b6\u6001\u6301\u4e45\u5316
state.json]\n State --\x3e Check{\u5b8c\u6210?}\n Check --\x3e|\u5426| Execute\n Check --\x3e|\u662f| Complete([\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef phase fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef state fill:#ffecb3,stroke:#ffa000\n\n class Start,Complete startend,Confirm,Check decision,Analyze,Recommend,Execute phase,State state\n"}),"\n",(0,s.jsx)(n.h2,{id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-ccw-coordinator",children:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41: ccw-coordinator"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u81ea\u52a8\u5206\u6790\u5e76\u63a8\u8350\u547d\u4ee4\u94fe\uff0c\u652f\u6301\u987a\u5e8f\u6267\u884c"})}),"\n",(0,s.jsx)(n.h3,{id:"\u547d\u4ee4",children:"\u547d\u4ee4"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'/ccw-coordinator "\u4f7f\u7528 OAuth2 \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"\n# \u6216\u8005\u7b80\u5355\u8f93\u5165\n/ccw "\u6dfb\u52a0\u7528\u6237\u8ba4\u8bc1"\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u6838\u5fc3\u6982\u5ff5-\u6700\u5c0f\u6267\u884c\u5355\u5143",children:"\u6838\u5fc3\u6982\u5ff5: \u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u5b9a\u4e49"}),": \u4e00\u7ec4\u5fc5\u987b\u4f5c\u4e3a\u539f\u5b50\u7ec4\u4e00\u8d77\u6267\u884c\u7684\u547d\u4ee4\uff0c\u4ee5\u5b9e\u73b0\u6709\u610f\u4e49\u7684\u5de5\u4f5c\u6d41\u91cc\u7a0b\u7891\u3002"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u4e3a\u4ec0\u4e48\u91cd\u8981"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u9632\u6b62\u4e0d\u5b8c\u6574\u72b6\u6001"}),": \u907f\u514d\u5728\u751f\u6210\u4efb\u52a1\u540e\u505c\u6b62\u800c\u4e0d\u6267\u884c"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u7528\u6237\u4f53\u9a8c"}),": \u7528\u6237\u83b7\u5f97\u5b8c\u6574\u7ed3\u679c\uff0c\u800c\u975e\u9700\u8981\u624b\u52a8\u8ddf\u8fdb\u7684\u4e2d\u95f4\u4ea7\u7269"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u5de5\u4f5c\u6d41\u5b8c\u6574\u6027"}),": \u4fdd\u6301\u591a\u6b65\u9aa4\u64cd\u4f5c\u7684\u903b\u8f91\u8fde\u8d2f\u6027"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u6700\u5c0f\u6267\u884c\u5355\u5143",children:"\u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\n",(0,s.jsx)(n.h4,{id:"\u89c4\u5212--\u6267\u884c\u5355\u5143",children:"\u89c4\u5212 + \u6267\u884c\u5355\u5143"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5355\u5143\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u547d\u4ee4"}),(0,s.jsx)(n.th,{children:"\u76ee\u7684"}),(0,s.jsx)(n.th,{children:"\u8f93\u51fa"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u5feb\u901f\u5b9e\u73b0"})}),(0,s.jsx)(n.td,{children:"lite-plan -> lite-execute"}),(0,s.jsx)(n.td,{children:"\u8f7b\u91cf\u7ea7\u89c4\u5212\u548c\u7acb\u5373\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u591a CLI \u89c4\u5212"})}),(0,s.jsx)(n.td,{children:"multi-cli-plan -> lite-execute"}),(0,s.jsx)(n.td,{children:"\u591a\u89c6\u89d2\u5206\u6790\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Bug \u4fee\u590d"})}),(0,s.jsx)(n.td,{children:"lite-fix -> lite-execute"}),(0,s.jsx)(n.td,{children:"\u5feb\u901f bug \u8bca\u65ad\u548c\u4fee\u590d\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u4fee\u590d\u540e\u7684\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u5b8c\u6574\u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"plan -> execute"}),(0,s.jsx)(n.td,{children:"\u8be6\u7ec6\u89c4\u5212\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u9a8c\u8bc1\u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"plan -> plan-verify -> execute"}),(0,s.jsx)(n.td,{children:"\u5e26\u9a8c\u8bc1\u7684\u89c4\u5212\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u91cd\u65b0\u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"replan -> execute"}),(0,s.jsx)(n.td,{children:"\u66f4\u65b0\u8ba1\u5212\u5e76\u6267\u884c\u53d8\u66f4"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"TDD \u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"tdd-plan -> execute"}),(0,s.jsx)(n.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\u89c4\u5212\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u6d4b\u8bd5\u751f\u6210 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"test-gen -> execute"}),(0,s.jsx)(n.td,{children:"\u751f\u6210\u6d4b\u8bd5\u5957\u4ef6\u5e76\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u751f\u6210\u7684\u6d4b\u8bd5"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"\u6d4b\u8bd5\u5355\u5143",children:"\u6d4b\u8bd5\u5355\u5143"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5355\u5143\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u547d\u4ee4"}),(0,s.jsx)(n.th,{children:"\u76ee\u7684"}),(0,s.jsx)(n.th,{children:"\u8f93\u51fa"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u6d4b\u8bd5\u9a8c\u8bc1"})}),(0,s.jsx)(n.td,{children:"test-fix-gen -> test-cycle-execute"}),(0,s.jsx)(n.td,{children:"\u751f\u6210\u6d4b\u8bd5\u4efb\u52a1\u5e76\u6267\u884c\u6d4b\u8bd5-\u4fee\u590d\u5faa\u73af"}),(0,s.jsx)(n.td,{children:"\u6d4b\u8bd5\u901a\u8fc7"})]})})]}),"\n",(0,s.jsx)(n.h4,{id:"\u5ba1\u67e5\u5355\u5143",children:"\u5ba1\u67e5\u5355\u5143"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5355\u5143\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u547d\u4ee4"}),(0,s.jsx)(n.th,{children:"\u76ee\u7684"}),(0,s.jsx)(n.th,{children:"\u8f93\u51fa"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u4ee3\u7801\u5ba1\u67e5 (\u4f1a\u8bdd)"})}),(0,s.jsx)(n.td,{children:"review-session-cycle -> review-fix"}),(0,s.jsx)(n.td,{children:"\u5b8c\u6574\u5ba1\u67e5\u5faa\u73af\u5e76\u5e94\u7528\u4fee\u590d"}),(0,s.jsx)(n.td,{children:"\u4fee\u590d\u540e\u7684\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u4ee3\u7801\u5ba1\u67e5 (\u6a21\u5757)"})}),(0,s.jsx)(n.td,{children:"review-module-cycle -> review-fix"}),(0,s.jsx)(n.td,{children:"\u6a21\u5757\u5ba1\u67e5\u5faa\u73af\u5e76\u5e94\u7528\u4fee\u590d"}),(0,s.jsx)(n.td,{children:"\u4fee\u590d\u540e\u7684\u4ee3\u7801"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41",children:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41"}),"\n",(0,s.jsx)(l.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B[\u9636\u6bb5 1: \u5206\u6790\u9700\u6c42]\n\n B --\x3e C[\u89e3\u6790\u4efb\u52a1\u63cf\u8ff0]\n C --\x3e D[\u63d0\u53d6: \u76ee\u6807\u3001\u8303\u56f4\u3001\u7ea6\u675f\u3001
\u590d\u6742\u5ea6\u3001\u4efb\u52a1\u7c7b\u578b]\n\n D --\x3e E[\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4
& \u63a8\u8350\u547d\u4ee4\u94fe]\n\n E --\x3e F[\u52a8\u6001\u547d\u4ee4\u94fe
\u7ec4\u88c5]\n F --\x3e G[\u57fa\u4e8e\u7aef\u53e3\u5339\u914d]\n\n G --\x3e H{\u7528\u6237\u786e\u8ba4}\n H --\x3e|\u786e\u8ba4| I[\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c
\u547d\u4ee4\u94fe]\n H --\x3e|\u8c03\u6574| J[\u4fee\u6539\u547d\u4ee4\u94fe]\n H --\x3e|\u53d6\u6d88| K([\u4e2d\u6b62])\n J --\x3e H\n\n I --\x3e L[\u521d\u59cb\u5316\u72b6\u6001]\n L --\x3e M[\u904d\u5386\u6bcf\u4e2a\u547d\u4ee4]\n M --\x3e N[\u7ec4\u88c5\u63d0\u793a\u8bcd]\n N --\x3e O[\u5728\u540e\u53f0\u542f\u52a8 CLI]\n O --\x3e P[\u4fdd\u5b58\u68c0\u67e5\u70b9]\n P --\x3e Q{\u5b8c\u6210?}\n Q --\x3e|\u5426| M\n Q --\x3e|\u662f| R([\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef phase fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef execute fill:#c5e1a5,stroke:#388e3c\n\n class A,K,R startend,H,Q decision,B,E,I phase,C,D,F,G,J,L,M,N,O,P execute\n"}),"\n",(0,s.jsx)(n.h4,{id:"\u9636\u6bb5-1-\u5206\u6790\u9700\u6c42",children:"\u9636\u6bb5 1: \u5206\u6790\u9700\u6c42"}),"\n",(0,s.jsx)(n.p,{children:"\u89e3\u6790\u4efb\u52a1\u63cf\u8ff0\u4ee5\u63d0\u53d6: \u76ee\u6807\u3001\u8303\u56f4\u3001\u7ea6\u675f\u3001\u590d\u6742\u5ea6\u548c\u4efb\u52a1\u7c7b\u578b\u3002"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"function analyzeRequirements(taskDescription) {\n return {\n goal: extractMainGoal(taskDescription), // \u4f8b\u5982: \"\u5b9e\u73b0\u7528\u6237\u6ce8\u518c\"\n scope: extractScope(taskDescription), // \u4f8b\u5982: [\"auth\", \"user_management\"]\n constraints: extractConstraints(taskDescription), // \u4f8b\u5982: [\"\u65e0\u7834\u574f\u6027\u53d8\u66f4\"]\n complexity: determineComplexity(taskDescription), // 'simple' | 'medium' | 'complex'\n task_type: detectTaskType(taskDescription) // \u89c1\u4e0b\u65b9\u7684\u4efb\u52a1\u7c7b\u578b\u6a21\u5f0f\n };\n}\n\n// \u4efb\u52a1\u7c7b\u578b\u68c0\u6d4b\u6a21\u5f0f\nfunction detectTaskType(text) {\n // \u4f18\u5148\u987a\u5e8f (\u7b2c\u4e00\u4e2a\u5339\u914d\u80dc\u51fa)\n if (/fix|bug|error|crash|fail|debug|diagnose/.test(text)) return 'bugfix';\n if (/tdd|test-driven|test first/.test(text)) return 'tdd';\n if (/test fail|fix test|failing test/.test(text)) return 'test-fix';\n if (/generate test|add test/.test(text)) return 'test-gen';\n if (/review/.test(text)) return 'review';\n if (/explore|brainstorm/.test(text)) return 'brainstorm';\n if (/multi-perspective|comparison/.test(text)) return 'multi-cli';\n return 'feature'; // \u9ed8\u8ba4\n}\n\n// \u590d\u6742\u5ea6\u8bc4\u4f30\nfunction determineComplexity(text) {\n let score = 0;\n if (/refactor|migrate|architect|system/.test(text)) score += 2;\n if (/multiple|across|all|entire/.test(text)) score += 2;\n if (/integrate|api|database/.test(text)) score += 1;\n if (/security|performance|scale/.test(text)) score += 1;\n return score >= 4 ? 'complex' : score >= 2 ? 'medium' : 'simple';\n}\n"})}),"\n",(0,s.jsx)(n.h4,{id:"\u9636\u6bb5-2-\u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe",children:"\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe"}),"\n",(0,s.jsx)(n.p,{children:"\u4f7f\u7528\u57fa\u4e8e\u7aef\u53e3\u5339\u914d\u7684\u52a8\u6001\u547d\u4ee4\u94fe\u7ec4\u88c5\u3002"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u5411\u7528\u6237\u663e\u793a"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"\u63a8\u8350\u547d\u4ee4\u94fe:\n\n\u7ba1\u9053 (\u53ef\u89c6\u5316):\n\u9700\u6c42 -> lite-plan -> \u8ba1\u5212 -> lite-execute -> \u4ee3\u7801 -> test-cycle-execute -> \u6d4b\u8bd5\u901a\u8fc7\n\n\u547d\u4ee4:\n1. /workflow:lite-plan\n2. /workflow:lite-execute\n3. /workflow:test-cycle-execute\n\n\u7ee7\u7eed? [\u786e\u8ba4 / \u663e\u793a\u8be6\u60c5 / \u8c03\u6574 / \u53d6\u6d88]\n"})}),"\n",(0,s.jsx)(n.h4,{id:"\u9636\u6bb5-3-\u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe",children:"\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"async function executeCommandChain(chain, analysis) {\n const sessionId = `ccw-coord-${Date.now()}`;\n const stateDir = `.workflow/.ccw-coordinator/${sessionId}`;\n\n // \u521d\u59cb\u5316\u72b6\u6001\n const state = {\n session_id: sessionId,\n status: 'running',\n created_at: new Date().toISOString(),\n analysis: analysis,\n command_chain: chain.map((cmd, idx) => ({ ...cmd, index: idx, status: 'pending' })),\n execution_results: [],\n prompts_used: []\n };\n\n // \u4fdd\u5b58\u521d\u59cb\u72b6\u6001\n Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));\n\n for (let i = 0; i < chain.length; i++) {\n const cmd = chain[i];\n\n // \u7ec4\u88c5\u63d0\u793a\u8bcd\n let prompt = formatCommand(cmd, state.execution_results, analysis);\n prompt += `\\n\\nTask: ${analysis.goal}`;\n if (state.execution_results.length > 0) {\n prompt += '\\nPrevious results:\\n';\n state.execution_results.forEach(r => {\n if (r.session_id) {\n prompt += `- ${r.command}: ${r.session_id}\\n`;\n }\n });\n }\n\n // \u5728\u540e\u53f0\u542f\u52a8 CLI\n const taskId = Bash(\n `ccw cli -p \"${escapePrompt(prompt)}\" --tool claude --mode write`,\n { run_in_background: true }\n ).task_id;\n\n // \u4fdd\u5b58\u68c0\u67e5\u70b9\n state.execution_results.push({\n index: i,\n command: cmd.command,\n status: 'in-progress',\n task_id: taskId,\n session_id: null,\n artifacts: [],\n timestamp: new Date().toISOString()\n });\n\n // \u5728\u6b64\u505c\u6b62 - \u7b49\u5f85 hook \u56de\u8c03\n Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));\n break;\n }\n\n state.status = 'waiting';\n Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));\n return state;\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784",children:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u4f4d\u7f6e"}),": ",(0,s.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session_id}/state.json"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "session_id": "ccw-coord-20250203-143025",\n "status": "running|waiting|completed|failed",\n "created_at": "2025-02-03T14:30:25Z",\n "updated_at": "2025-02-03T14:35:45Z",\n "analysis": {\n "goal": "\u5b9e\u73b0\u7528\u6237\u6ce8\u518c",\n "scope": ["authentication", "user_management"],\n "constraints": ["\u65e0\u7834\u574f\u6027\u53d8\u66f4"],\n "complexity": "medium",\n "task_type": "feature"\n },\n "command_chain": [\n {\n "index": 0,\n "command": "/workflow:plan",\n "name": "plan",\n "status": "completed"\n },\n {\n "index": 1,\n "command": "/workflow:execute",\n "name": "execute",\n "status": "running"\n }\n ],\n "execution_results": [\n {\n "index": 0,\n "command": "/workflow:plan",\n "status": "completed",\n "task_id": "task-001",\n "session_id": "WFS-plan-20250203",\n "artifacts": ["IMPL_PLAN.md"],\n "timestamp": "2025-02-03T14:30:25Z",\n "completed_at": "2025-02-03T14:30:45Z"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe",children:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe"}),"\n",(0,s.jsx)(l.A,{chart:'\n flowchart TD\n Start([\u5f00\u59cb\u65b0\u4efb\u52a1]) --\x3e Q0{\u662f bug \u4fee\u590d\u5417?}\n\n Q0 --\x3e|\u662f| BugFix["Bug \u4fee\u590d\u6d41\u7a0b"]\n Q0 --\x3e|\u5426| Q1{\u77e5\u9053\u8981\u505a\u4ec0\u4e48\u5417?}\n\n BugFix --\x3e BugSeverity{\u7406\u89e3\u6839\u672c\u539f\u56e0\u5417?}\n BugSeverity --\x3e|\u6e05\u695a| LiteFix["/workflow:lite-fix
\u6807\u51c6\u4fee\u590d"]\n BugSeverity --\x3e|\u751f\u4ea7\u4e8b\u6545| HotFix["/workflow:lite-fix --hotfix
\u7d27\u6025\u70ed\u4fee\u590d"]\n BugSeverity --\x3e|\u4e0d\u6e05\u695a| BugDiag["/workflow:lite-fix
\u81ea\u52a8\u8bca\u65ad\u6839\u672c\u539f\u56e0"]\n\n BugDiag --\x3e LiteFix\n LiteFix --\x3e BugComplete["Bug \u5df2\u4fee\u590d"]\n HotFix --\x3e FollowUp["\u81ea\u52a8\u751f\u6210\u540e\u7eed\u4efb\u52a1
\u5b8c\u6574\u4fee\u590d + \u590d\u76d8"]\n FollowUp --\x3e BugComplete\n BugComplete --\x3e End(["\u4efb\u52a1\u5b8c\u6210"])\n\n Q1 --\x3e|\u5426| Ideation["\u63a2\u7d22\u9636\u6bb5
\u660e\u786e\u9700\u6c42"]\n Q1 --\x3e|\u662f| Q2{\u77e5\u9053\u5982\u4f55\u505a\u5417?}\n\n Ideation --\x3e BrainIdea["/workflow:brainstorm:auto-parallel
\u63a2\u7d22\u4ea7\u54c1\u65b9\u5411"]\n BrainIdea --\x3e Q2\n\n Q2 --\x3e|\u5426| Design["\u8bbe\u8ba1\u63a2\u7d22
\u63a2\u7d22\u67b6\u6784"]\n Q2 --\x3e|\u662f| Q3{\u9700\u8981\u89c4\u5212\u5417?}\n\n Design --\x3e BrainDesign["/workflow:brainstorm:auto-parallel
\u63a2\u7d22\u6280\u672f\u65b9\u6848"]\n BrainDesign --\x3e Q3\n\n Q3 --\x3e|\u5feb\u901f\u7b80\u5355| LitePlan["\u8f7b\u91cf\u7ea7\u89c4\u5212
/workflow:lite-plan"]\n Q3 --\x3e|\u590d\u6742\u5b8c\u6574| FullPlan["\u6807\u51c6\u89c4\u5212
/workflow:plan"]\n\n LitePlan --\x3e Q4{\u9700\u8981\u4ee3\u7801\u63a2\u7d22?}\n Q4 --\x3e|\u662f| LitePlanE["/workflow:lite-plan -e"]\n Q4 --\x3e|\u5426| LitePlanNormal["/workflow:lite-plan"]\n\n LitePlanE --\x3e LiteConfirm["\u4e09\u7ef4\u786e\u8ba4:
1. \u4efb\u52a1\u786e\u8ba4
2. \u6267\u884c\u65b9\u5f0f
3. \u4ee3\u7801\u5ba1\u67e5"]\n LitePlanNormal --\x3e LiteConfirm\n\n LiteConfirm --\x3e Q5{\u9009\u62e9\u6267\u884c\u65b9\u5f0f}\n Q5 --\x3e|Agent| LiteAgent["/workflow:lite-execute
\u4f7f\u7528 @code-developer"]\n Q5 --\x3e|CLI \u5de5\u5177| LiteCLI["CLI \u6267\u884c
Gemini/Qwen/Codex"]\n Q5 --\x3e|\u4ec5\u89c4\u5212| UserImpl["\u7528\u6237\u624b\u52a8\u5b9e\u73b0"]\n\n FullPlan --\x3e PlanVerify{\u9a8c\u8bc1\u8ba1\u5212\u8d28\u91cf?}\n PlanVerify --\x3e|\u662f| Verify["/workflow:plan-verify"]\n PlanVerify --\x3e|\u5426| Execute\n Verify --\x3e Q6{\u9a8c\u8bc1\u901a\u8fc7?}\n Q6 --\x3e|\u5426| FixPlan["\u4fee\u590d\u8ba1\u5212\u95ee\u9898"]\n Q6 --\x3e|\u662f| Execute\n FixPlan --\x3e Execute\n\n Execute["\u6267\u884c\u9636\u6bb5
/workflow:execute"]\n LiteAgent --\x3e TestDecision\n LiteCLI --\x3e TestDecision\n UserImpl --\x3e TestDecision\n Execute --\x3e TestDecision\n\n TestDecision{\u9700\u8981\u6d4b\u8bd5?}\n TestDecision --\x3e|TDD \u6a21\u5f0f| TDD["/workflow:tdd-plan
\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"]\n TestDecision --\x3e|\u540e\u7f6e\u6d4b\u8bd5| TestGen["/workflow:test-gen
\u751f\u6210\u6d4b\u8bd5"]\n TestDecision --\x3e|\u5df2\u6709\u6d4b\u8bd5| TestCycle["/workflow:test-cycle-execute
\u6d4b\u8bd5-\u4fee\u590d\u5faa\u73af"]\n TestDecision --\x3e|\u4e0d\u9700\u8981| Review\n\n TDD --\x3e TDDExecute["/workflow:execute
\u7ea2-\u7eff-\u91cd\u6784"]\n TDDExecute --\x3e TDDVerify["/workflow:tdd-verify
\u9a8c\u8bc1 TDD \u5408\u89c4\u6027"]\n TDDVerify --\x3e Review\n\n TestGen --\x3e TestExecute["/workflow:execute
\u6267\u884c\u6d4b\u8bd5\u4efb\u52a1"]\n TestExecute --\x3e TestResult{\u6d4b\u8bd5\u901a\u8fc7?}\n TestResult --\x3e|\u5426| TestCycle\n TestResult --\x3e|\u662f| Review\n\n TestCycle --\x3e TestPass{\u901a\u8fc7\u7387 >= 95%?}\n TestPass --\x3e|\u5426, \u7ee7\u7eed\u4fee\u590d| TestCycle\n TestPass --\x3e|\u662f| Review\n\n Review["\u5ba1\u67e5\u9636\u6bb5"]\n Review --\x3e Q7{\u9700\u8981\u4e13\u9879\u5ba1\u67e5?}\n Q7 --\x3e|\u5b89\u5168| SecurityReview["/workflow:review
--type security"]\n Q7 --\x3e|\u67b6\u6784| ArchReview["/workflow:review
--type architecture"]\n Q7 --\x3e|\u8d28\u91cf| QualityReview["/workflow:review
--type quality"]\n Q7 --\x3e|\u901a\u7528| GeneralReview["/workflow:review
\u901a\u7528\u5ba1\u67e5"]\n Q7 --\x3e|\u4e0d\u9700\u8981| Complete\n\n SecurityReview --\x3e Complete\n ArchReview --\x3e Complete\n QualityReview --\x3e Complete\n GeneralReview --\x3e Complete\n\n Complete["\u5b8c\u6210\u9636\u6bb5
/workflow:session:complete"]\n Complete --\x3e End\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef bugfix fill:#ffccbc,stroke:#bf360c\n classDef ideation fill:#fff9c4,stroke:#ffa000\n classDef planning fill:#e3f2fd,stroke:#1976d2\n classDef execute fill:#c5e1a5,stroke:#388e3c\n classDef review fill:#d1c4e9,stroke:#512da8\n\n class Start,End startend,BugFix,LiteFix,HotFix,BugDiag,BugComplete bugfix,Ideation,BrainIdea,BrainDesign ideation,LitePlan,LitePlanE,LitePlanNormal,LiteConfirm,FullPlan,PlanVerify,Verify,FixPlan planning,Execute,LiteAgent,LiteCLI,UserImpl,TDD,TDDExecute,TDDVerify,TestGen,TestExecute,TestCycle execute,Review,SecurityReview,ArchReview,QualityReview,GeneralReview,Complete review\n'}),"\n",(0,s.jsx)(n.h3,{id:"\u4f7f\u7528\u573a\u666f",children:"\u4f7f\u7528\u573a\u666f"}),"\n",(0,s.jsx)(n.h3,{id:"\u4f55\u65f6\u4f7f\u7528",children:"\u4f55\u65f6\u4f7f\u7528"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u590d\u6742\u7684\u591a\u6b65\u9aa4\u5de5\u4f5c\u6d41"}),"\n",(0,s.jsx)(n.li,{children:"\u4e0d\u786e\u5b9a\u4f7f\u7528\u54ea\u4e9b\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"\u9700\u8981\u7aef\u5230\u7aef\u81ea\u52a8\u5316"}),"\n",(0,s.jsx)(n.li,{children:"\u9700\u8981\u5b8c\u6574\u7684\u72b6\u6001\u8ddf\u8e2a\u548c\u53ef\u6062\u590d\u6027"}),"\n",(0,s.jsx)(n.li,{children:"\u56e2\u961f\u534f\u4f5c\u9700\u8981\u7edf\u4e00\u7684\u6267\u884c\u6d41\u7a0b"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",children:"\u4f55\u65f6\u4e0d\u4f7f\u7528"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u7b80\u5355\u7684\u5355\u547d\u4ee4\u4efb\u52a1 (\u76f4\u63a5\u4f7f\u7528\u5c42\u7ea7 1-4)"}),"\n",(0,s.jsx)(n.li,{children:"\u5df2\u7ecf\u77e5\u9053\u786e\u5207\u7684\u6240\u9700\u547d\u4ee4 (\u76f4\u63a5\u4f7f\u7528\u5c42\u7ea7 1-4)"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb",children:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5c42\u7ea7"}),(0,s.jsx)(n.th,{children:"\u624b\u52a8\u7a0b\u5ea6"}),(0,s.jsx)(n.th,{children:"CCW Coordinator \u89d2\u8272"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u5c42\u7ea7 1-4"}),(0,s.jsx)(n.td,{children:"\u624b\u52a8\u9009\u62e9\u547d\u4ee4"}),(0,s.jsx)(n.td,{children:"\u81ea\u52a8\u7ec4\u5408\u8fd9\u4e9b\u547d\u4ee4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u5c42\u7ea7 5"}),(0,s.jsx)(n.td,{children:"\u81ea\u52a8\u9009\u62e9\u547d\u4ee4"}),(0,s.jsx)(n.td,{children:"\u667a\u80fd\u7f16\u6392\u5668"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"CCW Coordinator \u5185\u90e8\u4f7f\u7528\u5c42\u7ea7 1-4"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u5206\u6790\u4efb\u52a1 -> \u81ea\u52a8\u9009\u62e9\u5408\u9002\u7684\u5c42\u7ea7"}),"\n",(0,s.jsx)(n.li,{children:"\u7ec4\u88c5\u547d\u4ee4\u94fe -> \u5305\u542b\u5c42\u7ea7 1-4 \u7684\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"\u987a\u5e8f\u6267\u884c -> \u9075\u5faa\u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u76f8\u5173\u5de5\u4f5c\u6d41",children:"\u76f8\u5173\u5de5\u4f5c\u6d41"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-1-ultra-lightweight",children:"\u5c42\u7ea7 1: \u8d85\u8f7b\u91cf\u7ea7"})," - \u5feb\u901f\u6267\u884c"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-2-rapid",children:"\u5c42\u7ea7 2: \u5feb\u901f"})," - \u8f7b\u91cf\u7ea7\u89c4\u5212"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u5c42\u7ea7 3: \u6807\u51c6"})," - \u5b8c\u6574\u89c4\u5212"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4"})," - \u591a\u89d2\u8272\u63a2\u7d22"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"\u5e38\u89c1\u95ee\u9898"})," - \u5e38\u89c1\u95ee\u9898"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u547d\u4ee4\u53c2\u8003",children:"\u547d\u4ee4\u53c2\u8003"}),"\n",(0,s.jsxs)(n.p,{children:["\u53c2\u89c1 ",(0,s.jsx)(n.a,{href:"../commands/general/ccw.mdx",children:"\u547d\u4ee4\u6587\u6863"})," \u4e86\u89e3:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"/ccw-coordinator"})," - \u667a\u80fd\u5de5\u4f5c\u6d41\u7f16\u6392\u5668"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"/ccw"})," - \u4e3b\u5de5\u4f5c\u6d41\u7f16\u6392\u5668"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}}}]); \ No newline at end of file +"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[207],{1184(e,n,t){t.d(n,{R:()=>l,x:()=>c});var i=t(3696);const s={},r=i.createContext(s);function l(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:n},e.children)}},5877(e,n,t){t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>x});const i=JSON.parse('{"id":"workflows/level-5-intelligent","title":"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41","description":"\u667a\u80fd\u7f16\u6392\u5de5\u4f5c\u6d41 - \u81ea\u52a8\u5206\u6790\u548c\u63a8\u8350","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-5-intelligent.mdx","sourceDirName":"workflows","slug":"/workflows/level-5-intelligent","permalink":"/docs/zh/workflows/level-5-intelligent","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/level-5-intelligent.mdx","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41","description":"\u667a\u80fd\u7f16\u6392\u5de5\u4f5c\u6d41 - \u81ea\u52a8\u5206\u6790\u548c\u63a8\u8350","sidebar_position":6},"sidebar":"docs","previous":{"title":"Level 4: Brainstorm","permalink":"/docs/zh/workflows/level-4-brainstorm"},"next":{"title":"FAQ","permalink":"/docs/zh/faq"}}');var s=t(2540),r=t(1184),l=t(1540);const c={title:"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41",description:"\u667a\u80fd\u7f16\u6392\u5de5\u4f5c\u6d41 - \u81ea\u52a8\u5206\u6790\u548c\u63a8\u8350",sidebar_position:6},d="\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41",o={},x=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:2},{value:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41: ccw-coordinator",id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-ccw-coordinator",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4",level:3},{value:"\u6838\u5fc3\u6982\u5ff5: \u6700\u5c0f\u6267\u884c\u5355\u5143",id:"\u6838\u5fc3\u6982\u5ff5-\u6700\u5c0f\u6267\u884c\u5355\u5143",level:3},{value:"\u6700\u5c0f\u6267\u884c\u5355\u5143",id:"\u6700\u5c0f\u6267\u884c\u5355\u5143",level:3},{value:"\u89c4\u5212 + \u6267\u884c\u5355\u5143",id:"\u89c4\u5212--\u6267\u884c\u5355\u5143",level:4},{value:"\u6d4b\u8bd5\u5355\u5143",id:"\u6d4b\u8bd5\u5355\u5143",level:4},{value:"\u5ba1\u67e5\u5355\u5143",id:"\u5ba1\u67e5\u5355\u5143",level:4},{value:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41",id:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41",level:3},{value:"\u9636\u6bb5 1: \u5206\u6790\u9700\u6c42",id:"\u9636\u6bb5-1-\u5206\u6790\u9700\u6c42",level:4},{value:"\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe",id:"\u9636\u6bb5-2-\u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe",level:4},{value:"\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe",id:"\u9636\u6bb5-3-\u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe",level:4},{value:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784",id:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784",level:3},{value:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe",id:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe",level:3},{value:"\u4f7f\u7528\u573a\u666f",id:"\u4f7f\u7528\u573a\u666f",level:3},{value:"\u4f55\u65f6\u4f7f\u7528",id:"\u4f55\u65f6\u4f7f\u7528",level:3},{value:"\u4f55\u65f6\u4e0d\u4f7f\u7528",id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",level:3},{value:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb",id:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb",level:3},{value:"\u76f8\u5173\u5de5\u4f5c\u6d41",id:"\u76f8\u5173\u5de5\u4f5c\u6d41",level:2},{value:"\u547d\u4ee4\u53c2\u8003",id:"\u547d\u4ee4\u53c2\u8003",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u5c42\u7ea7-5-\u667a\u80fd\u5de5\u4f5c\u6d41",children:"\u5c42\u7ea7 5: \u667a\u80fd\u5de5\u4f5c\u6d41"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"}),": \u6240\u6709\u5c42\u7ea7 | ",(0,s.jsx)(n.strong,{children:"\u4ea7\u7269"}),": \u5b8c\u6574\u72b6\u6001\u6301\u4e45\u5316 | ",(0,s.jsx)(n.strong,{children:"\u81ea\u52a8\u5316"}),": \u5b8c\u5168\u81ea\u52a8\u5316"]}),"\n",(0,s.jsx)(n.p,{children:"\u5c42\u7ea7 5 \u5de5\u4f5c\u6d41\u63d0\u4f9b\u6700\u667a\u80fd\u7684\u81ea\u52a8\u5316\u529f\u80fd - \u5e26\u6709\u987a\u5e8f\u6267\u884c\u548c\u72b6\u6001\u6301\u4e45\u5316\u7684\u81ea\u52a8\u547d\u4ee4\u94fe\u7f16\u6392\u3002\u5b83\u4eec\u80fd\u591f\u81ea\u52a8\u5206\u6790\u9700\u6c42\u3001\u63a8\u8350\u6700\u4f18\u547d\u4ee4\u94fe\uff0c\u5e76\u7aef\u5230\u7aef\u6267\u884c\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u6982\u8ff0",children:"\u6982\u8ff0"}),"\n",(0,s.jsx)(l.A,{chart:"\n flowchart TD\n Start([\u7528\u6237\u8f93\u5165]) --\x3e Analyze[\u9636\u6bb5 1: \u5206\u6790
\u9700\u6c42]\n Analyze --\x3e Recommend[\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4
& \u63a8\u8350\u547d\u4ee4\u94fe]\n Recommend --\x3e Confirm[\u7528\u6237\u786e\u8ba4
\u53ef\u9009]\n Confirm --\x3e Execute[\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c
\u547d\u4ee4\u94fe]\n\n Execute --\x3e State[\u72b6\u6001\u6301\u4e45\u5316
state.json]\n State --\x3e Check{\u5b8c\u6210?}\n Check --\x3e|\u5426| Execute\n Check --\x3e|\u662f| Complete([\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef phase fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef state fill:#ffecb3,stroke:#ffa000\n\n class Start,Complete startend,Confirm,Check decision,Analyze,Recommend,Execute phase,State state\n"}),"\n",(0,s.jsx)(n.h2,{id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-ccw-coordinator",children:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41: ccw-coordinator"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u81ea\u52a8\u5206\u6790\u5e76\u63a8\u8350\u547d\u4ee4\u94fe\uff0c\u652f\u6301\u987a\u5e8f\u6267\u884c"})}),"\n",(0,s.jsx)(n.h3,{id:"\u547d\u4ee4",children:"\u547d\u4ee4"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'/ccw-coordinator "\u4f7f\u7528 OAuth2 \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"\n# \u6216\u8005\u7b80\u5355\u8f93\u5165\n/ccw "\u6dfb\u52a0\u7528\u6237\u8ba4\u8bc1"\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u6838\u5fc3\u6982\u5ff5-\u6700\u5c0f\u6267\u884c\u5355\u5143",children:"\u6838\u5fc3\u6982\u5ff5: \u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u5b9a\u4e49"}),": \u4e00\u7ec4\u5fc5\u987b\u4f5c\u4e3a\u539f\u5b50\u7ec4\u4e00\u8d77\u6267\u884c\u7684\u547d\u4ee4\uff0c\u4ee5\u5b9e\u73b0\u6709\u610f\u4e49\u7684\u5de5\u4f5c\u6d41\u91cc\u7a0b\u7891\u3002"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u4e3a\u4ec0\u4e48\u91cd\u8981"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u9632\u6b62\u4e0d\u5b8c\u6574\u72b6\u6001"}),": \u907f\u514d\u5728\u751f\u6210\u4efb\u52a1\u540e\u505c\u6b62\u800c\u4e0d\u6267\u884c"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u7528\u6237\u4f53\u9a8c"}),": \u7528\u6237\u83b7\u5f97\u5b8c\u6574\u7ed3\u679c\uff0c\u800c\u975e\u9700\u8981\u624b\u52a8\u8ddf\u8fdb\u7684\u4e2d\u95f4\u4ea7\u7269"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u5de5\u4f5c\u6d41\u5b8c\u6574\u6027"}),": \u4fdd\u6301\u591a\u6b65\u9aa4\u64cd\u4f5c\u7684\u903b\u8f91\u8fde\u8d2f\u6027"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u6700\u5c0f\u6267\u884c\u5355\u5143",children:"\u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\n",(0,s.jsx)(n.h4,{id:"\u89c4\u5212--\u6267\u884c\u5355\u5143",children:"\u89c4\u5212 + \u6267\u884c\u5355\u5143"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5355\u5143\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u547d\u4ee4"}),(0,s.jsx)(n.th,{children:"\u76ee\u7684"}),(0,s.jsx)(n.th,{children:"\u8f93\u51fa"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u5feb\u901f\u5b9e\u73b0"})}),(0,s.jsx)(n.td,{children:"lite-plan -> lite-execute"}),(0,s.jsx)(n.td,{children:"\u8f7b\u91cf\u7ea7\u89c4\u5212\u548c\u7acb\u5373\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u591a CLI \u89c4\u5212"})}),(0,s.jsx)(n.td,{children:"multi-cli-plan -> lite-execute"}),(0,s.jsx)(n.td,{children:"\u591a\u89c6\u89d2\u5206\u6790\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Bug \u4fee\u590d"})}),(0,s.jsx)(n.td,{children:"lite-fix -> lite-execute"}),(0,s.jsx)(n.td,{children:"\u5feb\u901f bug \u8bca\u65ad\u548c\u4fee\u590d\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u4fee\u590d\u540e\u7684\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u5b8c\u6574\u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"plan -> execute"}),(0,s.jsx)(n.td,{children:"\u8be6\u7ec6\u89c4\u5212\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u9a8c\u8bc1\u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"plan -> plan-verify -> execute"}),(0,s.jsx)(n.td,{children:"\u5e26\u9a8c\u8bc1\u7684\u89c4\u5212\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u91cd\u65b0\u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"replan -> execute"}),(0,s.jsx)(n.td,{children:"\u66f4\u65b0\u8ba1\u5212\u5e76\u6267\u884c\u53d8\u66f4"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"TDD \u89c4\u5212 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"tdd-plan -> execute"}),(0,s.jsx)(n.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\u89c4\u5212\u548c\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u5de5\u4f5c\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u6d4b\u8bd5\u751f\u6210 + \u6267\u884c"})}),(0,s.jsx)(n.td,{children:"test-gen -> execute"}),(0,s.jsx)(n.td,{children:"\u751f\u6210\u6d4b\u8bd5\u5957\u4ef6\u5e76\u6267\u884c"}),(0,s.jsx)(n.td,{children:"\u751f\u6210\u7684\u6d4b\u8bd5"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"\u6d4b\u8bd5\u5355\u5143",children:"\u6d4b\u8bd5\u5355\u5143"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5355\u5143\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u547d\u4ee4"}),(0,s.jsx)(n.th,{children:"\u76ee\u7684"}),(0,s.jsx)(n.th,{children:"\u8f93\u51fa"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u6d4b\u8bd5\u9a8c\u8bc1"})}),(0,s.jsx)(n.td,{children:"test-fix-gen -> test-cycle-execute"}),(0,s.jsx)(n.td,{children:"\u751f\u6210\u6d4b\u8bd5\u4efb\u52a1\u5e76\u6267\u884c\u6d4b\u8bd5-\u4fee\u590d\u5faa\u73af"}),(0,s.jsx)(n.td,{children:"\u6d4b\u8bd5\u901a\u8fc7"})]})})]}),"\n",(0,s.jsx)(n.h4,{id:"\u5ba1\u67e5\u5355\u5143",children:"\u5ba1\u67e5\u5355\u5143"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5355\u5143\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u547d\u4ee4"}),(0,s.jsx)(n.th,{children:"\u76ee\u7684"}),(0,s.jsx)(n.th,{children:"\u8f93\u51fa"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u4ee3\u7801\u5ba1\u67e5 (\u4f1a\u8bdd)"})}),(0,s.jsx)(n.td,{children:"review-session-cycle -> review-fix"}),(0,s.jsx)(n.td,{children:"\u5b8c\u6574\u5ba1\u67e5\u5faa\u73af\u5e76\u5e94\u7528\u4fee\u590d"}),(0,s.jsx)(n.td,{children:"\u4fee\u590d\u540e\u7684\u4ee3\u7801"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"\u4ee3\u7801\u5ba1\u67e5 (\u6a21\u5757)"})}),(0,s.jsx)(n.td,{children:"review-module-cycle -> review-fix"}),(0,s.jsx)(n.td,{children:"\u6a21\u5757\u5ba1\u67e5\u5faa\u73af\u5e76\u5e94\u7528\u4fee\u590d"}),(0,s.jsx)(n.td,{children:"\u4fee\u590d\u540e\u7684\u4ee3\u7801"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41",children:"\u4e09\u9636\u6bb5\u5de5\u4f5c\u6d41"}),"\n",(0,s.jsx)(l.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B[\u9636\u6bb5 1: \u5206\u6790\u9700\u6c42]\n\n B --\x3e C[\u89e3\u6790\u4efb\u52a1\u63cf\u8ff0]\n C --\x3e D[\u63d0\u53d6: \u76ee\u6807\u3001\u8303\u56f4\u3001\u7ea6\u675f\u3001
\u590d\u6742\u5ea6\u3001\u4efb\u52a1\u7c7b\u578b]\n\n D --\x3e E[\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4
& \u63a8\u8350\u547d\u4ee4\u94fe]\n\n E --\x3e F[\u52a8\u6001\u547d\u4ee4\u94fe
\u7ec4\u88c5]\n F --\x3e G[\u57fa\u4e8e\u7aef\u53e3\u5339\u914d]\n\n G --\x3e H{\u7528\u6237\u786e\u8ba4}\n H --\x3e|\u786e\u8ba4| I[\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c
\u547d\u4ee4\u94fe]\n H --\x3e|\u8c03\u6574| J[\u4fee\u6539\u547d\u4ee4\u94fe]\n H --\x3e|\u53d6\u6d88| K([\u4e2d\u6b62])\n J --\x3e H\n\n I --\x3e L[\u521d\u59cb\u5316\u72b6\u6001]\n L --\x3e M[\u904d\u5386\u6bcf\u4e2a\u547d\u4ee4]\n M --\x3e N[\u7ec4\u88c5\u63d0\u793a\u8bcd]\n N --\x3e O[\u5728\u540e\u53f0\u542f\u52a8 CLI]\n O --\x3e P[\u4fdd\u5b58\u68c0\u67e5\u70b9]\n P --\x3e Q{\u5b8c\u6210?}\n Q --\x3e|\u5426| M\n Q --\x3e|\u662f| R([\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef phase fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef execute fill:#c5e1a5,stroke:#388e3c\n\n class A,K,R startend,H,Q decision,B,E,I phase,C,D,F,G,J,L,M,N,O,P execute\n"}),"\n",(0,s.jsx)(n.h4,{id:"\u9636\u6bb5-1-\u5206\u6790\u9700\u6c42",children:"\u9636\u6bb5 1: \u5206\u6790\u9700\u6c42"}),"\n",(0,s.jsx)(n.p,{children:"\u89e3\u6790\u4efb\u52a1\u63cf\u8ff0\u4ee5\u63d0\u53d6: \u76ee\u6807\u3001\u8303\u56f4\u3001\u7ea6\u675f\u3001\u590d\u6742\u5ea6\u548c\u4efb\u52a1\u7c7b\u578b\u3002"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"function analyzeRequirements(taskDescription) {\n return {\n goal: extractMainGoal(taskDescription), // \u4f8b\u5982: \"\u5b9e\u73b0\u7528\u6237\u6ce8\u518c\"\n scope: extractScope(taskDescription), // \u4f8b\u5982: [\"auth\", \"user_management\"]\n constraints: extractConstraints(taskDescription), // \u4f8b\u5982: [\"\u65e0\u7834\u574f\u6027\u53d8\u66f4\"]\n complexity: determineComplexity(taskDescription), // 'simple' | 'medium' | 'complex'\n task_type: detectTaskType(taskDescription) // \u89c1\u4e0b\u65b9\u7684\u4efb\u52a1\u7c7b\u578b\u6a21\u5f0f\n };\n}\n\n// \u4efb\u52a1\u7c7b\u578b\u68c0\u6d4b\u6a21\u5f0f\nfunction detectTaskType(text) {\n // \u4f18\u5148\u987a\u5e8f (\u7b2c\u4e00\u4e2a\u5339\u914d\u80dc\u51fa)\n if (/fix|bug|error|crash|fail|debug|diagnose/.test(text)) return 'bugfix';\n if (/tdd|test-driven|test first/.test(text)) return 'tdd';\n if (/test fail|fix test|failing test/.test(text)) return 'test-fix';\n if (/generate test|add test/.test(text)) return 'test-gen';\n if (/review/.test(text)) return 'review';\n if (/explore|brainstorm/.test(text)) return 'brainstorm';\n if (/multi-perspective|comparison/.test(text)) return 'multi-cli';\n return 'feature'; // \u9ed8\u8ba4\n}\n\n// \u590d\u6742\u5ea6\u8bc4\u4f30\nfunction determineComplexity(text) {\n let score = 0;\n if (/refactor|migrate|architect|system/.test(text)) score += 2;\n if (/multiple|across|all|entire/.test(text)) score += 2;\n if (/integrate|api|database/.test(text)) score += 1;\n if (/security|performance|scale/.test(text)) score += 1;\n return score >= 4 ? 'complex' : score >= 2 ? 'medium' : 'simple';\n}\n"})}),"\n",(0,s.jsx)(n.h4,{id:"\u9636\u6bb5-2-\u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe",children:"\u9636\u6bb5 2: \u53d1\u73b0\u547d\u4ee4\u5e76\u63a8\u8350\u547d\u4ee4\u94fe"}),"\n",(0,s.jsx)(n.p,{children:"\u4f7f\u7528\u57fa\u4e8e\u7aef\u53e3\u5339\u914d\u7684\u52a8\u6001\u547d\u4ee4\u94fe\u7ec4\u88c5\u3002"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u5411\u7528\u6237\u663e\u793a"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"\u63a8\u8350\u547d\u4ee4\u94fe:\n\n\u7ba1\u9053 (\u53ef\u89c6\u5316):\n\u9700\u6c42 -> lite-plan -> \u8ba1\u5212 -> lite-execute -> \u4ee3\u7801 -> test-cycle-execute -> \u6d4b\u8bd5\u901a\u8fc7\n\n\u547d\u4ee4:\n1. /workflow:lite-plan\n2. /workflow:lite-execute\n3. /workflow:test-cycle-execute\n\n\u7ee7\u7eed? [\u786e\u8ba4 / \u663e\u793a\u8be6\u60c5 / \u8c03\u6574 / \u53d6\u6d88]\n"})}),"\n",(0,s.jsx)(n.h4,{id:"\u9636\u6bb5-3-\u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe",children:"\u9636\u6bb5 3: \u987a\u5e8f\u6267\u884c\u547d\u4ee4\u94fe"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"async function executeCommandChain(chain, analysis) {\n const sessionId = `ccw-coord-${Date.now()}`;\n const stateDir = `.workflow/.ccw-coordinator/${sessionId}`;\n\n // \u521d\u59cb\u5316\u72b6\u6001\n const state = {\n session_id: sessionId,\n status: 'running',\n created_at: new Date().toISOString(),\n analysis: analysis,\n command_chain: chain.map((cmd, idx) => ({ ...cmd, index: idx, status: 'pending' })),\n execution_results: [],\n prompts_used: []\n };\n\n // \u4fdd\u5b58\u521d\u59cb\u72b6\u6001\n Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));\n\n for (let i = 0; i < chain.length; i++) {\n const cmd = chain[i];\n\n // \u7ec4\u88c5\u63d0\u793a\u8bcd\n let prompt = formatCommand(cmd, state.execution_results, analysis);\n prompt += `\\n\\nTask: ${analysis.goal}`;\n if (state.execution_results.length > 0) {\n prompt += '\\nPrevious results:\\n';\n state.execution_results.forEach(r => {\n if (r.session_id) {\n prompt += `- ${r.command}: ${r.session_id}\\n`;\n }\n });\n }\n\n // \u5728\u540e\u53f0\u542f\u52a8 CLI\n const taskId = Bash(\n `ccw cli -p \"${escapePrompt(prompt)}\" --tool claude --mode write`,\n { run_in_background: true }\n ).task_id;\n\n // \u4fdd\u5b58\u68c0\u67e5\u70b9\n state.execution_results.push({\n index: i,\n command: cmd.command,\n status: 'in-progress',\n task_id: taskId,\n session_id: null,\n artifacts: [],\n timestamp: new Date().toISOString()\n });\n\n // \u5728\u6b64\u505c\u6b62 - \u7b49\u5f85 hook \u56de\u8c03\n Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));\n break;\n }\n\n state.status = 'waiting';\n Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));\n return state;\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784",children:"\u72b6\u6001\u6587\u4ef6\u7ed3\u6784"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"\u4f4d\u7f6e"}),": ",(0,s.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session_id}/state.json"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "session_id": "ccw-coord-20250203-143025",\n "status": "running|waiting|completed|failed",\n "created_at": "2025-02-03T14:30:25Z",\n "updated_at": "2025-02-03T14:35:45Z",\n "analysis": {\n "goal": "\u5b9e\u73b0\u7528\u6237\u6ce8\u518c",\n "scope": ["authentication", "user_management"],\n "constraints": ["\u65e0\u7834\u574f\u6027\u53d8\u66f4"],\n "complexity": "medium",\n "task_type": "feature"\n },\n "command_chain": [\n {\n "index": 0,\n "command": "/workflow:plan",\n "name": "plan",\n "status": "completed"\n },\n {\n "index": 1,\n "command": "/workflow:execute",\n "name": "execute",\n "status": "running"\n }\n ],\n "execution_results": [\n {\n "index": 0,\n "command": "/workflow:plan",\n "status": "completed",\n "task_id": "task-001",\n "session_id": "WFS-plan-20250203",\n "artifacts": ["IMPL_PLAN.md"],\n "timestamp": "2025-02-03T14:30:25Z",\n "completed_at": "2025-02-03T14:30:45Z"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe",children:"\u5b8c\u6574\u751f\u547d\u5468\u671f\u51b3\u7b56\u6d41\u7a0b\u56fe"}),"\n",(0,s.jsx)(l.A,{chart:'\n flowchart TD\n Start([\u5f00\u59cb\u65b0\u4efb\u52a1]) --\x3e Q0{\u662f bug \u4fee\u590d\u5417?}\n\n Q0 --\x3e|\u662f| BugFix["Bug \u4fee\u590d\u6d41\u7a0b"]\n Q0 --\x3e|\u5426| Q1{\u77e5\u9053\u8981\u505a\u4ec0\u4e48\u5417?}\n\n BugFix --\x3e BugSeverity{\u7406\u89e3\u6839\u672c\u539f\u56e0\u5417?}\n BugSeverity --\x3e|\u6e05\u695a| LiteFix["/workflow:lite-fix
\u6807\u51c6\u4fee\u590d"]\n BugSeverity --\x3e|\u751f\u4ea7\u4e8b\u6545| HotFix["/workflow:lite-fix --hotfix
\u7d27\u6025\u70ed\u4fee\u590d"]\n BugSeverity --\x3e|\u4e0d\u6e05\u695a| BugDiag["/workflow:lite-fix
\u81ea\u52a8\u8bca\u65ad\u6839\u672c\u539f\u56e0"]\n\n BugDiag --\x3e LiteFix\n LiteFix --\x3e BugComplete["Bug \u5df2\u4fee\u590d"]\n HotFix --\x3e FollowUp["\u81ea\u52a8\u751f\u6210\u540e\u7eed\u4efb\u52a1
\u5b8c\u6574\u4fee\u590d + \u590d\u76d8"]\n FollowUp --\x3e BugComplete\n BugComplete --\x3e End(["\u4efb\u52a1\u5b8c\u6210"])\n\n Q1 --\x3e|\u5426| Ideation["\u63a2\u7d22\u9636\u6bb5
\u660e\u786e\u9700\u6c42"]\n Q1 --\x3e|\u662f| Q2{\u77e5\u9053\u5982\u4f55\u505a\u5417?}\n\n Ideation --\x3e BrainIdea["/workflow:brainstorm:auto-parallel
\u63a2\u7d22\u4ea7\u54c1\u65b9\u5411"]\n BrainIdea --\x3e Q2\n\n Q2 --\x3e|\u5426| Design["\u8bbe\u8ba1\u63a2\u7d22
\u63a2\u7d22\u67b6\u6784"]\n Q2 --\x3e|\u662f| Q3{\u9700\u8981\u89c4\u5212\u5417?}\n\n Design --\x3e BrainDesign["/workflow:brainstorm:auto-parallel
\u63a2\u7d22\u6280\u672f\u65b9\u6848"]\n BrainDesign --\x3e Q3\n\n Q3 --\x3e|\u5feb\u901f\u7b80\u5355| LitePlan["\u8f7b\u91cf\u7ea7\u89c4\u5212
/workflow:lite-plan"]\n Q3 --\x3e|\u590d\u6742\u5b8c\u6574| FullPlan["\u6807\u51c6\u89c4\u5212
/workflow:plan"]\n\n LitePlan --\x3e Q4{\u9700\u8981\u4ee3\u7801\u63a2\u7d22?}\n Q4 --\x3e|\u662f| LitePlanE["/workflow:lite-plan -e"]\n Q4 --\x3e|\u5426| LitePlanNormal["/workflow:lite-plan"]\n\n LitePlanE --\x3e LiteConfirm["\u4e09\u7ef4\u786e\u8ba4:
1. \u4efb\u52a1\u786e\u8ba4
2. \u6267\u884c\u65b9\u5f0f
3. \u4ee3\u7801\u5ba1\u67e5"]\n LitePlanNormal --\x3e LiteConfirm\n\n LiteConfirm --\x3e Q5{\u9009\u62e9\u6267\u884c\u65b9\u5f0f}\n Q5 --\x3e|Agent| LiteAgent["/workflow:lite-execute
\u4f7f\u7528 @code-developer"]\n Q5 --\x3e|CLI \u5de5\u5177| LiteCLI["CLI \u6267\u884c
Gemini/Qwen/Codex"]\n Q5 --\x3e|\u4ec5\u89c4\u5212| UserImpl["\u7528\u6237\u624b\u52a8\u5b9e\u73b0"]\n\n FullPlan --\x3e PlanVerify{\u9a8c\u8bc1\u8ba1\u5212\u8d28\u91cf?}\n PlanVerify --\x3e|\u662f| Verify["/workflow:plan-verify"]\n PlanVerify --\x3e|\u5426| Execute\n Verify --\x3e Q6{\u9a8c\u8bc1\u901a\u8fc7?}\n Q6 --\x3e|\u5426| FixPlan["\u4fee\u590d\u8ba1\u5212\u95ee\u9898"]\n Q6 --\x3e|\u662f| Execute\n FixPlan --\x3e Execute\n\n Execute["\u6267\u884c\u9636\u6bb5
/workflow:execute"]\n LiteAgent --\x3e TestDecision\n LiteCLI --\x3e TestDecision\n UserImpl --\x3e TestDecision\n Execute --\x3e TestDecision\n\n TestDecision{\u9700\u8981\u6d4b\u8bd5?}\n TestDecision --\x3e|TDD \u6a21\u5f0f| TDD["/workflow:tdd-plan
\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"]\n TestDecision --\x3e|\u540e\u7f6e\u6d4b\u8bd5| TestGen["/workflow:test-gen
\u751f\u6210\u6d4b\u8bd5"]\n TestDecision --\x3e|\u5df2\u6709\u6d4b\u8bd5| TestCycle["/workflow:test-cycle-execute
\u6d4b\u8bd5-\u4fee\u590d\u5faa\u73af"]\n TestDecision --\x3e|\u4e0d\u9700\u8981| Review\n\n TDD --\x3e TDDExecute["/workflow:execute
\u7ea2-\u7eff-\u91cd\u6784"]\n TDDExecute --\x3e TDDVerify["/workflow:tdd-verify
\u9a8c\u8bc1 TDD \u5408\u89c4\u6027"]\n TDDVerify --\x3e Review\n\n TestGen --\x3e TestExecute["/workflow:execute
\u6267\u884c\u6d4b\u8bd5\u4efb\u52a1"]\n TestExecute --\x3e TestResult{\u6d4b\u8bd5\u901a\u8fc7?}\n TestResult --\x3e|\u5426| TestCycle\n TestResult --\x3e|\u662f| Review\n\n TestCycle --\x3e TestPass{\u901a\u8fc7\u7387 >= 95%?}\n TestPass --\x3e|\u5426, \u7ee7\u7eed\u4fee\u590d| TestCycle\n TestPass --\x3e|\u662f| Review\n\n Review["\u5ba1\u67e5\u9636\u6bb5"]\n Review --\x3e Q7{\u9700\u8981\u4e13\u9879\u5ba1\u67e5?}\n Q7 --\x3e|\u5b89\u5168| SecurityReview["/workflow:review
--type security"]\n Q7 --\x3e|\u67b6\u6784| ArchReview["/workflow:review
--type architecture"]\n Q7 --\x3e|\u8d28\u91cf| QualityReview["/workflow:review
--type quality"]\n Q7 --\x3e|\u901a\u7528| GeneralReview["/workflow:review
\u901a\u7528\u5ba1\u67e5"]\n Q7 --\x3e|\u4e0d\u9700\u8981| Complete\n\n SecurityReview --\x3e Complete\n ArchReview --\x3e Complete\n QualityReview --\x3e Complete\n GeneralReview --\x3e Complete\n\n Complete["\u5b8c\u6210\u9636\u6bb5
/workflow:session:complete"]\n Complete --\x3e End\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef bugfix fill:#ffccbc,stroke:#bf360c\n classDef ideation fill:#fff9c4,stroke:#ffa000\n classDef planning fill:#e3f2fd,stroke:#1976d2\n classDef execute fill:#c5e1a5,stroke:#388e3c\n classDef review fill:#d1c4e9,stroke:#512da8\n\n class Start,End startend,BugFix,LiteFix,HotFix,BugDiag,BugComplete bugfix,Ideation,BrainIdea,BrainDesign ideation,LitePlan,LitePlanE,LitePlanNormal,LiteConfirm,FullPlan,PlanVerify,Verify,FixPlan planning,Execute,LiteAgent,LiteCLI,UserImpl,TDD,TDDExecute,TDDVerify,TestGen,TestExecute,TestCycle execute,Review,SecurityReview,ArchReview,QualityReview,GeneralReview,Complete review\n'}),"\n",(0,s.jsx)(n.h3,{id:"\u4f7f\u7528\u573a\u666f",children:"\u4f7f\u7528\u573a\u666f"}),"\n",(0,s.jsx)(n.h3,{id:"\u4f55\u65f6\u4f7f\u7528",children:"\u4f55\u65f6\u4f7f\u7528"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u590d\u6742\u7684\u591a\u6b65\u9aa4\u5de5\u4f5c\u6d41"}),"\n",(0,s.jsx)(n.li,{children:"\u4e0d\u786e\u5b9a\u4f7f\u7528\u54ea\u4e9b\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"\u9700\u8981\u7aef\u5230\u7aef\u81ea\u52a8\u5316"}),"\n",(0,s.jsx)(n.li,{children:"\u9700\u8981\u5b8c\u6574\u7684\u72b6\u6001\u8ddf\u8e2a\u548c\u53ef\u6062\u590d\u6027"}),"\n",(0,s.jsx)(n.li,{children:"\u56e2\u961f\u534f\u4f5c\u9700\u8981\u7edf\u4e00\u7684\u6267\u884c\u6d41\u7a0b"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",children:"\u4f55\u65f6\u4e0d\u4f7f\u7528"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u7b80\u5355\u7684\u5355\u547d\u4ee4\u4efb\u52a1 (\u76f4\u63a5\u4f7f\u7528\u5c42\u7ea7 1-4)"}),"\n",(0,s.jsx)(n.li,{children:"\u5df2\u7ecf\u77e5\u9053\u786e\u5207\u7684\u6240\u9700\u547d\u4ee4 (\u76f4\u63a5\u4f7f\u7528\u5c42\u7ea7 1-4)"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb",children:"\u4e0e\u5176\u4ed6\u5c42\u7ea7\u7684\u5173\u7cfb"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u5c42\u7ea7"}),(0,s.jsx)(n.th,{children:"\u624b\u52a8\u7a0b\u5ea6"}),(0,s.jsx)(n.th,{children:"CCW Coordinator \u89d2\u8272"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u5c42\u7ea7 1-4"}),(0,s.jsx)(n.td,{children:"\u624b\u52a8\u9009\u62e9\u547d\u4ee4"}),(0,s.jsx)(n.td,{children:"\u81ea\u52a8\u7ec4\u5408\u8fd9\u4e9b\u547d\u4ee4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u5c42\u7ea7 5"}),(0,s.jsx)(n.td,{children:"\u81ea\u52a8\u9009\u62e9\u547d\u4ee4"}),(0,s.jsx)(n.td,{children:"\u667a\u80fd\u7f16\u6392\u5668"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"CCW Coordinator \u5185\u90e8\u4f7f\u7528\u5c42\u7ea7 1-4"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u5206\u6790\u4efb\u52a1 -> \u81ea\u52a8\u9009\u62e9\u5408\u9002\u7684\u5c42\u7ea7"}),"\n",(0,s.jsx)(n.li,{children:"\u7ec4\u88c5\u547d\u4ee4\u94fe -> \u5305\u542b\u5c42\u7ea7 1-4 \u7684\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"\u987a\u5e8f\u6267\u884c -> \u9075\u5faa\u6700\u5c0f\u6267\u884c\u5355\u5143"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u76f8\u5173\u5de5\u4f5c\u6d41",children:"\u76f8\u5173\u5de5\u4f5c\u6d41"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-1-ultra-lightweight",children:"\u5c42\u7ea7 1: \u8d85\u8f7b\u91cf\u7ea7"})," - \u5feb\u901f\u6267\u884c"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-2-rapid",children:"\u5c42\u7ea7 2: \u5feb\u901f"})," - \u8f7b\u91cf\u7ea7\u89c4\u5212"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u5c42\u7ea7 3: \u6807\u51c6"})," - \u5b8c\u6574\u89c4\u5212"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4"})," - \u591a\u89d2\u8272\u63a2\u7d22"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"\u5e38\u89c1\u95ee\u9898"})," - \u5e38\u89c1\u95ee\u9898"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"\u547d\u4ee4\u53c2\u8003",children:"\u547d\u4ee4\u53c2\u8003"}),"\n",(0,s.jsxs)(n.p,{children:["\u53c2\u89c1 ",(0,s.jsx)(n.a,{href:"/commands/general/ccw",children:"\u547d\u4ee4\u6587\u6863"})," \u4e86\u89e3:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"/ccw-coordinator"})," - \u667a\u80fd\u5de5\u4f5c\u6d41\u7f16\u6392\u5668"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"/ccw"})," - \u4e3b\u5de5\u4f5c\u6d41\u7f16\u6392\u5668"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/775938bf.8d71fe29.js b/ccw/docs-site/build/zh/assets/js/775938bf.0f3b32d9.js similarity index 97% rename from ccw/docs-site/build/zh/assets/js/775938bf.8d71fe29.js rename to ccw/docs-site/build/zh/assets/js/775938bf.0f3b32d9.js index 10a3af9b..769c4814 100644 --- a/ccw/docs-site/build/zh/assets/js/775938bf.8d71fe29.js +++ b/ccw/docs-site/build/zh/assets/js/775938bf.0f3b32d9.js @@ -1 +1 @@ -"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[366],{1184(e,n,s){s.d(n,{R:()=>d,x:()=>c});var l=s(3696);const i={},r=l.createContext(i);function d(e){const n=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),l.createElement(r.Provider,{value:n},e.children)}},5467(e,n,s){s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>t,default:()=>o,frontMatter:()=>c,metadata:()=>l,toc:()=>x});const l=JSON.parse('{"id":"workflows/level-4-brainstorm","title":"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41","description":"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41 - \u534f\u4f5c\u63a2\u7d22\u548c\u521b\u610f\u751f\u6210","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-4-brainstorm.mdx","sourceDirName":"workflows","slug":"/workflows/level-4-brainstorm","permalink":"/docs/zh/workflows/level-4-brainstorm","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/level-4-brainstorm.mdx","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41","description":"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41 - \u534f\u4f5c\u63a2\u7d22\u548c\u521b\u610f\u751f\u6210","sidebar_position":5},"sidebar":"docs","previous":{"title":"Level 3: Standard","permalink":"/docs/zh/workflows/level-3-standard"},"next":{"title":"Level 5: Intelligent","permalink":"/docs/zh/workflows/level-5-intelligent"}}');var i=s(2540),r=s(1184),d=s(1540);const c={title:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41",description:"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41 - \u534f\u4f5c\u63a2\u7d22\u548c\u521b\u610f\u751f\u6210",sidebar_position:5},t="\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41",h={},x=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:2},{value:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41: brainstorm",id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-brainstorm",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4",level:3},{value:"\u6d41\u7a0b\u56fe",id:"\u6d41\u7a0b\u56fe",level:3},{value:"\u7279\u6027",id:"\u7279\u6027",level:3},{value:"\u6d41\u7a0b\u9636\u6bb5",id:"\u6d41\u7a0b\u9636\u6bb5",level:3},{value:"\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210",id:"\u9636\u6bb5-1-\u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210",level:4},{value:"\u9636\u6bb5 2: \u5e76\u884c\u89d2\u8272\u5206\u6790",id:"\u9636\u6bb5-2-\u5e76\u884c\u89d2\u8272\u5206\u6790",level:4},{value:"\u9636\u6bb5 3: \u7efc\u5408\u6574\u5408",id:"\u9636\u6bb5-3-\u7efc\u5408\u6574\u5408",level:4},{value:"\u53ef\u7528\u89d2\u8272",id:"\u53ef\u7528\u89d2\u8272",level:3},{value:"\u4ea7\u7269\u7ed3\u6784",id:"\u4ea7\u7269\u7ed3\u6784",level:3},{value:"\u4f7f\u7528\u573a\u666f",id:"\u4f7f\u7528\u573a\u666f",level:3},{value:"\u4f55\u65f6\u4f7f\u7528",id:"\u4f55\u65f6\u4f7f\u7528",level:4},{value:"\u4f55\u65f6\u4e0d\u4f7f\u7528",id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",level:4},{value:"\u793a\u4f8b",id:"\u793a\u4f8b",level:3},{value:"\u793a\u4f8b 1: \u67b6\u6784\u8bbe\u8ba1",id:"\u793a\u4f8b-1-\u67b6\u6784\u8bbe\u8ba1",level:4},{value:"\u793a\u4f8b 2: \u529f\u80fd\u63a2\u7d22",id:"\u793a\u4f8b-2-\u529f\u80fd\u63a2\u7d22",level:4},{value:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41 (With-File)",id:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41-with-file",level:2},{value:"brainstorm-with-file",id:"brainstorm-with-file",level:3},{value:"debug-with-file",id:"debug-with-file",level:3},{value:"analyze-with-file",id:"analyze-with-file",level:3},{value:"\u68c0\u6d4b\u5173\u952e\u8bcd",id:"\u68c0\u6d4b\u5173\u952e\u8bcd",level:2},{value:"\u5bf9\u6bd4: \u6587\u6863\u5316 vs \u6807\u51c6\u5de5\u4f5c\u6d41",id:"\u5bf9\u6bd4-\u6587\u6863\u5316-vs-\u6807\u51c6\u5de5\u4f5c\u6d41",level:2},{value:"\u5c42\u7ea7 4 \u603b\u7ed3",id:"\u5c42\u7ea7-4-\u603b\u7ed3",level:2},{value:"\u76f8\u5173\u5de5\u4f5c\u6d41",id:"\u76f8\u5173\u5de5\u4f5c\u6d41",level:2},{value:"\u547d\u4ee4\u53c2\u8003",id:"\u547d\u4ee4\u53c2\u8003",level:2}];function j(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u5c42\u7ea7-4-\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41",children:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"}),": \u9ad8 | ",(0,i.jsx)(n.strong,{children:"\u4ea7\u7269"}),": \u591a\u89d2\u8272\u5206\u6790\u6587\u6863 | ",(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u6570"}),": 3-9 | ",(0,i.jsx)(n.strong,{children:"\u6267\u884c"}),": \u9636\u6bb5 1/3 \u4e32\u884c\uff0c\u9636\u6bb5 2 \u5e76\u884c"]}),"\n",(0,i.jsx)(n.p,{children:"\u5c42\u7ea7 4 \u5de5\u4f5c\u6d41\u63d0\u4f9b\u5b8c\u6574\u7684\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\uff0c\u5305\u542b\u5b8c\u6574\u7684\u89c4\u5212\u548c\u6267\u884c\u80fd\u529b\u3002\u4e13\u4e3a\u63a2\u7d22\u6027\u9700\u6c42\u3001\u4e0d\u786e\u5b9a\u7684\u5b9e\u73b0\u65b9\u6848\u4ee5\u53ca\u591a\u7ef4\u5ea6\u7684\u6743\u8861\u5206\u6790\u800c\u8bbe\u8ba1\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"\u6982\u8ff0",children:"\u6982\u8ff0"}),"\n",(0,i.jsx)(d.A,{chart:"\n flowchart TD\n Start([\u7528\u6237\u8f93\u5165]) --\x3e BS[brainstorm:auto-parallel]\n BS --\x3e P1[\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f
\u6846\u67b6\u751f\u6210]\n P1 --\x3e P2[\u9636\u6bb5 2: \u5e76\u884c
\u89d2\u8272\u5206\u6790]\n P2 --\x3e P3[\u9636\u6bb5 3: \u7efc\u5408
\u6574\u5408]\n\n P3 --\x3e Plan{\u9700\u8981\u8be6\u7ec6
\u89c4\u5212?}\n Plan --\x3e|\u662f| Verify[plan-verify]\n Plan --\x3e|\u5426| Execute[execute]\n Verify --\x3e Execute\n\n Execute --\x3e Review{\u9700\u8981\u8bc4\u5ba1?}\n Review --\x3e|\u662f| Rev[review-session-cycle]\n Review --\x3e|\u5426| Test{\u9700\u8981\u6d4b\u8bd5?}\n Rev --\x3e RevFix[review-cycle-fix]\n RevFix --\x3e Test\n\n Test --\x3e|\u662f| TFG[test-fix-gen]\n Test --\x3e|\u5426| Complete([session:complete])\n\n TFG --\x3e TCE[test-cycle-execute]\n TCE --\x3e Complete\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef workflow fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef execute fill:#c5e1a5,stroke:#388e3c\n\n class Start,Complete startend,Plan,Review,Test decision,BS,Verify,Rev,RevFix,TFG,TCE workflow,P1,P2,P3,Execute execute\n"}),"\n",(0,i.jsxs)(n.h2,{id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-brainstorm",children:["\u5305\u542b\u7684\u5de5\u4f5c\u6d41: brainstorm",":auto-parallel"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4 + \u5b8c\u6574\u89c4\u5212 + \u6267\u884c"})}),"\n",(0,i.jsx)(n.h3,{id:"\u547d\u4ee4",children:"\u547d\u4ee4"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:auto-parallel "\u5b9e\u65f6\u901a\u77e5\u7cfb\u7edf\u67b6\u6784\u8bbe\u8ba1" [--count N] [--style-skill package]\n/workflow:plan --session {sessionId}\n/workflow:plan-verify\n/workflow:execute\n'})}),"\n",(0,i.jsx)(n.h3,{id:"\u6d41\u7a0b\u56fe",children:"\u6d41\u7a0b\u56fe"}),"\n",(0,i.jsx)(d.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B[\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f
\u6846\u67b6\u751f\u6210]\n B --\x3e C[/workflow:brainstorm:artifacts/]\n\n C --\x3e D[\u4e3b\u9898\u5206\u6790
\u751f\u6210\u95ee\u9898]\n D --\x3e E[\u89d2\u8272\u9009\u62e9
\u7528\u6237\u786e\u8ba4]\n E --\x3e F[\u89d2\u8272\u95ee\u9898\u6536\u96c6]\n F --\x3e G[\u51b2\u7a81\u68c0\u6d4b
\u4e0e\u89e3\u51b3]\n G --\x3e H[\u751f\u6210 guidance-
specification.md]\n\n H --\x3e I[\u9636\u6bb5 2: \u5e76\u884c\u89d2\u8272\u5206\u6790]\n\n I --\x3e J1[N \u4e2a Task
conceptual-planning-
agent]\n J1 --\x3e K1{\u89d2\u8272 1}\n J1 --\x3e K2{\u89d2\u8272 2}\n J1 --\x3e K3{\u89d2\u8272 3}\n J1 --\x3e K4{\u89d2\u8272 N}\n\n K1 --\x3e L1[\u72ec\u7acb\u5206\u6790]\n K2 --\x3e L2[\u72ec\u7acb\u5206\u6790]\n K3 --\x3e L3[\u72ec\u7acb\u5206\u6790]\n K4 --\x3e L4[\u72ec\u7acb\u5206\u6790]\n\n L1 --\x3e M[\u5e76\u884c\u751f\u6210
{role}/analysis.md]\n L2 --\x3e M\n L3 --\x3e M\n L4 --\x3e M\n\n M --\x3e N[\u9636\u6bb5 3: \u7efc\u5408\u6574\u5408]\n N --\x3e O[/workflow:brainstorm:
synthesis/]\n O --\x3e P[\u6574\u5408\u6240\u6709\u89d2\u8272
\u5206\u6790]\n P --\x3e Q[\u7efc\u5408\u4e3a
synthesis-specification.md]\n\n Q --\x3e R([\u5934\u8111\u98ce\u66b4\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef action fill:#e3f2fd,stroke:#1976d2\n classDef phase fill:#fff9c4,stroke:#f57c00\n classDef parallel fill:#ffecb3,stroke:#ffa000\n\n class A,R startend,B,C,H,N,O,P,Q action,D,E,F,G,J1,K1,K2,K3,K4,L1,L2,L3,L4,M phase\n"}),"\n",(0,i.jsx)(n.h3,{id:"\u7279\u6027",children:"\u7279\u6027"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u5c5e\u6027"}),(0,i.jsx)(n.th,{children:"\u503c"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"})}),(0,i.jsx)(n.td,{children:"\u9ad8"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u4ea7\u7269"})}),(0,i.jsxs)(n.td,{children:["\u591a\u89d2\u8272\u5206\u6790\u6587\u6863 + ",(0,i.jsx)(n.code,{children:"IMPL_PLAN.md"})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u6570\u91cf"})}),(0,i.jsx)(n.td,{children:"3-9 (\u9ed8\u8ba4 3)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6267\u884c\u6a21\u5f0f"})}),(0,i.jsx)(n.td,{children:"\u9636\u6bb5 1/3 \u4e32\u884c\uff0c\u9636\u6bb5 2 \u5e76\u884c"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"\u6d41\u7a0b\u9636\u6bb5",children:"\u6d41\u7a0b\u9636\u6bb5"}),"\n",(0,i.jsx)(n.h4,{id:"\u9636\u6bb5-1-\u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210",children:"\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:artifacts "\u5b9e\u65f6\u901a\u77e5\u7cfb\u7edf\u67b6\u6784\u8bbe\u8ba1"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6b65\u9aa4"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u4e3b\u9898\u5206\u6790"})," - \u5206\u6790\u4e3b\u9898\uff0c\u751f\u6210\u5173\u952e\u95ee\u9898"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u9009\u62e9"})," - \u7528\u6237\u786e\u8ba4\u89d2\u8272\u9009\u62e9"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u95ee\u9898\u5206\u914d"})," - \u4e3a\u89d2\u8272\u5206\u914d\u95ee\u9898"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u51b2\u7a81\u68c0\u6d4b"})," - \u68c0\u6d4b\u5e76\u89e3\u51b3\u89d2\u8272\u51b2\u7a81"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u751f\u6210\u6846\u67b6"})," - \u521b\u5efa ",(0,i.jsx)(n.code,{children:"guidance-specification.md"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u9636\u6bb5-2-\u5e76\u884c\u89d2\u8272\u5206\u6790",children:"\u9636\u6bb5 2: \u5e76\u884c\u89d2\u8272\u5206\u6790"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'# \u5e76\u884c\u6267\u884c N \u4e2a conceptual-planning-agent \u4efb\u52a1\nTask(subagent_type: "conceptual-planning-agent", prompt: "Role: {role}, Topic: {topic}, Questions: {questions}")\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6bcf\u4e2a\u89d2\u8272"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u63a5\u6536\u7279\u5b9a\u89d2\u8272\u7684\u6307\u5bfc"}),"\n",(0,i.jsx)(n.li,{children:"\u72ec\u7acb\u5206\u6790\u4e3b\u9898"}),"\n",(0,i.jsxs)(n.li,{children:["\u751f\u6210 ",(0,i.jsx)(n.code,{children:"{role}/analysis.md"})]}),"\n",(0,i.jsx)(n.li,{children:"\u53ef\u9009: \u5b50\u6587\u6863 (\u6700\u591a 5 \u4e2a)"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u9636\u6bb5-3-\u7efc\u5408\u6574\u5408",children:"\u9636\u6bb5 3: \u7efc\u5408\u6574\u5408"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"/workflow:brainstorm:synthesis --session {sessionId}\n"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6b65\u9aa4"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u6536\u96c6"})," \u6240\u6709\u89d2\u8272\u5206\u6790"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u6574\u5408"})," \u89c6\u89d2\u5230\u7efc\u5408\u6587\u6863"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u751f\u6210"})," ",(0,i.jsx)(n.code,{children:"synthesis-specification.md"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u8bc6\u522b"})," \u5173\u952e\u51b3\u7b56\u548c\u6743\u8861\u70b9"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"\u53ef\u7528\u89d2\u8272",children:"\u53ef\u7528\u89d2\u8272"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u89d2\u8272"}),(0,i.jsx)(n.th,{children:"\u63cf\u8ff0"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"system-architect"})}),(0,i.jsx)(n.td,{children:"\u7cfb\u7edf\u67b6\u6784\u5e08 - \u6574\u4f53\u7cfb\u7edf\u8bbe\u8ba1"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ui-designer"})}),(0,i.jsx)(n.td,{children:"UI \u8bbe\u8ba1\u5e08 - \u7528\u6237\u754c\u9762\u8bbe\u8ba1"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ux-expert"})}),(0,i.jsx)(n.td,{children:"UX \u4e13\u5bb6 - \u7528\u6237\u4f53\u9a8c\u4f18\u5316"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"product-manager"})}),(0,i.jsx)(n.td,{children:"\u4ea7\u54c1\u7ecf\u7406 - \u4ea7\u54c1\u9700\u6c42"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"product-owner"})}),(0,i.jsx)(n.td,{children:"\u4ea7\u54c1\u8d1f\u8d23\u4eba - \u4e1a\u52a1\u4ef7\u503c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"data-architect"})}),(0,i.jsx)(n.td,{children:"\u6570\u636e\u67b6\u6784\u5e08 - \u6570\u636e\u7ed3\u6784\u8bbe\u8ba1"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"scrum-master"})}),(0,i.jsx)(n.td,{children:"Scrum \u4e3b\u7ba1 - \u6d41\u7a0b\u548c\u56e2\u961f"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"subject-matter-expert"})}),(0,i.jsx)(n.td,{children:"\u9886\u57df\u4e13\u5bb6 - \u4e13\u4e1a\u9886\u57df\u77e5\u8bc6"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"test-strategist"})}),(0,i.jsx)(n.td,{children:"\u6d4b\u8bd5\u7b56\u7565\u5e08 - \u6d4b\u8bd5\u7b56\u7565"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"\u4ea7\u7269\u7ed3\u6784",children:"\u4ea7\u7269\u7ed3\u6784"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:".workflow/active/WFS-realtime-notifications/\n\u251c\u2500\u2500 workflow-session.json\n\u2514\u2500\u2500 .brainstorming/\n \u251c\u2500\u2500 guidance-specification.md # \u6846\u67b6 (\u9636\u6bb5 1)\n \u251c\u2500\u2500 system-architect/\n \u2502 \u251c\u2500\u2500 analysis.md # \u4e3b\u6587\u6863\n \u2502 \u2514\u2500\u2500 analysis-scale-{}.md # \u5b50\u6587\u6863 (\u53ef\u9009\uff0c\u6700\u591a 5 \u4e2a)\n \u251c\u2500\u2500 ux-expert/\n \u2502 \u251c\u2500\u2500 analysis.md\n \u2502 \u2514\u2500\u2500 analysis-accessibility.md\n \u251c\u2500\u2500 data-architect/\n \u2502 \u251c\u2500\u2500 analysis.md\n \u2502 \u2514\u2500\u2500 analysis-storage.md\n \u2514\u2500\u2500 synthesis-specification.md # \u6574\u5408 (\u9636\u6bb5 3)\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u4f7f\u7528\u573a\u666f",children:"\u4f7f\u7528\u573a\u666f"}),"\n",(0,i.jsx)(n.h4,{id:"\u4f55\u65f6\u4f7f\u7528",children:"\u4f55\u65f6\u4f7f\u7528"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u65b0\u529f\u80fd\u8bbe\u8ba1"}),"\n",(0,i.jsx)(n.li,{children:"\u7cfb\u7edf\u67b6\u6784\u91cd\u6784"}),"\n",(0,i.jsx)(n.li,{children:"\u63a2\u7d22\u6027\u9700\u6c42"}),"\n",(0,i.jsx)(n.li,{children:"\u4e0d\u786e\u5b9a\u7684\u5b9e\u73b0\u65b9\u6848"}),"\n",(0,i.jsx)(n.li,{children:"\u9700\u8981\u591a\u7ef4\u5ea6\u6743\u8861\u5206\u6790"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",children:"\u4f55\u65f6\u4e0d\u4f7f\u7528"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u9700\u6c42\u660e\u786e (\u4f7f\u7528\u5c42\u7ea7 2-3)"}),"\n",(0,i.jsx)(n.li,{children:"\u65f6\u95f4\u654f\u611f\u4efb\u52a1 (\u4f7f\u7528\u5c42\u7ea7 2)"}),"\n",(0,i.jsx)(n.li,{children:"\u5355\u4e00\u89c6\u89d2\u8db3\u591f (\u4f7f\u7528\u5c42\u7ea7 2-3)"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"\u793a\u4f8b",children:"\u793a\u4f8b"}),"\n",(0,i.jsx)(n.h4,{id:"\u793a\u4f8b-1-\u67b6\u6784\u8bbe\u8ba1",children:"\u793a\u4f8b 1: \u67b6\u6784\u8bbe\u8ba1"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:auto-parallel "\u7535\u5546\u5e73\u53f0\u5fae\u670d\u52a1\u67b6\u6784" --count 5\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272"}),": system-architect, data-architect, ux-expert, product-manager, test-strategist"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u591a\u4e2a\u67b6\u6784\u89c6\u89d2"}),"\n",(0,i.jsx)(n.li,{children:"\u6570\u636e\u6d41\u8003\u8651"}),"\n",(0,i.jsx)(n.li,{children:"\u7528\u6237\u4f53\u9a8c\u5f71\u54cd"}),"\n",(0,i.jsx)(n.li,{children:"\u4e1a\u52a1\u9700\u6c42\u5bf9\u9f50"}),"\n",(0,i.jsx)(n.li,{children:"\u6d4b\u8bd5\u7b56\u7565\u5efa\u8bae"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u793a\u4f8b-2-\u529f\u80fd\u63a2\u7d22",children:"\u793a\u4f8b 2: \u529f\u80fd\u63a2\u7d22"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:auto-parallel "AI \u9a71\u52a8\u63a8\u8350\u7cfb\u7edf" --count 3\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272"}),": system-architect, product-manager, subject-matter-expert"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u6280\u672f\u53ef\u884c\u6027\u5206\u6790"}),"\n",(0,i.jsx)(n.li,{children:"\u4e1a\u52a1\u4ef7\u503c\u8bc4\u4f30"}),"\n",(0,i.jsx)(n.li,{children:"\u9886\u57df\u7279\u5b9a\u8003\u91cf"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41-with-file",children:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41 (With-File)"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41"})," \u63d0\u4f9b\u5e26\u6709\u591a CLI \u534f\u4f5c\u7684\u6587\u6863\u5316\u63a2\u7d22\u3002\u5b83\u4eec\u662f\u81ea\u5305\u542b\u7684\uff0c\u751f\u6210\u5168\u9762\u7684\u4f1a\u8bdd\u4ea7\u7269\u3002"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(n.th,{children:"\u7528\u9014"}),(0,i.jsx)(n.th,{children:"\u5c42\u7ea7"}),(0,i.jsx)(n.th,{children:"\u4e3b\u8981\u7279\u6027"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"brainstorm-with-file"})}),(0,i.jsx)(n.td,{children:"\u591a\u89c6\u89d2\u521b\u610f\u751f\u6210"}),(0,i.jsx)(n.td,{children:"4"}),(0,i.jsx)(n.td,{children:"Gemini/Codex/Claude \u89c6\u89d2\uff0c\u53d1\u6563-\u6536\u655b\u5faa\u73af"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"debug-with-file"})}),(0,i.jsx)(n.td,{children:"\u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5"}),(0,i.jsx)(n.td,{children:"3"}),(0,i.jsx)(n.td,{children:"Gemini \u9a8c\u8bc1\uff0c\u7406\u89e3\u6f14\u8fdb\uff0cNDJSON \u65e5\u5fd7"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"analyze-with-file"})}),(0,i.jsx)(n.td,{children:"\u534f\u4f5c\u5206\u6790"}),(0,i.jsx)(n.td,{children:"3"}),(0,i.jsx)(n.td,{children:"\u591a\u8f6e\u95ee\u7b54\uff0cCLI \u63a2\u7d22\uff0c\u6587\u6863\u5316\u8ba8\u8bba"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"brainstorm-with-file",children:"brainstorm-with-file"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u591a\u89c6\u89d2\u521b\u610f\u751f\u6210\u4e0e\u6587\u6863\u5316\u63a2\u7d22"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm-with-file "\u901a\u77e5\u7cfb\u7edf\u91cd\u65b0\u8bbe\u8ba1"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa\u76ee\u5f55"}),": ",(0,i.jsx)(n.code,{children:".workflow/.brainstorm/"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u7279\u6027"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u53d1\u6563-\u6536\u655b\u5faa\u73af"}),"\n",(0,i.jsx)(n.li,{children:"\u591a CLI \u89c6\u89d2 (Gemini, Codex, Claude)"}),"\n",(0,i.jsx)(n.li,{children:"\u5185\u7f6e\u5b8c\u6210\u540e\u9009\u9879 (\u521b\u5efa\u89c4\u5212\u3001\u95ee\u9898\u3001\u6df1\u5ea6\u5206\u6790)"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"debug-with-file",children:"debug-with-file"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5\u4e0e\u6587\u6863\u5316\u8c03\u67e5"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:debug-with-file "\u7cfb\u7edf\u5728\u8d1f\u8f7d\u4e0b\u968f\u673a\u5d29\u6e83"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa\u76ee\u5f55"}),": ",(0,i.jsx)(n.code,{children:".workflow/.debug/"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u7279\u6027"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u5047\u8bbe\u9a71\u52a8\u8fed\u4ee3"}),"\n",(0,i.jsx)(n.li,{children:"Gemini \u5047\u8bbe\u9a8c\u8bc1"}),"\n",(0,i.jsx)(n.li,{children:"\u7406\u89e3\u6f14\u8fdb\u8ddf\u8e2a"}),"\n",(0,i.jsx)(n.li,{children:"NDJSON \u65e5\u5fd7\u7528\u4e8e\u53ef\u590d\u73b0\u6027"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"analyze-with-file",children:"analyze-with-file"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u534f\u4f5c\u5206\u6790\u4e0e\u6587\u6863\u5316\u8ba8\u8bba"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:analyze-with-file "\u7406\u89e3\u8ba4\u8bc1\u67b6\u6784\u8bbe\u8ba1\u51b3\u7b56"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa\u76ee\u5f55"}),": ",(0,i.jsx)(n.code,{children:".workflow/.analysis/"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u7279\u6027"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u591a\u8f6e\u95ee\u7b54"}),"\n",(0,i.jsx)(n.li,{children:"CLI \u63a2\u7d22\u96c6\u6210"}),"\n",(0,i.jsx)(n.li,{children:"\u6587\u6863\u5316\u8ba8\u8bba\u7ebf\u7a0b"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u68c0\u6d4b\u5173\u952e\u8bcd",children:"\u68c0\u6d4b\u5173\u952e\u8bcd"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(n.th,{children:"\u5173\u952e\u8bcd"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"brainstorm"})}),(0,i.jsx)(n.td,{children:"\u5934\u8111\u98ce\u66b4, \u521b\u610f, \u53d1\u6563\u601d\u7ef4, multi-perspective, compare perspectives, \u63a2\u7d22\u53ef\u80fd"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"debug-file"})}),(0,i.jsx)(n.td,{children:"\u6df1\u5ea6\u8c03\u8bd5, \u5047\u8bbe\u9a8c\u8bc1, systematic debug, hypothesis debug, \u8c03\u8bd5\u8bb0\u5f55"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"analyze-file"})}),(0,i.jsx)(n.td,{children:"\u534f\u4f5c\u5206\u6790, \u6df1\u5ea6\u7406\u89e3, collaborative analysis, explore concept, \u7406\u89e3\u67b6\u6784"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u5bf9\u6bd4-\u6587\u6863\u5316-vs-\u6807\u51c6\u5de5\u4f5c\u6d41",children:"\u5bf9\u6bd4: \u6587\u6863\u5316 vs \u6807\u51c6\u5de5\u4f5c\u6d41"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u65b9\u9762"}),(0,i.jsx)(n.th,{children:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41"}),(0,i.jsx)(n.th,{children:"\u6807\u51c6\u5de5\u4f5c\u6d41"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6587\u6863"})}),(0,i.jsx)(n.td,{children:"\u6f14\u8fdb\u5f0f\u6587\u6863"}),(0,i.jsx)(n.td,{children:"\u4f1a\u8bdd\u4ea7\u7269"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u591a CLI"})}),(0,i.jsx)(n.td,{children:"\u5185\u7f6e (Gemini/Codex/Claude)"}),(0,i.jsx)(n.td,{children:"\u53ef\u9009"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u8fed\u4ee3"})}),(0,i.jsx)(n.td,{children:"\u81ea\u5305\u542b\u5faa\u73af"}),(0,i.jsx)(n.td,{children:"\u624b\u52a8\u7ee7\u7eed"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u5b8c\u6210\u540e\u9009\u9879"})}),(0,i.jsx)(n.td,{children:"\u5185\u7f6e\u9009\u9879"}),(0,i.jsx)(n.td,{children:"\u624b\u52a8\u4e0b\u4e00\u6b65"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6700\u9002\u5408"})}),(0,i.jsx)(n.td,{children:"\u6587\u6863\u5316\u63a2\u7d22"}),(0,i.jsx)(n.td,{children:"\u7ed3\u6784\u5316\u6267\u884c"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u5c42\u7ea7-4-\u603b\u7ed3",children:"\u5c42\u7ea7 4 \u603b\u7ed3"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u65b9\u9762"}),(0,i.jsx)(n.th,{children:"\u503c"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"})}),(0,i.jsx)(n.td,{children:"\u9ad8"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u4ea7\u7269"})}),(0,i.jsx)(n.td,{children:"\u591a\u89d2\u8272\u5206\u6790 + \u4f1a\u8bdd"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u89c4\u5212"})}),(0,i.jsx)(n.td,{children:"\u591a\u89c6\u89d2\u6536\u655b"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6267\u884c"})}),(0,i.jsx)(n.td,{children:"\u6807\u51c6\u5c42\u7ea7 3 \u6267\u884c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6700\u9002\u5408"})}),(0,i.jsx)(n.td,{children:"\u590d\u6742\u63a2\u7d22\u6027\u4efb\u52a1"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u76f8\u5173\u5de5\u4f5c\u6d41",children:"\u76f8\u5173\u5de5\u4f5c\u6d41"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u5c42\u7ea7 3: \u6807\u51c6"})," - \u6807\u51c6\u89c4\u5212\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"\u5c42\u7ea7 5: \u667a\u80fd"})," - \u81ea\u52a8\u7f16\u6392"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"FAQ"})," - \u5e38\u89c1\u95ee\u9898"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u547d\u4ee4\u53c2\u8003",children:"\u547d\u4ee4\u53c2\u8003"}),"\n",(0,i.jsxs)(n.p,{children:["\u53c2\u89c1 ",(0,i.jsx)(n.a,{href:"../commands/general/ccw.mdx",children:"\u547d\u4ee4\u6587\u6863"})," \u4e86\u89e3:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:brainstorm:auto-parallel"})," - \u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:brainstorm-with-file"})," - \u6587\u6863\u5316\u521b\u610f\u751f\u6210"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:debug-with-file"})," - \u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:analyze-with-file"})," - \u534f\u4f5c\u5206\u6790"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(j,{...e})}):j(e)}}}]); \ No newline at end of file +"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[366],{1184(e,n,s){s.d(n,{R:()=>d,x:()=>c});var l=s(3696);const i={},r=l.createContext(i);function d(e){const n=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),l.createElement(r.Provider,{value:n},e.children)}},5467(e,n,s){s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>t,default:()=>o,frontMatter:()=>c,metadata:()=>l,toc:()=>x});const l=JSON.parse('{"id":"workflows/level-4-brainstorm","title":"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41","description":"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41 - \u534f\u4f5c\u63a2\u7d22\u548c\u521b\u610f\u751f\u6210","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-4-brainstorm.mdx","sourceDirName":"workflows","slug":"/workflows/level-4-brainstorm","permalink":"/docs/zh/workflows/level-4-brainstorm","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/level-4-brainstorm.mdx","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41","description":"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41 - \u534f\u4f5c\u63a2\u7d22\u548c\u521b\u610f\u751f\u6210","sidebar_position":5},"sidebar":"docs","previous":{"title":"Level 3: Standard","permalink":"/docs/zh/workflows/level-3-standard"},"next":{"title":"Level 5: Intelligent","permalink":"/docs/zh/workflows/level-5-intelligent"}}');var i=s(2540),r=s(1184),d=s(1540);const c={title:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41",description:"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41 - \u534f\u4f5c\u63a2\u7d22\u548c\u521b\u610f\u751f\u6210",sidebar_position:5},t="\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41",h={},x=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:2},{value:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41: brainstorm",id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-brainstorm",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4",level:3},{value:"\u6d41\u7a0b\u56fe",id:"\u6d41\u7a0b\u56fe",level:3},{value:"\u7279\u6027",id:"\u7279\u6027",level:3},{value:"\u6d41\u7a0b\u9636\u6bb5",id:"\u6d41\u7a0b\u9636\u6bb5",level:3},{value:"\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210",id:"\u9636\u6bb5-1-\u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210",level:4},{value:"\u9636\u6bb5 2: \u5e76\u884c\u89d2\u8272\u5206\u6790",id:"\u9636\u6bb5-2-\u5e76\u884c\u89d2\u8272\u5206\u6790",level:4},{value:"\u9636\u6bb5 3: \u7efc\u5408\u6574\u5408",id:"\u9636\u6bb5-3-\u7efc\u5408\u6574\u5408",level:4},{value:"\u53ef\u7528\u89d2\u8272",id:"\u53ef\u7528\u89d2\u8272",level:3},{value:"\u4ea7\u7269\u7ed3\u6784",id:"\u4ea7\u7269\u7ed3\u6784",level:3},{value:"\u4f7f\u7528\u573a\u666f",id:"\u4f7f\u7528\u573a\u666f",level:3},{value:"\u4f55\u65f6\u4f7f\u7528",id:"\u4f55\u65f6\u4f7f\u7528",level:4},{value:"\u4f55\u65f6\u4e0d\u4f7f\u7528",id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",level:4},{value:"\u793a\u4f8b",id:"\u793a\u4f8b",level:3},{value:"\u793a\u4f8b 1: \u67b6\u6784\u8bbe\u8ba1",id:"\u793a\u4f8b-1-\u67b6\u6784\u8bbe\u8ba1",level:4},{value:"\u793a\u4f8b 2: \u529f\u80fd\u63a2\u7d22",id:"\u793a\u4f8b-2-\u529f\u80fd\u63a2\u7d22",level:4},{value:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41 (With-File)",id:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41-with-file",level:2},{value:"brainstorm-with-file",id:"brainstorm-with-file",level:3},{value:"debug-with-file",id:"debug-with-file",level:3},{value:"analyze-with-file",id:"analyze-with-file",level:3},{value:"\u68c0\u6d4b\u5173\u952e\u8bcd",id:"\u68c0\u6d4b\u5173\u952e\u8bcd",level:2},{value:"\u5bf9\u6bd4: \u6587\u6863\u5316 vs \u6807\u51c6\u5de5\u4f5c\u6d41",id:"\u5bf9\u6bd4-\u6587\u6863\u5316-vs-\u6807\u51c6\u5de5\u4f5c\u6d41",level:2},{value:"\u5c42\u7ea7 4 \u603b\u7ed3",id:"\u5c42\u7ea7-4-\u603b\u7ed3",level:2},{value:"\u76f8\u5173\u5de5\u4f5c\u6d41",id:"\u76f8\u5173\u5de5\u4f5c\u6d41",level:2},{value:"\u547d\u4ee4\u53c2\u8003",id:"\u547d\u4ee4\u53c2\u8003",level:2}];function j(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u5c42\u7ea7-4-\u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41",children:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4\u5de5\u4f5c\u6d41"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"}),": \u9ad8 | ",(0,i.jsx)(n.strong,{children:"\u4ea7\u7269"}),": \u591a\u89d2\u8272\u5206\u6790\u6587\u6863 | ",(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u6570"}),": 3-9 | ",(0,i.jsx)(n.strong,{children:"\u6267\u884c"}),": \u9636\u6bb5 1/3 \u4e32\u884c\uff0c\u9636\u6bb5 2 \u5e76\u884c"]}),"\n",(0,i.jsx)(n.p,{children:"\u5c42\u7ea7 4 \u5de5\u4f5c\u6d41\u63d0\u4f9b\u5b8c\u6574\u7684\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\uff0c\u5305\u542b\u5b8c\u6574\u7684\u89c4\u5212\u548c\u6267\u884c\u80fd\u529b\u3002\u4e13\u4e3a\u63a2\u7d22\u6027\u9700\u6c42\u3001\u4e0d\u786e\u5b9a\u7684\u5b9e\u73b0\u65b9\u6848\u4ee5\u53ca\u591a\u7ef4\u5ea6\u7684\u6743\u8861\u5206\u6790\u800c\u8bbe\u8ba1\u3002"}),"\n",(0,i.jsx)(n.h2,{id:"\u6982\u8ff0",children:"\u6982\u8ff0"}),"\n",(0,i.jsx)(d.A,{chart:"\n flowchart TD\n Start([\u7528\u6237\u8f93\u5165]) --\x3e BS[brainstorm:auto-parallel]\n BS --\x3e P1[\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f
\u6846\u67b6\u751f\u6210]\n P1 --\x3e P2[\u9636\u6bb5 2: \u5e76\u884c
\u89d2\u8272\u5206\u6790]\n P2 --\x3e P3[\u9636\u6bb5 3: \u7efc\u5408
\u6574\u5408]\n\n P3 --\x3e Plan{\u9700\u8981\u8be6\u7ec6
\u89c4\u5212?}\n Plan --\x3e|\u662f| Verify[plan-verify]\n Plan --\x3e|\u5426| Execute[execute]\n Verify --\x3e Execute\n\n Execute --\x3e Review{\u9700\u8981\u8bc4\u5ba1?}\n Review --\x3e|\u662f| Rev[review-session-cycle]\n Review --\x3e|\u5426| Test{\u9700\u8981\u6d4b\u8bd5?}\n Rev --\x3e RevFix[review-cycle-fix]\n RevFix --\x3e Test\n\n Test --\x3e|\u662f| TFG[test-fix-gen]\n Test --\x3e|\u5426| Complete([session:complete])\n\n TFG --\x3e TCE[test-cycle-execute]\n TCE --\x3e Complete\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef workflow fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef execute fill:#c5e1a5,stroke:#388e3c\n\n class Start,Complete startend,Plan,Review,Test decision,BS,Verify,Rev,RevFix,TFG,TCE workflow,P1,P2,P3,Execute execute\n"}),"\n",(0,i.jsxs)(n.h2,{id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41-brainstorm",children:["\u5305\u542b\u7684\u5de5\u4f5c\u6d41: brainstorm",":auto-parallel"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4 + \u5b8c\u6574\u89c4\u5212 + \u6267\u884c"})}),"\n",(0,i.jsx)(n.h3,{id:"\u547d\u4ee4",children:"\u547d\u4ee4"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:auto-parallel "\u5b9e\u65f6\u901a\u77e5\u7cfb\u7edf\u67b6\u6784\u8bbe\u8ba1" [--count N] [--style-skill package]\n/workflow:plan --session {sessionId}\n/workflow:plan-verify\n/workflow:execute\n'})}),"\n",(0,i.jsx)(n.h3,{id:"\u6d41\u7a0b\u56fe",children:"\u6d41\u7a0b\u56fe"}),"\n",(0,i.jsx)(d.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B[\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f
\u6846\u67b6\u751f\u6210]\n B --\x3e C[/workflow:brainstorm:artifacts/]\n\n C --\x3e D[\u4e3b\u9898\u5206\u6790
\u751f\u6210\u95ee\u9898]\n D --\x3e E[\u89d2\u8272\u9009\u62e9
\u7528\u6237\u786e\u8ba4]\n E --\x3e F[\u89d2\u8272\u95ee\u9898\u6536\u96c6]\n F --\x3e G[\u51b2\u7a81\u68c0\u6d4b
\u4e0e\u89e3\u51b3]\n G --\x3e H[\u751f\u6210 guidance-
specification.md]\n\n H --\x3e I[\u9636\u6bb5 2: \u5e76\u884c\u89d2\u8272\u5206\u6790]\n\n I --\x3e J1[N \u4e2a Task
conceptual-planning-
agent]\n J1 --\x3e K1{\u89d2\u8272 1}\n J1 --\x3e K2{\u89d2\u8272 2}\n J1 --\x3e K3{\u89d2\u8272 3}\n J1 --\x3e K4{\u89d2\u8272 N}\n\n K1 --\x3e L1[\u72ec\u7acb\u5206\u6790]\n K2 --\x3e L2[\u72ec\u7acb\u5206\u6790]\n K3 --\x3e L3[\u72ec\u7acb\u5206\u6790]\n K4 --\x3e L4[\u72ec\u7acb\u5206\u6790]\n\n L1 --\x3e M[\u5e76\u884c\u751f\u6210
{role}/analysis.md]\n L2 --\x3e M\n L3 --\x3e M\n L4 --\x3e M\n\n M --\x3e N[\u9636\u6bb5 3: \u7efc\u5408\u6574\u5408]\n N --\x3e O[/workflow:brainstorm:
synthesis/]\n O --\x3e P[\u6574\u5408\u6240\u6709\u89d2\u8272
\u5206\u6790]\n P --\x3e Q[\u7efc\u5408\u4e3a
synthesis-specification.md]\n\n Q --\x3e R([\u5934\u8111\u98ce\u66b4\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef action fill:#e3f2fd,stroke:#1976d2\n classDef phase fill:#fff9c4,stroke:#f57c00\n classDef parallel fill:#ffecb3,stroke:#ffa000\n\n class A,R startend,B,C,H,N,O,P,Q action,D,E,F,G,J1,K1,K2,K3,K4,L1,L2,L3,L4,M phase\n"}),"\n",(0,i.jsx)(n.h3,{id:"\u7279\u6027",children:"\u7279\u6027"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u5c5e\u6027"}),(0,i.jsx)(n.th,{children:"\u503c"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"})}),(0,i.jsx)(n.td,{children:"\u9ad8"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u4ea7\u7269"})}),(0,i.jsxs)(n.td,{children:["\u591a\u89d2\u8272\u5206\u6790\u6587\u6863 + ",(0,i.jsx)(n.code,{children:"IMPL_PLAN.md"})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u6570\u91cf"})}),(0,i.jsx)(n.td,{children:"3-9 (\u9ed8\u8ba4 3)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6267\u884c\u6a21\u5f0f"})}),(0,i.jsx)(n.td,{children:"\u9636\u6bb5 1/3 \u4e32\u884c\uff0c\u9636\u6bb5 2 \u5e76\u884c"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"\u6d41\u7a0b\u9636\u6bb5",children:"\u6d41\u7a0b\u9636\u6bb5"}),"\n",(0,i.jsx)(n.h4,{id:"\u9636\u6bb5-1-\u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210",children:"\u9636\u6bb5 1: \u4ea4\u4e92\u5f0f\u6846\u67b6\u751f\u6210"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:artifacts "\u5b9e\u65f6\u901a\u77e5\u7cfb\u7edf\u67b6\u6784\u8bbe\u8ba1"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6b65\u9aa4"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u4e3b\u9898\u5206\u6790"})," - \u5206\u6790\u4e3b\u9898\uff0c\u751f\u6210\u5173\u952e\u95ee\u9898"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u9009\u62e9"})," - \u7528\u6237\u786e\u8ba4\u89d2\u8272\u9009\u62e9"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272\u95ee\u9898\u5206\u914d"})," - \u4e3a\u89d2\u8272\u5206\u914d\u95ee\u9898"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u51b2\u7a81\u68c0\u6d4b"})," - \u68c0\u6d4b\u5e76\u89e3\u51b3\u89d2\u8272\u51b2\u7a81"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u751f\u6210\u6846\u67b6"})," - \u521b\u5efa ",(0,i.jsx)(n.code,{children:"guidance-specification.md"})]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u9636\u6bb5-2-\u5e76\u884c\u89d2\u8272\u5206\u6790",children:"\u9636\u6bb5 2: \u5e76\u884c\u89d2\u8272\u5206\u6790"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'# \u5e76\u884c\u6267\u884c N \u4e2a conceptual-planning-agent \u4efb\u52a1\nTask(subagent_type: "conceptual-planning-agent", prompt: "Role: {role}, Topic: {topic}, Questions: {questions}")\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6bcf\u4e2a\u89d2\u8272"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u63a5\u6536\u7279\u5b9a\u89d2\u8272\u7684\u6307\u5bfc"}),"\n",(0,i.jsx)(n.li,{children:"\u72ec\u7acb\u5206\u6790\u4e3b\u9898"}),"\n",(0,i.jsxs)(n.li,{children:["\u751f\u6210 ",(0,i.jsx)(n.code,{children:"{role}/analysis.md"})]}),"\n",(0,i.jsx)(n.li,{children:"\u53ef\u9009: \u5b50\u6587\u6863 (\u6700\u591a 5 \u4e2a)"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u9636\u6bb5-3-\u7efc\u5408\u6574\u5408",children:"\u9636\u6bb5 3: \u7efc\u5408\u6574\u5408"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"/workflow:brainstorm:synthesis --session {sessionId}\n"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6b65\u9aa4"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u6536\u96c6"})," \u6240\u6709\u89d2\u8272\u5206\u6790"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u6574\u5408"})," \u89c6\u89d2\u5230\u7efc\u5408\u6587\u6863"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u751f\u6210"})," ",(0,i.jsx)(n.code,{children:"synthesis-specification.md"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u8bc6\u522b"})," \u5173\u952e\u51b3\u7b56\u548c\u6743\u8861\u70b9"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"\u53ef\u7528\u89d2\u8272",children:"\u53ef\u7528\u89d2\u8272"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u89d2\u8272"}),(0,i.jsx)(n.th,{children:"\u63cf\u8ff0"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"system-architect"})}),(0,i.jsx)(n.td,{children:"\u7cfb\u7edf\u67b6\u6784\u5e08 - \u6574\u4f53\u7cfb\u7edf\u8bbe\u8ba1"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ui-designer"})}),(0,i.jsx)(n.td,{children:"UI \u8bbe\u8ba1\u5e08 - \u7528\u6237\u754c\u9762\u8bbe\u8ba1"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"ux-expert"})}),(0,i.jsx)(n.td,{children:"UX \u4e13\u5bb6 - \u7528\u6237\u4f53\u9a8c\u4f18\u5316"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"product-manager"})}),(0,i.jsx)(n.td,{children:"\u4ea7\u54c1\u7ecf\u7406 - \u4ea7\u54c1\u9700\u6c42"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"product-owner"})}),(0,i.jsx)(n.td,{children:"\u4ea7\u54c1\u8d1f\u8d23\u4eba - \u4e1a\u52a1\u4ef7\u503c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"data-architect"})}),(0,i.jsx)(n.td,{children:"\u6570\u636e\u67b6\u6784\u5e08 - \u6570\u636e\u7ed3\u6784\u8bbe\u8ba1"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"scrum-master"})}),(0,i.jsx)(n.td,{children:"Scrum \u4e3b\u7ba1 - \u6d41\u7a0b\u548c\u56e2\u961f"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"subject-matter-expert"})}),(0,i.jsx)(n.td,{children:"\u9886\u57df\u4e13\u5bb6 - \u4e13\u4e1a\u9886\u57df\u77e5\u8bc6"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"test-strategist"})}),(0,i.jsx)(n.td,{children:"\u6d4b\u8bd5\u7b56\u7565\u5e08 - \u6d4b\u8bd5\u7b56\u7565"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"\u4ea7\u7269\u7ed3\u6784",children:"\u4ea7\u7269\u7ed3\u6784"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:".workflow/active/WFS-realtime-notifications/\n\u251c\u2500\u2500 workflow-session.json\n\u2514\u2500\u2500 .brainstorming/\n \u251c\u2500\u2500 guidance-specification.md # \u6846\u67b6 (\u9636\u6bb5 1)\n \u251c\u2500\u2500 system-architect/\n \u2502 \u251c\u2500\u2500 analysis.md # \u4e3b\u6587\u6863\n \u2502 \u2514\u2500\u2500 analysis-scale-{}.md # \u5b50\u6587\u6863 (\u53ef\u9009\uff0c\u6700\u591a 5 \u4e2a)\n \u251c\u2500\u2500 ux-expert/\n \u2502 \u251c\u2500\u2500 analysis.md\n \u2502 \u2514\u2500\u2500 analysis-accessibility.md\n \u251c\u2500\u2500 data-architect/\n \u2502 \u251c\u2500\u2500 analysis.md\n \u2502 \u2514\u2500\u2500 analysis-storage.md\n \u2514\u2500\u2500 synthesis-specification.md # \u6574\u5408 (\u9636\u6bb5 3)\n"})}),"\n",(0,i.jsx)(n.h3,{id:"\u4f7f\u7528\u573a\u666f",children:"\u4f7f\u7528\u573a\u666f"}),"\n",(0,i.jsx)(n.h4,{id:"\u4f55\u65f6\u4f7f\u7528",children:"\u4f55\u65f6\u4f7f\u7528"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u65b0\u529f\u80fd\u8bbe\u8ba1"}),"\n",(0,i.jsx)(n.li,{children:"\u7cfb\u7edf\u67b6\u6784\u91cd\u6784"}),"\n",(0,i.jsx)(n.li,{children:"\u63a2\u7d22\u6027\u9700\u6c42"}),"\n",(0,i.jsx)(n.li,{children:"\u4e0d\u786e\u5b9a\u7684\u5b9e\u73b0\u65b9\u6848"}),"\n",(0,i.jsx)(n.li,{children:"\u9700\u8981\u591a\u7ef4\u5ea6\u6743\u8861\u5206\u6790"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u4f55\u65f6\u4e0d\u4f7f\u7528",children:"\u4f55\u65f6\u4e0d\u4f7f\u7528"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u9700\u6c42\u660e\u786e (\u4f7f\u7528\u5c42\u7ea7 2-3)"}),"\n",(0,i.jsx)(n.li,{children:"\u65f6\u95f4\u654f\u611f\u4efb\u52a1 (\u4f7f\u7528\u5c42\u7ea7 2)"}),"\n",(0,i.jsx)(n.li,{children:"\u5355\u4e00\u89c6\u89d2\u8db3\u591f (\u4f7f\u7528\u5c42\u7ea7 2-3)"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"\u793a\u4f8b",children:"\u793a\u4f8b"}),"\n",(0,i.jsx)(n.h4,{id:"\u793a\u4f8b-1-\u67b6\u6784\u8bbe\u8ba1",children:"\u793a\u4f8b 1: \u67b6\u6784\u8bbe\u8ba1"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:auto-parallel "\u7535\u5546\u5e73\u53f0\u5fae\u670d\u52a1\u67b6\u6784" --count 5\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272"}),": system-architect, data-architect, ux-expert, product-manager, test-strategist"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u591a\u4e2a\u67b6\u6784\u89c6\u89d2"}),"\n",(0,i.jsx)(n.li,{children:"\u6570\u636e\u6d41\u8003\u8651"}),"\n",(0,i.jsx)(n.li,{children:"\u7528\u6237\u4f53\u9a8c\u5f71\u54cd"}),"\n",(0,i.jsx)(n.li,{children:"\u4e1a\u52a1\u9700\u6c42\u5bf9\u9f50"}),"\n",(0,i.jsx)(n.li,{children:"\u6d4b\u8bd5\u7b56\u7565\u5efa\u8bae"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"\u793a\u4f8b-2-\u529f\u80fd\u63a2\u7d22",children:"\u793a\u4f8b 2: \u529f\u80fd\u63a2\u7d22"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm:auto-parallel "AI \u9a71\u52a8\u63a8\u8350\u7cfb\u7edf" --count 3\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u89d2\u8272"}),": system-architect, product-manager, subject-matter-expert"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u6280\u672f\u53ef\u884c\u6027\u5206\u6790"}),"\n",(0,i.jsx)(n.li,{children:"\u4e1a\u52a1\u4ef7\u503c\u8bc4\u4f30"}),"\n",(0,i.jsx)(n.li,{children:"\u9886\u57df\u7279\u5b9a\u8003\u91cf"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41-with-file",children:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41 (With-File)"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41"})," \u63d0\u4f9b\u5e26\u6709\u591a CLI \u534f\u4f5c\u7684\u6587\u6863\u5316\u63a2\u7d22\u3002\u5b83\u4eec\u662f\u81ea\u5305\u542b\u7684\uff0c\u751f\u6210\u5168\u9762\u7684\u4f1a\u8bdd\u4ea7\u7269\u3002"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(n.th,{children:"\u7528\u9014"}),(0,i.jsx)(n.th,{children:"\u5c42\u7ea7"}),(0,i.jsx)(n.th,{children:"\u4e3b\u8981\u7279\u6027"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"brainstorm-with-file"})}),(0,i.jsx)(n.td,{children:"\u591a\u89c6\u89d2\u521b\u610f\u751f\u6210"}),(0,i.jsx)(n.td,{children:"4"}),(0,i.jsx)(n.td,{children:"Gemini/Codex/Claude \u89c6\u89d2\uff0c\u53d1\u6563-\u6536\u655b\u5faa\u73af"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"debug-with-file"})}),(0,i.jsx)(n.td,{children:"\u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5"}),(0,i.jsx)(n.td,{children:"3"}),(0,i.jsx)(n.td,{children:"Gemini \u9a8c\u8bc1\uff0c\u7406\u89e3\u6f14\u8fdb\uff0cNDJSON \u65e5\u5fd7"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"analyze-with-file"})}),(0,i.jsx)(n.td,{children:"\u534f\u4f5c\u5206\u6790"}),(0,i.jsx)(n.td,{children:"3"}),(0,i.jsx)(n.td,{children:"\u591a\u8f6e\u95ee\u7b54\uff0cCLI \u63a2\u7d22\uff0c\u6587\u6863\u5316\u8ba8\u8bba"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"brainstorm-with-file",children:"brainstorm-with-file"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u591a\u89c6\u89d2\u521b\u610f\u751f\u6210\u4e0e\u6587\u6863\u5316\u63a2\u7d22"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:brainstorm-with-file "\u901a\u77e5\u7cfb\u7edf\u91cd\u65b0\u8bbe\u8ba1"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa\u76ee\u5f55"}),": ",(0,i.jsx)(n.code,{children:".workflow/.brainstorm/"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u7279\u6027"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u53d1\u6563-\u6536\u655b\u5faa\u73af"}),"\n",(0,i.jsx)(n.li,{children:"\u591a CLI \u89c6\u89d2 (Gemini, Codex, Claude)"}),"\n",(0,i.jsx)(n.li,{children:"\u5185\u7f6e\u5b8c\u6210\u540e\u9009\u9879 (\u521b\u5efa\u89c4\u5212\u3001\u95ee\u9898\u3001\u6df1\u5ea6\u5206\u6790)"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"debug-with-file",children:"debug-with-file"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5\u4e0e\u6587\u6863\u5316\u8c03\u67e5"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:debug-with-file "\u7cfb\u7edf\u5728\u8d1f\u8f7d\u4e0b\u968f\u673a\u5d29\u6e83"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa\u76ee\u5f55"}),": ",(0,i.jsx)(n.code,{children:".workflow/.debug/"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u7279\u6027"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u5047\u8bbe\u9a71\u52a8\u8fed\u4ee3"}),"\n",(0,i.jsx)(n.li,{children:"Gemini \u5047\u8bbe\u9a8c\u8bc1"}),"\n",(0,i.jsx)(n.li,{children:"\u7406\u89e3\u6f14\u8fdb\u8ddf\u8e2a"}),"\n",(0,i.jsx)(n.li,{children:"NDJSON \u65e5\u5fd7\u7528\u4e8e\u53ef\u590d\u73b0\u6027"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"analyze-with-file",children:"analyze-with-file"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\u534f\u4f5c\u5206\u6790\u4e0e\u6587\u6863\u5316\u8ba8\u8bba"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'/workflow:analyze-with-file "\u7406\u89e3\u8ba4\u8bc1\u67b6\u6784\u8bbe\u8ba1\u51b3\u7b56"\n'})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u8f93\u51fa\u76ee\u5f55"}),": ",(0,i.jsx)(n.code,{children:".workflow/.analysis/"})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\u7279\u6027"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u591a\u8f6e\u95ee\u7b54"}),"\n",(0,i.jsx)(n.li,{children:"CLI \u63a2\u7d22\u96c6\u6210"}),"\n",(0,i.jsx)(n.li,{children:"\u6587\u6863\u5316\u8ba8\u8bba\u7ebf\u7a0b"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u68c0\u6d4b\u5173\u952e\u8bcd",children:"\u68c0\u6d4b\u5173\u952e\u8bcd"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u5de5\u4f5c\u6d41"}),(0,i.jsx)(n.th,{children:"\u5173\u952e\u8bcd"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"brainstorm"})}),(0,i.jsx)(n.td,{children:"\u5934\u8111\u98ce\u66b4, \u521b\u610f, \u53d1\u6563\u601d\u7ef4, multi-perspective, compare perspectives, \u63a2\u7d22\u53ef\u80fd"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"debug-file"})}),(0,i.jsx)(n.td,{children:"\u6df1\u5ea6\u8c03\u8bd5, \u5047\u8bbe\u9a8c\u8bc1, systematic debug, hypothesis debug, \u8c03\u8bd5\u8bb0\u5f55"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"analyze-file"})}),(0,i.jsx)(n.td,{children:"\u534f\u4f5c\u5206\u6790, \u6df1\u5ea6\u7406\u89e3, collaborative analysis, explore concept, \u7406\u89e3\u67b6\u6784"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u5bf9\u6bd4-\u6587\u6863\u5316-vs-\u6807\u51c6\u5de5\u4f5c\u6d41",children:"\u5bf9\u6bd4: \u6587\u6863\u5316 vs \u6807\u51c6\u5de5\u4f5c\u6d41"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u65b9\u9762"}),(0,i.jsx)(n.th,{children:"\u6587\u6863\u5316\u5de5\u4f5c\u6d41"}),(0,i.jsx)(n.th,{children:"\u6807\u51c6\u5de5\u4f5c\u6d41"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6587\u6863"})}),(0,i.jsx)(n.td,{children:"\u6f14\u8fdb\u5f0f\u6587\u6863"}),(0,i.jsx)(n.td,{children:"\u4f1a\u8bdd\u4ea7\u7269"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u591a CLI"})}),(0,i.jsx)(n.td,{children:"\u5185\u7f6e (Gemini/Codex/Claude)"}),(0,i.jsx)(n.td,{children:"\u53ef\u9009"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u8fed\u4ee3"})}),(0,i.jsx)(n.td,{children:"\u81ea\u5305\u542b\u5faa\u73af"}),(0,i.jsx)(n.td,{children:"\u624b\u52a8\u7ee7\u7eed"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u5b8c\u6210\u540e\u9009\u9879"})}),(0,i.jsx)(n.td,{children:"\u5185\u7f6e\u9009\u9879"}),(0,i.jsx)(n.td,{children:"\u624b\u52a8\u4e0b\u4e00\u6b65"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6700\u9002\u5408"})}),(0,i.jsx)(n.td,{children:"\u6587\u6863\u5316\u63a2\u7d22"}),(0,i.jsx)(n.td,{children:"\u7ed3\u6784\u5316\u6267\u884c"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u5c42\u7ea7-4-\u603b\u7ed3",children:"\u5c42\u7ea7 4 \u603b\u7ed3"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"\u65b9\u9762"}),(0,i.jsx)(n.th,{children:"\u503c"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"})}),(0,i.jsx)(n.td,{children:"\u9ad8"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u4ea7\u7269"})}),(0,i.jsx)(n.td,{children:"\u591a\u89d2\u8272\u5206\u6790 + \u4f1a\u8bdd"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u89c4\u5212"})}),(0,i.jsx)(n.td,{children:"\u591a\u89c6\u89d2\u6536\u655b"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6267\u884c"})}),(0,i.jsx)(n.td,{children:"\u6807\u51c6\u5c42\u7ea7 3 \u6267\u884c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"\u6700\u9002\u5408"})}),(0,i.jsx)(n.td,{children:"\u590d\u6742\u63a2\u7d22\u6027\u4efb\u52a1"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u76f8\u5173\u5de5\u4f5c\u6d41",children:"\u76f8\u5173\u5de5\u4f5c\u6d41"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u5c42\u7ea7 3: \u6807\u51c6"})," - \u6807\u51c6\u89c4\u5212\u5de5\u4f5c\u6d41"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"\u5c42\u7ea7 5: \u667a\u80fd"})," - \u81ea\u52a8\u7f16\u6392"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"FAQ"})," - \u5e38\u89c1\u95ee\u9898"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u547d\u4ee4\u53c2\u8003",children:"\u547d\u4ee4\u53c2\u8003"}),"\n",(0,i.jsxs)(n.p,{children:["\u53c2\u89c1 ",(0,i.jsx)(n.a,{href:"/commands/general/ccw",children:"\u547d\u4ee4\u6587\u6863"})," \u4e86\u89e3:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:brainstorm:auto-parallel"})," - \u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:brainstorm-with-file"})," - \u6587\u6863\u5316\u521b\u610f\u751f\u6210"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:debug-with-file"})," - \u5047\u8bbe\u9a71\u52a8\u8c03\u8bd5"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"/workflow:analyze-with-file"})," - \u534f\u4f5c\u5206\u6790"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(j,{...e})}):j(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/8a7e39ed.dcce61e8.js b/ccw/docs-site/build/zh/assets/js/8a7e39ed.b54858fe.js similarity index 78% rename from ccw/docs-site/build/zh/assets/js/8a7e39ed.dcce61e8.js rename to ccw/docs-site/build/zh/assets/js/8a7e39ed.b54858fe.js index c23dfccb..7f281392 100644 --- a/ccw/docs-site/build/zh/assets/js/8a7e39ed.dcce61e8.js +++ b/ccw/docs-site/build/zh/assets/js/8a7e39ed.b54858fe.js @@ -1 +1 @@ -"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[273],{1184(e,n,s){s.d(n,{R:()=>c,x:()=>i});var l=s(3696);const r={},d=l.createContext(r);function c(e){const n=l.useContext(d);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),l.createElement(d.Provider,{value:n},e.children)}},1290(e,n,s){s.r(n),s.d(n,{assets:()=>x,contentTitle:()=>t,default:()=>j,frontMatter:()=>h,metadata:()=>l,toc:()=>o});const l=JSON.parse('{"id":"overview","title":"\u6b22\u8fce\u4f7f\u7528 CCW","description":"CCW \u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316\u5e73\u53f0\uff0c\u7ed3\u5408\u4e86 AI \u9a71\u52a8\u7684\u667a\u80fd\u4e0e\u7ed3\u6784\u5316\u5f00\u53d1\u5de5\u4f5c\u6d41\u3002\u51ed\u501f 40+ \u547d\u4ee4\u548c 15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41\uff0cCCW \u5f7b\u5e95\u6539\u53d8\u4e86\u60a8\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u4ea4\u4ed8\u8f6f\u4ef6\u7684\u65b9\u5f0f\u3002","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/overview.mdx","sourceDirName":".","slug":"/overview","permalink":"/docs/zh/overview","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/overview.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u6b22\u8fce\u4f7f\u7528 CCW","sidebar_label":"\u6982\u89c8","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u9996\u9875","permalink":"/docs/zh/"},"next":{"title":"/ccw","permalink":"/docs/zh/commands/general/ccw"}}');var r=s(2540),d=s(1184),c=s(1540),i=s(2436);const h={title:"\u6b22\u8fce\u4f7f\u7528 CCW",sidebar_label:"\u6982\u89c8",sidebar_position:1},t="\u6b22\u8fce\u4f7f\u7528 CCW",x={},o=[{value:"\u4ec0\u4e48\u662f CCW\uff1f",id:"\u4ec0\u4e48\u662f-ccw",level:2},{value:"\u5feb\u901f\u94fe\u63a5",id:"\u5feb\u901f\u94fe\u63a5",level:2},{value:"\u6838\u5fc3\u529f\u80fd",id:"\u6838\u5fc3\u529f\u80fd",level:2},{value:"40+ \u547d\u4ee4",id:"40-\u547d\u4ee4",level:3},{value:"15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41",id:"15-\u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41",level:3},{value:"AI \u9a71\u52a8\u7684\u667a\u80fd",id:"ai-\u9a71\u52a8\u7684\u667a\u80fd",level:3},{value:"\u4f1a\u8bdd\u7ba1\u7406",id:"\u4f1a\u8bdd\u7ba1\u7406",level:3},{value:"\u5feb\u901f\u5165\u95e8",id:"\u5feb\u901f\u5165\u95e8",level:2},{value:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9",id:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9",level:3},{value:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b",id:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b",level:3},{value:"\u67b6\u6784\u6982\u89c8",id:"\u67b6\u6784\u6982\u89c8",level:2},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2},{value:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6",id:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6",level:3},{value:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22",id:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22",level:3},{value:"\u8bd5\u7528\u4e00\u4e0b",id:"\u8bd5\u7528\u4e00\u4e0b",level:3},{value:"\u652f\u6301",id:"\u652f\u6301",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u6b22\u8fce\u4f7f\u7528-ccw",children:"\u6b22\u8fce\u4f7f\u7528 CCW"})}),"\n",(0,r.jsx)(n.p,{children:"CCW \u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316\u5e73\u53f0\uff0c\u7ed3\u5408\u4e86 AI \u9a71\u52a8\u7684\u667a\u80fd\u4e0e\u7ed3\u6784\u5316\u5f00\u53d1\u5de5\u4f5c\u6d41\u3002\u51ed\u501f 40+ \u547d\u4ee4\u548c 15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41\uff0cCCW \u5f7b\u5e95\u6539\u53d8\u4e86\u60a8\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u4ea4\u4ed8\u8f6f\u4ef6\u7684\u65b9\u5f0f\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u4ec0\u4e48\u662f-ccw",children:"\u4ec0\u4e48\u662f CCW\uff1f"}),"\n",(0,r.jsx)(n.p,{children:"CCW (Claude Code Workflows) \u662f\u4e00\u4e2a\u9ad8\u7ea7\u5f00\u53d1\u73af\u5883\uff0c\u7f16\u6392 AI \u4ee3\u7406\u3001\u5de5\u4f5c\u6d41\u548c\u5de5\u5177\u4ee5\u52a0\u901f\u8f6f\u4ef6\u5f00\u53d1\uff0c\u540c\u65f6\u4fdd\u6301\u8d28\u91cf\u6807\u51c6\u3002"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u6838\u5fc3\u80fd\u529b\uff1a"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"AI \u9a71\u52a8\u5f00\u53d1"})," - \u5229\u7528\u591a\u79cd AI \u6a21\u578b\uff08Gemini\u3001Codex\u3001Claude\u3001Qwen\uff09\u8fdb\u884c\u4ee3\u7801\u5206\u6790\u3001\u751f\u6210\u548c\u5ba1\u67e5"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ed3\u6784\u5316\u5de5\u4f5c\u6d41"})," - \u4ece\u5feb\u901f\u6267\u884c\u5230\u667a\u80fd\u7f16\u6392\u7684 15 \u4e2a\u5de5\u4f5c\u6d41\u7ea7\u522b"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"40+ \u547d\u4ee4"})," - \u8986\u76d6\u89c4\u5212\u3001\u6267\u884c\u3001\u6d4b\u8bd5\u3001\u5ba1\u67e5\u548c\u7ef4\u62a4\u7684\u5168\u9762\u547d\u4ee4\u96c6"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u4f1a\u8bdd\u7ba1\u7406"})," - \u5b8c\u6574\u7684\u72b6\u6001\u6301\u4e45\u5316\uff0c\u652f\u6301\u53ef\u6062\u590d\u7684\u4f1a\u8bdd"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u591a\u4ee3\u7406\u534f\u8c03"})," - \u5177\u6709\u4f9d\u8d56\u611f\u77e5\u4efb\u52a1\u5206\u914d\u7684\u5e76\u884c\u6267\u884c"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u8d28\u91cf\u5173\u5361"})," - \u5185\u7f6e\u7684\u6d4b\u8bd5\u3001\u9a8c\u8bc1\u548c\u4ee3\u7801\u5ba1\u67e5\u5de5\u4f5c\u6d41"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5feb\u901f\u94fe\u63a5",children:"\u5feb\u901f\u94fe\u63a5"}),"\n",(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("div",{className:"col col--4",children:(0,r.jsxs)(i.A,{to:"/workflows/introduction",className:"card padding--lg",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u5de5\u4f5c\u6d41"})}),(0,r.jsx)("div",{className:"card__body",children:(0,r.jsx)("p",{children:"\u63a2\u7d22\u4ece\u5feb\u901f\u6267\u884c\u5230\u667a\u80fd\u7f16\u6392\u7684 15 \u4e2a\u5de5\u4f5c\u6d41\u7ea7\u522b"})})]})}),(0,r.jsx)("div",{className:"col col--4",children:(0,r.jsxs)(i.A,{to:"/commands/general/ccw",className:"card padding--lg",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u547d\u4ee4"})}),(0,r.jsx)("div",{className:"card__body",children:(0,r.jsx)("p",{children:"\u5de5\u4f5c\u6d41\u3001\u95ee\u9898\u3001CLI \u548c\u5185\u5b58\u64cd\u4f5c\u7684\u5b8c\u6574\u547d\u4ee4\u53c2\u8003"})})]})}),(0,r.jsx)("div",{className:"col col--4",children:(0,r.jsxs)(i.A,{to:"/faq",className:"card padding--lg",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u5e38\u89c1\u95ee\u9898"})}),(0,r.jsx)("div",{className:"card__body",children:(0,r.jsx)("p",{children:"\u5e38\u89c1\u95ee\u9898\u3001\u6545\u969c\u6392\u9664\u63d0\u793a\u548c\u6700\u4f73\u5b9e\u8df5"})})]})})]}),"\n",(0,r.jsx)(n.h2,{id:"\u6838\u5fc3\u529f\u80fd",children:"\u6838\u5fc3\u529f\u80fd"}),"\n",(0,r.jsx)(n.h3,{id:"40-\u547d\u4ee4",children:"40+ \u547d\u4ee4"}),"\n",(0,r.jsx)(n.p,{children:"CCW \u63d0\u4f9b\u6309\u7c7b\u522b\u7ec4\u7ec7\u7684\u5168\u9762\u547d\u4ee4\u96c6\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u7c7b\u522b"}),(0,r.jsx)(n.th,{children:"\u547d\u4ee4\u6570"}),(0,r.jsx)(n.th,{children:"\u7528\u9014"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u5de5\u4f5c\u6d41"})}),(0,r.jsx)(n.td,{children:"13 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u89c4\u5212\u3001\u6267\u884c\u3001\u5ba1\u67e5\u3001\u6e05\u7406"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u95ee\u9898"})}),(0,r.jsx)(n.td,{children:"7 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u95ee\u9898\u53d1\u73b0\u3001\u89c4\u5212\u3001\u89e3\u51b3"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"CLI"})}),(0,r.jsx)(n.td,{children:"2 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"CLI \u521d\u59cb\u5316\u548c\u5ba1\u67e5"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u5185\u5b58"})}),(0,r.jsx)(n.td,{children:"6 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u77e5\u8bc6\u7ba1\u7406\u548c\u6587\u6863"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u901a\u7528"})}),(0,r.jsx)(n.td,{children:"7+ \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u534f\u8c03\u3001\u8c03\u8bd5\u3001\u6d41\u7a0b\u521b\u5efa"})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"15-\u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41",children:"15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41"}),"\n",(0,r.jsx)(c.A,{chart:'\n graph TB\n subgraph Main["\u4e3b\u5de5\u4f5c\u6d41 (5 \u4e2a\u7ea7\u522b)"]\n L1["\u7ea7\u522b 1: \u5feb\u901f
lite-lite-lite"]\n L2["\u7ea7\u522b 2: \u8f7b\u91cf\u7ea7
lite-plan, lite-fix, multi-cli-plan"]\n L3["\u7ea7\u522b 3: \u6807\u51c6
plan, tdd-plan, test-fix-gen"]\n L4["\u7ea7\u522b 4: \u5934\u8111\u98ce\u66b4
brainstorm:auto-parallel"]\n L5["\u7ea7\u522b 5: \u667a\u80fd\u5316
ccw-coordinator"]\n L1 --\x3e L2 --\x3e L3 --\x3e L4 --\x3e L5\n end\n\n subgraph Issue["\u95ee\u9898\u5de5\u4f5c\u6d41"]\n I1["\u9636\u6bb5 1: \u79ef\u7d2f"]\n I2["\u9636\u6bb5 2: \u89e3\u51b3"]\n I1 --\x3e I2\n end\n\n Main -.->|\u5f00\u53d1\u540e| Issue\n\n classDef level1 fill:#e3f2fd,stroke:#1976d2\n classDef level2 fill:#bbdefb,stroke:#1976d2\n classDef level3 fill:#90caf9,stroke:#1976d2\n classDef level4 fill:#64b5f6,stroke:#1976d2\n classDef level5 fill:#42a5f5,stroke:#1976d2\n classDef issue fill:#fff3e0,stroke:#f57c00\n\n class L1 level1,L2 level2,L3 level3,L4 level4,L5 level5,I1,I2 issue\n'}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u4e3b\u5de5\u4f5c\u6d41\u7ea7\u522b\uff1a"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 1"}),"\uff1a\u96f6\u5f00\u9500\u7684\u8d85\u8f7b\u91cf\u7ea7\u76f4\u63a5\u6267\u884c"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 2"}),"\uff1a\u8f7b\u91cf\u7ea7\u89c4\u5212 (lite-plan)\u3001\u9519\u8bef\u4fee\u590d (lite-fix)\u3001\u591a CLI \u5206\u6790 (multi-cli-plan)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 3"}),"\uff1a\u6807\u51c6\u89c4\u5212 (plan)\u3001\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1 (tdd-plan)\u3001\u6d4b\u8bd5\u4fee\u590d\u751f\u6210 (test-fix-gen)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 4"}),"\uff1a\u591a\u89d2\u8272\u5e76\u884c\u5206\u6790\u7684\u5934\u8111\u98ce\u66b4"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 5"}),"\uff1a\u81ea\u52a8\u547d\u4ee4\u9009\u62e9\u7684\u667a\u80fd\u7f16\u6392"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u95ee\u9898\u5de5\u4f5c\u6d41\uff1a"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u79ef\u7d2f\u9636\u6bb5"}),"\uff1adiscover\u3001new"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u89e3\u51b3\u9636\u6bb5"}),"\uff1aplan\u3001queue\u3001execute"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"ai-\u9a71\u52a8\u7684\u667a\u80fd",children:"AI \u9a71\u52a8\u7684\u667a\u80fd"}),"\n",(0,r.jsx)(n.p,{children:"CCW \u96c6\u6210\u591a\u79cd AI \u6a21\u578b\u63d0\u4f9b\u667a\u80fd\u8f85\u52a9\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u6a21\u578b"}),(0,r.jsx)(n.th,{children:"\u80fd\u529b"}),(0,r.jsx)(n.th,{children:"\u4f7f\u7528\u573a\u666f"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Gemini"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165"}),(0,r.jsx)(n.td,{children:"\u4ee3\u7801\u5ba1\u67e5\u3001\u8c03\u8bd5\u3001\u91cd\u6784"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Codex"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165 + \u5ba1\u67e5"}),(0,r.jsx)(n.td,{children:"Git \u611f\u77e5\u4ee3\u7801\u5ba1\u67e5\u3001\u5b9e\u73b0"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Claude"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165"}),(0,r.jsx)(n.td,{children:"\u590d\u6742\u63a8\u7406\u3001\u6587\u6863"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Qwen"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165"}),(0,r.jsx)(n.td,{children:"\u4ee3\u7801\u751f\u6210\u3001\u6a21\u5f0f\u5339\u914d"})]})]})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u591a CLI \u534f\u4f5c\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u6bd4\u8f83\u591a\u4e2a AI \u89c6\u89d2\u7684\u89e3\u51b3\u65b9\u6848\r\n/ccw multi-cli-plan "\u6bd4\u8f83 Redis vs RabbitMQ \u7528\u4e8e\u6d88\u606f\u961f\u5217"\n'})}),"\n",(0,r.jsx)(n.h3,{id:"\u4f1a\u8bdd\u7ba1\u7406",children:"\u4f1a\u8bdd\u7ba1\u7406"}),"\n",(0,r.jsx)(n.p,{children:"CCW \u4e3a\u6240\u6709\u5de5\u4f5c\u6d41\u4f1a\u8bdd\u63d0\u4f9b\u5b8c\u6574\u7684\u72b6\u6001\u6301\u4e45\u5316\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u542f\u52a8\u89c4\u5212\u4f1a\u8bdd\r\n/ccw workflow:plan "\u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"\r\n\r\n# \u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd\r\n/ccw workflow:session:resume WFS-user-auth\r\n\r\n# \u5217\u51fa\u6240\u6709\u4f1a\u8bdd\r\n/ccw workflow:session:list\r\n\r\n# \u5b8c\u6210\u5e76\u5f52\u6863\r\n/ccw workflow:session:complete WFS-user-auth\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u4f1a\u8bdd\u7ed3\u6784\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:".workflow/active/WFS-{session}/\r\n\u251c\u2500\u2500 workflow-session.json # \u4f1a\u8bdd\u5143\u6570\u636e\r\n\u251c\u2500\u2500 IMPL_PLAN.md # \u5b9e\u73b0\u8ba1\u5212\r\n\u251c\u2500\u2500 TODO_LIST.md # \u8fdb\u5ea6\u8ddf\u8e2a\r\n\u251c\u2500\u2500 .task/\r\n\u2502 \u251c\u2500\u2500 IMPL-001.json # \u4efb\u52a1\u5b9a\u4e49\r\n\u2502 \u2514\u2500\u2500 ...\r\n\u2514\u2500\u2500 .summaries/\r\n \u251c\u2500\u2500 IMPL-001-summary.md # \u5b8c\u6210\u6458\u8981\r\n \u2514\u2500\u2500 ...\n"})}),"\n",(0,r.jsx)(n.h2,{id:"\u5feb\u901f\u5165\u95e8",children:"\u5feb\u901f\u5165\u95e8"}),"\n",(0,r.jsx)(n.h3,{id:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9",children:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9"}),"\n",(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("div",{className:"col col--6",children:(0,r.jsxs)("div",{className:"card padding--md",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"CCW \u65b0\u624b\uff1f"})}),(0,r.jsxs)("div",{className:"card__body",children:[(0,r.jsxs)("p",{children:["\u4ece ",(0,r.jsx)("strong",{children:"\u7ea7\u522b 1 \u5de5\u4f5c\u6d41"})," \u5f00\u59cb\u5904\u7406\u7b80\u5355\u4efb\u52a1\uff1a"]}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"\u5feb\u901f\u4fee\u590d\u548c\u914d\u7f6e\u8c03\u6574"}),(0,r.jsx)("li",{children:"\u7b80\u5355\u529f\u80fd\u5b9e\u73b0"}),(0,r.jsx)("li",{children:"\u65e0\u89c4\u5212\u5f00\u9500\u7684\u76f4\u63a5\u6267\u884c"})]}),(0,r.jsx)(i.A,{to:"/workflows/level-1-ultra-lightweight",className:"button button--primary button--sm",children:"\u5b66\u4e60\u7ea7\u522b 1"})]})]})}),(0,r.jsx)("div",{className:"col col--6",children:(0,r.jsxs)("div",{className:"card padding--md",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5f00\u53d1\u8005\uff1f"})}),(0,r.jsxs)("div",{className:"card__body",children:[(0,r.jsxs)("p",{children:["\u76f4\u63a5\u8df3\u5230 ",(0,r.jsx)("strong",{children:"\u7ea7\u522b 3 \u5de5\u4f5c\u6d41"})," \u5904\u7406\u590d\u6742\u529f\u80fd\uff1a"]}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"\u591a\u6a21\u5757\u53d8\u66f4"}),(0,r.jsx)("li",{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,r.jsx)("li",{children:"\u5e26\u9a8c\u8bc1\u7684\u5b8c\u6574\u89c4\u5212"})]}),(0,r.jsx)(i.A,{to:"/workflows/level-3-standard",className:"button button--primary button--sm",children:"\u5b66\u4e60\u7ea7\u522b 3"})]})]})})]}),"\n",(0,r.jsx)(n.h3,{id:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b",children:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5feb\u901f\u4fee\u590d (\u7ea7\u522b 1)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u7b80\u5355\u66f4\u6539\u7684\u76f4\u63a5\u6267\u884c\r\n/ccw lite-lite-lite "\u4fee\u590d\u767b\u5f55\u6309\u94ae\u4e2d\u7684\u62fc\u5199\u9519\u8bef"\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5e26\u8bca\u65ad\u7684\u9519\u8bef\u4fee\u590d (\u7ea7\u522b 2)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u667a\u80fd\u9519\u8bef\u8bca\u65ad\u548c\u4fee\u590d\r\n/ccw lite-fix "\u7528\u6237\u5728\u4e2a\u4eba\u8d44\u6599\u66f4\u65b0\u65f6\u9047\u5230 500 \u9519\u8bef"\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u529f\u80fd\u5f00\u53d1 (\u7ea7\u522b 3)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u5b8c\u6574\u7684\u89c4\u5212\u548c\u6267\u884c\r\n/ccw workflow:plan "\u6dfb\u52a0 OAuth2 \u8ba4\u8bc1"\r\n/ccw workflow:execute --session WFS-oauth-auth\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u65b0\u529f\u80fd\u8bbe\u8ba1 (\u7ea7\u522b 4)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\r\n/ccw brainstorm:auto-parallel "\u8bbe\u8ba1\u5b9e\u65f6\u901a\u77e5\u7cfb\u7edf"\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u4e0d\u786e\u5b9a\u7684\u547d\u4ee4 (\u7ea7\u522b 5)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u81ea\u52a8\u5206\u6790\u5e76\u63a8\u8350\u547d\u4ee4\u94fe\r\n/ccw ccw-coordinator "\u9700\u8981\u91cd\u6784\u6574\u4e2a API \u5c42"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u67b6\u6784\u6982\u89c8",children:"\u67b6\u6784\u6982\u89c8"}),"\n",(0,r.jsx)(c.A,{chart:"\n flowchart LR\n User[\u5f00\u53d1\u8005] --\x3e CCW[CCW CLI]\n CCW --\x3e Workflow{\u5de5\u4f5c\u6d41\u5f15\u64ce}\n\n Workflow --\x3e L1[\u7ea7\u522b 1: \u76f4\u63a5]\n Workflow --\x3e L2[\u7ea7\u522b 2: \u8f7b\u91cf\u7ea7]\n Workflow --\x3e L3[\u7ea7\u522b 3: \u6807\u51c6]\n Workflow --\x3e L4[\u7ea7\u522b 4: \u5934\u8111\u98ce\u66b4]\n Workflow --\x3e L5[\u7ea7\u522b 5: \u667a\u80fd\u5316]\n\n L1 --\x3e Agent[\u4ee3\u7406\u6267\u884c]\n L2 --\x3e Agent\n L3 --\x3e Agent\n L4 --\x3e MultiAgent[\u591a\u4ee3\u7406\u5e76\u884c]\n L5 --\x3e Coordinator[\u667a\u80fd\u534f\u8c03\u5668]\n\n Agent --\x3e AI[AI \u6a21\u578b]\n MultiAgent --\x3e AI\n Coordinator --\x3e AI\n\n AI --\x3e Output[\u4ee3\u7801 + \u5de5\u4ef6]\n Output --\x3e Repo[Git \u4ed3\u5e93]\n Repo --\x3e Session[\u4f1a\u8bdd\u72b6\u6001]\n\n classDef user fill:#f3f9ff,stroke:#1976d2\n classDef ccw fill:#e3f2fd,stroke:#1976d2,stroke-width:2px\n classDef agent fill:#c8e6c9,stroke:#388e3c\n classDef ai fill:#fff9c4,stroke:#f57c00\n classDef storage fill:#f1f8e9,stroke:#33691e\n\n class User user,CCW ccw,Workflow ccw,Agent agent,MultiAgent agent,Coordinator ccw,AI ai,Output storage,Repo storage,Session storage\n"}),"\n",(0,r.jsx)(n.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,r.jsx)(n.h3,{id:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6",children:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/introduction",children:"\u5de5\u4f5c\u6d41\u7b80\u4ecb"})})," - \u4e86\u89e3\u5de5\u4f5c\u6d41\u7ea7\u522b\u548c\u9009\u62e9"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"./commands/general/ccw.mdx",children:"\u547d\u4ee4\u53c2\u8003"})})," - \u5b8c\u6574\u7684\u547d\u4ee4\u6587\u6863"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"./faq.mdx",children:"\u5e38\u89c1\u95ee\u9898"})})," - \u5e38\u89c1\u95ee\u9898\u548c\u6545\u969c\u6392\u9664"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22",children:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u4f7f\u7528\u573a\u666f"}),(0,r.jsx)(n.th,{children:"\u63a8\u8350\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.th,{children:"\u6587\u6863"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u5feb\u901f\u4fee\u590d"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"lite-lite-lite"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-1-ultra-lightweight",children:"\u7ea7\u522b 1"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u9519\u8bef\u8bca\u65ad"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"lite-fix"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-2-rapid",children:"\u7ea7\u522b 2"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u529f\u80fd\u5f00\u53d1"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"plan"})," \u2192 ",(0,r.jsx)(n.code,{children:"execute"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u7ea7\u522b 3"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,r.jsx)(n.code,{children:"execute"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u7ea7\u522b 3"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u67b6\u6784\u8bbe\u8ba1"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"brainstorm:auto-parallel"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"\u7ea7\u522b 4"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u590d\u6742\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ccw-coordinator"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"\u7ea7\u522b 5"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u95ee\u9898\u8ddf\u8e2a"}),(0,r.jsx)(n.td,{children:"\u95ee\u9898\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"\u5de5\u4f5c\u6d41 FAQ"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"\u8bd5\u7528\u4e00\u4e0b",children:"\u8bd5\u7528\u4e00\u4e0b"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5b89\u88c5\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm install -g @ccw/cli\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u521d\u59cb\u5316\u9879\u76ee\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"ccw init\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u6d41\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u7b80\u5355\u4efb\u52a1\r\nccw lite-lite-lite "\u6dfb\u52a0\u7528\u6237\u4e2a\u4eba\u8d44\u6599\u9875\u9762"\r\n\r\n# \u590d\u6742\u529f\u80fd\r\nccw workflow:plan "\u5b9e\u73b0\u8d2d\u7269\u8f66"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u652f\u6301",children:"\u652f\u6301"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u6587\u6863"}),": ",(0,r.jsx)(n.a,{href:"https://docs.ccw.dev",children:"docs.ccw.dev"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"GitHub"}),": ",(0,r.jsx)(n.a,{href:"https://github.com/ccw/ccw",children:"github.com/ccw/ccw"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u95ee\u9898"}),": ",(0,r.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"github.com/ccw/ccw/issues"})]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u51c6\u5907\u5f00\u59cb\u4e86\u5417\uff1f"})," \u63a2\u7d22 ",(0,r.jsx)(n.a,{href:"/docs/zh/workflows/introduction",children:"\u5de5\u4f5c\u6d41\u7b80\u4ecb"})," \u4e86\u89e3\u6240\u6709 15 \u4e2a\u5de5\u4f5c\u6d41\u7ea7\u522b\u3002"]})]})}function j(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}}}]); \ No newline at end of file +"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[273],{1184(e,n,s){s.d(n,{R:()=>d,x:()=>i});var l=s(3696);const r={},c=l.createContext(r);function d(e){const n=l.useContext(c);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),l.createElement(c.Provider,{value:n},e.children)}},1290(e,n,s){s.r(n),s.d(n,{assets:()=>x,contentTitle:()=>t,default:()=>j,frontMatter:()=>h,metadata:()=>l,toc:()=>o});const l=JSON.parse('{"id":"overview","title":"\u6b22\u8fce\u4f7f\u7528 CCW","description":"CCW \u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316\u5e73\u53f0\uff0c\u7ed3\u5408\u4e86 AI \u9a71\u52a8\u7684\u667a\u80fd\u4e0e\u7ed3\u6784\u5316\u5f00\u53d1\u5de5\u4f5c\u6d41\u3002\u51ed\u501f 40+ \u547d\u4ee4\u548c 15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41\uff0cCCW \u5f7b\u5e95\u6539\u53d8\u4e86\u60a8\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u4ea4\u4ed8\u8f6f\u4ef6\u7684\u65b9\u5f0f\u3002","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/overview.mdx","sourceDirName":".","slug":"/overview","permalink":"/docs/zh/overview","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/overview.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u6b22\u8fce\u4f7f\u7528 CCW","sidebar_label":"\u6982\u89c8","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u9996\u9875","permalink":"/docs/zh/"},"next":{"title":"/ccw","permalink":"/docs/zh/commands/general/ccw"}}');var r=s(2540),c=s(1184),d=s(1540),i=s(2436);const h={title:"\u6b22\u8fce\u4f7f\u7528 CCW",sidebar_label:"\u6982\u89c8",sidebar_position:1},t="\u6b22\u8fce\u4f7f\u7528 CCW",x={},o=[{value:"\u4ec0\u4e48\u662f CCW\uff1f",id:"\u4ec0\u4e48\u662f-ccw",level:2},{value:"\u5feb\u901f\u94fe\u63a5",id:"\u5feb\u901f\u94fe\u63a5",level:2},{value:"\u6838\u5fc3\u529f\u80fd",id:"\u6838\u5fc3\u529f\u80fd",level:2},{value:"40+ \u547d\u4ee4",id:"40-\u547d\u4ee4",level:3},{value:"15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41",id:"15-\u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41",level:3},{value:"AI \u9a71\u52a8\u7684\u667a\u80fd",id:"ai-\u9a71\u52a8\u7684\u667a\u80fd",level:3},{value:"\u4f1a\u8bdd\u7ba1\u7406",id:"\u4f1a\u8bdd\u7ba1\u7406",level:3},{value:"\u5feb\u901f\u5165\u95e8",id:"\u5feb\u901f\u5165\u95e8",level:2},{value:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9",id:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9",level:3},{value:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b",id:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b",level:3},{value:"\u67b6\u6784\u6982\u89c8",id:"\u67b6\u6784\u6982\u89c8",level:2},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2},{value:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6",id:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6",level:3},{value:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22",id:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22",level:3},{value:"\u8bd5\u7528\u4e00\u4e0b",id:"\u8bd5\u7528\u4e00\u4e0b",level:3},{value:"\u652f\u6301",id:"\u652f\u6301",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u6b22\u8fce\u4f7f\u7528-ccw",children:"\u6b22\u8fce\u4f7f\u7528 CCW"})}),"\n",(0,r.jsx)(n.p,{children:"CCW \u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316\u5e73\u53f0\uff0c\u7ed3\u5408\u4e86 AI \u9a71\u52a8\u7684\u667a\u80fd\u4e0e\u7ed3\u6784\u5316\u5f00\u53d1\u5de5\u4f5c\u6d41\u3002\u51ed\u501f 40+ \u547d\u4ee4\u548c 15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41\uff0cCCW \u5f7b\u5e95\u6539\u53d8\u4e86\u60a8\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u4ea4\u4ed8\u8f6f\u4ef6\u7684\u65b9\u5f0f\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u4ec0\u4e48\u662f-ccw",children:"\u4ec0\u4e48\u662f CCW\uff1f"}),"\n",(0,r.jsx)(n.p,{children:"CCW (Claude Code Workflows) \u662f\u4e00\u4e2a\u9ad8\u7ea7\u5f00\u53d1\u73af\u5883\uff0c\u7f16\u6392 AI \u4ee3\u7406\u3001\u5de5\u4f5c\u6d41\u548c\u5de5\u5177\u4ee5\u52a0\u901f\u8f6f\u4ef6\u5f00\u53d1\uff0c\u540c\u65f6\u4fdd\u6301\u8d28\u91cf\u6807\u51c6\u3002"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u6838\u5fc3\u80fd\u529b\uff1a"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"AI \u9a71\u52a8\u5f00\u53d1"})," - \u5229\u7528\u591a\u79cd AI \u6a21\u578b\uff08Gemini\u3001Codex\u3001Claude\u3001Qwen\uff09\u8fdb\u884c\u4ee3\u7801\u5206\u6790\u3001\u751f\u6210\u548c\u5ba1\u67e5"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ed3\u6784\u5316\u5de5\u4f5c\u6d41"})," - \u4ece\u5feb\u901f\u6267\u884c\u5230\u667a\u80fd\u7f16\u6392\u7684 15 \u4e2a\u5de5\u4f5c\u6d41\u7ea7\u522b"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"40+ \u547d\u4ee4"})," - \u8986\u76d6\u89c4\u5212\u3001\u6267\u884c\u3001\u6d4b\u8bd5\u3001\u5ba1\u67e5\u548c\u7ef4\u62a4\u7684\u5168\u9762\u547d\u4ee4\u96c6"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u4f1a\u8bdd\u7ba1\u7406"})," - \u5b8c\u6574\u7684\u72b6\u6001\u6301\u4e45\u5316\uff0c\u652f\u6301\u53ef\u6062\u590d\u7684\u4f1a\u8bdd"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u591a\u4ee3\u7406\u534f\u8c03"})," - \u5177\u6709\u4f9d\u8d56\u611f\u77e5\u4efb\u52a1\u5206\u914d\u7684\u5e76\u884c\u6267\u884c"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u8d28\u91cf\u5173\u5361"})," - \u5185\u7f6e\u7684\u6d4b\u8bd5\u3001\u9a8c\u8bc1\u548c\u4ee3\u7801\u5ba1\u67e5\u5de5\u4f5c\u6d41"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5feb\u901f\u94fe\u63a5",children:"\u5feb\u901f\u94fe\u63a5"}),"\n",(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("div",{className:"col col--4",children:(0,r.jsxs)(i.A,{to:"/workflows/introduction",className:"card padding--lg",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u5de5\u4f5c\u6d41"})}),(0,r.jsx)("div",{className:"card__body",children:(0,r.jsx)("p",{children:"\u63a2\u7d22\u4ece\u5feb\u901f\u6267\u884c\u5230\u667a\u80fd\u7f16\u6392\u7684 15 \u4e2a\u5de5\u4f5c\u6d41\u7ea7\u522b"})})]})}),(0,r.jsx)("div",{className:"col col--4",children:(0,r.jsxs)(i.A,{to:"/commands/general/ccw",className:"card padding--lg",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u547d\u4ee4"})}),(0,r.jsx)("div",{className:"card__body",children:(0,r.jsx)("p",{children:"\u5de5\u4f5c\u6d41\u3001\u95ee\u9898\u3001CLI \u548c\u5185\u5b58\u64cd\u4f5c\u7684\u5b8c\u6574\u547d\u4ee4\u53c2\u8003"})})]})}),(0,r.jsx)("div",{className:"col col--4",children:(0,r.jsxs)(i.A,{to:"/faq",className:"card padding--lg",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u5e38\u89c1\u95ee\u9898"})}),(0,r.jsx)("div",{className:"card__body",children:(0,r.jsx)("p",{children:"\u5e38\u89c1\u95ee\u9898\u3001\u6545\u969c\u6392\u9664\u63d0\u793a\u548c\u6700\u4f73\u5b9e\u8df5"})})]})})]}),"\n",(0,r.jsx)(n.h2,{id:"\u6838\u5fc3\u529f\u80fd",children:"\u6838\u5fc3\u529f\u80fd"}),"\n",(0,r.jsx)(n.h3,{id:"40-\u547d\u4ee4",children:"40+ \u547d\u4ee4"}),"\n",(0,r.jsx)(n.p,{children:"CCW \u63d0\u4f9b\u6309\u7c7b\u522b\u7ec4\u7ec7\u7684\u5168\u9762\u547d\u4ee4\u96c6\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u7c7b\u522b"}),(0,r.jsx)(n.th,{children:"\u547d\u4ee4\u6570"}),(0,r.jsx)(n.th,{children:"\u7528\u9014"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u5de5\u4f5c\u6d41"})}),(0,r.jsx)(n.td,{children:"13 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u89c4\u5212\u3001\u6267\u884c\u3001\u5ba1\u67e5\u3001\u6e05\u7406"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u95ee\u9898"})}),(0,r.jsx)(n.td,{children:"7 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u95ee\u9898\u53d1\u73b0\u3001\u89c4\u5212\u3001\u89e3\u51b3"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"CLI"})}),(0,r.jsx)(n.td,{children:"2 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"CLI \u521d\u59cb\u5316\u548c\u5ba1\u67e5"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u5185\u5b58"})}),(0,r.jsx)(n.td,{children:"6 \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u77e5\u8bc6\u7ba1\u7406\u548c\u6587\u6863"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u901a\u7528"})}),(0,r.jsx)(n.td,{children:"7+ \u547d\u4ee4"}),(0,r.jsx)(n.td,{children:"\u534f\u8c03\u3001\u8c03\u8bd5\u3001\u6d41\u7a0b\u521b\u5efa"})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"15-\u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41",children:"15 \u4e2a\u96c6\u6210\u5de5\u4f5c\u6d41"}),"\n",(0,r.jsx)(d.A,{chart:'\n graph TB\n subgraph Main["\u4e3b\u5de5\u4f5c\u6d41 (5 \u4e2a\u7ea7\u522b)"]\n L1["\u7ea7\u522b 1: \u5feb\u901f
lite-lite-lite"]\n L2["\u7ea7\u522b 2: \u8f7b\u91cf\u7ea7
lite-plan, lite-fix, multi-cli-plan"]\n L3["\u7ea7\u522b 3: \u6807\u51c6
plan, tdd-plan, test-fix-gen"]\n L4["\u7ea7\u522b 4: \u5934\u8111\u98ce\u66b4
brainstorm:auto-parallel"]\n L5["\u7ea7\u522b 5: \u667a\u80fd\u5316
ccw-coordinator"]\n L1 --\x3e L2 --\x3e L3 --\x3e L4 --\x3e L5\n end\n\n subgraph Issue["\u95ee\u9898\u5de5\u4f5c\u6d41"]\n I1["\u9636\u6bb5 1: \u79ef\u7d2f"]\n I2["\u9636\u6bb5 2: \u89e3\u51b3"]\n I1 --\x3e I2\n end\n\n Main -.->|\u5f00\u53d1\u540e| Issue\n\n classDef level1 fill:#e3f2fd,stroke:#1976d2\n classDef level2 fill:#bbdefb,stroke:#1976d2\n classDef level3 fill:#90caf9,stroke:#1976d2\n classDef level4 fill:#64b5f6,stroke:#1976d2\n classDef level5 fill:#42a5f5,stroke:#1976d2\n classDef issue fill:#fff3e0,stroke:#f57c00\n\n class L1 level1,L2 level2,L3 level3,L4 level4,L5 level5,I1,I2 issue\n'}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u4e3b\u5de5\u4f5c\u6d41\u7ea7\u522b\uff1a"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 1"}),"\uff1a\u96f6\u5f00\u9500\u7684\u8d85\u8f7b\u91cf\u7ea7\u76f4\u63a5\u6267\u884c"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 2"}),"\uff1a\u8f7b\u91cf\u7ea7\u89c4\u5212 (lite-plan)\u3001\u9519\u8bef\u4fee\u590d (lite-fix)\u3001\u591a CLI \u5206\u6790 (multi-cli-plan)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 3"}),"\uff1a\u6807\u51c6\u89c4\u5212 (plan)\u3001\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1 (tdd-plan)\u3001\u6d4b\u8bd5\u4fee\u590d\u751f\u6210 (test-fix-gen)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 4"}),"\uff1a\u591a\u89d2\u8272\u5e76\u884c\u5206\u6790\u7684\u5934\u8111\u98ce\u66b4"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u7ea7\u522b 5"}),"\uff1a\u81ea\u52a8\u547d\u4ee4\u9009\u62e9\u7684\u667a\u80fd\u7f16\u6392"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u95ee\u9898\u5de5\u4f5c\u6d41\uff1a"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u79ef\u7d2f\u9636\u6bb5"}),"\uff1adiscover\u3001new"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u89e3\u51b3\u9636\u6bb5"}),"\uff1aplan\u3001queue\u3001execute"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"ai-\u9a71\u52a8\u7684\u667a\u80fd",children:"AI \u9a71\u52a8\u7684\u667a\u80fd"}),"\n",(0,r.jsx)(n.p,{children:"CCW \u96c6\u6210\u591a\u79cd AI \u6a21\u578b\u63d0\u4f9b\u667a\u80fd\u8f85\u52a9\uff1a"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u6a21\u578b"}),(0,r.jsx)(n.th,{children:"\u80fd\u529b"}),(0,r.jsx)(n.th,{children:"\u4f7f\u7528\u573a\u666f"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Gemini"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165"}),(0,r.jsx)(n.td,{children:"\u4ee3\u7801\u5ba1\u67e5\u3001\u8c03\u8bd5\u3001\u91cd\u6784"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Codex"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165 + \u5ba1\u67e5"}),(0,r.jsx)(n.td,{children:"Git \u611f\u77e5\u4ee3\u7801\u5ba1\u67e5\u3001\u5b9e\u73b0"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Claude"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165"}),(0,r.jsx)(n.td,{children:"\u590d\u6742\u63a8\u7406\u3001\u6587\u6863"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Qwen"})}),(0,r.jsx)(n.td,{children:"\u5206\u6790 + \u5199\u5165"}),(0,r.jsx)(n.td,{children:"\u4ee3\u7801\u751f\u6210\u3001\u6a21\u5f0f\u5339\u914d"})]})]})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u591a CLI \u534f\u4f5c\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u6bd4\u8f83\u591a\u4e2a AI \u89c6\u89d2\u7684\u89e3\u51b3\u65b9\u6848\r\n/ccw multi-cli-plan "\u6bd4\u8f83 Redis vs RabbitMQ \u7528\u4e8e\u6d88\u606f\u961f\u5217"\n'})}),"\n",(0,r.jsx)(n.h3,{id:"\u4f1a\u8bdd\u7ba1\u7406",children:"\u4f1a\u8bdd\u7ba1\u7406"}),"\n",(0,r.jsx)(n.p,{children:"CCW \u4e3a\u6240\u6709\u5de5\u4f5c\u6d41\u4f1a\u8bdd\u63d0\u4f9b\u5b8c\u6574\u7684\u72b6\u6001\u6301\u4e45\u5316\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u542f\u52a8\u89c4\u5212\u4f1a\u8bdd\r\n/ccw workflow:plan "\u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"\r\n\r\n# \u6062\u590d\u6682\u505c\u7684\u4f1a\u8bdd\r\n/ccw workflow:session:resume WFS-user-auth\r\n\r\n# \u5217\u51fa\u6240\u6709\u4f1a\u8bdd\r\n/ccw workflow:session:list\r\n\r\n# \u5b8c\u6210\u5e76\u5f52\u6863\r\n/ccw workflow:session:complete WFS-user-auth\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u4f1a\u8bdd\u7ed3\u6784\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:".workflow/active/WFS-{session}/\r\n\u251c\u2500\u2500 workflow-session.json # \u4f1a\u8bdd\u5143\u6570\u636e\r\n\u251c\u2500\u2500 IMPL_PLAN.md # \u5b9e\u73b0\u8ba1\u5212\r\n\u251c\u2500\u2500 TODO_LIST.md # \u8fdb\u5ea6\u8ddf\u8e2a\r\n\u251c\u2500\u2500 .task/\r\n\u2502 \u251c\u2500\u2500 IMPL-001.json # \u4efb\u52a1\u5b9a\u4e49\r\n\u2502 \u2514\u2500\u2500 ...\r\n\u2514\u2500\u2500 .summaries/\r\n \u251c\u2500\u2500 IMPL-001-summary.md # \u5b8c\u6210\u6458\u8981\r\n \u2514\u2500\u2500 ...\n"})}),"\n",(0,r.jsx)(n.h2,{id:"\u5feb\u901f\u5165\u95e8",children:"\u5feb\u901f\u5165\u95e8"}),"\n",(0,r.jsx)(n.h3,{id:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9",children:"\u9009\u62e9\u60a8\u7684\u8d77\u70b9"}),"\n",(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("div",{className:"col col--6",children:(0,r.jsxs)("div",{className:"card padding--md",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"CCW \u65b0\u624b\uff1f"})}),(0,r.jsxs)("div",{className:"card__body",children:[(0,r.jsxs)("p",{children:["\u4ece ",(0,r.jsx)("strong",{children:"\u7ea7\u522b 1 \u5de5\u4f5c\u6d41"})," \u5f00\u59cb\u5904\u7406\u7b80\u5355\u4efb\u52a1\uff1a"]}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"\u5feb\u901f\u4fee\u590d\u548c\u914d\u7f6e\u8c03\u6574"}),(0,r.jsx)("li",{children:"\u7b80\u5355\u529f\u80fd\u5b9e\u73b0"}),(0,r.jsx)("li",{children:"\u65e0\u89c4\u5212\u5f00\u9500\u7684\u76f4\u63a5\u6267\u884c"})]}),(0,r.jsx)(i.A,{to:"/workflows/level-1-ultra-lightweight",className:"button button--primary button--sm",children:"\u5b66\u4e60\u7ea7\u522b 1"})]})]})}),(0,r.jsx)("div",{className:"col col--6",children:(0,r.jsxs)("div",{className:"card padding--md",children:[(0,r.jsx)("div",{className:"card__header",children:(0,r.jsx)("h3",{children:"\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5f00\u53d1\u8005\uff1f"})}),(0,r.jsxs)("div",{className:"card__body",children:[(0,r.jsxs)("p",{children:["\u76f4\u63a5\u8df3\u5230 ",(0,r.jsx)("strong",{children:"\u7ea7\u522b 3 \u5de5\u4f5c\u6d41"})," \u5904\u7406\u590d\u6742\u529f\u80fd\uff1a"]}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"\u591a\u6a21\u5757\u53d8\u66f4"}),(0,r.jsx)("li",{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,r.jsx)("li",{children:"\u5e26\u9a8c\u8bc1\u7684\u5b8c\u6574\u89c4\u5212"})]}),(0,r.jsx)(i.A,{to:"/workflows/level-3-standard",className:"button button--primary button--sm",children:"\u5b66\u4e60\u7ea7\u522b 3"})]})]})})]}),"\n",(0,r.jsx)(n.h3,{id:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b",children:"\u5feb\u901f\u5165\u95e8\u793a\u4f8b"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5feb\u901f\u4fee\u590d (\u7ea7\u522b 1)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u7b80\u5355\u66f4\u6539\u7684\u76f4\u63a5\u6267\u884c\r\n/ccw lite-lite-lite "\u4fee\u590d\u767b\u5f55\u6309\u94ae\u4e2d\u7684\u62fc\u5199\u9519\u8bef"\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5e26\u8bca\u65ad\u7684\u9519\u8bef\u4fee\u590d (\u7ea7\u522b 2)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u667a\u80fd\u9519\u8bef\u8bca\u65ad\u548c\u4fee\u590d\r\n/ccw lite-fix "\u7528\u6237\u5728\u4e2a\u4eba\u8d44\u6599\u66f4\u65b0\u65f6\u9047\u5230 500 \u9519\u8bef"\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u529f\u80fd\u5f00\u53d1 (\u7ea7\u522b 3)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u5b8c\u6574\u7684\u89c4\u5212\u548c\u6267\u884c\r\n/ccw workflow:plan "\u6dfb\u52a0 OAuth2 \u8ba4\u8bc1"\r\n/ccw workflow:execute --session WFS-oauth-auth\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u65b0\u529f\u80fd\u8bbe\u8ba1 (\u7ea7\u522b 4)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u591a\u89d2\u8272\u5934\u8111\u98ce\u66b4\r\n/ccw brainstorm:auto-parallel "\u8bbe\u8ba1\u5b9e\u65f6\u901a\u77e5\u7cfb\u7edf"\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u4e0d\u786e\u5b9a\u7684\u547d\u4ee4 (\u7ea7\u522b 5)\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u81ea\u52a8\u5206\u6790\u5e76\u63a8\u8350\u547d\u4ee4\u94fe\r\n/ccw ccw-coordinator "\u9700\u8981\u91cd\u6784\u6574\u4e2a API \u5c42"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u67b6\u6784\u6982\u89c8",children:"\u67b6\u6784\u6982\u89c8"}),"\n",(0,r.jsx)(d.A,{chart:"\n flowchart LR\n User[\u5f00\u53d1\u8005] --\x3e CCW[CCW CLI]\n CCW --\x3e Workflow{\u5de5\u4f5c\u6d41\u5f15\u64ce}\n\n Workflow --\x3e L1[\u7ea7\u522b 1: \u76f4\u63a5]\n Workflow --\x3e L2[\u7ea7\u522b 2: \u8f7b\u91cf\u7ea7]\n Workflow --\x3e L3[\u7ea7\u522b 3: \u6807\u51c6]\n Workflow --\x3e L4[\u7ea7\u522b 4: \u5934\u8111\u98ce\u66b4]\n Workflow --\x3e L5[\u7ea7\u522b 5: \u667a\u80fd\u5316]\n\n L1 --\x3e Agent[\u4ee3\u7406\u6267\u884c]\n L2 --\x3e Agent\n L3 --\x3e Agent\n L4 --\x3e MultiAgent[\u591a\u4ee3\u7406\u5e76\u884c]\n L5 --\x3e Coordinator[\u667a\u80fd\u534f\u8c03\u5668]\n\n Agent --\x3e AI[AI \u6a21\u578b]\n MultiAgent --\x3e AI\n Coordinator --\x3e AI\n\n AI --\x3e Output[\u4ee3\u7801 + \u5de5\u4ef6]\n Output --\x3e Repo[Git \u4ed3\u5e93]\n Repo --\x3e Session[\u4f1a\u8bdd\u72b6\u6001]\n\n classDef user fill:#f3f9ff,stroke:#1976d2\n classDef ccw fill:#e3f2fd,stroke:#1976d2,stroke-width:2px\n classDef agent fill:#c8e6c9,stroke:#388e3c\n classDef ai fill:#fff9c4,stroke:#f57c00\n classDef storage fill:#f1f8e9,stroke:#33691e\n\n class User user,CCW ccw,Workflow ccw,Agent agent,MultiAgent agent,Coordinator ccw,AI ai,Output storage,Repo storage,Session storage\n"}),"\n",(0,r.jsx)(n.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,r.jsx)(n.h3,{id:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6",children:"\u5b66\u4e60\u57fa\u7840\u77e5\u8bc6"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"/workflows/introduction",children:"\u5de5\u4f5c\u6d41\u7b80\u4ecb"})})," - \u4e86\u89e3\u5de5\u4f5c\u6d41\u7ea7\u522b\u548c\u9009\u62e9"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"/commands/general/ccw",children:"\u547d\u4ee4\u53c2\u8003"})})," - \u5b8c\u6574\u7684\u547d\u4ee4\u6587\u6863"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"/faq",children:"\u5e38\u89c1\u95ee\u9898"})})," - \u5e38\u89c1\u95ee\u9898\u548c\u6545\u969c\u6392\u9664"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22",children:"\u6309\u4f7f\u7528\u573a\u666f\u63a2\u7d22"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u4f7f\u7528\u573a\u666f"}),(0,r.jsx)(n.th,{children:"\u63a8\u8350\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.th,{children:"\u6587\u6863"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u5feb\u901f\u4fee\u590d"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"lite-lite-lite"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-1-ultra-lightweight",children:"\u7ea7\u522b 1"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u9519\u8bef\u8bca\u65ad"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"lite-fix"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-2-rapid",children:"\u7ea7\u522b 2"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u529f\u80fd\u5f00\u53d1"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"plan"})," \u2192 ",(0,r.jsx)(n.code,{children:"execute"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u7ea7\u522b 3"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,r.jsx)(n.code,{children:"execute"})]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-3-standard",children:"\u7ea7\u522b 3"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u67b6\u6784\u8bbe\u8ba1"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"brainstorm:auto-parallel"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"\u7ea7\u522b 4"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u590d\u6742\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ccw-coordinator"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"\u7ea7\u522b 5"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\u95ee\u9898\u8ddf\u8e2a"}),(0,r.jsx)(n.td,{children:"\u95ee\u9898\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"\u5de5\u4f5c\u6d41 FAQ"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"\u8bd5\u7528\u4e00\u4e0b",children:"\u8bd5\u7528\u4e00\u4e0b"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5b89\u88c5\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm install -g @ccw/cli\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u521d\u59cb\u5316\u9879\u76ee\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"ccw init\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u7b2c\u4e00\u4e2a\u5de5\u4f5c\u6d41\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u7b80\u5355\u4efb\u52a1\r\nccw lite-lite-lite "\u6dfb\u52a0\u7528\u6237\u4e2a\u4eba\u8d44\u6599\u9875\u9762"\r\n\r\n# \u590d\u6742\u529f\u80fd\r\nccw workflow:plan "\u5b9e\u73b0\u8d2d\u7269\u8f66"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u652f\u6301",children:"\u652f\u6301"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u6587\u6863"}),": ",(0,r.jsx)(n.a,{href:"https://docs.ccw.dev",children:"docs.ccw.dev"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"GitHub"}),": ",(0,r.jsx)(n.a,{href:"https://github.com/ccw/ccw",children:"github.com/ccw/ccw"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u95ee\u9898"}),": ",(0,r.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"github.com/ccw/ccw/issues"})]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u51c6\u5907\u5f00\u59cb\u4e86\u5417\uff1f"})," \u63a2\u7d22 ",(0,r.jsx)(n.a,{href:"/docs/zh/workflows/introduction",children:"\u5de5\u4f5c\u6d41\u7b80\u4ecb"})," \u4e86\u89e3\u6240\u6709 15 \u4e2a\u5de5\u4f5c\u6d41\u7ea7\u522b\u3002"]})]})}function j(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/ea313555.83795af1.js b/ccw/docs-site/build/zh/assets/js/ea313555.83795af1.js deleted file mode 100644 index 8f4c5f5f..00000000 --- a/ccw/docs-site/build/zh/assets/js/ea313555.83795af1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[11],{1184(e,n,s){s.d(n,{R:()=>t,x:()=>o});var i=s(3696);const l={},r=i.createContext(l);function t(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(r.Provider,{value:n},e.children)}},4040(e,n,s){s.d(n,{A:()=>p});var i=s(3696),l=s(4357),r=s(6357),t=s(213),o=s(6476);const c="details_B4FW",d="isBrowser_Cof9",a="collapsibleContent_VYua";var h=s(2540);function x(e){return!!e&&("SUMMARY"===e.tagName||x(e.parentElement))}function j(e,n){return!!e&&(e===n||j(e.parentElement,n))}function u({summary:e,children:n,...s}){(0,r.A)().collectAnchor(s.id);const u=(0,t.A)(),m=(0,i.useRef)(null),{collapsed:p,setCollapsed:g}=(0,o.u)({initialState:!s.open}),[w,f]=(0,i.useState)(s.open),v=i.isValidElement(e)?e:(0,h.jsx)("summary",{children:e??"Details"});return(0,h.jsxs)("details",{...s,ref:m,open:w,"data-collapsed":p,className:(0,l.A)(c,u&&d,s.className),onMouseDown:e=>{x(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;x(n)&&j(n,m.current)&&(e.preventDefault(),p?(g(!1),f(!0)):g(!0))},children:[v,(0,h.jsx)(o.N,{lazy:!1,collapsed:p,onCollapseTransitionEnd:e=>{g(e),f(!e)},children:(0,h.jsx)("div",{className:a,children:n})})]})}const m="details_SZgV";function p({...e}){return(0,h.jsx)(u,{...e,className:(0,l.A)("alert alert--info",m,e.className)})}},4220(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"faq","title":"Frequently Asked Questions","description":"Common questions about CCW, workflows, commands, and troubleshooting.","source":"@site/docs/faq.mdx","sourceDirName":".","slug":"/faq","permalink":"/docs/zh/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/faq.mdx","tags":[],"version":"current","sidebarPosition":99,"frontMatter":{"title":"Frequently Asked Questions","sidebar_label":"FAQ","sidebar_position":99},"sidebar":"docs","previous":{"title":"Level 5: Intelligent","permalink":"/docs/zh/workflows/level-5-intelligent"}}');var l=s(2540),r=s(1184),t=s(4040);s(2436);const o={title:"Frequently Asked Questions",sidebar_label:"FAQ",sidebar_position:99},c="Frequently Asked Questions",d={},a=[{value:"General Questions",id:"general-questions",level:2},{value:"What is CCW?",id:"what-is-ccw",level:3},{value:"What are the system requirements?",id:"what-are-the-system-requirements",level:3},{value:"How do I install CCW?",id:"how-do-i-install-ccw",level:3},{value:"Is CCW free to use?",id:"is-ccw-free-to-use",level:3},{value:"What programming languages are supported?",id:"what-programming-languages-are-supported",level:3},{value:"Workflow Selection",id:"workflow-selection",level:2},{value:"How do I choose the right workflow?",id:"how-do-i-choose-the-right-workflow",level:3},{value:"What's the difference between Main Workflow and Issue Workflow?",id:"whats-the-difference-between-main-workflow-and-issue-workflow",level:3},{value:"What are Minimum Execution Units?",id:"what-are-minimum-execution-units",level:3},{value:"When should I use each workflow level?",id:"when-should-i-use-each-workflow-level",level:3},{value:"Command Usage",id:"command-usage",level:2},{value:"How do I use workflow commands?",id:"how-do-i-use-workflow-commands",level:3},{value:"What is the difference between lite-execute and execute?",id:"what-is-the-difference-between-lite-execute-and-execute",level:3},{value:"How do I use hotfix mode?",id:"how-do-i-use-hotfix-mode",level:3},{value:"How do I resume a paused session?",id:"how-do-i-resume-a-paused-session",level:3},{value:"AI Models",id:"ai-models",level:2},{value:"Which AI models does CCW support?",id:"which-ai-models-does-ccw-support",level:3},{value:"How do I configure API keys?",id:"how-do-i-configure-api-keys",level:3},{value:"What is multi-CLI collaboration?",id:"what-is-multi-cli-collaboration",level:3},{value:"Testing",id:"testing",level:2},{value:"How do I add tests to existing code?",id:"how-do-i-add-tests-to-existing-code",level:3},{value:"How do I fix failing tests?",id:"how-do-i-fix-failing-tests",level:3},{value:"What is TDD (Test-Driven Development)?",id:"what-is-tdd-test-driven-development",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"My workflow failed. What should I do?",id:"my-workflow-failed-what-should-i-do",level:3},{value:"How do I skip a failing task?",id:"how-do-i-skip-a-failing-task",level:3},{value:"How do I clean up old sessions?",id:"how-do-i-clean-up-old-sessions",level:3},{value:"Why is my workflow running slowly?",id:"why-is-my-workflow-running-slowly",level:3},{value:"How do I debug workflow issues?",id:"how-do-i-debug-workflow-issues",level:3},{value:"Integration",id:"integration",level:2},{value:"Can I use CCW with my existing CI/CD?",id:"can-i-use-ccw-with-my-existing-cicd",level:3},{value:"Can CCW work with monorepos?",id:"can-ccw-work-with-monorepos",level:3},{value:"How do I migrate from another tool?",id:"how-do-i-migrate-from-another-tool",level:3},{value:"Best Practices",id:"best-practices",level:2},{value:"What are the workflow best practices?",id:"what-are-the-workflow-best-practices",level:3},{value:"How do I get the most out of AI assistance?",id:"how-do-i-get-the-most-out-of-ai-assistance",level:3},{value:"Related Documentation",id:"related-documentation",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"frequently-asked-questions",children:"Frequently Asked Questions"})}),"\n",(0,l.jsx)(n.p,{children:"Common questions about CCW, workflows, commands, and troubleshooting."}),"\n",(0,l.jsx)(n.h2,{id:"general-questions",children:"General Questions"}),"\n",(0,l.jsx)(n.h3,{id:"what-is-ccw",children:"What is CCW?"}),"\n",(0,l.jsx)(n.p,{children:"CCW (Claude Code Workflows) is a professional workflow automation platform that combines AI-powered intelligence with structured development workflows. It provides 40+ commands and 15 integrated workflows to accelerate software development while maintaining quality standards."}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Key Features:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"AI-powered code analysis, generation, and review"}),"\n",(0,l.jsx)(n.li,{children:"15 workflow levels from rapid execution to intelligent orchestration"}),"\n",(0,l.jsx)(n.li,{children:"Session management with full state persistence"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination with parallel execution"}),"\n",(0,l.jsx)(n.li,{children:"Built-in testing, verification, and code review"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-system-requirements",children:"What are the system requirements?"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Minimum Requirements:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 16.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"Git 2.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"4GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"500MB disk space"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Recommended:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 18.x LTS"}),"\n",(0,l.jsx)(n.li,{children:"8GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"2GB disk space for artifacts and sessions"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-install-ccw",children:"How do I install CCW?"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Install globally via npm\r\nnpm install -g @ccw/cli\r\n\r\n# Or use npx (no installation required)\r\nnpx @ccw/cli init\r\n\r\n# Initialize in your project\r\nccw init\n"})}),"\n",(0,l.jsx)(n.h3,{id:"is-ccw-free-to-use",children:"Is CCW free to use?"}),"\n",(0,l.jsx)(n.p,{children:"Yes, CCW is open-source and free to use. However, CCW integrates with third-party AI services (Gemini, Codex, Claude, Qwen) that may have their own pricing. You'll need API keys for any AI services you want to use."}),"\n",(0,l.jsx)(n.h3,{id:"what-programming-languages-are-supported",children:"What programming languages are supported?"}),"\n",(0,l.jsx)(n.p,{children:"CCW supports all programming languages. The AI models can analyze and generate code in any language, including:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Web"}),": JavaScript, TypeScript, Python, PHP, Ruby"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Mobile"}),": Swift, Kotlin, React Native, Flutter"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Systems"}),": Rust, Go, C, C++"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Data"}),": Python, R, SQL"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Enterprise"}),": Java, C#, .NET"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"workflow-selection",children:"Workflow Selection"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-choose-the-right-workflow",children:"How do I choose the right workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Decision Framework"}),(0,l.jsx)(n.p,{children:"Use this quick decision tree:"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Post-development maintenance?"})," \u2192 Use ",(0,l.jsx)(n.a,{href:"./workflows/faq.mdx#what-is-the-difference-between-main-workflow-and-issue-workflow",children:"Issue Workflow"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Uncertain which commands to use?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"ccw-coordinator"})," (Level 5)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Requirements unclear?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"brainstorm:auto-parallel"})," (Level 4)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need persistent session?"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Standard development \u2192 ",(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test-driven \u2192 ",(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test fixes \u2192 ",(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})," (Level 3)"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need multi-perspective analysis?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"multi-cli-plan"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Bug fix?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-fix"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need planning?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Quick task?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-lite-lite"})," (Level 1)"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"whats-the-difference-between-main-workflow-and-issue-workflow",children:"What's the difference between Main Workflow and Issue Workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Main Workflow"})," is for primary development:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Feature development (Levels 1-5)"}),"\n",(0,l.jsx)(n.li,{children:"Active development phase"}),"\n",(0,l.jsx)(n.li,{children:"Dependency-based parallelism"}),"\n",(0,l.jsx)(n.li,{children:"Works on current branch"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Issue Workflow"})," is for post-development maintenance:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Bug fixes and enhancements after merge"}),"\n",(0,l.jsx)(n.li,{children:"After main workflow completes"}),"\n",(0,l.jsx)(n.li,{children:"Optional worktree isolation"}),"\n",(0,l.jsx)(n.li,{children:"Keeps main branch stable"}),"\n"]}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Main Workflow"}),(0,l.jsx)(n.th,{children:"Issue Workflow"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Purpose"})}),(0,l.jsx)(n.td,{children:"Feature development"}),(0,l.jsx)(n.td,{children:"Post-development fixes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Timing"})}),(0,l.jsx)(n.td,{children:"Development phase"}),(0,l.jsx)(n.td,{children:"After main workflow completes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Scope"})}),(0,l.jsx)(n.td,{children:"Complete feature implementation"}),(0,l.jsx)(n.td,{children:"Targeted fixes/enhancements"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Parallelism"})}),(0,l.jsx)(n.td,{children:"Dependency analysis"}),(0,l.jsx)(n.td,{children:"Worktree isolation (optional)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Branch Model"})}),(0,l.jsx)(n.td,{children:"Work on current branch"}),(0,l.jsx)(n.td,{children:"Can use isolated worktree"})]})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-minimum-execution-units",children:"What are Minimum Execution Units?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Minimum Execution Units"})," are sets of commands that must execute together as atomic groups to achieve meaningful workflow milestones. Splitting these commands breaks logical flow and creates incomplete states."]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common Minimum Execution Units:"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Unit"}),(0,l.jsx)(n.th,{children:"Commands"}),(0,l.jsx)(n.th,{children:"Purpose"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Quick Implementation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Lightweight plan and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Multi-CLI Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"multi-cli-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Multi-perspective analysis and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Bug Fix"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-fix"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Bug diagnosis and fix execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Verified Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"plan-verify"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Planning with verification and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"TDD Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Test-driven development planning and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Test Validation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})]}),(0,l.jsx)(n.td,{children:"Generate test tasks and execute test-fix cycle"})]})]})]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Example"}),": The unit ",(0,l.jsx)(n.code,{children:"lite-plan \u2192 lite-execute"})," must complete together. Stopping after ",(0,l.jsx)(n.code,{children:"lite-plan"})," leaves you with a plan but no implementation."]})]}),"\n",(0,l.jsx)(n.h3,{id:"when-should-i-use-each-workflow-level",children:"When should I use each workflow level?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Level Selection Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 1 (lite-lite-lite):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Quick fixes (typos, minor adjustments)"}),"\n",(0,l.jsx)(n.li,{children:"Simple features (single function, small utility)"}),"\n",(0,l.jsx)(n.li,{children:"Config changes (environment variables, timeouts)"}),"\n",(0,l.jsx)(n.li,{children:"Documentation updates"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 2 (lite-plan, lite-fix, multi-cli-plan):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Single-module features"}),"\n",(0,l.jsx)(n.li,{children:"Bug diagnosis and fixes"}),"\n",(0,l.jsx)(n.li,{children:"Technology selection decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 3 (plan, tdd-plan, test-fix-gen):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Multi-module changes"}),"\n",(0,l.jsx)(n.li,{children:"Refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Test-driven development"}),"\n",(0,l.jsx)(n.li,{children:"Test failure fixes"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Level 4 (brainstorm",":auto-parallel","):"]})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"New feature design"}),"\n",(0,l.jsx)(n.li,{children:"System architecture refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Exploratory requirements"}),"\n",(0,l.jsx)(n.li,{children:"Multi-dimensional trade-offs"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 5 (ccw-coordinator):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complex multi-step workflows"}),"\n",(0,l.jsx)(n.li,{children:"Uncertain which commands to use"}),"\n",(0,l.jsx)(n.li,{children:"End-to-end automation"}),"\n",(0,l.jsx)(n.li,{children:"Team collaboration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Issue Workflow:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Post-development issue fixes"}),"\n",(0,l.jsx)(n.li,{children:"Maintaining main branch stability"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"command-usage",children:"Command Usage"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-workflow-commands",children:"How do I use workflow commands?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Command Patterns"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Basic Pattern:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw <command> <arguments>\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Examples:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Level 1 - Direct execution\r\nccw lite-lite-lite "Fix login button"\r\n\r\n# Level 2 - Lightweight planning\r\nccw lite-plan "Add user profile page"\r\nccw lite-execute --in-memory\r\n\r\n# Level 3 - Full workflow\r\nccw workflow:plan "Implement OAuth2"\r\nccw workflow:execute --session WFS-oauth-auth\r\n\r\n# Level 4 - Brainstorming\r\nccw brainstorm:auto-parallel "Design notification system"\r\n\r\n# Level 5 - Intelligent coordination\r\nccw ccw-coordinator "Refactor API layer"\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-the-difference-between-lite-execute-and-execute",children:"What is the difference between lite-execute and execute?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"lite-execute"})," (Level 2):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw lite-execute --in-memory\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 2 workflows"}),"\n",(0,l.jsx)(n.li,{children:"In-memory planning (no session files)"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution for independent tasks"}),"\n",(0,l.jsx)(n.li,{children:"Optional code review"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"execute"})," (Level 3):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw workflow:execute --session WFS-{session-id}\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 3 workflows"}),"\n",(0,l.jsx)(n.li,{children:"Session-based execution"}),"\n",(0,l.jsx)(n.li,{children:"Dependency analysis"}),"\n",(0,l.jsx)(n.li,{children:"Full state tracking and resumability"}),"\n",(0,l.jsx)(n.li,{children:"Task completion summaries"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-hotfix-mode",children:"How do I use hotfix mode?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Hotfix Usage"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Hotfix mode"})," is for production emergencies:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw lite-fix --hotfix "Production database connection failing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"What it does:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Skips most diagnosis phases"}),"\n",(0,l.jsx)(n.li,{children:"Minimal planning (direct execution)"}),"\n",(0,l.jsx)(n.li,{children:"Auto-generates follow-up tasks for complete fix + post-mortem"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"When to use:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Production incidents"}),"\n",(0,l.jsx)(n.li,{children:"Critical bugs requiring immediate fix"}),"\n",(0,l.jsx)(n.li,{children:"Outages and service disruptions"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"What happens after:"}),"\r\nCCW automatically generates follow-up tasks for:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete root cause analysis"}),"\n",(0,l.jsx)(n.li,{children:"Comprehensive fix"}),"\n",(0,l.jsx)(n.li,{children:"Post-mortem documentation"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-resume-a-paused-session",children:"How do I resume a paused session?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Session Resume"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Resume most recent session\r\nccw workflow:session:resume\r\n\r\n# Resume specific session\r\nccw workflow:session:resume WFS-user-auth-v2\r\n\r\n# List all sessions\r\nccw workflow:session:list\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session states:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"active"}),": Currently running"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"paused"}),": Stopped, can be resumed"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"completed"}),": Finished and archived"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"ai-models",children:"AI Models"}),"\n",(0,l.jsx)(n.h3,{id:"which-ai-models-does-ccw-support",children:"Which AI models does CCW support?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Supported Models"}),(0,l.jsx)(n.p,{children:"CCW supports multiple AI models via CLI endpoints:"}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Model"}),(0,l.jsx)(n.th,{children:"Capabilities"}),(0,l.jsx)(n.th,{children:"Best For"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Gemini"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code review, debugging, refactoring"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Codex"})}),(0,l.jsx)(n.td,{children:"Analysis + Write + Review"}),(0,l.jsx)(n.td,{children:"Git-aware code review, implementation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Claude"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Complex reasoning, documentation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Qwen"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code generation, pattern matching"})]})]})]}),(0,l.jsxs)(n.p,{children:["Configure models in ",(0,l.jsx)(n.code,{children:"~/.claude/cli-tools.json"}),"."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-configure-api-keys",children:"How do I configure API keys?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"API Key Configuration"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Set environment variables:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Gemini\r\nexport GEMINI_API_KEY="your-key-here"\r\n\r\n# OpenAI (Codex)\r\nexport OPENAI_API_KEY="your-key-here"\r\n\r\n# Anthropic (Claude)\r\nexport ANTHROPIC_API_KEY="your-key-here"\r\n\r\n# Qwen\r\nexport DASHSCOPE_API_KEY="your-key-here"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Or configure in ",(0,l.jsx)(n.code,{children:".env"})," file:"]})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-env",children:"GEMINI_API_KEY=your-key-here\r\nOPENAI_API_KEY=your-key-here\r\nANTHROPIC_API_KEY=your-key-here\r\nDASHSCOPE_API_KEY=your-key-here\n"})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-multi-cli-collaboration",children:"What is multi-CLI collaboration?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Multi-CLI Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Multi-CLI collaboration"})," uses multiple AI models to analyze the same problem from different perspectives:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw multi-cli-plan "Compare Redis vs RabbitMQ for message queuing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"How it works:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Multiple AI models analyze independently"}),"\n",(0,l.jsx)(n.li,{children:"Each provides unique insights and recommendations"}),"\n",(0,l.jsx)(n.li,{children:"Results are synthesized into a comprehensive analysis"}),"\n",(0,l.jsx)(n.li,{children:"You get multiple perspectives before making decisions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best for:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Technology selection"}),"\n",(0,l.jsx)(n.li,{children:"Architecture decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n",(0,l.jsx)(n.li,{children:"Trade-off analysis"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-add-tests-to-existing-code",children:"How do I add tests to existing code?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Generation"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session Mode (from existing session):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw test-fix-gen WFS-user-auth-v2\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prompt Mode (direct description):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw test-fix-gen "Add unit tests for the auth API"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"CCW will:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze the code structure"}),"\n",(0,l.jsx)(n.li,{children:"Generate appropriate test cases"}),"\n",(0,l.jsx)(n.li,{children:"Create test files following project patterns"}),"\n",(0,l.jsx)(n.li,{children:"Implement tests with proper assertions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-fix-failing-tests",children:"How do I fix failing tests?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Fix Workflow"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Generate test fix tasks\r\nccw test-fix-gen "Tests failing for user registration"\r\n\r\n# Execute test-fix cycle\r\nccw test-cycle-execute\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workflow:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze test failures"}),"\n",(0,l.jsx)(n.li,{children:"Identify root causes"}),"\n",(0,l.jsx)(n.li,{children:"Fix issues iteratively"}),"\n",(0,l.jsx)(n.li,{children:"Verify >= 95% pass rate"}),"\n",(0,l.jsx)(n.li,{children:"Stop when tests pass or max iterations reached"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-tdd-test-driven-development",children:"What is TDD (Test-Driven Development)?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"TDD Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"TDD"})," follows the Red-Green-Refactor cycle:"]}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Red"}),": Write a failing test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Green"}),": Write minimal code to pass the test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Refactor"}),": Improve code while keeping tests green"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"The Iron Law:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:"NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Why write tests first?"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Test-First"}),(0,l.jsx)(n.th,{children:"Test-After"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Proof"})}),(0,l.jsx)(n.td,{children:"Tests fail before implementation"}),(0,l.jsx)(n.td,{children:"Tests pass immediately (proves nothing)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Discovery"})}),(0,l.jsx)(n.td,{children:"Edge cases found before coding"}),(0,l.jsx)(n.td,{children:"Edge cases found after coding"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Verification"})}),(0,l.jsx)(n.td,{children:"Verifies requirements"}),(0,l.jsx)(n.td,{children:"Verifies implementation"})]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,l.jsx)(n.h3,{id:"my-workflow-failed-what-should-i-do",children:"My workflow failed. What should I do?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Troubleshooting Steps"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Check the error message"})," - Identify the root cause"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Review session state"})," - Check ",(0,l.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Resume the session"})," - Use ",(0,l.jsx)(n.code,{children:"ccw workflow:session:resume"})," to continue"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Adjust and retry"})," - Modify approach based on error"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common fixes:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"API key errors"}),": Verify environment variables are set"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Module not found"}),": Run ",(0,l.jsx)(n.code,{children:"npm install"})," or ",(0,l.jsx)(n.code,{children:"pip install"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Git errors"}),": Ensure clean git state (",(0,l.jsx)(n.code,{children:"git status"}),")"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Timeout errors"}),": Increase timeout in task JSON"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-skip-a-failing-task",children:"How do I skip a failing task?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Skip Task"}),(0,l.jsx)(n.p,{children:'Edit the task JSON to set status to "completed":'}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Use with caution:"})," Skipping tasks may leave the workflow in an incomplete state."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-clean-up-old-sessions",children:"How do I clean up old sessions?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Cleanup Commands"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# List sessions\r\nccw workflow:session:list\r\n\r\n# Remove specific session\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# Clean all completed sessions\r\nccw workflow:clean\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Automatic cleanup:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Completed sessions are archived to ",(0,l.jsx)(n.code,{children:".workflow/completed/"})]}),"\n",(0,l.jsx)(n.li,{children:"Old sessions (> 30 days) can be safely removed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"why-is-my-workflow-running-slowly",children:"Why is my workflow running slowly?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Performance Tips"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Possible causes:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Large codebase"}),": CCW analyzes the entire project"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use ",(0,l.jsx)(n.code,{children:"--focus-paths"})," to limit analysis scope"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Many dependencies"}),": Slow AI response times"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use faster models (Gemini Flash) for initial analysis"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Sequential tasks"}),": Waiting on dependent tasks"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Review task dependencies in ",(0,l.jsx)(n.code,{children:"plan-verify"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Network issues"}),": Slow API calls to AI services"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Check network connectivity and API status"]}),"\n"]}),"\n"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Optimization tips:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Limit analysis scope\r\nccw plan "Add login" --focus-paths src/auth\r\n\r\n# Use faster model for initial analysis\r\nccw cli -p "Quick analysis" --model gemini-2.0-flash --mode analysis\r\n\r\n# Run in parallel when possible\r\nccw workflow:execute --parallel 4\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-debug-workflow-issues",children:"How do I debug workflow issues?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Debugging Workflow"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Enable debug logging:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'DEBUG=ccw:* ccw workflow:plan "My feature"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Check session logs:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# View session state\r\ncat .workflow/active/WFS-{session}/workflow-session.json\r\n\r\n# View task progress\r\ncat .workflow/active/WFS-{session}/TODO_LIST.md\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Use debug workflow:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw workflow:debug-with-file "Debug memory leak in connection handler"\n'})}),(0,l.jsx)(n.p,{children:"This provides hypothesis-driven debugging with documented exploration."})]}),"\n",(0,l.jsx)(n.h2,{id:"integration",children:"Integration"}),"\n",(0,l.jsx)(n.h3,{id:"can-i-use-ccw-with-my-existing-cicd",children:"Can I use CCW with my existing CI/CD?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"CI/CD Integration"}),(0,l.jsx)(n.p,{children:"Yes, CCW can be integrated into CI/CD pipelines:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"GitHub Actions Example:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:'- name: Run CCW Workflow\r\n run: |\r\n ccw workflow:plan "Implement feature"\r\n ccw workflow:execute --session WFS-feature\r\n env:\r\n GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best practices:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Use ",(0,l.jsx)(n.code,{children:"--mode analysis"})," for code review in CI"]}),"\n",(0,l.jsx)(n.li,{children:"Store API keys in secret management"}),"\n",(0,l.jsx)(n.li,{children:"Run workflows in isolated environments"}),"\n",(0,l.jsx)(n.li,{children:"Archive sessions for audit trails"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"can-ccw-work-with-monorepos",children:"Can CCW work with monorepos?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Monorepo Support"}),(0,l.jsx)(n.p,{children:"Yes, CCW supports monorepos:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workspace-aware execution:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Execute in specific package\r\nccw plan "Add auth to frontend" --cd packages/frontend\r\n\r\n# Execute across packages\r\nccw plan "Update API contracts" --include-dir packages/api,packages/shared\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Benefits:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Dependency-aware task distribution"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution across packages"}),"\n",(0,l.jsx)(n.li,{children:"Shared session state"}),"\n",(0,l.jsx)(n.li,{children:"Coordinated changes across workspaces"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-migrate-from-another-tool",children:"How do I migrate from another tool?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Migration Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From basic Git workflows:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Before: Manual planning\r\ngit checkout -b feature\r\n# ... manual planning ...\r\n\r\n# After: CCW planning\r\nccw plan "Add feature"\r\nccw execute --session WFS-feature\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From other AI tools:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"CCW provides structured workflows (vs. ad-hoc prompts)"}),"\n",(0,l.jsx)(n.li,{children:"Session management (vs. chat history)"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination (vs. single AI)"}),"\n",(0,l.jsx)(n.li,{children:"Persistent artifacts (vs. transient responses)"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Migration steps:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Install CCW: ",(0,l.jsx)(n.code,{children:"npm install -g @ccw/cli"})]}),"\n",(0,l.jsxs)(n.li,{children:["Initialize: ",(0,l.jsx)(n.code,{children:"ccw init"})]}),"\n",(0,l.jsx)(n.li,{children:"Start with Level 2 workflows for familiar patterns"}),"\n",(0,l.jsx)(n.li,{children:"Gradually adopt higher levels as needed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-workflow-best-practices",children:"What are the workflow best practices?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Start Simple"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use the lowest level that meets your needs"}),"\n",(0,l.jsx)(n.li,{children:"Don't over-engineer simple tasks"}),"\n",(0,l.jsx)(n.li,{children:"Scale up complexity as needed"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Plan Before Executing"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use verification steps when available"}),"\n",(0,l.jsx)(n.li,{children:"Review generated plans before execution"}),"\n",(0,l.jsx)(n.li,{children:"Adjust tasks based on project context"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Test Continuously"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Integrate testing into your workflow"}),"\n",(0,l.jsx)(n.li,{children:"Use TDD for critical features"}),"\n",(0,l.jsx)(n.li,{children:"Run tests after each iteration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Review Code"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use built-in review workflows"}),"\n",(0,l.jsx)(n.li,{children:"Leverage multi-CLI collaboration"}),"\n",(0,l.jsx)(n.li,{children:"Merge review feedback iteratively"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Document Decisions"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use brainstorm workflows for complex decisions"}),"\n",(0,l.jsx)(n.li,{children:"Keep session artifacts for reference"}),"\n",(0,l.jsx)(n.li,{children:"Archive completed sessions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"6. Maintain Session Hygiene"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete sessions when done"}),"\n",(0,l.jsx)(n.li,{children:"Clean up old sessions regularly"}),"\n",(0,l.jsx)(n.li,{children:"Archive important sessions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-get-the-most-out-of-ai-assistance",children:"How do I get the most out of AI assistance?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"AI Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Be Specific in Prompts"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'Bad: "Fix the bug"\r\nGood: "Fix the 500 error when users update their profile picture"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Provide Context"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw plan "Add OAuth2" \\\r\n --context "Using Express.js, MongoDB, Passport.js" \\\r\n --reference "Similar to existing Google OAuth implementation"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Use Multi-CLI Collaboration"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Get multiple perspectives\r\nccw multi-cli-plan "Architecture decision"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Leverage Memory"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Build on previous work\r\nccw plan "Continue auth refactor" --memory WFS-auth-v1\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Choose the Right Model"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Flash"}),": Fast, good for initial analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Pro"}),": Deep reasoning, complex tasks"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Codex"}),": Code review, git-aware analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Claude"}),": Documentation, complex reasoning"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"related-documentation",children:"Related Documentation"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"./workflows/introduction.mdx",children:"Workflow Introduction"})," - Complete workflow guide"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"./workflows/faq.mdx",children:"Workflow FAQ"})," - Workflow-specific questions"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/zh/commands/general/ccw",children:"Command Reference"})," - All commands"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Still have questions?"})," ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"Open an issue"})," or check the ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/discussions",children:"discussion forums"}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/ea313555.a8cac875.js b/ccw/docs-site/build/zh/assets/js/ea313555.a8cac875.js new file mode 100644 index 00000000..94a1932b --- /dev/null +++ b/ccw/docs-site/build/zh/assets/js/ea313555.a8cac875.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[11],{1184(e,n,s){s.d(n,{R:()=>t,x:()=>o});var i=s(3696);const l={},r=i.createContext(l);function t(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(r.Provider,{value:n},e.children)}},4040(e,n,s){s.d(n,{A:()=>m});var i=s(3696),l=s(4357),r=s(6357),t=s(213),o=s(6476);const c="details_B4FW",d="isBrowser_Cof9",a="collapsibleContent_VYua";var h=s(2540);function x(e){return!!e&&("SUMMARY"===e.tagName||x(e.parentElement))}function j(e,n){return!!e&&(e===n||j(e.parentElement,n))}function u({summary:e,children:n,...s}){(0,r.A)().collectAnchor(s.id);const u=(0,t.A)(),p=(0,i.useRef)(null),{collapsed:m,setCollapsed:g}=(0,o.u)({initialState:!s.open}),[w,f]=(0,i.useState)(s.open),v=i.isValidElement(e)?e:(0,h.jsx)("summary",{children:e??"Details"});return(0,h.jsxs)("details",{...s,ref:p,open:w,"data-collapsed":m,className:(0,l.A)(c,u&&d,s.className),onMouseDown:e=>{x(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;x(n)&&j(n,p.current)&&(e.preventDefault(),m?(g(!1),f(!0)):g(!0))},children:[v,(0,h.jsx)(o.N,{lazy:!1,collapsed:m,onCollapseTransitionEnd:e=>{g(e),f(!e)},children:(0,h.jsx)("div",{className:a,children:n})})]})}const p="details_SZgV";function m({...e}){return(0,h.jsx)(u,{...e,className:(0,l.A)("alert alert--info",p,e.className)})}},4220(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"faq","title":"Frequently Asked Questions","description":"Common questions about CCW, workflows, commands, and troubleshooting.","source":"@site/docs/faq.mdx","sourceDirName":".","slug":"/faq","permalink":"/docs/zh/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/faq.mdx","tags":[],"version":"current","sidebarPosition":99,"frontMatter":{"title":"Frequently Asked Questions","sidebar_label":"FAQ","sidebar_position":99},"sidebar":"docs","previous":{"title":"Level 5: Intelligent","permalink":"/docs/zh/workflows/level-5-intelligent"}}');var l=s(2540),r=s(1184),t=s(4040);s(2436);const o={title:"Frequently Asked Questions",sidebar_label:"FAQ",sidebar_position:99},c="Frequently Asked Questions",d={},a=[{value:"General Questions",id:"general-questions",level:2},{value:"What is CCW?",id:"what-is-ccw",level:3},{value:"What are the system requirements?",id:"what-are-the-system-requirements",level:3},{value:"How do I install CCW?",id:"how-do-i-install-ccw",level:3},{value:"Is CCW free to use?",id:"is-ccw-free-to-use",level:3},{value:"What programming languages are supported?",id:"what-programming-languages-are-supported",level:3},{value:"Workflow Selection",id:"workflow-selection",level:2},{value:"How do I choose the right workflow?",id:"how-do-i-choose-the-right-workflow",level:3},{value:"What's the difference between Main Workflow and Issue Workflow?",id:"whats-the-difference-between-main-workflow-and-issue-workflow",level:3},{value:"What are Minimum Execution Units?",id:"what-are-minimum-execution-units",level:3},{value:"When should I use each workflow level?",id:"when-should-i-use-each-workflow-level",level:3},{value:"Command Usage",id:"command-usage",level:2},{value:"How do I use workflow commands?",id:"how-do-i-use-workflow-commands",level:3},{value:"What is the difference between lite-execute and execute?",id:"what-is-the-difference-between-lite-execute-and-execute",level:3},{value:"How do I use hotfix mode?",id:"how-do-i-use-hotfix-mode",level:3},{value:"How do I resume a paused session?",id:"how-do-i-resume-a-paused-session",level:3},{value:"AI Models",id:"ai-models",level:2},{value:"Which AI models does CCW support?",id:"which-ai-models-does-ccw-support",level:3},{value:"How do I configure API keys?",id:"how-do-i-configure-api-keys",level:3},{value:"What is multi-CLI collaboration?",id:"what-is-multi-cli-collaboration",level:3},{value:"Testing",id:"testing",level:2},{value:"How do I add tests to existing code?",id:"how-do-i-add-tests-to-existing-code",level:3},{value:"How do I fix failing tests?",id:"how-do-i-fix-failing-tests",level:3},{value:"What is TDD (Test-Driven Development)?",id:"what-is-tdd-test-driven-development",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"My workflow failed. What should I do?",id:"my-workflow-failed-what-should-i-do",level:3},{value:"How do I skip a failing task?",id:"how-do-i-skip-a-failing-task",level:3},{value:"How do I clean up old sessions?",id:"how-do-i-clean-up-old-sessions",level:3},{value:"Why is my workflow running slowly?",id:"why-is-my-workflow-running-slowly",level:3},{value:"How do I debug workflow issues?",id:"how-do-i-debug-workflow-issues",level:3},{value:"Integration",id:"integration",level:2},{value:"Can I use CCW with my existing CI/CD?",id:"can-i-use-ccw-with-my-existing-cicd",level:3},{value:"Can CCW work with monorepos?",id:"can-ccw-work-with-monorepos",level:3},{value:"How do I migrate from another tool?",id:"how-do-i-migrate-from-another-tool",level:3},{value:"Best Practices",id:"best-practices",level:2},{value:"What are the workflow best practices?",id:"what-are-the-workflow-best-practices",level:3},{value:"How do I get the most out of AI assistance?",id:"how-do-i-get-the-most-out-of-ai-assistance",level:3},{value:"Related Documentation",id:"related-documentation",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"frequently-asked-questions",children:"Frequently Asked Questions"})}),"\n",(0,l.jsx)(n.p,{children:"Common questions about CCW, workflows, commands, and troubleshooting."}),"\n",(0,l.jsx)(n.h2,{id:"general-questions",children:"General Questions"}),"\n",(0,l.jsx)(n.h3,{id:"what-is-ccw",children:"What is CCW?"}),"\n",(0,l.jsx)(n.p,{children:"CCW (Claude Code Workflows) is a professional workflow automation platform that combines AI-powered intelligence with structured development workflows. It provides 40+ commands and 15 integrated workflows to accelerate software development while maintaining quality standards."}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Key Features:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"AI-powered code analysis, generation, and review"}),"\n",(0,l.jsx)(n.li,{children:"15 workflow levels from rapid execution to intelligent orchestration"}),"\n",(0,l.jsx)(n.li,{children:"Session management with full state persistence"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination with parallel execution"}),"\n",(0,l.jsx)(n.li,{children:"Built-in testing, verification, and code review"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-system-requirements",children:"What are the system requirements?"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Minimum Requirements:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 16.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"Git 2.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"4GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"500MB disk space"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Recommended:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 18.x LTS"}),"\n",(0,l.jsx)(n.li,{children:"8GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"2GB disk space for artifacts and sessions"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-install-ccw",children:"How do I install CCW?"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Install globally via npm\r\nnpm install -g @ccw/cli\r\n\r\n# Or use npx (no installation required)\r\nnpx @ccw/cli init\r\n\r\n# Initialize in your project\r\nccw init\n"})}),"\n",(0,l.jsx)(n.h3,{id:"is-ccw-free-to-use",children:"Is CCW free to use?"}),"\n",(0,l.jsx)(n.p,{children:"Yes, CCW is open-source and free to use. However, CCW integrates with third-party AI services (Gemini, Codex, Claude, Qwen) that may have their own pricing. You'll need API keys for any AI services you want to use."}),"\n",(0,l.jsx)(n.h3,{id:"what-programming-languages-are-supported",children:"What programming languages are supported?"}),"\n",(0,l.jsx)(n.p,{children:"CCW supports all programming languages. The AI models can analyze and generate code in any language, including:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Web"}),": JavaScript, TypeScript, Python, PHP, Ruby"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Mobile"}),": Swift, Kotlin, React Native, Flutter"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Systems"}),": Rust, Go, C, C++"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Data"}),": Python, R, SQL"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Enterprise"}),": Java, C#, .NET"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"workflow-selection",children:"Workflow Selection"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-choose-the-right-workflow",children:"How do I choose the right workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Decision Framework"}),(0,l.jsx)(n.p,{children:"Use this quick decision tree:"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Post-development maintenance?"})," \u2192 Use ",(0,l.jsx)(n.a,{href:"/workflows/faq#what-is-the-difference-between-main-workflow-and-issue-workflow",children:"Issue Workflow"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Uncertain which commands to use?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"ccw-coordinator"})," (Level 5)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Requirements unclear?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"brainstorm:auto-parallel"})," (Level 4)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need persistent session?"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Standard development \u2192 ",(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test-driven \u2192 ",(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test fixes \u2192 ",(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})," (Level 3)"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need multi-perspective analysis?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"multi-cli-plan"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Bug fix?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-fix"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need planning?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Quick task?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-lite-lite"})," (Level 1)"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"whats-the-difference-between-main-workflow-and-issue-workflow",children:"What's the difference between Main Workflow and Issue Workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Main Workflow"})," is for primary development:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Feature development (Levels 1-5)"}),"\n",(0,l.jsx)(n.li,{children:"Active development phase"}),"\n",(0,l.jsx)(n.li,{children:"Dependency-based parallelism"}),"\n",(0,l.jsx)(n.li,{children:"Works on current branch"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Issue Workflow"})," is for post-development maintenance:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Bug fixes and enhancements after merge"}),"\n",(0,l.jsx)(n.li,{children:"After main workflow completes"}),"\n",(0,l.jsx)(n.li,{children:"Optional worktree isolation"}),"\n",(0,l.jsx)(n.li,{children:"Keeps main branch stable"}),"\n"]}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Main Workflow"}),(0,l.jsx)(n.th,{children:"Issue Workflow"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Purpose"})}),(0,l.jsx)(n.td,{children:"Feature development"}),(0,l.jsx)(n.td,{children:"Post-development fixes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Timing"})}),(0,l.jsx)(n.td,{children:"Development phase"}),(0,l.jsx)(n.td,{children:"After main workflow completes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Scope"})}),(0,l.jsx)(n.td,{children:"Complete feature implementation"}),(0,l.jsx)(n.td,{children:"Targeted fixes/enhancements"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Parallelism"})}),(0,l.jsx)(n.td,{children:"Dependency analysis"}),(0,l.jsx)(n.td,{children:"Worktree isolation (optional)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Branch Model"})}),(0,l.jsx)(n.td,{children:"Work on current branch"}),(0,l.jsx)(n.td,{children:"Can use isolated worktree"})]})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-minimum-execution-units",children:"What are Minimum Execution Units?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Minimum Execution Units"})," are sets of commands that must execute together as atomic groups to achieve meaningful workflow milestones. Splitting these commands breaks logical flow and creates incomplete states."]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common Minimum Execution Units:"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Unit"}),(0,l.jsx)(n.th,{children:"Commands"}),(0,l.jsx)(n.th,{children:"Purpose"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Quick Implementation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Lightweight plan and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Multi-CLI Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"multi-cli-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Multi-perspective analysis and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Bug Fix"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-fix"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Bug diagnosis and fix execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Verified Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"plan-verify"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Planning with verification and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"TDD Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Test-driven development planning and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Test Validation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})]}),(0,l.jsx)(n.td,{children:"Generate test tasks and execute test-fix cycle"})]})]})]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Example"}),": The unit ",(0,l.jsx)(n.code,{children:"lite-plan \u2192 lite-execute"})," must complete together. Stopping after ",(0,l.jsx)(n.code,{children:"lite-plan"})," leaves you with a plan but no implementation."]})]}),"\n",(0,l.jsx)(n.h3,{id:"when-should-i-use-each-workflow-level",children:"When should I use each workflow level?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Level Selection Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 1 (lite-lite-lite):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Quick fixes (typos, minor adjustments)"}),"\n",(0,l.jsx)(n.li,{children:"Simple features (single function, small utility)"}),"\n",(0,l.jsx)(n.li,{children:"Config changes (environment variables, timeouts)"}),"\n",(0,l.jsx)(n.li,{children:"Documentation updates"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 2 (lite-plan, lite-fix, multi-cli-plan):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Single-module features"}),"\n",(0,l.jsx)(n.li,{children:"Bug diagnosis and fixes"}),"\n",(0,l.jsx)(n.li,{children:"Technology selection decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 3 (plan, tdd-plan, test-fix-gen):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Multi-module changes"}),"\n",(0,l.jsx)(n.li,{children:"Refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Test-driven development"}),"\n",(0,l.jsx)(n.li,{children:"Test failure fixes"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Level 4 (brainstorm",":auto-parallel","):"]})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"New feature design"}),"\n",(0,l.jsx)(n.li,{children:"System architecture refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Exploratory requirements"}),"\n",(0,l.jsx)(n.li,{children:"Multi-dimensional trade-offs"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 5 (ccw-coordinator):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complex multi-step workflows"}),"\n",(0,l.jsx)(n.li,{children:"Uncertain which commands to use"}),"\n",(0,l.jsx)(n.li,{children:"End-to-end automation"}),"\n",(0,l.jsx)(n.li,{children:"Team collaboration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Issue Workflow:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Post-development issue fixes"}),"\n",(0,l.jsx)(n.li,{children:"Maintaining main branch stability"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"command-usage",children:"Command Usage"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-workflow-commands",children:"How do I use workflow commands?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Command Patterns"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Basic Pattern:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw <command> <arguments>\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Examples:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Level 1 - Direct execution\r\nccw lite-lite-lite "Fix login button"\r\n\r\n# Level 2 - Lightweight planning\r\nccw lite-plan "Add user profile page"\r\nccw lite-execute --in-memory\r\n\r\n# Level 3 - Full workflow\r\nccw workflow:plan "Implement OAuth2"\r\nccw workflow:execute --session WFS-oauth-auth\r\n\r\n# Level 4 - Brainstorming\r\nccw brainstorm:auto-parallel "Design notification system"\r\n\r\n# Level 5 - Intelligent coordination\r\nccw ccw-coordinator "Refactor API layer"\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-the-difference-between-lite-execute-and-execute",children:"What is the difference between lite-execute and execute?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"lite-execute"})," (Level 2):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw lite-execute --in-memory\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 2 workflows"}),"\n",(0,l.jsx)(n.li,{children:"In-memory planning (no session files)"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution for independent tasks"}),"\n",(0,l.jsx)(n.li,{children:"Optional code review"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"execute"})," (Level 3):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw workflow:execute --session WFS-{session-id}\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 3 workflows"}),"\n",(0,l.jsx)(n.li,{children:"Session-based execution"}),"\n",(0,l.jsx)(n.li,{children:"Dependency analysis"}),"\n",(0,l.jsx)(n.li,{children:"Full state tracking and resumability"}),"\n",(0,l.jsx)(n.li,{children:"Task completion summaries"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-hotfix-mode",children:"How do I use hotfix mode?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Hotfix Usage"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Hotfix mode"})," is for production emergencies:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw lite-fix --hotfix "Production database connection failing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"What it does:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Skips most diagnosis phases"}),"\n",(0,l.jsx)(n.li,{children:"Minimal planning (direct execution)"}),"\n",(0,l.jsx)(n.li,{children:"Auto-generates follow-up tasks for complete fix + post-mortem"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"When to use:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Production incidents"}),"\n",(0,l.jsx)(n.li,{children:"Critical bugs requiring immediate fix"}),"\n",(0,l.jsx)(n.li,{children:"Outages and service disruptions"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"What happens after:"}),"\r\nCCW automatically generates follow-up tasks for:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete root cause analysis"}),"\n",(0,l.jsx)(n.li,{children:"Comprehensive fix"}),"\n",(0,l.jsx)(n.li,{children:"Post-mortem documentation"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-resume-a-paused-session",children:"How do I resume a paused session?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Session Resume"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Resume most recent session\r\nccw workflow:session:resume\r\n\r\n# Resume specific session\r\nccw workflow:session:resume WFS-user-auth-v2\r\n\r\n# List all sessions\r\nccw workflow:session:list\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session states:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"active"}),": Currently running"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"paused"}),": Stopped, can be resumed"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"completed"}),": Finished and archived"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"ai-models",children:"AI Models"}),"\n",(0,l.jsx)(n.h3,{id:"which-ai-models-does-ccw-support",children:"Which AI models does CCW support?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Supported Models"}),(0,l.jsx)(n.p,{children:"CCW supports multiple AI models via CLI endpoints:"}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Model"}),(0,l.jsx)(n.th,{children:"Capabilities"}),(0,l.jsx)(n.th,{children:"Best For"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Gemini"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code review, debugging, refactoring"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Codex"})}),(0,l.jsx)(n.td,{children:"Analysis + Write + Review"}),(0,l.jsx)(n.td,{children:"Git-aware code review, implementation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Claude"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Complex reasoning, documentation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Qwen"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code generation, pattern matching"})]})]})]}),(0,l.jsxs)(n.p,{children:["Configure models in ",(0,l.jsx)(n.code,{children:"~/.claude/cli-tools.json"}),"."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-configure-api-keys",children:"How do I configure API keys?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"API Key Configuration"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Set environment variables:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Gemini\r\nexport GEMINI_API_KEY="your-key-here"\r\n\r\n# OpenAI (Codex)\r\nexport OPENAI_API_KEY="your-key-here"\r\n\r\n# Anthropic (Claude)\r\nexport ANTHROPIC_API_KEY="your-key-here"\r\n\r\n# Qwen\r\nexport DASHSCOPE_API_KEY="your-key-here"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Or configure in ",(0,l.jsx)(n.code,{children:".env"})," file:"]})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-env",children:"GEMINI_API_KEY=your-key-here\r\nOPENAI_API_KEY=your-key-here\r\nANTHROPIC_API_KEY=your-key-here\r\nDASHSCOPE_API_KEY=your-key-here\n"})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-multi-cli-collaboration",children:"What is multi-CLI collaboration?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Multi-CLI Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Multi-CLI collaboration"})," uses multiple AI models to analyze the same problem from different perspectives:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw multi-cli-plan "Compare Redis vs RabbitMQ for message queuing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"How it works:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Multiple AI models analyze independently"}),"\n",(0,l.jsx)(n.li,{children:"Each provides unique insights and recommendations"}),"\n",(0,l.jsx)(n.li,{children:"Results are synthesized into a comprehensive analysis"}),"\n",(0,l.jsx)(n.li,{children:"You get multiple perspectives before making decisions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best for:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Technology selection"}),"\n",(0,l.jsx)(n.li,{children:"Architecture decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n",(0,l.jsx)(n.li,{children:"Trade-off analysis"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-add-tests-to-existing-code",children:"How do I add tests to existing code?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Generation"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session Mode (from existing session):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw test-fix-gen WFS-user-auth-v2\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prompt Mode (direct description):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw test-fix-gen "Add unit tests for the auth API"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"CCW will:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze the code structure"}),"\n",(0,l.jsx)(n.li,{children:"Generate appropriate test cases"}),"\n",(0,l.jsx)(n.li,{children:"Create test files following project patterns"}),"\n",(0,l.jsx)(n.li,{children:"Implement tests with proper assertions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-fix-failing-tests",children:"How do I fix failing tests?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Fix Workflow"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Generate test fix tasks\r\nccw test-fix-gen "Tests failing for user registration"\r\n\r\n# Execute test-fix cycle\r\nccw test-cycle-execute\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workflow:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze test failures"}),"\n",(0,l.jsx)(n.li,{children:"Identify root causes"}),"\n",(0,l.jsx)(n.li,{children:"Fix issues iteratively"}),"\n",(0,l.jsx)(n.li,{children:"Verify >= 95% pass rate"}),"\n",(0,l.jsx)(n.li,{children:"Stop when tests pass or max iterations reached"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-tdd-test-driven-development",children:"What is TDD (Test-Driven Development)?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"TDD Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"TDD"})," follows the Red-Green-Refactor cycle:"]}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Red"}),": Write a failing test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Green"}),": Write minimal code to pass the test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Refactor"}),": Improve code while keeping tests green"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"The Iron Law:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:"NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Why write tests first?"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Test-First"}),(0,l.jsx)(n.th,{children:"Test-After"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Proof"})}),(0,l.jsx)(n.td,{children:"Tests fail before implementation"}),(0,l.jsx)(n.td,{children:"Tests pass immediately (proves nothing)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Discovery"})}),(0,l.jsx)(n.td,{children:"Edge cases found before coding"}),(0,l.jsx)(n.td,{children:"Edge cases found after coding"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Verification"})}),(0,l.jsx)(n.td,{children:"Verifies requirements"}),(0,l.jsx)(n.td,{children:"Verifies implementation"})]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,l.jsx)(n.h3,{id:"my-workflow-failed-what-should-i-do",children:"My workflow failed. What should I do?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Troubleshooting Steps"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Check the error message"})," - Identify the root cause"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Review session state"})," - Check ",(0,l.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Resume the session"})," - Use ",(0,l.jsx)(n.code,{children:"ccw workflow:session:resume"})," to continue"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Adjust and retry"})," - Modify approach based on error"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common fixes:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"API key errors"}),": Verify environment variables are set"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Module not found"}),": Run ",(0,l.jsx)(n.code,{children:"npm install"})," or ",(0,l.jsx)(n.code,{children:"pip install"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Git errors"}),": Ensure clean git state (",(0,l.jsx)(n.code,{children:"git status"}),")"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Timeout errors"}),": Increase timeout in task JSON"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-skip-a-failing-task",children:"How do I skip a failing task?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Skip Task"}),(0,l.jsx)(n.p,{children:'Edit the task JSON to set status to "completed":'}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Use with caution:"})," Skipping tasks may leave the workflow in an incomplete state."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-clean-up-old-sessions",children:"How do I clean up old sessions?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Cleanup Commands"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# List sessions\r\nccw workflow:session:list\r\n\r\n# Remove specific session\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# Clean all completed sessions\r\nccw workflow:clean\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Automatic cleanup:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Completed sessions are archived to ",(0,l.jsx)(n.code,{children:".workflow/completed/"})]}),"\n",(0,l.jsx)(n.li,{children:"Old sessions (> 30 days) can be safely removed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"why-is-my-workflow-running-slowly",children:"Why is my workflow running slowly?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Performance Tips"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Possible causes:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Large codebase"}),": CCW analyzes the entire project"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use ",(0,l.jsx)(n.code,{children:"--focus-paths"})," to limit analysis scope"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Many dependencies"}),": Slow AI response times"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use faster models (Gemini Flash) for initial analysis"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Sequential tasks"}),": Waiting on dependent tasks"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Review task dependencies in ",(0,l.jsx)(n.code,{children:"plan-verify"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Network issues"}),": Slow API calls to AI services"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Check network connectivity and API status"]}),"\n"]}),"\n"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Optimization tips:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Limit analysis scope\r\nccw plan "Add login" --focus-paths src/auth\r\n\r\n# Use faster model for initial analysis\r\nccw cli -p "Quick analysis" --model gemini-2.0-flash --mode analysis\r\n\r\n# Run in parallel when possible\r\nccw workflow:execute --parallel 4\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-debug-workflow-issues",children:"How do I debug workflow issues?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Debugging Workflow"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Enable debug logging:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'DEBUG=ccw:* ccw workflow:plan "My feature"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Check session logs:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# View session state\r\ncat .workflow/active/WFS-{session}/workflow-session.json\r\n\r\n# View task progress\r\ncat .workflow/active/WFS-{session}/TODO_LIST.md\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Use debug workflow:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw workflow:debug-with-file "Debug memory leak in connection handler"\n'})}),(0,l.jsx)(n.p,{children:"This provides hypothesis-driven debugging with documented exploration."})]}),"\n",(0,l.jsx)(n.h2,{id:"integration",children:"Integration"}),"\n",(0,l.jsx)(n.h3,{id:"can-i-use-ccw-with-my-existing-cicd",children:"Can I use CCW with my existing CI/CD?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"CI/CD Integration"}),(0,l.jsx)(n.p,{children:"Yes, CCW can be integrated into CI/CD pipelines:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"GitHub Actions Example:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:'- name: Run CCW Workflow\r\n run: |\r\n ccw workflow:plan "Implement feature"\r\n ccw workflow:execute --session WFS-feature\r\n env:\r\n GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best practices:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Use ",(0,l.jsx)(n.code,{children:"--mode analysis"})," for code review in CI"]}),"\n",(0,l.jsx)(n.li,{children:"Store API keys in secret management"}),"\n",(0,l.jsx)(n.li,{children:"Run workflows in isolated environments"}),"\n",(0,l.jsx)(n.li,{children:"Archive sessions for audit trails"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"can-ccw-work-with-monorepos",children:"Can CCW work with monorepos?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Monorepo Support"}),(0,l.jsx)(n.p,{children:"Yes, CCW supports monorepos:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workspace-aware execution:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Execute in specific package\r\nccw plan "Add auth to frontend" --cd packages/frontend\r\n\r\n# Execute across packages\r\nccw plan "Update API contracts" --include-dir packages/api,packages/shared\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Benefits:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Dependency-aware task distribution"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution across packages"}),"\n",(0,l.jsx)(n.li,{children:"Shared session state"}),"\n",(0,l.jsx)(n.li,{children:"Coordinated changes across workspaces"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-migrate-from-another-tool",children:"How do I migrate from another tool?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Migration Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From basic Git workflows:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Before: Manual planning\r\ngit checkout -b feature\r\n# ... manual planning ...\r\n\r\n# After: CCW planning\r\nccw plan "Add feature"\r\nccw execute --session WFS-feature\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From other AI tools:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"CCW provides structured workflows (vs. ad-hoc prompts)"}),"\n",(0,l.jsx)(n.li,{children:"Session management (vs. chat history)"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination (vs. single AI)"}),"\n",(0,l.jsx)(n.li,{children:"Persistent artifacts (vs. transient responses)"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Migration steps:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Install CCW: ",(0,l.jsx)(n.code,{children:"npm install -g @ccw/cli"})]}),"\n",(0,l.jsxs)(n.li,{children:["Initialize: ",(0,l.jsx)(n.code,{children:"ccw init"})]}),"\n",(0,l.jsx)(n.li,{children:"Start with Level 2 workflows for familiar patterns"}),"\n",(0,l.jsx)(n.li,{children:"Gradually adopt higher levels as needed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-workflow-best-practices",children:"What are the workflow best practices?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Start Simple"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use the lowest level that meets your needs"}),"\n",(0,l.jsx)(n.li,{children:"Don't over-engineer simple tasks"}),"\n",(0,l.jsx)(n.li,{children:"Scale up complexity as needed"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Plan Before Executing"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use verification steps when available"}),"\n",(0,l.jsx)(n.li,{children:"Review generated plans before execution"}),"\n",(0,l.jsx)(n.li,{children:"Adjust tasks based on project context"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Test Continuously"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Integrate testing into your workflow"}),"\n",(0,l.jsx)(n.li,{children:"Use TDD for critical features"}),"\n",(0,l.jsx)(n.li,{children:"Run tests after each iteration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Review Code"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use built-in review workflows"}),"\n",(0,l.jsx)(n.li,{children:"Leverage multi-CLI collaboration"}),"\n",(0,l.jsx)(n.li,{children:"Merge review feedback iteratively"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Document Decisions"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use brainstorm workflows for complex decisions"}),"\n",(0,l.jsx)(n.li,{children:"Keep session artifacts for reference"}),"\n",(0,l.jsx)(n.li,{children:"Archive completed sessions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"6. Maintain Session Hygiene"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete sessions when done"}),"\n",(0,l.jsx)(n.li,{children:"Clean up old sessions regularly"}),"\n",(0,l.jsx)(n.li,{children:"Archive important sessions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-get-the-most-out-of-ai-assistance",children:"How do I get the most out of AI assistance?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"AI Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Be Specific in Prompts"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'Bad: "Fix the bug"\r\nGood: "Fix the 500 error when users update their profile picture"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Provide Context"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw plan "Add OAuth2" \\\r\n --context "Using Express.js, MongoDB, Passport.js" \\\r\n --reference "Similar to existing Google OAuth implementation"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Use Multi-CLI Collaboration"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Get multiple perspectives\r\nccw multi-cli-plan "Architecture decision"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Leverage Memory"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Build on previous work\r\nccw plan "Continue auth refactor" --memory WFS-auth-v1\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Choose the Right Model"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Flash"}),": Fast, good for initial analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Pro"}),": Deep reasoning, complex tasks"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Codex"}),": Code review, git-aware analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Claude"}),": Documentation, complex reasoning"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"related-documentation",children:"Related Documentation"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/workflows/introduction",children:"Workflow Introduction"})," - Complete workflow guide"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/workflows/faq",children:"Workflow FAQ"})," - Workflow-specific questions"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/commands/general/ccw",children:"Command Reference"})," - All commands"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Still have questions?"})," ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"Open an issue"})," or check the ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/discussions",children:"discussion forums"}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/ccw/docs-site/build/zh/assets/js/runtime~main.3343a00a.js b/ccw/docs-site/build/zh/assets/js/runtime~main.3343a00a.js deleted file mode 100644 index f5b300a3..00000000 --- a/ccw/docs-site/build/zh/assets/js/runtime~main.3343a00a.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,r,t,f,c={},o={};function b(e){var a=o[e];if(void 0!==a)return a.exports;var r=o[e]={exports:{}};return c[e].call(r.exports,r,r.exports,b),r.exports}b.m=c,e=[],b.O=(a,r,t,f)=>{if(!r){var c=1/0;for(i=0;i=f)&&Object.keys(b.O).every(e=>b.O[e](r[d]))?r.splice(d--,1):(o=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[r,t,f]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var f=Object.create(null);b.r(f);var c={};a=a||[null,r({}),r([]),r(r)];for(var o=2&t&&e;("object"==typeof o||"function"==typeof o)&&!~a.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,b.d(f,c),f},b.d=(e,a)=>{for(var r in a)b.o(a,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,r)=>(b.f[r](e,a),a),[])),b.u=e=>"assets/js/"+({11:"ea313555",17:"ccef5d0f",47:"157db180",48:"a94703ab",98:"a7bd4aaa",121:"5c7b2278",139:"05467734",142:"0566a0a8",148:"4cc74730",207:"562bb8cb",268:"60eef997",273:"8a7e39ed",288:"666bb1bf",366:"775938bf",401:"17896441",407:"611877e1",411:"d550a629",412:"1bac9067",439:"e5f6eee3",448:"f9222419",512:"3f1fe4a1",567:"46f40178",647:"5e95c892",663:"6ab014e9",742:"aba21aa0",777:"fabaf1c8",814:"97c6e66a",829:"9cf7cb6b",834:"b17e4002",849:"4ad7db0f",856:"2ecf8b4a",896:"f4817052",927:"04db0a2e",934:"7a1ee27c",954:"f1bf82ec",971:"fe8e3dcf",975:"1e3006f3",991:"a6c3df16"}[e]||e)+"."+{11:"83795af1",17:"7361a812",47:"00b15415",48:"7b43e8e3",98:"e4fb75f9",121:"b4090abe",139:"307672f8",142:"395f48cb",148:"d1e6f3c3",207:"5f71cec9",268:"a2c45f16",273:"dcce61e8",288:"2b6e95d2",366:"8d71fe29",401:"d1575d23",407:"b99788ce",411:"32ac07bc",412:"1dc1a696",439:"c7efecd7",448:"d1b7c198",512:"3b4b8b58",567:"2e24b189",647:"ba4a4619",663:"bb0f8763",723:"83f5aec0",742:"dc3eeab8",777:"295c1a59",814:"6d0689f8",829:"a74b65de",834:"fc526d3a",849:"2e6ab2d6",856:"1a4b0ac6",896:"03d1c334",927:"364684cb",934:"3dd83112",954:"336ffb8a",971:"a08a438a",975:"cad7edf6",991:"3c82de99"}[e]+".js",b.miniCssF=e=>{},b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},f="ccw-docs:",b.l=(e,a,r,c)=>{if(t[e])t[e].push(a);else{var o,d;if(void 0!==r)for(var n=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var f=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),f&&f.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),d&&document.head.appendChild(o)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/docs/zh/",b.gca=function(e){return e={17896441:"401",ea313555:"11",ccef5d0f:"17","157db180":"47",a94703ab:"48",a7bd4aaa:"98","5c7b2278":"121","05467734":"139","0566a0a8":"142","4cc74730":"148","562bb8cb":"207","60eef997":"268","8a7e39ed":"273","666bb1bf":"288","775938bf":"366","611877e1":"407",d550a629:"411","1bac9067":"412",e5f6eee3:"439",f9222419:"448","3f1fe4a1":"512","46f40178":"567","5e95c892":"647","6ab014e9":"663",aba21aa0:"742",fabaf1c8:"777","97c6e66a":"814","9cf7cb6b":"829",b17e4002:"834","4ad7db0f":"849","2ecf8b4a":"856",f4817052:"896","04db0a2e":"927","7a1ee27c":"934",f1bf82ec:"954",fe8e3dcf:"971","1e3006f3":"975",a6c3df16:"991"}[e]||e,b.p+b.u(e)},(()=>{var e={354:0,869:0};b.f.j=(a,r)=>{var t=b.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var f=new Promise((r,f)=>t=e[a]=[r,f]);r.push(t[2]=f);var c=b.p+b.u(a),o=new Error;b.l(c,r=>{if(b.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var f=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;o.message="Loading chunk "+a+" failed.\n("+f+": "+c+")",o.name="ChunkLoadError",o.type=f,o.request=c,t[1](o)}},"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,r)=>{var t,f,[c,o,d]=r,n=0;if(c.some(a=>0!==e[a])){for(t in o)b.o(o,t)&&(b.m[t]=o[t]);if(d)var i=d(b)}for(a&&a(r);n{"use strict";var e,a,r,t,f,c={},b={};function o(e){var a=b[e];if(void 0!==a)return a.exports;var r=b[e]={exports:{}};return c[e].call(r.exports,r,r.exports,o),r.exports}o.m=c,e=[],o.O=(a,r,t,f)=>{if(!r){var c=1/0;for(i=0;i=f)&&Object.keys(o.O).every(e=>o.O[e](r[d]))?r.splice(d--,1):(b=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[r,t,f]},o.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return o.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var f=Object.create(null);o.r(f);var c={};a=a||[null,r({}),r([]),r(r)];for(var b=2&t&&e;("object"==typeof b||"function"==typeof b)&&!~a.indexOf(b);b=r(b))Object.getOwnPropertyNames(b).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,o.d(f,c),f},o.d=(e,a)=>{for(var r in a)o.o(a,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((a,r)=>(o.f[r](e,a),a),[])),o.u=e=>"assets/js/"+({11:"ea313555",17:"ccef5d0f",47:"157db180",48:"a94703ab",98:"a7bd4aaa",121:"5c7b2278",139:"05467734",142:"0566a0a8",148:"4cc74730",207:"562bb8cb",268:"60eef997",273:"8a7e39ed",288:"666bb1bf",366:"775938bf",401:"17896441",407:"611877e1",411:"d550a629",412:"1bac9067",439:"e5f6eee3",448:"f9222419",512:"3f1fe4a1",567:"46f40178",647:"5e95c892",663:"6ab014e9",742:"aba21aa0",777:"fabaf1c8",814:"97c6e66a",829:"9cf7cb6b",834:"b17e4002",849:"4ad7db0f",856:"2ecf8b4a",896:"f4817052",927:"04db0a2e",934:"7a1ee27c",954:"f1bf82ec",971:"fe8e3dcf",975:"1e3006f3",991:"a6c3df16"}[e]||e)+"."+{11:"a8cac875",17:"7361a812",47:"00b15415",48:"7b43e8e3",98:"e4fb75f9",121:"b4090abe",139:"307672f8",142:"395f48cb",148:"d1e6f3c3",207:"2d7d52c7",268:"a2c45f16",273:"b54858fe",288:"2b6e95d2",366:"0f3b32d9",401:"d1575d23",407:"b99788ce",411:"32ac07bc",412:"1dc1a696",439:"c7efecd7",448:"d1b7c198",512:"3b4b8b58",567:"a8a5a914",647:"ba4a4619",663:"bb0f8763",723:"83f5aec0",742:"dc3eeab8",777:"295c1a59",814:"6d0689f8",829:"a74b65de",834:"fc526d3a",849:"2e6ab2d6",856:"1a4b0ac6",896:"03d1c334",927:"364684cb",934:"3dd83112",954:"336ffb8a",971:"a08a438a",975:"cad7edf6",991:"3c82de99"}[e]+".js",o.miniCssF=e=>{},o.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},f="ccw-docs:",o.l=(e,a,r,c)=>{if(t[e])t[e].push(a);else{var b,d;if(void 0!==r)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var f=t[e];if(delete t[e],b.parentNode&&b.parentNode.removeChild(b),f&&f.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=u.bind(null,b.onerror),b.onload=u.bind(null,b.onload),d&&document.head.appendChild(b)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.p="/docs/zh/",o.gca=function(e){return e={17896441:"401",ea313555:"11",ccef5d0f:"17","157db180":"47",a94703ab:"48",a7bd4aaa:"98","5c7b2278":"121","05467734":"139","0566a0a8":"142","4cc74730":"148","562bb8cb":"207","60eef997":"268","8a7e39ed":"273","666bb1bf":"288","775938bf":"366","611877e1":"407",d550a629:"411","1bac9067":"412",e5f6eee3:"439",f9222419:"448","3f1fe4a1":"512","46f40178":"567","5e95c892":"647","6ab014e9":"663",aba21aa0:"742",fabaf1c8:"777","97c6e66a":"814","9cf7cb6b":"829",b17e4002:"834","4ad7db0f":"849","2ecf8b4a":"856",f4817052:"896","04db0a2e":"927","7a1ee27c":"934",f1bf82ec:"954",fe8e3dcf:"971","1e3006f3":"975",a6c3df16:"991"}[e]||e,o.p+o.u(e)},(()=>{var e={354:0,869:0};o.f.j=(a,r)=>{var t=o.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var f=new Promise((r,f)=>t=e[a]=[r,f]);r.push(t[2]=f);var c=o.p+o.u(a),b=new Error;o.l(c,r=>{if(o.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var f=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;b.message="Loading chunk "+a+" failed.\n("+f+": "+c+")",b.name="ChunkLoadError",b.type=f,b.request=c,t[1](b)}},"chunk-"+a,a)}},o.O.j=a=>0===e[a];var a=(a,r)=>{var t,f,[c,b,d]=r,n=0;if(c.some(a=>0!==e[a])){for(t in b)o.o(b,t)&&(o.m[t]=b[t]);if(d)var i=d(o)}for(a&&a(r);n /cli:cli-init | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/cli/codex-review.html b/ccw/docs-site/build/zh/commands/cli/codex-review.html index d325b658..5ce53f1a 100644 --- a/ccw/docs-site/build/zh/commands/cli/codex-review.html +++ b/ccw/docs-site/build/zh/commands/cli/codex-review.html @@ -4,7 +4,7 @@ /cli:codex-review | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/ccw-coordinator.html b/ccw/docs-site/build/zh/commands/general/ccw-coordinator.html index e2af7e1a..59068852 100644 --- a/ccw/docs-site/build/zh/commands/general/ccw-coordinator.html +++ b/ccw/docs-site/build/zh/commands/general/ccw-coordinator.html @@ -4,7 +4,7 @@ /ccw-coordinator | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/ccw-debug.html b/ccw/docs-site/build/zh/commands/general/ccw-debug.html index 2cd57afe..582fce3b 100644 --- a/ccw/docs-site/build/zh/commands/general/ccw-debug.html +++ b/ccw/docs-site/build/zh/commands/general/ccw-debug.html @@ -4,7 +4,7 @@ /ccw-debug | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/ccw-plan.html b/ccw/docs-site/build/zh/commands/general/ccw-plan.html index 19baeb67..f282e579 100644 --- a/ccw/docs-site/build/zh/commands/general/ccw-plan.html +++ b/ccw/docs-site/build/zh/commands/general/ccw-plan.html @@ -4,7 +4,7 @@ /ccw-plan | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/ccw-test.html b/ccw/docs-site/build/zh/commands/general/ccw-test.html index 9168423e..9b70d4a0 100644 --- a/ccw/docs-site/build/zh/commands/general/ccw-test.html +++ b/ccw/docs-site/build/zh/commands/general/ccw-test.html @@ -4,7 +4,7 @@ /ccw-test | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/ccw.html b/ccw/docs-site/build/zh/commands/general/ccw.html index 5249e1e7..f561e133 100644 --- a/ccw/docs-site/build/zh/commands/general/ccw.html +++ b/ccw/docs-site/build/zh/commands/general/ccw.html @@ -4,7 +4,7 @@ /ccw | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/codex-coordinator.html b/ccw/docs-site/build/zh/commands/general/codex-coordinator.html index 54d06d11..411d8b70 100644 --- a/ccw/docs-site/build/zh/commands/general/codex-coordinator.html +++ b/ccw/docs-site/build/zh/commands/general/codex-coordinator.html @@ -4,7 +4,7 @@ /codex-coordinator | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/general/flow-create.html b/ccw/docs-site/build/zh/commands/general/flow-create.html index a8be1e54..ba241b0c 100644 --- a/ccw/docs-site/build/zh/commands/general/flow-create.html +++ b/ccw/docs-site/build/zh/commands/general/flow-create.html @@ -4,7 +4,7 @@ /flow-create | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-convert-to-plan.html b/ccw/docs-site/build/zh/commands/issue/issue-convert-to-plan.html index bfa72185..2fb97987 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-convert-to-plan.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-convert-to-plan.html @@ -4,7 +4,7 @@ issue:convert-to-plan | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-discover.html b/ccw/docs-site/build/zh/commands/issue/issue-discover.html index 1af5e2ac..1d7d4fae 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-discover.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-discover.html @@ -4,7 +4,7 @@ issue:discover | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-execute.html b/ccw/docs-site/build/zh/commands/issue/issue-execute.html index 8aeb5e43..3b89d1e7 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-execute.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-execute.html @@ -4,7 +4,7 @@ issue:execute | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-from-brainstorm.html b/ccw/docs-site/build/zh/commands/issue/issue-from-brainstorm.html index 086041b7..00355759 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-from-brainstorm.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-from-brainstorm.html @@ -4,7 +4,7 @@ issue:from-brainstorm | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-new.html b/ccw/docs-site/build/zh/commands/issue/issue-new.html index 18783b8e..748f2efa 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-new.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-new.html @@ -4,7 +4,7 @@ issue:new | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-plan.html b/ccw/docs-site/build/zh/commands/issue/issue-plan.html index c558d83e..0b7c5ddc 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-plan.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-plan.html @@ -4,7 +4,7 @@ issue:plan | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/issue/issue-queue.html b/ccw/docs-site/build/zh/commands/issue/issue-queue.html index 34f2d41b..3269a285 100644 --- a/ccw/docs-site/build/zh/commands/issue/issue-queue.html +++ b/ccw/docs-site/build/zh/commands/issue/issue-queue.html @@ -4,7 +4,7 @@ issue:queue | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/memory/memory-compact.html b/ccw/docs-site/build/zh/commands/memory/memory-compact.html index 7e9e9278..012d3730 100644 --- a/ccw/docs-site/build/zh/commands/memory/memory-compact.html +++ b/ccw/docs-site/build/zh/commands/memory/memory-compact.html @@ -4,7 +4,7 @@ /memory:compact | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/memory/memory-docs-full-cli.html b/ccw/docs-site/build/zh/commands/memory/memory-docs-full-cli.html index 973db5d5..a51fb4d8 100644 --- a/ccw/docs-site/build/zh/commands/memory/memory-docs-full-cli.html +++ b/ccw/docs-site/build/zh/commands/memory/memory-docs-full-cli.html @@ -4,7 +4,7 @@ /memory:docs-full-cli | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/memory/memory-docs-related-cli.html b/ccw/docs-site/build/zh/commands/memory/memory-docs-related-cli.html index 0a04f39d..e33c92b8 100644 --- a/ccw/docs-site/build/zh/commands/memory/memory-docs-related-cli.html +++ b/ccw/docs-site/build/zh/commands/memory/memory-docs-related-cli.html @@ -4,7 +4,7 @@ /memory:docs-related-cli | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/memory/memory-load.html b/ccw/docs-site/build/zh/commands/memory/memory-load.html index 05d16730..efb5638c 100644 --- a/ccw/docs-site/build/zh/commands/memory/memory-load.html +++ b/ccw/docs-site/build/zh/commands/memory/memory-load.html @@ -4,7 +4,7 @@ /memory:load | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/memory/memory-update-full.html b/ccw/docs-site/build/zh/commands/memory/memory-update-full.html index c8428914..8428a1ac 100644 --- a/ccw/docs-site/build/zh/commands/memory/memory-update-full.html +++ b/ccw/docs-site/build/zh/commands/memory/memory-update-full.html @@ -4,7 +4,7 @@ /memory:update-full | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/commands/memory/memory-update-related.html b/ccw/docs-site/build/zh/commands/memory/memory-update-related.html index 2c802612..0c114e9e 100644 --- a/ccw/docs-site/build/zh/commands/memory/memory-update-related.html +++ b/ccw/docs-site/build/zh/commands/memory/memory-update-related.html @@ -4,7 +4,7 @@ /memory:update-related | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/faq.html b/ccw/docs-site/build/zh/faq.html index 79b688f6..1d19aa2f 100644 --- a/ccw/docs-site/build/zh/faq.html +++ b/ccw/docs-site/build/zh/faq.html @@ -4,7 +4,7 @@ Frequently Asked Questions | CCW Help Documentation - + @@ -54,7 +54,7 @@

Workflow Selection

How do I choose the right workflow?

Details
Decision Framework

Use this quick decision tree:

    -
  1. Post-development maintenance? → Use Issue Workflow
  2. +
  3. Post-development maintenance? → Use Issue Workflow
  4. Uncertain which commands to use? → Use ccw-coordinator (Level 5)
  5. Requirements unclear? → Use brainstorm:auto-parallel (Level 4)
  6. Need persistent session? @@ -301,8 +301,8 @@ CCW automatically generates follow-up tasks for:


diff --git a/ccw/docs-site/build/zh/index.html b/ccw/docs-site/build/zh/index.html index 0ccb89c7..2f3491af 100644 --- a/ccw/docs-site/build/zh/index.html +++ b/ccw/docs-site/build/zh/index.html @@ -4,7 +4,7 @@ CCW 帮助文档 | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/overview.html b/ccw/docs-site/build/zh/overview.html index 69036380..eb929562 100644 --- a/ccw/docs-site/build/zh/overview.html +++ b/ccw/docs-site/build/zh/overview.html @@ -4,7 +4,7 @@ 欢迎使用 CCW | CCW Help Documentation - + @@ -75,10 +75,10 @@

学习基础知识

  1. 工作流简介 - 了解工作流级别和选择
  2. -
  3. 命令参考 - 完整的命令文档
  4. -
  5. 常见问题 - 常见问题和故障排除
  6. +
  7. 命令参考 - 完整的命令文档
  8. +
  9. 常见问题 - 常见问题和故障排除
-

按使用场景探索

+

按使用场景探索

使用场景推荐工作流文档
快速修复lite-lite-lite级别 1
错误诊断lite-fix级别 2
功能开发planexecute级别 3
测试驱动开发tdd-planexecute级别 3
架构设计brainstorm:auto-parallel级别 4
复杂工作流ccw-coordinator级别 5
问题跟踪问题工作流工作流 FAQ

试用一下

安装:

@@ -86,7 +86,7 @@

初始化项目:

ccw init

第一个工作流:

-
# 简单任务
ccw lite-lite-lite "添加用户个人资料页面"

# 复杂功能
ccw workflow:plan "实现购物车"
+
# 简单任务
ccw lite-lite-lite "添加用户个人资料页面"

# 复杂功能
ccw workflow:plan "实现购物车"

支持

\ No newline at end of file diff --git a/ccw/docs-site/build/zh/workflows/introduction.html b/ccw/docs-site/build/zh/workflows/introduction.html index 89b09b84..c2563733 100644 --- a/ccw/docs-site/build/zh/workflows/introduction.html +++ b/ccw/docs-site/build/zh/workflows/introduction.html @@ -4,7 +4,7 @@ 工作流介绍 | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/workflows/level-1-ultra-lightweight.html b/ccw/docs-site/build/zh/workflows/level-1-ultra-lightweight.html index 8034e032..1cec167a 100644 --- a/ccw/docs-site/build/zh/workflows/level-1-ultra-lightweight.html +++ b/ccw/docs-site/build/zh/workflows/level-1-ultra-lightweight.html @@ -4,7 +4,7 @@ 层级 1: 超轻量工作流 | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/workflows/level-2-rapid.html b/ccw/docs-site/build/zh/workflows/level-2-rapid.html index 3fc5807b..d270bffd 100644 --- a/ccw/docs-site/build/zh/workflows/level-2-rapid.html +++ b/ccw/docs-site/build/zh/workflows/level-2-rapid.html @@ -4,7 +4,7 @@ 层级 2: 快速工作流 | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/workflows/level-3-standard.html b/ccw/docs-site/build/zh/workflows/level-3-standard.html index b150e7c4..d1f28a12 100644 --- a/ccw/docs-site/build/zh/workflows/level-3-standard.html +++ b/ccw/docs-site/build/zh/workflows/level-3-standard.html @@ -4,7 +4,7 @@ 层级 3: 标准工作流 | CCW Help Documentation - + diff --git a/ccw/docs-site/build/zh/workflows/level-4-brainstorm.html b/ccw/docs-site/build/zh/workflows/level-4-brainstorm.html index 65b88d3d..56e49608 100644 --- a/ccw/docs-site/build/zh/workflows/level-4-brainstorm.html +++ b/ccw/docs-site/build/zh/workflows/level-4-brainstorm.html @@ -4,7 +4,7 @@ 层级 4: 头脑风暴工作流 | CCW Help Documentation - + @@ -140,9 +140,9 @@
  • FAQ - 常见问题
  • 命令参考

    -

    参见 命令文档 了解:

    +

    参见 命令文档 了解:

      -
    • /workflow:brainstorm:auto-parallel - 多角色头脑风暴
    • +
    • /workflow:brainstorm:auto-parallel - 多角色头脑风暴
    • /workflow:brainstorm-with-file - 文档化创意生成
    • /workflow:debug-with-file - 假设驱动调试
    • /workflow:analyze-with-file - 协作分析
    • diff --git a/ccw/docs-site/build/zh/workflows/level-5-intelligent.html b/ccw/docs-site/build/zh/workflows/level-5-intelligent.html index 1bc985ad..2eec9bc1 100644 --- a/ccw/docs-site/build/zh/workflows/level-5-intelligent.html +++ b/ccw/docs-site/build/zh/workflows/level-5-intelligent.html @@ -4,7 +4,7 @@ 层级 5: 智能工作流 | CCW Help Documentation - + @@ -82,7 +82,7 @@
    • 常见问题 - 常见问题

    命令参考

    -

    参见 命令文档 了解:

    +

    参见 命令文档 了解:

    • /ccw-coordinator - 智能工作流编排器
    • /ccw - 主工作流编排器
    • diff --git a/ccw/docs-site/docs/faq.mdx b/ccw/docs-site/docs/faq.mdx index df5e26a8..4331f902 100644 --- a/ccw/docs-site/docs/faq.mdx +++ b/ccw/docs-site/docs/faq.mdx @@ -73,7 +73,7 @@ CCW supports all programming languages. The AI models can analyze and generate c Use this quick decision tree: -1. **Post-development maintenance?** → Use [Issue Workflow](./workflows/faq.mdx#what-is-the-difference-between-main-workflow-and-issue-workflow) +1. **Post-development maintenance?** → Use [Issue Workflow](/workflows/faq#what-is-the-difference-between-main-workflow-and-issue-workflow) 2. **Uncertain which commands to use?** → Use `ccw-coordinator` (Level 5) 3. **Requirements unclear?** → Use `brainstorm:auto-parallel` (Level 4) 4. **Need persistent session?** @@ -716,9 +716,9 @@ ccw plan "Continue auth refactor" --memory WFS-auth-v1 ## Related Documentation -- [Workflow Introduction](./workflows/introduction.mdx) - Complete workflow guide -- [Workflow FAQ](./workflows/faq.mdx) - Workflow-specific questions -- [Command Reference](./commands/general/ccw.mdx) - All commands +- [Workflow Introduction](/workflows/introduction) - Complete workflow guide +- [Workflow FAQ](/workflows/faq) - Workflow-specific questions +- [Command Reference](/commands/general/ccw) - All commands --- diff --git a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/overview.mdx b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/overview.mdx index 04afdc64..b19c88ac 100644 --- a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/overview.mdx +++ b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/overview.mdx @@ -283,9 +283,9 @@ CCW 为所有工作流会话提供完整的状态持久化: ### 学习基础知识 -1. **[工作流简介](./workflows/introduction.mdx)** - 了解工作流级别和选择 -2. **[命令参考](./commands/general/ccw.mdx)** - 完整的命令文档 -3. **[常见问题](./faq.mdx)** - 常见问题和故障排除 +1. **[工作流简介](/workflows/introduction)** - 了解工作流级别和选择 +2. **[命令参考](/commands/general/ccw)** - 完整的命令文档 +3. **[常见问题](/faq)** - 常见问题和故障排除 ### 按使用场景探索 diff --git a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/faq.mdx b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/faq.mdx index 2ad644e1..0d21b470 100644 --- a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/faq.mdx +++ b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/faq.mdx @@ -12,7 +12,7 @@ CCW 工作流的常见问题和解答。 ## 通用问题 -### Main Workflow 和 Issue Workflow 有什么区别? +### Main Workflow 和 Issue Workflow 有什么区别? {#what-is-the-difference-between-main-workflow-and-issue-workflow} **Main Workflow** 用于主要开发(Level 1-5),而 **Issue Workflow** 用于开发后期的维护工作。 @@ -372,4 +372,4 @@ rm -rf .workflow/active/WFS-{session-id} - [Level 3](./level-3-standard.mdx) - 标准工作流 - [Level 4](./level-4-brainstorm.mdx) - 头脑风暴工作流 - [Level 5](./level-5-intelligent.mdx) - 智能工作流 -- [命令](../commands/general/ccw.mdx) - 命令参考 +- [命令](/commands/general/ccw) - 命令参考 diff --git a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-4-brainstorm.mdx b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-4-brainstorm.mdx index de5c782a..30ec6d30 100644 --- a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-4-brainstorm.mdx +++ b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-4-brainstorm.mdx @@ -329,7 +329,7 @@ Task(subagent_type: "conceptual-planning-agent", prompt: "Role: {role}, Topic: { ## 命令参考 -参见 [命令文档](../commands/general/ccw.mdx) 了解: +参见 [命令文档](/commands/general/ccw) 了解: - `/workflow:brainstorm:auto-parallel` - 多角色头脑风暴 - `/workflow:brainstorm-with-file` - 文档化创意生成 - `/workflow:debug-with-file` - 假设驱动调试 diff --git a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-5-intelligent.mdx b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-5-intelligent.mdx index 7b1a8832..a64e54de 100644 --- a/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-5-intelligent.mdx +++ b/ccw/docs-site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-5-intelligent.mdx @@ -437,6 +437,6 @@ async function executeCommandChain(chain, analysis) { ## 命令参考 -参见 [命令文档](../commands/general/ccw.mdx) 了解: +参见 [命令文档](/commands/general/ccw) 了解: - `/ccw-coordinator` - 智能工作流编排器 - `/ccw` - 主工作流编排器