claude-code-workflow 6.2.3 → 6.2.5
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/README.md +145 -294
- package/{ccw/dist → dist}/core/routes/codexlens-routes.d.ts.map +1 -1
- package/{ccw/dist → dist}/core/routes/codexlens-routes.js +31 -6
- package/dist/core/routes/codexlens-routes.js.map +1 -0
- package/{ccw/dist → dist}/tools/codex-lens.d.ts +20 -3
- package/dist/tools/codex-lens.d.ts.map +1 -0
- package/{ccw/dist → dist}/tools/codex-lens.js +166 -37
- package/dist/tools/codex-lens.js.map +1 -0
- package/package.json +32 -37
- package/{ccw/src → src}/core/routes/codexlens-routes.ts +34 -6
- package/{ccw/src → src}/templates/dashboard-js/components/mcp-manager.js +7 -12
- package/{ccw/src → src}/templates/dashboard-js/i18n.js +157 -1
- package/{ccw/src → src}/templates/dashboard-js/views/codexlens-manager.js +790 -25
- package/{ccw/src → src}/tools/codex-lens.ts +183 -35
- package/.claude/CLAUDE.md +0 -10
- package/.claude/agents/action-planning-agent.md +0 -857
- package/.claude/agents/cli-execution-agent.md +0 -267
- package/.claude/agents/cli-explore-agent.md +0 -182
- package/.claude/agents/cli-lite-planning-agent.md +0 -446
- package/.claude/agents/cli-planning-agent.md +0 -558
- package/.claude/agents/code-developer.md +0 -311
- package/.claude/agents/conceptual-planning-agent.md +0 -308
- package/.claude/agents/context-search-agent.md +0 -581
- package/.claude/agents/doc-generator.md +0 -330
- package/.claude/agents/memory-bridge.md +0 -94
- package/.claude/agents/test-context-search-agent.md +0 -400
- package/.claude/agents/test-fix-agent.md +0 -344
- package/.claude/agents/ui-design-agent.md +0 -593
- package/.claude/agents/universal-executor.md +0 -131
- package/.claude/commands/clean.md +0 -516
- package/.claude/commands/cli/cli-init.md +0 -440
- package/.claude/commands/enhance-prompt.md +0 -93
- package/.claude/commands/memory/code-map-memory.md +0 -687
- package/.claude/commands/memory/compact.md +0 -383
- package/.claude/commands/memory/docs-full-cli.md +0 -471
- package/.claude/commands/memory/docs-related-cli.md +0 -386
- package/.claude/commands/memory/docs.md +0 -615
- package/.claude/commands/memory/load-skill-memory.md +0 -182
- package/.claude/commands/memory/load.md +0 -240
- package/.claude/commands/memory/skill-memory.md +0 -525
- package/.claude/commands/memory/style-skill-memory.md +0 -396
- package/.claude/commands/memory/tech-research-rules.md +0 -310
- package/.claude/commands/memory/update-full.md +0 -332
- package/.claude/commands/memory/update-related.md +0 -332
- package/.claude/commands/memory/workflow-skill-memory.md +0 -517
- package/.claude/commands/task/breakdown.md +0 -204
- package/.claude/commands/task/create.md +0 -152
- package/.claude/commands/task/execute.md +0 -270
- package/.claude/commands/task/replan.md +0 -437
- package/.claude/commands/version.md +0 -254
- package/.claude/commands/workflow/action-plan-verify.md +0 -447
- package/.claude/commands/workflow/brainstorm/api-designer.md +0 -587
- package/.claude/commands/workflow/brainstorm/artifacts.md +0 -453
- package/.claude/commands/workflow/brainstorm/auto-parallel.md +0 -443
- package/.claude/commands/workflow/brainstorm/data-architect.md +0 -220
- package/.claude/commands/workflow/brainstorm/product-manager.md +0 -200
- package/.claude/commands/workflow/brainstorm/product-owner.md +0 -200
- package/.claude/commands/workflow/brainstorm/scrum-master.md +0 -200
- package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +0 -200
- package/.claude/commands/workflow/brainstorm/synthesis.md +0 -398
- package/.claude/commands/workflow/brainstorm/system-architect.md +0 -389
- package/.claude/commands/workflow/brainstorm/ui-designer.md +0 -221
- package/.claude/commands/workflow/brainstorm/ux-expert.md +0 -221
- package/.claude/commands/workflow/debug.md +0 -321
- package/.claude/commands/workflow/execute.md +0 -475
- package/.claude/commands/workflow/init.md +0 -165
- package/.claude/commands/workflow/lite-execute.md +0 -792
- package/.claude/commands/workflow/lite-fix.md +0 -623
- package/.claude/commands/workflow/lite-plan.md +0 -610
- package/.claude/commands/workflow/plan.md +0 -551
- package/.claude/commands/workflow/replan.md +0 -515
- package/.claude/commands/workflow/review-fix.md +0 -606
- package/.claude/commands/workflow/review-module-cycle.md +0 -767
- package/.claude/commands/workflow/review-session-cycle.md +0 -778
- package/.claude/commands/workflow/review.md +0 -297
- package/.claude/commands/workflow/session/complete.md +0 -153
- package/.claude/commands/workflow/session/list.md +0 -96
- package/.claude/commands/workflow/session/resume.md +0 -61
- package/.claude/commands/workflow/session/start.md +0 -200
- package/.claude/commands/workflow/tdd-plan.md +0 -460
- package/.claude/commands/workflow/tdd-verify.md +0 -400
- package/.claude/commands/workflow/test-cycle-execute.md +0 -500
- package/.claude/commands/workflow/test-fix-gen.md +0 -699
- package/.claude/commands/workflow/test-gen.md +0 -529
- package/.claude/commands/workflow/tools/conflict-resolution.md +0 -766
- package/.claude/commands/workflow/tools/context-gather.md +0 -436
- package/.claude/commands/workflow/tools/task-generate-agent.md +0 -490
- package/.claude/commands/workflow/tools/task-generate-tdd.md +0 -526
- package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +0 -309
- package/.claude/commands/workflow/tools/test-concept-enhanced.md +0 -164
- package/.claude/commands/workflow/tools/test-context-gather.md +0 -236
- package/.claude/commands/workflow/tools/test-task-generate.md +0 -257
- package/.claude/commands/workflow/ui-design/animation-extract.md +0 -1150
- package/.claude/commands/workflow/ui-design/codify-style.md +0 -652
- package/.claude/commands/workflow/ui-design/design-sync.md +0 -454
- package/.claude/commands/workflow/ui-design/explore-auto.md +0 -678
- package/.claude/commands/workflow/ui-design/generate.md +0 -504
- package/.claude/commands/workflow/ui-design/imitate-auto.md +0 -745
- package/.claude/commands/workflow/ui-design/import-from-code.md +0 -540
- package/.claude/commands/workflow/ui-design/layout-extract.md +0 -788
- package/.claude/commands/workflow/ui-design/reference-page-generator.md +0 -356
- package/.claude/commands/workflow/ui-design/style-extract.md +0 -773
- package/.claude/skills/command-guide/SKILL.md +0 -388
- package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +0 -592
- package/.claude/skills/command-guide/guides/cli-tools-guide.md +0 -410
- package/.claude/skills/command-guide/guides/examples.md +0 -537
- package/.claude/skills/command-guide/guides/getting-started.md +0 -242
- package/.claude/skills/command-guide/guides/implementation-details.md +0 -1010
- package/.claude/skills/command-guide/guides/index-structure.md +0 -326
- package/.claude/skills/command-guide/guides/troubleshooting.md +0 -92
- package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +0 -316
- package/.claude/skills/command-guide/guides/workflow-patterns.md +0 -662
- package/.claude/skills/command-guide/index/all-commands.json +0 -772
- package/.claude/skills/command-guide/index/by-category.json +0 -800
- package/.claude/skills/command-guide/index/by-use-case.json +0 -786
- package/.claude/skills/command-guide/index/command-relationships.json +0 -307
- package/.claude/skills/command-guide/index/essential-commands.json +0 -112
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +0 -857
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +0 -267
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +0 -182
- package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +0 -446
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +0 -558
- package/.claude/skills/command-guide/reference/agents/code-developer.md +0 -311
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +0 -308
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +0 -581
- package/.claude/skills/command-guide/reference/agents/doc-generator.md +0 -330
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +0 -94
- package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +0 -400
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +0 -344
- package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +0 -593
- package/.claude/skills/command-guide/reference/agents/universal-executor.md +0 -131
- package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +0 -440
- package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +0 -93
- package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +0 -687
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +0 -471
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +0 -386
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +0 -616
- package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +0 -182
- package/.claude/skills/command-guide/reference/commands/memory/load.md +0 -240
- package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +0 -525
- package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +0 -396
- package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +0 -314
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +0 -332
- package/.claude/skills/command-guide/reference/commands/memory/update-related.md +0 -332
- package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +0 -517
- package/.claude/skills/command-guide/reference/commands/task/breakdown.md +0 -204
- package/.claude/skills/command-guide/reference/commands/task/create.md +0 -152
- package/.claude/skills/command-guide/reference/commands/task/execute.md +0 -270
- package/.claude/skills/command-guide/reference/commands/task/replan.md +0 -437
- package/.claude/skills/command-guide/reference/commands/version.md +0 -254
- package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +0 -447
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +0 -585
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +0 -452
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +0 -443
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +0 -220
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +0 -398
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +0 -387
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +0 -221
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +0 -221
- package/.claude/skills/command-guide/reference/commands/workflow/execute.md +0 -465
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +0 -164
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +0 -748
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +0 -664
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +0 -645
- package/.claude/skills/command-guide/reference/commands/workflow/plan.md +0 -551
- package/.claude/skills/command-guide/reference/commands/workflow/replan.md +0 -515
- package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +0 -606
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +0 -765
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +0 -776
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +0 -298
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +0 -547
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +0 -114
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +0 -77
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +0 -257
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +0 -460
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +0 -400
- package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +0 -498
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +0 -699
- package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +0 -529
- package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +0 -766
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +0 -434
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +0 -487
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +0 -525
- package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +0 -309
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +0 -163
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +0 -235
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +0 -256
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +0 -1150
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +0 -652
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +0 -454
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +0 -678
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +0 -504
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +0 -745
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +0 -537
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +0 -788
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +0 -356
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +0 -773
- package/.claude/skills/command-guide/scripts/analyze_commands.py +0 -502
- package/.claude/skills/command-guide/scripts/update-index.sh +0 -130
- package/.claude/skills/command-guide/templates/issue-bug.md +0 -104
- package/.claude/skills/command-guide/templates/issue-diagnosis.md +0 -275
- package/.claude/skills/command-guide/templates/issue-feature.md +0 -97
- package/.claude/skills/command-guide/templates/issue-question.md +0 -141
- package/.claude/skills/prompt-enhancer/SKILL.md +0 -124
- package/.claude/workflows/_template-compare-matrix.html +0 -692
- package/.claude/workflows/chinese-response.md +0 -38
- package/.claude/workflows/cli-templates/fix-plan-template.json +0 -75
- package/.claude/workflows/cli-templates/fix-progress-template.json +0 -48
- package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +0 -299
- package/.claude/workflows/cli-templates/planning-roles/data-architect.md +0 -120
- package/.claude/workflows/cli-templates/planning-roles/product-manager.md +0 -119
- package/.claude/workflows/cli-templates/planning-roles/product-owner.md +0 -261
- package/.claude/workflows/cli-templates/planning-roles/scrum-master.md +0 -186
- package/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md +0 -281
- package/.claude/workflows/cli-templates/planning-roles/synthesis-role.md +0 -414
- package/.claude/workflows/cli-templates/planning-roles/system-architect.md +0 -106
- package/.claude/workflows/cli-templates/planning-roles/test-strategist.md +0 -124
- package/.claude/workflows/cli-templates/planning-roles/ui-designer.md +0 -379
- package/.claude/workflows/cli-templates/planning-roles/ux-expert.md +0 -240
- package/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt +0 -127
- package/.claude/workflows/cli-templates/prompts/analysis/01-trace-code-execution.txt +0 -115
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt +0 -37
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-technical-document.txt +0 -33
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-architecture.txt +0 -29
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt +0 -28
- package/.claude/workflows/cli-templates/prompts/analysis/03-analyze-performance.txt +0 -29
- package/.claude/workflows/cli-templates/prompts/analysis/03-assess-security-risks.txt +0 -29
- package/.claude/workflows/cli-templates/prompts/analysis/03-review-quality-standards.txt +0 -29
- package/.claude/workflows/cli-templates/prompts/development/02-generate-tests.txt +0 -70
- package/.claude/workflows/cli-templates/prompts/development/02-implement-component-ui.txt +0 -55
- package/.claude/workflows/cli-templates/prompts/development/02-implement-feature.txt +0 -58
- package/.claude/workflows/cli-templates/prompts/development/02-refactor-codebase.txt +0 -55
- package/.claude/workflows/cli-templates/prompts/development/03-debug-runtime-issues.txt +0 -55
- package/.claude/workflows/cli-templates/prompts/documentation/api.txt +0 -15
- package/.claude/workflows/cli-templates/prompts/documentation/folder-navigation.txt +0 -27
- package/.claude/workflows/cli-templates/prompts/documentation/module-readme.txt +0 -49
- package/.claude/workflows/cli-templates/prompts/documentation/project-architecture.txt +0 -41
- package/.claude/workflows/cli-templates/prompts/documentation/project-examples.txt +0 -35
- package/.claude/workflows/cli-templates/prompts/documentation/project-readme.txt +0 -35
- package/.claude/workflows/cli-templates/prompts/memory/02-document-module-structure.txt +0 -165
- package/.claude/workflows/cli-templates/prompts/planning/01-plan-architecture-design.txt +0 -109
- package/.claude/workflows/cli-templates/prompts/planning/02-breakdown-task-steps.txt +0 -30
- package/.claude/workflows/cli-templates/prompts/planning/02-design-component-spec.txt +0 -28
- package/.claude/workflows/cli-templates/prompts/planning/03-evaluate-concept-feasibility.txt +0 -127
- package/.claude/workflows/cli-templates/prompts/planning/03-plan-migration-strategy.txt +0 -30
- package/.claude/workflows/cli-templates/prompts/rules/rule-api.txt +0 -122
- package/.claude/workflows/cli-templates/prompts/rules/rule-components.txt +0 -122
- package/.claude/workflows/cli-templates/prompts/rules/rule-config.txt +0 -89
- package/.claude/workflows/cli-templates/prompts/rules/rule-core.txt +0 -60
- package/.claude/workflows/cli-templates/prompts/rules/rule-patterns.txt +0 -70
- package/.claude/workflows/cli-templates/prompts/rules/rule-testing.txt +0 -81
- package/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt +0 -89
- package/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt +0 -359
- package/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt +0 -185
- package/.claude/workflows/cli-templates/prompts/test/test-concept-analysis.txt +0 -179
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-creative-style.txt +0 -95
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-rigorous-style.txt +0 -92
- package/.claude/workflows/cli-templates/prompts/verification/codex-technical.txt +0 -28
- package/.claude/workflows/cli-templates/prompts/verification/cross-validation.txt +0 -28
- package/.claude/workflows/cli-templates/prompts/verification/gemini-strategic.txt +0 -27
- package/.claude/workflows/cli-templates/prompts/workflow/analysis-results-structure.txt +0 -224
- package/.claude/workflows/cli-templates/prompts/workflow/codex-feasibility-validation.txt +0 -176
- package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +0 -131
- package/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt +0 -286
- package/.claude/workflows/cli-templates/prompts/workflow/skill-aggregation.txt +0 -172
- package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +0 -94
- package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +0 -224
- package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +0 -94
- package/.claude/workflows/cli-templates/prompts/workflow/skill-sessions-timeline.txt +0 -53
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-agent-mode.txt +0 -123
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-cli-mode.txt +0 -182
- package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +0 -112
- package/.claude/workflows/cli-templates/protocols/write-protocol.md +0 -201
- package/.claude/workflows/cli-templates/schemas/conflict-resolution-schema.json +0 -137
- package/.claude/workflows/cli-templates/schemas/debug-log-json-schema.json +0 -127
- package/.claude/workflows/cli-templates/schemas/diagnosis-json-schema.json +0 -234
- package/.claude/workflows/cli-templates/schemas/explore-json-schema.json +0 -124
- package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +0 -298
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +0 -244
- package/.claude/workflows/cli-templates/schemas/project-json-schema.json +0 -221
- package/.claude/workflows/cli-templates/schemas/review-deep-dive-results-schema.json +0 -82
- package/.claude/workflows/cli-templates/schemas/review-dimension-results-schema.json +0 -51
- package/.claude/workflows/cli-templates/tech-stacks/go-dev.md +0 -91
- package/.claude/workflows/cli-templates/tech-stacks/java-dev.md +0 -107
- package/.claude/workflows/cli-templates/tech-stacks/javascript-dev.md +0 -58
- package/.claude/workflows/cli-templates/tech-stacks/python-dev.md +0 -79
- package/.claude/workflows/cli-templates/tech-stacks/react-dev.md +0 -103
- package/.claude/workflows/cli-templates/tech-stacks/typescript-dev.md +0 -83
- package/.claude/workflows/cli-templates/ui-design/systems/animation-tokens.json +0 -247
- package/.claude/workflows/cli-templates/ui-design/systems/design-tokens.json +0 -342
- package/.claude/workflows/cli-templates/ui-design/systems/layout-templates.json +0 -145
- package/.claude/workflows/cli-tools-usage.md +0 -526
- package/.claude/workflows/coding-philosophy.md +0 -70
- package/.claude/workflows/context-tools.md +0 -84
- package/.claude/workflows/file-modification.md +0 -64
- package/.claude/workflows/review-directory-specification.md +0 -336
- package/.claude/workflows/task-core.md +0 -214
- package/.claude/workflows/tool-strategy.md +0 -216
- package/.claude/workflows/windows-platform.md +0 -16
- package/.claude/workflows/workflow-architecture.md +0 -942
- package/.codex/AGENTS.md +0 -63
- package/.codex/prompts/debug.md +0 -318
- package/.codex/prompts/execute.md +0 -273
- package/.codex/prompts/lite-execute.md +0 -164
- package/.codex/prompts/lite-plan.md +0 -469
- package/.codex/prompts.zip +0 -0
- package/.gemini/GEMINI.md +0 -25
- package/.qwen/QWEN.md +0 -25
- package/LICENSE +0 -21
- package/ccw/README.md +0 -145
- package/ccw/dist/core/routes/codexlens-routes.js.map +0 -1
- package/ccw/dist/tools/codex-lens.d.ts.map +0 -1
- package/ccw/dist/tools/codex-lens.js.map +0 -1
- package/ccw/package.json +0 -65
- package/codex-lens/pyproject.toml +0 -48
- package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
- package/codex-lens/src/codexlens/__init__.py +0 -28
- package/codex-lens/src/codexlens/__main__.py +0 -14
- 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 +0 -27
- 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 +0 -1931
- package/codex-lens/src/codexlens/cli/embedding_manager.py +0 -620
- package/codex-lens/src/codexlens/cli/model_manager.py +0 -289
- package/codex-lens/src/codexlens/cli/output.py +0 -124
- package/codex-lens/src/codexlens/config.py +0 -201
- package/codex-lens/src/codexlens/entities.py +0 -121
- package/codex-lens/src/codexlens/errors.py +0 -55
- package/codex-lens/src/codexlens/indexing/README.md +0 -77
- package/codex-lens/src/codexlens/indexing/__init__.py +0 -4
- 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 +0 -243
- package/codex-lens/src/codexlens/parsers/__init__.py +0 -8
- 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 +0 -202
- package/codex-lens/src/codexlens/parsers/factory.py +0 -256
- package/codex-lens/src/codexlens/parsers/tokenizer.py +0 -98
- package/codex-lens/src/codexlens/parsers/treesitter_parser.py +0 -335
- package/codex-lens/src/codexlens/search/__init__.py +0 -15
- 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 +0 -647
- package/codex-lens/src/codexlens/search/enrichment.py +0 -150
- package/codex-lens/src/codexlens/search/hybrid_search.py +0 -313
- package/codex-lens/src/codexlens/search/query_parser.py +0 -242
- package/codex-lens/src/codexlens/search/ranking.py +0 -274
- package/codex-lens/src/codexlens/semantic/__init__.py +0 -39
- 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 +0 -414
- package/codex-lens/src/codexlens/semantic/chunker.py +0 -448
- package/codex-lens/src/codexlens/semantic/code_extractor.py +0 -274
- package/codex-lens/src/codexlens/semantic/embedder.py +0 -185
- package/codex-lens/src/codexlens/semantic/vector_store.py +0 -955
- package/codex-lens/src/codexlens/storage/__init__.py +0 -29
- 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 +0 -1850
- package/codex-lens/src/codexlens/storage/file_cache.py +0 -32
- package/codex-lens/src/codexlens/storage/index_tree.py +0 -776
- package/codex-lens/src/codexlens/storage/migration_manager.py +0 -154
- package/codex-lens/src/codexlens/storage/migrations/__init__.py +0 -1
- 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 +0 -123
- package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +0 -48
- package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +0 -232
- package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +0 -196
- package/codex-lens/src/codexlens/storage/path_mapper.py +0 -274
- package/codex-lens/src/codexlens/storage/registry.py +0 -670
- package/codex-lens/src/codexlens/storage/sqlite_store.py +0 -576
- package/codex-lens/src/codexlens/storage/sqlite_utils.py +0 -64
- /package/{ccw/bin → bin}/ccw-mcp.js +0 -0
- /package/{ccw/bin → bin}/ccw.js +0 -0
- /package/{ccw/dist → dist}/cli.d.ts +0 -0
- /package/{ccw/dist → dist}/cli.d.ts.map +0 -0
- /package/{ccw/dist → dist}/cli.js +0 -0
- /package/{ccw/dist → dist}/cli.js.map +0 -0
- /package/{ccw/dist → dist}/commands/cli.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/cli.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/cli.js +0 -0
- /package/{ccw/dist → dist}/commands/cli.js.map +0 -0
- /package/{ccw/dist → dist}/commands/core-memory.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/core-memory.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/core-memory.js +0 -0
- /package/{ccw/dist → dist}/commands/core-memory.js.map +0 -0
- /package/{ccw/dist → dist}/commands/hook.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/hook.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/hook.js +0 -0
- /package/{ccw/dist → dist}/commands/hook.js.map +0 -0
- /package/{ccw/dist → dist}/commands/install.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/install.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/install.js +0 -0
- /package/{ccw/dist → dist}/commands/install.js.map +0 -0
- /package/{ccw/dist → dist}/commands/list.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/list.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/list.js +0 -0
- /package/{ccw/dist → dist}/commands/list.js.map +0 -0
- /package/{ccw/dist → dist}/commands/memory.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/memory.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/memory.js +0 -0
- /package/{ccw/dist → dist}/commands/memory.js.map +0 -0
- /package/{ccw/dist → dist}/commands/serve.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/serve.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/serve.js +0 -0
- /package/{ccw/dist → dist}/commands/serve.js.map +0 -0
- /package/{ccw/dist → dist}/commands/session-path-resolver.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/session-path-resolver.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/session-path-resolver.js +0 -0
- /package/{ccw/dist → dist}/commands/session-path-resolver.js.map +0 -0
- /package/{ccw/dist → dist}/commands/session.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/session.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/session.js +0 -0
- /package/{ccw/dist → dist}/commands/session.js.map +0 -0
- /package/{ccw/dist → dist}/commands/stop.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/stop.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/stop.js +0 -0
- /package/{ccw/dist → dist}/commands/stop.js.map +0 -0
- /package/{ccw/dist → dist}/commands/tool.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/tool.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/tool.js +0 -0
- /package/{ccw/dist → dist}/commands/tool.js.map +0 -0
- /package/{ccw/dist → dist}/commands/uninstall.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/uninstall.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/uninstall.js +0 -0
- /package/{ccw/dist → dist}/commands/uninstall.js.map +0 -0
- /package/{ccw/dist → dist}/commands/upgrade.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/upgrade.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/upgrade.js +0 -0
- /package/{ccw/dist → dist}/commands/upgrade.js.map +0 -0
- /package/{ccw/dist → dist}/commands/view.d.ts +0 -0
- /package/{ccw/dist → dist}/commands/view.d.ts.map +0 -0
- /package/{ccw/dist → dist}/commands/view.js +0 -0
- /package/{ccw/dist → dist}/commands/view.js.map +0 -0
- /package/{ccw/dist → dist}/config/storage-paths.d.ts +0 -0
- /package/{ccw/dist → dist}/config/storage-paths.d.ts.map +0 -0
- /package/{ccw/dist → dist}/config/storage-paths.js +0 -0
- /package/{ccw/dist → dist}/config/storage-paths.js.map +0 -0
- /package/{ccw/dist → dist}/core/cache-manager.d.ts +0 -0
- /package/{ccw/dist → dist}/core/cache-manager.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/cache-manager.js +0 -0
- /package/{ccw/dist → dist}/core/cache-manager.js.map +0 -0
- /package/{ccw/dist → dist}/core/claude-freshness.d.ts +0 -0
- /package/{ccw/dist → dist}/core/claude-freshness.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/claude-freshness.js +0 -0
- /package/{ccw/dist → dist}/core/claude-freshness.js.map +0 -0
- /package/{ccw/dist → dist}/core/core-memory-store.d.ts +0 -0
- /package/{ccw/dist → dist}/core/core-memory-store.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/core-memory-store.js +0 -0
- /package/{ccw/dist → dist}/core/core-memory-store.js.map +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator-patch.d.ts +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator-patch.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator-patch.js +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator-patch.js.map +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator.d.ts +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator.js +0 -0
- /package/{ccw/dist → dist}/core/dashboard-generator.js.map +0 -0
- /package/{ccw/dist → dist}/core/data-aggregator.d.ts +0 -0
- /package/{ccw/dist → dist}/core/data-aggregator.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/data-aggregator.js +0 -0
- /package/{ccw/dist → dist}/core/data-aggregator.js.map +0 -0
- /package/{ccw/dist → dist}/core/history-importer.d.ts +0 -0
- /package/{ccw/dist → dist}/core/history-importer.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/history-importer.js +0 -0
- /package/{ccw/dist → dist}/core/history-importer.js.map +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner-complete.d.ts +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner-complete.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner-complete.js +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner-complete.js.map +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner.d.ts +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner.js +0 -0
- /package/{ccw/dist → dist}/core/lite-scanner.js.map +0 -0
- /package/{ccw/dist → dist}/core/manifest.d.ts +0 -0
- /package/{ccw/dist → dist}/core/manifest.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/manifest.js +0 -0
- /package/{ccw/dist → dist}/core/manifest.js.map +0 -0
- /package/{ccw/dist → dist}/core/memory-embedder-bridge.d.ts +0 -0
- /package/{ccw/dist → dist}/core/memory-embedder-bridge.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/memory-embedder-bridge.js +0 -0
- /package/{ccw/dist → dist}/core/memory-embedder-bridge.js.map +0 -0
- /package/{ccw/dist → dist}/core/memory-store.d.ts +0 -0
- /package/{ccw/dist → dist}/core/memory-store.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/memory-store.js +0 -0
- /package/{ccw/dist → dist}/core/memory-store.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/ccw-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/ccw-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/ccw-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/ccw-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/claude-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/claude-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/claude-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/claude-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/cli-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/cli-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/cli-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/cli-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/codexlens-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/core-memory-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/core-memory-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/core-memory-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/core-memory-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/files-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/files-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/files-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/files-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/graph-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/graph-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/graph-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/graph-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/help-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/help-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/help-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/help-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/hooks-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/hooks-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/hooks-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/hooks-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-templates-db.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-templates-db.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-templates-db.js +0 -0
- /package/{ccw/dist → dist}/core/routes/mcp-templates-db.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/memory-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/memory-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/memory-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/memory-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/rules-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/rules-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/rules-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/rules-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/session-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/session-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/session-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/session-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/skills-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/skills-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/skills-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/skills-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/status-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/status-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/status-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/status-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/routes/system-routes.d.ts +0 -0
- /package/{ccw/dist → dist}/core/routes/system-routes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/routes/system-routes.js +0 -0
- /package/{ccw/dist → dist}/core/routes/system-routes.js.map +0 -0
- /package/{ccw/dist → dist}/core/server.d.ts +0 -0
- /package/{ccw/dist → dist}/core/server.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/server.js +0 -0
- /package/{ccw/dist → dist}/core/server.js.map +0 -0
- /package/{ccw/dist → dist}/core/session-clustering-service.d.ts +0 -0
- /package/{ccw/dist → dist}/core/session-clustering-service.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/session-clustering-service.js +0 -0
- /package/{ccw/dist → dist}/core/session-clustering-service.js.map +0 -0
- /package/{ccw/dist → dist}/core/session-scanner.d.ts +0 -0
- /package/{ccw/dist → dist}/core/session-scanner.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/session-scanner.js +0 -0
- /package/{ccw/dist → dist}/core/session-scanner.js.map +0 -0
- /package/{ccw/dist → dist}/core/websocket.d.ts +0 -0
- /package/{ccw/dist → dist}/core/websocket.d.ts.map +0 -0
- /package/{ccw/dist → dist}/core/websocket.js +0 -0
- /package/{ccw/dist → dist}/core/websocket.js.map +0 -0
- /package/{ccw/dist → dist}/index.d.ts +0 -0
- /package/{ccw/dist → dist}/index.d.ts.map +0 -0
- /package/{ccw/dist → dist}/index.js +0 -0
- /package/{ccw/dist → dist}/index.js.map +0 -0
- /package/{ccw/dist → dist}/mcp-server/index.d.ts +0 -0
- /package/{ccw/dist → dist}/mcp-server/index.d.ts.map +0 -0
- /package/{ccw/dist → dist}/mcp-server/index.js +0 -0
- /package/{ccw/dist → dist}/mcp-server/index.js.map +0 -0
- /package/{ccw/dist → dist}/tools/classify-folders.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/classify-folders.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/classify-folders.js +0 -0
- /package/{ccw/dist → dist}/tools/classify-folders.js.map +0 -0
- /package/{ccw/dist → dist}/tools/cli-config-manager.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/cli-config-manager.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/cli-config-manager.js +0 -0
- /package/{ccw/dist → dist}/tools/cli-config-manager.js.map +0 -0
- /package/{ccw/dist → dist}/tools/cli-executor.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/cli-executor.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/cli-executor.js +0 -0
- /package/{ccw/dist → dist}/tools/cli-executor.js.map +0 -0
- /package/{ccw/dist → dist}/tools/cli-history-store.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/cli-history-store.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/cli-history-store.js +0 -0
- /package/{ccw/dist → dist}/tools/cli-history-store.js.map +0 -0
- /package/{ccw/dist → dist}/tools/convert-tokens-to-css.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/convert-tokens-to-css.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/convert-tokens-to-css.js +0 -0
- /package/{ccw/dist → dist}/tools/convert-tokens-to-css.js.map +0 -0
- /package/{ccw/dist → dist}/tools/core-memory.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/core-memory.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/core-memory.js +0 -0
- /package/{ccw/dist → dist}/tools/core-memory.js.map +0 -0
- /package/{ccw/dist → dist}/tools/detect-changed-modules.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/detect-changed-modules.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/detect-changed-modules.js +0 -0
- /package/{ccw/dist → dist}/tools/detect-changed-modules.js.map +0 -0
- /package/{ccw/dist → dist}/tools/discover-design-files.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/discover-design-files.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/discover-design-files.js +0 -0
- /package/{ccw/dist → dist}/tools/discover-design-files.js.map +0 -0
- /package/{ccw/dist → dist}/tools/edit-file.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/edit-file.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/edit-file.js +0 -0
- /package/{ccw/dist → dist}/tools/edit-file.js.map +0 -0
- /package/{ccw/dist → dist}/tools/generate-module-docs.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/generate-module-docs.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/generate-module-docs.js +0 -0
- /package/{ccw/dist → dist}/tools/generate-module-docs.js.map +0 -0
- /package/{ccw/dist → dist}/tools/get-modules-by-depth.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/get-modules-by-depth.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/get-modules-by-depth.js +0 -0
- /package/{ccw/dist → dist}/tools/get-modules-by-depth.js.map +0 -0
- /package/{ccw/dist → dist}/tools/index.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/index.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/index.js +0 -0
- /package/{ccw/dist → dist}/tools/index.js.map +0 -0
- /package/{ccw/dist → dist}/tools/native-session-discovery.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/native-session-discovery.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/native-session-discovery.js +0 -0
- /package/{ccw/dist → dist}/tools/native-session-discovery.js.map +0 -0
- /package/{ccw/dist → dist}/tools/notifier.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/notifier.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/notifier.js +0 -0
- /package/{ccw/dist → dist}/tools/notifier.js.map +0 -0
- /package/{ccw/dist → dist}/tools/read-file.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/read-file.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/read-file.js +0 -0
- /package/{ccw/dist → dist}/tools/read-file.js.map +0 -0
- /package/{ccw/dist → dist}/tools/resume-strategy.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/resume-strategy.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/resume-strategy.js +0 -0
- /package/{ccw/dist → dist}/tools/resume-strategy.js.map +0 -0
- /package/{ccw/dist → dist}/tools/session-content-parser.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/session-content-parser.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/session-content-parser.js +0 -0
- /package/{ccw/dist → dist}/tools/session-content-parser.js.map +0 -0
- /package/{ccw/dist → dist}/tools/session-manager.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/session-manager.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/session-manager.js +0 -0
- /package/{ccw/dist → dist}/tools/session-manager.js.map +0 -0
- /package/{ccw/dist → dist}/tools/smart-context.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/smart-context.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/smart-context.js +0 -0
- /package/{ccw/dist → dist}/tools/smart-context.js.map +0 -0
- /package/{ccw/dist → dist}/tools/smart-search.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/smart-search.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/smart-search.js +0 -0
- /package/{ccw/dist → dist}/tools/smart-search.js.map +0 -0
- /package/{ccw/dist → dist}/tools/storage-manager.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/storage-manager.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/storage-manager.js +0 -0
- /package/{ccw/dist → dist}/tools/storage-manager.js.map +0 -0
- /package/{ccw/dist → dist}/tools/ui-generate-preview.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/ui-generate-preview.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/ui-generate-preview.js +0 -0
- /package/{ccw/dist → dist}/tools/ui-generate-preview.js.map +0 -0
- /package/{ccw/dist → dist}/tools/ui-instantiate-prototypes.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/ui-instantiate-prototypes.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{ccw/dist → dist}/tools/ui-instantiate-prototypes.js.map +0 -0
- /package/{ccw/dist → dist}/tools/update-module-claude.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/update-module-claude.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/update-module-claude.js +0 -0
- /package/{ccw/dist → dist}/tools/update-module-claude.js.map +0 -0
- /package/{ccw/dist → dist}/tools/write-file.d.ts +0 -0
- /package/{ccw/dist → dist}/tools/write-file.d.ts.map +0 -0
- /package/{ccw/dist → dist}/tools/write-file.js +0 -0
- /package/{ccw/dist → dist}/tools/write-file.js.map +0 -0
- /package/{ccw/dist → dist}/types/config.d.ts +0 -0
- /package/{ccw/dist → dist}/types/config.d.ts.map +0 -0
- /package/{ccw/dist → dist}/types/config.js +0 -0
- /package/{ccw/dist → dist}/types/config.js.map +0 -0
- /package/{ccw/dist → dist}/types/index.d.ts +0 -0
- /package/{ccw/dist → dist}/types/index.d.ts.map +0 -0
- /package/{ccw/dist → dist}/types/index.js +0 -0
- /package/{ccw/dist → dist}/types/index.js.map +0 -0
- /package/{ccw/dist → dist}/types/session.d.ts +0 -0
- /package/{ccw/dist → dist}/types/session.d.ts.map +0 -0
- /package/{ccw/dist → dist}/types/session.js +0 -0
- /package/{ccw/dist → dist}/types/session.js.map +0 -0
- /package/{ccw/dist → dist}/types/tool.d.ts +0 -0
- /package/{ccw/dist → dist}/types/tool.d.ts.map +0 -0
- /package/{ccw/dist → dist}/types/tool.js +0 -0
- /package/{ccw/dist → dist}/types/tool.js.map +0 -0
- /package/{ccw/dist → dist}/utils/browser-launcher.d.ts +0 -0
- /package/{ccw/dist → dist}/utils/browser-launcher.d.ts.map +0 -0
- /package/{ccw/dist → dist}/utils/browser-launcher.js +0 -0
- /package/{ccw/dist → dist}/utils/browser-launcher.js.map +0 -0
- /package/{ccw/dist → dist}/utils/file-utils.d.ts +0 -0
- /package/{ccw/dist → dist}/utils/file-utils.d.ts.map +0 -0
- /package/{ccw/dist → dist}/utils/file-utils.js +0 -0
- /package/{ccw/dist → dist}/utils/file-utils.js.map +0 -0
- /package/{ccw/dist → dist}/utils/path-resolver.d.ts +0 -0
- /package/{ccw/dist → dist}/utils/path-resolver.d.ts.map +0 -0
- /package/{ccw/dist → dist}/utils/path-resolver.js +0 -0
- /package/{ccw/dist → dist}/utils/path-resolver.js.map +0 -0
- /package/{ccw/dist → dist}/utils/path-validator.d.ts +0 -0
- /package/{ccw/dist → dist}/utils/path-validator.d.ts.map +0 -0
- /package/{ccw/dist → dist}/utils/path-validator.js +0 -0
- /package/{ccw/dist → dist}/utils/path-validator.js.map +0 -0
- /package/{ccw/dist → dist}/utils/ui.d.ts +0 -0
- /package/{ccw/dist → dist}/utils/ui.d.ts.map +0 -0
- /package/{ccw/dist → dist}/utils/ui.js +0 -0
- /package/{ccw/dist → dist}/utils/ui.js.map +0 -0
- /package/{ccw/src → src}/.workflow/.cli-history/history.db +0 -0
- /package/{ccw/src → src}/.workflow/.cli-history/history.db-shm +0 -0
- /package/{ccw/src → src}/.workflow/.cli-history/history.db-wal +0 -0
- /package/{ccw/src → src}/cli.ts +0 -0
- /package/{ccw/src → src}/commands/cli.ts +0 -0
- /package/{ccw/src → src}/commands/core-memory.ts +0 -0
- /package/{ccw/src → src}/commands/hook.ts +0 -0
- /package/{ccw/src → src}/commands/install.ts +0 -0
- /package/{ccw/src → src}/commands/list.ts +0 -0
- /package/{ccw/src → src}/commands/memory.ts +0 -0
- /package/{ccw/src → src}/commands/serve.ts +0 -0
- /package/{ccw/src → src}/commands/session-path-resolver.ts +0 -0
- /package/{ccw/src → src}/commands/session.ts +0 -0
- /package/{ccw/src → src}/commands/stop.ts +0 -0
- /package/{ccw/src → src}/commands/tool.ts +0 -0
- /package/{ccw/src → src}/commands/uninstall.ts +0 -0
- /package/{ccw/src → src}/commands/upgrade.ts +0 -0
- /package/{ccw/src → src}/commands/view.ts +0 -0
- /package/{ccw/src → src}/config/storage-paths.ts +0 -0
- /package/{ccw/src → src}/core/cache-manager.ts +0 -0
- /package/{ccw/src → src}/core/claude-freshness.ts +0 -0
- /package/{ccw/src → src}/core/core-memory-store.ts +0 -0
- /package/{ccw/src → src}/core/dashboard-generator-patch.ts +0 -0
- /package/{ccw/src → src}/core/dashboard-generator.ts +0 -0
- /package/{ccw/src → src}/core/data-aggregator.ts +0 -0
- /package/{ccw/src → src}/core/history-importer.ts +0 -0
- /package/{ccw/src → src}/core/lite-scanner-complete.ts +0 -0
- /package/{ccw/src → src}/core/lite-scanner.ts +0 -0
- /package/{ccw/src → src}/core/manifest.ts +0 -0
- /package/{ccw/src → src}/core/memory-embedder-bridge.ts +0 -0
- /package/{ccw/src → src}/core/memory-store.ts +0 -0
- /package/{ccw/src → src}/core/routes/ccw-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/claude-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/cli-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/core-memory-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/files-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/graph-routes.md +0 -0
- /package/{ccw/src → src}/core/routes/graph-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/help-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/hooks-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/mcp-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/mcp-routes.ts.backup +0 -0
- /package/{ccw/src → src}/core/routes/mcp-templates-db.ts +0 -0
- /package/{ccw/src → src}/core/routes/memory-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/rules-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/session-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/skills-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/status-routes.ts +0 -0
- /package/{ccw/src → src}/core/routes/system-routes.ts +0 -0
- /package/{ccw/src → src}/core/server.ts +0 -0
- /package/{ccw/src → src}/core/session-clustering-service.ts +0 -0
- /package/{ccw/src → src}/core/session-scanner.ts +0 -0
- /package/{ccw/src → src}/core/websocket.ts +0 -0
- /package/{ccw/src → src}/index.ts +0 -0
- /package/{ccw/src → src}/mcp-server/index.ts +0 -0
- /package/{ccw/src → src}/templates/assets/css/github-dark.min.css +0 -0
- /package/{ccw/src → src}/templates/assets/css/github.min.css +0 -0
- /package/{ccw/src → src}/templates/assets/js/cytoscape.min.js +0 -0
- /package/{ccw/src → src}/templates/assets/js/d3.min.js +0 -0
- /package/{ccw/src → src}/templates/assets/js/highlight.min.js +0 -0
- /package/{ccw/src → src}/templates/assets/js/lucide.min.js +0 -0
- /package/{ccw/src → src}/templates/assets/js/marked.min.js +0 -0
- /package/{ccw/src → src}/templates/assets/js/tailwind.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/01-base.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/02-session.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/03-tasks.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/04-lite-tasks.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/05-context.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/06-cards.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/07-managers.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/08-review.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/09-explorer.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/10-cli-status.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/11-cli-history.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/12-cli-legacy.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/13-cli-ccw.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/14-cli-modals.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/15-cli-endpoints.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/16-cli-session.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/17-cli-conversation.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/18-cli-settings.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/19-cli-native-session.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/20-cli-taskqueue.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/21-cli-toolmgmt.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/22-cli-semantic.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/23-memory.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/24-prompt-history.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/25-skills-rules.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/26-claude-manager.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/27-graph-explorer.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/28-mcp-manager.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/29-help.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-css/30-core-memory.css +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/api.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/_conflict_tab.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/_exp_helpers.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/_review_tab.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/carousel.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/cli-history.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/cli-status.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/flowchart.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/global-notifications.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/hook-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/index-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/modals.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/navigation.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/notifications.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/sidebar.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/storage-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/tabs-context.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/tabs-other.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/task-drawer-core.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/task-drawer-renderers.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/task-queue-sidebar.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/theme.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/components/version-check.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/help-i18n.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/main.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/state.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/utils.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/claude-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/cli-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/core-memory-clusters.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/core-memory.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/explorer.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/fix-session.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/graph-explorer.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/help.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/history.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/home.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/hook-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/lite-tasks.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/mcp-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/mcp-manager.js.backup +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/mcp-manager.js.new +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/memory.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/project-overview.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/prompt-history.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/review-session.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/rules-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/session-detail.js +0 -0
- /package/{ccw/src → src}/templates/dashboard-js/views/skills-manager.js +0 -0
- /package/{ccw/src → src}/templates/dashboard.html +0 -0
- /package/{ccw/src → src}/templates/hooks-config-example.json +0 -0
- /package/{ccw/src → src}/templates/review-cycle-dashboard.html +0 -0
- /package/{ccw/src → src}/templates/workflow-dashboard.html +0 -0
- /package/{ccw/src → src}/tools/classify-folders.ts +0 -0
- /package/{ccw/src → src}/tools/cli-config-manager.ts +0 -0
- /package/{ccw/src → src}/tools/cli-executor.ts +0 -0
- /package/{ccw/src → src}/tools/cli-history-store.ts +0 -0
- /package/{ccw/src → src}/tools/convert-tokens-to-css.ts +0 -0
- /package/{ccw/src → src}/tools/core-memory.ts +0 -0
- /package/{ccw/src → src}/tools/detect-changed-modules.ts +0 -0
- /package/{ccw/src → src}/tools/discover-design-files.ts +0 -0
- /package/{ccw/src → src}/tools/edit-file.ts +0 -0
- /package/{ccw/src → src}/tools/generate-module-docs.ts +0 -0
- /package/{ccw/src → src}/tools/get-modules-by-depth.ts +0 -0
- /package/{ccw/src → src}/tools/index.ts +0 -0
- /package/{ccw/src → src}/tools/native-session-discovery.ts +0 -0
- /package/{ccw/src → src}/tools/notifier.ts +0 -0
- /package/{ccw/src → src}/tools/read-file.ts +0 -0
- /package/{ccw/src → src}/tools/resume-strategy.ts +0 -0
- /package/{ccw/src → src}/tools/session-content-parser.ts +0 -0
- /package/{ccw/src → src}/tools/session-manager.ts +0 -0
- /package/{ccw/src → src}/tools/smart-context.ts +0 -0
- /package/{ccw/src → src}/tools/smart-search.ts +0 -0
- /package/{ccw/src → src}/tools/smart-search.ts.backup +0 -0
- /package/{ccw/src → src}/tools/storage-manager.ts +0 -0
- /package/{ccw/src → src}/tools/ui-generate-preview.js +0 -0
- /package/{ccw/src → src}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{ccw/src → src}/tools/update-module-claude.js +0 -0
- /package/{ccw/src → src}/tools/write-file.ts +0 -0
- /package/{ccw/src → src}/types/config.ts +0 -0
- /package/{ccw/src → src}/types/index.ts +0 -0
- /package/{ccw/src → src}/types/session.ts +0 -0
- /package/{ccw/src → src}/types/tool.ts +0 -0
- /package/{ccw/src → src}/utils/browser-launcher.ts +0 -0
- /package/{ccw/src → src}/utils/file-utils.ts +0 -0
- /package/{ccw/src → src}/utils/path-resolver.ts +0 -0
- /package/{ccw/src → src}/utils/path-validator.ts +0 -0
- /package/{ccw/src → src}/utils/ui.ts +0 -0
|
@@ -1,678 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: explore-auto
|
|
3
|
-
description: Interactive exploratory UI design workflow with style-centric batch generation, creates design variants from prompts/images with parallel execution and user selection
|
|
4
|
-
argument-hint: "[--input "<value>"] [--targets "<list>"] [--target-type "page|component"] [--session <id>] [--style-variants <count>] [--layout-variants <count>]"
|
|
5
|
-
allowed-tools: SlashCommand(*), TodoWrite(*), Read(*), Bash(*), Glob(*), Write(*), Task(conceptual-planning-agent)
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# UI Design Auto Workflow Command
|
|
9
|
-
|
|
10
|
-
## Overview & Execution Model
|
|
11
|
-
|
|
12
|
-
**Fully autonomous orchestrator**: Executes all design phases sequentially from style extraction to design integration, with optional batch planning.
|
|
13
|
-
|
|
14
|
-
**Unified Target System**: Generates `style_variants × layout_variants × targets` prototypes, where targets can be:
|
|
15
|
-
- **Pages** (full-page layouts): home, dashboard, settings, etc.
|
|
16
|
-
- **Components** (isolated UI elements): navbar, card, hero, form, etc.
|
|
17
|
-
- **Mixed**: Can combine both in a single workflow
|
|
18
|
-
|
|
19
|
-
**Autonomous Flow** (⚠️ CONTINUOUS EXECUTION - DO NOT STOP):
|
|
20
|
-
1. User triggers: `/workflow:ui-design:explore-auto [params]`
|
|
21
|
-
2. Phase 5: Target confirmation → User confirms → **IMMEDIATELY triggers Phase 7**
|
|
22
|
-
3. Phase 7 (style-extract) → **Attach tasks → Execute → Collapse** → Auto-continues to Phase 8
|
|
23
|
-
4. Phase 8 (animation-extract, conditional):
|
|
24
|
-
- **IF should_extract_animation**: **Attach tasks → Execute → Collapse** → Auto-continues to Phase 9
|
|
25
|
-
- **ELSE**: Skip (use code import) → Auto-continues to Phase 9
|
|
26
|
-
5. Phase 9 (layout-extract) → **Attach tasks → Execute → Collapse** → Auto-continues to Phase 10
|
|
27
|
-
6. **Phase 10 (ui-assembly)** → **Attach tasks → Execute → Collapse** → Workflow complete
|
|
28
|
-
|
|
29
|
-
**Phase Transition Mechanism**:
|
|
30
|
-
- **Phase 5 (User Interaction)**: User confirms targets → IMMEDIATELY dispatches Phase 7
|
|
31
|
-
- **Phase 7-10 (Autonomous)**: SlashCommand dispatch **ATTACHES** tasks to current workflow
|
|
32
|
-
- **Task Execution**: Orchestrator **EXECUTES** these attached tasks itself
|
|
33
|
-
- **Task Collapse**: After tasks complete, collapse them into phase summary
|
|
34
|
-
- **Phase Transition**: Automatically execute next phase after collapsing
|
|
35
|
-
- No additional user interaction after Phase 5 confirmation
|
|
36
|
-
|
|
37
|
-
**Auto-Continue Mechanism**: TodoWrite tracks phase status with dynamic task attachment/collapse. After executing all attached tasks, you MUST immediately collapse them, restore phase summary, and execute the next phase. No user intervention required. The workflow is NOT complete until Phase 10 (UI assembly) finishes.
|
|
38
|
-
|
|
39
|
-
**Task Attachment Model**: SlashCommand dispatch is NOT delegation - it's task expansion. The orchestrator executes these attached tasks itself, not waiting for external completion.
|
|
40
|
-
|
|
41
|
-
**Target Type Detection**: Automatically inferred from prompt/targets, or explicitly set via `--target-type`.
|
|
42
|
-
|
|
43
|
-
## Execution Process
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
Input Parsing:
|
|
47
|
-
├─ Parse flags: --input, --targets, --target-type, --device-type, --session, --style-variants, --layout-variants
|
|
48
|
-
└─ Decision (input detection):
|
|
49
|
-
├─ Contains * or glob matches → images_input (visual)
|
|
50
|
-
├─ File/directory exists → code import source
|
|
51
|
-
└─ Pure text → design prompt
|
|
52
|
-
|
|
53
|
-
Phase 1-4: Parameter Parsing & Initialization
|
|
54
|
-
├─ Phase 1: Normalize parameters (legacy deprecation warning)
|
|
55
|
-
├─ Phase 2: Intelligent prompt parsing (extract variant counts)
|
|
56
|
-
├─ Phase 3: Device type inference (explicit > keywords > target_type > default)
|
|
57
|
-
└─ Phase 4: Run initialization and directory setup
|
|
58
|
-
|
|
59
|
-
Phase 5: Unified Target Inference
|
|
60
|
-
├─ Priority: --pages/--components (legacy) → --targets → prompt analysis → synthesis → default
|
|
61
|
-
├─ Display confirmation with modification options
|
|
62
|
-
└─ User confirms → IMMEDIATELY triggers Phase 7
|
|
63
|
-
|
|
64
|
-
Phase 6: Code Import (Conditional)
|
|
65
|
-
└─ Decision (design_source):
|
|
66
|
-
├─ code_only | hybrid → Dispatch /workflow:ui-design:import-from-code
|
|
67
|
-
└─ visual_only → Skip to Phase 7
|
|
68
|
-
|
|
69
|
-
Phase 7: Style Extraction
|
|
70
|
-
└─ Decision (needs_visual_supplement):
|
|
71
|
-
├─ visual_only OR supplement needed → Dispatch /workflow:ui-design:style-extract
|
|
72
|
-
└─ code_only AND style_complete → Use code import
|
|
73
|
-
|
|
74
|
-
Phase 8: Animation Extraction
|
|
75
|
-
└─ Decision (should_extract_animation):
|
|
76
|
-
├─ visual_only OR incomplete OR regenerate → Dispatch /workflow:ui-design:animation-extract
|
|
77
|
-
└─ code_only AND animation_complete → Use code import
|
|
78
|
-
|
|
79
|
-
Phase 9: Layout Extraction
|
|
80
|
-
└─ Decision (needs_visual_supplement OR NOT layout_complete):
|
|
81
|
-
├─ True → Dispatch /workflow:ui-design:layout-extract
|
|
82
|
-
└─ False → Use code import
|
|
83
|
-
|
|
84
|
-
Phase 10: UI Assembly
|
|
85
|
-
└─ Dispatch /workflow:ui-design:generate → Workflow complete
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Core Rules
|
|
89
|
-
|
|
90
|
-
1. **Start Immediately**: TodoWrite initialization → Phase 7 execution
|
|
91
|
-
2. **No Preliminary Validation**: Sub-commands handle their own validation
|
|
92
|
-
3. **Parse & Pass**: Extract data from each output for next phase
|
|
93
|
-
4. **Default to All**: When selecting variants/prototypes, use ALL generated items
|
|
94
|
-
5. **Track Progress**: Update TodoWrite dynamically with task attachment/collapse pattern
|
|
95
|
-
6. **⚠️ CRITICAL: Task Attachment Model** - SlashCommand dispatch **ATTACHES** tasks to current workflow. Orchestrator **EXECUTES** these attached tasks itself, not waiting for external completion. This is NOT delegation - it's task expansion.
|
|
96
|
-
7. **⚠️ CRITICAL: DO NOT STOP** - This is a continuous multi-phase workflow. After executing all attached tasks, you MUST immediately collapse them and execute the next phase. Workflow is NOT complete until Phase 10 (UI assembly) finishes.
|
|
97
|
-
|
|
98
|
-
## Parameter Requirements
|
|
99
|
-
|
|
100
|
-
**Recommended Parameter**:
|
|
101
|
-
- `--input "<value>"`: Unified input source (auto-detects type)
|
|
102
|
-
- **Glob pattern** (images): `"design-refs/*"`, `"screenshots/*.png"`
|
|
103
|
-
- **File/directory path** (code): `"./src/components"`, `"/path/to/styles"`
|
|
104
|
-
- **Text description** (prompt): `"modern dashboard with 3 styles"`, `"minimalist design"`
|
|
105
|
-
- **Combination**: `"design-refs/* modern dashboard"` (glob + description)
|
|
106
|
-
- Multiple inputs: Separate with `|` → `"design-refs/*|modern style"`
|
|
107
|
-
|
|
108
|
-
**Detection Logic**:
|
|
109
|
-
- Contains `*` or matches existing files → **glob pattern** (images)
|
|
110
|
-
- Existing file/directory path → **code import**
|
|
111
|
-
- Pure text without paths → **design prompt**
|
|
112
|
-
- Contains `|` separator → **multiple inputs** (glob|prompt or path|prompt)
|
|
113
|
-
|
|
114
|
-
**Legacy Parameters** (deprecated, use `--input` instead):
|
|
115
|
-
- `--images "<glob>"`: Reference image paths (shows deprecation warning)
|
|
116
|
-
- `--prompt "<description>"`: Design description (shows deprecation warning)
|
|
117
|
-
|
|
118
|
-
**Optional Parameters** (all have smart defaults):
|
|
119
|
-
- `--targets "<list>"`: Comma-separated targets (pages/components) to generate (inferred from prompt/session if omitted)
|
|
120
|
-
- `--target-type "page|component|auto"`: Explicitly set target type (default: `auto` - intelligent detection)
|
|
121
|
-
- `--device-type "desktop|mobile|tablet|responsive|auto"`: Device type for layout optimization (default: `auto` - intelligent detection)
|
|
122
|
-
- **Desktop**: 1920×1080px - Mouse-driven, spacious layouts
|
|
123
|
-
- **Mobile**: 375×812px - Touch-friendly, compact layouts
|
|
124
|
-
- **Tablet**: 768×1024px - Hybrid touch/mouse layouts
|
|
125
|
-
- **Responsive**: 1920×1080px base with mobile-first breakpoints
|
|
126
|
-
- `--session <id>`: Workflow session ID (standalone mode if omitted)
|
|
127
|
-
- `--style-variants <count>`: Style variants (default: inferred from prompt or 3, range: 1-5)
|
|
128
|
-
- `--layout-variants <count>`: Layout variants per style (default: inferred or 3, range: 1-5)
|
|
129
|
-
|
|
130
|
-
**Legacy Target Parameters** (maintained for backward compatibility):
|
|
131
|
-
- `--pages "<list>"`: Alias for `--targets` with `--target-type page`
|
|
132
|
-
- `--components "<list>"`: Alias for `--targets` with `--target-type component`
|
|
133
|
-
|
|
134
|
-
**Input Rules**:
|
|
135
|
-
- Must provide: `--input` OR (legacy: `--images`/`--prompt`) OR `--targets`
|
|
136
|
-
- `--input` can combine multiple input types
|
|
137
|
-
- If `--targets` not provided, intelligently inferred from prompt/session
|
|
138
|
-
|
|
139
|
-
**Supported Target Types**:
|
|
140
|
-
- **Pages** (full layouts): home, dashboard, settings, profile, login, etc.
|
|
141
|
-
- **Components** (UI elements):
|
|
142
|
-
- Navigation: navbar, header, menu, breadcrumb, tabs, sidebar
|
|
143
|
-
- Content: hero, card, list, table, grid, timeline
|
|
144
|
-
- Input: form, search, filter, input-group
|
|
145
|
-
- Feedback: modal, alert, toast, badge, progress
|
|
146
|
-
- Media: gallery, carousel, video-player, image-card
|
|
147
|
-
- Other: footer, pagination, dropdown, tooltip, avatar
|
|
148
|
-
|
|
149
|
-
**Intelligent Prompt Parsing**: Extracts variant counts from natural language:
|
|
150
|
-
- "Generate **3 style variants**" → `--style-variants 3`
|
|
151
|
-
- "**2 layout options**" → `--layout-variants 2`
|
|
152
|
-
- "Create **4 styles** with **2 layouts each**" → `--style-variants 4 --layout-variants 2`
|
|
153
|
-
- Explicit flags override prompt inference
|
|
154
|
-
|
|
155
|
-
## Execution Modes
|
|
156
|
-
|
|
157
|
-
**Matrix Mode** (style-centric):
|
|
158
|
-
- Generates `style_variants × layout_variants × targets` prototypes
|
|
159
|
-
- **Phase 1**: `style_variants` complete design systems (extract)
|
|
160
|
-
- **Phase 2**: Layout templates extraction (layout-extract)
|
|
161
|
-
- **Phase 3**: Style-centric batch generation (generate)
|
|
162
|
-
- Sub-phase 1: `targets × layout_variants` target-specific layout plans
|
|
163
|
-
- **Sub-phase 2**: `S` style-centric agents (each handles `L×T` combinations)
|
|
164
|
-
- Sub-phase 3: `style_variants × layout_variants × targets` final prototypes
|
|
165
|
-
- Performance: Efficient parallel execution with S agents
|
|
166
|
-
- Quality: HTML structure adapts to design_attributes
|
|
167
|
-
- Pages: Full-page layouts with complete structure
|
|
168
|
-
- Components: Isolated elements with minimal wrapper
|
|
169
|
-
|
|
170
|
-
**Integrated vs. Standalone**:
|
|
171
|
-
- `--session` flag determines session integration or standalone execution
|
|
172
|
-
|
|
173
|
-
## 10-Phase Execution
|
|
174
|
-
|
|
175
|
-
### Phase 1: Parameter Parsing & Input Detection
|
|
176
|
-
|
|
177
|
-
**Unified Principle**: Detect → Classify → Store (avoid string concatenation and escaping)
|
|
178
|
-
|
|
179
|
-
**Step 1: Parameter Normalization**
|
|
180
|
-
```bash
|
|
181
|
-
# Legacy parameters (deprecated)
|
|
182
|
-
IF --images OR --prompt:
|
|
183
|
-
WARN: "⚠️ --images/--prompt deprecated. Use --input"
|
|
184
|
-
images_input = --images; prompt_text = --prompt
|
|
185
|
-
|
|
186
|
-
# Unified --input (split by "|")
|
|
187
|
-
ELSE IF --input:
|
|
188
|
-
FOR part IN split(--input, "|"):
|
|
189
|
-
IF "*" IN part OR glob_exists(part): images_input = part
|
|
190
|
-
ELSE IF path_exists(part): prompt_text += part
|
|
191
|
-
ELSE: prompt_text += part
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
**Step 2: Design Source Detection**
|
|
195
|
-
```bash
|
|
196
|
-
code_base_path = extract_first_valid_path(prompt_text)
|
|
197
|
-
has_visual_input = (images_input AND glob_exists(images_input))
|
|
198
|
-
|
|
199
|
-
design_source = classify_source(code_base_path, has_visual_input):
|
|
200
|
-
• code + visual → "hybrid"
|
|
201
|
-
• code only → "code_only"
|
|
202
|
-
• visual/prompt → "visual_only"
|
|
203
|
-
• none → ERROR
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
**Stored Variables**: `design_source`, `code_base_path`, `has_visual_input`, `images_input`, `prompt_text`
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
### Phase 2: Intelligent Prompt Parsing
|
|
211
|
-
|
|
212
|
-
**Unified Principle**: explicit > inferred > default
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
# Variant counts (priority chain)
|
|
216
|
-
style_variants = --style-variants OR extract_number(prompt_text, "style") OR 3
|
|
217
|
-
layout_variants = --layout-variants OR extract_number(prompt_text, "layout") OR 3
|
|
218
|
-
|
|
219
|
-
VALIDATE: 1 ≤ variants ≤ 5
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
**Stored Variables**: `style_variants`, `layout_variants`
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
### Phase 3: Device Type Inference
|
|
227
|
-
|
|
228
|
-
**Unified Principle**: explicit > prompt keywords > target_type > default
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
# Device type (priority chain)
|
|
232
|
-
device_type = --device-type (if != "auto")
|
|
233
|
-
OR detect_keywords(prompt_text, ["mobile", "desktop", "tablet", "responsive"])
|
|
234
|
-
OR infer_from_target(target_type) # component→desktop, page→responsive
|
|
235
|
-
OR "responsive"
|
|
236
|
-
|
|
237
|
-
device_source = track_detection_source()
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
**Detection Keywords**: mobile, phone, smartphone → mobile | desktop, web, laptop → desktop | tablet, ipad → tablet | responsive, adaptive → responsive
|
|
241
|
-
|
|
242
|
-
**Device Presets**: Desktop (1920×1080) | Mobile (375×812) | Tablet (768×1024) | Responsive (1920×1080 + breakpoints)
|
|
243
|
-
|
|
244
|
-
**Stored Variables**: `device_type`, `device_source`
|
|
245
|
-
|
|
246
|
-
### Phase 4: Run Initialization & Directory Setup
|
|
247
|
-
```bash
|
|
248
|
-
design_id = "design-run-$(date +%Y%m%d)-$RANDOM"
|
|
249
|
-
relative_base_path = --session ? ".workflow/active/WFS-{session}/${design_id}" : ".workflow/${design_id}"
|
|
250
|
-
|
|
251
|
-
# Create directory and convert to absolute path
|
|
252
|
-
Bash(mkdir -p "${relative_base_path}/style-extraction")
|
|
253
|
-
Bash(mkdir -p "${relative_base_path}/prototypes")
|
|
254
|
-
base_path=$(cd "${relative_base_path}" && pwd)
|
|
255
|
-
|
|
256
|
-
Write({base_path}/.run-metadata.json): {
|
|
257
|
-
"design_id": "${design_id}", "session_id": "${session_id}", "timestamp": "...",
|
|
258
|
-
"workflow": "ui-design:auto",
|
|
259
|
-
"architecture": "style-centric-batch-generation",
|
|
260
|
-
"parameters": { "style_variants": ${style_variants}, "layout_variants": ${layout_variants},
|
|
261
|
-
"targets": "${inferred_target_list}", "target_type": "${target_type}",
|
|
262
|
-
"prompt": "${prompt_text}", "images": "${images_input}",
|
|
263
|
-
"input": "${--input}",
|
|
264
|
-
"device_type": "${device_type}", "device_source": "${device_source}" },
|
|
265
|
-
"status": "in_progress",
|
|
266
|
-
"performance_mode": "optimized"
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
# Initialize default flags for animation extraction logic
|
|
270
|
-
animation_complete = false # Default: always extract animations unless code import proves complete
|
|
271
|
-
needs_visual_supplement = false # Will be set to true in hybrid mode
|
|
272
|
-
skip_animation_extraction = false # User preference for code import scenario
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
### Phase 5: Unified Target Inference with Intelligent Type Detection
|
|
276
|
-
```bash
|
|
277
|
-
# Priority: --pages/--components (legacy) → --targets → --prompt analysis → synthesis → default
|
|
278
|
-
target_list = []; target_type = "auto"; target_source = "none"
|
|
279
|
-
|
|
280
|
-
# Step 1-2: Explicit parameters (legacy or unified)
|
|
281
|
-
IF --pages: target_list = split(--pages); target_type = "page"; target_source = "explicit_legacy"
|
|
282
|
-
ELSE IF --components: target_list = split(--components); target_type = "component"; target_source = "explicit_legacy"
|
|
283
|
-
ELSE IF --targets:
|
|
284
|
-
target_list = split(--targets); target_source = "explicit"
|
|
285
|
-
target_type = --target-type != "auto" ? --target-type : detect_target_type(target_list)
|
|
286
|
-
|
|
287
|
-
# Step 3: Prompt analysis (Claude internal analysis)
|
|
288
|
-
ELSE IF prompt_text:
|
|
289
|
-
analysis_result = analyze_prompt(prompt_text) # Extract targets, types, purpose
|
|
290
|
-
target_list = analysis_result.targets
|
|
291
|
-
target_type = analysis_result.primary_type OR detect_target_type(target_list)
|
|
292
|
-
target_source = "prompt_analysis"
|
|
293
|
-
|
|
294
|
-
# Step 4: Session synthesis
|
|
295
|
-
ELSE IF --session AND exists(role analysis documents):
|
|
296
|
-
target_list = extract_targets_from_synthesis(); target_type = "page"; target_source = "synthesis"
|
|
297
|
-
|
|
298
|
-
# Step 5: Fallback
|
|
299
|
-
IF NOT target_list: target_list = ["home"]; target_type = "page"; target_source = "default"
|
|
300
|
-
|
|
301
|
-
# Validate and clean
|
|
302
|
-
validated_targets = [normalize(t) for t in target_list if is_valid(t)]
|
|
303
|
-
IF NOT validated_targets: validated_targets = ["home"]; target_type = "page"
|
|
304
|
-
IF --target-type != "auto": target_type = --target-type
|
|
305
|
-
|
|
306
|
-
# Interactive confirmation
|
|
307
|
-
DISPLAY_CONFIRMATION(target_type, target_source, validated_targets, device_type, device_source):
|
|
308
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
309
|
-
"{emoji} {LABEL} CONFIRMATION (Style-Centric)"
|
|
310
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
311
|
-
"Type: {target_type} | Source: {target_source}"
|
|
312
|
-
"Targets ({count}): {', '.join(validated_targets)}"
|
|
313
|
-
"Device: {device_type} | Source: {device_source}"
|
|
314
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
315
|
-
"Performance: {style_variants} agent calls"
|
|
316
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
317
|
-
"Modification Options:"
|
|
318
|
-
" • 'continue/yes/ok' - Proceed with current configuration"
|
|
319
|
-
" • 'targets: a,b,c' - Replace target list"
|
|
320
|
-
" • 'skip: x,y' - Remove specific targets"
|
|
321
|
-
" • 'add: z' - Add new targets"
|
|
322
|
-
" • 'type: page|component' - Change target type"
|
|
323
|
-
" • 'device: desktop|mobile|tablet|responsive' - Change device type"
|
|
324
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
325
|
-
|
|
326
|
-
user_input = WAIT_FOR_USER_INPUT()
|
|
327
|
-
|
|
328
|
-
# Process user modifications
|
|
329
|
-
MATCH user_input:
|
|
330
|
-
"continue|yes|ok" → proceed
|
|
331
|
-
"targets: ..." → validated_targets = parse_new_list()
|
|
332
|
-
"skip: ..." → validated_targets = remove_items()
|
|
333
|
-
"add: ..." → validated_targets = add_items()
|
|
334
|
-
"type: ..." → target_type = extract_type()
|
|
335
|
-
"device: ..." → device_type = extract_device()
|
|
336
|
-
default → proceed with current list
|
|
337
|
-
|
|
338
|
-
STORE: inferred_target_list, target_type, target_inference_source
|
|
339
|
-
|
|
340
|
-
# ⚠️ CRITICAL: User confirmation complete, IMMEDIATELY initialize TodoWrite and execute Phase 7
|
|
341
|
-
# This is the only user interaction point in the workflow
|
|
342
|
-
# After this point, all subsequent phases execute automatically without user intervention
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
**Helper Function: detect_target_type()**
|
|
346
|
-
```bash
|
|
347
|
-
detect_target_type(target_list):
|
|
348
|
-
page_keywords = ["home", "dashboard", "settings", "profile", "login", "signup", "auth", ...]
|
|
349
|
-
component_keywords = ["navbar", "header", "footer", "hero", "card", "button", "form", ...]
|
|
350
|
-
|
|
351
|
-
page_matches = count_matches(target_list, page_keywords + ["page", "screen", "view"])
|
|
352
|
-
component_matches = count_matches(target_list, component_keywords + ["component", "widget"])
|
|
353
|
-
|
|
354
|
-
RETURN "component" IF component_matches > page_matches ELSE "page"
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
### Phase 6: Code Import & Completeness Assessment (Conditional)
|
|
358
|
-
|
|
359
|
-
**Step 6.1: Dispatch** - Import design system from code files
|
|
360
|
-
|
|
361
|
-
```javascript
|
|
362
|
-
IF design_source IN ["code_only", "hybrid"]:
|
|
363
|
-
REPORT: "🔍 Phase 6: Code Import ({design_source})"
|
|
364
|
-
command = "/workflow:ui-design:import-from-code --design-id \"{design_id}\" --source \"{code_base_path}\""
|
|
365
|
-
|
|
366
|
-
TRY:
|
|
367
|
-
# SlashCommand dispatch ATTACHES import-from-code's tasks to current workflow
|
|
368
|
-
# Orchestrator will EXECUTE these attached tasks itself:
|
|
369
|
-
# - Phase 0: Discover and categorize code files
|
|
370
|
-
# - Phase 1.1-1.3: Style/Animation/Layout Agent extraction
|
|
371
|
-
SlashCommand(command)
|
|
372
|
-
CATCH error:
|
|
373
|
-
WARN: "⚠️ Code import failed: {error}"
|
|
374
|
-
WARN: "Cleaning up incomplete import directories"
|
|
375
|
-
Bash(rm -rf "{base_path}/style-extraction" "{base_path}/animation-extraction" "{base_path}/layout-extraction" 2>/dev/null)
|
|
376
|
-
|
|
377
|
-
IF design_source == "code_only":
|
|
378
|
-
REPORT: "Cannot proceed with code-only mode after import failure"
|
|
379
|
-
EXIT 1
|
|
380
|
-
ELSE: # hybrid mode
|
|
381
|
-
WARN: "Continuing with visual-only mode"
|
|
382
|
-
design_source = "visual_only"
|
|
383
|
-
|
|
384
|
-
# Check file existence and assess completeness
|
|
385
|
-
style_exists = exists("{base_path}/style-extraction/style-1/design-tokens.json")
|
|
386
|
-
animation_exists = exists("{base_path}/animation-extraction/animation-tokens.json")
|
|
387
|
-
layout_count = bash(ls {base_path}/layout-extraction/layout-*.json 2>/dev/null | wc -l)
|
|
388
|
-
layout_exists = (layout_count > 0)
|
|
389
|
-
|
|
390
|
-
style_complete = false
|
|
391
|
-
animation_complete = false
|
|
392
|
-
layout_complete = false
|
|
393
|
-
missing_categories = []
|
|
394
|
-
|
|
395
|
-
# Style completeness check
|
|
396
|
-
IF style_exists:
|
|
397
|
-
tokens = Read("{base_path}/style-extraction/style-1/design-tokens.json")
|
|
398
|
-
style_complete = (
|
|
399
|
-
tokens.colors?.brand && tokens.colors?.surface &&
|
|
400
|
-
tokens.typography?.font_family && tokens.spacing &&
|
|
401
|
-
Object.keys(tokens.colors.brand || {}).length >= 3 &&
|
|
402
|
-
Object.keys(tokens.spacing || {}).length >= 8
|
|
403
|
-
)
|
|
404
|
-
IF NOT style_complete AND tokens._metadata?.completeness?.missing_categories:
|
|
405
|
-
missing_categories.extend(tokens._metadata.completeness.missing_categories)
|
|
406
|
-
ELSE:
|
|
407
|
-
missing_categories.push("style tokens")
|
|
408
|
-
|
|
409
|
-
# Animation completeness check
|
|
410
|
-
IF animation_exists:
|
|
411
|
-
anim = Read("{base_path}/animation-extraction/animation-tokens.json")
|
|
412
|
-
animation_complete = (
|
|
413
|
-
anim.duration && anim.easing &&
|
|
414
|
-
Object.keys(anim.duration || {}).length >= 3 &&
|
|
415
|
-
Object.keys(anim.easing || {}).length >= 3
|
|
416
|
-
)
|
|
417
|
-
IF NOT animation_complete AND anim._metadata?.completeness?.missing_items:
|
|
418
|
-
missing_categories.extend(anim._metadata.completeness.missing_items)
|
|
419
|
-
ELSE:
|
|
420
|
-
missing_categories.push("animation tokens")
|
|
421
|
-
|
|
422
|
-
# Layout completeness check
|
|
423
|
-
IF layout_exists:
|
|
424
|
-
# Read first layout file to verify structure
|
|
425
|
-
first_layout = bash(ls {base_path}/layout-extraction/layout-*.json 2>/dev/null | head -1)
|
|
426
|
-
layout_data = Read(first_layout)
|
|
427
|
-
layout_complete = (
|
|
428
|
-
layout_count >= 1 &&
|
|
429
|
-
layout_data.template?.dom_structure &&
|
|
430
|
-
layout_data.template?.css_layout_rules
|
|
431
|
-
)
|
|
432
|
-
IF NOT layout_complete:
|
|
433
|
-
missing_categories.push("complete layout structure")
|
|
434
|
-
ELSE:
|
|
435
|
-
missing_categories.push("layout templates")
|
|
436
|
-
|
|
437
|
-
needs_visual_supplement = false
|
|
438
|
-
|
|
439
|
-
IF design_source == "code_only" AND NOT (style_complete AND layout_complete):
|
|
440
|
-
REPORT: "⚠️ Missing: {', '.join(missing_categories)}"
|
|
441
|
-
REPORT: "Options: 'continue' | 'supplement: <images>' | 'cancel'"
|
|
442
|
-
user_response = WAIT_FOR_USER_INPUT()
|
|
443
|
-
MATCH user_response:
|
|
444
|
-
"continue" → needs_visual_supplement = false
|
|
445
|
-
"supplement: ..." → needs_visual_supplement = true; --images = extract_path(user_response)
|
|
446
|
-
"cancel" → EXIT 0
|
|
447
|
-
default → needs_visual_supplement = false
|
|
448
|
-
ELSE IF design_source == "hybrid":
|
|
449
|
-
needs_visual_supplement = true
|
|
450
|
-
|
|
451
|
-
# Animation reuse confirmation (code import with complete animations)
|
|
452
|
-
IF design_source == "code_only" AND animation_complete:
|
|
453
|
-
REPORT: "✅ Complete animation system detected (from code import)"
|
|
454
|
-
REPORT: " Duration scales: {duration_count} | Easing functions: {easing_count}"
|
|
455
|
-
REPORT: ""
|
|
456
|
-
REPORT: "Options:"
|
|
457
|
-
REPORT: " • 'reuse' (default) - Reuse existing animation system"
|
|
458
|
-
REPORT: " • 'regenerate' - Regenerate animation system (interactive)"
|
|
459
|
-
REPORT: " • 'cancel' - Cancel workflow"
|
|
460
|
-
user_response = WAIT_FOR_USER_INPUT()
|
|
461
|
-
MATCH user_response:
|
|
462
|
-
"reuse" → skip_animation_extraction = true
|
|
463
|
-
"regenerate" → skip_animation_extraction = false
|
|
464
|
-
"cancel" → EXIT 0
|
|
465
|
-
default → skip_animation_extraction = true # Default: reuse
|
|
466
|
-
|
|
467
|
-
STORE: needs_visual_supplement, style_complete, animation_complete, layout_complete, skip_animation_extraction
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
### Phase 7: Style Extraction
|
|
471
|
-
|
|
472
|
-
**Step 7.1: Dispatch** - Extract style design systems
|
|
473
|
-
|
|
474
|
-
```javascript
|
|
475
|
-
IF design_source == "visual_only" OR needs_visual_supplement:
|
|
476
|
-
REPORT: "🎨 Phase 7: Style Extraction (variants: {style_variants})"
|
|
477
|
-
command = "/workflow:ui-design:style-extract --design-id \"{design_id}\" " +
|
|
478
|
-
(images_input ? "--images \"{images_input}\" " : "") +
|
|
479
|
-
(prompt_text ? "--prompt \"{prompt_text}\" " : "") +
|
|
480
|
-
"--variants {style_variants} --interactive"
|
|
481
|
-
|
|
482
|
-
# SlashCommand dispatch ATTACHES style-extract's tasks to current workflow
|
|
483
|
-
# Orchestrator will EXECUTE these attached tasks itself
|
|
484
|
-
SlashCommand(command)
|
|
485
|
-
|
|
486
|
-
# After executing all attached tasks, collapse them into phase summary
|
|
487
|
-
ELSE:
|
|
488
|
-
REPORT: "✅ Phase 7: Style (Using Code Import)"
|
|
489
|
-
```
|
|
490
|
-
|
|
491
|
-
### Phase 8: Animation Extraction
|
|
492
|
-
|
|
493
|
-
**Step 8.1: Dispatch** - Extract animation patterns
|
|
494
|
-
|
|
495
|
-
```javascript
|
|
496
|
-
# Determine if animation extraction is needed
|
|
497
|
-
should_extract_animation = false
|
|
498
|
-
|
|
499
|
-
IF (design_source == "visual_only" OR needs_visual_supplement):
|
|
500
|
-
# Pure visual input or hybrid mode requiring visual supplement
|
|
501
|
-
should_extract_animation = true
|
|
502
|
-
ELSE IF NOT animation_complete:
|
|
503
|
-
# Code import but animations are incomplete
|
|
504
|
-
should_extract_animation = true
|
|
505
|
-
ELSE IF design_source == "code_only" AND animation_complete AND NOT skip_animation_extraction:
|
|
506
|
-
# Code import with complete animations, but user chose to regenerate
|
|
507
|
-
should_extract_animation = true
|
|
508
|
-
|
|
509
|
-
IF should_extract_animation:
|
|
510
|
-
REPORT: "🚀 Phase 8: Animation Extraction"
|
|
511
|
-
|
|
512
|
-
# Build command with available inputs
|
|
513
|
-
command_parts = [f"/workflow:ui-design:animation-extract --design-id \"{design_id}\""]
|
|
514
|
-
|
|
515
|
-
IF images_input:
|
|
516
|
-
command_parts.append(f"--images \"{images_input}\"")
|
|
517
|
-
|
|
518
|
-
IF prompt_text:
|
|
519
|
-
command_parts.append(f"--prompt \"{prompt_text}\"")
|
|
520
|
-
|
|
521
|
-
command_parts.append("--interactive")
|
|
522
|
-
|
|
523
|
-
command = " ".join(command_parts)
|
|
524
|
-
|
|
525
|
-
# SlashCommand dispatch ATTACHES animation-extract's tasks to current workflow
|
|
526
|
-
# Orchestrator will EXECUTE these attached tasks itself
|
|
527
|
-
SlashCommand(command)
|
|
528
|
-
|
|
529
|
-
# After executing all attached tasks, collapse them into phase summary
|
|
530
|
-
ELSE:
|
|
531
|
-
REPORT: "✅ Phase 8: Animation (Using Code Import)"
|
|
532
|
-
|
|
533
|
-
# Output: animation-tokens.json + animation-guide.md
|
|
534
|
-
# When phase finishes, IMMEDIATELY execute Phase 9 (auto-continue)
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
### Phase 9: Layout Extraction
|
|
538
|
-
|
|
539
|
-
**Step 9.1: Dispatch** - Extract layout templates
|
|
540
|
-
|
|
541
|
-
```javascript
|
|
542
|
-
targets_string = ",".join(inferred_target_list)
|
|
543
|
-
|
|
544
|
-
IF (design_source == "visual_only" OR needs_visual_supplement) OR (NOT layout_complete):
|
|
545
|
-
REPORT: "🚀 Phase 9: Layout Extraction ({targets_string}, variants: {layout_variants}, device: {device_type})"
|
|
546
|
-
command = "/workflow:ui-design:layout-extract --design-id \"{design_id}\" " +
|
|
547
|
-
(images_input ? "--images \"{images_input}\" " : "") +
|
|
548
|
-
(prompt_text ? "--prompt \"{prompt_text}\" " : "") +
|
|
549
|
-
"--targets \"{targets_string}\" --variants {layout_variants} --device-type \"{device_type}\" --interactive"
|
|
550
|
-
|
|
551
|
-
# SlashCommand dispatch ATTACHES layout-extract's tasks to current workflow
|
|
552
|
-
# Orchestrator will EXECUTE these attached tasks itself
|
|
553
|
-
SlashCommand(command)
|
|
554
|
-
|
|
555
|
-
# After executing all attached tasks, collapse them into phase summary
|
|
556
|
-
ELSE:
|
|
557
|
-
REPORT: "✅ Phase 9: Layout (Using Code Import)"
|
|
558
|
-
```
|
|
559
|
-
|
|
560
|
-
### Phase 10: UI Assembly
|
|
561
|
-
|
|
562
|
-
**Step 10.1: Dispatch** - Assemble UI prototypes from design tokens and layout templates
|
|
563
|
-
|
|
564
|
-
```javascript
|
|
565
|
-
command = "/workflow:ui-design:generate --design-id \"{design_id}\"" + (--session ? " --session {session_id}" : "")
|
|
566
|
-
|
|
567
|
-
total = style_variants × layout_variants × len(inferred_target_list)
|
|
568
|
-
|
|
569
|
-
REPORT: "🚀 Phase 10: UI Assembly | Matrix: {s}×{l}×{n} = {total} prototypes"
|
|
570
|
-
REPORT: " → Pure assembly: Combining layout templates + design tokens"
|
|
571
|
-
REPORT: " → Device: {device_type} (from layout templates)"
|
|
572
|
-
REPORT: " → Assembly tasks: {total} combinations"
|
|
573
|
-
|
|
574
|
-
# SlashCommand dispatch ATTACHES generate's tasks to current workflow
|
|
575
|
-
# Orchestrator will EXECUTE these attached tasks itself
|
|
576
|
-
SlashCommand(command)
|
|
577
|
-
|
|
578
|
-
# After executing all attached tasks, collapse them into phase summary
|
|
579
|
-
# Workflow complete - generate command handles preview file generation (compare.html, PREVIEW.md)
|
|
580
|
-
# Output (generated by generate command):
|
|
581
|
-
# - {target}-style-{s}-layout-{l}.html (assembled prototypes)
|
|
582
|
-
# - {target}-style-{s}-layout-{l}.css
|
|
583
|
-
# - compare.html (interactive matrix view)
|
|
584
|
-
# - PREVIEW.md (usage instructions)
|
|
585
|
-
```
|
|
586
|
-
|
|
587
|
-
## TodoWrite Pattern
|
|
588
|
-
```javascript
|
|
589
|
-
// Initialize IMMEDIATELY after Phase 5 user confirmation to track multi-phase execution (4 orchestrator-level tasks)
|
|
590
|
-
TodoWrite({todos: [
|
|
591
|
-
{"content": "Phase 7: Style Extraction", "status": "in_progress", "activeForm": "Executing style extraction"},
|
|
592
|
-
{"content": "Phase 8: Animation Extraction", "status": "pending", "activeForm": "Executing animation extraction"},
|
|
593
|
-
{"content": "Phase 9: Layout Extraction", "status": "pending", "activeForm": "Executing layout extraction"},
|
|
594
|
-
{"content": "Phase 10: UI Assembly", "status": "pending", "activeForm": "Executing UI assembly"}
|
|
595
|
-
]})
|
|
596
|
-
|
|
597
|
-
// ⚠️ CRITICAL: Dynamic TodoWrite task attachment strategy:
|
|
598
|
-
//
|
|
599
|
-
// **Key Concept**: SlashCommand dispatch ATTACHES tasks to current workflow.
|
|
600
|
-
// Orchestrator EXECUTES these attached tasks itself, not waiting for external completion.
|
|
601
|
-
//
|
|
602
|
-
// Phase 7-10 SlashCommand Dispatch Pattern (when tasks are attached):
|
|
603
|
-
// Example - Phase 7 with sub-tasks:
|
|
604
|
-
// [
|
|
605
|
-
// {"content": "Phase 7: Style Extraction", "status": "in_progress", "activeForm": "Executing style extraction"},
|
|
606
|
-
// {"content": " → Analyze style references", "status": "in_progress", "activeForm": "Analyzing style references"},
|
|
607
|
-
// {"content": " → Generate style variants", "status": "pending", "activeForm": "Generating style variants"},
|
|
608
|
-
// {"content": " → Create design tokens", "status": "pending", "activeForm": "Creating design tokens"},
|
|
609
|
-
// {"content": "Phase 8: Animation Extraction", "status": "pending", "activeForm": "Executing animation extraction"},
|
|
610
|
-
// ...
|
|
611
|
-
// ]
|
|
612
|
-
//
|
|
613
|
-
// After sub-tasks complete, COLLAPSE back to:
|
|
614
|
-
// [
|
|
615
|
-
// {"content": "Phase 7: Style Extraction", "status": "completed", "activeForm": "Executing style extraction"},
|
|
616
|
-
// {"content": "Phase 8: Animation Extraction", "status": "in_progress", "activeForm": "Executing animation extraction"},
|
|
617
|
-
// ...
|
|
618
|
-
// ]
|
|
619
|
-
//
|
|
620
|
-
```
|
|
621
|
-
|
|
622
|
-
## Completion Output
|
|
623
|
-
```
|
|
624
|
-
✅ UI Design Explore-Auto Workflow Complete!
|
|
625
|
-
|
|
626
|
-
Architecture: Style-Centric Batch Generation
|
|
627
|
-
Run ID: {run_id} | Session: {session_id or "standalone"}
|
|
628
|
-
Type: {icon} {target_type} | Device: {device_type} | Matrix: {s}×{l}×{n} = {total} prototypes
|
|
629
|
-
|
|
630
|
-
Phase 7: {s} complete design systems (style-extract with multi-select)
|
|
631
|
-
Phase 9: {n×l} layout templates (layout-extract with multi-select)
|
|
632
|
-
- Device: {device_type} layouts
|
|
633
|
-
- {n} targets × {l} layout variants = {n×l} structural templates
|
|
634
|
-
- User-selected concepts generated in parallel
|
|
635
|
-
Phase 10: UI Assembly (generate)
|
|
636
|
-
- Pure assembly: layout templates + design tokens
|
|
637
|
-
- {s}×{l}×{n} = {total} final prototypes
|
|
638
|
-
- Preview files: compare.html, PREVIEW.md (auto-generated by generate command)
|
|
639
|
-
|
|
640
|
-
Assembly Process:
|
|
641
|
-
✅ Separation of Concerns: Layout (structure) + Style (tokens) kept separate
|
|
642
|
-
✅ Layout Extraction: {n×l} reusable structural templates
|
|
643
|
-
✅ Multi-Selection Workflow: User selects multiple variants from generated options
|
|
644
|
-
✅ Pure Assembly: No design decisions in generate phase
|
|
645
|
-
✅ Device-Optimized: Layouts designed for {device_type}
|
|
646
|
-
|
|
647
|
-
Design Quality:
|
|
648
|
-
✅ Token-Driven Styling: 100% var() usage
|
|
649
|
-
✅ Structural Variety: {l} distinct layouts per target (user-selected)
|
|
650
|
-
✅ Style Variety: {s} independent design systems (user-selected)
|
|
651
|
-
✅ Device-Optimized: Layouts designed for {device_type}
|
|
652
|
-
|
|
653
|
-
📂 {base_path}/
|
|
654
|
-
├── .intermediates/ (Intermediate analysis files)
|
|
655
|
-
│ ├── style-analysis/ (analysis-options.json with embedded user_selection, computed-styles.json if URL mode)
|
|
656
|
-
│ ├── animation-analysis/ (analysis-options.json with embedded user_selection, animations-*.json if URL mode)
|
|
657
|
-
│ └── layout-analysis/ (analysis-options.json with embedded user_selection, dom-structure-*.json if URL mode)
|
|
658
|
-
├── style-extraction/ ({s} complete design systems)
|
|
659
|
-
├── animation-extraction/ (animation-tokens.json, animation-guide.md)
|
|
660
|
-
├── layout-extraction/ ({n×l} layout template files: layout-{target}-{variant}.json)
|
|
661
|
-
├── prototypes/ ({total} assembled prototypes)
|
|
662
|
-
└── .run-metadata.json (includes device type)
|
|
663
|
-
|
|
664
|
-
🌐 Preview: {base_path}/prototypes/compare.html
|
|
665
|
-
- Interactive {s}×{l} matrix view
|
|
666
|
-
- Side-by-side comparison
|
|
667
|
-
- Target-specific layouts with style-aware structure
|
|
668
|
-
- Toggle between {n} targets
|
|
669
|
-
|
|
670
|
-
{icon} Targets: {', '.join(targets)} (type: {target_type})
|
|
671
|
-
- Each target has {l} custom-designed layouts
|
|
672
|
-
- Each style × target × layout has unique HTML structure (not just CSS!)
|
|
673
|
-
- Layout plans stored as structured JSON
|
|
674
|
-
- Optimized for {device_type} viewing
|
|
675
|
-
|
|
676
|
-
Next: Open compare.html to preview all design variants
|
|
677
|
-
```
|
|
678
|
-
|