feat: initialize monorepo with package.json for CCW workflow platform

This commit is contained in:
catlog22
2026-02-03 14:42:20 +08:00
parent 5483a72e9f
commit 39b80b3386
267 changed files with 99597 additions and 2658 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,66 +3,32 @@ description: Serial collaborative planning with Plan Note - Single-agent sequent
argument-hint: "TASK=\"<description>\" [--max-domains=5] [--focus=<domain>]"
---
# Codex Collaborative-Plan-With-File Prompt
# Codex Collaborative-Plan-With-File Workflow
## Quick Start
Serial collaborative planning workflow using **Plan Note** architecture. Processes sub-domains sequentially, generates task plans, and detects conflicts across domains.
**Core workflow**: Understand → Template → Sequential Planning → Conflict Detection → Completion
**Key features**:
- **plan-note.md**: Shared collaborative document with pre-allocated sections
- **Serial domain processing**: Each sub-domain planned sequentially via CLI
- **Conflict detection**: Automatic file, dependency, and strategy conflict scanning
- **No merge needed**: Pre-allocated sections eliminate merge conflicts
**Note**: Codex does not support parallel agent execution. All domains are processed serially.
## Overview
Serial collaborative planning workflow using **Plan Note** architecture:
This workflow enables structured planning through sequential phases:
1. **Understanding**: Analyze requirements and identify 2-5 sub-domains
2. **Sequential Planning**: Process each sub-domain sequentially, generating plan.json + updating plan-note.md
3. **Conflict Detection**: Scan plan-note.md for conflicts
4. **Completion**: Generate executable plan.md summary
1. **Understanding & Template** - Analyze requirements, identify sub-domains, create plan-note.md template
2. **Sequential Planning** - Process each sub-domain serially via CLI analysis
3. **Conflict Detection** - Scan plan-note.md for conflicts across all domains
4. **Completion** - Generate human-readable plan.md summary
**Note**: Codex does not support parallel agent execution. All domains processed serially.
## Target Task
**$TASK**
**Parameters**:
- `--max-domains`: Maximum sub-domains to identify (default: 5)
- `--focus`: Focus specific domain (optional)
## Execution Process
```
Session Detection:
├─ Check if planning session exists for task
├─ EXISTS + plan-note.md exists → Continue mode
└─ NOT_FOUND → New session mode
Phase 1: Understanding & Template Creation
├─ Analyze task description (Glob/Grep/Bash)
├─ Identify 2-5 sub-domains
├─ Create plan-note.md template
└─ Generate requirement-analysis.json
Phase 2: Sequential Sub-Domain Planning (Serial)
├─ For each sub-domain (LOOP):
│ ├─ Gemini CLI: Generate detailed plan
│ ├─ Extract task summary
│ └─ Update plan-note.md section
└─ Complete all domains sequentially
Phase 3: Conflict Detection
├─ Parse plan-note.md
├─ Extract all tasks from all sections
├─ Detect file/dependency/strategy conflicts
└─ Update conflict markers in plan-note.md
Phase 4: Completion
├─ Generate conflicts.json
├─ Generate plan.md summary
└─ Ready for execution
Output:
├─ .workflow/.planning/{slug}-{date}/plan-note.md (executable)
├─ .workflow/.planning/{slug}-{date}/requirement-analysis.json (metadata)
├─ .workflow/.planning/{slug}-{date}/conflicts.json (conflict report)
├─ .workflow/.planning/{slug}-{date}/plan.md (human-readable)
└─ .workflow/.planning/{slug}-{date}/agents/{domain}/plan.json (detailed)
```
The key innovation is the **Plan Note** architecture - a shared collaborative document with pre-allocated sections per sub-domain, eliminating merge conflicts.
## Output Structure
@@ -80,469 +46,364 @@ Output:
└── plan.md # Phase 4: Human-readable summary
```
## Output Artifacts
### Phase 1: Understanding & Template
| Artifact | Purpose |
|----------|---------|
| `plan-note.md` | Collaborative template with pre-allocated task pool and evidence sections per domain |
| `requirement-analysis.json` | Sub-domain assignments, TASK ID ranges, complexity assessment |
### Phase 2: Sequential Planning
| Artifact | Purpose |
|----------|---------|
| `agents/{domain}/plan.json` | Detailed implementation plan per domain |
| Updated `plan-note.md` | Task pool and evidence sections filled for each domain |
### Phase 3: Conflict Detection
| Artifact | Purpose |
|----------|---------|
| `conflicts.json` | Detected conflicts with types, severity, and resolutions |
| Updated `plan-note.md` | Conflict markers section populated |
### Phase 4: Completion
| Artifact | Purpose |
|----------|---------|
| `plan.md` | Human-readable summary with requirements, tasks, and conflicts |
---
## Implementation Details
### Session Setup
### Session Initialization
```javascript
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
The workflow automatically generates a unique session identifier and directory structure.
const taskSlug = "$TASK".toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, '-').substring(0, 30)
const dateStr = getUtc8ISOString().substring(0, 10)
**Session ID Format**: `CPLAN-{slug}-{date}`
- `slug`: Lowercase alphanumeric, max 30 chars
- `date`: YYYY-MM-DD format (UTC+8)
const sessionId = `CPLAN-${taskSlug}-${dateStr}`
const sessionFolder = `.workflow/.planning/${sessionId}`
const planNotePath = `${sessionFolder}/plan-note.md`
const requirementsPath = `${sessionFolder}/requirement-analysis.json`
const conflictsPath = `${sessionFolder}/conflicts.json`
const planPath = `${sessionFolder}/plan.md`
**Session Directory**: `.workflow/.planning/{sessionId}/`
// Auto-detect mode
const sessionExists = fs.existsSync(sessionFolder)
const hasPlanNote = sessionExists && fs.existsSync(planNotePath)
const mode = hasPlanNote ? 'continue' : 'new'
**Auto-Detection**: If session folder exists with plan-note.md, automatically enters continue mode.
if (!sessionExists) {
bash(`mkdir -p ${sessionFolder}/agents`)
}
```
**Session Variables**:
- `sessionId`: Unique session identifier
- `sessionFolder`: Base directory for all artifacts
- `maxDomains`: Maximum number of sub-domains (default: 5)
---
### Phase 1: Understanding & Template Creation
## Phase 1: Understanding & Template Creation
#### Step 1.1: Analyze Task Description
**Objective**: Analyze task requirements, identify parallelizable sub-domains, and create the plan-note.md template with pre-allocated sections.
Use built-in tools (no agent):
### Step 1.1: Analyze Task Description
```javascript
// 1. Extract task keywords
const taskKeywords = extractKeywords("$TASK")
Use built-in tools to understand the task scope and identify sub-domains.
// 2. Identify sub-domains via analysis
// Example: "Implement real-time notification system"
// → Domains: [Backend API, Frontend UI, Notification Service, Data Storage, Testing]
**Analysis Activities**:
1. **Extract task keywords** - Identify key terms and concepts from the task description
2. **Identify sub-domains** - Split into 2-5 parallelizable focus areas based on task complexity
3. **Assess complexity** - Evaluate overall task complexity (Low/Medium/High)
4. **Search for references** - Find related documentation, README files, and architecture guides
const subDomains = identifySubDomains("$TASK", {
maxDomains: 5, // --max-domains parameter
keywords: taskKeywords
})
**Sub-Domain Identification Patterns**:
// 3. Estimate scope
const complexity = assessComplexity("$TASK")
```
| Pattern | Keywords |
|---------|----------|
| Backend API | 服务, 后端, API, 接口 |
| Frontend | 界面, 前端, UI, 视图 |
| Database | 数据, 存储, 数据库, 持久化 |
| Testing | 测试, 验证, QA |
| Infrastructure | 部署, 基础, 运维, 配置 |
#### Step 1.2: Create plan-note.md Template
**Ambiguity Handling**: When the task description is unclear or has multiple interpretations, gather user clarification before proceeding.
Generate structured template:
### Step 1.2: Create plan-note.md Template
```markdown
---
session_id: ${sessionId}
original_requirement: |
$TASK
created_at: ${getUtc8ISOString()}
complexity: ${complexity}
sub_domains: ${subDomains.map(d => d.name).join(', ')}
status: in_progress
---
Generate a structured template with pre-allocated sections for each sub-domain.
# 协作规划
**plan-note.md Structure**:
- **YAML Frontmatter**: session_id, original_requirement, created_at, complexity, sub_domains, status
- **Section: 需求理解**: Core objectives, key points, constraints, split strategy
- **Section: 任务池 - {Domain N}**: Pre-allocated task section per domain (TASK-{range})
- **Section: 依赖关系**: Auto-generated after all domains complete
- **Section: 冲突标记**: Populated in Phase 3
- **Section: 上下文证据 - {Domain N}**: Evidence section per domain
**Session ID**: ${sessionId}
**任务**: $TASK
**复杂度**: ${complexity}
**创建时间**: ${getUtc8ISOString()}
**TASK ID Range Allocation**: Each domain receives a non-overlapping range of 100 IDs (e.g., Domain 1: TASK-001~100, Domain 2: TASK-101~200).
### Step 1.3: Generate requirement-analysis.json
Create the sub-domain configuration document.
**requirement-analysis.json Structure**:
| Field | Purpose |
|-------|---------|
| `session_id` | Session identifier |
| `original_requirement` | Task description |
| `complexity` | Low / Medium / High |
| `sub_domains[]` | Array of focus areas with descriptions |
| `sub_domains[].focus_area` | Domain name |
| `sub_domains[].description` | Domain scope description |
| `sub_domains[].task_id_range` | Non-overlapping TASK ID range |
| `sub_domains[].estimated_effort` | Effort estimate |
| `sub_domains[].dependencies` | Cross-domain dependencies |
| `total_domains` | Number of domains identified |
**Success Criteria**:
- 2-5 clear sub-domains identified
- Each sub-domain can be planned independently
- Plan Note template includes all pre-allocated sections
- TASK ID ranges have no overlap (100 IDs per domain)
- Requirements understanding is comprehensive
---
## 需求理解
## Phase 2: Sequential Sub-Domain Planning
### 核心目标
${extractObjectives("$TASK")}
**Objective**: Process each sub-domain serially via CLI analysis, generating detailed plans and updating plan-note.md.
### 关键要点
${extractKeyPoints("$TASK")}
**Execution Model**: Serial processing - plan each domain completely before moving to the next. Later domains can reference earlier planning results.
### 约束条件
${extractConstraints("$TASK")}
### Step 2.1: Domain Planning Loop
### 拆分策略
${subDomains.length} 个子领域:
${subDomains.map((d, i) => `${i+1}. **${d.name}**: ${d.description}`).join('\n')}
For each sub-domain in sequence:
1. Execute Gemini CLI analysis for the current domain
2. Parse CLI output into structured plan
3. Save detailed plan as `agents/{domain}/plan.json`
4. Update plan-note.md with task summaries and evidence
**Planning Guideline**: Wait for each domain's CLI analysis to complete before proceeding to the next.
### Step 2.2: CLI Planning for Each Domain
Execute synchronous CLI analysis to generate a detailed implementation plan.
**CLI Analysis Scope**:
- **PURPOSE**: Generate detailed implementation plan for the specific domain
- **CONTEXT**: Domain description, related codebase files, prior domain results
- **TASK**: Analyze domain, identify all necessary tasks, define dependencies, estimate effort
- **EXPECTED**: JSON output with tasks, summaries, interdependencies, total effort
**Analysis Output Should Include**:
- Task breakdown with IDs from the assigned range
- Dependencies within and across domains
- Files to modify with specific locations
- Effort and complexity estimates per task
- Conflict risk assessment for each task
### Step 2.3: Update plan-note.md After Each Domain
Parse CLI output and update the plan-note.md sections for the current domain.
**Task Summary Format** (for "任务池" section):
- Task header: `### TASK-{ID}: {Title} [{domain}]`
- Fields: 状态 (status), 复杂度 (complexity), 依赖 (dependencies), 范围 (scope)
- Modification points: File paths with line ranges and change summaries
- Conflict risk assessment: Low/Medium/High
**Evidence Format** (for "上下文证据" section):
- Related files with relevance descriptions
- Existing patterns identified in codebase
- Constraints discovered during analysis
**Success Criteria**:
- All domains processed sequentially
- `agents/{domain}/plan.json` created for each domain
- `plan-note.md` updated with all task pools and evidence sections
- Task summaries follow consistent format
---
## 任务池 - ${subDomains[0].name}
*(TASK-001 ~ TASK-100)*
## Phase 3: Conflict Detection
*待由规划流程填充*
**Objective**: Analyze plan-note.md for conflicts across all domain contributions.
### Step 3.1: Parse plan-note.md
Extract all tasks from all "任务池" sections.
**Extraction Activities**:
1. Read plan-note.md content
2. Parse YAML frontmatter for session metadata
3. Identify all "任务池" sections by heading pattern
4. Extract tasks matching pattern: `### TASK-{ID}: {Title} [{domain}]`
5. Parse task details: status, complexity, dependencies, modification points, conflict risk
6. Consolidate into unified task list
### Step 3.2: Detect Conflicts
Scan all tasks for three categories of conflicts.
**Conflict Types**:
| Type | Severity | Detection Logic | Resolution |
|------|----------|-----------------|------------|
| file_conflict | high | Same file:location modified by multiple domains | Coordinate modification order or merge changes |
| dependency_cycle | critical | Circular dependencies in task graph (DFS detection) | Remove or reorganize dependencies |
| strategy_conflict | medium | Multiple high-risk tasks in same file from different domains | Review approaches and align on single strategy |
**Detection Activities**:
1. **File Conflicts**: Group modification points by file:location, identify locations modified by multiple domains
2. **Dependency Cycles**: Build dependency graph from task dependencies, detect cycles using depth-first search
3. **Strategy Conflicts**: Group tasks by files they modify, identify files with high-risk tasks from multiple domains
### Step 3.3: Generate Conflict Artifacts
Write conflict results and update plan-note.md.
**conflicts.json Structure**:
- `detected_at`: Detection timestamp
- `total_conflicts`: Number of conflicts found
- `conflicts[]`: Array of conflict objects with type, severity, tasks involved, description, suggested resolution
**plan-note.md Update**: Locate "冲突标记" section and populate with conflict summary markdown. If no conflicts found, mark as "✅ 无冲突检测到".
**Success Criteria**:
- All tasks extracted and analyzed
- `conflicts.json` written with detection results
- `plan-note.md` updated with conflict markers
- All conflict types checked (file, dependency, strategy)
---
## 任务池 - ${subDomains[1].name}
*(TASK-101 ~ TASK-200)*
## Phase 4: Completion
*待由规划流程填充*
**Objective**: Generate human-readable plan summary and finalize workflow.
---
### Step 4.1: Generate plan.md
## 依赖关系
Create a human-readable summary from plan-note.md content.
*所有子域规划完成后自动生成*
**plan.md Structure**:
---
| Section | Content |
|---------|---------|
| Header | Session ID, task description, creation time |
| 需求 (Requirements) | Copied from plan-note.md "需求理解" section |
| 子领域拆分 (Sub-Domains) | Each domain with description, task range, estimated effort |
| 任务概览 (Task Overview) | All tasks with complexity, dependencies, and target files |
| 冲突报告 (Conflict Report) | Summary of detected conflicts or "无冲突" |
| 执行指令 (Execution) | Command to execute the plan |
## 冲突标记
### Step 4.2: Display Completion Summary
*冲突检测阶段生成*
Present session statistics and next steps.
---
**Summary Content**:
- Session ID and directory path
- Total domains planned
- Total tasks generated
- Conflict status
- Execution command for next step
## 上下文证据 - ${subDomains[0].name}
*相关文件、现有模式、约束等*
---
## 上下文证据 - ${subDomains[1].name}
*相关文件、现有模式、约束等*
---
```
#### Step 1.3: Generate requirement-analysis.json
```javascript
const requirements = {
session_id: sessionId,
original_requirement: "$TASK",
complexity: complexity,
sub_domains: subDomains.map((domain, index) => ({
focus_area: domain.name,
description: domain.description,
task_id_range: [index * 100 + 1, (index + 1) * 100],
estimated_effort: domain.effort,
dependencies: domain.dependencies || []
})),
total_domains: subDomains.length
}
Write(requirementsPath, JSON.stringify(requirements, null, 2))
```
---
### Phase 2: Sequential Sub-Domain Planning
#### Step 2.1: Plan Each Domain Sequentially
```javascript
for (let i = 0; i < subDomains.length; i++) {
const domain = subDomains[i]
const domainFolder = `${sessionFolder}/agents/${domain.slug}`
const domainPlanPath = `${domainFolder}/plan.json`
console.log(`Planning Domain ${i+1}/${subDomains.length}: ${domain.name}`)
// Execute Gemini CLI for this domain
// ⏳ Wait for completion before proceeding to next domain
}
```
#### Step 2.2: CLI Planning for Current Domain
**CLI Call** (synchronous):
```bash
ccw cli -p "
PURPOSE: Generate detailed implementation plan for domain '${domain.name}' in task: $TASK
Success: Comprehensive task breakdown with clear dependencies and effort estimates
DOMAIN CONTEXT:
- Focus Area: ${domain.name}
- Description: ${domain.description}
- Task ID Range: ${domain.task_id_range[0]}-${domain.task_id_range[1]}
- Related Domains: ${relatedDomains.join(', ')}
PRIOR DOMAINS (if any):
${completedDomains.map(d => `- ${d.name}: ${completedTaskCount} tasks`).join('\n')}
TASK:
• Analyze ${domain.name} in detail
• Identify all necessary tasks (use TASK-ID range: ${domain.task_id_range[0]}-${domain.task_id_range[1]})
• Define task dependencies and order
• Estimate effort and complexity for each task
• Identify file modifications needed
• Assess conflict risks with other domains
MODE: analysis
CONTEXT: @**/*
EXPECTED:
JSON output with:
- tasks[]: {id, title, description, complexity, depends_on[], files_to_modify[], conflict_risk}
- summary: Overview of domain plan
- interdependencies: Links to other domains
- total_effort: Estimated effort points
OUTPUT FORMAT: Structured JSON
" --tool gemini --mode analysis
```
#### Step 2.3: Parse and Update plan-note.md
After CLI completes for each domain:
```javascript
// Parse CLI output
const planJson = parseCLIOutput(cliResult)
// Save detailed plan
Write(domainPlanPath, JSON.stringify(planJson, null, 2))
// Extract task summary
const taskSummary = planJson.tasks.map((t, idx) => `
### TASK-${t.id}: ${t.title} [${domain.slug}]
**状态**: 规划中
**复杂度**: ${t.complexity}
**依赖**: ${t.depends_on.length > 0 ? t.depends_on.map(d => `TASK-${d}`).join(', ') : 'None'}
**范围**: ${t.description}
**修改点**:
${t.files_to_modify.map(f => `- \`${f.path}:${f.line_range}\`: ${f.summary}`).join('\n')}
**冲突风险**: ${t.conflict_risk}
`).join('\n')
// Update plan-note.md
updatePlanNoteSection(
planNotePath,
`## 任务池 - ${domain.name}`,
taskSummary
)
// Extract evidence
const evidence = `
**相关文件**:
${planJson.related_files.map(f => `- ${f.path}: ${f.relevance}`).join('\n')}
**现有模式**:
${planJson.existing_patterns.map(p => `- ${p}`).join('\n')}
**约束**:
${planJson.constraints.map(c => `- ${c}`).join('\n')}
`
updatePlanNoteSection(
planNotePath,
`## 上下文证据 - ${domain.name}`,
evidence
)
```
#### Step 2.4: Process All Domains
```javascript
const completedDomains = []
for (const domain of subDomains) {
// Step 2.2: CLI call (synchronous)
const cliResult = executeCLI(domain)
// Step 2.3: Parse and update
updatePlanNoteFromCLI(domain, cliResult)
completedDomains.push(domain)
console.log(`✅ Completed: ${domain.name}`)
}
```
---
### Phase 3: Conflict Detection
#### Step 3.1: Parse plan-note.md
```javascript
const planContent = Read(planNotePath)
const sections = parsePlanNoteSections(planContent)
const allTasks = []
// Extract tasks from all domains
for (const section of sections) {
if (section.heading.includes('任务池')) {
const tasks = extractTasks(section.content)
allTasks.push(...tasks)
}
}
```
#### Step 3.2: Detect Conflicts
```javascript
const conflicts = []
// 1. File conflicts
const fileMap = new Map()
for (const task of allTasks) {
for (const file of task.files_to_modify) {
const key = `${file.path}:${file.line_range}`
if (!fileMap.has(key)) fileMap.set(key, [])
fileMap.get(key).push(task)
}
}
for (const [location, tasks] of fileMap.entries()) {
if (tasks.length > 1) {
const agents = new Set(tasks.map(t => t.domain))
if (agents.size > 1) {
conflicts.push({
type: 'file_conflict',
severity: 'high',
location: location,
tasks_involved: tasks.map(t => t.id),
agents_involved: Array.from(agents),
description: `Multiple domains modifying: ${location}`,
suggested_resolution: 'Coordinate modification order'
})
}
}
}
// 2. Dependency cycles
const depGraph = buildDependencyGraph(allTasks)
const cycles = detectCycles(depGraph)
for (const cycle of cycles) {
conflicts.push({
type: 'dependency_cycle',
severity: 'critical',
tasks_involved: cycle,
description: `Circular dependency: ${cycle.join(' → ')}`,
suggested_resolution: 'Remove or reorganize dependencies'
})
}
// Write conflicts.json
Write(conflictsPath, JSON.stringify({
detected_at: getUtc8ISOString(),
total_conflicts: conflicts.length,
conflicts: conflicts
}, null, 2))
```
#### Step 3.3: Update plan-note.md
```javascript
const conflictMarkdown = generateConflictMarkdown(conflicts)
updatePlanNoteSection(
planNotePath,
'## 冲突标记',
conflictMarkdown
)
```
---
### Phase 4: Completion
#### Step 4.1: Generate plan.md
```markdown
# 实现计划
**Session**: ${sessionId}
**任务**: $TASK
**创建**: ${getUtc8ISOString()}
---
## 需求
${copySection(planNotePath, '## 需求理解')}
---
## 子领域拆分
${subDomains.map((domain, i) => `
### ${i+1}. ${domain.name}
- **描述**: ${domain.description}
- **任务范围**: TASK-${domain.task_id_range[0]} ~ TASK-${domain.task_id_range[1]}
- **预估工作量**: ${domain.effort}
`).join('\n')}
---
## 任务概览
${allTasks.map(t => `
### ${t.id}: ${t.title}
- **复杂度**: ${t.complexity}
- **依赖**: ${t.depends_on.length > 0 ? t.depends_on.join(', ') : 'None'}
- **文件**: ${t.files_to_modify.map(f => f.path).join(', ')}
`).join('\n')}
---
## 冲突报告
${conflicts.length > 0
? `检测到 ${conflicts.length} 个冲突:\n${copySection(planNotePath, '## 冲突标记')}`
: '✅ 无冲突检测到'}
---
## 执行指令
\`\`\`bash
/workflow:unified-execute-with-file ${planPath}
\`\`\`
```
#### Step 4.2: Write Summary
```javascript
Write(planPath, planMarkdown)
```
**Success Criteria**:
- `plan.md` generated with complete summary
- All artifacts present in session directory
- User informed of completion and next steps
---
## Configuration
### Sub-Domain Identification
Common domain patterns:
- Backend API: "服务", "后端", "API", "接口"
- Frontend: "界面", "前端", "UI", "视图"
- Database: "数据", "存储", "数据库", "持久化"
- Testing: "测试", "验证", "QA"
- Infrastructure: "部署", "基础", "运维", "配置"
| Parameter | Default | Description |
|-----------|---------|-------------|
| `--max-domains` | 5 | Maximum sub-domains to identify |
| `--focus` | None | Focus specific domain (optional) |
---
## Error Handling
## Error Handling & Recovery
| Error | Resolution |
|-------|------------|
| CLI timeout | Retry with shorter prompt |
| No tasks generated | Review domain description, retry |
| Section not found | Recreate section in plan-note.md |
| Conflict detection fails | Continue with empty conflicts |
| Situation | Action | Recovery |
|-----------|--------|----------|
| CLI timeout | Retry with shorter, focused prompt | Skip domain or reduce scope |
| No tasks generated | Review domain description | Retry with refined description |
| Section not found in plan-note | Recreate section defensively | Continue with new section |
| Conflict detection fails | Continue with empty conflicts | Note in completion summary |
| Session folder conflict | Append timestamp suffix | Create unique folder |
---
## Iteration Patterns
### New Planning Session
```
User initiates: TASK="task description"
├─ No session exists → New session mode
├─ Analyze task and identify sub-domains
├─ Create plan-note.md template
├─ Generate requirement-analysis.json
├─ Process each domain serially:
│ ├─ CLI analysis → plan.json
│ └─ Update plan-note.md sections
├─ Detect conflicts
├─ Generate plan.md summary
└─ Report completion
```
### Continue Existing Session
```
User resumes: TASK="same task"
├─ Session exists → Continue mode
├─ Load plan-note.md and requirement-analysis.json
├─ Resume from first incomplete domain
└─ Continue sequential processing
```
---
## Best Practices
1. **Clear Task Description**: Detailed requirements → better sub-domains
2. **Review plan-note.md**: Check before moving to next phase
3. **Resolve Conflicts**: Address before execution
4. **Inspect Details**: Review agents/{domain}/plan.json for specifics
### Before Starting Planning
1. **Clear Task Description**: Detailed requirements lead to better sub-domain splitting
2. **Reference Documentation**: Ensure latest README and design docs are identified
3. **Clarify Ambiguities**: Resolve unclear requirements before committing to sub-domains
### During Planning
1. **Review Plan Note**: Check plan-note.md between phases to verify progress
2. **Verify Domains**: Ensure sub-domains are truly independent and parallelizable
3. **Check Dependencies**: Cross-domain dependencies should be documented explicitly
4. **Inspect Details**: Review `agents/{domain}/plan.json` for specifics when needed
### After Planning
1. **Resolve Conflicts**: Address high/critical conflicts before execution
2. **Review Summary**: Check plan.md for completeness and accuracy
3. **Validate Tasks**: Ensure all tasks have clear scope and modification targets
---
## When to Use This Workflow
### Use collaborative-plan-with-file when:
- Complex tasks requiring multi-domain decomposition
- Need structured planning with conflict detection
- Tasks spanning multiple modules or systems
- Want documented planning process for team review
- Preparing for multi-step execution workflows
### Use direct execution when:
- Simple, single-domain tasks
- Clear implementation path without ambiguity
- Quick follow-up to existing planning session
### Consider alternatives when:
- Exploring ideas without clear direction → use `workflow:brainstorm-with-file`
- Analyzing existing code/system → use `workflow:analyze-with-file`
- Lightweight planning for simple features → use `workflow:lite-plan`
- Ready to execute existing plan → use `workflow:unified-execute-with-file`
---

View File

@@ -3,503 +3,490 @@ description: Universal execution engine for consuming planning/brainstorm/analys
argument-hint: "PLAN=\"<path>\" [--auto-commit] [--dry-run]"
---
# Codex Unified-Execute-With-File Prompt
# Codex Unified-Execute-With-File Workflow
## Overview
## Quick Start
Universal execution engine consuming **any** planning output and executing tasks serially with progress tracking.
**Core workflow**: Load Plan → Parse Tasks → Execute Sequentially → Track Progress → Verify
**Core workflow**: Load Plan → Parse Tasks → Validate → Execute Sequentially → Track Progress → Verify
## Target Plan
**Key features**:
- **Format-agnostic**: Supports plan.json, plan-note.md, synthesis.json, conclusions.json
- **Serial execution**: Process tasks sequentially with dependency ordering
- **Progress tracking**: execution.md overview + execution-events.md detailed log
- **Auto-commit**: Optional conventional commits after each task
- **Dry-run mode**: Simulate execution without making changes
**$PLAN**
## Overview
**Parameters**:
- `--auto-commit`: Auto-commit after each task (conventional commits)
- `--dry-run`: Simulate execution without making changes
This workflow enables reliable task execution through sequential phases:
## Execution Process
1. **Plan Detection & Parsing** - Load and parse planning output in any format
2. **Pre-Execution Analysis** - Validate feasibility and identify potential issues
3. **Serial Task Execution** - Execute tasks one by one with dependency ordering
4. **Progress Tracking** - Update execution logs with results and discoveries
5. **Completion** - Generate summary and offer follow-up actions
```
Session Initialization:
├─ Detect or load plan file
├─ Parse tasks from plan (JSON, Markdown, or other formats)
├─ Build task dependency graph
└─ Validate for cycles and feasibility
Pre-Execution:
├─ Analyze plan structure
├─ Identify modification targets (files)
├─ Check file conflicts and feasibility
└─ Generate execution strategy
Serial Execution (Task by Task):
├─ For each task:
│ ├─ Extract task context
│ ├─ Load previous task outputs
│ ├─ Route to Codex CLI for execution
│ ├─ Track progress in execution.md
│ ├─ Auto-commit if enabled
│ └─ Next task
└─ Complete all tasks
Post-Execution:
├─ Generate execution summary
├─ Record completion status
├─ Identify any failures
└─ Suggest next steps
Output:
├─ .workflow/.execution/{session-id}/execution.md (overview + timeline)
├─ .workflow/.execution/{session-id}/execution-events.md (detailed log)
└─ Git commits (if --auto-commit enabled)
```
The key innovation is the **unified event log** that serves as both human-readable progress tracker and machine-parseable state store.
## Output Structure
```
.workflow/.execution/EXEC-{slug}-{date}/
.workflow/.execution/EXEC-{slug}-{date}-{random}/
├── execution.md # Plan overview + task table + timeline
└── execution-events.md # ⭐ Unified log (all executions) - SINGLE SOURCE OF TRUTH
```
## Output Artifacts
### Phase 1: Session Initialization
| Artifact | Purpose |
|----------|---------|
| `execution.md` | Overview of plan source, task table, execution timeline |
| Session folder | `.workflow/.execution/{sessionId}/` |
### Phase 2: Pre-Execution Analysis
| Artifact | Purpose |
|----------|---------|
| `execution.md` (updated) | Feasibility assessment and validation results |
### Phase 3-4: Serial Execution & Progress
| Artifact | Purpose |
|----------|---------|
| `execution-events.md` | Unified log: all task executions with results |
| `execution.md` (updated) | Real-time progress updates and task status |
### Phase 5: Completion
| Artifact | Purpose |
|----------|---------|
| Final `execution.md` | Complete execution summary and statistics |
| Final `execution-events.md` | Complete execution history |
---
## Implementation Details
### Session Setup
### Session Initialization
```javascript
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
The workflow creates a unique session for tracking execution.
// Resolve plan path
let planPath = "$PLAN"
if (!fs.existsSync(planPath)) {
// Auto-detect from common locations
const candidates = [
'.workflow/IMPL_PLAN.md',
'.workflow/.planning/*/plan-note.md',
'.workflow/.brainstorm/*/synthesis.json',
'.workflow/.analysis/*/conclusions.json'
]
planPath = autoDetectPlan(candidates)
}
**Session ID Format**: `EXEC-{slug}-{date}-{random}`
- `slug`: Plan filename without extension, lowercased, max 30 chars
- `date`: YYYY-MM-DD format (UTC+8)
- `random`: 7-char random suffix for uniqueness
// Create session
const planSlug = path.basename(planPath).replace(/[^a-z0-9-]/g, '').substring(0, 30)
const dateStr = getUtc8ISOString().substring(0, 10)
const randomId = Math.random().toString(36).substring(7)
const sessionId = `EXEC-${planSlug}-${dateStr}-${randomId}`
**Session Directory**: `.workflow/.execution/{sessionId}/`
const sessionFolder = `.workflow/.execution/${sessionId}`
const executionPath = `${sessionFolder}/execution.md`
const eventsPath = `${sessionFolder}/execution-events.md`
**Plan Path Resolution**:
1. If `$PLAN` provided explicitly, use it
2. Otherwise, auto-detect from common locations:
- `.workflow/IMPL_PLAN.md`
- `.workflow/.planning/*/plan-note.md`
- `.workflow/.brainstorm/*/synthesis.json`
- `.workflow/.analysis/*/conclusions.json`
bash(`mkdir -p ${sessionFolder}`)
```
**Session Variables**:
- `sessionId`: Unique session identifier
- `sessionFolder`: Base directory for artifacts
- `planPath`: Resolved path to plan file
- `autoCommit`: Boolean flag for auto-commit mode
- `dryRun`: Boolean flag for dry-run mode
---
### Phase 1: Plan Detection & Parsing
## Phase 1: Plan Detection & Parsing
#### Step 1.1: Load Plan File
**Objective**: Load plan file, parse tasks, build execution order, and validate for cycles.
```javascript
// Detect plan format and parse
let tasks = []
### Step 1.1: Load Plan File
if (planPath.endsWith('.json')) {
// JSON plan (from lite-plan, collaborative-plan, etc.)
const planJson = JSON.parse(Read(planPath))
tasks = parsePlanJson(planJson)
} else if (planPath.endsWith('.md')) {
// Markdown plan (IMPL_PLAN.md, plan-note.md, etc.)
const planMd = Read(planPath)
tasks = parsePlanMarkdown(planMd)
} else if (planPath.endsWith('synthesis.json')) {
// Brainstorm synthesis
const synthesis = JSON.parse(Read(planPath))
tasks = convertSynthesisToTasks(synthesis)
} else if (planPath.endsWith('conclusions.json')) {
// Analysis conclusions
const conclusions = JSON.parse(Read(planPath))
tasks = convertConclusionsToTasks(conclusions)
} else {
throw new Error(`Unsupported plan format: ${planPath}`)
}
```
Detect plan format and parse based on file extension.
#### Step 1.2: Build Execution Order
**Supported Formats**:
```javascript
// Handle task dependencies
const depGraph = buildDependencyGraph(tasks)
| Format | Source | Parser |
|--------|--------|--------|
| plan.json | lite-plan, collaborative-plan | parsePlanJson() |
| plan-note.md | collaborative-plan | parsePlanMarkdown() |
| synthesis.json | brainstorm session | convertSynthesisToTasks() |
| conclusions.json | analysis session | convertConclusionsToTasks() |
// Validate: no cycles
validateNoCycles(depGraph)
**Parsing Activities**:
1. Read plan file content
2. Detect format from filename or content structure
3. Route to appropriate parser
4. Extract tasks with required fields: id, title, description, files_to_modify, depends_on
// Calculate execution order (simple topological sort)
const executionOrder = topologicalSort(depGraph, tasks)
### Step 1.2: Build Execution Order
// In Codex: serial execution, no parallel waves
console.log(`Total tasks: ${tasks.length}`)
console.log(`Execution order: ${executionOrder.map(t => t.id).join(' → ')}`)
```
Analyze task dependencies and calculate execution sequence.
#### Step 1.3: Generate execution.md
**Execution Order Calculation**:
1. Build dependency graph from task dependencies
2. Validate for circular dependencies (no cycles allowed)
3. Calculate topological sort for sequential execution order
4. In Codex: serial mode means executing tasks one by one
```markdown
# 执行计划
**Dependency Validation**:
- Check that all referenced dependencies exist
- Detect cycles and report as critical error
- Order tasks based on dependencies
**Session**: ${sessionId}
**Plan Source**: ${planPath}
**Started**: ${getUtc8ISOString()}
### Step 1.3: Generate execution.md
Create the main execution tracking document.
**execution.md Structure**:
- **Header**: Session ID, plan source, execution timestamp
- **Plan Overview**: Summary from plan metadata
- **Task List**: Table with ID, title, complexity, dependencies, status
- **Execution Timeline**: To be updated as tasks complete
**Success Criteria**:
- execution.md created with complete plan overview
- Task list includes all tasks from plan
- Execution order calculated with no cycles
- Ready for feasibility analysis
---
## 计划概览
## Phase 2: Pre-Execution Analysis
| 字段 | 值 |
|------|-----|
| 总任务数 | ${tasks.length} |
| 计划来源 | ${planPath} |
| 执行模式 | ${dryRun ? '模拟' : '实际'} |
| 自动提交 | ${autoCommit ? '启用' : '禁用'} |
**Objective**: Validate feasibility and identify potential issues before starting execution.
### Step 2.1: Analyze Plan Structure
Examine task dependencies, file modifications, and potential conflicts.
**Analysis Activities**:
1. **Check file conflicts**: Identify files modified by multiple tasks
2. **Check missing dependencies**: Verify all referenced dependencies exist
3. **Check file existence**: Identify files that will be created vs modified
4. **Estimate complexity**: Assess overall execution complexity
**Issue Detection**:
- Sequential modifications to same file (document for ordered execution)
- Missing dependency targets
- High complexity patterns that may need special handling
### Step 2.2: Generate Feasibility Report
Document analysis results and recommendations.
**Feasibility Report Content**:
- Issues found (if any)
- File conflict warnings
- Dependency validation results
- Complexity assessment
- Recommended execution strategy
### Step 2.3: Update execution.md
Append feasibility analysis results.
**Success Criteria**:
- All validation checks completed
- Issues documented in execution.md
- No blocking issues found (or user confirmed to proceed)
- Ready for task execution
---
## 任务列表
## Phase 3: Serial Task Execution
| ID | 标题 | 复杂度 | 依赖 | 状态 |
|----|------|--------|-------|-------|
${tasks.map(t => `| ${t.id} | ${t.title} | ${t.complexity || 'medium'} | ${t.depends_on?.join(',') || '-'} | ⏳ |`).join('\n')}
**Objective**: Execute tasks one by one in dependency order, tracking progress and recording results.
---
**Execution Model**: Serial execution - process tasks sequentially, one at a time. Each task must complete before the next begins.
## 执行时间线
### Step 3.1: Execute Tasks Sequentially
*(更新于 execution-events.md)*
For each task in execution order:
1. Load context from previous task results
2. Route to Codex CLI for execution
3. Wait for completion
4. Record results in execution-events.md
5. Auto-commit if enabled
6. Move to next task
---
**Execution Loop**:
```
For each task in executionOrder:
├─ Extract task context
├─ Load previous task outputs
├─ Execute task via CLI (synchronous)
├─ Record result with timestamp
├─ Auto-commit if enabled
└─ Continue to next task
```
---
### Step 3.2: Execute Task via CLI
### Phase 2: Pre-Execution Analysis
Execute individual task using Codex CLI in synchronous mode.
#### Step 2.1: Feasibility Check
**CLI Execution Scope**:
- **PURPOSE**: Execute task from plan
- **TASK DETAILS**: ID, title, description, required changes
- **PRIOR CONTEXT**: Results from previous tasks
- **REQUIRED CHANGES**: Files to modify with specific locations
- **MODE**: write (modification mode)
- **EXPECTED**: Files modified as specified, no test failures
```javascript
const issues = []
**CLI Parameters**:
- `--tool codex`: Use Codex for execution
- `--mode write`: Allow file modifications
- Synchronous execution: Wait for completion
// Check file conflicts
const fileMap = new Map()
for (const task of tasks) {
for (const file of task.files_to_modify || []) {
if (!fileMap.has(file)) fileMap.set(file, [])
fileMap.get(file).push(task.id)
}
}
### Step 3.3: Track Progress
for (const [file, taskIds] of fileMap.entries()) {
if (taskIds.length > 1) {
// Sequential modification of same file
console.log(`⚠️ Sequential modification: ${file} (${taskIds.join(' → ')})`)
}
}
Record task execution results in the unified event log.
// Check missing dependencies
for (const task of tasks) {
for (const depId of task.depends_on || []) {
if (!tasks.find(t => t.id === depId)) {
issues.push(`Task ${task.id} depends on missing ${depId}`)
}
}
}
**execution-events.md Structure**:
- **Header**: Session metadata
- **Event Timeline**: One entry per task with results
- **Event Format**:
- Task ID and title
- Timestamp and duration
- Status (completed/failed)
- Summary of changes
- Any notes or issues discovered
if (issues.length > 0) {
console.log(`⚠️ Issues found:\n${issues.map(i => `- ${i}`).join('\n')}`)
}
```
**Event Recording Activities**:
1. Capture execution timestamp
2. Record task status and duration
3. Document any modifications made
4. Note any issues or discoveries
5. Append event to execution-events.md
### Step 3.4: Auto-Commit (if enabled)
Commit task changes with conventional commit format.
**Auto-Commit Process**:
1. Get changed files from git status
2. Filter to task.files_to_modify
3. Stage files: `git add`
4. Generate commit message based on task type
5. Commit: `git commit -m`
**Commit Message Format**:
- Type: feat, fix, refactor, test, docs (inferred from task)
- Scope: file/module affected (inferred from files modified)
- Subject: Task title or description
- Footer: Task ID and plan reference
**Success Criteria**:
- All tasks executed sequentially
- Results recorded in execution-events.md
- Auto-commits created (if enabled)
- Failed tasks logged for review
---
### Phase 3: Serial Task Execution
## Phase 4: Completion
#### Step 3.1: Execute Tasks Sequentially
**Objective**: Summarize execution results and offer follow-up actions.
```javascript
const executionLog = []
const taskResults = new Map()
### Step 4.1: Collect Statistics
for (const task of executionOrder) {
console.log(`\n📋 Executing: ${task.id} - ${task.title}`)
Gather execution metrics.
const eventRecord = {
timestamp: getUtc8ISOString(),
task_id: task.id,
task_title: task.title,
status: 'in_progress',
notes: []
}
**Metrics Collection**:
- Total tasks executed
- Successfully completed count
- Failed count
- Success rate percentage
- Total duration
- Artifacts generated
try {
// Load context from previous tasks
const priorOutputs = executionOrder
.slice(0, executionOrder.indexOf(task))
.map(t => taskResults.get(t.id))
.filter(Boolean)
### Step 4.2: Generate Summary
const context = {
task: task,
prior_outputs: priorOutputs,
plan_source: planPath
}
Update execution.md with final results.
// Execute task via Codex CLI
if (dryRun) {
console.log(`[DRY RUN] ${task.id}`)
eventRecord.status = 'completed'
eventRecord.notes.push('Dry run - no changes made')
} else {
await executeTaskViaCLI(task, context)
eventRecord.status = 'completed'
**Summary Content**:
- Execution completion timestamp
- Statistics table
- Task status table (completed/failed)
- Commit log (if auto-commit enabled)
- Any failed tasks requiring attention
// Auto-commit if enabled
if (autoCommit) {
commitTask(task)
eventRecord.notes.push(`✅ Committed: ${task.id}`)
}
}
### Step 4.3: Display Completion Summary
} catch (error) {
eventRecord.status = 'failed'
eventRecord.error = error.message
eventRecord.notes.push(`❌ Error: ${error.message}`)
console.log(`❌ Failed: ${task.id}`)
}
Present results to user.
executionLog.push(eventRecord)
updateExecutionEvents(eventsPath, executionLog)
updateExecutionMd(executionPath, task, eventRecord)
}
```
**Summary Output**:
- Session ID and folder path
- Statistics (completed/failed/total)
- Failed tasks (if any)
- Execution log location
- Next step recommendations
#### Step 3.2: Execute Task via CLI
**CLI Call** (synchronous):
```bash
ccw cli -p "
PURPOSE: Execute task '${task.id}: ${task.title}' from plan
Success: Task completed as specified in plan
TASK DETAILS:
- ID: ${task.id}
- Title: ${task.title}
- Description: ${task.description}
- Complexity: ${task.complexity}
- Estimated Effort: ${task.effort}
REQUIRED CHANGES:
${task.files_to_modify?.map(f => `- \`${f.path}\`: ${f.summary}`).join('\n')}
PRIOR CONTEXT:
${priorOutputs.map(p => `- ${p.task_id}: ${p.notes.join('; ')}`).join('\n')}
TASK ACTIONS:
${task.actions?.map((a, i) => `${i+1}. ${a}`).join('\n')}
MODE: write
CONTEXT: @**/* | Plan Source: ${planPath} | Task: ${task.id}
EXPECTED:
- Modifications implemented as specified
- Code follows project conventions
- No test failures introduced
- All required files updated
CONSTRAINTS: Exactly as specified in plan | No additional scope
" --tool codex --mode write
```
#### Step 3.3: Track Progress
```javascript
function updateExecutionEvents(eventsPath, log) {
const eventsMd = `# 执行日志
**Session**: ${sessionId}
**更新**: ${getUtc8ISOString()}
---
## 事件时间线
${log.map((e, i) => `
### 事件 ${i+1}: ${e.task_id}
**时间**: ${e.timestamp}
**任务**: ${e.task_title}
**状态**: ${e.status === 'completed' ? '✅' : e.status === 'failed' ? '❌' : '⏳'}
**笔记**:
${e.notes.map(n => `- ${n}`).join('\n')}
${e.error ? `**错误**: ${e.error}` : ''}
`).join('\n')}
---
## 统计
- **总数**: ${log.length}
- **完成**: ${log.filter(e => e.status === 'completed').length}
- **失败**: ${log.filter(e => e.status === 'failed').length}
- **进行中**: ${log.filter(e => e.status === 'in_progress').length}
`
Write(eventsPath, eventsMd)
}
function updateExecutionMd(mdPath, task, record) {
const content = Read(mdPath)
// Update task status in table
const updated = content.replace(
new RegExp(`\\| ${task.id} \\|.*\\| ⏳ \\|`),
`| ${task.id} | ... | ... | ... | ${record.status === 'completed' ? '✅' : '❌'} |`
)
Write(mdPath, updated)
}
```
---
### Phase 4: Completion
#### Step 4.1: Generate Summary
```javascript
const completed = executionLog.filter(e => e.status === 'completed').length
const failed = executionLog.filter(e => e.status === 'failed').length
const summary = `
# 执行完成
**Session**: ${sessionId}
**完成时间**: ${getUtc8ISOString()}
## 结果
| 指标 | 数值 |
|------|------|
| 总任务 | ${executionLog.length} |
| 成功 | ${completed} ✅ |
| 失败 | ${failed} ❌ |
| 成功率 | ${Math.round(completed / executionLog.length * 100)}% |
## 后续步骤
${failed > 0 ? `
### ❌ 修复失败的任务
\`\`\`bash
# 检查失败详情
cat ${eventsPath}
# 重新执行失败任务
${executionLog.filter(e => e.status === 'failed').map(e => `# ${e.task_id}`).join('\n')}
\`\`\`
` : `
### ✅ 执行完成
所有任务已成功完成!
`}
## 提交日志
${executionLog.filter(e => e.notes.some(n => n.includes('Committed'))).map(e => `- ${e.task_id}: ✅`).join('\n')}
`
Write(executionPath, summary)
```
#### Step 4.2: Report Results
```javascript
console.log(`
✅ 执行完成: ${sessionId}
成功: ${completed}/${executionLog.length}
${failed > 0 ? `失败: ${failed}` : '无失败'}
📁 详情: ${eventsPath}
`)
```
**Success Criteria**:
- execution.md finalized with complete summary
- execution-events.md contains all task records
- User informed of completion status
- All artifacts successfully created
---
## Configuration
### Task Format Detection
### Plan Format Detection
Supports multiple plan formats:
Workflow automatically detects plan format:
| Format | Source | Parser |
|--------|--------|--------|
| JSON | lite-plan, collaborative-plan | parsePlanJson() |
| Markdown | IMPL_PLAN.md, plan-note.md | parsePlanMarkdown() |
| JSON synthesis | Brainstorm session | convertSynthesisToTasks() |
| JSON conclusions | Analysis session | convertConclusionsToTasks() |
| File Extension | Format |
|---|---|
| `.json` | JSON plan (lite-plan, collaborative-plan) |
| `.md` | Markdown plan (IMPL_PLAN.md, plan-note.md) |
| `synthesis.json` | Brainstorm synthesis |
| `conclusions.json` | Analysis conclusions |
### Auto-Commit Format
### Execution Modes
| Mode | Behavior | Use Case |
|------|----------|----------|
| Normal | Execute tasks, track progress | Standard execution |
| `--auto-commit` | Execute + commit each task | Tracked progress with git history |
| `--dry-run` | Simulate execution, no changes | Validate plan before executing |
### Task Dependencies
Tasks can declare dependencies on other tasks:
- `depends_on: ["TASK-001", "TASK-002"]` - Wait for these tasks
- Tasks are executed in topological order
- Circular dependencies are detected and reported as error
---
## Error Handling & Recovery
| Situation | Action | Recovery |
|-----------|--------|----------|
| Plan not found | Check file path and common locations | Verify plan path is correct |
| Unsupported format | Detect format from extension/content | Use supported plan format |
| Circular dependency | Stop execution, report error | Remove or reorganize dependencies |
| Task execution fails | Record failure in log | Review error details in execution-events.md |
| File conflict | Document in execution-events.md | Resolve conflict manually or adjust plan order |
| Missing file | Log as warning, continue | Verify files will be created by prior tasks |
---
## Execution Flow Diagram
Conventional Commits:
```
{type}({scope}): {description}
Load Plan File
├─ Detect format (JSON/Markdown)
├─ Parse tasks
└─ Build dependency graph
{task_id}: {task_title}
Files: {list of modified files}
Validate
├─ Check for cycles
├─ Analyze file conflicts
└─ Calculate execution order
Execute Sequentially
├─ Task 1: CLI execution → record result
├─ Task 2: CLI execution → record result
├─ Task 3: CLI execution → record result
└─ (repeat for all tasks)
Track Progress
├─ Update execution.md after each task
└─ Append event to execution-events.md
Complete
├─ Generate final summary
├─ Report statistics
└─ Offer follow-up actions
```
---
## Error Handling
## Best Practices
| Error | Resolution |
|-------|------------|
| Plan not found | Use explicit --plan flag or check .workflow/ |
| Unsupported format | Verify plan file format matches supported types |
| Task execution fails | Check execution-events.md for details |
| Dependency missing | Verify plan completeness |
### Before Execution
1. **Review Plan**: Check plan.md or plan-note.md for completeness
2. **Validate Format**: Ensure plan is in supported format
3. **Check Dependencies**: Verify dependency order is logical
4. **Test First**: Use `--dry-run` mode to validate before actual execution
5. **Backup**: Commit any pending changes before starting
### During Execution
1. **Monitor Progress**: Check execution-events.md for real-time updates
2. **Handle Failures**: Review error details and decide whether to continue
3. **Check Commits**: Verify auto-commits are correct if enabled
4. **Track Context**: Prior task results are available to subsequent tasks
### After Execution
1. **Review Results**: Check execution.md summary and statistics
2. **Verify Changes**: Inspect modified files match expected changes
3. **Handle Failures**: Address any failed tasks
4. **Update History**: Check git log for conventional commits if enabled
5. **Plan Next Steps**: Use completion artifacts for future work
---
## Execution Modes
## When to Use This Workflow
| Mode | Behavior |
|------|----------|
| Normal | Execute tasks sequentially, auto-commit disabled |
| --auto-commit | Execute + commit each task |
| --dry-run | Simulate execution, no changes |
### Use unified-execute-with-file when:
- Ready to execute a complete plan from planning workflow
- Need reliable sequential task execution with tracking
- Want automatic git commits for audit trail
- Executing plans from brainstorm, analysis, or collaborative-plan workflows
- Need to validate plan before full execution (--dry-run)
### Use direct CLI execution when:
- Single task that doesn't need full plan structure
- Quick implementation without tracking overhead
- Small changes that don't need git history
### Consider alternatives when:
- Still planning/exploring → use `workflow:brainstorm-with-file` or `workflow:analyze-with-file`
- Need complex task planning → use `workflow:collaborative-plan-with-file`
- Debugging or troubleshooting → use `workflow:debug-with-file`
---
## Usage
## Command Examples
### Standard Execution
```bash
# Load and execute plan
PLAN="path/to/plan.json" \
PLAN=".workflow/.planning/CPLAN-auth-2025-01-27/plan-note.md"
```
Execute the plan with standard options.
### With Auto-Commit
```bash
PLAN=".workflow/.planning/CPLAN-auth-2025-01-27/plan-note.md" \
--auto-commit
```
# Dry run first
PLAN="path/to/plan.json" \
Execute and automatically commit changes after each task.
### Dry-Run Mode
```bash
PLAN=".workflow/.planning/CPLAN-auth-2025-01-27/plan-note.md" \
--dry-run
```
# Auto-detect plan
# (searches .workflow/ for recent plans)
Simulate execution without making changes.
### Auto-Detect Plan
```bash
# No PLAN specified - auto-detects from .workflow/ directories
```
---

276
TASK6_SUMMARY.md Normal file
View File

@@ -0,0 +1,276 @@
# Task T6 - Dashboard Customization with react-grid-layout
## Status: COMPLETE
All remaining work for T6 (Dashboard Customization) has been successfully completed.
## Implementation Summary
### Files Modified
#### 1. DashboardGridContainer.tsx
- **Location**: `ccw/frontend/src/components/dashboard/DashboardGridContainer.tsx`
- **Changes**: Refactored from static Tailwind grid to responsive react-grid-layout
- **Features**:
- Uses `Responsive` component from react-grid-layout
- Integrated with `useUserDashboardLayout` hook for layout persistence
- Configurable breakpoints: lg (1024px), md (768px), sm (640px)
- Configurable columns: lg (12), md (6), sm (2)
- Row height: 60px
- Drag-drop enabled with `.drag-handle` class support
- Layout changes automatically debounced and saved to localStorage + Zustand
#### 2. DashboardHeader.tsx
- **Location**: `ccw/frontend/src/components/dashboard/DashboardHeader.tsx`
- **Changes**: Added layout reset button
- **New Props**:
- `onResetLayout?: () => void` - Callback for layout reset action
- **Features**:
- Reset button with RotateCcw icon
- Button positioned before refresh button
- Conditional rendering based on onResetLayout prop
- i18n support with "common.actions.resetLayout" key
#### 3. i18n Locale Files
Updated both English and Chinese translations:
**English (ccw/frontend/src/locales/en/common.json)**:
- Added `actions.resetLayout`: "Reset Layout"
**English (ccw/frontend/src/locales/en/home.json)**:
- Added `widgets` section with:
- `workflowStatus`: "Workflow Status"
- `activity`: "Activity Timeline"
- `taskTypes`: "Task Types"
**Chinese (ccw/frontend/src/locales/zh/common.json)**:
- Added `actions.resetLayout`: "重置布局"
**Chinese (ccw/frontend/src/locales/zh/home.json)**:
- Added `widgets` section with:
- `workflowStatus`: "工作流状态"
- `activity`: "活动时间线"
- `taskTypes`: "任务类型"
### Files Created
#### 1. DetailedStatsWidget.tsx
- **Location**: `ccw/frontend/src/components/dashboard/widgets/DetailedStatsWidget.tsx`
- **Purpose**: Wraps 6 stat cards for dashboard display
- **Features**:
- Displays: Active Sessions, Total Tasks, Completed, Pending, Failed, Today's Activity
- Uses `useDashboardStats` hook for data fetching
- Loading skeletons support
- Responsive grid layout (2 cols on mobile, 3 on tablet, 6 on desktop)
- Wrapped in Card component
#### 2. RecentSessionsWidget.tsx
- **Location**: `ccw/frontend/src/components/dashboard/widgets/RecentSessionsWidget.tsx`
- **Purpose**: Displays recent active workflow sessions
- **Features**:
- Fetches recent sessions using `useSessions` hook
- Configurable max sessions (default: 6)
- Sorts by creation date (newest first)
- Session cards with navigation to detail page
- "View All" button for full sessions page
- Empty state with helpful message
- Loading skeletons support
#### 3. WorkflowStatusPieChartWidget.tsx
- **Location**: `ccw/frontend/src/components/dashboard/widgets/WorkflowStatusPieChartWidget.tsx`
- **Purpose**: Placeholder widget for workflow status pie chart (T5 dependency)
- **Features**:
- Displays placeholder with PieChart icon
- Message: "Chart available after T5 completion"
- Ready for chart implementation after T5
#### 4. ActivityLineChartWidget.tsx
- **Location**: `ccw/frontend/src/components/dashboard/widgets/ActivityLineChartWidget.tsx`
- **Purpose**: Placeholder widget for activity trend chart (T5 dependency)
- **Features**:
- Displays placeholder with TrendingUp icon
- Message: "Chart available after T5 completion"
- Ready for chart implementation after T5
#### 5. TaskTypeBarChartWidget.tsx
- **Location**: `ccw/frontend/src/components/dashboard/widgets/TaskTypeBarChartWidget.tsx`
- **Purpose**: Placeholder widget for task type distribution chart (T5 dependency)
- **Features**:
- Displays placeholder with BarChart3 icon
- Message: "Chart available after T5 completion"
- Ready for chart implementation after T5
#### 6. widgets/index.ts
- **Location**: `ccw/frontend/src/components/dashboard/widgets/index.ts`
- **Purpose**: Central export point for all widget components
- **Exports**: All 5 widget components with their TypeScript props
## Architecture Overview
### Layout Persistence Flow
```
User drags/resizes widget
ResponsiveGridLayout fires onLayoutChange
DashboardGridContainer calls updateLayouts()
useUserDashboardLayout debounces (1 second)
Zustand store updated → localStorage persisted
Layout restored on page reload
```
### Responsive Breakpoints
| Breakpoint | Width | Columns | Use Case |
|-----------|----------|---------|----------|
| **lg** | ≥ 1024px | 12 | Desktop |
| **md** | ≥ 768px | 6 | Tablet |
| **sm** | ≥ 640px | 2 | Mobile |
### Widget Grid Positions (Default Layout)
**Large screens (lg)**:
```
+--------------------------------+
| DetailedStatsWidget (12 cols) |
+--------+--------+--------+------+
| Recent | Workflow | Activity|Task|
|Sessions| Status | Chart |Type|
| (6x4) | (6x4) | (7x4) |(5x4|
+--------+--------+--------+------+
```
**Medium screens (md)**:
```
+-------------------+
| DetailedStatsWidget|
+----------+--------+
| RecentSessions (6) |
+-------------------+
| WorkflowStatus (6) |
+-------------------+
| Activity (6) |
+-------------------+
| TaskTypes (6) |
+-------------------+
```
**Small screens (sm)**:
```
+-----------+
|DetailStats|
+-----------+
| Recent |
+-----------+
| Workflow |
+-----------+
| Activity |
+-----------+
| TaskTypes |
+-----------+
```
## Dependencies
### Already Installed
- `react-grid-layout@1.4.4` - Draggable grid layout
- `@types/react-grid-layout@1.3.5` - TypeScript definitions
- `react-resizable` - Resizing support
### Existing Integrations
- `useUserDashboardLayout` hook for state management
- `useAppStore` (Zustand) for persistence
- `useDashboardStats` hook for statistics data
- `useSessions` hook for session data
## Testing Instructions
### Manual Testing Checklist
- [ ] Dashboard loads without errors
- [ ] All 5 widgets render properly
- [ ] Widgets are draggable (move widgets around)
- [ ] Widgets are resizable (drag widget edges)
- [ ] Layout persists after page reload
- [ ] Reset Layout button resets to default positions
- [ ] Responsive behavior works on mobile (shrink browser window)
- [ ] i18n translations display correctly
- [ ] Stat cards show loading skeletons while fetching
- [ ] Recent sessions list updates with fresh data
### TypeScript Verification
All new components pass TypeScript compilation with zero errors:
```bash
npx tsc --noEmit # No errors in dashboard/widgets directory
npm run build # Builds successfully
```
## Integration Points for Future Tasks
### For T5 (Charts Implementation)
The 3 chart placeholder widgets are ready to be replaced with actual chart components:
1. **WorkflowStatusPieChartWidget** - Implement pie chart showing workflow status distribution
2. **ActivityLineChartWidget** - Implement line chart showing activity trends
3. **TaskTypeBarChartWidget** - Implement bar chart showing task type distribution
Replace the placeholder Card content with Recharts (or preferred charting library) components.
### For HomePage Update
The HomePage component can be refactored to use the new widgets:
```typescript
<DashboardGridContainer>
<div key="stats" data-grid={{ i: 'detailed-stats', ... }}>
<DetailedStatsWidget />
</div>
<div key="sessions" data-grid={{ i: 'recent-sessions', ... }}>
<RecentSessionsWidget />
</div>
{/* Add chart widgets here */}
</DashboardGridContainer>
```
## Done When Checklist
- [x] CSS imports added to main.tsx
- [x] appStore extended with dashboardLayout state
- [x] DashboardGridContainer uses ResponsiveGridLayout
- [x] 5 widget wrapper components created
- [x] Layout reset button added to DashboardHeader
- [x] Drag-drop interactions functional
- [x] Layout persists after page reload
- [x] Zero TypeScript errors in new components
- [x] i18n keys added for all new UI elements
- [x] All components documented with JSDoc
## Files Summary
| File Path | Type | Status |
|-----------|------|--------|
| `DashboardGridContainer.tsx` | Modified | Refactored to use react-grid-layout |
| `DashboardHeader.tsx` | Modified | Added reset layout button |
| `defaultLayouts.ts` | Existing | No changes needed |
| `DetailedStatsWidget.tsx` | Created | Stat cards wrapper |
| `RecentSessionsWidget.tsx` | Created | Sessions list wrapper |
| `WorkflowStatusPieChartWidget.tsx` | Created | Chart placeholder (T5 dependency) |
| `ActivityLineChartWidget.tsx` | Created | Chart placeholder (T5 dependency) |
| `TaskTypeBarChartWidget.tsx` | Created | Chart placeholder (T5 dependency) |
| `widgets/index.ts` | Created | Export index |
| `en/common.json` | Modified | Added resetLayout translation |
| `zh/common.json` | Modified | Added resetLayout translation |
| `en/home.json` | Modified | Added widgets translations |
| `zh/home.json` | Modified | Added widgets translations |
## Build Output
```
✓ TypeScript compilation successful
✓ No errors in dashboard/widgets components
✓ Vite build completes successfully
```
## Next Steps (T5)
1. Implement actual charts using Recharts or similar
2. Replace placeholder widgets with functional chart components
3. Add chart data fetching hooks
4. Update HomePage to use new widget-based layout
5. Test responsive behavior on all screen sizes

11
ccw/.npmrc Normal file
View File

@@ -0,0 +1,11 @@
# npm workspace configuration
# See: https://docs.npmjs.com/cli/v9/using-npm/workspaces
# Workspace configuration is in package.json (workspaces field)
# These are general npm settings
# Save exact versions (optional, for consistency)
save-exact=false
# Use package-lock.json
package-lock=true

257
ccw/MONOREPO.md Normal file
View File

@@ -0,0 +1,257 @@
# CCW Monorepo Guide
This document describes the monorepo structure for CCW, which includes the frontend application and documentation site.
## 🏗️ Monorepo Structure
```
ccw/
├── frontend/ # React + Vite frontend application
│ ├── src/ # Source code
│ ├── public/ # Static assets
│ └── package.json # Workspace: frontend
├── docs-site/ # Docusaurus documentation
│ ├── docs/ # Documentation content (MDX)
│ ├── i18n/ # Internationalization
│ ├── src/ # Custom theme/components
│ └── package.json # Workspace: docs-site
├── package.json # Root package (workspaces config)
├── .npmrc # npm configuration
└── MONOREPO.md # This file
```
## 🚀 Quick Start
### Prerequisites
- Node.js >= 18.0.0
- npm >= 9.0.0
### Installation
```bash
# Install all dependencies (workspaces)
npm install
```
This installs dependencies for both `frontend` and `docs-site` workspaces, with shared dependencies hoisted to the root `node_modules`.
### Development
```bash
# Start frontend only (port 5173, with /docs proxied to Docusaurus at 3001)
npm run dev
# Start documentation only (port 3001)
npm run dev:docs
# Start both concurrently (recommended)
npm run dev:all
```
**Access the application:**
- Frontend: http://localhost:5173
- Documentation: http://localhost:5173/docs (proxied to Docusaurus at 3001)
## 📚 Available Scripts
### Root Commands (from ccw/)
| Command | Description |
|---------|-------------|
| `npm install` | Install all workspace dependencies |
| `npm run dev` | Start frontend dev server (with docs proxy) |
| `npm run dev:docs` | Start Docusaurus dev server |
| `npm run dev:all` | Start both servers concurrently |
| `npm run build` | Build all workspaces |
| `npm run build:frontend` | Build frontend only |
| `npm run build:docs` | Build documentation only |
| `npm run clean` | Clean all build artifacts |
| `npm run clean:node_modules` | Remove all node_modules |
| `npm run lint` | Lint frontend code |
| `npm run test` | Run frontend tests |
| `npm run test:e2e` | Run E2E tests |
| `npm run validate` | Validate i18n translations |
| `npm run serve` | Serve docs production build |
| `npm run preview` | Preview frontend production build |
### Workspace-Specific Commands
```bash
# Frontend workspace
cd frontend
npm run dev # Start Vite dev server
npm run build # Build for production
npm run test # Run unit tests
npm run lint # Lint code
# Documentation workspace
cd docs-site
npm start # Start Docusaurus dev server
npm run build # Build static site
npm run serve # Serve production build
```
## 📦 Workspaces
### Frontend (`frontend/`)
React + Vite + TypeScript application with:
- Radix UI components
- Tailwind CSS styling
- React Router v6
- React Intl (i18n)
- Zustand (state management)
- Vitest (testing)
**Tech Stack:**
- Runtime: React 18.3
- Build: Vite 6.0
- Language: TypeScript 5.6
- Styling: Tailwind CSS 3.4
### Documentation (`docs-site/`)
Docusaurus 3.x documentation site with:
- 40+ command references
- 15 workflow guides
- Mermaid diagrams
- MDX support
- i18n (EN/ZH)
**Tech Stack:**
- Framework: Docusaurus 3.5
- Docs: MDX (Markdown + JSX)
- Diagrams: Mermaid
- Styling: Custom CSS with CCW theme
## 🎨 Features
- **40+ Commands**: workflow, issue, cli, memory, general categories
- **15 Workflow Levels**: From ultra-lightweight to intelligent orchestration
- **AI-Powered**: Multi-CLI collaboration with intelligent routing
- **Bilingual**: English and Chinese support
- **Themeable**: Light/dark mode with CCW design tokens
- **Interactive**: Mermaid workflow diagrams and live examples
## 🔧 Configuration
### Workspace Management
Root `package.json` defines workspaces:
```json
{
"workspaces": [
"frontend",
"docs-site"
]
}
```
Dependencies are **hoisted** to root `node_modules` automatically by npm.
### Adding Dependencies
```bash
# Add to specific workspace
npm install <package> --workspace=frontend
npm install <package> --workspace=docs-site
# Add to root (shared)
npm install <package> -w .
# Add as dev dependency
npm install <package> --workspace=frontend --save-dev
```
## 📖 Documentation
Full documentation is available at:
- **Development**: http://localhost:5173/docs
- **Standalone**: http://localhost:3001 (when `npm run dev:docs`)
Documentation source files are in `docs-site/docs/`:
- `overview.mdx` - Getting started
- `commands/` - Command references by category
- `workflows/` - Workflow guides and levels
- `faq.mdx` - Frequently asked questions
## 🌍 Internationalization
- **Frontend**: `frontend/src/locales/{en,zh}/`
- **Docs**: `docs-site/i18n/zh/docusaurus-plugin-content-docs/current/`
## 🧪 Testing
```bash
# Unit tests
npm test
# Coverage
npm run test:coverage
# E2E tests
npm run test:e2e
# E2E UI mode
npm run test:e2e:ui
```
## 📦 Building for Production
```bash
# Build all workspaces
npm run build
# Output directories:
# - frontend/dist/
# - docs-site/build/
```
## 🚢 Deployment
### Frontend
Deploy `frontend/dist/` to any static hosting service:
- Vercel, Netlify, AWS S3, etc.
### Documentation
Documentation is integrated as `/docs` route in the frontend.
For standalone deployment, deploy `docs-site/build/`.
### Nginx Configuration Example
```nginx
server {
listen 80;
server_name ccw.example.com;
# Frontend (with docs proxy)
location / {
root /var/www/ccw/frontend/dist;
try_files $uri $uri/ /index.html;
}
# Fallback: standalone docs
location /docs {
root /var/www/ccw/docs-site/build;
try_files $uri $uri/ /docs/index.html;
}
}
```
## 🔗 Resources
- [Docusaurus Documentation](https://docusaurus.io/)
- [Vite Documentation](https://vitejs.dev/)
- [React Documentation](https://react.dev/)
- [Tailwind CSS](https://tailwindcss.com/)
- [npm workspaces](https://docs.npmjs.com/cli/v9/using-npm/workspaces)
---
**Built with ❤️ by the CCW Team**

View File

@@ -0,0 +1,5 @@
This folder stores temp files that Docusaurus' client bundler accesses.
DO NOT hand-modify files in this folder because they will be overwritten in the
next build. You can clear all build artifacts (including this folder) with the
`docusaurus clear` command.

View File

@@ -0,0 +1,513 @@
{
"entrypoints": [
"main"
],
"origins": {
"723": [
723
],
"17896441": [
869,
401
],
"18891827": [
235
],
"main": [
354,
869,
792
],
"runtime~main": [
792,
869,
354
],
"04db0a2e": [
927
],
"0566a0a8": [
142
],
"157db180": [
47
],
"186dcf4e": [
368
],
"19b64556": [
57
],
"1bac9067": [
412
],
"1e3006f3": [
975
],
"2ecf8b4a": [
856
],
"4ad7db0f": [
849
],
"4cc74730": [
148
],
"5c7b2278": [
121
],
"5e95c892": [
647
],
"60eef997": [
268
],
"611877e1": [
407
],
"666bb1bf": [
288
],
"7a1ee27c": [
934
],
"97c6e66a": [
814
],
"9f4ca91e": [
973
],
"a2065270": [
816
],
"a6c3df16": [
991
],
"a7bd4aaa": [
98
],
"a94703ab": [
869,
48
],
"aba21aa0": [
742
],
"bcf6b37c": [
725
],
"bdb2b105": [
511
],
"c5a82d8d": [
482
],
"ccef5d0f": [
17
],
"d045285b": [
241
],
"d550a629": [
411
],
"ea313555": [
869,
11
],
"f1bf82ec": [
954
],
"f4817052": [
896
],
"f9222419": [
448
],
"fabaf1c8": [
777
],
"fe8e3dcf": [
971
],
"styles": [
11,
48,
354,
401,
792,
869
]
},
"assets": {
"11": {
"js": [
{
"file": "assets/js/ea313555.4eea9e04.js",
"hash": "d5b66e7ebe350f71",
"publicPath": "/docs/assets/js/ea313555.4eea9e04.js"
}
]
},
"17": {
"js": [
{
"file": "assets/js/ccef5d0f.421f57e1.js",
"hash": "021994e665cd71a3",
"publicPath": "/docs/assets/js/ccef5d0f.421f57e1.js"
}
]
},
"47": {
"js": [
{
"file": "assets/js/157db180.4fb84679.js",
"hash": "57827c9137698781",
"publicPath": "/docs/assets/js/157db180.4fb84679.js"
}
]
},
"48": {
"js": [
{
"file": "assets/js/a94703ab.5b347b84.js",
"hash": "b41b6704ee40e61e",
"publicPath": "/docs/assets/js/a94703ab.5b347b84.js"
}
]
},
"57": {
"js": [
{
"file": "assets/js/19b64556.a6163a0a.js",
"hash": "5ee521c37cf8c68a",
"publicPath": "/docs/assets/js/19b64556.a6163a0a.js"
}
]
},
"98": {
"js": [
{
"file": "assets/js/a7bd4aaa.5f0b376e.js",
"hash": "fa2f4121247f1996",
"publicPath": "/docs/assets/js/a7bd4aaa.5f0b376e.js"
}
]
},
"121": {
"js": [
{
"file": "assets/js/5c7b2278.0eaf76aa.js",
"hash": "5c09d012d0631523",
"publicPath": "/docs/assets/js/5c7b2278.0eaf76aa.js"
}
]
},
"142": {
"js": [
{
"file": "assets/js/0566a0a8.13f3324d.js",
"hash": "aab4cc959eec590f",
"publicPath": "/docs/assets/js/0566a0a8.13f3324d.js"
}
]
},
"148": {
"js": [
{
"file": "assets/js/4cc74730.4af80d66.js",
"hash": "3fdd0970d9784df1",
"publicPath": "/docs/assets/js/4cc74730.4af80d66.js"
}
]
},
"235": {
"js": [
{
"file": "assets/js/18891827.d20470dc.js",
"hash": "1b4aca9ca7af9b42",
"publicPath": "/docs/assets/js/18891827.d20470dc.js"
}
]
},
"241": {
"js": [
{
"file": "assets/js/d045285b.73fb2bfa.js",
"hash": "f921efda005636a3",
"publicPath": "/docs/assets/js/d045285b.73fb2bfa.js"
}
]
},
"268": {
"js": [
{
"file": "assets/js/60eef997.a1401c2f.js",
"hash": "eff0d2e8f0ec97a4",
"publicPath": "/docs/assets/js/60eef997.a1401c2f.js"
}
]
},
"288": {
"js": [
{
"file": "assets/js/666bb1bf.2da41127.js",
"hash": "cbbe85931a51b576",
"publicPath": "/docs/assets/js/666bb1bf.2da41127.js"
}
]
},
"354": {
"js": [
{
"file": "assets/js/runtime~main.cbfbf29d.js",
"hash": "fb4e23ef19ceb840",
"publicPath": "/docs/assets/js/runtime~main.cbfbf29d.js"
}
]
},
"368": {
"js": [
{
"file": "assets/js/186dcf4e.dc0319e0.js",
"hash": "48652c8965138728",
"publicPath": "/docs/assets/js/186dcf4e.dc0319e0.js"
}
]
},
"401": {
"js": [
{
"file": "assets/js/17896441.a28ce98e.js",
"hash": "ee3a31e7129b992e",
"publicPath": "/docs/assets/js/17896441.a28ce98e.js"
}
]
},
"407": {
"js": [
{
"file": "assets/js/611877e1.71e7b278.js",
"hash": "e3e49d37d33343ec",
"publicPath": "/docs/assets/js/611877e1.71e7b278.js"
}
]
},
"411": {
"js": [
{
"file": "assets/js/d550a629.41f98adf.js",
"hash": "17b3e1cb172e9417",
"publicPath": "/docs/assets/js/d550a629.41f98adf.js"
}
]
},
"412": {
"js": [
{
"file": "assets/js/1bac9067.2e1f90de.js",
"hash": "e7eb745cc150b2db",
"publicPath": "/docs/assets/js/1bac9067.2e1f90de.js"
}
]
},
"448": {
"js": [
{
"file": "assets/js/f9222419.eca02b22.js",
"hash": "f234731674701f32",
"publicPath": "/docs/assets/js/f9222419.eca02b22.js"
}
]
},
"482": {
"js": [
{
"file": "assets/js/c5a82d8d.c941bbe4.js",
"hash": "d50445120d59b52e",
"publicPath": "/docs/assets/js/c5a82d8d.c941bbe4.js"
}
]
},
"511": {
"js": [
{
"file": "assets/js/bdb2b105.00be57de.js",
"hash": "9d2397472ac7d311",
"publicPath": "/docs/assets/js/bdb2b105.00be57de.js"
}
]
},
"647": {
"js": [
{
"file": "assets/js/5e95c892.1a07266b.js",
"hash": "e8bf4ae800fb0d69",
"publicPath": "/docs/assets/js/5e95c892.1a07266b.js"
}
]
},
"723": {
"js": [
{
"file": "assets/js/723.b1cb938e.js",
"hash": "fad03893d4e20c0c",
"publicPath": "/docs/assets/js/723.b1cb938e.js"
}
]
},
"725": {
"js": [
{
"file": "assets/js/bcf6b37c.19ccccf7.js",
"hash": "5de43b0994778155",
"publicPath": "/docs/assets/js/bcf6b37c.19ccccf7.js"
}
]
},
"742": {
"js": [
{
"file": "assets/js/aba21aa0.dc3eeab8.js",
"hash": "cd146bf2ec77ba24",
"publicPath": "/docs/assets/js/aba21aa0.dc3eeab8.js"
}
]
},
"777": {
"js": [
{
"file": "assets/js/fabaf1c8.811090ab.js",
"hash": "810829664615fe67",
"publicPath": "/docs/assets/js/fabaf1c8.811090ab.js"
}
]
},
"792": {
"js": [
{
"file": "assets/js/main.6c671094.js",
"hash": "71c89960e4f3a13b",
"publicPath": "/docs/assets/js/main.6c671094.js"
}
]
},
"814": {
"js": [
{
"file": "assets/js/97c6e66a.baa03fb6.js",
"hash": "7b555aaa8c9c205b",
"publicPath": "/docs/assets/js/97c6e66a.baa03fb6.js"
}
]
},
"816": {
"js": [
{
"file": "assets/js/a2065270.088080b0.js",
"hash": "d1673e1a1d2d132c",
"publicPath": "/docs/assets/js/a2065270.088080b0.js"
}
]
},
"849": {
"js": [
{
"file": "assets/js/4ad7db0f.62c9b350.js",
"hash": "24ee107279fdd24b",
"publicPath": "/docs/assets/js/4ad7db0f.62c9b350.js"
}
]
},
"856": {
"js": [
{
"file": "assets/js/2ecf8b4a.9d518d70.js",
"hash": "54afc84cc90bb5da",
"publicPath": "/docs/assets/js/2ecf8b4a.9d518d70.js"
}
]
},
"869": {
"css": [
{
"file": "assets/css/styles.43777f0a.css",
"hash": "99430847c0b90ca7",
"publicPath": "/docs/assets/css/styles.43777f0a.css"
}
]
},
"896": {
"js": [
{
"file": "assets/js/f4817052.a5126a55.js",
"hash": "4a5f92afb4ea9e36",
"publicPath": "/docs/assets/js/f4817052.a5126a55.js"
}
]
},
"927": {
"js": [
{
"file": "assets/js/04db0a2e.2c353bc4.js",
"hash": "3fbd2a6b8ef7f3aa",
"publicPath": "/docs/assets/js/04db0a2e.2c353bc4.js"
}
]
},
"934": {
"js": [
{
"file": "assets/js/7a1ee27c.67535332.js",
"hash": "026327af470fe170",
"publicPath": "/docs/assets/js/7a1ee27c.67535332.js"
}
]
},
"954": {
"js": [
{
"file": "assets/js/f1bf82ec.e2a6e8e1.js",
"hash": "b279ee703b392c9e",
"publicPath": "/docs/assets/js/f1bf82ec.e2a6e8e1.js"
}
]
},
"971": {
"js": [
{
"file": "assets/js/fe8e3dcf.0a78caef.js",
"hash": "e53c59fbda09ba89",
"publicPath": "/docs/assets/js/fe8e3dcf.0a78caef.js"
}
]
},
"973": {
"js": [
{
"file": "assets/js/9f4ca91e.ea7dd9f3.js",
"hash": "ef0810bac3ec6788",
"publicPath": "/docs/assets/js/9f4ca91e.ea7dd9f3.js"
}
]
},
"975": {
"js": [
{
"file": "assets/js/1e3006f3.6141b6ef.js",
"hash": "71a6d2b43ed65f91",
"publicPath": "/docs/assets/js/1e3006f3.6141b6ef.js"
}
]
},
"991": {
"js": [
{
"file": "assets/js/a6c3df16.fddd53e1.js",
"hash": "ae93c9b20718d69b",
"publicPath": "/docs/assets/js/a6c3df16.fddd53e1.js"
}
]
}
}
}

View File

@@ -0,0 +1,6 @@
export default [
require("D:\\Claude_dms3\\node_modules\\infima\\dist\\css\\default\\default.css"),
require("D:\\Claude_dms3\\node_modules\\@docusaurus\\theme-classic\\lib\\prism-include-languages"),
require("D:\\Claude_dms3\\node_modules\\@docusaurus\\theme-classic\\lib\\nprogress"),
require("D:\\Claude_dms3\\ccw\\docs-site\\src\\css\\custom.css"),
];

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{"options":{"sidebarPath":"D:\\Claude_dms3\\ccw\\docs-site\\sidebars.ts","editUrl":"https://github.com/ccw/docs/tree/main/","path":"docs","editCurrentVersion":false,"editLocalizedFiles":false,"routeBasePath":"docs","tagsBasePath":"tags","include":["**/*.{md,mdx}"],"exclude":["**/_*.{js,jsx,ts,tsx,md,mdx}","**/_*/**","**/*.test.{js,jsx,ts,tsx}","**/__tests__/**"],"sidebarCollapsible":true,"sidebarCollapsed":true,"docsRootComponent":"@theme/DocsRoot","docVersionRootComponent":"@theme/DocVersionRoot","docRootComponent":"@theme/DocRoot","docItemComponent":"@theme/DocItem","docTagsListComponent":"@theme/DocTagsListPage","docTagDocListComponent":"@theme/DocTagDocListPage","docCategoryGeneratedIndexComponent":"@theme/DocCategoryGeneratedIndexPage","remarkPlugins":[],"rehypePlugins":[],"recmaPlugins":[],"beforeDefaultRemarkPlugins":[],"beforeDefaultRehypePlugins":[],"admonitions":true,"showLastUpdateTime":false,"showLastUpdateAuthor":false,"includeCurrentVersion":true,"disableVersioning":false,"versions":{},"breadcrumbs":true,"onInlineTags":"warn","id":"default"},"versionsMetadata":[{"versionName":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","path":"/docs/docs","tagsPath":"/docs/docs/tags","editUrl":"https://github.com/ccw/docs/tree/main/docs","isLast":true,"routePriority":-1,"sidebarFilePath":"D:\\Claude_dms3\\ccw\\docs-site\\sidebars.ts","contentPath":"D:\\Claude_dms3\\ccw\\docs-site\\docs"}]}

View File

@@ -0,0 +1,4 @@
{
"name": "docusaurus-plugin-content-docs",
"id": "default"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,30 @@
{
"id": "commands/cli/cli-init",
"title": "/cli:cli-init",
"description": "Initialize CLI configuration for workspace with automatic technology detection",
"source": "@site/docs/commands/cli/cli-init.mdx",
"sourceDirName": "commands/cli",
"slug": "/commands/cli/cli-init",
"permalink": "/docs/docs/commands/cli/cli-init",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/cli/cli-init.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 1,
"frontMatter": {
"title": "/cli:cli-init",
"sidebar_label": "/cli:cli-init",
"sidebar_position": 1,
"description": "Initialize CLI configuration for workspace with automatic technology detection"
},
"sidebar": "docs",
"previous": {
"title": "issue:convert-to-plan",
"permalink": "/docs/docs/commands/issue/issue-convert-to-plan"
},
"next": {
"title": "/cli:codex-review",
"permalink": "/docs/docs/commands/cli/codex-review"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/cli/codex-review",
"title": "/cli:codex-review",
"description": "Interactive code review using Codex CLI with configurable review targets",
"source": "@site/docs/commands/cli/codex-review.mdx",
"sourceDirName": "commands/cli",
"slug": "/commands/cli/codex-review",
"permalink": "/docs/docs/commands/cli/codex-review",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/cli/codex-review.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 2,
"frontMatter": {
"title": "/cli:codex-review",
"sidebar_label": "/cli:codex-review",
"sidebar_position": 2,
"description": "Interactive code review using Codex CLI with configurable review targets"
},
"sidebar": "docs",
"previous": {
"title": "/cli:cli-init",
"permalink": "/docs/docs/commands/cli/cli-init"
},
"next": {
"title": "/memory:update-full",
"permalink": "/docs/docs/commands/memory/memory-update-full"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/ccw-coordinator",
"title": "/ccw-coordinator",
"description": "Generic command orchestration tool for CCW workflows",
"source": "@site/docs/commands/general/ccw-coordinator.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/ccw-coordinator",
"permalink": "/docs/docs/commands/general/ccw-coordinator",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/ccw-coordinator.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 4,
"frontMatter": {
"title": "/ccw-coordinator",
"sidebar_label": "/ccw-coordinator",
"sidebar_position": 4,
"description": "Generic command orchestration tool for CCW workflows"
},
"sidebar": "docs",
"previous": {
"title": "/ccw-test",
"permalink": "/docs/docs/commands/general/ccw-test"
},
"next": {
"title": "/ccw-debug",
"permalink": "/docs/docs/commands/general/ccw-debug"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/ccw-debug",
"title": "/ccw-debug",
"description": "Debug coordinator for intelligent debugging workflows",
"source": "@site/docs/commands/general/ccw-debug.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/ccw-debug",
"permalink": "/docs/docs/commands/general/ccw-debug",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/ccw-debug.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 5,
"frontMatter": {
"title": "/ccw-debug",
"sidebar_label": "/ccw-debug",
"sidebar_position": 5,
"description": "Debug coordinator for intelligent debugging workflows"
},
"sidebar": "docs",
"previous": {
"title": "/ccw-coordinator",
"permalink": "/docs/docs/commands/general/ccw-coordinator"
},
"next": {
"title": "/flow-create",
"permalink": "/docs/docs/commands/general/flow-create"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/ccw",
"title": "/ccw",
"description": "Main CCW workflow coordinator for intelligent command orchestration",
"source": "@site/docs/commands/general/ccw.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/ccw",
"permalink": "/docs/docs/commands/general/ccw",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/ccw.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 1,
"frontMatter": {
"title": "/ccw",
"sidebar_label": "/ccw",
"sidebar_position": 1,
"description": "Main CCW workflow coordinator for intelligent command orchestration"
},
"sidebar": "docs",
"previous": {
"title": "Overview",
"permalink": "/docs/docs/"
},
"next": {
"title": "/ccw-plan",
"permalink": "/docs/docs/commands/general/ccw-plan"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/ccw-plan",
"title": "/ccw-plan",
"description": "Planning coordinator for intelligent workflow selection",
"source": "@site/docs/commands/general/ccw-plan.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/ccw-plan",
"permalink": "/docs/docs/commands/general/ccw-plan",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/ccw-plan.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 2,
"frontMatter": {
"title": "/ccw-plan",
"sidebar_label": "/ccw-plan",
"sidebar_position": 2,
"description": "Planning coordinator for intelligent workflow selection"
},
"sidebar": "docs",
"previous": {
"title": "/ccw",
"permalink": "/docs/docs/commands/general/ccw"
},
"next": {
"title": "/ccw-test",
"permalink": "/docs/docs/commands/general/ccw-test"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/ccw-test",
"title": "/ccw-test",
"description": "Test workflow coordinator for testing strategies",
"source": "@site/docs/commands/general/ccw-test.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/ccw-test",
"permalink": "/docs/docs/commands/general/ccw-test",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/ccw-test.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 3,
"frontMatter": {
"title": "/ccw-test",
"sidebar_label": "/ccw-test",
"sidebar_position": 3,
"description": "Test workflow coordinator for testing strategies"
},
"sidebar": "docs",
"previous": {
"title": "/ccw-plan",
"permalink": "/docs/docs/commands/general/ccw-plan"
},
"next": {
"title": "/ccw-coordinator",
"permalink": "/docs/docs/commands/general/ccw-coordinator"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/codex-coordinator",
"title": "/codex-coordinator",
"description": "Command orchestration tool for Codex workflows",
"source": "@site/docs/commands/general/codex-coordinator.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/codex-coordinator",
"permalink": "/docs/docs/commands/general/codex-coordinator",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/codex-coordinator.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 7,
"frontMatter": {
"title": "/codex-coordinator",
"sidebar_label": "/codex-coordinator",
"sidebar_position": 7,
"description": "Command orchestration tool for Codex workflows"
},
"sidebar": "docs",
"previous": {
"title": "/flow-create",
"permalink": "/docs/docs/commands/general/flow-create"
},
"next": {
"title": "issue:new",
"permalink": "/docs/docs/commands/issue/issue-new"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/general/flow-create",
"title": "/flow-create",
"description": "Generate workflow templates for flow-coordinator",
"source": "@site/docs/commands/general/flow-create.mdx",
"sourceDirName": "commands/general",
"slug": "/commands/general/flow-create",
"permalink": "/docs/docs/commands/general/flow-create",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/general/flow-create.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 6,
"frontMatter": {
"title": "/flow-create",
"sidebar_label": "/flow-create",
"sidebar_position": 6,
"description": "Generate workflow templates for flow-coordinator"
},
"sidebar": "docs",
"previous": {
"title": "/ccw-debug",
"permalink": "/docs/docs/commands/general/ccw-debug"
},
"next": {
"title": "/codex-coordinator",
"permalink": "/docs/docs/commands/general/codex-coordinator"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-convert-to-plan",
"title": "issue:convert-to-plan",
"description": "Convert planning artifacts to issue solutions",
"source": "@site/docs/commands/issue/issue-convert-to-plan.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-convert-to-plan",
"permalink": "/docs/docs/commands/issue/issue-convert-to-plan",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-convert-to-plan.md",
"tags": [],
"version": "current",
"sidebarPosition": 7,
"frontMatter": {
"title": "issue:convert-to-plan",
"sidebar_label": "issue:convert-to-plan",
"sidebar_position": 7,
"description": "Convert planning artifacts to issue solutions"
},
"sidebar": "docs",
"previous": {
"title": "issue:from-brainstorm",
"permalink": "/docs/docs/commands/issue/issue-from-brainstorm"
},
"next": {
"title": "/cli:cli-init",
"permalink": "/docs/docs/commands/cli/cli-init"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-discover",
"title": "issue:discover",
"description": "Discover potential issues from multiple code analysis perspectives",
"source": "@site/docs/commands/issue/issue-discover.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-discover",
"permalink": "/docs/docs/commands/issue/issue-discover",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-discover.md",
"tags": [],
"version": "current",
"sidebarPosition": 2,
"frontMatter": {
"title": "issue:discover",
"sidebar_label": "issue:discover",
"sidebar_position": 2,
"description": "Discover potential issues from multiple code analysis perspectives"
},
"sidebar": "docs",
"previous": {
"title": "issue:new",
"permalink": "/docs/docs/commands/issue/issue-new"
},
"next": {
"title": "issue:plan",
"permalink": "/docs/docs/commands/issue/issue-plan"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-execute",
"title": "issue:execute",
"description": "Execute issue queue with DAG-based parallel orchestration",
"source": "@site/docs/commands/issue/issue-execute.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-execute",
"permalink": "/docs/docs/commands/issue/issue-execute",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-execute.md",
"tags": [],
"version": "current",
"sidebarPosition": 5,
"frontMatter": {
"title": "issue:execute",
"sidebar_label": "issue:execute",
"sidebar_position": 5,
"description": "Execute issue queue with DAG-based parallel orchestration"
},
"sidebar": "docs",
"previous": {
"title": "issue:queue",
"permalink": "/docs/docs/commands/issue/issue-queue"
},
"next": {
"title": "issue:from-brainstorm",
"permalink": "/docs/docs/commands/issue/issue-from-brainstorm"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-from-brainstorm",
"title": "issue:from-brainstorm",
"description": "Convert brainstorm session ideas into issues with solutions",
"source": "@site/docs/commands/issue/issue-from-brainstorm.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-from-brainstorm",
"permalink": "/docs/docs/commands/issue/issue-from-brainstorm",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-from-brainstorm.md",
"tags": [],
"version": "current",
"sidebarPosition": 6,
"frontMatter": {
"title": "issue:from-brainstorm",
"sidebar_label": "issue:from-brainstorm",
"sidebar_position": 6,
"description": "Convert brainstorm session ideas into issues with solutions"
},
"sidebar": "docs",
"previous": {
"title": "issue:execute",
"permalink": "/docs/docs/commands/issue/issue-execute"
},
"next": {
"title": "issue:convert-to-plan",
"permalink": "/docs/docs/commands/issue/issue-convert-to-plan"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-new",
"title": "issue:new",
"description": "Create new issue with automatic categorization",
"source": "@site/docs/commands/issue/issue-new.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-new",
"permalink": "/docs/docs/commands/issue/issue-new",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-new.md",
"tags": [],
"version": "current",
"sidebarPosition": 1,
"frontMatter": {
"title": "issue:new",
"sidebar_label": "issue:new",
"sidebar_position": 1,
"description": "Create new issue with automatic categorization"
},
"sidebar": "docs",
"previous": {
"title": "/codex-coordinator",
"permalink": "/docs/docs/commands/general/codex-coordinator"
},
"next": {
"title": "issue:discover",
"permalink": "/docs/docs/commands/issue/issue-discover"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-plan",
"title": "issue:plan",
"description": "Plan issue solutions with exploration and task breakdown",
"source": "@site/docs/commands/issue/issue-plan.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-plan",
"permalink": "/docs/docs/commands/issue/issue-plan",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-plan.md",
"tags": [],
"version": "current",
"sidebarPosition": 3,
"frontMatter": {
"title": "issue:plan",
"sidebar_label": "issue:plan",
"sidebar_position": 3,
"description": "Plan issue solutions with exploration and task breakdown"
},
"sidebar": "docs",
"previous": {
"title": "issue:discover",
"permalink": "/docs/docs/commands/issue/issue-discover"
},
"next": {
"title": "issue:queue",
"permalink": "/docs/docs/commands/issue/issue-queue"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/issue/issue-queue",
"title": "issue:queue",
"description": "Form execution queue from bound solutions with conflict resolution",
"source": "@site/docs/commands/issue/issue-queue.md",
"sourceDirName": "commands/issue",
"slug": "/commands/issue/issue-queue",
"permalink": "/docs/docs/commands/issue/issue-queue",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/issue/issue-queue.md",
"tags": [],
"version": "current",
"sidebarPosition": 4,
"frontMatter": {
"title": "issue:queue",
"sidebar_label": "issue:queue",
"sidebar_position": 4,
"description": "Form execution queue from bound solutions with conflict resolution"
},
"sidebar": "docs",
"previous": {
"title": "issue:plan",
"permalink": "/docs/docs/commands/issue/issue-plan"
},
"next": {
"title": "issue:execute",
"permalink": "/docs/docs/commands/issue/issue-execute"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/memory/memory-compact",
"title": "/memory:compact",
"description": "Compact session memory into structured text for recovery",
"source": "@site/docs/commands/memory/memory-compact.mdx",
"sourceDirName": "commands/memory",
"slug": "/commands/memory/memory-compact",
"permalink": "/docs/docs/commands/memory/memory-compact",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/memory/memory-compact.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 6,
"frontMatter": {
"title": "/memory:compact",
"sidebar_label": "/memory:compact",
"sidebar_position": 6,
"description": "Compact session memory into structured text for recovery"
},
"sidebar": "docs",
"previous": {
"title": "/memory:docs-related-cli",
"permalink": "/docs/docs/commands/memory/memory-docs-related-cli"
},
"next": {
"title": "/memory:update-full",
"permalink": "/docs/docs/commands/memory/memory-update-full"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/memory/memory-docs-full-cli",
"title": "/memory:docs-full-cli",
"description": "Generate full CLI documentation for all project modules",
"source": "@site/docs/commands/memory/memory-docs-full-cli.mdx",
"sourceDirName": "commands/memory",
"slug": "/commands/memory/memory-docs-full-cli",
"permalink": "/docs/docs/commands/memory/memory-docs-full-cli",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/memory/memory-docs-full-cli.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 4,
"frontMatter": {
"title": "/memory:docs-full-cli",
"sidebar_label": "/memory:docs-full-cli",
"sidebar_position": 4,
"description": "Generate full CLI documentation for all project modules"
},
"sidebar": "docs",
"previous": {
"title": "/memory:load",
"permalink": "/docs/docs/commands/memory/memory-load"
},
"next": {
"title": "/memory:docs-related-cli",
"permalink": "/docs/docs/commands/memory/memory-docs-related-cli"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/memory/memory-docs-related-cli",
"title": "/memory:docs-related-cli",
"description": "Generate CLI documentation for git-changed modules",
"source": "@site/docs/commands/memory/memory-docs-related-cli.mdx",
"sourceDirName": "commands/memory",
"slug": "/commands/memory/memory-docs-related-cli",
"permalink": "/docs/docs/commands/memory/memory-docs-related-cli",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/memory/memory-docs-related-cli.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 5,
"frontMatter": {
"title": "/memory:docs-related-cli",
"sidebar_label": "/memory:docs-related-cli",
"sidebar_position": 5,
"description": "Generate CLI documentation for git-changed modules"
},
"sidebar": "docs",
"previous": {
"title": "/memory:docs-full-cli",
"permalink": "/docs/docs/commands/memory/memory-docs-full-cli"
},
"next": {
"title": "/memory:compact",
"permalink": "/docs/docs/commands/memory/memory-compact"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/memory/memory-load",
"title": "/memory:load",
"description": "Load project context and core content into memory",
"source": "@site/docs/commands/memory/memory-load.mdx",
"sourceDirName": "commands/memory",
"slug": "/commands/memory/memory-load",
"permalink": "/docs/docs/commands/memory/memory-load",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/memory/memory-load.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 3,
"frontMatter": {
"title": "/memory:load",
"sidebar_label": "/memory:load",
"sidebar_position": 3,
"description": "Load project context and core content into memory"
},
"sidebar": "docs",
"previous": {
"title": "/memory:update-related",
"permalink": "/docs/docs/commands/memory/memory-update-related"
},
"next": {
"title": "/memory:docs-full-cli",
"permalink": "/docs/docs/commands/memory/memory-docs-full-cli"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/memory/memory-update-full",
"title": "/memory:update-full",
"description": "Update CLAUDE.md for all project modules using batched agent execution",
"source": "@site/docs/commands/memory/memory-update-full.mdx",
"sourceDirName": "commands/memory",
"slug": "/commands/memory/memory-update-full",
"permalink": "/docs/docs/commands/memory/memory-update-full",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/memory/memory-update-full.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 1,
"frontMatter": {
"title": "/memory:update-full",
"sidebar_label": "/memory:update-full",
"sidebar_position": 1,
"description": "Update CLAUDE.md for all project modules using batched agent execution"
},
"sidebar": "docs",
"previous": {
"title": "/cli:codex-review",
"permalink": "/docs/docs/commands/cli/codex-review"
},
"next": {
"title": "/memory:update-related",
"permalink": "/docs/docs/commands/memory/memory-update-related"
}
}

View File

@@ -0,0 +1,30 @@
{
"id": "commands/memory/memory-update-related",
"title": "/memory:update-related",
"description": "Update CLAUDE.md for git-changed modules using batched execution",
"source": "@site/docs/commands/memory/memory-update-related.mdx",
"sourceDirName": "commands/memory",
"slug": "/commands/memory/memory-update-related",
"permalink": "/docs/docs/commands/memory/memory-update-related",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/commands/memory/memory-update-related.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 2,
"frontMatter": {
"title": "/memory:update-related",
"sidebar_label": "/memory:update-related",
"sidebar_position": 2,
"description": "Update CLAUDE.md for git-changed modules using batched execution"
},
"sidebar": "docs",
"previous": {
"title": "/memory:update-full",
"permalink": "/docs/docs/commands/memory/memory-update-full"
},
"next": {
"title": "/memory:load",
"permalink": "/docs/docs/commands/memory/memory-load"
}
}

View File

@@ -0,0 +1,25 @@
{
"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/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/docs/workflows/level-5-intelligent"
}
}

View File

@@ -0,0 +1,26 @@
{
"id": "overview",
"title": "Welcome to CCW",
"description": "CCW is a professional workflow automation platform that combines AI-powered intelligence with structured development workflows. With 40+ commands and 15 integrated workflows, CCW transforms how you build, test, and ship software.",
"source": "@site/docs/overview.mdx",
"sourceDirName": ".",
"slug": "/",
"permalink": "/docs/docs/",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/overview.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 1,
"frontMatter": {
"title": "Welcome to CCW",
"sidebar_label": "Overview",
"sidebar_position": 1,
"slug": "/"
},
"sidebar": "docs",
"next": {
"title": "/ccw",
"permalink": "/docs/docs/commands/general/ccw"
}
}

View File

@@ -0,0 +1,20 @@
{
"id": "workflows/faq",
"title": "Workflow FAQ",
"description": "Frequently asked questions about CCW workflows",
"source": "@site/docs/workflows/faq.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/faq",
"permalink": "/docs/docs/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": "Workflow FAQ",
"description": "Frequently asked questions about CCW workflows",
"sidebar_position": 7
}
}

View File

@@ -0,0 +1,29 @@
{
"id": "workflows/introduction",
"title": "Workflow Introduction",
"description": "Comprehensive overview of CCW workflows - from rapid execution to intelligent orchestration",
"source": "@site/docs/workflows/introduction.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/introduction",
"permalink": "/docs/docs/workflows/introduction",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/workflows/introduction.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 1,
"frontMatter": {
"title": "Workflow Introduction",
"description": "Comprehensive overview of CCW workflows - from rapid execution to intelligent orchestration",
"sidebar_position": 1
},
"sidebar": "docs",
"previous": {
"title": "/memory:compact",
"permalink": "/docs/docs/commands/memory/memory-compact"
},
"next": {
"title": "Level 1: Ultra Lightweight",
"permalink": "/docs/docs/workflows/level-1-ultra-lightweight"
}
}

View File

@@ -0,0 +1,29 @@
{
"id": "workflows/level-1-ultra-lightweight",
"title": "Level 1 - Ultra-Lightweight Workflows",
"description": "Rapid execution workflow for simple tasks with zero overhead",
"source": "@site/docs/workflows/level-1-ultra-lightweight.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/level-1-ultra-lightweight",
"permalink": "/docs/docs/workflows/level-1-ultra-lightweight",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/workflows/level-1-ultra-lightweight.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 2,
"frontMatter": {
"title": "Level 1 - Ultra-Lightweight Workflows",
"description": "Rapid execution workflow for simple tasks with zero overhead",
"sidebar_position": 2
},
"sidebar": "docs",
"previous": {
"title": "Introduction",
"permalink": "/docs/docs/workflows/introduction"
},
"next": {
"title": "Level 2: Rapid",
"permalink": "/docs/docs/workflows/level-2-rapid"
}
}

View File

@@ -0,0 +1,29 @@
{
"id": "workflows/level-2-rapid",
"title": "Level 2 - Rapid Workflows",
"description": "Lightweight planning and bug diagnosis workflows for single-module features",
"source": "@site/docs/workflows/level-2-rapid.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/level-2-rapid",
"permalink": "/docs/docs/workflows/level-2-rapid",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/workflows/level-2-rapid.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 3,
"frontMatter": {
"title": "Level 2 - Rapid Workflows",
"description": "Lightweight planning and bug diagnosis workflows for single-module features",
"sidebar_position": 3
},
"sidebar": "docs",
"previous": {
"title": "Level 1: Ultra Lightweight",
"permalink": "/docs/docs/workflows/level-1-ultra-lightweight"
},
"next": {
"title": "Level 3: Standard",
"permalink": "/docs/docs/workflows/level-3-standard"
}
}

View File

@@ -0,0 +1,29 @@
{
"id": "workflows/level-3-standard",
"title": "Level 3 - Standard Workflows",
"description": "Complete planning with persistent session management for multi-module changes",
"source": "@site/docs/workflows/level-3-standard.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/level-3-standard",
"permalink": "/docs/docs/workflows/level-3-standard",
"draft": false,
"unlisted": false,
"editUrl": "https://github.com/ccw/docs/tree/main/docs/workflows/level-3-standard.mdx",
"tags": [],
"version": "current",
"sidebarPosition": 4,
"frontMatter": {
"title": "Level 3 - Standard Workflows",
"description": "Complete planning with persistent session management for multi-module changes",
"sidebar_position": 4
},
"sidebar": "docs",
"previous": {
"title": "Level 2: Rapid",
"permalink": "/docs/docs/workflows/level-2-rapid"
},
"next": {
"title": "Level 4: Brainstorm",
"permalink": "/docs/docs/workflows/level-4-brainstorm"
}
}

View File

@@ -0,0 +1,29 @@
{
"id": "workflows/level-4-brainstorm",
"title": "Level 4 - Brainstorm Workflows",
"description": "Multi-role brainstorming workflows for complex feature design and architecture exploration",
"source": "@site/docs/workflows/level-4-brainstorm.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/level-4-brainstorm",
"permalink": "/docs/docs/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": "Level 4 - Brainstorm Workflows",
"description": "Multi-role brainstorming workflows for complex feature design and architecture exploration",
"sidebar_position": 5
},
"sidebar": "docs",
"previous": {
"title": "Level 3: Standard",
"permalink": "/docs/docs/workflows/level-3-standard"
},
"next": {
"title": "Level 5: Intelligent",
"permalink": "/docs/docs/workflows/level-5-intelligent"
}
}

View File

@@ -0,0 +1,29 @@
{
"id": "workflows/level-5-intelligent",
"title": "Level 5 - Intelligent Workflows",
"description": "Automated command orchestration with intelligent analysis and recommendation",
"source": "@site/docs/workflows/level-5-intelligent.mdx",
"sourceDirName": "workflows",
"slug": "/workflows/level-5-intelligent",
"permalink": "/docs/docs/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": "Level 5 - Intelligent Workflows",
"description": "Automated command orchestration with intelligent analysis and recommendation",
"sidebar_position": 6
},
"sidebar": "docs",
"previous": {
"title": "Level 4: Brainstorm",
"permalink": "/docs/docs/workflows/level-4-brainstorm"
},
"next": {
"title": "FAQ",
"permalink": "/docs/docs/faq"
}
}

View File

@@ -0,0 +1,4 @@
{
"name": "docusaurus-plugin-content-pages",
"id": "default"
}

View File

@@ -0,0 +1,4 @@
{
"name": "docusaurus-plugin-debug",
"id": "default"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,290 @@
/*
* AUTOGENERATED - DON'T EDIT
* Your edits in this file will be overwritten in the next build!
* Modify the docusaurus.config.js file at your site's root instead.
*/
export default {
"title": "CCW Help Documentation",
"tagline": "Professional Workflow Automation Platform",
"favicon": "img/favicon.ico",
"url": "https://ccw.dev",
"baseUrl": "/docs/",
"organizationName": "ccw",
"projectName": "docs",
"onBrokenLinks": "throw",
"i18n": {
"defaultLocale": "en",
"locales": [
"en",
"zh"
],
"path": "i18n",
"localeConfigs": {}
},
"presets": [
[
"@docusaurus/preset-classic",
{
"docs": {
"sidebarPath": "./sidebars.ts",
"editUrl": "https://github.com/ccw/docs/tree/main/"
},
"blog": false,
"theme": {
"customCss": [
"./src/css/custom.css"
]
}
}
]
],
"themeConfig": {
"navbar": {
"title": "CCW Help",
"logo": {
"alt": "CCW Logo",
"src": "img/logo.svg"
},
"items": [
{
"type": "localeDropdown",
"position": "right",
"dropdownItemsBefore": [],
"dropdownItemsAfter": []
}
],
"hideOnScroll": false
},
"footer": {
"style": "dark",
"copyright": "Copyright © 2026 CCW. Built with Docusaurus.",
"links": []
},
"prism": {
"additionalLanguages": [
"typescript",
"javascript",
"bash",
"python",
"java",
"go",
"yaml",
"json"
],
"theme": {
"plain": {
"color": "#bfc7d5",
"backgroundColor": "#292d3e"
},
"styles": [
{
"types": [
"comment"
],
"style": {
"color": "rgb(105, 112, 152)",
"fontStyle": "italic"
}
},
{
"types": [
"string",
"inserted"
],
"style": {
"color": "rgb(195, 232, 141)"
}
},
{
"types": [
"number"
],
"style": {
"color": "rgb(247, 140, 108)"
}
},
{
"types": [
"builtin",
"char",
"constant",
"function"
],
"style": {
"color": "rgb(130, 170, 255)"
}
},
{
"types": [
"punctuation",
"selector"
],
"style": {
"color": "rgb(199, 146, 234)"
}
},
{
"types": [
"variable"
],
"style": {
"color": "rgb(191, 199, 213)"
}
},
{
"types": [
"class-name",
"attr-name"
],
"style": {
"color": "rgb(255, 203, 107)"
}
},
{
"types": [
"tag",
"deleted"
],
"style": {
"color": "rgb(255, 85, 114)"
}
},
{
"types": [
"operator"
],
"style": {
"color": "rgb(137, 221, 255)"
}
},
{
"types": [
"boolean"
],
"style": {
"color": "rgb(255, 88, 116)"
}
},
{
"types": [
"keyword"
],
"style": {
"fontStyle": "italic"
}
},
{
"types": [
"doctype"
],
"style": {
"color": "rgb(199, 146, 234)",
"fontStyle": "italic"
}
},
{
"types": [
"namespace"
],
"style": {
"color": "rgb(178, 204, 214)"
}
},
{
"types": [
"url"
],
"style": {
"color": "rgb(221, 221, 221)"
}
}
]
},
"magicComments": [
{
"className": "theme-code-block-highlighted-line",
"line": "highlight-next-line",
"block": {
"start": "highlight-start",
"end": "highlight-end"
}
}
]
},
"colorMode": {
"defaultMode": "light",
"disableSwitch": false,
"respectPrefersColorScheme": false
},
"docs": {
"versionPersistence": "localStorage",
"sidebar": {
"hideable": false,
"autoCollapseCategories": false
}
},
"blog": {
"sidebar": {
"groupByYear": true
}
},
"metadata": [],
"tableOfContents": {
"minHeadingLevel": 2,
"maxHeadingLevel": 3
}
},
"markdown": {
"mermaid": true,
"format": "mdx",
"emoji": true,
"mdx1Compat": {
"comments": true,
"admonitions": true,
"headingIds": true
},
"anchors": {
"maintainCase": false
},
"hooks": {
"onBrokenMarkdownLinks": "warn",
"onBrokenMarkdownImages": "throw"
}
},
"baseUrlIssueBanner": true,
"future": {
"v4": {
"removeLegacyPostBuildHeadAttribute": false,
"useCssCascadeLayers": false
},
"experimental_faster": {
"swcJsLoader": false,
"swcJsMinimizer": false,
"swcHtmlMinimizer": false,
"lightningCssMinimizer": false,
"mdxCrossCompilerCache": false,
"rspackBundler": false,
"rspackPersistentCache": false,
"ssgWorkerThreads": false
},
"experimental_storage": {
"type": "localStorage",
"namespace": false
},
"experimental_router": "browser"
},
"onBrokenAnchors": "warn",
"onDuplicateRoutes": "warn",
"staticDirectories": [
"static"
],
"customFields": {},
"plugins": [],
"themes": [],
"scripts": [],
"headTags": [],
"stylesheets": [],
"clientModules": [],
"titleDelimiter": "|",
"noIndex": false
};

View File

@@ -0,0 +1,182 @@
{
"docusaurus-plugin-content-docs": {
"default": {
"path": "/docs/docs",
"versions": [
{
"name": "current",
"label": "Next",
"isLast": true,
"path": "/docs/docs",
"mainDocId": "overview",
"docs": [
{
"id": "commands/cli/cli-init",
"path": "/docs/docs/commands/cli/cli-init",
"sidebar": "docs"
},
{
"id": "commands/cli/codex-review",
"path": "/docs/docs/commands/cli/codex-review",
"sidebar": "docs"
},
{
"id": "commands/general/ccw",
"path": "/docs/docs/commands/general/ccw",
"sidebar": "docs"
},
{
"id": "commands/general/ccw-coordinator",
"path": "/docs/docs/commands/general/ccw-coordinator",
"sidebar": "docs"
},
{
"id": "commands/general/ccw-debug",
"path": "/docs/docs/commands/general/ccw-debug",
"sidebar": "docs"
},
{
"id": "commands/general/ccw-plan",
"path": "/docs/docs/commands/general/ccw-plan",
"sidebar": "docs"
},
{
"id": "commands/general/ccw-test",
"path": "/docs/docs/commands/general/ccw-test",
"sidebar": "docs"
},
{
"id": "commands/general/codex-coordinator",
"path": "/docs/docs/commands/general/codex-coordinator",
"sidebar": "docs"
},
{
"id": "commands/general/flow-create",
"path": "/docs/docs/commands/general/flow-create",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-convert-to-plan",
"path": "/docs/docs/commands/issue/issue-convert-to-plan",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-discover",
"path": "/docs/docs/commands/issue/issue-discover",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-execute",
"path": "/docs/docs/commands/issue/issue-execute",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-from-brainstorm",
"path": "/docs/docs/commands/issue/issue-from-brainstorm",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-new",
"path": "/docs/docs/commands/issue/issue-new",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-plan",
"path": "/docs/docs/commands/issue/issue-plan",
"sidebar": "docs"
},
{
"id": "commands/issue/issue-queue",
"path": "/docs/docs/commands/issue/issue-queue",
"sidebar": "docs"
},
{
"id": "commands/memory/memory-compact",
"path": "/docs/docs/commands/memory/memory-compact",
"sidebar": "docs"
},
{
"id": "commands/memory/memory-docs-full-cli",
"path": "/docs/docs/commands/memory/memory-docs-full-cli",
"sidebar": "docs"
},
{
"id": "commands/memory/memory-docs-related-cli",
"path": "/docs/docs/commands/memory/memory-docs-related-cli",
"sidebar": "docs"
},
{
"id": "commands/memory/memory-load",
"path": "/docs/docs/commands/memory/memory-load",
"sidebar": "docs"
},
{
"id": "commands/memory/memory-update-full",
"path": "/docs/docs/commands/memory/memory-update-full",
"sidebar": "docs"
},
{
"id": "commands/memory/memory-update-related",
"path": "/docs/docs/commands/memory/memory-update-related",
"sidebar": "docs"
},
{
"id": "faq",
"path": "/docs/docs/faq",
"sidebar": "docs"
},
{
"id": "overview",
"path": "/docs/docs/",
"sidebar": "docs"
},
{
"id": "workflows/faq",
"path": "/docs/docs/workflows/faq"
},
{
"id": "workflows/introduction",
"path": "/docs/docs/workflows/introduction",
"sidebar": "docs"
},
{
"id": "workflows/level-1-ultra-lightweight",
"path": "/docs/docs/workflows/level-1-ultra-lightweight",
"sidebar": "docs"
},
{
"id": "workflows/level-2-rapid",
"path": "/docs/docs/workflows/level-2-rapid",
"sidebar": "docs"
},
{
"id": "workflows/level-3-standard",
"path": "/docs/docs/workflows/level-3-standard",
"sidebar": "docs"
},
{
"id": "workflows/level-4-brainstorm",
"path": "/docs/docs/workflows/level-4-brainstorm",
"sidebar": "docs"
},
{
"id": "workflows/level-5-intelligent",
"path": "/docs/docs/workflows/level-5-intelligent",
"sidebar": "docs"
}
],
"draftIds": [],
"sidebars": {
"docs": {
"link": {
"path": "/docs/docs/",
"label": "Quick Start"
}
}
}
}
],
"breadcrumbs": true
}
}
}

View File

@@ -0,0 +1,31 @@
{
"defaultLocale": "en",
"locales": [
"en",
"zh"
],
"path": "i18n",
"currentLocale": "en",
"localeConfigs": {
"en": {
"label": "English",
"direction": "ltr",
"htmlLang": "en",
"calendar": "gregory",
"path": "en",
"translate": false,
"url": "https://ccw.dev",
"baseUrl": "/docs/"
},
"zh": {
"label": "中文",
"direction": "ltr",
"htmlLang": "zh",
"calendar": "gregory",
"path": "zh",
"translate": true,
"url": "https://ccw.dev",
"baseUrl": "/docs/zh/"
}
}
}

View File

@@ -0,0 +1,46 @@
export default {
"__comp---theme-debug-config-23-a-2ff": [() => import(/* webpackChunkName: "__comp---theme-debug-config-23-a-2ff" */ "@theme/DebugConfig"), "@theme/DebugConfig", require.resolveWeak("@theme/DebugConfig")],
"__comp---theme-debug-contentba-8-ce7": [() => import(/* webpackChunkName: "__comp---theme-debug-contentba-8-ce7" */ "@theme/DebugContent"), "@theme/DebugContent", require.resolveWeak("@theme/DebugContent")],
"__comp---theme-debug-global-dataede-0fa": [() => import(/* webpackChunkName: "__comp---theme-debug-global-dataede-0fa" */ "@theme/DebugGlobalData"), "@theme/DebugGlobalData", require.resolveWeak("@theme/DebugGlobalData")],
"__comp---theme-debug-registry-679-501": [() => import(/* webpackChunkName: "__comp---theme-debug-registry-679-501" */ "@theme/DebugRegistry"), "@theme/DebugRegistry", require.resolveWeak("@theme/DebugRegistry")],
"__comp---theme-debug-routes-946-699": [() => import(/* webpackChunkName: "__comp---theme-debug-routes-946-699" */ "@theme/DebugRoutes"), "@theme/DebugRoutes", require.resolveWeak("@theme/DebugRoutes")],
"__comp---theme-debug-site-metadata-68-e-3d4": [() => import(/* webpackChunkName: "__comp---theme-debug-site-metadata-68-e-3d4" */ "@theme/DebugSiteMetadata"), "@theme/DebugSiteMetadata", require.resolveWeak("@theme/DebugSiteMetadata")],
"__comp---theme-doc-item-178-a40": [() => import(/* webpackChunkName: "__comp---theme-doc-item-178-a40" */ "@theme/DocItem"), "@theme/DocItem", require.resolveWeak("@theme/DocItem")],
"__comp---theme-doc-roota-94-67a": [() => import(/* webpackChunkName: "__comp---theme-doc-roota-94-67a" */ "@theme/DocRoot"), "@theme/DocRoot", require.resolveWeak("@theme/DocRoot")],
"__comp---theme-doc-version-roota-7-b-5de": [() => import(/* webpackChunkName: "__comp---theme-doc-version-roota-7-b-5de" */ "@theme/DocVersionRoot"), "@theme/DocVersionRoot", require.resolveWeak("@theme/DocVersionRoot")],
"__comp---theme-docs-root-5-e-9-0b6": [() => import(/* webpackChunkName: "__comp---theme-docs-root-5-e-9-0b6" */ "@theme/DocsRoot"), "@theme/DocsRoot", require.resolveWeak("@theme/DocsRoot")],
"__props---docs-docsa-20-f19": [() => import(/* webpackChunkName: "__props---docs-docsa-20-f19" */ "@generated/docusaurus-plugin-content-docs/default/p/docs-docs-fbb.json"), "@generated/docusaurus-plugin-content-docs/default/p/docs-docs-fbb.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/docs-docs-fbb.json")],
"__props---docs-docusaurus-debug-content-344-8d5": [() => import(/* webpackChunkName: "__props---docs-docusaurus-debug-content-344-8d5" */ "@generated/docusaurus-plugin-debug/default/p/docs-docusaurus-debug-content-a52.json"), "@generated/docusaurus-plugin-debug/default/p/docs-docusaurus-debug-content-a52.json", require.resolveWeak("@generated/docusaurus-plugin-debug/default/p/docs-docusaurus-debug-content-a52.json")],
"content---docs-docs-188-f57": [() => import(/* webpackChunkName: "content---docs-docs-188-f57" */ "@site/docs/overview.mdx"), "@site/docs/overview.mdx", require.resolveWeak("@site/docs/overview.mdx")],
"content---docs-docs-commands-cli-cli-init-056-2d3": [() => import(/* webpackChunkName: "content---docs-docs-commands-cli-cli-init-056-2d3" */ "@site/docs/commands/cli/cli-init.mdx"), "@site/docs/commands/cli/cli-init.mdx", require.resolveWeak("@site/docs/commands/cli/cli-init.mdx")],
"content---docs-docs-commands-cli-codex-reviewf-1-b-532": [() => import(/* webpackChunkName: "content---docs-docs-commands-cli-codex-reviewf-1-b-532" */ "@site/docs/commands/cli/codex-review.mdx"), "@site/docs/commands/cli/codex-review.mdx", require.resolveWeak("@site/docs/commands/cli/codex-review.mdx")],
"content---docs-docs-commands-general-ccw-coordinatord-55-a04": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-ccw-coordinatord-55-a04" */ "@site/docs/commands/general/ccw-coordinator.mdx"), "@site/docs/commands/general/ccw-coordinator.mdx", require.resolveWeak("@site/docs/commands/general/ccw-coordinator.mdx")],
"content---docs-docs-commands-general-ccw-debug-97-c-2c8": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-ccw-debug-97-c-2c8" */ "@site/docs/commands/general/ccw-debug.mdx"), "@site/docs/commands/general/ccw-debug.mdx", require.resolveWeak("@site/docs/commands/general/ccw-debug.mdx")],
"content---docs-docs-commands-general-ccw-plan-04-d-aa3": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-ccw-plan-04-d-aa3" */ "@site/docs/commands/general/ccw-plan.mdx"), "@site/docs/commands/general/ccw-plan.mdx", require.resolveWeak("@site/docs/commands/general/ccw-plan.mdx")],
"content---docs-docs-commands-general-ccw-testcce-a5d": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-ccw-testcce-a5d" */ "@site/docs/commands/general/ccw-test.mdx"), "@site/docs/commands/general/ccw-test.mdx", require.resolveWeak("@site/docs/commands/general/ccw-test.mdx")],
"content---docs-docs-commands-general-ccwf-48-4f9": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-ccwf-48-4f9" */ "@site/docs/commands/general/ccw.mdx"), "@site/docs/commands/general/ccw.mdx", require.resolveWeak("@site/docs/commands/general/ccw.mdx")],
"content---docs-docs-commands-general-codex-coordinatorf-92-965": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-codex-coordinatorf-92-965" */ "@site/docs/commands/general/codex-coordinator.mdx"), "@site/docs/commands/general/codex-coordinator.mdx", require.resolveWeak("@site/docs/commands/general/codex-coordinator.mdx")],
"content---docs-docs-commands-general-flow-createfab-5a7": [() => import(/* webpackChunkName: "content---docs-docs-commands-general-flow-createfab-5a7" */ "@site/docs/commands/general/flow-create.mdx"), "@site/docs/commands/general/flow-create.mdx", require.resolveWeak("@site/docs/commands/general/flow-create.mdx")],
"content---docs-docs-commands-issue-issue-convert-to-plan-5-c-7-428": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-convert-to-plan-5-c-7-428" */ "@site/docs/commands/issue/issue-convert-to-plan.md"), "@site/docs/commands/issue/issue-convert-to-plan.md", require.resolveWeak("@site/docs/commands/issue/issue-convert-to-plan.md")],
"content---docs-docs-commands-issue-issue-discover-1-e-3-61d": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-discover-1-e-3-61d" */ "@site/docs/commands/issue/issue-discover.md"), "@site/docs/commands/issue/issue-discover.md", require.resolveWeak("@site/docs/commands/issue/issue-discover.md")],
"content---docs-docs-commands-issue-issue-executefe-8-121": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-executefe-8-121" */ "@site/docs/commands/issue/issue-execute.md"), "@site/docs/commands/issue/issue-execute.md", require.resolveWeak("@site/docs/commands/issue/issue-execute.md")],
"content---docs-docs-commands-issue-issue-from-brainstorm-2-ec-ca5": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-from-brainstorm-2-ec-ca5" */ "@site/docs/commands/issue/issue-from-brainstorm.md"), "@site/docs/commands/issue/issue-from-brainstorm.md", require.resolveWeak("@site/docs/commands/issue/issue-from-brainstorm.md")],
"content---docs-docs-commands-issue-issue-new-4-ad-afb": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-new-4-ad-afb" */ "@site/docs/commands/issue/issue-new.md"), "@site/docs/commands/issue/issue-new.md", require.resolveWeak("@site/docs/commands/issue/issue-new.md")],
"content---docs-docs-commands-issue-issue-plana-6-c-1b0": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-plana-6-c-1b0" */ "@site/docs/commands/issue/issue-plan.md"), "@site/docs/commands/issue/issue-plan.md", require.resolveWeak("@site/docs/commands/issue/issue-plan.md")],
"content---docs-docs-commands-issue-issue-queue-1-ba-06f": [() => import(/* webpackChunkName: "content---docs-docs-commands-issue-issue-queue-1-ba-06f" */ "@site/docs/commands/issue/issue-queue.md"), "@site/docs/commands/issue/issue-queue.md", require.resolveWeak("@site/docs/commands/issue/issue-queue.md")],
"content---docs-docs-commands-memory-memory-compact-7-a-1-f85": [() => import(/* webpackChunkName: "content---docs-docs-commands-memory-memory-compact-7-a-1-f85" */ "@site/docs/commands/memory/memory-compact.mdx"), "@site/docs/commands/memory/memory-compact.mdx", require.resolveWeak("@site/docs/commands/memory/memory-compact.mdx")],
"content---docs-docs-commands-memory-memory-docs-full-cli-4-cc-b15": [() => import(/* webpackChunkName: "content---docs-docs-commands-memory-memory-docs-full-cli-4-cc-b15" */ "@site/docs/commands/memory/memory-docs-full-cli.mdx"), "@site/docs/commands/memory/memory-docs-full-cli.mdx", require.resolveWeak("@site/docs/commands/memory/memory-docs-full-cli.mdx")],
"content---docs-docs-commands-memory-memory-docs-related-cli-60-e-28a": [() => import(/* webpackChunkName: "content---docs-docs-commands-memory-memory-docs-related-cli-60-e-28a" */ "@site/docs/commands/memory/memory-docs-related-cli.mdx"), "@site/docs/commands/memory/memory-docs-related-cli.mdx", require.resolveWeak("@site/docs/commands/memory/memory-docs-related-cli.mdx")],
"content---docs-docs-commands-memory-memory-load-157-920": [() => import(/* webpackChunkName: "content---docs-docs-commands-memory-memory-load-157-920" */ "@site/docs/commands/memory/memory-load.mdx"), "@site/docs/commands/memory/memory-load.mdx", require.resolveWeak("@site/docs/commands/memory/memory-load.mdx")],
"content---docs-docs-commands-memory-memory-update-full-666-28e": [() => import(/* webpackChunkName: "content---docs-docs-commands-memory-memory-update-full-666-28e" */ "@site/docs/commands/memory/memory-update-full.mdx"), "@site/docs/commands/memory/memory-update-full.mdx", require.resolveWeak("@site/docs/commands/memory/memory-update-full.mdx")],
"content---docs-docs-commands-memory-memory-update-related-611-f0a": [() => import(/* webpackChunkName: "content---docs-docs-commands-memory-memory-update-related-611-f0a" */ "@site/docs/commands/memory/memory-update-related.mdx"), "@site/docs/commands/memory/memory-update-related.mdx", require.resolveWeak("@site/docs/commands/memory/memory-update-related.mdx")],
"content---docs-docs-faqea-3-29f": [() => import(/* webpackChunkName: "content---docs-docs-faqea-3-29f" */ "@site/docs/faq.mdx"), "@site/docs/faq.mdx", require.resolveWeak("@site/docs/faq.mdx")],
"content---docs-docs-workflows-faqbcf-a47": [() => import(/* webpackChunkName: "content---docs-docs-workflows-faqbcf-a47" */ "@site/docs/workflows/faq.mdx"), "@site/docs/workflows/faq.mdx", require.resolveWeak("@site/docs/workflows/faq.mdx")],
"content---docs-docs-workflows-introduction-9-f-4-dba": [() => import(/* webpackChunkName: "content---docs-docs-workflows-introduction-9-f-4-dba" */ "@site/docs/workflows/introduction.mdx"), "@site/docs/workflows/introduction.mdx", require.resolveWeak("@site/docs/workflows/introduction.mdx")],
"content---docs-docs-workflows-level-1-ultra-lightweightc-5-a-692": [() => import(/* webpackChunkName: "content---docs-docs-workflows-level-1-ultra-lightweightc-5-a-692" */ "@site/docs/workflows/level-1-ultra-lightweight.mdx"), "@site/docs/workflows/level-1-ultra-lightweight.mdx", require.resolveWeak("@site/docs/workflows/level-1-ultra-lightweight.mdx")],
"content---docs-docs-workflows-level-2-rapid-19-b-a2f": [() => import(/* webpackChunkName: "content---docs-docs-workflows-level-2-rapid-19-b-a2f" */ "@site/docs/workflows/level-2-rapid.mdx"), "@site/docs/workflows/level-2-rapid.mdx", require.resolveWeak("@site/docs/workflows/level-2-rapid.mdx")],
"content---docs-docs-workflows-level-3-standardbdb-19a": [() => import(/* webpackChunkName: "content---docs-docs-workflows-level-3-standardbdb-19a" */ "@site/docs/workflows/level-3-standard.mdx"), "@site/docs/workflows/level-3-standard.mdx", require.resolveWeak("@site/docs/workflows/level-3-standard.mdx")],
"content---docs-docs-workflows-level-4-brainstormd-04-69a": [() => import(/* webpackChunkName: "content---docs-docs-workflows-level-4-brainstormd-04-69a" */ "@site/docs/workflows/level-4-brainstorm.mdx"), "@site/docs/workflows/level-4-brainstorm.mdx", require.resolveWeak("@site/docs/workflows/level-4-brainstorm.mdx")],
"content---docs-docs-workflows-level-5-intelligent-186-435": [() => import(/* webpackChunkName: "content---docs-docs-workflows-level-5-intelligent-186-435" */ "@site/docs/workflows/level-5-intelligent.mdx"), "@site/docs/workflows/level-5-intelligent.mdx", require.resolveWeak("@site/docs/workflows/level-5-intelligent.mdx")],
"plugin---docs-docsaba-31e": [() => import(/* webpackChunkName: "plugin---docs-docsaba-31e" */ "@generated/docusaurus-plugin-content-docs/default/__plugin.json"), "@generated/docusaurus-plugin-content-docs/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/__plugin.json")],
"plugin---docs-docusaurus-debugb-38-c84": [() => import(/* webpackChunkName: "plugin---docs-docusaurus-debugb-38-c84" */ "@generated/docusaurus-plugin-debug/default/__plugin.json"), "@generated/docusaurus-plugin-debug/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-debug/default/__plugin.json")],};

View File

@@ -0,0 +1,247 @@
import React from 'react';
import ComponentCreator from '@docusaurus/ComponentCreator';
export default [
{
path: '/docs/__docusaurus/debug',
component: ComponentCreator('/docs/__docusaurus/debug', 'e58'),
exact: true
},
{
path: '/docs/__docusaurus/debug/config',
component: ComponentCreator('/docs/__docusaurus/debug/config', '2ce'),
exact: true
},
{
path: '/docs/__docusaurus/debug/content',
component: ComponentCreator('/docs/__docusaurus/debug/content', '11b'),
exact: true
},
{
path: '/docs/__docusaurus/debug/globalData',
component: ComponentCreator('/docs/__docusaurus/debug/globalData', 'f13'),
exact: true
},
{
path: '/docs/__docusaurus/debug/metadata',
component: ComponentCreator('/docs/__docusaurus/debug/metadata', 'bff'),
exact: true
},
{
path: '/docs/__docusaurus/debug/registry',
component: ComponentCreator('/docs/__docusaurus/debug/registry', '830'),
exact: true
},
{
path: '/docs/__docusaurus/debug/routes',
component: ComponentCreator('/docs/__docusaurus/debug/routes', '13e'),
exact: true
},
{
path: '/docs/docs',
component: ComponentCreator('/docs/docs', '7fe'),
routes: [
{
path: '/docs/docs',
component: ComponentCreator('/docs/docs', '830'),
routes: [
{
path: '/docs/docs',
component: ComponentCreator('/docs/docs', '77f'),
routes: [
{
path: '/docs/docs/',
component: ComponentCreator('/docs/docs/', '2fa'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/cli/cli-init',
component: ComponentCreator('/docs/docs/commands/cli/cli-init', 'c74'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/cli/codex-review',
component: ComponentCreator('/docs/docs/commands/cli/codex-review', '937'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw',
component: ComponentCreator('/docs/docs/commands/general/ccw', '3fb'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-coordinator',
component: ComponentCreator('/docs/docs/commands/general/ccw-coordinator', 'a90'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-debug',
component: ComponentCreator('/docs/docs/commands/general/ccw-debug', '663'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-plan',
component: ComponentCreator('/docs/docs/commands/general/ccw-plan', '40b'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-test',
component: ComponentCreator('/docs/docs/commands/general/ccw-test', '99d'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/codex-coordinator',
component: ComponentCreator('/docs/docs/commands/general/codex-coordinator', '996'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/flow-create',
component: ComponentCreator('/docs/docs/commands/general/flow-create', 'd91'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-convert-to-plan',
component: ComponentCreator('/docs/docs/commands/issue/issue-convert-to-plan', 'd90'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-discover',
component: ComponentCreator('/docs/docs/commands/issue/issue-discover', '2a1'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-execute',
component: ComponentCreator('/docs/docs/commands/issue/issue-execute', 'abb'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-from-brainstorm',
component: ComponentCreator('/docs/docs/commands/issue/issue-from-brainstorm', '72b'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-new',
component: ComponentCreator('/docs/docs/commands/issue/issue-new', 'c58'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-plan',
component: ComponentCreator('/docs/docs/commands/issue/issue-plan', 'fd2'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-queue',
component: ComponentCreator('/docs/docs/commands/issue/issue-queue', '1ce'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-compact',
component: ComponentCreator('/docs/docs/commands/memory/memory-compact', '74c'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-docs-full-cli',
component: ComponentCreator('/docs/docs/commands/memory/memory-docs-full-cli', '7a4'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-docs-related-cli',
component: ComponentCreator('/docs/docs/commands/memory/memory-docs-related-cli', 'fb4'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-load',
component: ComponentCreator('/docs/docs/commands/memory/memory-load', 'c66'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-update-full',
component: ComponentCreator('/docs/docs/commands/memory/memory-update-full', 'b80'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-update-related',
component: ComponentCreator('/docs/docs/commands/memory/memory-update-related', 'f0d'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/faq',
component: ComponentCreator('/docs/docs/faq', '4b2'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/faq',
component: ComponentCreator('/docs/docs/workflows/faq', 'f47'),
exact: true
},
{
path: '/docs/docs/workflows/introduction',
component: ComponentCreator('/docs/docs/workflows/introduction', '4cb'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-1-ultra-lightweight',
component: ComponentCreator('/docs/docs/workflows/level-1-ultra-lightweight', '5c4'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-2-rapid',
component: ComponentCreator('/docs/docs/workflows/level-2-rapid', 'ad8'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-3-standard',
component: ComponentCreator('/docs/docs/workflows/level-3-standard', '3ea'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-4-brainstorm',
component: ComponentCreator('/docs/docs/workflows/level-4-brainstorm', 'f4f'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-5-intelligent',
component: ComponentCreator('/docs/docs/workflows/level-5-intelligent', '84a'),
exact: true,
sidebar: "docs"
}
]
}
]
}
]
},
{
path: '*',
component: ComponentCreator('*'),
},
];

View File

@@ -0,0 +1,182 @@
{
"/docs/__docusaurus/debug-e58": {
"__comp": "__comp---theme-debug-config-23-a-2ff",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
}
},
"/docs/__docusaurus/debug/config-2ce": {
"__comp": "__comp---theme-debug-config-23-a-2ff",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
}
},
"/docs/__docusaurus/debug/content-11b": {
"__comp": "__comp---theme-debug-contentba-8-ce7",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
},
"__props": "__props---docs-docusaurus-debug-content-344-8d5"
},
"/docs/__docusaurus/debug/globalData-f13": {
"__comp": "__comp---theme-debug-global-dataede-0fa",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
}
},
"/docs/__docusaurus/debug/metadata-bff": {
"__comp": "__comp---theme-debug-site-metadata-68-e-3d4",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
}
},
"/docs/__docusaurus/debug/registry-830": {
"__comp": "__comp---theme-debug-registry-679-501",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
}
},
"/docs/__docusaurus/debug/routes-13e": {
"__comp": "__comp---theme-debug-routes-946-699",
"__context": {
"plugin": "plugin---docs-docusaurus-debugb-38-c84"
}
},
"/docs/docs-7fe": {
"__comp": "__comp---theme-docs-root-5-e-9-0b6",
"__context": {
"plugin": "plugin---docs-docsaba-31e"
}
},
"/docs/docs-830": {
"__comp": "__comp---theme-doc-version-roota-7-b-5de",
"__props": "__props---docs-docsa-20-f19"
},
"/docs/docs-77f": {
"__comp": "__comp---theme-doc-roota-94-67a"
},
"/docs/docs/-2fa": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-188-f57"
},
"/docs/docs/commands/cli/cli-init-c74": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-cli-cli-init-056-2d3"
},
"/docs/docs/commands/cli/codex-review-937": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-cli-codex-reviewf-1-b-532"
},
"/docs/docs/commands/general/ccw-3fb": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-ccwf-48-4f9"
},
"/docs/docs/commands/general/ccw-coordinator-a90": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-ccw-coordinatord-55-a04"
},
"/docs/docs/commands/general/ccw-debug-663": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-ccw-debug-97-c-2c8"
},
"/docs/docs/commands/general/ccw-plan-40b": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-ccw-plan-04-d-aa3"
},
"/docs/docs/commands/general/ccw-test-99d": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-ccw-testcce-a5d"
},
"/docs/docs/commands/general/codex-coordinator-996": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-codex-coordinatorf-92-965"
},
"/docs/docs/commands/general/flow-create-d91": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-general-flow-createfab-5a7"
},
"/docs/docs/commands/issue/issue-convert-to-plan-d90": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-convert-to-plan-5-c-7-428"
},
"/docs/docs/commands/issue/issue-discover-2a1": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-discover-1-e-3-61d"
},
"/docs/docs/commands/issue/issue-execute-abb": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-executefe-8-121"
},
"/docs/docs/commands/issue/issue-from-brainstorm-72b": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-from-brainstorm-2-ec-ca5"
},
"/docs/docs/commands/issue/issue-new-c58": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-new-4-ad-afb"
},
"/docs/docs/commands/issue/issue-plan-fd2": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-plana-6-c-1b0"
},
"/docs/docs/commands/issue/issue-queue-1ce": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-issue-issue-queue-1-ba-06f"
},
"/docs/docs/commands/memory/memory-compact-74c": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-memory-memory-compact-7-a-1-f85"
},
"/docs/docs/commands/memory/memory-docs-full-cli-7a4": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-memory-memory-docs-full-cli-4-cc-b15"
},
"/docs/docs/commands/memory/memory-docs-related-cli-fb4": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-memory-memory-docs-related-cli-60-e-28a"
},
"/docs/docs/commands/memory/memory-load-c66": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-memory-memory-load-157-920"
},
"/docs/docs/commands/memory/memory-update-full-b80": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-memory-memory-update-full-666-28e"
},
"/docs/docs/commands/memory/memory-update-related-f0d": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-commands-memory-memory-update-related-611-f0a"
},
"/docs/docs/faq-4b2": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-faqea-3-29f"
},
"/docs/docs/workflows/faq-f47": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-faqbcf-a47"
},
"/docs/docs/workflows/introduction-4cb": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-introduction-9-f-4-dba"
},
"/docs/docs/workflows/level-1-ultra-lightweight-5c4": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-level-1-ultra-lightweightc-5-a-692"
},
"/docs/docs/workflows/level-2-rapid-ad8": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-level-2-rapid-19-b-a2f"
},
"/docs/docs/workflows/level-3-standard-3ea": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-level-3-standardbdb-19a"
},
"/docs/docs/workflows/level-4-brainstorm-f4f": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-level-4-brainstormd-04-69a"
},
"/docs/docs/workflows/level-5-intelligent-84a": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---docs-docs-workflows-level-5-intelligent-186-435"
}
}

View File

@@ -0,0 +1,31 @@
{
"docusaurusVersion": "3.9.2",
"siteVersion": "1.0.0",
"pluginVersions": {
"docusaurus-plugin-content-docs": {
"type": "package",
"name": "@docusaurus/plugin-content-docs",
"version": "3.9.2"
},
"docusaurus-plugin-content-pages": {
"type": "package",
"name": "@docusaurus/plugin-content-pages",
"version": "3.9.2"
},
"docusaurus-plugin-debug": {
"type": "package",
"name": "@docusaurus/plugin-debug",
"version": "3.9.2"
},
"docusaurus-plugin-svgr": {
"type": "package",
"name": "@docusaurus/plugin-svgr",
"version": "3.9.2"
},
"docusaurus-theme-classic": {
"type": "package",
"name": "@docusaurus/theme-classic",
"version": "3.9.2"
}
}
}

View File

@@ -0,0 +1,4 @@
{
"type": "localStorage",
"namespace": ""
}

212
ccw/docs-site/README.md Normal file
View File

@@ -0,0 +1,212 @@
# CCW Documentation Site
This is the documentation site for CCW (Claude Code Workflow), built with [Docusaurus](https://docusaurus.io/).
## 🚀 Quick Start
```bash
# Install dependencies
npm install
# Start development server (port 3001)
npm start
# Build for production
npm run build
# Serve production build locally
npm serve
```
## 📁 Project Structure
```
docs-site/
├── docs/ # Documentation content
│ ├── overview.mdx # Landing page
│ ├── quick-start.mdx # Getting started
│ ├── commands/ # Command documentation
│ │ ├── workflows/ # Workflow commands (14)
│ │ ├── issue/ # Issue commands (7)
│ │ ├── cli/ # CLI commands (2)
│ │ ├── memory/ # Memory commands (6)
│ │ └── general/ # General commands (7)
│ ├── workflows/ # Workflow guides
│ │ ├── introduction.mdx
│ │ ├── level-*.mdx
│ │ └── faq.mdx
│ └── faq.mdx # Main FAQ
├── i18n/ # Internationalization
│ └── zh/ # Chinese translations
├── src/
│ ├── css/
│ │ ├── custom.css # Custom styles
│ │ └── variables.css # CSS variables (CCW theme)
│ └── components/ # Custom React components
├── docusaurus.config.ts # Main configuration
├── sidebars.ts # Sidebar navigation
└── package.json
```
## 🎨 Design System
The documentation uses CCW's design tokens:
- **Primary**: Blue (HSL 221, 83%, 53%)
- **Accent**: Green (HSL 142, 76%, 36%)
- **Dark Mode**: Full support with dracula syntax theme
- **Mermaid**: Workflow diagrams with light/dark themes
## 🔗 Integration with CCW Frontend
The documentation is integrated as a sub-route (`/docs`) in the main CCW frontend:
1. **Development**: Vite proxies `/docs``http://localhost:3001`
2. **Production**: Nginx serves both apps with `/docs` location
See `../frontend/vite.config.ts` for proxy configuration.
## 📝 Writing Documentation
### File Naming
- Use kebab-case: `workflow-lite-plan.mdx`
- Match sidebar IDs: `id: workflow-lite-plan`
### Frontmatter Template
```yaml
---
title: Workflow: Lite Plan
sidebar_label: workflow:lite-plan
sidebar_position: 3
description: Lightweight in-memory planning for simple tasks
---
```
### Mermaid Diagrams
```mermaid
graph TD
Start([Start]) --> Plan([Planning])
Plan --> Execute([Execution])
```
### Admonitions
```md
:::tip Pro Tip
Use this workflow for...
:::
:::warning Warning
This feature is experimental
:::
:::danger Caution
This operation cannot be undone
:::
```
## 🌍 Internationalization
### Adding New Translations
1. Create MDX file in `i18n/zh/docusaurus-plugin-content-docs/current/`
2. Mirror the English docs structure
3. Run: `npm run write-translations -- --locale zh`
### Translation Status
- ✅ English (EN) - Complete
- 🔄 Chinese (ZH) - Interface translated, content pending
## 🔧 Configuration
### Docusaurus Config (`docusaurus.config.ts`)
- **Presets**: Classic (docs only, no blog)
- **Themes**: Mermaid for diagrams
- **i18n**: EN (default), ZH
- **Base URL**: `/docs/`
### Sidebar Config (`sidebars.ts`)
Organized by:
1. Quick Start
2. Commands (by category)
3. Workflows (by level)
4. FAQ
## 📦 Dependencies
| Package | Version | Purpose |
|---------|---------|---------|
| @docusaurus/core | ^3.5.2 | Core framework |
| @docusaurus/preset-classic | ^3.5.2 | Default preset |
| @docusaurus/theme-mermaid | ^3.5.2 | Diagram support |
| react | ^18.3.1 | UI framework |
## 🚢 Deployment
### Build
```bash
npm run build
```
Output: `build/` directory
### Deploy to Static Hosting
```bash
# Surge
npm run deploy -- --surge
# GitHub Pages
npm run deploy -- --git
# Custom server
npm run serve
```
## 🐛 Troubleshooting
### Port Already in Use
```bash
# Kill process on port 3001
npx kill-port 3001
# Or use different port
npm start -- --port 3002
```
### Build Errors
```bash
# Clear cache
npm run clear
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
```
## 📚 Resources
- [Docusaurus Documentation](https://docusaurus.io/docs)
- [MDX Documentation](https://mdxjs.com/)
- [Mermaid Syntax](https://mermaid.js.org/syntax/)
## 🤝 Contributing
1. Edit/add MDX files in `docs/`
2. Update `sidebars.ts` if adding new pages
3. Run `npm start` to preview
4. Test both light and dark modes
5. Check mobile responsiveness
## 📄 License
Same as CCW main project.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[647],{3531(c,s,e){e.r(s),e.d(s,{default:()=>h});e(4041);var r=e(4357),a=e(7473),u=e(8582),l=e(8150),o=e(6270),d=e(1085);function h(c){return(0,d.jsx)(u.e3,{className:(0,r.A)(a.G.wrapper.docsPages),children:(0,d.jsx)(o.A,{children:(0,l.v)(c.route.routes)})})}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[723],{2757(e,t,i){i.d(t,{A:()=>r});i(4041);var n=i(4357),o=i(9082),s=i(4441),a=i(1085);function r({className:e}){return(0,a.jsx)("main",{className:(0,n.A)("container margin-vert--xl",e),children:(0,a.jsx)("div",{className:"row",children:(0,a.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,a.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,a.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,a.jsx)("p",{children:(0,a.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,a.jsx)("p",{children:(0,a.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},5723(e,t,i){i.r(t),i.d(t,{default:()=>c});i(4041);var n=i(9082),o=i(8582),s=i(6270),a=i(2757),r=i(1085);function c(){const e=(0,n.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.be,{title:e}),(0,r.jsx)(s.A,{children:(0,r.jsx)(a.A,{})})]})}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[98],{3045(n,s,e){e.r(s),e.d(s,{default:()=>d});e(4041);var r=e(8582);function o(n,s){return`docs-${n}-${s}`}var c=e(4647),t=e(8150),i=e(6613),a=e(1085);function u(n){const{version:s}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{version:s.version,tag:o(s.pluginId,s.version)}),(0,a.jsx)(r.be,{children:s.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:s,route:e}=n;return(0,a.jsx)(r.e3,{className:s.className,children:(0,a.jsx)(c.n,{version:s,children:(0,t.v)(e.routes)})})}function d(n){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(u,{...n}),(0,a.jsx)(l,{...n})]})}}}]);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[742],{7093(c){c.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,51 @@
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
* @license MIT */
/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

View File

@@ -0,0 +1 @@
(()=>{"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<e.length;i++){for(var[r,t,f]=e[i],o=!0,d=0;d<r.length;d++)(!1&f||c>=f)&&Object.keys(b.O).every(e=>b.O[e](r[d]))?r.splice(d--,1):(o=!1,f<c&&(c=f));if(o){e.splice(i--,1);var n=t();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&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",57:"19b64556",98:"a7bd4aaa",121:"5c7b2278",142:"0566a0a8",148:"4cc74730",235:"18891827",241:"d045285b",268:"60eef997",288:"666bb1bf",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",816:"a2065270",849:"4ad7db0f",856:"2ecf8b4a",896:"f4817052",927:"04db0a2e",934:"7a1ee27c",954:"f1bf82ec",971:"fe8e3dcf",973:"9f4ca91e",975:"1e3006f3",991:"a6c3df16"}[e]||e)+"."+{11:"4eea9e04",17:"421f57e1",47:"4fb84679",48:"5b347b84",57:"a6163a0a",98:"5f0b376e",121:"0eaf76aa",142:"13f3324d",148:"4af80d66",235:"d20470dc",241:"73fb2bfa",268:"a1401c2f",288:"2da41127",368:"dc0319e0",401:"a28ce98e",407:"71e7b278",411:"41f98adf",412:"2e1f90de",448:"eca02b22",482:"c941bbe4",511:"00be57de",647:"1a07266b",723:"b1cb938e",725:"19ccccf7",742:"dc3eeab8",777:"811090ab",814:"baa03fb6",816:"088080b0",849:"62c9b350",856:"9d518d70",896:"a5126a55",927:"2c353bc4",934:"67535332",954:"e2a6e8e1",971:"0a78caef",973:"ea7dd9f3",975:"6141b6ef",991:"fddd53e1"}[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<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==f+r){o=l;break}}o||(d=!0,(o=document.createElement("script")).charset="utf-8",b.nc&&o.setAttribute("nonce",b.nc),o.setAttribute("data-webpack",f+r),o.src=e),t[e]=[a];var u=(a,r)=>{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/",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","60eef997":"268","666bb1bf":"288","186dcf4e":"368","611877e1":"407",d550a629:"411","1bac9067":"412",f9222419:"448",c5a82d8d:"482",bdb2b105:"511","5e95c892":"647",bcf6b37c:"725",aba21aa0:"742",fabaf1c8:"777","97c6e66a":"814",a2065270:"816","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,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<c.length;n++)f=c[n],b.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return b.O(i)},r=globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();

Some files were not shown because too many files have changed in this diff Show More