Files
Claude-Code-Workflow/ccw/docs-site/build/assets/js/ea313555.5ab441e2.js
catlog22 c6093ef741 feat: add CLI Command Node and Prompt Node components for orchestrator
- Implemented CliCommandNode component for executing CLI tools with AI models.
- Implemented PromptNode component for constructing AI prompts with context.
- Added styling for mode and tool badges in both components.
- Enhanced user experience with command and argument previews, execution status, and error handling.

test: add comprehensive tests for ask_question tool

- Created direct test for ask_question tool execution.
- Developed end-to-end tests to validate ask_question tool integration with WebSocket and A2UI surfaces.
- Implemented simple and integrated WebSocket tests to ensure proper message handling and surface reception.
- Added tool registration test to verify ask_question tool is correctly registered.

chore: add WebSocket listener and simulation tests

- Added WebSocket listener for A2UI surfaces to facilitate testing.
- Implemented frontend simulation test to validate complete flow from backend to frontend.
- Created various test scripts to ensure robust testing of ask_question tool functionality.
2026-02-03 23:10:36 +08:00

1 line
45 KiB
JavaScript

"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[11],{1184(e,n,s){s.d(n,{R:()=>t,x:()=>o});var i=s(3696);const l={},r=i.createContext(l);function t(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(r.Provider,{value:n},e.children)}},4040(e,n,s){s.d(n,{A:()=>m});var i=s(3696),l=s(4357),r=s(6357),t=s(213),o=s(6476);const c="details_B4FW",d="isBrowser_Cof9",a="collapsibleContent_VYua";var h=s(2540);function x(e){return!!e&&("SUMMARY"===e.tagName||x(e.parentElement))}function j(e,n){return!!e&&(e===n||j(e.parentElement,n))}function u({summary:e,children:n,...s}){(0,r.A)().collectAnchor(s.id);const u=(0,t.A)(),p=(0,i.useRef)(null),{collapsed:m,setCollapsed:g}=(0,o.u)({initialState:!s.open}),[w,f]=(0,i.useState)(s.open),v=i.isValidElement(e)?e:(0,h.jsx)("summary",{children:e??"Details"});return(0,h.jsxs)("details",{...s,ref:p,open:w,"data-collapsed":m,className:(0,l.A)(c,u&&d,s.className),onMouseDown:e=>{x(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;x(n)&&j(n,p.current)&&(e.preventDefault(),m?(g(!1),f(!0)):g(!0))},children:[v,(0,h.jsx)(o.N,{lazy:!1,collapsed:m,onCollapseTransitionEnd:e=>{g(e),f(!e)},children:(0,h.jsx)("div",{className:a,children:n})})]})}const p="details_SZgV";function m({...e}){return(0,h.jsx)(u,{...e,className:(0,l.A)("alert alert--info",p,e.className)})}},4220(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"faq","title":"Frequently Asked Questions","description":"Common questions about CCW, workflows, commands, and troubleshooting.","source":"@site/docs/faq.mdx","sourceDirName":".","slug":"/faq","permalink":"/docs/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"}}');var l=s(2540),r=s(1184),t=s(4040);s(2436);const o={title:"Frequently Asked Questions",sidebar_label:"FAQ",sidebar_position:99},c="Frequently Asked Questions",d={},a=[{value:"General Questions",id:"general-questions",level:2},{value:"What is CCW?",id:"what-is-ccw",level:3},{value:"What are the system requirements?",id:"what-are-the-system-requirements",level:3},{value:"How do I install CCW?",id:"how-do-i-install-ccw",level:3},{value:"Is CCW free to use?",id:"is-ccw-free-to-use",level:3},{value:"What programming languages are supported?",id:"what-programming-languages-are-supported",level:3},{value:"Workflow Selection",id:"workflow-selection",level:2},{value:"How do I choose the right workflow?",id:"how-do-i-choose-the-right-workflow",level:3},{value:"What's the difference between Main Workflow and Issue Workflow?",id:"whats-the-difference-between-main-workflow-and-issue-workflow",level:3},{value:"What are Minimum Execution Units?",id:"what-are-minimum-execution-units",level:3},{value:"When should I use each workflow level?",id:"when-should-i-use-each-workflow-level",level:3},{value:"Command Usage",id:"command-usage",level:2},{value:"How do I use workflow commands?",id:"how-do-i-use-workflow-commands",level:3},{value:"What is the difference between lite-execute and execute?",id:"what-is-the-difference-between-lite-execute-and-execute",level:3},{value:"How do I use hotfix mode?",id:"how-do-i-use-hotfix-mode",level:3},{value:"How do I resume a paused session?",id:"how-do-i-resume-a-paused-session",level:3},{value:"AI Models",id:"ai-models",level:2},{value:"Which AI models does CCW support?",id:"which-ai-models-does-ccw-support",level:3},{value:"How do I configure API keys?",id:"how-do-i-configure-api-keys",level:3},{value:"What is multi-CLI collaboration?",id:"what-is-multi-cli-collaboration",level:3},{value:"Testing",id:"testing",level:2},{value:"How do I add tests to existing code?",id:"how-do-i-add-tests-to-existing-code",level:3},{value:"How do I fix failing tests?",id:"how-do-i-fix-failing-tests",level:3},{value:"What is TDD (Test-Driven Development)?",id:"what-is-tdd-test-driven-development",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"My workflow failed. What should I do?",id:"my-workflow-failed-what-should-i-do",level:3},{value:"How do I skip a failing task?",id:"how-do-i-skip-a-failing-task",level:3},{value:"How do I clean up old sessions?",id:"how-do-i-clean-up-old-sessions",level:3},{value:"Why is my workflow running slowly?",id:"why-is-my-workflow-running-slowly",level:3},{value:"How do I debug workflow issues?",id:"how-do-i-debug-workflow-issues",level:3},{value:"Integration",id:"integration",level:2},{value:"Can I use CCW with my existing CI/CD?",id:"can-i-use-ccw-with-my-existing-cicd",level:3},{value:"Can CCW work with monorepos?",id:"can-ccw-work-with-monorepos",level:3},{value:"How do I migrate from another tool?",id:"how-do-i-migrate-from-another-tool",level:3},{value:"Best Practices",id:"best-practices",level:2},{value:"What are the workflow best practices?",id:"what-are-the-workflow-best-practices",level:3},{value:"How do I get the most out of AI assistance?",id:"how-do-i-get-the-most-out-of-ai-assistance",level:3},{value:"Related Documentation",id:"related-documentation",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"frequently-asked-questions",children:"Frequently Asked Questions"})}),"\n",(0,l.jsx)(n.p,{children:"Common questions about CCW, workflows, commands, and troubleshooting."}),"\n",(0,l.jsx)(n.h2,{id:"general-questions",children:"General Questions"}),"\n",(0,l.jsx)(n.h3,{id:"what-is-ccw",children:"What is CCW?"}),"\n",(0,l.jsx)(n.p,{children:"CCW (Claude Code Workflows) is a professional workflow automation platform that combines AI-powered intelligence with structured development workflows. It provides 40+ commands and 15 integrated workflows to accelerate software development while maintaining quality standards."}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Key Features:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"AI-powered code analysis, generation, and review"}),"\n",(0,l.jsx)(n.li,{children:"15 workflow levels from rapid execution to intelligent orchestration"}),"\n",(0,l.jsx)(n.li,{children:"Session management with full state persistence"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination with parallel execution"}),"\n",(0,l.jsx)(n.li,{children:"Built-in testing, verification, and code review"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-system-requirements",children:"What are the system requirements?"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Minimum Requirements:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 16.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"Git 2.x or higher"}),"\n",(0,l.jsx)(n.li,{children:"4GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"500MB disk space"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Recommended:"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Node.js 18.x LTS"}),"\n",(0,l.jsx)(n.li,{children:"8GB RAM available"}),"\n",(0,l.jsx)(n.li,{children:"2GB disk space for artifacts and sessions"}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-install-ccw",children:"How do I install CCW?"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Install globally via npm\r\nnpm install -g @ccw/cli\r\n\r\n# Or use npx (no installation required)\r\nnpx @ccw/cli init\r\n\r\n# Initialize in your project\r\nccw init\n"})}),"\n",(0,l.jsx)(n.h3,{id:"is-ccw-free-to-use",children:"Is CCW free to use?"}),"\n",(0,l.jsx)(n.p,{children:"Yes, CCW is open-source and free to use. However, CCW integrates with third-party AI services (Gemini, Codex, Claude, Qwen) that may have their own pricing. You'll need API keys for any AI services you want to use."}),"\n",(0,l.jsx)(n.h3,{id:"what-programming-languages-are-supported",children:"What programming languages are supported?"}),"\n",(0,l.jsx)(n.p,{children:"CCW supports all programming languages. The AI models can analyze and generate code in any language, including:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Web"}),": JavaScript, TypeScript, Python, PHP, Ruby"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Mobile"}),": Swift, Kotlin, React Native, Flutter"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Systems"}),": Rust, Go, C, C++"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Data"}),": Python, R, SQL"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Enterprise"}),": Java, C#, .NET"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"workflow-selection",children:"Workflow Selection"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-choose-the-right-workflow",children:"How do I choose the right workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Decision Framework"}),(0,l.jsx)(n.p,{children:"Use this quick decision tree:"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Post-development maintenance?"})," \u2192 Use ",(0,l.jsx)(n.a,{href:"/docs/docs/workflows/faq#what-is-the-difference-between-main-workflow-and-issue-workflow",children:"Issue Workflow"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Uncertain which commands to use?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"ccw-coordinator"})," (Level 5)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Requirements unclear?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"brainstorm:auto-parallel"})," (Level 4)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need persistent session?"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Standard development \u2192 ",(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test-driven \u2192 ",(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})," (Level 3)"]}),"\n",(0,l.jsxs)(n.li,{children:["Test fixes \u2192 ",(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})," (Level 3)"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need multi-perspective analysis?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"multi-cli-plan"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Bug fix?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-fix"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Need planning?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})," (Level 2)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Quick task?"})," \u2192 Use ",(0,l.jsx)(n.code,{children:"lite-lite-lite"})," (Level 1)"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"whats-the-difference-between-main-workflow-and-issue-workflow",children:"What's the difference between Main Workflow and Issue Workflow?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Main Workflow"})," is for primary development:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Feature development (Levels 1-5)"}),"\n",(0,l.jsx)(n.li,{children:"Active development phase"}),"\n",(0,l.jsx)(n.li,{children:"Dependency-based parallelism"}),"\n",(0,l.jsx)(n.li,{children:"Works on current branch"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Issue Workflow"})," is for post-development maintenance:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Bug fixes and enhancements after merge"}),"\n",(0,l.jsx)(n.li,{children:"After main workflow completes"}),"\n",(0,l.jsx)(n.li,{children:"Optional worktree isolation"}),"\n",(0,l.jsx)(n.li,{children:"Keeps main branch stable"}),"\n"]}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Main Workflow"}),(0,l.jsx)(n.th,{children:"Issue Workflow"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Purpose"})}),(0,l.jsx)(n.td,{children:"Feature development"}),(0,l.jsx)(n.td,{children:"Post-development fixes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Timing"})}),(0,l.jsx)(n.td,{children:"Development phase"}),(0,l.jsx)(n.td,{children:"After main workflow completes"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Scope"})}),(0,l.jsx)(n.td,{children:"Complete feature implementation"}),(0,l.jsx)(n.td,{children:"Targeted fixes/enhancements"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Parallelism"})}),(0,l.jsx)(n.td,{children:"Dependency analysis"}),(0,l.jsx)(n.td,{children:"Worktree isolation (optional)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Branch Model"})}),(0,l.jsx)(n.td,{children:"Work on current branch"}),(0,l.jsx)(n.td,{children:"Can use isolated worktree"})]})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-are-minimum-execution-units",children:"What are Minimum Execution Units?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Minimum Execution Units"})," are sets of commands that must execute together as atomic groups to achieve meaningful workflow milestones. Splitting these commands breaks logical flow and creates incomplete states."]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common Minimum Execution Units:"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Unit"}),(0,l.jsx)(n.th,{children:"Commands"}),(0,l.jsx)(n.th,{children:"Purpose"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Quick Implementation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Lightweight plan and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Multi-CLI Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"multi-cli-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Multi-perspective analysis and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Bug Fix"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"lite-fix"})," \u2192 ",(0,l.jsx)(n.code,{children:"lite-execute"})]}),(0,l.jsx)(n.td,{children:"Bug diagnosis and fix execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Verified Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"plan-verify"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Planning with verification and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"TDD Planning"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"tdd-plan"})," \u2192 ",(0,l.jsx)(n.code,{children:"execute"})]}),(0,l.jsx)(n.td,{children:"Test-driven development planning and execution"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Test Validation"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"test-fix-gen"})," \u2192 ",(0,l.jsx)(n.code,{children:"test-cycle-execute"})]}),(0,l.jsx)(n.td,{children:"Generate test tasks and execute test-fix cycle"})]})]})]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Example"}),": The unit ",(0,l.jsx)(n.code,{children:"lite-plan \u2192 lite-execute"})," must complete together. Stopping after ",(0,l.jsx)(n.code,{children:"lite-plan"})," leaves you with a plan but no implementation."]})]}),"\n",(0,l.jsx)(n.h3,{id:"when-should-i-use-each-workflow-level",children:"When should I use each workflow level?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Level Selection Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 1 (lite-lite-lite):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Quick fixes (typos, minor adjustments)"}),"\n",(0,l.jsx)(n.li,{children:"Simple features (single function, small utility)"}),"\n",(0,l.jsx)(n.li,{children:"Config changes (environment variables, timeouts)"}),"\n",(0,l.jsx)(n.li,{children:"Documentation updates"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 2 (lite-plan, lite-fix, multi-cli-plan):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Single-module features"}),"\n",(0,l.jsx)(n.li,{children:"Bug diagnosis and fixes"}),"\n",(0,l.jsx)(n.li,{children:"Technology selection decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 3 (plan, tdd-plan, test-fix-gen):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Multi-module changes"}),"\n",(0,l.jsx)(n.li,{children:"Refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Test-driven development"}),"\n",(0,l.jsx)(n.li,{children:"Test failure fixes"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Level 4 (brainstorm",":auto-parallel","):"]})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"New feature design"}),"\n",(0,l.jsx)(n.li,{children:"System architecture refactoring"}),"\n",(0,l.jsx)(n.li,{children:"Exploratory requirements"}),"\n",(0,l.jsx)(n.li,{children:"Multi-dimensional trade-offs"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Level 5 (ccw-coordinator):"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complex multi-step workflows"}),"\n",(0,l.jsx)(n.li,{children:"Uncertain which commands to use"}),"\n",(0,l.jsx)(n.li,{children:"End-to-end automation"}),"\n",(0,l.jsx)(n.li,{children:"Team collaboration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Issue Workflow:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Post-development issue fixes"}),"\n",(0,l.jsx)(n.li,{children:"Maintaining main branch stability"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"command-usage",children:"Command Usage"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-workflow-commands",children:"How do I use workflow commands?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Command Patterns"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Basic Pattern:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw <command> <arguments>\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Examples:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Level 1 - Direct execution\r\nccw lite-lite-lite "Fix login button"\r\n\r\n# Level 2 - Lightweight planning\r\nccw lite-plan "Add user profile page"\r\nccw lite-execute --in-memory\r\n\r\n# Level 3 - Full workflow\r\nccw workflow:plan "Implement OAuth2"\r\nccw workflow:execute --session WFS-oauth-auth\r\n\r\n# Level 4 - Brainstorming\r\nccw brainstorm:auto-parallel "Design notification system"\r\n\r\n# Level 5 - Intelligent coordination\r\nccw ccw-coordinator "Refactor API layer"\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-the-difference-between-lite-execute-and-execute",children:"What is the difference between lite-execute and execute?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Comparison"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"lite-execute"})," (Level 2):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw lite-execute --in-memory\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 2 workflows"}),"\n",(0,l.jsx)(n.li,{children:"In-memory planning (no session files)"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution for independent tasks"}),"\n",(0,l.jsx)(n.li,{children:"Optional code review"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"execute"})," (Level 3):"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw workflow:execute --session WFS-{session-id}\n"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"For Level 3 workflows"}),"\n",(0,l.jsx)(n.li,{children:"Session-based execution"}),"\n",(0,l.jsx)(n.li,{children:"Dependency analysis"}),"\n",(0,l.jsx)(n.li,{children:"Full state tracking and resumability"}),"\n",(0,l.jsx)(n.li,{children:"Task completion summaries"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-use-hotfix-mode",children:"How do I use hotfix mode?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Hotfix Usage"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Hotfix mode"})," is for production emergencies:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw lite-fix --hotfix "Production database connection failing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"What it does:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Skips most diagnosis phases"}),"\n",(0,l.jsx)(n.li,{children:"Minimal planning (direct execution)"}),"\n",(0,l.jsx)(n.li,{children:"Auto-generates follow-up tasks for complete fix + post-mortem"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"When to use:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Production incidents"}),"\n",(0,l.jsx)(n.li,{children:"Critical bugs requiring immediate fix"}),"\n",(0,l.jsx)(n.li,{children:"Outages and service disruptions"}),"\n"]}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"What happens after:"}),"\r\nCCW automatically generates follow-up tasks for:"]}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete root cause analysis"}),"\n",(0,l.jsx)(n.li,{children:"Comprehensive fix"}),"\n",(0,l.jsx)(n.li,{children:"Post-mortem documentation"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-resume-a-paused-session",children:"How do I resume a paused session?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Session Resume"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# Resume most recent session\r\nccw workflow:session:resume\r\n\r\n# Resume specific session\r\nccw workflow:session:resume WFS-user-auth-v2\r\n\r\n# List all sessions\r\nccw workflow:session:list\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session states:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"active"}),": Currently running"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"paused"}),": Stopped, can be resumed"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"completed"}),": Finished and archived"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"ai-models",children:"AI Models"}),"\n",(0,l.jsx)(n.h3,{id:"which-ai-models-does-ccw-support",children:"Which AI models does CCW support?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Supported Models"}),(0,l.jsx)(n.p,{children:"CCW supports multiple AI models via CLI endpoints:"}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Model"}),(0,l.jsx)(n.th,{children:"Capabilities"}),(0,l.jsx)(n.th,{children:"Best For"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Gemini"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code review, debugging, refactoring"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Codex"})}),(0,l.jsx)(n.td,{children:"Analysis + Write + Review"}),(0,l.jsx)(n.td,{children:"Git-aware code review, implementation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Claude"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Complex reasoning, documentation"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Qwen"})}),(0,l.jsx)(n.td,{children:"Analysis + Write"}),(0,l.jsx)(n.td,{children:"Code generation, pattern matching"})]})]})]}),(0,l.jsxs)(n.p,{children:["Configure models in ",(0,l.jsx)(n.code,{children:"~/.claude/cli-tools.json"}),"."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-configure-api-keys",children:"How do I configure API keys?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"API Key Configuration"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Set environment variables:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Gemini\r\nexport GEMINI_API_KEY="your-key-here"\r\n\r\n# OpenAI (Codex)\r\nexport OPENAI_API_KEY="your-key-here"\r\n\r\n# Anthropic (Claude)\r\nexport ANTHROPIC_API_KEY="your-key-here"\r\n\r\n# Qwen\r\nexport DASHSCOPE_API_KEY="your-key-here"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Or configure in ",(0,l.jsx)(n.code,{children:".env"})," file:"]})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-env",children:"GEMINI_API_KEY=your-key-here\r\nOPENAI_API_KEY=your-key-here\r\nANTHROPIC_API_KEY=your-key-here\r\nDASHSCOPE_API_KEY=your-key-here\n"})})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-multi-cli-collaboration",children:"What is multi-CLI collaboration?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Multi-CLI Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Multi-CLI collaboration"})," uses multiple AI models to analyze the same problem from different perspectives:"]}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw multi-cli-plan "Compare Redis vs RabbitMQ for message queuing"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"How it works:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Multiple AI models analyze independently"}),"\n",(0,l.jsx)(n.li,{children:"Each provides unique insights and recommendations"}),"\n",(0,l.jsx)(n.li,{children:"Results are synthesized into a comprehensive analysis"}),"\n",(0,l.jsx)(n.li,{children:"You get multiple perspectives before making decisions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best for:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Technology selection"}),"\n",(0,l.jsx)(n.li,{children:"Architecture decisions"}),"\n",(0,l.jsx)(n.li,{children:"Solution comparison"}),"\n",(0,l.jsx)(n.li,{children:"Trade-off analysis"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"testing",children:"Testing"}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-add-tests-to-existing-code",children:"How do I add tests to existing code?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Generation"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Session Mode (from existing session):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"ccw test-fix-gen WFS-user-auth-v2\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prompt Mode (direct description):"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw test-fix-gen "Add unit tests for the auth API"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"CCW will:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze the code structure"}),"\n",(0,l.jsx)(n.li,{children:"Generate appropriate test cases"}),"\n",(0,l.jsx)(n.li,{children:"Create test files following project patterns"}),"\n",(0,l.jsx)(n.li,{children:"Implement tests with proper assertions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-fix-failing-tests",children:"How do I fix failing tests?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Test Fix Workflow"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Generate test fix tasks\r\nccw test-fix-gen "Tests failing for user registration"\r\n\r\n# Execute test-fix cycle\r\nccw test-cycle-execute\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workflow:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Analyze test failures"}),"\n",(0,l.jsx)(n.li,{children:"Identify root causes"}),"\n",(0,l.jsx)(n.li,{children:"Fix issues iteratively"}),"\n",(0,l.jsx)(n.li,{children:"Verify >= 95% pass rate"}),"\n",(0,l.jsx)(n.li,{children:"Stop when tests pass or max iterations reached"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"what-is-tdd-test-driven-development",children:"What is TDD (Test-Driven Development)?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"TDD Explanation"}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"TDD"})," follows the Red-Green-Refactor cycle:"]}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Red"}),": Write a failing test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Green"}),": Write minimal code to pass the test"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Refactor"}),": Improve code while keeping tests green"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"The Iron Law:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:"NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Why write tests first?"})}),(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Aspect"}),(0,l.jsx)(n.th,{children:"Test-First"}),(0,l.jsx)(n.th,{children:"Test-After"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Proof"})}),(0,l.jsx)(n.td,{children:"Tests fail before implementation"}),(0,l.jsx)(n.td,{children:"Tests pass immediately (proves nothing)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Discovery"})}),(0,l.jsx)(n.td,{children:"Edge cases found before coding"}),(0,l.jsx)(n.td,{children:"Edge cases found after coding"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Verification"})}),(0,l.jsx)(n.td,{children:"Verifies requirements"}),(0,l.jsx)(n.td,{children:"Verifies implementation"})]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,l.jsx)(n.h3,{id:"my-workflow-failed-what-should-i-do",children:"My workflow failed. What should I do?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Troubleshooting Steps"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Check the error message"})," - Identify the root cause"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Review session state"})," - Check ",(0,l.jsx)(n.code,{children:".workflow/.ccw-coordinator/{session}/state.json"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Resume the session"})," - Use ",(0,l.jsx)(n.code,{children:"ccw workflow:session:resume"})," to continue"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Adjust and retry"})," - Modify approach based on error"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Common fixes:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"API key errors"}),": Verify environment variables are set"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Module not found"}),": Run ",(0,l.jsx)(n.code,{children:"npm install"})," or ",(0,l.jsx)(n.code,{children:"pip install"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Git errors"}),": Ensure clean git state (",(0,l.jsx)(n.code,{children:"git status"}),")"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Timeout errors"}),": Increase timeout in task JSON"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-skip-a-failing-task",children:"How do I skip a failing task?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Skip Task"}),(0,l.jsx)(n.p,{children:'Edit the task JSON to set status to "completed":'}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"jq '.status = \"completed\"' .workflow/active/WFS-{session}/.task/IMPL-001.json\n"})}),(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Use with caution:"})," Skipping tasks may leave the workflow in an incomplete state."]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-clean-up-old-sessions",children:"How do I clean up old sessions?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Cleanup Commands"}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# List sessions\r\nccw workflow:session:list\r\n\r\n# Remove specific session\r\nrm -rf .workflow/active/WFS-{session-id}\r\n\r\n# Clean all completed sessions\r\nccw workflow:clean\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Automatic cleanup:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Completed sessions are archived to ",(0,l.jsx)(n.code,{children:".workflow/completed/"})]}),"\n",(0,l.jsx)(n.li,{children:"Old sessions (> 30 days) can be safely removed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"why-is-my-workflow-running-slowly",children:"Why is my workflow running slowly?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Performance Tips"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Possible causes:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Large codebase"}),": CCW analyzes the entire project"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use ",(0,l.jsx)(n.code,{children:"--focus-paths"})," to limit analysis scope"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Many dependencies"}),": Slow AI response times"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Use faster models (Gemini Flash) for initial analysis"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Sequential tasks"}),": Waiting on dependent tasks"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Review task dependencies in ",(0,l.jsx)(n.code,{children:"plan-verify"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Network issues"}),": Slow API calls to AI services"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Fix"}),": Check network connectivity and API status"]}),"\n"]}),"\n"]}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Optimization tips:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Limit analysis scope\r\nccw plan "Add login" --focus-paths src/auth\r\n\r\n# Use faster model for initial analysis\r\nccw cli -p "Quick analysis" --model gemini-2.0-flash --mode analysis\r\n\r\n# Run in parallel when possible\r\nccw workflow:execute --parallel 4\n'})})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-debug-workflow-issues",children:"How do I debug workflow issues?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Debugging Workflow"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Enable debug logging:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'DEBUG=ccw:* ccw workflow:plan "My feature"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Check session logs:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# View session state\r\ncat .workflow/active/WFS-{session}/workflow-session.json\r\n\r\n# View task progress\r\ncat .workflow/active/WFS-{session}/TODO_LIST.md\n"})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Use debug workflow:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw workflow:debug-with-file "Debug memory leak in connection handler"\n'})}),(0,l.jsx)(n.p,{children:"This provides hypothesis-driven debugging with documented exploration."})]}),"\n",(0,l.jsx)(n.h2,{id:"integration",children:"Integration"}),"\n",(0,l.jsx)(n.h3,{id:"can-i-use-ccw-with-my-existing-cicd",children:"Can I use CCW with my existing CI/CD?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"CI/CD Integration"}),(0,l.jsx)(n.p,{children:"Yes, CCW can be integrated into CI/CD pipelines:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"GitHub Actions Example:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:'- name: Run CCW Workflow\r\n run: |\r\n ccw workflow:plan "Implement feature"\r\n ccw workflow:execute --session WFS-feature\r\n env:\r\n GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Best practices:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Use ",(0,l.jsx)(n.code,{children:"--mode analysis"})," for code review in CI"]}),"\n",(0,l.jsx)(n.li,{children:"Store API keys in secret management"}),"\n",(0,l.jsx)(n.li,{children:"Run workflows in isolated environments"}),"\n",(0,l.jsx)(n.li,{children:"Archive sessions for audit trails"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"can-ccw-work-with-monorepos",children:"Can CCW work with monorepos?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Monorepo Support"}),(0,l.jsx)(n.p,{children:"Yes, CCW supports monorepos:"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Workspace-aware execution:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Execute in specific package\r\nccw plan "Add auth to frontend" --cd packages/frontend\r\n\r\n# Execute across packages\r\nccw plan "Update API contracts" --include-dir packages/api,packages/shared\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Benefits:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Dependency-aware task distribution"}),"\n",(0,l.jsx)(n.li,{children:"Parallel execution across packages"}),"\n",(0,l.jsx)(n.li,{children:"Shared session state"}),"\n",(0,l.jsx)(n.li,{children:"Coordinated changes across workspaces"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-migrate-from-another-tool",children:"How do I migrate from another tool?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Migration Guide"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From basic Git workflows:"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Before: Manual planning\r\ngit checkout -b feature\r\n# ... manual planning ...\r\n\r\n# After: CCW planning\r\nccw plan "Add feature"\r\nccw execute --session WFS-feature\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"From other AI tools:"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"CCW provides structured workflows (vs. ad-hoc prompts)"}),"\n",(0,l.jsx)(n.li,{children:"Session management (vs. chat history)"}),"\n",(0,l.jsx)(n.li,{children:"Multi-agent coordination (vs. single AI)"}),"\n",(0,l.jsx)(n.li,{children:"Persistent artifacts (vs. transient responses)"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Migration steps:"})}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Install CCW: ",(0,l.jsx)(n.code,{children:"npm install -g @ccw/cli"})]}),"\n",(0,l.jsxs)(n.li,{children:["Initialize: ",(0,l.jsx)(n.code,{children:"ccw init"})]}),"\n",(0,l.jsx)(n.li,{children:"Start with Level 2 workflows for familiar patterns"}),"\n",(0,l.jsx)(n.li,{children:"Gradually adopt higher levels as needed"}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,l.jsx)(n.h3,{id:"what-are-the-workflow-best-practices",children:"What are the workflow best practices?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Start Simple"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use the lowest level that meets your needs"}),"\n",(0,l.jsx)(n.li,{children:"Don't over-engineer simple tasks"}),"\n",(0,l.jsx)(n.li,{children:"Scale up complexity as needed"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Plan Before Executing"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use verification steps when available"}),"\n",(0,l.jsx)(n.li,{children:"Review generated plans before execution"}),"\n",(0,l.jsx)(n.li,{children:"Adjust tasks based on project context"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Test Continuously"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Integrate testing into your workflow"}),"\n",(0,l.jsx)(n.li,{children:"Use TDD for critical features"}),"\n",(0,l.jsx)(n.li,{children:"Run tests after each iteration"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Review Code"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use built-in review workflows"}),"\n",(0,l.jsx)(n.li,{children:"Leverage multi-CLI collaboration"}),"\n",(0,l.jsx)(n.li,{children:"Merge review feedback iteratively"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Document Decisions"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Use brainstorm workflows for complex decisions"}),"\n",(0,l.jsx)(n.li,{children:"Keep session artifacts for reference"}),"\n",(0,l.jsx)(n.li,{children:"Archive completed sessions"}),"\n"]}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"6. Maintain Session Hygiene"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Complete sessions when done"}),"\n",(0,l.jsx)(n.li,{children:"Clean up old sessions regularly"}),"\n",(0,l.jsx)(n.li,{children:"Archive important sessions"}),"\n"]})]}),"\n",(0,l.jsx)(n.h3,{id:"how-do-i-get-the-most-out-of-ai-assistance",children:"How do I get the most out of AI assistance?"}),"\n",(0,l.jsxs)(t.A,{children:[(0,l.jsx)("summary",{children:"AI Best Practices"}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"1. Be Specific in Prompts"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'Bad: "Fix the bug"\r\nGood: "Fix the 500 error when users update their profile picture"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"2. Provide Context"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'ccw plan "Add OAuth2" \\\r\n --context "Using Express.js, MongoDB, Passport.js" \\\r\n --reference "Similar to existing Google OAuth implementation"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"3. Use Multi-CLI Collaboration"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Get multiple perspectives\r\nccw multi-cli-plan "Architecture decision"\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"4. Leverage Memory"})}),(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Build on previous work\r\nccw plan "Continue auth refactor" --memory WFS-auth-v1\n'})}),(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"5. Choose the Right Model"})}),(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Flash"}),": Fast, good for initial analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Gemini Pro"}),": Deep reasoning, complex tasks"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Codex"}),": Code review, git-aware analysis"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Claude"}),": Documentation, complex reasoning"]}),"\n"]})]}),"\n",(0,l.jsx)(n.h2,{id:"related-documentation",children:"Related Documentation"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/docs/workflows/introduction",children:"Workflow Introduction"})," - Complete workflow guide"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/docs/workflows/faq",children:"Workflow FAQ"})," - Workflow-specific questions"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"/docs/docs/commands/general/ccw",children:"Command Reference"})," - All commands"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Still have questions?"})," ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/issues",children:"Open an issue"})," or check the ",(0,l.jsx)(n.a,{href:"https://github.com/ccw/ccw/discussions",children:"discussion forums"}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}}}]);