claude-code-workflow 6.0.0
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/agents/action-planning-agent.md +778 -0
- package/.claude/agents/cli-execution-agent.md +270 -0
- package/.claude/agents/cli-explore-agent.md +182 -0
- package/.claude/agents/cli-lite-planning-agent.md +396 -0
- package/.claude/agents/cli-planning-agent.md +558 -0
- package/.claude/agents/code-developer.md +310 -0
- package/.claude/agents/conceptual-planning-agent.md +308 -0
- package/.claude/agents/context-search-agent.md +582 -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 +399 -0
- package/.claude/agents/test-fix-agent.md +343 -0
- package/.claude/agents/ui-design-agent.md +593 -0
- package/.claude/agents/universal-executor.md +131 -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/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.md +477 -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 +585 -0
- package/.claude/commands/workflow/brainstorm/artifacts.md +452 -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 +387 -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/execute.md +460 -0
- package/.claude/commands/workflow/init.md +164 -0
- package/.claude/commands/workflow/lite-execute.md +686 -0
- package/.claude/commands/workflow/lite-fix.md +621 -0
- package/.claude/commands/workflow/lite-plan.md +592 -0
- package/.claude/commands/workflow/plan.md +551 -0
- package/.claude/commands/workflow/replan.md +515 -0
- package/.claude/commands/workflow/review-fix.md +646 -0
- package/.claude/commands/workflow/review-module-cycle.md +795 -0
- package/.claude/commands/workflow/review-session-cycle.md +805 -0
- package/.claude/commands/workflow/review.md +291 -0
- package/.claude/commands/workflow/session/complete.md +500 -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/status.md +352 -0
- package/.claude/commands/workflow/tdd-plan.md +460 -0
- package/.claude/commands/workflow/tdd-verify.md +386 -0
- package/.claude/commands/workflow/test-cycle-execute.md +498 -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 +680 -0
- package/.claude/commands/workflow/tools/context-gather.md +434 -0
- package/.claude/commands/workflow/tools/task-generate-agent.md +291 -0
- package/.claude/commands/workflow/tools/task-generate-tdd.md +518 -0
- package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/commands/workflow/tools/test-concept-enhanced.md +163 -0
- package/.claude/commands/workflow/tools/test-context-gather.md +235 -0
- package/.claude/commands/workflow/tools/test-task-generate.md +256 -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 +537 -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/scripts/classify-folders.sh +35 -0
- package/.claude/scripts/convert_tokens_to_css.sh +225 -0
- package/.claude/scripts/detect_changed_modules.sh +157 -0
- package/.claude/scripts/discover-design-files.sh +83 -0
- package/.claude/scripts/extract-animations.js +243 -0
- package/.claude/scripts/extract-computed-styles.js +118 -0
- package/.claude/scripts/extract-layout-structure.js +411 -0
- package/.claude/scripts/generate_module_docs.sh +713 -0
- package/.claude/scripts/get_modules_by_depth.sh +166 -0
- package/.claude/scripts/ui-generate-preview.sh +391 -0
- package/.claude/scripts/ui-instantiate-prototypes.sh +811 -0
- package/.claude/scripts/update_module_claude.sh +333 -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 +783 -0
- package/.claude/skills/command-guide/index/by-category.json +811 -0
- package/.claude/skills/command-guide/index/by-use-case.json +797 -0
- package/.claude/skills/command-guide/index/command-relationships.json +307 -0
- package/.claude/skills/command-guide/index/essential-commands.json +123 -0
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +722 -0
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +270 -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 +396 -0
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +558 -0
- package/.claude/skills/command-guide/reference/agents/code-developer.md +310 -0
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +328 -0
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +577 -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 +399 -0
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +343 -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 +610 -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 +477 -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 +604 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +466 -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 +496 -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 +460 -0
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +634 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +602 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +582 -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 +646 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +795 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +805 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +291 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +500 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +96 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +61 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +180 -0
- package/.claude/skills/command-guide/reference/commands/workflow/status.md +352 -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 +386 -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 +680 -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 +151 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +518 -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/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/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 +98 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +98 -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/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 +273 -0
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +219 -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/context-search-strategy.md +77 -0
- package/.claude/workflows/intelligent-tools-strategy.md +662 -0
- package/.claude/workflows/review-directory-specification.md +336 -0
- package/.claude/workflows/task-core.md +214 -0
- package/.claude/workflows/tool-strategy.md +71 -0
- package/.claude/workflows/workflow-architecture.md +942 -0
- package/.codex/AGENTS.md +330 -0
- package/.gemini/GEMINI.md +164 -0
- package/.qwen/QWEN.md +164 -0
- package/CLAUDE.md +91 -0
- package/LICENSE +21 -0
- package/README.md +219 -0
- package/ccw/README.md +121 -0
- package/ccw/bin/ccw.js +10 -0
- package/ccw/src/cli.js +100 -0
- package/ccw/src/commands/install.js +324 -0
- package/ccw/src/commands/list.js +37 -0
- package/ccw/src/commands/serve.js +67 -0
- package/ccw/src/commands/uninstall.js +238 -0
- package/ccw/src/commands/upgrade.js +307 -0
- package/ccw/src/commands/view.js +14 -0
- package/ccw/src/core/dashboard-generator-patch.js +29 -0
- package/ccw/src/core/dashboard-generator.js +667 -0
- package/ccw/src/core/data-aggregator.js +409 -0
- package/ccw/src/core/lite-scanner.js +290 -0
- package/ccw/src/core/manifest.js +201 -0
- package/ccw/src/core/server.js +1327 -0
- package/ccw/src/core/server.js.bak +385 -0
- package/ccw/src/core/server_original.bak +385 -0
- package/ccw/src/core/session-scanner.js +235 -0
- package/ccw/src/index.js +9 -0
- package/ccw/src/templates/dashboard-js/api.js +200 -0
- package/ccw/src/templates/dashboard-js/components/_conflict_tab.js +112 -0
- package/ccw/src/templates/dashboard-js/components/_exp_helpers.js +54 -0
- package/ccw/src/templates/dashboard-js/components/_review_tab.js +640 -0
- package/ccw/src/templates/dashboard-js/components/carousel.js +398 -0
- package/ccw/src/templates/dashboard-js/components/flowchart.js +493 -0
- package/ccw/src/templates/dashboard-js/components/hook-manager.js +273 -0
- package/ccw/src/templates/dashboard-js/components/mcp-manager.js +506 -0
- package/ccw/src/templates/dashboard-js/components/modals.js +260 -0
- package/ccw/src/templates/dashboard-js/components/navigation.js +239 -0
- package/ccw/src/templates/dashboard-js/components/notifications.js +194 -0
- package/ccw/src/templates/dashboard-js/components/sidebar.js +31 -0
- package/ccw/src/templates/dashboard-js/components/tabs-context.js +1093 -0
- package/ccw/src/templates/dashboard-js/components/tabs-other.js +273 -0
- package/ccw/src/templates/dashboard-js/components/task-drawer-core.js +477 -0
- package/ccw/src/templates/dashboard-js/components/task-drawer-renderers.js +447 -0
- package/ccw/src/templates/dashboard-js/components/theme.js +21 -0
- package/ccw/src/templates/dashboard-js/main.js +57 -0
- package/ccw/src/templates/dashboard-js/state.js +37 -0
- package/ccw/src/templates/dashboard-js/utils.js +153 -0
- package/ccw/src/templates/dashboard-js/views/fix-session.js +180 -0
- package/ccw/src/templates/dashboard-js/views/home.js +193 -0
- package/ccw/src/templates/dashboard-js/views/hook-manager.js +387 -0
- package/ccw/src/templates/dashboard-js/views/lite-tasks.js +390 -0
- package/ccw/src/templates/dashboard-js/views/mcp-manager.js +271 -0
- package/ccw/src/templates/dashboard-js/views/project-overview.js +246 -0
- package/ccw/src/templates/dashboard-js/views/review-session.js +711 -0
- package/ccw/src/templates/dashboard-js/views/session-detail.js +770 -0
- package/ccw/src/templates/dashboard.css +7660 -0
- package/ccw/src/templates/dashboard.html +630 -0
- package/ccw/src/templates/dashboard_tailwind.html +42 -0
- package/ccw/src/templates/dashboard_test.html +37 -0
- package/ccw/src/templates/review-cycle-dashboard.html +1930 -0
- package/ccw/src/templates/tailwind-base.css +212 -0
- package/ccw/src/templates/workflow-dashboard.html +401 -0
- package/ccw/src/utils/browser-launcher.js +49 -0
- package/ccw/src/utils/file-utils.js +48 -0
- package/ccw/src/utils/path-resolver.js +279 -0
- package/ccw/src/utils/ui.js +148 -0
- package/package.json +66 -0
|
@@ -0,0 +1,686 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lite-execute
|
|
3
|
+
description: Execute tasks based on in-memory plan, prompt description, or file content
|
|
4
|
+
argument-hint: "[--in-memory] [\"task description\"|file-path]"
|
|
5
|
+
allowed-tools: TodoWrite(*), Task(*), Bash(*)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Workflow Lite-Execute Command (/workflow:lite-execute)
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Flexible task execution command supporting three input modes: in-memory plan (from lite-plan), direct prompt description, or file content. Handles execution orchestration, progress tracking, and optional code review.
|
|
13
|
+
|
|
14
|
+
**Core capabilities:**
|
|
15
|
+
- Multi-mode input (in-memory plan, prompt description, or file path)
|
|
16
|
+
- Execution orchestration (Agent or Codex) with full context
|
|
17
|
+
- Live progress tracking via TodoWrite at execution call level
|
|
18
|
+
- Optional code review with selected tool (Gemini, Agent, or custom)
|
|
19
|
+
- Context continuity across multiple executions
|
|
20
|
+
- Intelligent format detection (Enhanced Task JSON vs plain text)
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
### Command Syntax
|
|
25
|
+
```bash
|
|
26
|
+
/workflow:lite-execute [FLAGS] <INPUT>
|
|
27
|
+
|
|
28
|
+
# Flags
|
|
29
|
+
--in-memory Use plan from memory (called by lite-plan)
|
|
30
|
+
|
|
31
|
+
# Arguments
|
|
32
|
+
<input> Task description string, or path to file (required)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Input Modes
|
|
36
|
+
|
|
37
|
+
### Mode 1: In-Memory Plan
|
|
38
|
+
|
|
39
|
+
**Trigger**: Called by lite-plan after Phase 4 approval with `--in-memory` flag
|
|
40
|
+
|
|
41
|
+
**Input Source**: `executionContext` global variable set by lite-plan
|
|
42
|
+
|
|
43
|
+
**Content**: Complete execution context (see Data Structures section)
|
|
44
|
+
|
|
45
|
+
**Behavior**:
|
|
46
|
+
- Skip execution method selection (already set by lite-plan)
|
|
47
|
+
- Directly proceed to execution with full context
|
|
48
|
+
- All planning artifacts available (exploration, clarifications, plan)
|
|
49
|
+
|
|
50
|
+
### Mode 2: Prompt Description
|
|
51
|
+
|
|
52
|
+
**Trigger**: User calls with task description string
|
|
53
|
+
|
|
54
|
+
**Input**: Simple task description (e.g., "Add unit tests for auth module")
|
|
55
|
+
|
|
56
|
+
**Behavior**:
|
|
57
|
+
- Store prompt as `originalUserInput`
|
|
58
|
+
- Create simple execution plan from prompt
|
|
59
|
+
- AskUserQuestion: Select execution method (Agent/Codex/Auto)
|
|
60
|
+
- AskUserQuestion: Select code review tool (Skip/Gemini/Agent/Other)
|
|
61
|
+
- Proceed to execution with `originalUserInput` included
|
|
62
|
+
|
|
63
|
+
**User Interaction**:
|
|
64
|
+
```javascript
|
|
65
|
+
AskUserQuestion({
|
|
66
|
+
questions: [
|
|
67
|
+
{
|
|
68
|
+
question: "Select execution method:",
|
|
69
|
+
header: "Execution",
|
|
70
|
+
multiSelect: false,
|
|
71
|
+
options: [
|
|
72
|
+
{ label: "Agent", description: "@code-developer agent" },
|
|
73
|
+
{ label: "Codex", description: "codex CLI tool" },
|
|
74
|
+
{ label: "Auto", description: "Auto-select based on complexity" }
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
question: "Enable code review after execution?",
|
|
79
|
+
header: "Code Review",
|
|
80
|
+
multiSelect: false,
|
|
81
|
+
options: [
|
|
82
|
+
{ label: "Skip", description: "No review" },
|
|
83
|
+
{ label: "Gemini Review", description: "Gemini CLI tool" },
|
|
84
|
+
{ label: "Agent Review", description: "Current agent review" }
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
})
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Mode 3: File Content
|
|
92
|
+
|
|
93
|
+
**Trigger**: User calls with file path
|
|
94
|
+
|
|
95
|
+
**Input**: Path to file containing task description or plan.json
|
|
96
|
+
|
|
97
|
+
**Step 1: Read and Detect Format**
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
fileContent = Read(filePath)
|
|
101
|
+
|
|
102
|
+
// Attempt JSON parsing
|
|
103
|
+
try {
|
|
104
|
+
jsonData = JSON.parse(fileContent)
|
|
105
|
+
|
|
106
|
+
// Check if plan.json from lite-plan session
|
|
107
|
+
if (jsonData.summary && jsonData.approach && jsonData.tasks) {
|
|
108
|
+
planObject = jsonData
|
|
109
|
+
originalUserInput = jsonData.summary
|
|
110
|
+
isPlanJson = true
|
|
111
|
+
} else {
|
|
112
|
+
// Valid JSON but not plan.json - treat as plain text
|
|
113
|
+
originalUserInput = fileContent
|
|
114
|
+
isPlanJson = false
|
|
115
|
+
}
|
|
116
|
+
} catch {
|
|
117
|
+
// Not valid JSON - treat as plain text prompt
|
|
118
|
+
originalUserInput = fileContent
|
|
119
|
+
isPlanJson = false
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Step 2: Create Execution Plan**
|
|
124
|
+
|
|
125
|
+
If `isPlanJson === true`:
|
|
126
|
+
- Use `planObject` directly
|
|
127
|
+
- User selects execution method and code review
|
|
128
|
+
|
|
129
|
+
If `isPlanJson === false`:
|
|
130
|
+
- Treat file content as prompt (same behavior as Mode 2)
|
|
131
|
+
- Create simple execution plan from content
|
|
132
|
+
|
|
133
|
+
**Step 3: User Interaction**
|
|
134
|
+
|
|
135
|
+
- AskUserQuestion: Select execution method (Agent/Codex/Auto)
|
|
136
|
+
- AskUserQuestion: Select code review tool
|
|
137
|
+
- Proceed to execution with full context
|
|
138
|
+
|
|
139
|
+
## Execution Process
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Input Parsing:
|
|
143
|
+
└─ Decision (mode detection):
|
|
144
|
+
├─ --in-memory flag → Mode 1: Load executionContext → Skip user selection
|
|
145
|
+
├─ Ends with .md/.json/.txt → Mode 3: Read file → Detect format
|
|
146
|
+
│ ├─ Valid plan.json → Use planObject → User selects method + review
|
|
147
|
+
│ └─ Not plan.json → Treat as prompt → User selects method + review
|
|
148
|
+
└─ Other → Mode 2: Prompt description → User selects method + review
|
|
149
|
+
|
|
150
|
+
Execution:
|
|
151
|
+
├─ Step 1: Initialize result tracking (previousExecutionResults = [])
|
|
152
|
+
├─ Step 2: Task grouping & batch creation
|
|
153
|
+
│ ├─ Extract explicit depends_on (no file/keyword inference)
|
|
154
|
+
│ ├─ Group: independent tasks → single parallel batch (maximize utilization)
|
|
155
|
+
│ ├─ Group: dependent tasks → sequential phases (respect dependencies)
|
|
156
|
+
│ └─ Create TodoWrite list for batches
|
|
157
|
+
├─ Step 3: Launch execution
|
|
158
|
+
│ ├─ Phase 1: All independent tasks (⚡ single batch, concurrent)
|
|
159
|
+
│ └─ Phase 2+: Dependent tasks by dependency order
|
|
160
|
+
├─ Step 4: Track progress (TodoWrite updates per batch)
|
|
161
|
+
└─ Step 5: Code review (if codeReviewTool ≠ "Skip")
|
|
162
|
+
|
|
163
|
+
Output:
|
|
164
|
+
└─ Execution complete with results in previousExecutionResults[]
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Detailed Execution Steps
|
|
168
|
+
|
|
169
|
+
### Step 1: Initialize Execution Tracking
|
|
170
|
+
|
|
171
|
+
**Operations**:
|
|
172
|
+
- Initialize result tracking for multi-execution scenarios
|
|
173
|
+
- Set up `previousExecutionResults` array for context continuity
|
|
174
|
+
|
|
175
|
+
```javascript
|
|
176
|
+
// Initialize result tracking
|
|
177
|
+
previousExecutionResults = []
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Step 2: Task Grouping & Batch Creation
|
|
181
|
+
|
|
182
|
+
**Dependency Analysis & Grouping Algorithm**:
|
|
183
|
+
```javascript
|
|
184
|
+
// Use explicit depends_on from plan.json (no inference from file/keywords)
|
|
185
|
+
function extractDependencies(tasks) {
|
|
186
|
+
const taskIdToIndex = {}
|
|
187
|
+
tasks.forEach((t, i) => { taskIdToIndex[t.id] = i })
|
|
188
|
+
|
|
189
|
+
return tasks.map((task, i) => {
|
|
190
|
+
// Only use explicit depends_on from plan.json
|
|
191
|
+
const deps = (task.depends_on || [])
|
|
192
|
+
.map(depId => taskIdToIndex[depId])
|
|
193
|
+
.filter(idx => idx !== undefined && idx < i)
|
|
194
|
+
return { ...task, taskIndex: i, dependencies: deps }
|
|
195
|
+
})
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Group into batches: maximize parallel execution
|
|
199
|
+
function createExecutionCalls(tasks, executionMethod) {
|
|
200
|
+
const tasksWithDeps = extractDependencies(tasks)
|
|
201
|
+
const processed = new Set()
|
|
202
|
+
const calls = []
|
|
203
|
+
|
|
204
|
+
// Phase 1: All independent tasks → single parallel batch (maximize utilization)
|
|
205
|
+
const independentTasks = tasksWithDeps.filter(t => t.dependencies.length === 0)
|
|
206
|
+
if (independentTasks.length > 0) {
|
|
207
|
+
independentTasks.forEach(t => processed.add(t.taskIndex))
|
|
208
|
+
calls.push({
|
|
209
|
+
method: executionMethod,
|
|
210
|
+
executionType: "parallel",
|
|
211
|
+
groupId: "P1",
|
|
212
|
+
taskSummary: independentTasks.map(t => t.title).join(' | '),
|
|
213
|
+
tasks: independentTasks
|
|
214
|
+
})
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Phase 2: Dependent tasks → sequential batches (respect dependencies)
|
|
218
|
+
let sequentialIndex = 1
|
|
219
|
+
let remaining = tasksWithDeps.filter(t => !processed.has(t.taskIndex))
|
|
220
|
+
|
|
221
|
+
while (remaining.length > 0) {
|
|
222
|
+
// Find tasks whose dependencies are all satisfied
|
|
223
|
+
const ready = remaining.filter(t =>
|
|
224
|
+
t.dependencies.every(d => processed.has(d))
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
if (ready.length === 0) {
|
|
228
|
+
console.warn('Circular dependency detected, forcing remaining tasks')
|
|
229
|
+
ready.push(...remaining)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Group ready tasks (can run in parallel within this phase)
|
|
233
|
+
ready.forEach(t => processed.add(t.taskIndex))
|
|
234
|
+
calls.push({
|
|
235
|
+
method: executionMethod,
|
|
236
|
+
executionType: ready.length > 1 ? "parallel" : "sequential",
|
|
237
|
+
groupId: ready.length > 1 ? `P${calls.length + 1}` : `S${sequentialIndex++}`,
|
|
238
|
+
taskSummary: ready.map(t => t.title).join(ready.length > 1 ? ' | ' : ' → '),
|
|
239
|
+
tasks: ready
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
remaining = remaining.filter(t => !processed.has(t.taskIndex))
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
return calls
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
executionCalls = createExecutionCalls(planObject.tasks, executionMethod).map(c => ({ ...c, id: `[${c.groupId}]` }))
|
|
249
|
+
|
|
250
|
+
TodoWrite({
|
|
251
|
+
todos: executionCalls.map(c => ({
|
|
252
|
+
content: `${c.executionType === "parallel" ? "⚡" : "→"} ${c.id} (${c.tasks.length} tasks)`,
|
|
253
|
+
status: "pending",
|
|
254
|
+
activeForm: `Executing ${c.id}`
|
|
255
|
+
}))
|
|
256
|
+
})
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Step 3: Launch Execution
|
|
260
|
+
|
|
261
|
+
**Execution Flow**: Parallel batches concurrently → Sequential batches in order
|
|
262
|
+
```javascript
|
|
263
|
+
const parallel = executionCalls.filter(c => c.executionType === "parallel")
|
|
264
|
+
const sequential = executionCalls.filter(c => c.executionType === "sequential")
|
|
265
|
+
|
|
266
|
+
// Phase 1: Launch all parallel batches (single message with multiple tool calls)
|
|
267
|
+
if (parallel.length > 0) {
|
|
268
|
+
TodoWrite({ todos: executionCalls.map(c => ({ status: c.executionType === "parallel" ? "in_progress" : "pending" })) })
|
|
269
|
+
parallelResults = await Promise.all(parallel.map(c => executeBatch(c)))
|
|
270
|
+
previousExecutionResults.push(...parallelResults)
|
|
271
|
+
TodoWrite({ todos: executionCalls.map(c => ({ status: parallel.includes(c) ? "completed" : "pending" })) })
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// Phase 2: Execute sequential batches one by one
|
|
275
|
+
for (const call of sequential) {
|
|
276
|
+
TodoWrite({ todos: executionCalls.map(c => ({ status: c === call ? "in_progress" : "..." })) })
|
|
277
|
+
result = await executeBatch(call)
|
|
278
|
+
previousExecutionResults.push(result)
|
|
279
|
+
TodoWrite({ todos: executionCalls.map(c => ({ status: "completed" or "pending" })) })
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Option A: Agent Execution**
|
|
284
|
+
|
|
285
|
+
When to use:
|
|
286
|
+
- `executionMethod = "Agent"`
|
|
287
|
+
- `executionMethod = "Auto" AND complexity = "Low"`
|
|
288
|
+
|
|
289
|
+
**Task Formatting Principle**: Each task is a self-contained checklist. The agent only needs to know what THIS task requires, not its position or relation to other tasks.
|
|
290
|
+
|
|
291
|
+
Agent call format:
|
|
292
|
+
```javascript
|
|
293
|
+
// Format single task as self-contained checklist
|
|
294
|
+
function formatTaskChecklist(task) {
|
|
295
|
+
return `
|
|
296
|
+
## ${task.title}
|
|
297
|
+
|
|
298
|
+
**Target**: \`${task.file}\`
|
|
299
|
+
**Action**: ${task.action}
|
|
300
|
+
|
|
301
|
+
### What to do
|
|
302
|
+
${task.description}
|
|
303
|
+
|
|
304
|
+
### How to do it
|
|
305
|
+
${task.implementation.map(step => `- ${step}`).join('\n')}
|
|
306
|
+
|
|
307
|
+
### Reference
|
|
308
|
+
- Pattern: ${task.reference.pattern}
|
|
309
|
+
- Examples: ${task.reference.files.join(', ')}
|
|
310
|
+
- Notes: ${task.reference.examples}
|
|
311
|
+
|
|
312
|
+
### Done when
|
|
313
|
+
${task.acceptance.map(c => `- [ ] ${c}`).join('\n')}
|
|
314
|
+
`
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// For batch execution: aggregate tasks without numbering
|
|
318
|
+
function formatBatchPrompt(batch) {
|
|
319
|
+
const tasksSection = batch.tasks.map(t => formatTaskChecklist(t)).join('\n---\n')
|
|
320
|
+
|
|
321
|
+
return `
|
|
322
|
+
${originalUserInput ? `## Goal\n${originalUserInput}\n` : ''}
|
|
323
|
+
|
|
324
|
+
## Tasks
|
|
325
|
+
|
|
326
|
+
${tasksSection}
|
|
327
|
+
|
|
328
|
+
${batch.context ? `## Context\n${batch.context}` : ''}
|
|
329
|
+
|
|
330
|
+
Complete each task according to its "Done when" checklist.
|
|
331
|
+
`
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
Task(
|
|
335
|
+
subagent_type="code-developer",
|
|
336
|
+
description=batch.taskSummary,
|
|
337
|
+
prompt=formatBatchPrompt({
|
|
338
|
+
tasks: batch.tasks,
|
|
339
|
+
context: buildRelevantContext(batch.tasks)
|
|
340
|
+
})
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
// Helper: Build relevant context for batch
|
|
344
|
+
// Context serves as REFERENCE ONLY - helps agent understand existing state
|
|
345
|
+
function buildRelevantContext(tasks) {
|
|
346
|
+
const sections = []
|
|
347
|
+
|
|
348
|
+
// 1. Previous work completion - what's already done (reference for continuity)
|
|
349
|
+
if (previousExecutionResults.length > 0) {
|
|
350
|
+
sections.push(`### Previous Work (Reference)
|
|
351
|
+
Use this to understand what's already completed. Avoid duplicating work.
|
|
352
|
+
|
|
353
|
+
${previousExecutionResults.map(r => `**${r.tasksSummary}**
|
|
354
|
+
- Status: ${r.status}
|
|
355
|
+
- Outputs: ${r.keyOutputs || 'See git diff'}
|
|
356
|
+
${r.notes ? `- Notes: ${r.notes}` : ''}`
|
|
357
|
+
).join('\n\n')}`)
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// 2. Related files - files that may need to be read/referenced
|
|
361
|
+
const relatedFiles = extractRelatedFiles(tasks)
|
|
362
|
+
if (relatedFiles.length > 0) {
|
|
363
|
+
sections.push(`### Related Files (Reference)
|
|
364
|
+
These files may contain patterns, types, or utilities relevant to your tasks:
|
|
365
|
+
|
|
366
|
+
${relatedFiles.map(f => `- \`${f}\``).join('\n')}`)
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// 3. Clarifications from user
|
|
370
|
+
if (clarificationContext) {
|
|
371
|
+
sections.push(`### User Clarifications
|
|
372
|
+
${Object.entries(clarificationContext).map(([q, a]) => `- **${q}**: ${a}`).join('\n')}`)
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// 4. Artifact files (for deeper context if needed)
|
|
376
|
+
if (executionContext?.session?.artifacts?.plan) {
|
|
377
|
+
sections.push(`### Artifacts
|
|
378
|
+
For detailed planning context, read: ${executionContext.session.artifacts.plan}`)
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
return sections.join('\n\n')
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
// Extract related files from task references
|
|
385
|
+
function extractRelatedFiles(tasks) {
|
|
386
|
+
const files = new Set()
|
|
387
|
+
tasks.forEach(task => {
|
|
388
|
+
// Add reference example files
|
|
389
|
+
if (task.reference?.files) {
|
|
390
|
+
task.reference.files.forEach(f => files.add(f))
|
|
391
|
+
}
|
|
392
|
+
})
|
|
393
|
+
return [...files]
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**Result Collection**: After completion, collect result following `executionResult` structure (see Data Structures section)
|
|
398
|
+
|
|
399
|
+
**Option B: CLI Execution (Codex)**
|
|
400
|
+
|
|
401
|
+
When to use:
|
|
402
|
+
- `executionMethod = "Codex"`
|
|
403
|
+
- `executionMethod = "Auto" AND complexity = "Medium" or "High"`
|
|
404
|
+
|
|
405
|
+
**Task Formatting Principle**: Same as Agent - each task is a self-contained checklist. No task numbering or position awareness.
|
|
406
|
+
|
|
407
|
+
Command format:
|
|
408
|
+
```bash
|
|
409
|
+
// Format single task as compact checklist for CLI
|
|
410
|
+
function formatTaskForCLI(task) {
|
|
411
|
+
return `
|
|
412
|
+
## ${task.title}
|
|
413
|
+
File: ${task.file}
|
|
414
|
+
Action: ${task.action}
|
|
415
|
+
|
|
416
|
+
What: ${task.description}
|
|
417
|
+
|
|
418
|
+
How:
|
|
419
|
+
${task.implementation.map(step => `- ${step}`).join('\n')}
|
|
420
|
+
|
|
421
|
+
Reference: ${task.reference.pattern} (see ${task.reference.files.join(', ')})
|
|
422
|
+
Notes: ${task.reference.examples}
|
|
423
|
+
|
|
424
|
+
Done when:
|
|
425
|
+
${task.acceptance.map(c => `- [ ] ${c}`).join('\n')}
|
|
426
|
+
`
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
// Build CLI prompt for batch
|
|
430
|
+
// Context provides REFERENCE information - not requirements to fulfill
|
|
431
|
+
function buildCLIPrompt(batch) {
|
|
432
|
+
const tasksSection = batch.tasks.map(t => formatTaskForCLI(t)).join('\n---\n')
|
|
433
|
+
|
|
434
|
+
let prompt = `${originalUserInput ? `## Goal\n${originalUserInput}\n\n` : ''}`
|
|
435
|
+
prompt += `## Tasks\n\n${tasksSection}\n`
|
|
436
|
+
|
|
437
|
+
// Context section - reference information only
|
|
438
|
+
const contextSections = []
|
|
439
|
+
|
|
440
|
+
// 1. Previous work - what's already completed
|
|
441
|
+
if (previousExecutionResults.length > 0) {
|
|
442
|
+
contextSections.push(`### Previous Work (Reference)
|
|
443
|
+
Already completed - avoid duplicating:
|
|
444
|
+
${previousExecutionResults.map(r => `- ${r.tasksSummary}: ${r.status}${r.keyOutputs ? ` (${r.keyOutputs})` : ''}`).join('\n')}`)
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// 2. Related files from task references
|
|
448
|
+
const relatedFiles = [...new Set(batch.tasks.flatMap(t => t.reference?.files || []))]
|
|
449
|
+
if (relatedFiles.length > 0) {
|
|
450
|
+
contextSections.push(`### Related Files (Reference)
|
|
451
|
+
Patterns and examples to follow:
|
|
452
|
+
${relatedFiles.map(f => `- ${f}`).join('\n')}`)
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// 3. User clarifications
|
|
456
|
+
if (clarificationContext) {
|
|
457
|
+
contextSections.push(`### Clarifications
|
|
458
|
+
${Object.entries(clarificationContext).map(([q, a]) => `- ${q}: ${a}`).join('\n')}`)
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
// 4. Plan artifact for deeper context
|
|
462
|
+
if (executionContext?.session?.artifacts?.plan) {
|
|
463
|
+
contextSections.push(`### Artifacts
|
|
464
|
+
Detailed plan: ${executionContext.session.artifacts.plan}`)
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
if (contextSections.length > 0) {
|
|
468
|
+
prompt += `\n## Context\n${contextSections.join('\n\n')}\n`
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
prompt += `\nComplete each task according to its "Done when" checklist.`
|
|
472
|
+
|
|
473
|
+
return prompt
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
codex --full-auto exec "${buildCLIPrompt(batch)}" --skip-git-repo-check -s danger-full-access
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
**Execution with tracking**:
|
|
480
|
+
```javascript
|
|
481
|
+
// Launch CLI in foreground (NOT background)
|
|
482
|
+
// Timeout based on complexity: Low=40min, Medium=60min, High=100min
|
|
483
|
+
const timeoutByComplexity = {
|
|
484
|
+
"Low": 2400000, // 40 minutes
|
|
485
|
+
"Medium": 3600000, // 60 minutes
|
|
486
|
+
"High": 6000000 // 100 minutes
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
bash_result = Bash(
|
|
490
|
+
command=cli_command,
|
|
491
|
+
timeout=timeoutByComplexity[planObject.complexity] || 3600000
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
// Update TodoWrite when execution completes
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
**Result Collection**: After completion, analyze output and collect result following `executionResult` structure
|
|
498
|
+
|
|
499
|
+
### Step 4: Progress Tracking
|
|
500
|
+
|
|
501
|
+
Progress tracked at batch level (not individual task level). Icons: ⚡ (parallel, concurrent), → (sequential, one-by-one)
|
|
502
|
+
|
|
503
|
+
### Step 5: Code Review (Optional)
|
|
504
|
+
|
|
505
|
+
**Skip Condition**: Only run if `codeReviewTool ≠ "Skip"`
|
|
506
|
+
|
|
507
|
+
**Review Focus**: Verify implementation against plan acceptance criteria
|
|
508
|
+
- Read plan.json for task acceptance criteria
|
|
509
|
+
- Check each acceptance criterion is fulfilled
|
|
510
|
+
- Validate code quality and identify issues
|
|
511
|
+
- Ensure alignment with planned approach
|
|
512
|
+
|
|
513
|
+
**Operations**:
|
|
514
|
+
- Agent Review: Current agent performs direct review
|
|
515
|
+
- Gemini Review: Execute gemini CLI with review prompt
|
|
516
|
+
- Custom tool: Execute specified CLI tool (qwen, codex, etc.)
|
|
517
|
+
|
|
518
|
+
**Unified Review Template** (All tools use same standard):
|
|
519
|
+
|
|
520
|
+
**Review Criteria**:
|
|
521
|
+
- **Acceptance Criteria**: Verify each criterion from plan.tasks[].acceptance
|
|
522
|
+
- **Code Quality**: Analyze quality, identify issues, suggest improvements
|
|
523
|
+
- **Plan Alignment**: Validate implementation matches planned approach
|
|
524
|
+
|
|
525
|
+
**Shared Prompt Template** (used by all CLI tools):
|
|
526
|
+
```
|
|
527
|
+
PURPOSE: Code review for implemented changes against plan acceptance criteria
|
|
528
|
+
TASK: • Verify plan acceptance criteria fulfillment • Analyze code quality • Identify issues • Suggest improvements • Validate plan adherence
|
|
529
|
+
MODE: analysis
|
|
530
|
+
CONTEXT: @**/* @{plan.json} [@{exploration.json}] | Memory: Review lite-execute changes against plan requirements
|
|
531
|
+
EXPECTED: Quality assessment with acceptance criteria verification, issue identification, and recommendations. Explicitly check each acceptance criterion from plan.json tasks.
|
|
532
|
+
RULES: $(cat ~/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt) | Focus on plan acceptance criteria and plan adherence | analysis=READ-ONLY
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
**Tool-Specific Execution** (Apply shared prompt template above):
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
# Method 1: Agent Review (current agent)
|
|
539
|
+
# - Read plan.json: ${executionContext.session.artifacts.plan}
|
|
540
|
+
# - Apply unified review criteria (see Shared Prompt Template)
|
|
541
|
+
# - Report findings directly
|
|
542
|
+
|
|
543
|
+
# Method 2: Gemini Review (recommended)
|
|
544
|
+
gemini -p "[Shared Prompt Template with artifacts]"
|
|
545
|
+
# CONTEXT includes: @**/* @${plan.json} [@${exploration.json}]
|
|
546
|
+
|
|
547
|
+
# Method 3: Qwen Review (alternative)
|
|
548
|
+
qwen -p "[Shared Prompt Template with artifacts]"
|
|
549
|
+
# Same prompt as Gemini, different execution engine
|
|
550
|
+
|
|
551
|
+
# Method 4: Codex Review (autonomous)
|
|
552
|
+
codex --full-auto exec "[Verify plan acceptance criteria at ${plan.json}]" --skip-git-repo-check -s danger-full-access
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
**Implementation Note**: Replace `[Shared Prompt Template with artifacts]` placeholder with actual template content, substituting:
|
|
556
|
+
- `@{plan.json}` → `@${executionContext.session.artifacts.plan}`
|
|
557
|
+
- `[@{exploration.json}]` → exploration files from artifacts (if exists)
|
|
558
|
+
|
|
559
|
+
### Step 6: Update Development Index
|
|
560
|
+
|
|
561
|
+
**Trigger**: After all executions complete (regardless of code review)
|
|
562
|
+
|
|
563
|
+
**Skip Condition**: Skip if `.workflow/project.json` does not exist
|
|
564
|
+
|
|
565
|
+
**Operations**:
|
|
566
|
+
```javascript
|
|
567
|
+
const projectJsonPath = '.workflow/project.json'
|
|
568
|
+
if (!fileExists(projectJsonPath)) return // Silent skip
|
|
569
|
+
|
|
570
|
+
const projectJson = JSON.parse(Read(projectJsonPath))
|
|
571
|
+
|
|
572
|
+
// Initialize if needed
|
|
573
|
+
if (!projectJson.development_index) {
|
|
574
|
+
projectJson.development_index = { feature: [], enhancement: [], bugfix: [], refactor: [], docs: [] }
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
// Detect category from keywords
|
|
578
|
+
function detectCategory(text) {
|
|
579
|
+
text = text.toLowerCase()
|
|
580
|
+
if (/\b(fix|bug|error|issue|crash)\b/.test(text)) return 'bugfix'
|
|
581
|
+
if (/\b(refactor|cleanup|reorganize)\b/.test(text)) return 'refactor'
|
|
582
|
+
if (/\b(doc|readme|comment)\b/.test(text)) return 'docs'
|
|
583
|
+
if (/\b(add|new|create|implement)\b/.test(text)) return 'feature'
|
|
584
|
+
return 'enhancement'
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
// Detect sub_feature from task file paths
|
|
588
|
+
function detectSubFeature(tasks) {
|
|
589
|
+
const dirs = tasks.map(t => t.file?.split('/').slice(-2, -1)[0]).filter(Boolean)
|
|
590
|
+
const counts = dirs.reduce((a, d) => { a[d] = (a[d] || 0) + 1; return a }, {})
|
|
591
|
+
return Object.entries(counts).sort((a, b) => b[1] - a[1])[0]?.[0] || 'general'
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
const category = detectCategory(`${planObject.summary} ${planObject.approach}`)
|
|
595
|
+
const entry = {
|
|
596
|
+
title: planObject.summary.slice(0, 60),
|
|
597
|
+
sub_feature: detectSubFeature(planObject.tasks),
|
|
598
|
+
date: new Date().toISOString().split('T')[0],
|
|
599
|
+
description: planObject.approach.slice(0, 100),
|
|
600
|
+
status: previousExecutionResults.every(r => r.status === 'completed') ? 'completed' : 'partial',
|
|
601
|
+
session_id: executionContext?.session?.id || null
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
projectJson.development_index[category].push(entry)
|
|
605
|
+
projectJson.statistics.last_updated = new Date().toISOString()
|
|
606
|
+
Write(projectJsonPath, JSON.stringify(projectJson, null, 2))
|
|
607
|
+
|
|
608
|
+
console.log(`✓ Development index: [${category}] ${entry.title}`)
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
## Best Practices
|
|
612
|
+
|
|
613
|
+
**Input Modes**: In-memory (lite-plan), prompt (standalone), file (JSON/text)
|
|
614
|
+
**Task Grouping**: Based on explicit depends_on only; independent tasks run in single parallel batch
|
|
615
|
+
**Execution**: All independent tasks launch concurrently via single Claude message with multiple tool calls
|
|
616
|
+
|
|
617
|
+
## Error Handling
|
|
618
|
+
|
|
619
|
+
| Error | Cause | Resolution |
|
|
620
|
+
|-------|-------|------------|
|
|
621
|
+
| Missing executionContext | --in-memory without context | Error: "No execution context found. Only available when called by lite-plan." |
|
|
622
|
+
| File not found | File path doesn't exist | Error: "File not found: {path}. Check file path." |
|
|
623
|
+
| Empty file | File exists but no content | Error: "File is empty: {path}. Provide task description." |
|
|
624
|
+
| Invalid Enhanced Task JSON | JSON missing required fields | Warning: "Missing required fields. Treating as plain text." |
|
|
625
|
+
| Malformed JSON | JSON parsing fails | Treat as plain text (expected for non-JSON files) |
|
|
626
|
+
| Execution failure | Agent/Codex crashes | Display error, save partial progress, suggest retry |
|
|
627
|
+
| Codex unavailable | Codex not installed | Show installation instructions, offer Agent execution |
|
|
628
|
+
|
|
629
|
+
## Data Structures
|
|
630
|
+
|
|
631
|
+
### executionContext (Input - Mode 1)
|
|
632
|
+
|
|
633
|
+
Passed from lite-plan via global variable:
|
|
634
|
+
|
|
635
|
+
```javascript
|
|
636
|
+
{
|
|
637
|
+
planObject: {
|
|
638
|
+
summary: string,
|
|
639
|
+
approach: string,
|
|
640
|
+
tasks: [...],
|
|
641
|
+
estimated_time: string,
|
|
642
|
+
recommended_execution: string,
|
|
643
|
+
complexity: string
|
|
644
|
+
},
|
|
645
|
+
explorationsContext: {...} | null, // Multi-angle explorations
|
|
646
|
+
explorationAngles: string[], // List of exploration angles
|
|
647
|
+
explorationManifest: {...} | null, // Exploration manifest
|
|
648
|
+
clarificationContext: {...} | null,
|
|
649
|
+
executionMethod: "Agent" | "Codex" | "Auto",
|
|
650
|
+
codeReviewTool: "Skip" | "Gemini Review" | "Agent Review" | string,
|
|
651
|
+
originalUserInput: string,
|
|
652
|
+
|
|
653
|
+
// Session artifacts location (saved by lite-plan)
|
|
654
|
+
session: {
|
|
655
|
+
id: string, // Session identifier: {taskSlug}-{shortTimestamp}
|
|
656
|
+
folder: string, // Session folder path: .workflow/.lite-plan/{session-id}
|
|
657
|
+
artifacts: {
|
|
658
|
+
explorations: [{angle, path}], // exploration-{angle}.json paths
|
|
659
|
+
explorations_manifest: string, // explorations-manifest.json path
|
|
660
|
+
plan: string // plan.json path (always present)
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
**Artifact Usage**:
|
|
667
|
+
- Artifact files contain detailed planning context
|
|
668
|
+
- Pass artifact paths to CLI tools and agents for enhanced context
|
|
669
|
+
- See execution options below for usage examples
|
|
670
|
+
|
|
671
|
+
### executionResult (Output)
|
|
672
|
+
|
|
673
|
+
Collected after each execution call completes:
|
|
674
|
+
|
|
675
|
+
```javascript
|
|
676
|
+
{
|
|
677
|
+
executionId: string, // e.g., "[Agent-1]", "[Codex-1]"
|
|
678
|
+
status: "completed" | "partial" | "failed",
|
|
679
|
+
tasksSummary: string, // Brief description of tasks handled
|
|
680
|
+
completionSummary: string, // What was completed
|
|
681
|
+
keyOutputs: string, // Files created/modified, key changes
|
|
682
|
+
notes: string // Important context for next execution
|
|
683
|
+
}
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
Appended to `previousExecutionResults` array for context continuity in multi-execution scenarios.
|