claude-code-workflow 6.2.1 → 6.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +10 -0
- package/.claude/agents/action-planning-agent.md +857 -0
- package/.claude/agents/cli-execution-agent.md +267 -0
- package/.claude/agents/cli-explore-agent.md +182 -0
- package/.claude/agents/cli-lite-planning-agent.md +446 -0
- package/.claude/agents/cli-planning-agent.md +558 -0
- package/.claude/agents/code-developer.md +311 -0
- package/.claude/agents/conceptual-planning-agent.md +308 -0
- package/.claude/agents/context-search-agent.md +581 -0
- package/.claude/agents/doc-generator.md +330 -0
- package/.claude/agents/memory-bridge.md +94 -0
- package/.claude/agents/test-context-search-agent.md +400 -0
- package/.claude/agents/test-fix-agent.md +344 -0
- package/.claude/agents/ui-design-agent.md +593 -0
- package/.claude/agents/universal-executor.md +131 -0
- package/.claude/commands/clean.md +516 -0
- package/.claude/commands/cli/cli-init.md +440 -0
- package/.claude/commands/enhance-prompt.md +93 -0
- package/.claude/commands/memory/code-map-memory.md +687 -0
- package/.claude/commands/memory/compact.md +383 -0
- package/.claude/commands/memory/docs-full-cli.md +471 -0
- package/.claude/commands/memory/docs-related-cli.md +386 -0
- package/.claude/commands/memory/docs.md +615 -0
- package/.claude/commands/memory/load-skill-memory.md +182 -0
- package/.claude/commands/memory/load.md +240 -0
- package/.claude/commands/memory/skill-memory.md +525 -0
- package/.claude/commands/memory/style-skill-memory.md +396 -0
- package/.claude/commands/memory/tech-research-rules.md +310 -0
- package/.claude/commands/memory/update-full.md +332 -0
- package/.claude/commands/memory/update-related.md +332 -0
- package/.claude/commands/memory/workflow-skill-memory.md +517 -0
- package/.claude/commands/task/breakdown.md +204 -0
- package/.claude/commands/task/create.md +152 -0
- package/.claude/commands/task/execute.md +270 -0
- package/.claude/commands/task/replan.md +437 -0
- package/.claude/commands/version.md +254 -0
- package/.claude/commands/workflow/action-plan-verify.md +447 -0
- package/.claude/commands/workflow/brainstorm/api-designer.md +587 -0
- package/.claude/commands/workflow/brainstorm/artifacts.md +453 -0
- package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -0
- package/.claude/commands/workflow/brainstorm/data-architect.md +220 -0
- package/.claude/commands/workflow/brainstorm/product-manager.md +200 -0
- package/.claude/commands/workflow/brainstorm/product-owner.md +200 -0
- package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -0
- package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
- package/.claude/commands/workflow/brainstorm/synthesis.md +398 -0
- package/.claude/commands/workflow/brainstorm/system-architect.md +389 -0
- package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -0
- package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -0
- package/.claude/commands/workflow/debug.md +321 -0
- package/.claude/commands/workflow/execute.md +475 -0
- package/.claude/commands/workflow/init.md +165 -0
- package/.claude/commands/workflow/lite-execute.md +792 -0
- package/.claude/commands/workflow/lite-fix.md +623 -0
- package/.claude/commands/workflow/lite-plan.md +610 -0
- package/.claude/commands/workflow/plan.md +551 -0
- package/.claude/commands/workflow/replan.md +515 -0
- package/.claude/commands/workflow/review-fix.md +606 -0
- package/.claude/commands/workflow/review-module-cycle.md +767 -0
- package/.claude/commands/workflow/review-session-cycle.md +778 -0
- package/.claude/commands/workflow/review.md +297 -0
- package/.claude/commands/workflow/session/complete.md +153 -0
- package/.claude/commands/workflow/session/list.md +96 -0
- package/.claude/commands/workflow/session/resume.md +61 -0
- package/.claude/commands/workflow/session/start.md +200 -0
- package/.claude/commands/workflow/tdd-plan.md +460 -0
- package/.claude/commands/workflow/tdd-verify.md +400 -0
- package/.claude/commands/workflow/test-cycle-execute.md +500 -0
- package/.claude/commands/workflow/test-fix-gen.md +699 -0
- package/.claude/commands/workflow/test-gen.md +529 -0
- package/.claude/commands/workflow/tools/conflict-resolution.md +766 -0
- package/.claude/commands/workflow/tools/context-gather.md +436 -0
- package/.claude/commands/workflow/tools/task-generate-agent.md +490 -0
- package/.claude/commands/workflow/tools/task-generate-tdd.md +526 -0
- package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/commands/workflow/tools/test-concept-enhanced.md +164 -0
- package/.claude/commands/workflow/tools/test-context-gather.md +236 -0
- package/.claude/commands/workflow/tools/test-task-generate.md +257 -0
- package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -0
- package/.claude/commands/workflow/ui-design/codify-style.md +652 -0
- package/.claude/commands/workflow/ui-design/design-sync.md +454 -0
- package/.claude/commands/workflow/ui-design/explore-auto.md +678 -0
- package/.claude/commands/workflow/ui-design/generate.md +504 -0
- package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -0
- package/.claude/commands/workflow/ui-design/import-from-code.md +540 -0
- package/.claude/commands/workflow/ui-design/layout-extract.md +788 -0
- package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -0
- package/.claude/commands/workflow/ui-design/style-extract.md +773 -0
- package/.claude/skills/command-guide/SKILL.md +388 -0
- package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +592 -0
- package/.claude/skills/command-guide/guides/cli-tools-guide.md +410 -0
- package/.claude/skills/command-guide/guides/examples.md +537 -0
- package/.claude/skills/command-guide/guides/getting-started.md +242 -0
- package/.claude/skills/command-guide/guides/implementation-details.md +1010 -0
- package/.claude/skills/command-guide/guides/index-structure.md +326 -0
- package/.claude/skills/command-guide/guides/troubleshooting.md +92 -0
- package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +316 -0
- package/.claude/skills/command-guide/guides/workflow-patterns.md +662 -0
- package/.claude/skills/command-guide/index/all-commands.json +772 -0
- package/.claude/skills/command-guide/index/by-category.json +800 -0
- package/.claude/skills/command-guide/index/by-use-case.json +786 -0
- package/.claude/skills/command-guide/index/command-relationships.json +307 -0
- package/.claude/skills/command-guide/index/essential-commands.json +112 -0
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +857 -0
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +267 -0
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -0
- package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +446 -0
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +558 -0
- package/.claude/skills/command-guide/reference/agents/code-developer.md +311 -0
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +308 -0
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +581 -0
- package/.claude/skills/command-guide/reference/agents/doc-generator.md +330 -0
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +94 -0
- package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +400 -0
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +344 -0
- package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +593 -0
- package/.claude/skills/command-guide/reference/agents/universal-executor.md +131 -0
- package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +440 -0
- package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +93 -0
- package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +687 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +616 -0
- package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +182 -0
- package/.claude/skills/command-guide/reference/commands/memory/load.md +240 -0
- package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +525 -0
- package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +396 -0
- package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +314 -0
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -0
- package/.claude/skills/command-guide/reference/commands/memory/update-related.md +332 -0
- package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +517 -0
- package/.claude/skills/command-guide/reference/commands/task/breakdown.md +204 -0
- package/.claude/skills/command-guide/reference/commands/task/create.md +152 -0
- package/.claude/skills/command-guide/reference/commands/task/execute.md +270 -0
- package/.claude/skills/command-guide/reference/commands/task/replan.md +437 -0
- package/.claude/skills/command-guide/reference/commands/version.md +254 -0
- package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +447 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +452 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +443 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +398 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -0
- package/.claude/skills/command-guide/reference/commands/workflow/execute.md +465 -0
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +748 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +664 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +645 -0
- package/.claude/skills/command-guide/reference/commands/workflow/plan.md +551 -0
- package/.claude/skills/command-guide/reference/commands/workflow/replan.md +515 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +606 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +765 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +776 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +298 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +547 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +114 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +77 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +257 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +460 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +400 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +498 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +529 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +766 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +487 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +525 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +163 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +235 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +256 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +1150 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +652 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +454 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +678 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +745 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +788 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +356 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +773 -0
- package/.claude/skills/command-guide/scripts/analyze_commands.py +502 -0
- package/.claude/skills/command-guide/scripts/update-index.sh +130 -0
- package/.claude/skills/command-guide/templates/issue-bug.md +104 -0
- package/.claude/skills/command-guide/templates/issue-diagnosis.md +275 -0
- package/.claude/skills/command-guide/templates/issue-feature.md +97 -0
- package/.claude/skills/command-guide/templates/issue-question.md +141 -0
- package/.claude/skills/prompt-enhancer/SKILL.md +124 -0
- package/.claude/workflows/_template-compare-matrix.html +692 -0
- package/.claude/workflows/chinese-response.md +38 -0
- package/.claude/workflows/cli-templates/fix-plan-template.json +75 -0
- package/.claude/workflows/cli-templates/fix-progress-template.json +48 -0
- package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -0
- package/.claude/workflows/cli-templates/planning-roles/data-architect.md +120 -0
- package/.claude/workflows/cli-templates/planning-roles/product-manager.md +119 -0
- package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -0
- package/.claude/workflows/cli-templates/planning-roles/scrum-master.md +186 -0
- package/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md +281 -0
- package/.claude/workflows/cli-templates/planning-roles/synthesis-role.md +414 -0
- package/.claude/workflows/cli-templates/planning-roles/system-architect.md +106 -0
- package/.claude/workflows/cli-templates/planning-roles/test-strategist.md +124 -0
- package/.claude/workflows/cli-templates/planning-roles/ui-designer.md +379 -0
- package/.claude/workflows/cli-templates/planning-roles/ux-expert.md +240 -0
- package/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt +127 -0
- package/.claude/workflows/cli-templates/prompts/analysis/01-trace-code-execution.txt +115 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt +37 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-technical-document.txt +33 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-architecture.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-analyze-performance.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-assess-security-risks.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-review-quality-standards.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/development/02-generate-tests.txt +70 -0
- package/.claude/workflows/cli-templates/prompts/development/02-implement-component-ui.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/development/02-implement-feature.txt +58 -0
- package/.claude/workflows/cli-templates/prompts/development/02-refactor-codebase.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/development/03-debug-runtime-issues.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/documentation/api.txt +15 -0
- package/.claude/workflows/cli-templates/prompts/documentation/folder-navigation.txt +27 -0
- package/.claude/workflows/cli-templates/prompts/documentation/module-readme.txt +49 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-architecture.txt +41 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-examples.txt +35 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-readme.txt +35 -0
- package/.claude/workflows/cli-templates/prompts/memory/02-document-module-structure.txt +165 -0
- package/.claude/workflows/cli-templates/prompts/planning/01-plan-architecture-design.txt +109 -0
- package/.claude/workflows/cli-templates/prompts/planning/02-breakdown-task-steps.txt +30 -0
- package/.claude/workflows/cli-templates/prompts/planning/02-design-component-spec.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/planning/03-evaluate-concept-feasibility.txt +127 -0
- package/.claude/workflows/cli-templates/prompts/planning/03-plan-migration-strategy.txt +30 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-api.txt +122 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-components.txt +122 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-config.txt +89 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-core.txt +60 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-patterns.txt +70 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-testing.txt +81 -0
- package/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt +89 -0
- package/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt +359 -0
- package/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt +185 -0
- package/.claude/workflows/cli-templates/prompts/test/test-concept-analysis.txt +179 -0
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-creative-style.txt +95 -0
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-rigorous-style.txt +92 -0
- package/.claude/workflows/cli-templates/prompts/verification/codex-technical.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/verification/cross-validation.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/verification/gemini-strategic.txt +27 -0
- package/.claude/workflows/cli-templates/prompts/workflow/analysis-results-structure.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/codex-feasibility-validation.txt +176 -0
- package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +131 -0
- package/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt +286 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-aggregation.txt +172 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +94 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +94 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-sessions-timeline.txt +53 -0
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-agent-mode.txt +123 -0
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-cli-mode.txt +182 -0
- package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +112 -0
- package/.claude/workflows/cli-templates/protocols/write-protocol.md +201 -0
- package/.claude/workflows/cli-templates/schemas/conflict-resolution-schema.json +137 -0
- package/.claude/workflows/cli-templates/schemas/debug-log-json-schema.json +127 -0
- package/.claude/workflows/cli-templates/schemas/diagnosis-json-schema.json +234 -0
- package/.claude/workflows/cli-templates/schemas/explore-json-schema.json +124 -0
- package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +298 -0
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +244 -0
- package/.claude/workflows/cli-templates/schemas/project-json-schema.json +221 -0
- package/.claude/workflows/cli-templates/schemas/review-deep-dive-results-schema.json +82 -0
- package/.claude/workflows/cli-templates/schemas/review-dimension-results-schema.json +51 -0
- package/.claude/workflows/cli-templates/tech-stacks/go-dev.md +91 -0
- package/.claude/workflows/cli-templates/tech-stacks/java-dev.md +107 -0
- package/.claude/workflows/cli-templates/tech-stacks/javascript-dev.md +58 -0
- package/.claude/workflows/cli-templates/tech-stacks/python-dev.md +79 -0
- package/.claude/workflows/cli-templates/tech-stacks/react-dev.md +103 -0
- package/.claude/workflows/cli-templates/tech-stacks/typescript-dev.md +83 -0
- package/.claude/workflows/cli-templates/ui-design/systems/animation-tokens.json +247 -0
- package/.claude/workflows/cli-templates/ui-design/systems/design-tokens.json +342 -0
- package/.claude/workflows/cli-templates/ui-design/systems/layout-templates.json +145 -0
- package/.claude/workflows/cli-tools-usage.md +526 -0
- package/.claude/workflows/coding-philosophy.md +70 -0
- package/.claude/workflows/context-tools.md +84 -0
- package/.claude/workflows/file-modification.md +64 -0
- package/.claude/workflows/review-directory-specification.md +336 -0
- package/.claude/workflows/task-core.md +214 -0
- package/.claude/workflows/tool-strategy.md +216 -0
- package/.claude/workflows/windows-platform.md +16 -0
- package/.claude/workflows/workflow-architecture.md +942 -0
- package/.codex/AGENTS.md +63 -0
- package/.codex/prompts/debug.md +318 -0
- package/.codex/prompts/execute.md +273 -0
- package/.codex/prompts/lite-execute.md +164 -0
- package/.codex/prompts/lite-plan.md +469 -0
- package/.codex/prompts.zip +0 -0
- package/.gemini/GEMINI.md +25 -0
- package/.qwen/QWEN.md +25 -0
- package/LICENSE +21 -0
- package/README.md +294 -145
- package/ccw/README.md +145 -0
- package/ccw/package.json +65 -0
- package/codex-lens/pyproject.toml +48 -0
- package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
- package/codex-lens/src/codexlens/__init__.py +28 -0
- package/codex-lens/src/codexlens/__main__.py +14 -0
- package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__init__.py +27 -0
- package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +1931 -0
- package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
- package/codex-lens/src/codexlens/cli/model_manager.py +289 -0
- package/codex-lens/src/codexlens/cli/output.py +124 -0
- package/codex-lens/src/codexlens/config.py +201 -0
- package/codex-lens/src/codexlens/entities.py +121 -0
- package/codex-lens/src/codexlens/errors.py +55 -0
- package/codex-lens/src/codexlens/indexing/README.md +77 -0
- package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
- package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
- package/codex-lens/src/codexlens/parsers/factory.py +256 -0
- package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
- package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
- package/codex-lens/src/codexlens/search/__init__.py +15 -0
- package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/chain_search.py +647 -0
- package/codex-lens/src/codexlens/search/enrichment.py +150 -0
- package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
- package/codex-lens/src/codexlens/search/query_parser.py +242 -0
- package/codex-lens/src/codexlens/search/ranking.py +274 -0
- package/codex-lens/src/codexlens/semantic/__init__.py +39 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/graph_analyzer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/llm_enhancer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
- package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
- package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
- package/codex-lens/src/codexlens/semantic/embedder.py +185 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
- package/codex-lens/src/codexlens/storage/__init__.py +29 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
- package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
- package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
- package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
- package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
- package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
- package/codex-lens/src/codexlens/storage/registry.py +670 -0
- package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
- package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
- package/package.json +37 -32
- /package/{bin → ccw/bin}/ccw-mcp.js +0 -0
- /package/{bin → ccw/bin}/ccw.js +0 -0
- /package/{dist → ccw/dist}/cli.d.ts +0 -0
- /package/{dist → ccw/dist}/cli.d.ts.map +0 -0
- /package/{dist → ccw/dist}/cli.js +0 -0
- /package/{dist → ccw/dist}/cli.js.map +0 -0
- /package/{dist → ccw/dist}/commands/cli.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/cli.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/cli.js +0 -0
- /package/{dist → ccw/dist}/commands/cli.js.map +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.js +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.js.map +0 -0
- /package/{dist → ccw/dist}/commands/hook.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/hook.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/hook.js +0 -0
- /package/{dist → ccw/dist}/commands/hook.js.map +0 -0
- /package/{dist → ccw/dist}/commands/install.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/install.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/install.js +0 -0
- /package/{dist → ccw/dist}/commands/install.js.map +0 -0
- /package/{dist → ccw/dist}/commands/list.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/list.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/list.js +0 -0
- /package/{dist → ccw/dist}/commands/list.js.map +0 -0
- /package/{dist → ccw/dist}/commands/memory.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/memory.js +0 -0
- /package/{dist → ccw/dist}/commands/memory.js.map +0 -0
- /package/{dist → ccw/dist}/commands/serve.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/serve.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/serve.js +0 -0
- /package/{dist → ccw/dist}/commands/serve.js.map +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.js +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.js.map +0 -0
- /package/{dist → ccw/dist}/commands/session.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/session.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/session.js +0 -0
- /package/{dist → ccw/dist}/commands/session.js.map +0 -0
- /package/{dist → ccw/dist}/commands/stop.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/stop.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/stop.js +0 -0
- /package/{dist → ccw/dist}/commands/stop.js.map +0 -0
- /package/{dist → ccw/dist}/commands/tool.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/tool.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/tool.js +0 -0
- /package/{dist → ccw/dist}/commands/tool.js.map +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.js +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.js.map +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.js +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.js.map +0 -0
- /package/{dist → ccw/dist}/commands/view.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/view.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/view.js +0 -0
- /package/{dist → ccw/dist}/commands/view.js.map +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.d.ts +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.d.ts.map +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.js +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.js.map +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.js +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.js.map +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.d.ts +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.js +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.js.map +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.d.ts +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.js +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.js.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.js +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.js.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.d.ts +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.js +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.js.map +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.d.ts +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.js +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.js.map +0 -0
- /package/{dist → ccw/dist}/core/history-importer.d.ts +0 -0
- /package/{dist → ccw/dist}/core/history-importer.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/history-importer.js +0 -0
- /package/{dist → ccw/dist}/core/history-importer.js.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.js +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.js.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.d.ts +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.js +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.js.map +0 -0
- /package/{dist → ccw/dist}/core/manifest.d.ts +0 -0
- /package/{dist → ccw/dist}/core/manifest.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/manifest.js +0 -0
- /package/{dist → ccw/dist}/core/manifest.js.map +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.js +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.js.map +0 -0
- /package/{dist → ccw/dist}/core/memory-store.d.ts +0 -0
- /package/{dist → ccw/dist}/core/memory-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/memory-store.js +0 -0
- /package/{dist → ccw/dist}/core/memory-store.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/server.d.ts +0 -0
- /package/{dist → ccw/dist}/core/server.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/server.js +0 -0
- /package/{dist → ccw/dist}/core/server.js.map +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.d.ts +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.js +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.js.map +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.d.ts +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.js +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.js.map +0 -0
- /package/{dist → ccw/dist}/core/websocket.d.ts +0 -0
- /package/{dist → ccw/dist}/core/websocket.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/websocket.js +0 -0
- /package/{dist → ccw/dist}/core/websocket.js.map +0 -0
- /package/{dist → ccw/dist}/index.d.ts +0 -0
- /package/{dist → ccw/dist}/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/index.js +0 -0
- /package/{dist → ccw/dist}/index.js.map +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.d.ts +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.js +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.js.map +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.js +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-executor.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.js.map +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.js +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.js.map +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js.map +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.js +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.js.map +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.js +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.js.map +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.js +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.js.map +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.js +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.js.map +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.js +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.js.map +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.js +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.js.map +0 -0
- /package/{dist → ccw/dist}/tools/index.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/index.js +0 -0
- /package/{dist → ccw/dist}/tools/index.js.map +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.js +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.js.map +0 -0
- /package/{dist → ccw/dist}/tools/notifier.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/notifier.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/notifier.js +0 -0
- /package/{dist → ccw/dist}/tools/notifier.js.map +0 -0
- /package/{dist → ccw/dist}/tools/read-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/read-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/read-file.js +0 -0
- /package/{dist → ccw/dist}/tools/read-file.js.map +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.js +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.js.map +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.js +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.js.map +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.js +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.js.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.js +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.js.map +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.js +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.js.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js.map +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.js +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.js.map +0 -0
- /package/{dist → ccw/dist}/tools/write-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/write-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/write-file.js +0 -0
- /package/{dist → ccw/dist}/tools/write-file.js.map +0 -0
- /package/{dist → ccw/dist}/types/config.d.ts +0 -0
- /package/{dist → ccw/dist}/types/config.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/config.js +0 -0
- /package/{dist → ccw/dist}/types/config.js.map +0 -0
- /package/{dist → ccw/dist}/types/index.d.ts +0 -0
- /package/{dist → ccw/dist}/types/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/index.js +0 -0
- /package/{dist → ccw/dist}/types/index.js.map +0 -0
- /package/{dist → ccw/dist}/types/session.d.ts +0 -0
- /package/{dist → ccw/dist}/types/session.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/session.js +0 -0
- /package/{dist → ccw/dist}/types/session.js.map +0 -0
- /package/{dist → ccw/dist}/types/tool.d.ts +0 -0
- /package/{dist → ccw/dist}/types/tool.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/tool.js +0 -0
- /package/{dist → ccw/dist}/types/tool.js.map +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.js +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.js.map +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.js +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.js.map +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.js +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.js.map +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.js +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.js.map +0 -0
- /package/{dist → ccw/dist}/utils/ui.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/ui.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/ui.js +0 -0
- /package/{dist → ccw/dist}/utils/ui.js.map +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db-shm +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db-wal +0 -0
- /package/{src → ccw/src}/cli.ts +0 -0
- /package/{src → ccw/src}/commands/cli.ts +0 -0
- /package/{src → ccw/src}/commands/core-memory.ts +0 -0
- /package/{src → ccw/src}/commands/hook.ts +0 -0
- /package/{src → ccw/src}/commands/install.ts +0 -0
- /package/{src → ccw/src}/commands/list.ts +0 -0
- /package/{src → ccw/src}/commands/memory.ts +0 -0
- /package/{src → ccw/src}/commands/serve.ts +0 -0
- /package/{src → ccw/src}/commands/session-path-resolver.ts +0 -0
- /package/{src → ccw/src}/commands/session.ts +0 -0
- /package/{src → ccw/src}/commands/stop.ts +0 -0
- /package/{src → ccw/src}/commands/tool.ts +0 -0
- /package/{src → ccw/src}/commands/uninstall.ts +0 -0
- /package/{src → ccw/src}/commands/upgrade.ts +0 -0
- /package/{src → ccw/src}/commands/view.ts +0 -0
- /package/{src → ccw/src}/config/storage-paths.ts +0 -0
- /package/{src → ccw/src}/core/cache-manager.ts +0 -0
- /package/{src → ccw/src}/core/claude-freshness.ts +0 -0
- /package/{src → ccw/src}/core/core-memory-store.ts +0 -0
- /package/{src → ccw/src}/core/dashboard-generator-patch.ts +0 -0
- /package/{src → ccw/src}/core/dashboard-generator.ts +0 -0
- /package/{src → ccw/src}/core/data-aggregator.ts +0 -0
- /package/{src → ccw/src}/core/history-importer.ts +0 -0
- /package/{src → ccw/src}/core/lite-scanner-complete.ts +0 -0
- /package/{src → ccw/src}/core/lite-scanner.ts +0 -0
- /package/{src → ccw/src}/core/manifest.ts +0 -0
- /package/{src → ccw/src}/core/memory-embedder-bridge.ts +0 -0
- /package/{src → ccw/src}/core/memory-store.ts +0 -0
- /package/{src → ccw/src}/core/routes/ccw-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/claude-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/cli-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/codexlens-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/core-memory-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/files-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/graph-routes.md +0 -0
- /package/{src → ccw/src}/core/routes/graph-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/help-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/hooks-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/mcp-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/mcp-routes.ts.backup +0 -0
- /package/{src → ccw/src}/core/routes/mcp-templates-db.ts +0 -0
- /package/{src → ccw/src}/core/routes/memory-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/rules-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/session-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/skills-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/status-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/system-routes.ts +0 -0
- /package/{src → ccw/src}/core/server.ts +0 -0
- /package/{src → ccw/src}/core/session-clustering-service.ts +0 -0
- /package/{src → ccw/src}/core/session-scanner.ts +0 -0
- /package/{src → ccw/src}/core/websocket.ts +0 -0
- /package/{src → ccw/src}/index.ts +0 -0
- /package/{src → ccw/src}/mcp-server/index.ts +0 -0
- /package/{src → ccw/src}/templates/assets/css/github-dark.min.css +0 -0
- /package/{src → ccw/src}/templates/assets/css/github.min.css +0 -0
- /package/{src → ccw/src}/templates/assets/js/cytoscape.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/d3.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/highlight.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/lucide.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/marked.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/tailwind.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/01-base.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/02-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/03-tasks.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/04-lite-tasks.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/05-context.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/06-cards.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/07-managers.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/08-review.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/09-explorer.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/10-cli-status.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/11-cli-history.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/12-cli-legacy.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/13-cli-ccw.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/14-cli-modals.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/15-cli-endpoints.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/16-cli-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/17-cli-conversation.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/18-cli-settings.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/19-cli-native-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/20-cli-taskqueue.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/21-cli-toolmgmt.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/22-cli-semantic.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/23-memory.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/24-prompt-history.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/25-skills-rules.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/26-claude-manager.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/27-graph-explorer.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/28-mcp-manager.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/29-help.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/30-core-memory.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/api.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_conflict_tab.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_exp_helpers.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_review_tab.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/carousel.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/cli-history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/cli-status.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/flowchart.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/global-notifications.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/hook-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/index-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/mcp-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/modals.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/navigation.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/notifications.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/sidebar.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/storage-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/tabs-context.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/tabs-other.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-core.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-renderers.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-queue-sidebar.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/theme.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/version-check.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/help-i18n.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/i18n.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/main.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/state.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/utils.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/claude-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/cli-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/codexlens-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/core-memory-clusters.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/core-memory.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/explorer.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/fix-session.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/graph-explorer.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/help.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/home.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/hook-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/lite-tasks.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.backup +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.new +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/memory.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/project-overview.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/prompt-history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/review-session.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/rules-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/session-detail.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/skills-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard.html +0 -0
- /package/{src → ccw/src}/templates/hooks-config-example.json +0 -0
- /package/{src → ccw/src}/templates/review-cycle-dashboard.html +0 -0
- /package/{src → ccw/src}/templates/workflow-dashboard.html +0 -0
- /package/{src → ccw/src}/tools/classify-folders.ts +0 -0
- /package/{src → ccw/src}/tools/cli-config-manager.ts +0 -0
- /package/{src → ccw/src}/tools/cli-executor.ts +0 -0
- /package/{src → ccw/src}/tools/cli-history-store.ts +0 -0
- /package/{src → ccw/src}/tools/codex-lens.ts +0 -0
- /package/{src → ccw/src}/tools/convert-tokens-to-css.ts +0 -0
- /package/{src → ccw/src}/tools/core-memory.ts +0 -0
- /package/{src → ccw/src}/tools/detect-changed-modules.ts +0 -0
- /package/{src → ccw/src}/tools/discover-design-files.ts +0 -0
- /package/{src → ccw/src}/tools/edit-file.ts +0 -0
- /package/{src → ccw/src}/tools/generate-module-docs.ts +0 -0
- /package/{src → ccw/src}/tools/get-modules-by-depth.ts +0 -0
- /package/{src → ccw/src}/tools/index.ts +0 -0
- /package/{src → ccw/src}/tools/native-session-discovery.ts +0 -0
- /package/{src → ccw/src}/tools/notifier.ts +0 -0
- /package/{src → ccw/src}/tools/read-file.ts +0 -0
- /package/{src → ccw/src}/tools/resume-strategy.ts +0 -0
- /package/{src → ccw/src}/tools/session-content-parser.ts +0 -0
- /package/{src → ccw/src}/tools/session-manager.ts +0 -0
- /package/{src → ccw/src}/tools/smart-context.ts +0 -0
- /package/{src → ccw/src}/tools/smart-search.ts +0 -0
- /package/{src → ccw/src}/tools/smart-search.ts.backup +0 -0
- /package/{src → ccw/src}/tools/storage-manager.ts +0 -0
- /package/{src → ccw/src}/tools/ui-generate-preview.js +0 -0
- /package/{src → ccw/src}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{src → ccw/src}/tools/update-module-claude.js +0 -0
- /package/{src → ccw/src}/tools/write-file.ts +0 -0
- /package/{src → ccw/src}/types/config.ts +0 -0
- /package/{src → ccw/src}/types/index.ts +0 -0
- /package/{src → ccw/src}/types/session.ts +0 -0
- /package/{src → ccw/src}/types/tool.ts +0 -0
- /package/{src → ccw/src}/utils/browser-launcher.ts +0 -0
- /package/{src → ccw/src}/utils/file-utils.ts +0 -0
- /package/{src → ccw/src}/utils/path-resolver.ts +0 -0
- /package/{src → ccw/src}/utils/path-validator.ts +0 -0
- /package/{src → ccw/src}/utils/ui.ts +0 -0
|
@@ -0,0 +1,1010 @@
|
|
|
1
|
+
# Implementation Details
|
|
2
|
+
|
|
3
|
+
Detailed implementation logic for command-guide skill operation modes.
|
|
4
|
+
|
|
5
|
+
## Architecture Overview
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
User Query
|
|
9
|
+
↓
|
|
10
|
+
Intent Recognition
|
|
11
|
+
↓
|
|
12
|
+
Mode Selection (1 of 6)
|
|
13
|
+
↓
|
|
14
|
+
Index/File/Reference Query
|
|
15
|
+
↓
|
|
16
|
+
Optional CLI Analysis (Mode 6)
|
|
17
|
+
↓
|
|
18
|
+
Response Formation
|
|
19
|
+
↓
|
|
20
|
+
User Output + Recommendations
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Intent Recognition
|
|
26
|
+
|
|
27
|
+
### Step 1: Parse User Input
|
|
28
|
+
|
|
29
|
+
Analyze query for trigger keywords and patterns:
|
|
30
|
+
|
|
31
|
+
```javascript
|
|
32
|
+
function recognizeIntent(userQuery) {
|
|
33
|
+
const query = userQuery.toLowerCase();
|
|
34
|
+
|
|
35
|
+
// Mode 5: Issue Reporting (highest priority)
|
|
36
|
+
if (query.includes('ccw-issue') || query.includes('ccw-help') ||
|
|
37
|
+
query.match(/报告.*bug/) || query.includes('功能建议')) {
|
|
38
|
+
return 'ISSUE_REPORTING';
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Mode 1: Command Search
|
|
42
|
+
if (query.includes('搜索') || query.includes('find') ||
|
|
43
|
+
query.includes('search') || query.match(/.*相关.*命令/)) {
|
|
44
|
+
return 'COMMAND_SEARCH';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Mode 2: Recommendations
|
|
48
|
+
if (query.includes('下一步') || query.includes("what's next") ||
|
|
49
|
+
query.includes('推荐') || query.match(/after.*\/\w+:\w+/)) {
|
|
50
|
+
return 'RECOMMENDATIONS';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Mode 3: Documentation
|
|
54
|
+
if (query.includes('参数') || query.includes('怎么用') ||
|
|
55
|
+
query.includes('如何使用') || query.match(/\/\w+:\w+.*详情/)) {
|
|
56
|
+
|
|
57
|
+
// Special case: CLI tools usage guide
|
|
58
|
+
if (query.match(/cli.*工具/) || query.match(/如何.*使用.*cli/) ||
|
|
59
|
+
query.match(/gemini|qwen|codex.*使用/) || query.match(/优雅.*使用/) ||
|
|
60
|
+
query.includes('cli能力') || query.includes('cli特性') ||
|
|
61
|
+
query.includes('语义调用') || query.includes('命令调用')) {
|
|
62
|
+
return 'CLI_TOOLS_GUIDE';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return 'DOCUMENTATION';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Mode 4: Onboarding
|
|
69
|
+
if (query.includes('新手') || query.includes('入门') ||
|
|
70
|
+
query.includes('getting started') || query.includes('常用命令')) {
|
|
71
|
+
return 'ONBOARDING';
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Mode 6: Deep Command Analysis
|
|
75
|
+
// Triggered by specific command/agent names or complexity indicators
|
|
76
|
+
if (query.match(/\/\w+:\w+/) || // Contains command name pattern
|
|
77
|
+
query.match(/agent.*工作|实现.*原理|命令.*细节/) || // Asks about internals
|
|
78
|
+
query.includes('详细说明') || query.includes('实现细节') ||
|
|
79
|
+
query.match(/对比.*命令|workflow.*对比/) || // Comparison queries
|
|
80
|
+
query.match(/\w+-agent/) || // Agent name pattern
|
|
81
|
+
query.includes('最佳实践') && query.match(/\w+:\w+/)) { // Best practices for specific command
|
|
82
|
+
return 'DEEP_ANALYSIS';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Default: Ask for clarification
|
|
86
|
+
return 'CLARIFY';
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Mode 1: Command Search 🔍
|
|
93
|
+
|
|
94
|
+
### Trigger Analysis
|
|
95
|
+
|
|
96
|
+
**Keywords**: 搜索, find, search, [topic] 相关命令
|
|
97
|
+
|
|
98
|
+
**Examples**:
|
|
99
|
+
- "搜索 planning 命令"
|
|
100
|
+
- "find commands for testing"
|
|
101
|
+
- "实现相关的命令有哪些"
|
|
102
|
+
|
|
103
|
+
### Processing Flow
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
1. Extract Search Parameters
|
|
107
|
+
↓
|
|
108
|
+
2. Determine Search Type
|
|
109
|
+
├─ Keyword Search (in name/description)
|
|
110
|
+
├─ Category Search (workflow/cli/memory/task)
|
|
111
|
+
└─ Use-Case Search (planning/implementation/testing)
|
|
112
|
+
↓
|
|
113
|
+
3. Query Appropriate Index
|
|
114
|
+
├─ Keyword → all-commands.json
|
|
115
|
+
├─ Category → by-category.json
|
|
116
|
+
└─ Use-Case → by-use-case.json
|
|
117
|
+
↓
|
|
118
|
+
4. Filter and Rank Results
|
|
119
|
+
↓
|
|
120
|
+
5. Format Response
|
|
121
|
+
├─ List matching commands
|
|
122
|
+
├─ Show key metadata (name, description, args)
|
|
123
|
+
└─ Suggest related commands
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Implementation
|
|
127
|
+
|
|
128
|
+
```javascript
|
|
129
|
+
async function searchCommands(query, searchType) {
|
|
130
|
+
let results = [];
|
|
131
|
+
|
|
132
|
+
switch (searchType) {
|
|
133
|
+
case 'keyword':
|
|
134
|
+
// Load all-commands.json
|
|
135
|
+
const allCommands = await readIndex('all-commands.json');
|
|
136
|
+
results = allCommands.filter(cmd =>
|
|
137
|
+
cmd.name.toLowerCase().includes(query.toLowerCase()) ||
|
|
138
|
+
cmd.description.toLowerCase().includes(query.toLowerCase())
|
|
139
|
+
);
|
|
140
|
+
break;
|
|
141
|
+
|
|
142
|
+
case 'category':
|
|
143
|
+
// Load by-category.json
|
|
144
|
+
const byCategory = await readIndex('by-category.json');
|
|
145
|
+
const category = extractCategory(query); // e.g., "workflow"
|
|
146
|
+
results = flattenCategory(byCategory[category]);
|
|
147
|
+
break;
|
|
148
|
+
|
|
149
|
+
case 'use-case':
|
|
150
|
+
// Load by-use-case.json
|
|
151
|
+
const byUseCase = await readIndex('by-use-case.json');
|
|
152
|
+
const useCase = extractUseCase(query); // e.g., "planning"
|
|
153
|
+
results = byUseCase[useCase] || [];
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Rank by relevance
|
|
158
|
+
results = rankResults(results, query);
|
|
159
|
+
|
|
160
|
+
// Add related commands
|
|
161
|
+
results = await enrichWithRelated(results);
|
|
162
|
+
|
|
163
|
+
return results;
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Mode 2: Smart Recommendations 🤖
|
|
170
|
+
|
|
171
|
+
### Trigger Analysis
|
|
172
|
+
|
|
173
|
+
**Keywords**: 下一步, what's next, 推荐, after [command]
|
|
174
|
+
|
|
175
|
+
**Examples**:
|
|
176
|
+
- "执行完 /workflow:plan 后做什么?"
|
|
177
|
+
- "What's next after planning?"
|
|
178
|
+
- "推荐下一个命令"
|
|
179
|
+
|
|
180
|
+
### Processing Flow
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
1. Extract Context
|
|
184
|
+
├─ Current/Last Command
|
|
185
|
+
├─ Workflow State
|
|
186
|
+
└─ User's Current Task
|
|
187
|
+
↓
|
|
188
|
+
2. Query Relationships
|
|
189
|
+
└─ Load command-relationships.json
|
|
190
|
+
↓
|
|
191
|
+
3. Find Next Steps
|
|
192
|
+
├─ Check next_steps array
|
|
193
|
+
├─ Consider prerequisites
|
|
194
|
+
└─ Check related_commands
|
|
195
|
+
↓
|
|
196
|
+
4. Generate Recommendations
|
|
197
|
+
├─ Primary recommendation (most common next step)
|
|
198
|
+
├─ Alternative options
|
|
199
|
+
└─ Rationale for each
|
|
200
|
+
↓
|
|
201
|
+
5. Add Workflow Context
|
|
202
|
+
└─ Link to workflow-patterns.md
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Implementation
|
|
206
|
+
|
|
207
|
+
```javascript
|
|
208
|
+
async function getRecommendations(currentCommand) {
|
|
209
|
+
// Load relationships
|
|
210
|
+
const relationships = await readIndex('command-relationships.json');
|
|
211
|
+
|
|
212
|
+
// Get relationship data
|
|
213
|
+
const cmdData = relationships[currentCommand];
|
|
214
|
+
|
|
215
|
+
if (!cmdData) {
|
|
216
|
+
return defaultRecommendations();
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Primary next steps
|
|
220
|
+
const nextSteps = cmdData.next_steps || [];
|
|
221
|
+
|
|
222
|
+
// Alternative related commands
|
|
223
|
+
const alternatives = cmdData.related_commands || [];
|
|
224
|
+
|
|
225
|
+
// Build recommendations
|
|
226
|
+
const recommendations = {
|
|
227
|
+
primary: await enrichCommand(nextSteps[0]),
|
|
228
|
+
alternatives: await enrichCommands(alternatives),
|
|
229
|
+
workflow_pattern: findWorkflowPattern(currentCommand),
|
|
230
|
+
rationale: generateRationale(currentCommand, nextSteps[0])
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
return recommendations;
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Mode 3: Full Documentation 📖
|
|
240
|
+
|
|
241
|
+
### Trigger Analysis
|
|
242
|
+
|
|
243
|
+
**Keywords**: 参数, 怎么用, 如何使用, [command] 详情
|
|
244
|
+
|
|
245
|
+
**Examples**:
|
|
246
|
+
- "/workflow:plan 的参数是什么?"
|
|
247
|
+
- "如何使用 /cli:execute?"
|
|
248
|
+
- "task:create 详细文档"
|
|
249
|
+
|
|
250
|
+
**Special Case - CLI Tools Guide**:
|
|
251
|
+
**Keywords**: cli工具, 如何使用cli, gemini/qwen/codex使用, 优雅使用, cli能力, cli特性, 语义调用, 命令调用
|
|
252
|
+
|
|
253
|
+
**Examples**:
|
|
254
|
+
- "如何优雅的使用cli工具"
|
|
255
|
+
- "cli工具能做什么"
|
|
256
|
+
- "gemini和codex的区别"
|
|
257
|
+
- "语义调用是什么"
|
|
258
|
+
|
|
259
|
+
### Processing Flow
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
1. Extract Command Name
|
|
263
|
+
└─ Parse /workflow:plan or workflow:plan
|
|
264
|
+
↓
|
|
265
|
+
2. Locate in Index
|
|
266
|
+
└─ Search all-commands.json
|
|
267
|
+
↓
|
|
268
|
+
3. Read Full Command File
|
|
269
|
+
└─ Use file_path from index
|
|
270
|
+
↓
|
|
271
|
+
4. Extract Documentation
|
|
272
|
+
├─ Parameters section
|
|
273
|
+
├─ Arguments specification
|
|
274
|
+
├─ Examples section
|
|
275
|
+
└─ Best practices
|
|
276
|
+
↓
|
|
277
|
+
5. Format Response
|
|
278
|
+
├─ Command overview
|
|
279
|
+
├─ Full parameter list
|
|
280
|
+
├─ Usage examples
|
|
281
|
+
└─ Related commands
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Implementation
|
|
285
|
+
|
|
286
|
+
```javascript
|
|
287
|
+
async function getDocumentation(commandName, queryType = 'DOCUMENTATION') {
|
|
288
|
+
// Special case: CLI tools usage guide
|
|
289
|
+
if (queryType === 'CLI_TOOLS_GUIDE') {
|
|
290
|
+
const guideContent = await readFile('guides/cli-tools-guide.md');
|
|
291
|
+
return {
|
|
292
|
+
type: 'CLI_TOOLS_GUIDE',
|
|
293
|
+
title: 'CLI 工具使用指南',
|
|
294
|
+
content: guideContent,
|
|
295
|
+
sections: {
|
|
296
|
+
introduction: extractSection(guideContent, '## 🎯 快速理解'),
|
|
297
|
+
comparison: extractSection(guideContent, '## 📋 三大工具能力对比'),
|
|
298
|
+
how_to_use: extractSection(guideContent, '## 🚀 如何调用'),
|
|
299
|
+
capabilities: extractSection(guideContent, '## 💡 能力特性清单'),
|
|
300
|
+
scenarios: extractSection(guideContent, '## 🔄 典型使用场景'),
|
|
301
|
+
quick_reference: extractSection(guideContent, '## 📚 快速参考'),
|
|
302
|
+
faq: extractSection(guideContent, '## 🆘 常见问题')
|
|
303
|
+
},
|
|
304
|
+
related_docs: [
|
|
305
|
+
'intelligent-tools-strategy.md',
|
|
306
|
+
'workflow-patterns.md',
|
|
307
|
+
'getting-started.md'
|
|
308
|
+
]
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// Normal command documentation
|
|
313
|
+
// Normalize command name
|
|
314
|
+
const normalized = normalizeCommandName(commandName);
|
|
315
|
+
|
|
316
|
+
// Find in index
|
|
317
|
+
const allCommands = await readIndex('all-commands.json');
|
|
318
|
+
const command = allCommands.find(cmd => cmd.name === normalized);
|
|
319
|
+
|
|
320
|
+
if (!command) {
|
|
321
|
+
return { error: 'Command not found' };
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Read full command file
|
|
325
|
+
const commandFilePath = path.join(
|
|
326
|
+
'../commands',
|
|
327
|
+
command.file_path
|
|
328
|
+
);
|
|
329
|
+
const fullDoc = await readCommandFile(commandFilePath);
|
|
330
|
+
|
|
331
|
+
// Parse sections
|
|
332
|
+
const documentation = {
|
|
333
|
+
name: command.name,
|
|
334
|
+
description: command.description,
|
|
335
|
+
arguments: command.arguments,
|
|
336
|
+
difficulty: command.difficulty,
|
|
337
|
+
usage_scenario: command.usage_scenario,
|
|
338
|
+
parameters: extractSection(fullDoc, '## Parameters'),
|
|
339
|
+
examples: extractSection(fullDoc, '## Examples'),
|
|
340
|
+
best_practices: extractSection(fullDoc, '## Best Practices'),
|
|
341
|
+
related: await getRelatedCommands(command.name)
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
return documentation;
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Mode 4: Beginner Onboarding 🎓
|
|
351
|
+
|
|
352
|
+
### Trigger Analysis
|
|
353
|
+
|
|
354
|
+
**Keywords**: 新手, 入门, getting started, 常用命令, 如何开始
|
|
355
|
+
|
|
356
|
+
**Examples**:
|
|
357
|
+
- "我是新手,如何开始?"
|
|
358
|
+
- "getting started with workflows"
|
|
359
|
+
- "最常用的命令有哪些?"
|
|
360
|
+
|
|
361
|
+
### Processing Flow
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
1. Assess User Level
|
|
365
|
+
└─ Identify as beginner
|
|
366
|
+
↓
|
|
367
|
+
2. Load Essential Commands
|
|
368
|
+
└─ Read essential-commands.json
|
|
369
|
+
↓
|
|
370
|
+
3. Build Learning Path
|
|
371
|
+
├─ Step 1: Core commands (Top 5)
|
|
372
|
+
├─ Step 2: Basic workflow
|
|
373
|
+
├─ Step 3: Intermediate commands
|
|
374
|
+
└─ Step 4: Advanced features
|
|
375
|
+
↓
|
|
376
|
+
4. Provide Resources
|
|
377
|
+
├─ Link to getting-started.md
|
|
378
|
+
├─ Link to workflow-patterns.md
|
|
379
|
+
└─ Suggest first task
|
|
380
|
+
↓
|
|
381
|
+
5. Interactive Guidance
|
|
382
|
+
└─ Offer to walk through first workflow
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Implementation
|
|
386
|
+
|
|
387
|
+
```javascript
|
|
388
|
+
async function onboardBeginner() {
|
|
389
|
+
// Load essential commands
|
|
390
|
+
const essentialCommands = await readIndex('essential-commands.json');
|
|
391
|
+
|
|
392
|
+
// Group by difficulty
|
|
393
|
+
const beginner = essentialCommands.filter(cmd =>
|
|
394
|
+
cmd.difficulty === 'Beginner' || cmd.difficulty === 'Intermediate'
|
|
395
|
+
);
|
|
396
|
+
|
|
397
|
+
// Create learning path
|
|
398
|
+
const learningPath = {
|
|
399
|
+
step1: {
|
|
400
|
+
title: 'Core Commands (Start Here)',
|
|
401
|
+
commands: beginner.slice(0, 5),
|
|
402
|
+
guide: 'guides/getting-started.md'
|
|
403
|
+
},
|
|
404
|
+
step2: {
|
|
405
|
+
title: 'Your First Workflow',
|
|
406
|
+
pattern: 'Plan → Execute',
|
|
407
|
+
commands: ['workflow:plan', 'workflow:execute'],
|
|
408
|
+
guide: 'guides/workflow-patterns.md#basic-workflow'
|
|
409
|
+
},
|
|
410
|
+
step3: {
|
|
411
|
+
title: 'Intermediate Skills',
|
|
412
|
+
commands: beginner.slice(5, 10),
|
|
413
|
+
guide: 'guides/workflow-patterns.md#common-patterns'
|
|
414
|
+
}
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
// Resources
|
|
418
|
+
const resources = {
|
|
419
|
+
getting_started: 'guides/getting-started.md',
|
|
420
|
+
workflow_patterns: 'guides/workflow-patterns.md',
|
|
421
|
+
cli_tools: 'guides/cli-tools-guide.md',
|
|
422
|
+
troubleshooting: 'guides/troubleshooting.md'
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
return {
|
|
426
|
+
learning_path: learningPath,
|
|
427
|
+
resources: resources,
|
|
428
|
+
first_task: 'Try: /workflow:plan "create a simple feature"'
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Mode 5: Issue Reporting 📝
|
|
436
|
+
|
|
437
|
+
### Trigger Analysis
|
|
438
|
+
|
|
439
|
+
**Keywords**: CCW-issue, CCW-help, 报告 bug, 功能建议, 问题咨询
|
|
440
|
+
|
|
441
|
+
**Examples**:
|
|
442
|
+
- "CCW-issue"
|
|
443
|
+
- "我要报告一个 bug"
|
|
444
|
+
- "CCW-help 有问题"
|
|
445
|
+
- "想提个功能建议"
|
|
446
|
+
|
|
447
|
+
### Processing Flow
|
|
448
|
+
|
|
449
|
+
```
|
|
450
|
+
1. Detect Issue Type
|
|
451
|
+
└─ Use AskUserQuestion if unclear
|
|
452
|
+
↓
|
|
453
|
+
2. Select Template
|
|
454
|
+
├─ Bug → templates/issue-bug.md
|
|
455
|
+
├─ Feature → templates/issue-feature.md
|
|
456
|
+
└─ Question → templates/issue-question.md
|
|
457
|
+
↓
|
|
458
|
+
3. Collect Information
|
|
459
|
+
└─ Interactive Q&A
|
|
460
|
+
├─ Problem description
|
|
461
|
+
├─ Steps to reproduce (bug)
|
|
462
|
+
├─ Expected vs actual (bug)
|
|
463
|
+
├─ Use case (feature)
|
|
464
|
+
└─ Context
|
|
465
|
+
↓
|
|
466
|
+
4. Generate Filled Template
|
|
467
|
+
└─ Populate template with collected data
|
|
468
|
+
↓
|
|
469
|
+
5. Save or Display
|
|
470
|
+
├─ Save to templates/.generated/
|
|
471
|
+
└─ Display for user to copy
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Implementation
|
|
475
|
+
|
|
476
|
+
```javascript
|
|
477
|
+
async function reportIssue(issueType) {
|
|
478
|
+
// Determine type (bug/feature/question)
|
|
479
|
+
if (!issueType) {
|
|
480
|
+
issueType = await askUserQuestion({
|
|
481
|
+
question: 'What type of issue would you like to report?',
|
|
482
|
+
options: ['Bug Report', 'Feature Request', 'Question']
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
// Select template
|
|
487
|
+
const templatePath = {
|
|
488
|
+
'bug': 'templates/issue-bug.md',
|
|
489
|
+
'feature': 'templates/issue-feature.md',
|
|
490
|
+
'question': 'templates/issue-question.md'
|
|
491
|
+
}[issueType.toLowerCase()];
|
|
492
|
+
|
|
493
|
+
const template = await readTemplate(templatePath);
|
|
494
|
+
|
|
495
|
+
// Collect information
|
|
496
|
+
const info = await collectIssueInfo(issueType);
|
|
497
|
+
|
|
498
|
+
// Fill template
|
|
499
|
+
const filledTemplate = fillTemplate(template, {
|
|
500
|
+
...info,
|
|
501
|
+
timestamp: new Date().toISOString(),
|
|
502
|
+
auto_context: gatherAutoContext()
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
// Save
|
|
506
|
+
const outputPath = `templates/.generated/${issueType}-${Date.now()}.md`;
|
|
507
|
+
await writeFile(outputPath, filledTemplate);
|
|
508
|
+
|
|
509
|
+
return {
|
|
510
|
+
template: filledTemplate,
|
|
511
|
+
file_path: outputPath,
|
|
512
|
+
instructions: 'Copy content to GitHub Issues or use: gh issue create -F ' + outputPath
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
## Mode 6: Deep Command Analysis 🔬
|
|
520
|
+
|
|
521
|
+
**Path Configuration Note**:
|
|
522
|
+
This mode uses absolute paths (`~/.claude/skills/command-guide/reference`) to ensure the skill works correctly regardless of where it's installed. The skill is designed to be installed in `~/.claude/skills/` (user's global Claude configuration directory).
|
|
523
|
+
|
|
524
|
+
### Trigger Analysis
|
|
525
|
+
|
|
526
|
+
**Keywords**: 详细说明, 命令原理, agent 如何工作, 实现细节, 对比命令, 最佳实践
|
|
527
|
+
|
|
528
|
+
**Examples**:
|
|
529
|
+
- "action-planning-agent 如何工作?"
|
|
530
|
+
- "/workflow:plan 的实现原理是什么?"
|
|
531
|
+
- "对比 workflow:plan 和 workflow:tdd-plan"
|
|
532
|
+
- "ui-design-agent 详细说明"
|
|
533
|
+
|
|
534
|
+
### Processing Flow
|
|
535
|
+
|
|
536
|
+
```
|
|
537
|
+
1. Parse Query
|
|
538
|
+
├─ Identify target command(s)/agent(s)
|
|
539
|
+
├─ Determine query complexity
|
|
540
|
+
└─ Extract specific questions
|
|
541
|
+
↓
|
|
542
|
+
2. Classify Query Type
|
|
543
|
+
├─ Simple: Single entity, basic explanation
|
|
544
|
+
└─ Complex: Multi-entity comparison, best practices, workflows
|
|
545
|
+
↓
|
|
546
|
+
3. Simple Query Path
|
|
547
|
+
├─ Locate file in reference/
|
|
548
|
+
├─ Read markdown content
|
|
549
|
+
├─ Extract relevant sections
|
|
550
|
+
└─ Format response
|
|
551
|
+
↓
|
|
552
|
+
4. Complex Query Path
|
|
553
|
+
├─ Identify all relevant files
|
|
554
|
+
├─ Construct CLI analysis prompt
|
|
555
|
+
├─ Execute gemini/qwen analysis
|
|
556
|
+
└─ Return comprehensive results
|
|
557
|
+
↓
|
|
558
|
+
5. Response Enhancement
|
|
559
|
+
├─ Add usage examples
|
|
560
|
+
├─ Link to related docs
|
|
561
|
+
└─ Suggest next steps
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
### Query Classification Logic
|
|
565
|
+
|
|
566
|
+
```javascript
|
|
567
|
+
function classifyDeepAnalysisQuery(query) {
|
|
568
|
+
const complexityIndicators = {
|
|
569
|
+
multiEntity: query.match(/对比|比较|区别/) && query.match(/(\/\w+:\w+.*){2,}/),
|
|
570
|
+
bestPractices: query.includes('最佳实践') || query.includes('推荐用法'),
|
|
571
|
+
workflowAnalysis: query.match(/工作流.*分析|流程.*说明/),
|
|
572
|
+
architecturalDepth: query.includes('架构') || query.includes('设计思路'),
|
|
573
|
+
crossReference: query.match(/和.*一起用|配合.*使用/)
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
const isComplex = Object.values(complexityIndicators).some(v => v);
|
|
577
|
+
|
|
578
|
+
return {
|
|
579
|
+
isComplex,
|
|
580
|
+
indicators: complexityIndicators,
|
|
581
|
+
requiresCLI: isComplex
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
### Simple Query Implementation
|
|
587
|
+
|
|
588
|
+
```javascript
|
|
589
|
+
async function handleSimpleQuery(query) {
|
|
590
|
+
// Extract entity name (command or agent)
|
|
591
|
+
const entityName = extractEntityName(query); // e.g., "action-planning-agent" or "workflow:plan"
|
|
592
|
+
|
|
593
|
+
// Determine if command or agent
|
|
594
|
+
const isAgent = entityName.includes('-agent') || entityName.includes('agent');
|
|
595
|
+
const isCommand = entityName.includes(':') || entityName.startsWith('/');
|
|
596
|
+
|
|
597
|
+
// Base path for reference documentation
|
|
598
|
+
const basePath = '~/.claude/skills/command-guide/reference';
|
|
599
|
+
|
|
600
|
+
let filePath;
|
|
601
|
+
if (isAgent) {
|
|
602
|
+
// Agent query - use absolute path
|
|
603
|
+
const agentFileName = entityName.replace(/^\//, '').replace(/-agent$/, '-agent');
|
|
604
|
+
filePath = `${basePath}/agents/${agentFileName}.md`;
|
|
605
|
+
} else if (isCommand) {
|
|
606
|
+
// Command query - need to find in command hierarchy
|
|
607
|
+
const cmdName = entityName.replace(/^\//, '');
|
|
608
|
+
filePath = await locateCommandFile(cmdName, basePath);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// Read documentation
|
|
612
|
+
const docContent = await readFile(filePath);
|
|
613
|
+
|
|
614
|
+
// Extract relevant sections based on query keywords
|
|
615
|
+
const sections = extractRelevantSections(docContent, query);
|
|
616
|
+
|
|
617
|
+
// Format response
|
|
618
|
+
return {
|
|
619
|
+
entity: entityName,
|
|
620
|
+
type: isAgent ? 'agent' : 'command',
|
|
621
|
+
documentation: sections,
|
|
622
|
+
full_path: filePath,
|
|
623
|
+
related: await findRelatedEntities(entityName)
|
|
624
|
+
};
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
async function locateCommandFile(commandName, basePath) {
|
|
628
|
+
// Parse command category from name
|
|
629
|
+
// e.g., "workflow:plan" → "~/.claude/skills/command-guide/reference/commands/workflow/plan.md"
|
|
630
|
+
const [category, name] = commandName.split(':');
|
|
631
|
+
|
|
632
|
+
// Search in reference/commands hierarchy using absolute paths
|
|
633
|
+
const possiblePaths = [
|
|
634
|
+
`${basePath}/commands/${category}/${name}.md`,
|
|
635
|
+
`${basePath}/commands/${category}/${name}/*.md`,
|
|
636
|
+
`${basePath}/commands/${name}.md`
|
|
637
|
+
];
|
|
638
|
+
|
|
639
|
+
for (const path of possiblePaths) {
|
|
640
|
+
if (await fileExists(path)) {
|
|
641
|
+
return path;
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
throw new Error(`Command file not found: ${commandName}`);
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
function extractRelevantSections(markdown, query) {
|
|
649
|
+
// Parse markdown into sections
|
|
650
|
+
const sections = parseMarkdownSections(markdown);
|
|
651
|
+
|
|
652
|
+
// Determine which sections are relevant
|
|
653
|
+
const keywords = extractKeywords(query);
|
|
654
|
+
const relevantSections = {};
|
|
655
|
+
|
|
656
|
+
// Always include overview/description
|
|
657
|
+
if (sections['## Overview'] || sections['## Description']) {
|
|
658
|
+
relevantSections.overview = sections['## Overview'] || sections['## Description'];
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
// Include specific sections based on keywords
|
|
662
|
+
if (keywords.includes('参数') || keywords.includes('参数说明')) {
|
|
663
|
+
relevantSections.parameters = sections['## Parameters'] || sections['## Arguments'];
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
if (keywords.includes('例子') || keywords.includes('示例') || keywords.includes('example')) {
|
|
667
|
+
relevantSections.examples = sections['## Examples'] || sections['## Usage'];
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
if (keywords.includes('工作流') || keywords.includes('流程')) {
|
|
671
|
+
relevantSections.workflow = sections['## Workflow'] || sections['## Process Flow'];
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
if (keywords.includes('最佳实践') || keywords.includes('建议')) {
|
|
675
|
+
relevantSections.best_practices = sections['## Best Practices'] || sections['## Recommendations'];
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
return relevantSections;
|
|
679
|
+
}
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
### Complex Query Implementation (CLI-Assisted)
|
|
683
|
+
|
|
684
|
+
```javascript
|
|
685
|
+
async function handleComplexQuery(query, classification) {
|
|
686
|
+
// Identify all entities mentioned in query
|
|
687
|
+
const entities = extractAllEntities(query); // Returns array of command/agent names
|
|
688
|
+
|
|
689
|
+
// Build file context for CLI analysis
|
|
690
|
+
const contextPaths = [];
|
|
691
|
+
for (const entity of entities) {
|
|
692
|
+
const path = await resolveEntityPath(entity);
|
|
693
|
+
contextPaths.push(path);
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
// Construct CLI prompt based on query type
|
|
697
|
+
const prompt = buildCLIPrompt(query, classification, contextPaths);
|
|
698
|
+
|
|
699
|
+
// Execute CLI analysis
|
|
700
|
+
const cliResult = await executeCLIAnalysis(prompt);
|
|
701
|
+
|
|
702
|
+
return {
|
|
703
|
+
query_type: 'complex',
|
|
704
|
+
analysis_method: 'CLI-assisted (gemini)',
|
|
705
|
+
entities_analyzed: entities,
|
|
706
|
+
result: cliResult,
|
|
707
|
+
source_files: contextPaths
|
|
708
|
+
};
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
function buildCLIPrompt(userQuery, classification, contextPaths) {
|
|
712
|
+
// Extract key question
|
|
713
|
+
const question = extractCoreQuestion(userQuery);
|
|
714
|
+
|
|
715
|
+
// Build context reference
|
|
716
|
+
const contextRef = contextPaths.map(p => `@${p}`).join(' ');
|
|
717
|
+
|
|
718
|
+
// Determine analysis focus based on classification
|
|
719
|
+
let taskDescription = '';
|
|
720
|
+
if (classification.indicators.multiEntity) {
|
|
721
|
+
taskDescription = `• Compare the entities mentioned in terms of:
|
|
722
|
+
- Use cases and scenarios
|
|
723
|
+
- Capabilities and features
|
|
724
|
+
- When to use each
|
|
725
|
+
- Workflow integration
|
|
726
|
+
• Provide side-by-side comparison
|
|
727
|
+
• Recommend usage guidelines`;
|
|
728
|
+
} else if (classification.indicators.bestPractices) {
|
|
729
|
+
taskDescription = `• Analyze best practices for the mentioned entities
|
|
730
|
+
• Provide practical usage recommendations
|
|
731
|
+
• Include common pitfalls to avoid
|
|
732
|
+
• Show example workflows`;
|
|
733
|
+
} else if (classification.indicators.workflowAnalysis) {
|
|
734
|
+
taskDescription = `• Trace the workflow execution
|
|
735
|
+
• Explain process flow and dependencies
|
|
736
|
+
• Identify key integration points
|
|
737
|
+
• Provide usage examples`;
|
|
738
|
+
} else {
|
|
739
|
+
taskDescription = `• Provide comprehensive analysis
|
|
740
|
+
• Explain implementation details
|
|
741
|
+
• Show practical examples
|
|
742
|
+
• Include related concepts`;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
// Construct full prompt using Standard Template
|
|
746
|
+
// Note: CONTEXT uses @**/* because we'll use --include-directories to specify the reference path
|
|
747
|
+
return `PURPOSE: Analyze command/agent documentation to provide comprehensive answer to user query
|
|
748
|
+
TASK:
|
|
749
|
+
${taskDescription}
|
|
750
|
+
MODE: analysis
|
|
751
|
+
CONTEXT: @**/*
|
|
752
|
+
EXPECTED: Comprehensive answer with examples, comparisons, and recommendations in markdown format
|
|
753
|
+
RULES: $(cat ~/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt) | Focus on practical usage and real-world scenarios | analysis=READ-ONLY
|
|
754
|
+
|
|
755
|
+
User Question: ${question}`;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
async function executeCLIAnalysis(prompt) {
|
|
759
|
+
// Use absolute path for reference directory
|
|
760
|
+
// This ensures the command works regardless of where the skill is installed
|
|
761
|
+
const referencePath = '~/.claude/skills/command-guide/reference';
|
|
762
|
+
|
|
763
|
+
// Execute gemini with analysis prompt using --include-directories
|
|
764
|
+
// This allows gemini to access reference docs while maintaining correct file context
|
|
765
|
+
const command = `gemini -p "${escapePrompt(prompt)}" --include-directories ${referencePath}`;
|
|
766
|
+
|
|
767
|
+
try {
|
|
768
|
+
const result = await execBash(command, { timeout: 120000 }); // 2 min timeout
|
|
769
|
+
return parseAnalysisResult(result.stdout);
|
|
770
|
+
} catch (error) {
|
|
771
|
+
// Fallback to qwen if gemini fails
|
|
772
|
+
console.warn('Gemini failed, falling back to qwen');
|
|
773
|
+
const fallbackCmd = `qwen -p "${escapePrompt(prompt)}" --include-directories ${referencePath}`;
|
|
774
|
+
const result = await execBash(fallbackCmd, { timeout: 120000 });
|
|
775
|
+
return parseAnalysisResult(result.stdout);
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
function parseAnalysisResult(rawOutput) {
|
|
780
|
+
// Extract main content from CLI output
|
|
781
|
+
// Remove CLI wrapper/metadata, keep analysis content
|
|
782
|
+
const lines = rawOutput.split('\n');
|
|
783
|
+
const contentStart = lines.findIndex(l => l.trim().startsWith('#') || l.length > 50);
|
|
784
|
+
const content = lines.slice(contentStart).join('\n');
|
|
785
|
+
|
|
786
|
+
return {
|
|
787
|
+
raw: rawOutput,
|
|
788
|
+
parsed: content,
|
|
789
|
+
format: 'markdown'
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
### Helper Functions
|
|
795
|
+
|
|
796
|
+
```javascript
|
|
797
|
+
function extractEntityName(query) {
|
|
798
|
+
// Extract command name pattern: /workflow:plan or workflow:plan
|
|
799
|
+
const cmdMatch = query.match(/\/?(\w+:\w+)/);
|
|
800
|
+
if (cmdMatch) return cmdMatch[1];
|
|
801
|
+
|
|
802
|
+
// Extract agent name pattern: action-planning-agent or action planning agent
|
|
803
|
+
const agentMatch = query.match(/(\w+(?:-\w+)*-agent|\w+\s+agent)/);
|
|
804
|
+
if (agentMatch) return agentMatch[1].replace(/\s+/g, '-');
|
|
805
|
+
|
|
806
|
+
return null;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
function extractAllEntities(query) {
|
|
810
|
+
const entities = [];
|
|
811
|
+
|
|
812
|
+
// Find all command patterns
|
|
813
|
+
const commands = query.match(/\/?(\w+:\w+)/g);
|
|
814
|
+
if (commands) {
|
|
815
|
+
entities.push(...commands.map(c => c.replace('/', '')));
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
// Find all agent patterns
|
|
819
|
+
const agents = query.match(/(\w+(?:-\w+)*-agent)/g);
|
|
820
|
+
if (agents) {
|
|
821
|
+
entities.push(...agents);
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
return [...new Set(entities)]; // Deduplicate
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
async function resolveEntityPath(entityName) {
|
|
828
|
+
// Base path for reference documentation
|
|
829
|
+
const basePath = '~/.claude/skills/command-guide/reference';
|
|
830
|
+
const isAgent = entityName.includes('-agent');
|
|
831
|
+
|
|
832
|
+
if (isAgent) {
|
|
833
|
+
// Return relative path within reference directory (used for @context in CLI)
|
|
834
|
+
return `agents/${entityName}.md`;
|
|
835
|
+
} else {
|
|
836
|
+
// Command - need to find in hierarchy
|
|
837
|
+
const [category] = entityName.split(':');
|
|
838
|
+
// Use glob to find the file (glob pattern uses absolute path)
|
|
839
|
+
const matches = await glob(`${basePath}/commands/${category}/**/${entityName.split(':')[1]}.md`);
|
|
840
|
+
if (matches.length > 0) {
|
|
841
|
+
// Return relative path within reference directory
|
|
842
|
+
return matches[0].replace(`${basePath}/`, '');
|
|
843
|
+
}
|
|
844
|
+
throw new Error(`Entity file not found: ${entityName}`);
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
function extractCoreQuestion(query) {
|
|
849
|
+
// Remove common prefixes
|
|
850
|
+
const cleaned = query
|
|
851
|
+
.replace(/^(请|帮我|能否|可以)/g, '')
|
|
852
|
+
.replace(/^(ccw|CCW)[:\s]*/gi, '')
|
|
853
|
+
.trim();
|
|
854
|
+
|
|
855
|
+
// Ensure it ends with question mark if it's interrogative
|
|
856
|
+
if (cleaned.match(/什么|如何|为什么|怎么|哪个/) && !cleaned.endsWith('?') && !cleaned.endsWith('?')) {
|
|
857
|
+
return cleaned + '?';
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
return cleaned;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
function escapePrompt(prompt) {
|
|
864
|
+
// Escape special characters for bash
|
|
865
|
+
return prompt
|
|
866
|
+
.replace(/\\/g, '\\\\')
|
|
867
|
+
.replace(/"/g, '\\"')
|
|
868
|
+
.replace(/\$/g, '\\$')
|
|
869
|
+
.replace(/`/g, '\\`');
|
|
870
|
+
}
|
|
871
|
+
```
|
|
872
|
+
|
|
873
|
+
### Example Outputs
|
|
874
|
+
|
|
875
|
+
**Simple Query Example**:
|
|
876
|
+
```javascript
|
|
877
|
+
// Input: "action-planning-agent 如何工作?"
|
|
878
|
+
{
|
|
879
|
+
entity: "action-planning-agent",
|
|
880
|
+
type: "agent",
|
|
881
|
+
documentation: {
|
|
882
|
+
overview: "# Action Planning Agent\n\nGenerates structured task plans...",
|
|
883
|
+
workflow: "## Workflow\n1. Analyze requirements\n2. Break down into tasks...",
|
|
884
|
+
examples: "## Examples\n```bash\n/workflow:plan --agent \"feature\"\n```"
|
|
885
|
+
},
|
|
886
|
+
full_path: "~/.claude/skills/command-guide/reference/agents/action-planning-agent.md",
|
|
887
|
+
related: ["workflow:plan", "task:create", "conceptual-planning-agent"]
|
|
888
|
+
}
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
**Complex Query Example**:
|
|
892
|
+
```javascript
|
|
893
|
+
// Input: "对比 workflow:plan 和 workflow:tdd-plan 的使用场景和最佳实践"
|
|
894
|
+
{
|
|
895
|
+
query_type: "complex",
|
|
896
|
+
analysis_method: "CLI-assisted (gemini)",
|
|
897
|
+
entities_analyzed: ["workflow:plan", "workflow:tdd-plan"],
|
|
898
|
+
result: {
|
|
899
|
+
parsed: `# 对比分析: workflow:plan vs workflow:tdd-plan
|
|
900
|
+
|
|
901
|
+
## 使用场景对比
|
|
902
|
+
|
|
903
|
+
### workflow:plan
|
|
904
|
+
- **适用场景**: 通用功能开发,无特殊测试要求
|
|
905
|
+
- **特点**: 灵活的任务分解,focus on implementation
|
|
906
|
+
...
|
|
907
|
+
|
|
908
|
+
### workflow:tdd-plan
|
|
909
|
+
- **适用场景**: 测试驱动开发,需要严格测试覆盖
|
|
910
|
+
- **特点**: Red-Green-Refactor 循环,test-first
|
|
911
|
+
...
|
|
912
|
+
|
|
913
|
+
## 最佳实践
|
|
914
|
+
|
|
915
|
+
### workflow:plan 最佳实践
|
|
916
|
+
1. 先分析需求,明确目标
|
|
917
|
+
2. 合理分解任务,避免过大或过小
|
|
918
|
+
...
|
|
919
|
+
|
|
920
|
+
### workflow:tdd-plan 最佳实践
|
|
921
|
+
1. 先写测试,明确预期行为
|
|
922
|
+
2. 保持 Red-Green-Refactor 节奏
|
|
923
|
+
...
|
|
924
|
+
|
|
925
|
+
## 选择建议
|
|
926
|
+
|
|
927
|
+
| 情况 | 推荐命令 |
|
|
928
|
+
|------|----------|
|
|
929
|
+
| 新功能开发,无特殊测试要求 | workflow:plan |
|
|
930
|
+
| 核心模块,需要高测试覆盖 | workflow:tdd-plan |
|
|
931
|
+
| 快速原型,验证想法 | workflow:plan |
|
|
932
|
+
| 关键业务逻辑 | workflow:tdd-plan |
|
|
933
|
+
`,
|
|
934
|
+
format: "markdown"
|
|
935
|
+
},
|
|
936
|
+
source_files: [
|
|
937
|
+
"~/.claude/skills/command-guide/reference/commands/workflow/plan.md",
|
|
938
|
+
"~/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md"
|
|
939
|
+
]
|
|
940
|
+
}
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
---
|
|
944
|
+
|
|
945
|
+
## Error Handling
|
|
946
|
+
|
|
947
|
+
### Not Found
|
|
948
|
+
```javascript
|
|
949
|
+
if (results.length === 0) {
|
|
950
|
+
return {
|
|
951
|
+
message: 'No commands found matching your query.',
|
|
952
|
+
suggestions: [
|
|
953
|
+
'Try broader keywords',
|
|
954
|
+
'Browse by category: workflow, cli, memory, task',
|
|
955
|
+
'View all commands: essential-commands.json',
|
|
956
|
+
'Need help? Ask: "CCW-help"'
|
|
957
|
+
]
|
|
958
|
+
};
|
|
959
|
+
}
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
### Ambiguous Intent
|
|
963
|
+
```javascript
|
|
964
|
+
if (intent === 'CLARIFY') {
|
|
965
|
+
return await askUserQuestion({
|
|
966
|
+
question: 'What would you like to do?',
|
|
967
|
+
options: [
|
|
968
|
+
'Search for commands',
|
|
969
|
+
'Get recommendations for next steps',
|
|
970
|
+
'View command documentation',
|
|
971
|
+
'Learn how to get started',
|
|
972
|
+
'Report an issue or get help'
|
|
973
|
+
]
|
|
974
|
+
});
|
|
975
|
+
}
|
|
976
|
+
```
|
|
977
|
+
|
|
978
|
+
---
|
|
979
|
+
|
|
980
|
+
## Optimization Strategies
|
|
981
|
+
|
|
982
|
+
### Caching
|
|
983
|
+
```javascript
|
|
984
|
+
// Cache indexes in memory after first load
|
|
985
|
+
const indexCache = new Map();
|
|
986
|
+
|
|
987
|
+
async function readIndex(filename) {
|
|
988
|
+
if (indexCache.has(filename)) {
|
|
989
|
+
return indexCache.get(filename);
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
const data = await readFile(`index/${filename}`);
|
|
993
|
+
const parsed = JSON.parse(data);
|
|
994
|
+
indexCache.set(filename, parsed);
|
|
995
|
+
return parsed;
|
|
996
|
+
}
|
|
997
|
+
```
|
|
998
|
+
|
|
999
|
+
### Lazy Loading
|
|
1000
|
+
```javascript
|
|
1001
|
+
// Only load full command files when needed
|
|
1002
|
+
// Use index metadata for most queries
|
|
1003
|
+
// Read command file only for Mode 3 (Documentation)
|
|
1004
|
+
```
|
|
1005
|
+
|
|
1006
|
+
---
|
|
1007
|
+
|
|
1008
|
+
**Last Updated**: 2025-11-06
|
|
1009
|
+
|
|
1010
|
+
**Version**: 1.3.0 - Added Mode 6: Deep Command Analysis with reference documentation backup and CLI-assisted complex queries
|