claude-code-workflow 6.2.5 → 6.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +10 -0
- package/.claude/agents/action-planning-agent.md +857 -0
- package/.claude/agents/cli-execution-agent.md +267 -0
- package/.claude/agents/cli-explore-agent.md +182 -0
- package/.claude/agents/cli-lite-planning-agent.md +446 -0
- package/.claude/agents/cli-planning-agent.md +558 -0
- package/.claude/agents/code-developer.md +311 -0
- package/.claude/agents/conceptual-planning-agent.md +308 -0
- package/.claude/agents/context-search-agent.md +581 -0
- package/.claude/agents/doc-generator.md +330 -0
- package/.claude/agents/memory-bridge.md +94 -0
- package/.claude/agents/test-context-search-agent.md +400 -0
- package/.claude/agents/test-fix-agent.md +344 -0
- package/.claude/agents/ui-design-agent.md +593 -0
- package/.claude/agents/universal-executor.md +131 -0
- package/.claude/commands/clean.md +516 -0
- package/.claude/commands/cli/cli-init.md +440 -0
- package/.claude/commands/enhance-prompt.md +93 -0
- package/.claude/commands/memory/code-map-memory.md +687 -0
- package/.claude/commands/memory/compact.md +383 -0
- package/.claude/commands/memory/docs-full-cli.md +471 -0
- package/.claude/commands/memory/docs-related-cli.md +386 -0
- package/.claude/commands/memory/docs.md +615 -0
- package/.claude/commands/memory/load-skill-memory.md +182 -0
- package/.claude/commands/memory/load.md +240 -0
- package/.claude/commands/memory/skill-memory.md +525 -0
- package/.claude/commands/memory/style-skill-memory.md +396 -0
- package/.claude/commands/memory/tech-research-rules.md +310 -0
- package/.claude/commands/memory/update-full.md +332 -0
- package/.claude/commands/memory/update-related.md +332 -0
- package/.claude/commands/memory/workflow-skill-memory.md +517 -0
- package/.claude/commands/task/breakdown.md +204 -0
- package/.claude/commands/task/create.md +152 -0
- package/.claude/commands/task/execute.md +270 -0
- package/.claude/commands/task/replan.md +437 -0
- package/.claude/commands/version.md +254 -0
- package/.claude/commands/workflow/action-plan-verify.md +447 -0
- package/.claude/commands/workflow/brainstorm/api-designer.md +587 -0
- package/.claude/commands/workflow/brainstorm/artifacts.md +453 -0
- package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -0
- package/.claude/commands/workflow/brainstorm/data-architect.md +220 -0
- package/.claude/commands/workflow/brainstorm/product-manager.md +200 -0
- package/.claude/commands/workflow/brainstorm/product-owner.md +200 -0
- package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -0
- package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
- package/.claude/commands/workflow/brainstorm/synthesis.md +398 -0
- package/.claude/commands/workflow/brainstorm/system-architect.md +389 -0
- package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -0
- package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -0
- package/.claude/commands/workflow/debug.md +321 -0
- package/.claude/commands/workflow/execute.md +475 -0
- package/.claude/commands/workflow/init.md +165 -0
- package/.claude/commands/workflow/lite-execute.md +792 -0
- package/.claude/commands/workflow/lite-fix.md +623 -0
- package/.claude/commands/workflow/lite-plan.md +610 -0
- package/.claude/commands/workflow/plan.md +551 -0
- package/.claude/commands/workflow/replan.md +515 -0
- package/.claude/commands/workflow/review-fix.md +606 -0
- package/.claude/commands/workflow/review-module-cycle.md +767 -0
- package/.claude/commands/workflow/review-session-cycle.md +778 -0
- package/.claude/commands/workflow/review.md +297 -0
- package/.claude/commands/workflow/session/complete.md +153 -0
- package/.claude/commands/workflow/session/list.md +96 -0
- package/.claude/commands/workflow/session/resume.md +61 -0
- package/.claude/commands/workflow/session/start.md +200 -0
- package/.claude/commands/workflow/tdd-plan.md +460 -0
- package/.claude/commands/workflow/tdd-verify.md +400 -0
- package/.claude/commands/workflow/test-cycle-execute.md +500 -0
- package/.claude/commands/workflow/test-fix-gen.md +699 -0
- package/.claude/commands/workflow/test-gen.md +529 -0
- package/.claude/commands/workflow/tools/conflict-resolution.md +766 -0
- package/.claude/commands/workflow/tools/context-gather.md +436 -0
- package/.claude/commands/workflow/tools/task-generate-agent.md +490 -0
- package/.claude/commands/workflow/tools/task-generate-tdd.md +526 -0
- package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/commands/workflow/tools/test-concept-enhanced.md +164 -0
- package/.claude/commands/workflow/tools/test-context-gather.md +236 -0
- package/.claude/commands/workflow/tools/test-task-generate.md +257 -0
- package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -0
- package/.claude/commands/workflow/ui-design/codify-style.md +652 -0
- package/.claude/commands/workflow/ui-design/design-sync.md +454 -0
- package/.claude/commands/workflow/ui-design/explore-auto.md +678 -0
- package/.claude/commands/workflow/ui-design/generate.md +504 -0
- package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -0
- package/.claude/commands/workflow/ui-design/import-from-code.md +540 -0
- package/.claude/commands/workflow/ui-design/layout-extract.md +788 -0
- package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -0
- package/.claude/commands/workflow/ui-design/style-extract.md +773 -0
- package/.claude/skills/command-guide/SKILL.md +388 -0
- package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +592 -0
- package/.claude/skills/command-guide/guides/cli-tools-guide.md +410 -0
- package/.claude/skills/command-guide/guides/examples.md +537 -0
- package/.claude/skills/command-guide/guides/getting-started.md +242 -0
- package/.claude/skills/command-guide/guides/implementation-details.md +1010 -0
- package/.claude/skills/command-guide/guides/index-structure.md +326 -0
- package/.claude/skills/command-guide/guides/troubleshooting.md +92 -0
- package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +316 -0
- package/.claude/skills/command-guide/guides/workflow-patterns.md +662 -0
- package/.claude/skills/command-guide/index/all-commands.json +772 -0
- package/.claude/skills/command-guide/index/by-category.json +800 -0
- package/.claude/skills/command-guide/index/by-use-case.json +786 -0
- package/.claude/skills/command-guide/index/command-relationships.json +307 -0
- package/.claude/skills/command-guide/index/essential-commands.json +112 -0
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +857 -0
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +267 -0
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -0
- package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +446 -0
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +558 -0
- package/.claude/skills/command-guide/reference/agents/code-developer.md +311 -0
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +308 -0
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +581 -0
- package/.claude/skills/command-guide/reference/agents/doc-generator.md +330 -0
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +94 -0
- package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +400 -0
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +344 -0
- package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +593 -0
- package/.claude/skills/command-guide/reference/agents/universal-executor.md +131 -0
- package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +440 -0
- package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +93 -0
- package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +687 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -0
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +616 -0
- package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +182 -0
- package/.claude/skills/command-guide/reference/commands/memory/load.md +240 -0
- package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +525 -0
- package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +396 -0
- package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +314 -0
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -0
- package/.claude/skills/command-guide/reference/commands/memory/update-related.md +332 -0
- package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +517 -0
- package/.claude/skills/command-guide/reference/commands/task/breakdown.md +204 -0
- package/.claude/skills/command-guide/reference/commands/task/create.md +152 -0
- package/.claude/skills/command-guide/reference/commands/task/execute.md +270 -0
- package/.claude/skills/command-guide/reference/commands/task/replan.md +437 -0
- package/.claude/skills/command-guide/reference/commands/version.md +254 -0
- package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +447 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +452 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +443 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +398 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -0
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -0
- package/.claude/skills/command-guide/reference/commands/workflow/execute.md +465 -0
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +748 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +664 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +645 -0
- package/.claude/skills/command-guide/reference/commands/workflow/plan.md +551 -0
- package/.claude/skills/command-guide/reference/commands/workflow/replan.md +515 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +606 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +765 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +776 -0
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +298 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +547 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +114 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +77 -0
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +257 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +460 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +400 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +498 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -0
- package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +529 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +766 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +487 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +525 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +163 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +235 -0
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +256 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +1150 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +652 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +454 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +678 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +745 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +788 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +356 -0
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +773 -0
- package/.claude/skills/command-guide/scripts/analyze_commands.py +502 -0
- package/.claude/skills/command-guide/scripts/update-index.sh +130 -0
- package/.claude/skills/command-guide/templates/issue-bug.md +104 -0
- package/.claude/skills/command-guide/templates/issue-diagnosis.md +275 -0
- package/.claude/skills/command-guide/templates/issue-feature.md +97 -0
- package/.claude/skills/command-guide/templates/issue-question.md +141 -0
- package/.claude/skills/prompt-enhancer/SKILL.md +124 -0
- package/.claude/workflows/_template-compare-matrix.html +692 -0
- package/.claude/workflows/chinese-response.md +38 -0
- package/.claude/workflows/cli-templates/fix-plan-template.json +75 -0
- package/.claude/workflows/cli-templates/fix-progress-template.json +48 -0
- package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -0
- package/.claude/workflows/cli-templates/planning-roles/data-architect.md +120 -0
- package/.claude/workflows/cli-templates/planning-roles/product-manager.md +119 -0
- package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -0
- package/.claude/workflows/cli-templates/planning-roles/scrum-master.md +186 -0
- package/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md +281 -0
- package/.claude/workflows/cli-templates/planning-roles/synthesis-role.md +414 -0
- package/.claude/workflows/cli-templates/planning-roles/system-architect.md +106 -0
- package/.claude/workflows/cli-templates/planning-roles/test-strategist.md +124 -0
- package/.claude/workflows/cli-templates/planning-roles/ui-designer.md +379 -0
- package/.claude/workflows/cli-templates/planning-roles/ux-expert.md +240 -0
- package/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt +127 -0
- package/.claude/workflows/cli-templates/prompts/analysis/01-trace-code-execution.txt +115 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt +37 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-technical-document.txt +33 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-architecture.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-analyze-performance.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-assess-security-risks.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/analysis/03-review-quality-standards.txt +29 -0
- package/.claude/workflows/cli-templates/prompts/development/02-generate-tests.txt +70 -0
- package/.claude/workflows/cli-templates/prompts/development/02-implement-component-ui.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/development/02-implement-feature.txt +58 -0
- package/.claude/workflows/cli-templates/prompts/development/02-refactor-codebase.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/development/03-debug-runtime-issues.txt +55 -0
- package/.claude/workflows/cli-templates/prompts/documentation/api.txt +15 -0
- package/.claude/workflows/cli-templates/prompts/documentation/folder-navigation.txt +27 -0
- package/.claude/workflows/cli-templates/prompts/documentation/module-readme.txt +49 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-architecture.txt +41 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-examples.txt +35 -0
- package/.claude/workflows/cli-templates/prompts/documentation/project-readme.txt +35 -0
- package/.claude/workflows/cli-templates/prompts/memory/02-document-module-structure.txt +165 -0
- package/.claude/workflows/cli-templates/prompts/planning/01-plan-architecture-design.txt +109 -0
- package/.claude/workflows/cli-templates/prompts/planning/02-breakdown-task-steps.txt +30 -0
- package/.claude/workflows/cli-templates/prompts/planning/02-design-component-spec.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/planning/03-evaluate-concept-feasibility.txt +127 -0
- package/.claude/workflows/cli-templates/prompts/planning/03-plan-migration-strategy.txt +30 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-api.txt +122 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-components.txt +122 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-config.txt +89 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-core.txt +60 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-patterns.txt +70 -0
- package/.claude/workflows/cli-templates/prompts/rules/rule-testing.txt +81 -0
- package/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt +89 -0
- package/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt +359 -0
- package/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt +185 -0
- package/.claude/workflows/cli-templates/prompts/test/test-concept-analysis.txt +179 -0
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-creative-style.txt +95 -0
- package/.claude/workflows/cli-templates/prompts/universal/00-universal-rigorous-style.txt +92 -0
- package/.claude/workflows/cli-templates/prompts/verification/codex-technical.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/verification/cross-validation.txt +28 -0
- package/.claude/workflows/cli-templates/prompts/verification/gemini-strategic.txt +27 -0
- package/.claude/workflows/cli-templates/prompts/workflow/analysis-results-structure.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/codex-feasibility-validation.txt +176 -0
- package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +131 -0
- package/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt +286 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-aggregation.txt +172 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +94 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +224 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +94 -0
- package/.claude/workflows/cli-templates/prompts/workflow/skill-sessions-timeline.txt +53 -0
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-agent-mode.txt +123 -0
- package/.claude/workflows/cli-templates/prompts/workflow/task-json-cli-mode.txt +182 -0
- package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +112 -0
- package/.claude/workflows/cli-templates/protocols/write-protocol.md +201 -0
- package/.claude/workflows/cli-templates/schemas/conflict-resolution-schema.json +137 -0
- package/.claude/workflows/cli-templates/schemas/debug-log-json-schema.json +127 -0
- package/.claude/workflows/cli-templates/schemas/diagnosis-json-schema.json +234 -0
- package/.claude/workflows/cli-templates/schemas/explore-json-schema.json +124 -0
- package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +298 -0
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +244 -0
- package/.claude/workflows/cli-templates/schemas/project-json-schema.json +221 -0
- package/.claude/workflows/cli-templates/schemas/review-deep-dive-results-schema.json +82 -0
- package/.claude/workflows/cli-templates/schemas/review-dimension-results-schema.json +51 -0
- package/.claude/workflows/cli-templates/tech-stacks/go-dev.md +91 -0
- package/.claude/workflows/cli-templates/tech-stacks/java-dev.md +107 -0
- package/.claude/workflows/cli-templates/tech-stacks/javascript-dev.md +58 -0
- package/.claude/workflows/cli-templates/tech-stacks/python-dev.md +79 -0
- package/.claude/workflows/cli-templates/tech-stacks/react-dev.md +103 -0
- package/.claude/workflows/cli-templates/tech-stacks/typescript-dev.md +83 -0
- package/.claude/workflows/cli-templates/ui-design/systems/animation-tokens.json +247 -0
- package/.claude/workflows/cli-templates/ui-design/systems/design-tokens.json +342 -0
- package/.claude/workflows/cli-templates/ui-design/systems/layout-templates.json +145 -0
- package/.claude/workflows/cli-tools-usage.md +526 -0
- package/.claude/workflows/coding-philosophy.md +70 -0
- package/.claude/workflows/context-tools.md +84 -0
- package/.claude/workflows/file-modification.md +64 -0
- package/.claude/workflows/review-directory-specification.md +336 -0
- package/.claude/workflows/task-core.md +214 -0
- package/.claude/workflows/tool-strategy.md +216 -0
- package/.claude/workflows/windows-platform.md +16 -0
- package/.claude/workflows/workflow-architecture.md +942 -0
- package/.codex/AGENTS.md +63 -0
- package/.codex/prompts/debug.md +318 -0
- package/.codex/prompts/execute.md +273 -0
- package/.codex/prompts/lite-execute.md +164 -0
- package/.codex/prompts/lite-plan.md +469 -0
- package/.codex/prompts.zip +0 -0
- package/.gemini/GEMINI.md +25 -0
- package/.qwen/QWEN.md +25 -0
- package/LICENSE +21 -0
- package/README.md +294 -145
- package/ccw/README.md +145 -0
- package/ccw/dist/core/lite-scanner-complete.d.ts.map +1 -0
- package/ccw/dist/core/lite-scanner-complete.js +371 -0
- package/ccw/dist/core/lite-scanner-complete.js.map +1 -0
- package/ccw/dist/core/lite-scanner.d.ts.map +1 -0
- package/ccw/dist/core/lite-scanner.js +371 -0
- package/ccw/dist/core/lite-scanner.js.map +1 -0
- package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/claude-routes.js +1015 -0
- package/ccw/dist/core/routes/claude-routes.js.map +1 -0
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/cli-routes.js +469 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -0
- package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/rules-routes.js +443 -0
- package/ccw/dist/core/routes/rules-routes.js.map +1 -0
- package/ccw/dist/core/routes/skills-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/skills-routes.js +651 -0
- package/ccw/dist/core/routes/skills-routes.js.map +1 -0
- package/ccw/dist/tools/cli-executor.d.ts +376 -0
- package/ccw/dist/tools/cli-executor.d.ts.map +1 -0
- package/ccw/dist/tools/cli-executor.js +1677 -0
- package/ccw/dist/tools/cli-executor.js.map +1 -0
- package/ccw/package.json +65 -0
- package/ccw/src/core/lite-scanner-complete.ts +473 -0
- package/ccw/src/core/lite-scanner.ts +473 -0
- package/ccw/src/core/routes/claude-routes.ts +1181 -0
- package/ccw/src/core/routes/cli-routes.ts +562 -0
- package/ccw/src/core/routes/rules-routes.ts +527 -0
- package/ccw/src/core/routes/skills-routes.ts +737 -0
- package/ccw/src/templates/dashboard-js/i18n.js +2969 -0
- package/ccw/src/templates/dashboard-js/views/claude-manager.js +926 -0
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +2274 -0
- package/ccw/src/templates/dashboard-js/views/rules-manager.js +857 -0
- package/ccw/src/templates/dashboard-js/views/skills-manager.js +1183 -0
- package/ccw/src/tools/cli-executor.ts +2082 -0
- package/codex-lens/pyproject.toml +66 -0
- package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
- package/codex-lens/src/codexlens/__init__.py +28 -0
- package/codex-lens/src/codexlens/__main__.py +14 -0
- package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__init__.py +27 -0
- package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +1931 -0
- package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
- package/codex-lens/src/codexlens/cli/model_manager.py +311 -0
- package/codex-lens/src/codexlens/cli/output.py +124 -0
- package/codex-lens/src/codexlens/config.py +201 -0
- package/codex-lens/src/codexlens/entities.py +121 -0
- package/codex-lens/src/codexlens/errors.py +55 -0
- package/codex-lens/src/codexlens/indexing/README.md +77 -0
- package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
- package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
- package/codex-lens/src/codexlens/parsers/factory.py +256 -0
- package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
- package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
- package/codex-lens/src/codexlens/search/__init__.py +15 -0
- package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/chain_search.py +647 -0
- package/codex-lens/src/codexlens/search/enrichment.py +150 -0
- package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
- package/codex-lens/src/codexlens/search/query_parser.py +242 -0
- package/codex-lens/src/codexlens/search/ranking.py +274 -0
- package/codex-lens/src/codexlens/semantic/__init__.py +76 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.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__/ollama_backend.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
- package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
- package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
- package/codex-lens/src/codexlens/semantic/embedder.py +244 -0
- package/codex-lens/src/codexlens/semantic/gpu_support.py +192 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
- package/codex-lens/src/codexlens/storage/__init__.py +29 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
- package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
- package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
- package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
- package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
- package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
- package/codex-lens/src/codexlens/storage/registry.py +670 -0
- package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
- package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
- package/package.json +36 -28
- package/dist/core/lite-scanner-complete.d.ts.map +0 -1
- package/dist/core/lite-scanner-complete.js +0 -368
- package/dist/core/lite-scanner-complete.js.map +0 -1
- package/dist/core/lite-scanner.d.ts.map +0 -1
- package/dist/core/lite-scanner.js +0 -368
- package/dist/core/lite-scanner.js.map +0 -1
- package/dist/core/routes/claude-routes.d.ts.map +0 -1
- package/dist/core/routes/claude-routes.js +0 -1017
- package/dist/core/routes/claude-routes.js.map +0 -1
- package/dist/core/routes/cli-routes.d.ts.map +0 -1
- package/dist/core/routes/cli-routes.js +0 -468
- package/dist/core/routes/cli-routes.js.map +0 -1
- package/dist/core/routes/rules-routes.d.ts.map +0 -1
- package/dist/core/routes/rules-routes.js +0 -442
- package/dist/core/routes/rules-routes.js.map +0 -1
- package/dist/core/routes/skills-routes.d.ts.map +0 -1
- package/dist/core/routes/skills-routes.js +0 -533
- package/dist/core/routes/skills-routes.js.map +0 -1
- package/dist/tools/cli-executor.d.ts +0 -373
- package/dist/tools/cli-executor.d.ts.map +0 -1
- package/dist/tools/cli-executor.js +0 -1625
- package/dist/tools/cli-executor.js.map +0 -1
- package/src/core/lite-scanner-complete.ts +0 -469
- package/src/core/lite-scanner.ts +0 -469
- package/src/core/routes/claude-routes.ts +0 -1183
- package/src/core/routes/cli-routes.ts +0 -561
- package/src/core/routes/rules-routes.ts +0 -526
- package/src/core/routes/skills-routes.ts +0 -599
- package/src/templates/dashboard-js/i18n.js +0 -2963
- package/src/templates/dashboard-js/views/claude-manager.js +0 -912
- package/src/templates/dashboard-js/views/cli-manager.js +0 -2272
- package/src/templates/dashboard-js/views/rules-manager.js +0 -828
- package/src/templates/dashboard-js/views/skills-manager.js +0 -819
- package/src/tools/cli-executor.ts +0 -2014
- /package/{bin → ccw/bin}/ccw-mcp.js +0 -0
- /package/{bin → ccw/bin}/ccw.js +0 -0
- /package/{dist → ccw/dist}/cli.d.ts +0 -0
- /package/{dist → ccw/dist}/cli.d.ts.map +0 -0
- /package/{dist → ccw/dist}/cli.js +0 -0
- /package/{dist → ccw/dist}/cli.js.map +0 -0
- /package/{dist → ccw/dist}/commands/cli.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/cli.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/cli.js +0 -0
- /package/{dist → ccw/dist}/commands/cli.js.map +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.js +0 -0
- /package/{dist → ccw/dist}/commands/core-memory.js.map +0 -0
- /package/{dist → ccw/dist}/commands/hook.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/hook.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/hook.js +0 -0
- /package/{dist → ccw/dist}/commands/hook.js.map +0 -0
- /package/{dist → ccw/dist}/commands/install.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/install.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/install.js +0 -0
- /package/{dist → ccw/dist}/commands/install.js.map +0 -0
- /package/{dist → ccw/dist}/commands/list.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/list.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/list.js +0 -0
- /package/{dist → ccw/dist}/commands/list.js.map +0 -0
- /package/{dist → ccw/dist}/commands/memory.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/memory.js +0 -0
- /package/{dist → ccw/dist}/commands/memory.js.map +0 -0
- /package/{dist → ccw/dist}/commands/serve.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/serve.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/serve.js +0 -0
- /package/{dist → ccw/dist}/commands/serve.js.map +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.js +0 -0
- /package/{dist → ccw/dist}/commands/session-path-resolver.js.map +0 -0
- /package/{dist → ccw/dist}/commands/session.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/session.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/session.js +0 -0
- /package/{dist → ccw/dist}/commands/session.js.map +0 -0
- /package/{dist → ccw/dist}/commands/stop.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/stop.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/stop.js +0 -0
- /package/{dist → ccw/dist}/commands/stop.js.map +0 -0
- /package/{dist → ccw/dist}/commands/tool.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/tool.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/tool.js +0 -0
- /package/{dist → ccw/dist}/commands/tool.js.map +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.js +0 -0
- /package/{dist → ccw/dist}/commands/uninstall.js.map +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.js +0 -0
- /package/{dist → ccw/dist}/commands/upgrade.js.map +0 -0
- /package/{dist → ccw/dist}/commands/view.d.ts +0 -0
- /package/{dist → ccw/dist}/commands/view.d.ts.map +0 -0
- /package/{dist → ccw/dist}/commands/view.js +0 -0
- /package/{dist → ccw/dist}/commands/view.js.map +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.d.ts +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.d.ts.map +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.js +0 -0
- /package/{dist → ccw/dist}/config/storage-paths.js.map +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.js +0 -0
- /package/{dist → ccw/dist}/core/cache-manager.js.map +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.d.ts +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.js +0 -0
- /package/{dist → ccw/dist}/core/claude-freshness.js.map +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.d.ts +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.js +0 -0
- /package/{dist → ccw/dist}/core/core-memory-store.js.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.js +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator-patch.js.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.d.ts +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.js +0 -0
- /package/{dist → ccw/dist}/core/dashboard-generator.js.map +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.d.ts +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.js +0 -0
- /package/{dist → ccw/dist}/core/data-aggregator.js.map +0 -0
- /package/{dist → ccw/dist}/core/history-importer.d.ts +0 -0
- /package/{dist → ccw/dist}/core/history-importer.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/history-importer.js +0 -0
- /package/{dist → ccw/dist}/core/history-importer.js.map +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner-complete.d.ts +0 -0
- /package/{dist → ccw/dist}/core/lite-scanner.d.ts +0 -0
- /package/{dist → ccw/dist}/core/manifest.d.ts +0 -0
- /package/{dist → ccw/dist}/core/manifest.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/manifest.js +0 -0
- /package/{dist → ccw/dist}/core/manifest.js.map +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.js +0 -0
- /package/{dist → ccw/dist}/core/memory-embedder-bridge.js.map +0 -0
- /package/{dist → ccw/dist}/core/memory-store.d.ts +0 -0
- /package/{dist → ccw/dist}/core/memory-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/memory-store.js +0 -0
- /package/{dist → ccw/dist}/core/memory-store.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/ccw-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/claude-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/cli-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/codexlens-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/core-memory-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/files-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/graph-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/help-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/hooks-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js +0 -0
- /package/{dist → ccw/dist}/core/routes/mcp-templates-db.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/memory-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/rules-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/session-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/skills-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/status-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.d.ts +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.js +0 -0
- /package/{dist → ccw/dist}/core/routes/system-routes.js.map +0 -0
- /package/{dist → ccw/dist}/core/server.d.ts +0 -0
- /package/{dist → ccw/dist}/core/server.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/server.js +0 -0
- /package/{dist → ccw/dist}/core/server.js.map +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.d.ts +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.js +0 -0
- /package/{dist → ccw/dist}/core/session-clustering-service.js.map +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.d.ts +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.js +0 -0
- /package/{dist → ccw/dist}/core/session-scanner.js.map +0 -0
- /package/{dist → ccw/dist}/core/websocket.d.ts +0 -0
- /package/{dist → ccw/dist}/core/websocket.d.ts.map +0 -0
- /package/{dist → ccw/dist}/core/websocket.js +0 -0
- /package/{dist → ccw/dist}/core/websocket.js.map +0 -0
- /package/{dist → ccw/dist}/index.d.ts +0 -0
- /package/{dist → ccw/dist}/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/index.js +0 -0
- /package/{dist → ccw/dist}/index.js.map +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.d.ts +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.js +0 -0
- /package/{dist → ccw/dist}/mcp-server/index.js.map +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.js +0 -0
- /package/{dist → ccw/dist}/tools/classify-folders.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-config-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.js +0 -0
- /package/{dist → ccw/dist}/tools/cli-history-store.js.map +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.js +0 -0
- /package/{dist → ccw/dist}/tools/codex-lens.js.map +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js +0 -0
- /package/{dist → ccw/dist}/tools/convert-tokens-to-css.js.map +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.js +0 -0
- /package/{dist → ccw/dist}/tools/core-memory.js.map +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.js +0 -0
- /package/{dist → ccw/dist}/tools/detect-changed-modules.js.map +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.js +0 -0
- /package/{dist → ccw/dist}/tools/discover-design-files.js.map +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.js +0 -0
- /package/{dist → ccw/dist}/tools/edit-file.js.map +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.js +0 -0
- /package/{dist → ccw/dist}/tools/generate-module-docs.js.map +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.js +0 -0
- /package/{dist → ccw/dist}/tools/get-modules-by-depth.js.map +0 -0
- /package/{dist → ccw/dist}/tools/index.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/index.js +0 -0
- /package/{dist → ccw/dist}/tools/index.js.map +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.js +0 -0
- /package/{dist → ccw/dist}/tools/native-session-discovery.js.map +0 -0
- /package/{dist → ccw/dist}/tools/notifier.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/notifier.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/notifier.js +0 -0
- /package/{dist → ccw/dist}/tools/notifier.js.map +0 -0
- /package/{dist → ccw/dist}/tools/read-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/read-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/read-file.js +0 -0
- /package/{dist → ccw/dist}/tools/read-file.js.map +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.js +0 -0
- /package/{dist → ccw/dist}/tools/resume-strategy.js.map +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.js +0 -0
- /package/{dist → ccw/dist}/tools/session-content-parser.js.map +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/session-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.js +0 -0
- /package/{dist → ccw/dist}/tools/smart-context.js.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.js +0 -0
- /package/{dist → ccw/dist}/tools/smart-search.js.map +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.js +0 -0
- /package/{dist → ccw/dist}/tools/storage-manager.js.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.js +0 -0
- /package/{dist → ccw/dist}/tools/ui-generate-preview.js.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{dist → ccw/dist}/tools/ui-instantiate-prototypes.js.map +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.js +0 -0
- /package/{dist → ccw/dist}/tools/update-module-claude.js.map +0 -0
- /package/{dist → ccw/dist}/tools/write-file.d.ts +0 -0
- /package/{dist → ccw/dist}/tools/write-file.d.ts.map +0 -0
- /package/{dist → ccw/dist}/tools/write-file.js +0 -0
- /package/{dist → ccw/dist}/tools/write-file.js.map +0 -0
- /package/{dist → ccw/dist}/types/config.d.ts +0 -0
- /package/{dist → ccw/dist}/types/config.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/config.js +0 -0
- /package/{dist → ccw/dist}/types/config.js.map +0 -0
- /package/{dist → ccw/dist}/types/index.d.ts +0 -0
- /package/{dist → ccw/dist}/types/index.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/index.js +0 -0
- /package/{dist → ccw/dist}/types/index.js.map +0 -0
- /package/{dist → ccw/dist}/types/session.d.ts +0 -0
- /package/{dist → ccw/dist}/types/session.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/session.js +0 -0
- /package/{dist → ccw/dist}/types/session.js.map +0 -0
- /package/{dist → ccw/dist}/types/tool.d.ts +0 -0
- /package/{dist → ccw/dist}/types/tool.d.ts.map +0 -0
- /package/{dist → ccw/dist}/types/tool.js +0 -0
- /package/{dist → ccw/dist}/types/tool.js.map +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.js +0 -0
- /package/{dist → ccw/dist}/utils/browser-launcher.js.map +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.js +0 -0
- /package/{dist → ccw/dist}/utils/file-utils.js.map +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.js +0 -0
- /package/{dist → ccw/dist}/utils/path-resolver.js.map +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.js +0 -0
- /package/{dist → ccw/dist}/utils/path-validator.js.map +0 -0
- /package/{dist → ccw/dist}/utils/ui.d.ts +0 -0
- /package/{dist → ccw/dist}/utils/ui.d.ts.map +0 -0
- /package/{dist → ccw/dist}/utils/ui.js +0 -0
- /package/{dist → ccw/dist}/utils/ui.js.map +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db-shm +0 -0
- /package/{src → ccw/src}/.workflow/.cli-history/history.db-wal +0 -0
- /package/{src → ccw/src}/cli.ts +0 -0
- /package/{src → ccw/src}/commands/cli.ts +0 -0
- /package/{src → ccw/src}/commands/core-memory.ts +0 -0
- /package/{src → ccw/src}/commands/hook.ts +0 -0
- /package/{src → ccw/src}/commands/install.ts +0 -0
- /package/{src → ccw/src}/commands/list.ts +0 -0
- /package/{src → ccw/src}/commands/memory.ts +0 -0
- /package/{src → ccw/src}/commands/serve.ts +0 -0
- /package/{src → ccw/src}/commands/session-path-resolver.ts +0 -0
- /package/{src → ccw/src}/commands/session.ts +0 -0
- /package/{src → ccw/src}/commands/stop.ts +0 -0
- /package/{src → ccw/src}/commands/tool.ts +0 -0
- /package/{src → ccw/src}/commands/uninstall.ts +0 -0
- /package/{src → ccw/src}/commands/upgrade.ts +0 -0
- /package/{src → ccw/src}/commands/view.ts +0 -0
- /package/{src → ccw/src}/config/storage-paths.ts +0 -0
- /package/{src → ccw/src}/core/cache-manager.ts +0 -0
- /package/{src → ccw/src}/core/claude-freshness.ts +0 -0
- /package/{src → ccw/src}/core/core-memory-store.ts +0 -0
- /package/{src → ccw/src}/core/dashboard-generator-patch.ts +0 -0
- /package/{src → ccw/src}/core/dashboard-generator.ts +0 -0
- /package/{src → ccw/src}/core/data-aggregator.ts +0 -0
- /package/{src → ccw/src}/core/history-importer.ts +0 -0
- /package/{src → ccw/src}/core/manifest.ts +0 -0
- /package/{src → ccw/src}/core/memory-embedder-bridge.ts +0 -0
- /package/{src → ccw/src}/core/memory-store.ts +0 -0
- /package/{src → ccw/src}/core/routes/ccw-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/codexlens-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/core-memory-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/files-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/graph-routes.md +0 -0
- /package/{src → ccw/src}/core/routes/graph-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/help-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/hooks-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/mcp-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/mcp-routes.ts.backup +0 -0
- /package/{src → ccw/src}/core/routes/mcp-templates-db.ts +0 -0
- /package/{src → ccw/src}/core/routes/memory-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/session-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/status-routes.ts +0 -0
- /package/{src → ccw/src}/core/routes/system-routes.ts +0 -0
- /package/{src → ccw/src}/core/server.ts +0 -0
- /package/{src → ccw/src}/core/session-clustering-service.ts +0 -0
- /package/{src → ccw/src}/core/session-scanner.ts +0 -0
- /package/{src → ccw/src}/core/websocket.ts +0 -0
- /package/{src → ccw/src}/index.ts +0 -0
- /package/{src → ccw/src}/mcp-server/index.ts +0 -0
- /package/{src → ccw/src}/templates/assets/css/github-dark.min.css +0 -0
- /package/{src → ccw/src}/templates/assets/css/github.min.css +0 -0
- /package/{src → ccw/src}/templates/assets/js/cytoscape.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/d3.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/highlight.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/lucide.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/marked.min.js +0 -0
- /package/{src → ccw/src}/templates/assets/js/tailwind.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/01-base.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/02-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/03-tasks.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/04-lite-tasks.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/05-context.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/06-cards.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/07-managers.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/08-review.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/09-explorer.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/10-cli-status.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/11-cli-history.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/12-cli-legacy.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/13-cli-ccw.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/14-cli-modals.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/15-cli-endpoints.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/16-cli-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/17-cli-conversation.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/18-cli-settings.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/19-cli-native-session.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/20-cli-taskqueue.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/21-cli-toolmgmt.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/22-cli-semantic.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/23-memory.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/24-prompt-history.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/25-skills-rules.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/26-claude-manager.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/27-graph-explorer.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/28-mcp-manager.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/29-help.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-css/30-core-memory.css +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/api.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_conflict_tab.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_exp_helpers.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/_review_tab.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/carousel.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/cli-history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/cli-status.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/flowchart.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/global-notifications.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/hook-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/index-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/mcp-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/modals.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/navigation.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/notifications.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/sidebar.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/storage-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/tabs-context.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/tabs-other.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-core.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-drawer-renderers.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/task-queue-sidebar.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/theme.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/components/version-check.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/help-i18n.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/main.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/state.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/utils.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/codexlens-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/core-memory-clusters.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/core-memory.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/explorer.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/fix-session.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/graph-explorer.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/help.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/home.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/hook-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/lite-tasks.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.backup +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/mcp-manager.js.new +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/memory.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/project-overview.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/prompt-history.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/review-session.js +0 -0
- /package/{src → ccw/src}/templates/dashboard-js/views/session-detail.js +0 -0
- /package/{src → ccw/src}/templates/dashboard.html +0 -0
- /package/{src → ccw/src}/templates/hooks-config-example.json +0 -0
- /package/{src → ccw/src}/templates/review-cycle-dashboard.html +0 -0
- /package/{src → ccw/src}/templates/workflow-dashboard.html +0 -0
- /package/{src → ccw/src}/tools/classify-folders.ts +0 -0
- /package/{src → ccw/src}/tools/cli-config-manager.ts +0 -0
- /package/{src → ccw/src}/tools/cli-history-store.ts +0 -0
- /package/{src → ccw/src}/tools/codex-lens.ts +0 -0
- /package/{src → ccw/src}/tools/convert-tokens-to-css.ts +0 -0
- /package/{src → ccw/src}/tools/core-memory.ts +0 -0
- /package/{src → ccw/src}/tools/detect-changed-modules.ts +0 -0
- /package/{src → ccw/src}/tools/discover-design-files.ts +0 -0
- /package/{src → ccw/src}/tools/edit-file.ts +0 -0
- /package/{src → ccw/src}/tools/generate-module-docs.ts +0 -0
- /package/{src → ccw/src}/tools/get-modules-by-depth.ts +0 -0
- /package/{src → ccw/src}/tools/index.ts +0 -0
- /package/{src → ccw/src}/tools/native-session-discovery.ts +0 -0
- /package/{src → ccw/src}/tools/notifier.ts +0 -0
- /package/{src → ccw/src}/tools/read-file.ts +0 -0
- /package/{src → ccw/src}/tools/resume-strategy.ts +0 -0
- /package/{src → ccw/src}/tools/session-content-parser.ts +0 -0
- /package/{src → ccw/src}/tools/session-manager.ts +0 -0
- /package/{src → ccw/src}/tools/smart-context.ts +0 -0
- /package/{src → ccw/src}/tools/smart-search.ts +0 -0
- /package/{src → ccw/src}/tools/smart-search.ts.backup +0 -0
- /package/{src → ccw/src}/tools/storage-manager.ts +0 -0
- /package/{src → ccw/src}/tools/ui-generate-preview.js +0 -0
- /package/{src → ccw/src}/tools/ui-instantiate-prototypes.js +0 -0
- /package/{src → ccw/src}/tools/update-module-claude.js +0 -0
- /package/{src → ccw/src}/tools/write-file.ts +0 -0
- /package/{src → ccw/src}/types/config.ts +0 -0
- /package/{src → ccw/src}/types/index.ts +0 -0
- /package/{src → ccw/src}/types/session.ts +0 -0
- /package/{src → ccw/src}/types/tool.ts +0 -0
- /package/{src → ccw/src}/utils/browser-launcher.ts +0 -0
- /package/{src → ccw/src}/utils/file-utils.ts +0 -0
- /package/{src → ccw/src}/utils/path-resolver.ts +0 -0
- /package/{src → ccw/src}/utils/path-validator.ts +0 -0
- /package/{src → ccw/src}/utils/ui.ts +0 -0
package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md
ADDED
|
@@ -0,0 +1,1150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: animation-extract
|
|
3
|
+
description: Extract animation and transition patterns from prompt inference and image references for design system documentation
|
|
4
|
+
argument-hint: "[--design-id <id>] [--session <id>] [--images "<glob>"] [--focus "<types>"] [--interactive] [--refine]"
|
|
5
|
+
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), Bash(*), AskUserQuestion(*), Task(ui-design-agent)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Animation Extraction Command
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Extract animation and transition patterns from prompt inference and image references using AI analysis. Directly generates production-ready animation systems with complete `animation-tokens.json`.
|
|
13
|
+
|
|
14
|
+
**Strategy**: AI-Driven Animation Specification with Visual Previews
|
|
15
|
+
|
|
16
|
+
- **Dual Modes**: Exploration mode (generate from scratch) or Refinement mode (fine-tune existing)
|
|
17
|
+
- **Prompt Inference**: AI analyzes design intent from textual descriptions and image references
|
|
18
|
+
- **Question Generation**: Agent generates context-aware specification questions with visual previews
|
|
19
|
+
- **Refinement Options**: Fine-tune timing, easing, context variations, and interaction intensity
|
|
20
|
+
- **Visual Previews**: Timeline representations, easing curve ASCII art, and animation sequence diagrams
|
|
21
|
+
- **Flexible Input**: Image references and prompts for animation specification
|
|
22
|
+
- **Optional Interaction**: User answers questions only when `--interactive` flag present
|
|
23
|
+
- **Production-Ready**: CSS var() format, WCAG-compliant, semantic naming
|
|
24
|
+
- **Default Behavior**: Non-interactive mode uses inferred patterns + best practices
|
|
25
|
+
|
|
26
|
+
## Execution Process
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Input Parsing:
|
|
30
|
+
├─ Parse flags: --design-id, --session, --images, --focus, --interactive, --refine
|
|
31
|
+
└─ Decision (mode detection):
|
|
32
|
+
├─ --refine flag → Refinement Mode
|
|
33
|
+
└─ No --refine → Exploration Mode
|
|
34
|
+
|
|
35
|
+
Phase 0: Setup & Input Validation
|
|
36
|
+
├─ Step 1: Detect input mode & base path
|
|
37
|
+
├─ Step 2: Prepare image references (if available)
|
|
38
|
+
├─ Step 3: Load design tokens context
|
|
39
|
+
└─ Step 4: Memory check (skip if exists)
|
|
40
|
+
|
|
41
|
+
Phase 1: Animation Specification Generation
|
|
42
|
+
├─ Step 1: Load project context
|
|
43
|
+
├─ Step 2: Generate animation specification options (Agent Task 1)
|
|
44
|
+
│ └─ Decision:
|
|
45
|
+
│ ├─ Exploration Mode → Generate specification questions
|
|
46
|
+
│ └─ Refinement Mode → Generate refinement options
|
|
47
|
+
└─ Step 3: Verify options file created
|
|
48
|
+
|
|
49
|
+
Phase 1.5: User Confirmation (Optional)
|
|
50
|
+
└─ Decision (--interactive flag):
|
|
51
|
+
├─ --interactive present → Present options, capture selection
|
|
52
|
+
└─ No --interactive → Skip to Phase 2
|
|
53
|
+
|
|
54
|
+
Phase 2: Animation System Generation
|
|
55
|
+
├─ Step 1: Load user selection or use defaults
|
|
56
|
+
├─ Step 2: Create output directory
|
|
57
|
+
└─ Step 3: Launch animation generation task (Agent Task 2)
|
|
58
|
+
|
|
59
|
+
Phase 3: Verify Output
|
|
60
|
+
├─ Step 1: Check files created
|
|
61
|
+
└─ Step 2: Verify file sizes
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Phase 0: Setup & Input Validation
|
|
65
|
+
|
|
66
|
+
### Step 1: Detect Input Mode & Base Path
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Detect input source
|
|
70
|
+
# Priority: --images → visual references available | no --images → prompt-only mode
|
|
71
|
+
|
|
72
|
+
# Parse images if provided (glob pattern)
|
|
73
|
+
IF --images:
|
|
74
|
+
# Check if glob pattern matches any files
|
|
75
|
+
image_files = bash(find . -path "{--images}" -type f 2>/dev/null | head -10)
|
|
76
|
+
IF image_files:
|
|
77
|
+
has_images = true
|
|
78
|
+
image_count = bash(find . -path "{--images}" -type f 2>/dev/null | wc -l)
|
|
79
|
+
ELSE:
|
|
80
|
+
has_images = false
|
|
81
|
+
REPORT: "⚠️ No image files found matching pattern: {--images}"
|
|
82
|
+
ELSE:
|
|
83
|
+
has_images = false
|
|
84
|
+
|
|
85
|
+
# Parse animation focus (if provided)
|
|
86
|
+
IF --focus:
|
|
87
|
+
focus_types = split(--focus, ",") # e.g., "transitions,hover,scroll"
|
|
88
|
+
ELSE:
|
|
89
|
+
focus_types = ["all"] # Extract all animation types
|
|
90
|
+
|
|
91
|
+
# Check interactive mode flag
|
|
92
|
+
interactive_mode = --interactive OR false
|
|
93
|
+
|
|
94
|
+
# Check refinement mode flag
|
|
95
|
+
refine_mode = --refine OR false
|
|
96
|
+
|
|
97
|
+
IF refine_mode:
|
|
98
|
+
REPORT: "🔧 Refinement mode enabled: Will refine existing animation system"
|
|
99
|
+
ELSE:
|
|
100
|
+
REPORT: "✨ Exploration mode: Will generate animation system from scratch"
|
|
101
|
+
|
|
102
|
+
# Determine base path with priority: --design-id > --session > auto-detect
|
|
103
|
+
if [ -n "$DESIGN_ID" ]; then
|
|
104
|
+
# Exact match by design ID
|
|
105
|
+
relative_path=$(find .workflow -name "${DESIGN_ID}" -type d -print -quit)
|
|
106
|
+
elif [ -n "$SESSION_ID" ]; then
|
|
107
|
+
# Latest in session
|
|
108
|
+
relative_path=$(find .workflow/active/WFS-$SESSION_ID -name "design-run-*" -type d -printf "%T@ %p\n" 2>/dev/null | sort -nr | head -1 | cut -d' ' -f2)
|
|
109
|
+
else
|
|
110
|
+
# Latest globally
|
|
111
|
+
relative_path=$(find .workflow -name "design-run-*" -type d -printf "%T@ %p\n" 2>/dev/null | sort -nr | head -1 | cut -d' ' -f2)
|
|
112
|
+
fi
|
|
113
|
+
|
|
114
|
+
# Validate and convert to absolute path
|
|
115
|
+
if [ -z "$relative_path" ] || [ ! -d "$relative_path" ]; then
|
|
116
|
+
echo "❌ ERROR: Design run not found"
|
|
117
|
+
echo "💡 HINT: Run '/workflow:ui-design:list' to see available design runs"
|
|
118
|
+
exit 1
|
|
119
|
+
fi
|
|
120
|
+
|
|
121
|
+
base_path=$(cd "$relative_path" && pwd)
|
|
122
|
+
bash(echo "✓ Base path: $base_path")
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Step 2: Prepare Image References (If Available)
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Load image references if provided
|
|
129
|
+
IF has_images:
|
|
130
|
+
REPORT: "🔍 Loading image references for animation analysis"
|
|
131
|
+
REPORT: " Pattern: {--images}"
|
|
132
|
+
REPORT: " Found: {image_count} image(s)"
|
|
133
|
+
|
|
134
|
+
bash(mkdir -p {base_path}/.intermediates/animation-analysis)
|
|
135
|
+
|
|
136
|
+
# Store image paths for agent reference
|
|
137
|
+
image_list = []
|
|
138
|
+
FOR image_file IN image_files:
|
|
139
|
+
image_list.append(image_file)
|
|
140
|
+
REPORT: " • {image_file}"
|
|
141
|
+
|
|
142
|
+
# Save image references metadata
|
|
143
|
+
image_metadata = {
|
|
144
|
+
"pattern": --images,
|
|
145
|
+
"count": image_count,
|
|
146
|
+
"files": image_list,
|
|
147
|
+
"timestamp": current_timestamp()
|
|
148
|
+
}
|
|
149
|
+
Write({base_path}/.intermediates/animation-analysis/image-references.json, JSON.stringify(image_metadata, indent=2))
|
|
150
|
+
|
|
151
|
+
REPORT: " ✅ Image references prepared for AI analysis"
|
|
152
|
+
ELSE:
|
|
153
|
+
REPORT: "ℹ️ No image references provided - using prompt-only mode"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Image Analysis Strategy**:
|
|
157
|
+
- Agent analyzes visual motion cues from reference images
|
|
158
|
+
- Infers animation patterns from UI element positioning and design style
|
|
159
|
+
- Generates context-aware animation specifications based on visual analysis
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
### Step 3: Load Design Tokens Context
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Load existing design tokens for duration/easing alignment
|
|
167
|
+
IF exists({base_path}/style-extraction/style-1/design-tokens.json):
|
|
168
|
+
design_tokens = Read({base_path}/style-extraction/style-1/design-tokens.json)
|
|
169
|
+
has_design_context = true
|
|
170
|
+
ELSE:
|
|
171
|
+
has_design_context = false
|
|
172
|
+
REPORT: "ℹ️ No design tokens found - animation tokens will use standalone values"
|
|
173
|
+
|
|
174
|
+
# Create output directory
|
|
175
|
+
bash(mkdir -p {base_path}/animation-extraction)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Step 4: Memory Check
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Check if output already exists
|
|
182
|
+
bash(test -f {base_path}/animation-extraction/animation-tokens.json && echo "exists")
|
|
183
|
+
IF exists: SKIP to completion
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
**Phase 0 Output**: `input_mode`, `base_path`, `has_images`, `image_list[]`, `focus_types[]`, `has_design_context`, `interactive_mode`, `refine_mode`
|
|
189
|
+
|
|
190
|
+
## Phase 1: Animation Specification Generation
|
|
191
|
+
|
|
192
|
+
### Step 1: Load Project Context
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Load brainstorming context if available
|
|
196
|
+
bash(test -f {base_path}/.brainstorming/role-analysis.md && cat it)
|
|
197
|
+
|
|
198
|
+
# Load image references if available
|
|
199
|
+
IF has_images:
|
|
200
|
+
image_references = Read({base_path}/.intermediates/animation-analysis/image-references.json)
|
|
201
|
+
REPORT: "📸 Image references loaded: {image_references.count} file(s)"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Step 2: Generate Animation Specification Options (Agent Task 1)
|
|
205
|
+
|
|
206
|
+
**Executor**: `Task(ui-design-agent)`
|
|
207
|
+
|
|
208
|
+
**Conditional Logic**: Branch based on `refine_mode` flag
|
|
209
|
+
|
|
210
|
+
```javascript
|
|
211
|
+
IF NOT refine_mode:
|
|
212
|
+
// EXPLORATION MODE (default)
|
|
213
|
+
Task(ui-design-agent): `
|
|
214
|
+
[ANIMATION_SPECIFICATION_GENERATION_TASK]
|
|
215
|
+
Generate context-aware animation specification questions
|
|
216
|
+
|
|
217
|
+
SESSION: {session_id} | MODE: explore | BASE_PATH: {base_path}
|
|
218
|
+
|
|
219
|
+
## Input Analysis
|
|
220
|
+
- Focus types: {focus_types.join(", ")}
|
|
221
|
+
- Design context: {has_design_context ? "Available" : "None"}
|
|
222
|
+
- Image references: {has_images ? "Available (" + image_count + " files)" : "None"}
|
|
223
|
+
${has_images ? "- Image Data: Read from .intermediates/animation-analysis/image-references.json" : ""}
|
|
224
|
+
|
|
225
|
+
## Analysis Rules
|
|
226
|
+
- Analyze image references (if available) to infer animation patterns from visual cues
|
|
227
|
+
- Generate questions covering timing, easing, interactions, and motion patterns
|
|
228
|
+
- Based on focus_types, include relevant categories:
|
|
229
|
+
* "all" or "transitions": timing_scale, easing_philosophy
|
|
230
|
+
* "all" or "interactions" or "hover": button_interactions, card_interactions, input_interactions
|
|
231
|
+
* "all" or "page": page_transitions
|
|
232
|
+
* "all" or "loading": loading_states
|
|
233
|
+
* "all" or "scroll": scroll_animations
|
|
234
|
+
|
|
235
|
+
## Generate Questions
|
|
236
|
+
For each applicable category, create question with:
|
|
237
|
+
1. **Category ID** (e.g., "timing_scale", "button_interactions")
|
|
238
|
+
2. **Question text** (in Chinese, clear and concise)
|
|
239
|
+
3. **Options** (2-5 options per question):
|
|
240
|
+
- Option key (a, b, c, d, e)
|
|
241
|
+
- Option label (brief description)
|
|
242
|
+
- Option details (detailed explanation with technical specs)
|
|
243
|
+
- Technical specs (duration values, easing curves, transform values)
|
|
244
|
+
- Visual preview (timeline representation or easing curve ASCII art)
|
|
245
|
+
|
|
246
|
+
## Output
|
|
247
|
+
Write single JSON file: {base_path}/.intermediates/animation-analysis/analysis-options.json
|
|
248
|
+
|
|
249
|
+
Use schema:
|
|
250
|
+
{
|
|
251
|
+
"metadata": {
|
|
252
|
+
"generated_at": "<timestamp>",
|
|
253
|
+
"focus_types": [...],
|
|
254
|
+
"total_questions": <count>,
|
|
255
|
+
"has_css_data": <boolean>
|
|
256
|
+
},
|
|
257
|
+
"specification_options": [
|
|
258
|
+
{
|
|
259
|
+
"id": 1,
|
|
260
|
+
"category": "timing_scale",
|
|
261
|
+
"question": "您的设计需要什么样的过渡速度?",
|
|
262
|
+
"options": [
|
|
263
|
+
{
|
|
264
|
+
"key": "a",
|
|
265
|
+
"label": "快速敏捷",
|
|
266
|
+
"details": "100-200ms 过渡,适合工具型应用和即时反馈场景",
|
|
267
|
+
"duration_values": {"fast": "100ms", "normal": "150ms", "slow": "200ms"},
|
|
268
|
+
"visual_preview": {
|
|
269
|
+
"timeline": "0ms ━━━━━━━━━━ 150ms",
|
|
270
|
+
"description": "快速完成,几乎瞬时反馈"
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
...
|
|
274
|
+
]
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": 2,
|
|
278
|
+
"category": "easing_philosophy",
|
|
279
|
+
"question": "您偏好什么样的动画缓动曲线?",
|
|
280
|
+
"options": [
|
|
281
|
+
{
|
|
282
|
+
"key": "a",
|
|
283
|
+
"label": "自然缓动",
|
|
284
|
+
"details": "标准 ease-out,模拟自然减速",
|
|
285
|
+
"easing_curves": {
|
|
286
|
+
"ease-in": "cubic-bezier(0.4, 0, 1, 1)",
|
|
287
|
+
"ease-out": "cubic-bezier(0, 0, 0.2, 1)",
|
|
288
|
+
"ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)"
|
|
289
|
+
},
|
|
290
|
+
"visual_preview": {
|
|
291
|
+
"curve_art": "│ ╱─\n│ ╱\n│ ╱\n│╱\n└─────",
|
|
292
|
+
"description": "快速启动,平滑减速"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
...
|
|
296
|
+
]
|
|
297
|
+
},
|
|
298
|
+
...
|
|
299
|
+
]
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
CRITICAL: Use Write() tool immediately after generating complete JSON
|
|
303
|
+
`
|
|
304
|
+
|
|
305
|
+
ELSE:
|
|
306
|
+
// REFINEMENT MODE
|
|
307
|
+
Task(ui-design-agent): `
|
|
308
|
+
[ANIMATION_REFINEMENT_OPTIONS_TASK]
|
|
309
|
+
Generate refinement options for existing animation system
|
|
310
|
+
|
|
311
|
+
SESSION: {session_id} | MODE: refine | BASE_PATH: {base_path}
|
|
312
|
+
|
|
313
|
+
## Load Existing Animation System
|
|
314
|
+
- Existing tokens: Read from {base_path}/animation-extraction/animation-tokens.json
|
|
315
|
+
- Focus types: {focus_types.join(", ")}
|
|
316
|
+
- Design context: {has_design_context ? "Available" : "None"}
|
|
317
|
+
${has_images ? "- Image Data: Read from .intermediates/animation-analysis/image-references.json" : ""}
|
|
318
|
+
|
|
319
|
+
## Refinement Categories
|
|
320
|
+
Generate 8-12 refinement options across these categories:
|
|
321
|
+
|
|
322
|
+
1. **Timing Adjustments** (2-3 options):
|
|
323
|
+
- Duration scale: Faster timing across the board ↔ Slower, more deliberate timing
|
|
324
|
+
- Specific categories: Accelerate interactions only ↔ Extend page transitions
|
|
325
|
+
- Micro-timing: Adjust stagger delays ↔ Sequential animation gaps
|
|
326
|
+
|
|
327
|
+
2. **Easing Fine-Tuning** (2-3 options):
|
|
328
|
+
- Curve intensity: Sharper, snappier curves ↔ Softer, smoother curves
|
|
329
|
+
- Category-specific: Bouncier interactions ↔ Linear state changes
|
|
330
|
+
- Spring physics: Adjust bounce/damping parameters
|
|
331
|
+
|
|
332
|
+
3. **Context-Specific Variations** (2-3 options):
|
|
333
|
+
- Reduced motion: Adjust reduced-motion fallbacks
|
|
334
|
+
- Mobile optimization: Shorter durations for touch interactions
|
|
335
|
+
- Component-specific: Different hover styles for buttons vs cards
|
|
336
|
+
|
|
337
|
+
4. **Interaction Intensity** (1-2 options):
|
|
338
|
+
- Transform magnitude: Subtle movements (2-4px) ↔ Dramatic movements (8-12px)
|
|
339
|
+
- Scale adjustments: Minimal scale changes ↔ Bold scale emphasis
|
|
340
|
+
- Opacity ranges: Partial fades ↔ Full visibility transitions
|
|
341
|
+
|
|
342
|
+
## Generate Refinement Options
|
|
343
|
+
For each category, create option with:
|
|
344
|
+
1. **Option ID** (sequential number)
|
|
345
|
+
2. **Category** (timing_adjustments, easing_tuning, context_variations, interaction_intensity)
|
|
346
|
+
3. **Label** (brief Chinese description, e.g., "加快整体节奏")
|
|
347
|
+
4. **Description** (detailed explanation of changes)
|
|
348
|
+
5. **Impact Scope** (which tokens will be modified)
|
|
349
|
+
6. **Technical Changes** (specific value adjustments)
|
|
350
|
+
7. **Before/After Preview** (show current vs proposed values)
|
|
351
|
+
|
|
352
|
+
## Output
|
|
353
|
+
Write single JSON file: {base_path}/.intermediates/animation-analysis/refinement-options.json
|
|
354
|
+
|
|
355
|
+
Use schema:
|
|
356
|
+
{
|
|
357
|
+
"metadata": {
|
|
358
|
+
"generated_at": "<timestamp>",
|
|
359
|
+
"mode": "refinement",
|
|
360
|
+
"existing_tokens_loaded": true,
|
|
361
|
+
"total_refinements": <count>
|
|
362
|
+
},
|
|
363
|
+
"current_animation_system": {
|
|
364
|
+
// Copy from animation-tokens.json for reference
|
|
365
|
+
},
|
|
366
|
+
"refinement_options": [
|
|
367
|
+
{
|
|
368
|
+
"id": 1,
|
|
369
|
+
"category": "timing_adjustments",
|
|
370
|
+
"label": "加快整体动画节奏",
|
|
371
|
+
"description": "将所有 duration 值减少 30%,使界面响应更快速",
|
|
372
|
+
"impact_scope": "duration.fast, duration.normal, duration.slow",
|
|
373
|
+
"technical_changes": {
|
|
374
|
+
"duration.fast": {"from": "150ms", "to": "105ms"},
|
|
375
|
+
"duration.normal": {"from": "300ms", "to": "210ms"},
|
|
376
|
+
"duration.slow": {"from": "500ms", "to": "350ms"}
|
|
377
|
+
},
|
|
378
|
+
"preview": {
|
|
379
|
+
"before": "Normal button hover: 150ms",
|
|
380
|
+
"after": "Faster button hover: 105ms"
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
...
|
|
384
|
+
]
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
CRITICAL: Use Write() tool immediately after generating complete JSON
|
|
388
|
+
`
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### Step 3: Verify Options File Created
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
IF NOT refine_mode:
|
|
395
|
+
# Exploration mode: Check for analysis-options.json
|
|
396
|
+
bash(test -f {base_path}/.intermediates/animation-analysis/analysis-options.json && echo "created")
|
|
397
|
+
bash(cat {base_path}/.intermediates/animation-analysis/analysis-options.json | grep -q "specification_options" && echo "valid")
|
|
398
|
+
ELSE:
|
|
399
|
+
# Refinement mode: Check for refinement-options.json
|
|
400
|
+
bash(test -f {base_path}/.intermediates/animation-analysis/refinement-options.json && echo "created")
|
|
401
|
+
bash(cat {base_path}/.intermediates/animation-analysis/refinement-options.json | grep -q "refinement_options" && echo "valid")
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Output**:
|
|
405
|
+
- Exploration mode: `analysis-options.json` with animation specification questions
|
|
406
|
+
- Refinement mode: `refinement-options.json` with refinement options
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
**Phase 1 Output**:
|
|
411
|
+
- Exploration mode: `analysis-options.json` with generated specification questions
|
|
412
|
+
- Refinement mode: `refinement-options.json` with refinement options
|
|
413
|
+
|
|
414
|
+
## Phase 1.5: User Confirmation (Optional - Triggered by --interactive)
|
|
415
|
+
|
|
416
|
+
**Purpose**: Allow user to answer animation specification questions (exploration) or select refinement options (refinement) before generating tokens
|
|
417
|
+
|
|
418
|
+
**Trigger Condition**: Execute this phase ONLY if `--interactive` flag is present
|
|
419
|
+
|
|
420
|
+
### Step 1: Check Interactive Flag
|
|
421
|
+
|
|
422
|
+
```bash
|
|
423
|
+
# Skip this entire phase if --interactive flag is not present
|
|
424
|
+
IF NOT --interactive:
|
|
425
|
+
SKIP to Phase 2
|
|
426
|
+
REPORT: "ℹ️ Non-interactive mode: Using CSS extraction + default animation preferences"
|
|
427
|
+
|
|
428
|
+
REPORT: "🎯 Interactive mode enabled: User answers required"
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Step 2: Load and Present Options
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
# Read options file based on mode
|
|
435
|
+
IF NOT refine_mode:
|
|
436
|
+
# Exploration mode
|
|
437
|
+
options = Read({base_path}/.intermediates/animation-analysis/analysis-options.json)
|
|
438
|
+
specification_options = options.specification_options
|
|
439
|
+
ELSE:
|
|
440
|
+
# Refinement mode
|
|
441
|
+
options = Read({base_path}/.intermediates/animation-analysis/refinement-options.json)
|
|
442
|
+
refinement_options = options.refinement_options
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### Step 3: Present Options to User
|
|
446
|
+
|
|
447
|
+
**Conditional Display**: Branch based on `refine_mode` flag
|
|
448
|
+
|
|
449
|
+
```
|
|
450
|
+
IF NOT refine_mode:
|
|
451
|
+
// EXPLORATION MODE
|
|
452
|
+
📋 Animation Specification Questions
|
|
453
|
+
|
|
454
|
+
We've generated {options.metadata.total_questions} questions to define your animation system.
|
|
455
|
+
Please answer each question to customize the animation behavior.
|
|
456
|
+
|
|
457
|
+
{FOR each question in specification_options:
|
|
458
|
+
═══════════════════════════════════════════════════
|
|
459
|
+
Question {question.id}: {question.question}
|
|
460
|
+
Category: {question.category}
|
|
461
|
+
═══════════════════════════════════════════════════
|
|
462
|
+
|
|
463
|
+
{FOR each option in question.options:
|
|
464
|
+
{option.key}) {option.label}
|
|
465
|
+
{option.details}
|
|
466
|
+
|
|
467
|
+
${option.visual_preview ? "Preview:\n " + option.visual_preview.timeline || option.visual_preview.curve_art || option.visual_preview.animation_sequence : ""}
|
|
468
|
+
${option.visual_preview ? " " + option.visual_preview.description : ""}
|
|
469
|
+
|
|
470
|
+
${option.duration_values ? "Durations: " + JSON.stringify(option.duration_values) : ""}
|
|
471
|
+
${option.easing_curves ? "Easing: " + JSON.stringify(option.easing_curves) : ""}
|
|
472
|
+
${option.transform_value ? "Transform: " + option.transform_value : ""}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
═══════════════════════════════════════════════════
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
ELSE:
|
|
479
|
+
// REFINEMENT MODE
|
|
480
|
+
🔧 Animation System Refinement Options
|
|
481
|
+
|
|
482
|
+
We've generated {options.metadata.total_refinements} refinement options to fine-tune your animation system.
|
|
483
|
+
Select which refinements to apply (can select multiple).
|
|
484
|
+
|
|
485
|
+
{FOR each refinement in refinement_options:
|
|
486
|
+
═══════════════════════════════════════════════════
|
|
487
|
+
Option {refinement.id}: {refinement.label}
|
|
488
|
+
Category: {refinement.category}
|
|
489
|
+
═══════════════════════════════════════════════════
|
|
490
|
+
|
|
491
|
+
Description: {refinement.description}
|
|
492
|
+
Impact Scope: {refinement.impact_scope}
|
|
493
|
+
|
|
494
|
+
Technical Changes:
|
|
495
|
+
{FOR each token, changes IN refinement.technical_changes:
|
|
496
|
+
• {token}:
|
|
497
|
+
Before: {changes.from}
|
|
498
|
+
After: {changes.to}
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
Preview:
|
|
502
|
+
{refinement.preview.before} → {refinement.preview.after}
|
|
503
|
+
|
|
504
|
+
═══════════════════════════════════════════════════
|
|
505
|
+
}
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Step 4: Capture User Selection
|
|
509
|
+
|
|
510
|
+
**Conditional Interaction**: Branch based on `refine_mode` flag
|
|
511
|
+
|
|
512
|
+
```javascript
|
|
513
|
+
IF NOT refine_mode:
|
|
514
|
+
// EXPLORATION MODE - Single selection per question
|
|
515
|
+
user_answers = {}
|
|
516
|
+
|
|
517
|
+
FOR each question IN specification_options:
|
|
518
|
+
AskUserQuestion({
|
|
519
|
+
questions: [{
|
|
520
|
+
question: question.question,
|
|
521
|
+
header: question.category,
|
|
522
|
+
multiSelect: false, // Single selection per question
|
|
523
|
+
options: [
|
|
524
|
+
{FOR each option IN question.options:
|
|
525
|
+
label: "{option.key}) {option.label}",
|
|
526
|
+
description: option.details
|
|
527
|
+
}
|
|
528
|
+
]
|
|
529
|
+
}]
|
|
530
|
+
})
|
|
531
|
+
|
|
532
|
+
// Parse user response (single selection, e.g., "a) Fast & Snappy")
|
|
533
|
+
selected_option_text = user_answer
|
|
534
|
+
|
|
535
|
+
// Check for user cancellation
|
|
536
|
+
IF selected_option_text == null:
|
|
537
|
+
REPORT: "⚠️ User canceled selection. Using default animation preferences."
|
|
538
|
+
EXIT Phase 1.5
|
|
539
|
+
|
|
540
|
+
// Extract option key from selection text
|
|
541
|
+
match = selected_option_text.match(/^([a-e])\)/)
|
|
542
|
+
IF match:
|
|
543
|
+
selected_key = match[1]
|
|
544
|
+
user_answers[question.category] = selected_key
|
|
545
|
+
REPORT: "✅ {question.category}: Selected option {selected_key}"
|
|
546
|
+
ELSE:
|
|
547
|
+
ERROR: "Invalid selection format. Expected 'a) ...' format"
|
|
548
|
+
EXIT workflow
|
|
549
|
+
|
|
550
|
+
REPORT: "✅ Collected {Object.keys(user_answers).length} animation preferences"
|
|
551
|
+
|
|
552
|
+
ELSE:
|
|
553
|
+
// REFINEMENT MODE - Multi-selection of refinements
|
|
554
|
+
AskUserQuestion({
|
|
555
|
+
questions: [{
|
|
556
|
+
question: "Which refinement(s) would you like to apply to your animation system?",
|
|
557
|
+
header: "Refinements",
|
|
558
|
+
multiSelect: true, // Can select multiple refinements
|
|
559
|
+
options: [
|
|
560
|
+
{FOR each refinement IN refinement_options:
|
|
561
|
+
label: "{refinement.id}. {refinement.label}",
|
|
562
|
+
description: "{refinement.description} (Affects: {refinement.impact_scope})"
|
|
563
|
+
}
|
|
564
|
+
]
|
|
565
|
+
}]
|
|
566
|
+
})
|
|
567
|
+
|
|
568
|
+
// Parse user response (multi-selection)
|
|
569
|
+
selected_refinements = user_answer
|
|
570
|
+
|
|
571
|
+
// Check for user cancellation
|
|
572
|
+
IF selected_refinements == null:
|
|
573
|
+
REPORT: "⚠️ User canceled selection. No refinements will be applied."
|
|
574
|
+
EXIT Phase 1.5
|
|
575
|
+
|
|
576
|
+
// Extract refinement IDs
|
|
577
|
+
selected_ids = []
|
|
578
|
+
FOR each selection IN selected_refinements:
|
|
579
|
+
match = selection.match(/^(\d+)\./)
|
|
580
|
+
IF match:
|
|
581
|
+
selected_ids.push(parseInt(match[1]))
|
|
582
|
+
|
|
583
|
+
REPORT: "✅ Selected {selected_ids.length} refinement(s) to apply"
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
### Step 5: Update Options File with User Selection
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
IF NOT refine_mode:
|
|
590
|
+
# EXPLORATION MODE - Update analysis-options.json
|
|
591
|
+
options.user_selection = {
|
|
592
|
+
"selected_at": "{current_timestamp}",
|
|
593
|
+
"session_id": "{session_id}",
|
|
594
|
+
"answers": user_answers // {category: selected_key}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
# Write updated file back
|
|
598
|
+
Write({base_path}/.intermediates/animation-analysis/analysis-options.json, JSON.stringify(options, indent=2))
|
|
599
|
+
|
|
600
|
+
# Verify
|
|
601
|
+
bash(test -f {base_path}/.intermediates/animation-analysis/analysis-options.json && echo "saved")
|
|
602
|
+
|
|
603
|
+
ELSE:
|
|
604
|
+
# REFINEMENT MODE - Update refinement-options.json
|
|
605
|
+
options.user_selection = {
|
|
606
|
+
"selected_at": "{current_timestamp}",
|
|
607
|
+
"session_id": "{session_id}",
|
|
608
|
+
"selected_refinements": selected_ids // Array of refinement IDs
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
# Write updated file back
|
|
612
|
+
Write({base_path}/.intermediates/animation-analysis/refinement-options.json, JSON.stringify(options, indent=2))
|
|
613
|
+
|
|
614
|
+
# Verify
|
|
615
|
+
bash(test -f {base_path}/.intermediates/animation-analysis/refinement-options.json && echo "saved")
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
### Step 6: Confirmation Message
|
|
619
|
+
|
|
620
|
+
```
|
|
621
|
+
IF NOT refine_mode:
|
|
622
|
+
// EXPLORATION MODE
|
|
623
|
+
✅ Animation preferences recorded!
|
|
624
|
+
|
|
625
|
+
You selected:
|
|
626
|
+
{FOR each category, selected_key IN user_answers:
|
|
627
|
+
question = find(specification_options, q => q.category == category)
|
|
628
|
+
option = find(question.options, o => o.key == selected_key)
|
|
629
|
+
• {category}: {option.label}
|
|
630
|
+
({option.details})
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
Proceeding to generate animation system with your preferences...
|
|
634
|
+
|
|
635
|
+
ELSE:
|
|
636
|
+
// REFINEMENT MODE
|
|
637
|
+
✅ Refinement selections recorded!
|
|
638
|
+
|
|
639
|
+
You selected {selected_ids.length} refinement(s):
|
|
640
|
+
{FOR each id IN selected_ids:
|
|
641
|
+
refinement = find(refinement_options, r => r.id == id)
|
|
642
|
+
• {refinement.label} ({refinement.category})
|
|
643
|
+
Impact: {refinement.impact_scope}
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
Proceeding to apply refinements to animation system...
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
**Output**:
|
|
650
|
+
- Exploration mode: Updated `analysis-options.json` with embedded `user_selection` field
|
|
651
|
+
- Refinement mode: Updated `refinement-options.json` with `user_selection.selected_refinements` array
|
|
652
|
+
|
|
653
|
+
## Phase 2: Animation System Generation (Agent Task 2)
|
|
654
|
+
|
|
655
|
+
**Executor**: `Task(ui-design-agent)` for animation token generation
|
|
656
|
+
|
|
657
|
+
### Step 1: Load User Selection or Use Defaults
|
|
658
|
+
|
|
659
|
+
```bash
|
|
660
|
+
IF NOT refine_mode:
|
|
661
|
+
# EXPLORATION MODE - Read analysis-options.json
|
|
662
|
+
options = Read({base_path}/.intermediates/animation-analysis/analysis-options.json)
|
|
663
|
+
specification_options = options.specification_options
|
|
664
|
+
|
|
665
|
+
# Check if user_selection field exists (interactive mode)
|
|
666
|
+
IF options.user_selection AND options.user_selection.answers:
|
|
667
|
+
# Interactive mode: Use user-selected preferences
|
|
668
|
+
user_answers = options.user_selection.answers
|
|
669
|
+
REPORT: "🎯 Interactive mode: Using user-selected animation preferences"
|
|
670
|
+
ELSE:
|
|
671
|
+
# Non-interactive mode: Use defaults (first option for each question)
|
|
672
|
+
user_answers = null
|
|
673
|
+
REPORT: "ℹ️ Non-interactive mode: Using default animation preferences"
|
|
674
|
+
|
|
675
|
+
ELSE:
|
|
676
|
+
# REFINEMENT MODE - Read refinement-options.json
|
|
677
|
+
options = Read({base_path}/.intermediates/animation-analysis/refinement-options.json)
|
|
678
|
+
refinement_options = options.refinement_options
|
|
679
|
+
|
|
680
|
+
# Check if user_selection field exists (interactive mode)
|
|
681
|
+
IF options.user_selection AND options.user_selection.selected_refinements:
|
|
682
|
+
# Interactive mode: Use user-selected refinements
|
|
683
|
+
selected_refinements = options.user_selection.selected_refinements
|
|
684
|
+
REPORT: "🎯 Interactive mode: Applying {selected_refinements.length} selected refinement(s)"
|
|
685
|
+
ELSE:
|
|
686
|
+
# Non-interactive mode: Apply all refinements
|
|
687
|
+
selected_refinements = null
|
|
688
|
+
REPORT: "ℹ️ Non-interactive mode: Applying all refinements"
|
|
689
|
+
|
|
690
|
+
# Load image references if available for agent context
|
|
691
|
+
image_context = null
|
|
692
|
+
IF has_images:
|
|
693
|
+
IF exists({base_path}/.intermediates/animation-analysis/image-references.json):
|
|
694
|
+
image_context = Read({base_path}/.intermediates/animation-analysis/image-references.json)
|
|
695
|
+
REPORT: "📸 Using {image_context.count} image reference(s) for animation inference"
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
### Step 2: Create Output Directory
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
# Create directory for animation system
|
|
702
|
+
bash(mkdir -p {base_path}/animation-extraction)
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
### Step 3: Launch Animation Generation Task
|
|
706
|
+
|
|
707
|
+
**Conditional Task**: Branch based on `refine_mode` flag
|
|
708
|
+
|
|
709
|
+
```javascript
|
|
710
|
+
IF NOT refine_mode:
|
|
711
|
+
// EXPLORATION MODE
|
|
712
|
+
Task(ui-design-agent): `
|
|
713
|
+
[ANIMATION_SYSTEM_GENERATION_TASK]
|
|
714
|
+
Generate production-ready animation system based on user preferences and CSS extraction
|
|
715
|
+
|
|
716
|
+
SESSION: {session_id} | MODE: explore | BASE_PATH: {base_path}
|
|
717
|
+
|
|
718
|
+
USER PREFERENCES:
|
|
719
|
+
${user_answers ? "- User Selection: " + JSON.stringify(user_answers) : "- Using Defaults: First option for each category"}
|
|
720
|
+
${user_answers ? "- Specification Options: Read from .intermediates/animation-analysis/analysis-options.json for detailed specs" : ""}
|
|
721
|
+
|
|
722
|
+
## Input Analysis
|
|
723
|
+
- Interactive mode: {user_answers ? "Yes (user preferences available)" : "No (using defaults)"}
|
|
724
|
+
- Image references: {image_context ? "Available (" + image_context.count + " files)" : "None"}
|
|
725
|
+
${image_context ? "- Image Data: " + JSON.stringify(image_context) : ""}
|
|
726
|
+
- Design context: {has_design_context ? "Available" : "None"}
|
|
727
|
+
${has_design_context ? "- Design Tokens: Read from style-extraction/style-1/design-tokens.json" : ""}
|
|
728
|
+
|
|
729
|
+
## Generation Rules
|
|
730
|
+
${user_answers ? `
|
|
731
|
+
- Read analysis-options.json to get user_selection.answers
|
|
732
|
+
- For each category in user_selection.answers, find the selected option
|
|
733
|
+
- Use the selected option's technical specs (duration_values, easing_curves, transform_value, etc.)
|
|
734
|
+
- Apply these specs to generate animation tokens
|
|
735
|
+
` : `
|
|
736
|
+
- Use first option (key "a") from each question in specification_options as default
|
|
737
|
+
- Extract technical specs from default options
|
|
738
|
+
`}
|
|
739
|
+
- Infer animation patterns from image references (if available)
|
|
740
|
+
- Align with design tokens (spacing, colors) if available
|
|
741
|
+
- All tokens use CSS Custom Property format: var(--duration-fast)
|
|
742
|
+
- WCAG-compliant: Respect prefers-reduced-motion
|
|
743
|
+
- Semantic naming for all animation values
|
|
744
|
+
|
|
745
|
+
## Synthesis Priority
|
|
746
|
+
1. User answers from analysis-options.json user_selection field (highest priority)
|
|
747
|
+
2. Inferred patterns from image references (medium priority)
|
|
748
|
+
3. Industry best practices (fallback)
|
|
749
|
+
|
|
750
|
+
## Duration Normalization
|
|
751
|
+
- IF user_selection.answers.timing_scale EXISTS:
|
|
752
|
+
Find selected option in specification_options
|
|
753
|
+
Use option's duration_values for token generation
|
|
754
|
+
- ELSE IF image references available:
|
|
755
|
+
Infer timing patterns from visual design style (minimalist → faster, ornate → slower)
|
|
756
|
+
- ELSE:
|
|
757
|
+
Use standard scale (instant:0ms, fast:150ms, normal:300ms, slow:500ms, very-slow:800ms)
|
|
758
|
+
|
|
759
|
+
## Easing Standardization
|
|
760
|
+
- IF user_selection.answers.easing_philosophy EXISTS:
|
|
761
|
+
Find selected option in specification_options
|
|
762
|
+
Use option's easing_curves for token generation
|
|
763
|
+
- ELSE IF image references available:
|
|
764
|
+
Infer easing preferences from visual style (sharp edges → snappy, soft curves → smooth)
|
|
765
|
+
- ELSE:
|
|
766
|
+
Use standard easings (linear, ease-in, ease-out, ease-in-out, spring)
|
|
767
|
+
|
|
768
|
+
## Animation Categorization
|
|
769
|
+
Organize into:
|
|
770
|
+
- **duration**: Timing scale (instant, fast, normal, slow, very-slow)
|
|
771
|
+
- **easing**: Easing functions (linear, ease-in, ease-out, ease-in-out, spring)
|
|
772
|
+
- **transitions**: Property-specific transitions (color, transform, opacity, etc.)
|
|
773
|
+
- **keyframes**: Named @keyframe animations (fadeIn, slideInUp, pulse, etc.)
|
|
774
|
+
- **interactions**: Interaction-specific presets (button-hover, card-hover, input-focus, etc.)
|
|
775
|
+
- **page_transitions**: Route/view change animations (if user enabled)
|
|
776
|
+
- **scroll_animations**: Scroll-triggered animations (if user enabled)
|
|
777
|
+
|
|
778
|
+
## Generate Files
|
|
779
|
+
|
|
780
|
+
### 1. animation-tokens.json
|
|
781
|
+
Complete animation token structure using var() references:
|
|
782
|
+
|
|
783
|
+
{
|
|
784
|
+
"duration": {
|
|
785
|
+
"instant": "0ms",
|
|
786
|
+
"fast": "150ms", # From user_selection or CSS extraction or default
|
|
787
|
+
"normal": "300ms",
|
|
788
|
+
"slow": "500ms",
|
|
789
|
+
"very-slow": "800ms"
|
|
790
|
+
},
|
|
791
|
+
"easing": {
|
|
792
|
+
"linear": "linear",
|
|
793
|
+
"ease-in": "cubic-bezier(0.4, 0, 1, 1)",
|
|
794
|
+
"ease-out": "cubic-bezier(0, 0, 0.2, 1)", # From user_selection or CSS extraction or default
|
|
795
|
+
"ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
796
|
+
"spring": "cubic-bezier(0.34, 1.56, 0.64, 1)"
|
|
797
|
+
},
|
|
798
|
+
"transitions": {
|
|
799
|
+
"color": {
|
|
800
|
+
"property": "color, background-color, border-color",
|
|
801
|
+
"duration": "var(--duration-fast)",
|
|
802
|
+
"easing": "var(--easing-ease-out)"
|
|
803
|
+
},
|
|
804
|
+
"transform": {
|
|
805
|
+
"property": "transform",
|
|
806
|
+
"duration": "var(--duration-normal)",
|
|
807
|
+
"easing": "var(--easing-ease-out)"
|
|
808
|
+
},
|
|
809
|
+
"opacity": {
|
|
810
|
+
"property": "opacity",
|
|
811
|
+
"duration": "var(--duration-normal)",
|
|
812
|
+
"easing": "var(--easing-ease-in-out)"
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"keyframes": {
|
|
816
|
+
"fadeIn": {"0%": {"opacity": "0"}, "100%": {"opacity": "1"}},
|
|
817
|
+
"slideInUp": {"0%": {"transform": "translateY(20px)", "opacity": "0"}, "100%": {"transform": "translateY(0)", "opacity": "1"}},
|
|
818
|
+
"pulse": {"0%, 100%": {"opacity": "1"}, "50%": {"opacity": "0.7"}}
|
|
819
|
+
},
|
|
820
|
+
"interactions": {
|
|
821
|
+
"button-hover": {
|
|
822
|
+
# From user_selection.answers.button_interactions or CSS extraction or default
|
|
823
|
+
"properties": ["background-color", "transform"],
|
|
824
|
+
"duration": "var(--duration-fast)",
|
|
825
|
+
"easing": "var(--easing-ease-out)",
|
|
826
|
+
"transform": "scale(1.02)"
|
|
827
|
+
},
|
|
828
|
+
"card-hover": {
|
|
829
|
+
# From user_selection.answers.card_interactions or CSS extraction or default
|
|
830
|
+
"properties": ["box-shadow", "transform"],
|
|
831
|
+
"duration": "var(--duration-normal)",
|
|
832
|
+
"easing": "var(--easing-ease-out)",
|
|
833
|
+
"transform": "translateY(-4px)"
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
"page_transitions": {
|
|
837
|
+
# IF user_selection.answers.page_transitions enabled
|
|
838
|
+
"fade": {
|
|
839
|
+
"duration": "var(--duration-normal)",
|
|
840
|
+
"enter": "fadeIn",
|
|
841
|
+
"exit": "fadeOut"
|
|
842
|
+
}
|
|
843
|
+
},
|
|
844
|
+
"scroll_animations": {
|
|
845
|
+
# IF user_selection.answers.scroll_animations enabled
|
|
846
|
+
"default": {
|
|
847
|
+
"animation": "fadeIn",
|
|
848
|
+
"duration": "var(--duration-slow)",
|
|
849
|
+
"easing": "var(--easing-ease-out)",
|
|
850
|
+
"threshold": "0.1"
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
## Output File Paths
|
|
856
|
+
- animation-tokens.json: {base_path}/animation-extraction/animation-tokens.json
|
|
857
|
+
|
|
858
|
+
## Critical Requirements
|
|
859
|
+
- ✅ Use Write() tool immediately to generate JSON file
|
|
860
|
+
- ✅ All tokens use CSS Custom Property format: var(--duration-fast)
|
|
861
|
+
- ✅ Include prefers-reduced-motion media query guidance
|
|
862
|
+
- ✅ Validate all cubic-bezier values are valid (4 numbers between 0-1)
|
|
863
|
+
- ${user_answers ? "✅ READ analysis-options.json for user_selection field" : "✅ Use first option from each question as default"}
|
|
864
|
+
- ❌ NO user questions or interaction in this phase
|
|
865
|
+
- ✅ Can use Exa MCP to research modern animation patterns and obtain code examples (Explore/Text mode)
|
|
866
|
+
`
|
|
867
|
+
|
|
868
|
+
ELSE:
|
|
869
|
+
// REFINEMENT MODE
|
|
870
|
+
Task(ui-design-agent): `
|
|
871
|
+
[ANIMATION_SYSTEM_REFINEMENT_TASK]
|
|
872
|
+
Apply selected refinements to existing animation system
|
|
873
|
+
|
|
874
|
+
SESSION: {session_id} | MODE: refine | BASE_PATH: {base_path}
|
|
875
|
+
|
|
876
|
+
## Load Existing Animation System
|
|
877
|
+
- Current tokens: Read from {base_path}/animation-extraction/animation-tokens.json
|
|
878
|
+
- Refinement options: Read from .intermediates/animation-analysis/refinement-options.json
|
|
879
|
+
|
|
880
|
+
REFINEMENT SELECTION:
|
|
881
|
+
${selected_refinements ? `
|
|
882
|
+
- Interactive mode: Apply selected refinements
|
|
883
|
+
- Selected IDs: ${JSON.stringify(selected_refinements)}
|
|
884
|
+
- For each ID in selected_refinements:
|
|
885
|
+
* Find refinement in refinement_options by id
|
|
886
|
+
* Apply technical_changes to corresponding tokens
|
|
887
|
+
` : `
|
|
888
|
+
- Non-interactive mode: Apply ALL refinements
|
|
889
|
+
- For each refinement in refinement_options:
|
|
890
|
+
* Apply technical_changes to corresponding tokens
|
|
891
|
+
`}
|
|
892
|
+
|
|
893
|
+
## Input Analysis
|
|
894
|
+
- Image references: {image_context ? "Available (" + image_context.count + " files)" : "None"}
|
|
895
|
+
${image_context ? "- Image Data: " + JSON.stringify(image_context) : ""}
|
|
896
|
+
- Design context: {has_design_context ? "Available" : "None"}
|
|
897
|
+
${has_design_context ? "- Design Tokens: Read from style-extraction/style-1/design-tokens.json" : ""}
|
|
898
|
+
|
|
899
|
+
## Refinement Application Rules
|
|
900
|
+
${selected_refinements ? `
|
|
901
|
+
- ONLY apply refinements with IDs in selected_refinements array
|
|
902
|
+
- Skip refinements not selected by user
|
|
903
|
+
` : `
|
|
904
|
+
- Apply ALL refinements from refinement_options
|
|
905
|
+
- Combine multiple refinements that affect same token
|
|
906
|
+
`}
|
|
907
|
+
- Load current animation-tokens.json
|
|
908
|
+
- For each applicable refinement:
|
|
909
|
+
* Parse technical_changes field
|
|
910
|
+
* Apply "to" values to replace "from" values in tokens
|
|
911
|
+
* Preserve structure and var() references
|
|
912
|
+
- If multiple refinements affect same token, apply in sequence
|
|
913
|
+
- Maintain WCAG compliance and semantic naming
|
|
914
|
+
- All tokens use CSS Custom Property format: var(--duration-fast)
|
|
915
|
+
|
|
916
|
+
## Conflict Resolution
|
|
917
|
+
- If multiple selected refinements modify same token:
|
|
918
|
+
* Apply refinements in ID order (lowest first)
|
|
919
|
+
* Later refinements override earlier ones
|
|
920
|
+
|
|
921
|
+
## Generate Updated Files
|
|
922
|
+
|
|
923
|
+
### 1. animation-tokens.json
|
|
924
|
+
Updated animation token structure with refinements applied:
|
|
925
|
+
- Load existing structure
|
|
926
|
+
- Apply technical_changes from selected/all refinements
|
|
927
|
+
- Maintain var() references and semantic naming
|
|
928
|
+
- Validate all cubic-bezier values
|
|
929
|
+
|
|
930
|
+
## Output File Paths
|
|
931
|
+
- animation-tokens.json: {base_path}/animation-extraction/animation-tokens.json (OVERWRITE)
|
|
932
|
+
|
|
933
|
+
## Critical Requirements
|
|
934
|
+
- ✅ Use Write() tool immediately to generate JSON file
|
|
935
|
+
- ✅ OVERWRITE existing animation-tokens.json with refined version
|
|
936
|
+
- ✅ All tokens use CSS Custom Property format: var(--duration-fast)
|
|
937
|
+
- ✅ Include prefers-reduced-motion media query guidance
|
|
938
|
+
- ✅ Validate all cubic-bezier values are valid (4 numbers between 0-1)
|
|
939
|
+
- ${selected_refinements ? "✅ READ refinement-options.json for user_selection.selected_refinements" : "✅ Apply ALL refinements from refinement_options"}
|
|
940
|
+
- ❌ NO user questions or interaction in this phase
|
|
941
|
+
- ✅ Can use Exa MCP to research modern animation patterns and obtain code examples (Explore/Text mode)
|
|
942
|
+
`
|
|
943
|
+
```
|
|
944
|
+
|
|
945
|
+
**Output**: Agent generates/updates animation-tokens.json
|
|
946
|
+
|
|
947
|
+
## Phase 3: Verify Output
|
|
948
|
+
|
|
949
|
+
### Step 1: Check Files Created
|
|
950
|
+
|
|
951
|
+
```bash
|
|
952
|
+
# Verify animation system created
|
|
953
|
+
bash(test -f {base_path}/animation-extraction/animation-tokens.json && echo "exists")
|
|
954
|
+
|
|
955
|
+
# Validate structure
|
|
956
|
+
bash(cat {base_path}/animation-extraction/animation-tokens.json | grep -q "duration" && echo "valid")
|
|
957
|
+
bash(cat {base_path}/animation-extraction/animation-tokens.json | grep -q "easing" && echo "valid")
|
|
958
|
+
```
|
|
959
|
+
|
|
960
|
+
### Step 2: Verify File Sizes
|
|
961
|
+
|
|
962
|
+
```bash
|
|
963
|
+
bash(ls -lh {base_path}/animation-extraction/)
|
|
964
|
+
```
|
|
965
|
+
|
|
966
|
+
**Output**: animation-tokens.json verified
|
|
967
|
+
|
|
968
|
+
## Completion
|
|
969
|
+
|
|
970
|
+
### Todo Update
|
|
971
|
+
|
|
972
|
+
```javascript
|
|
973
|
+
TodoWrite({todos: [
|
|
974
|
+
{content: "Setup and input validation", status: "completed", activeForm: "Validating inputs"},
|
|
975
|
+
{content: "CSS animation extraction (Phase 1)", status: "completed", activeForm: "Extracting from CSS"},
|
|
976
|
+
{content: "Specification generation (Phase 1 - Agent)", status: "completed", activeForm: "Generating questions"},
|
|
977
|
+
{content: "User confirmation (Phase 1.5 - Optional)", status: "completed", activeForm: "Collecting user answers"},
|
|
978
|
+
{content: "Animation system generation (Phase 2 - Agent)", status: "completed", activeForm: "Generating animation system"},
|
|
979
|
+
{content: "Verify output files (Phase 3)", status: "completed", activeForm: "Verifying files"}
|
|
980
|
+
]});
|
|
981
|
+
```
|
|
982
|
+
|
|
983
|
+
### Output Message
|
|
984
|
+
|
|
985
|
+
```
|
|
986
|
+
✅ Animation extraction complete!
|
|
987
|
+
|
|
988
|
+
Configuration:
|
|
989
|
+
- Session: {session_id}
|
|
990
|
+
- Interactive Mode: {interactive_mode ? "Enabled (user preferences collected)" : "Disabled (default preferences)"}
|
|
991
|
+
- Input Sources:
|
|
992
|
+
{IF has_images:
|
|
993
|
+
- ✅ Image references analyzed ({image_count} file(s))
|
|
994
|
+
}
|
|
995
|
+
{IF interactive_mode AND options.user_selection:
|
|
996
|
+
- ✅ User preferences collected via interactive mode
|
|
997
|
+
}
|
|
998
|
+
{IF NOT interactive_mode:
|
|
999
|
+
- ℹ️ Using default animation preferences (no user interaction)
|
|
1000
|
+
}
|
|
1001
|
+
{IF has_design_context:
|
|
1002
|
+
- ✅ Aligned with existing design tokens
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
Generated Files:
|
|
1006
|
+
{base_path}/animation-extraction/
|
|
1007
|
+
└── animation-tokens.json # Production-ready animation tokens
|
|
1008
|
+
|
|
1009
|
+
{IF has_images OR options.user_selection:
|
|
1010
|
+
Intermediate Analysis:
|
|
1011
|
+
{base_path}/.intermediates/animation-analysis/
|
|
1012
|
+
{IF has_images:
|
|
1013
|
+
├── image-references.json # Image reference metadata ({image_count} files)
|
|
1014
|
+
}
|
|
1015
|
+
├── analysis-options.json # Generated questions{options.user_selection ? " + user answers" : ""}
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
Extracted Data Summary:
|
|
1019
|
+
- Duration scales: {duration_count} values
|
|
1020
|
+
- Easing functions: {easing_count} types
|
|
1021
|
+
- Interaction presets: {interaction_count} patterns
|
|
1022
|
+
- Keyframe animations: {keyframe_count} animations
|
|
1023
|
+
|
|
1024
|
+
Next: Animation tokens ready for integration
|
|
1025
|
+
• style-extract/layout-extract can reference animation tokens
|
|
1026
|
+
• generate command will include animation CSS
|
|
1027
|
+
• Tokens use var() format for easy customization
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
## Simple Bash Commands
|
|
1031
|
+
|
|
1032
|
+
### Path Operations
|
|
1033
|
+
|
|
1034
|
+
```bash
|
|
1035
|
+
# Find design directory
|
|
1036
|
+
bash(find .workflow -type d -name "design-run-*" | head -1)
|
|
1037
|
+
|
|
1038
|
+
# Create output directories
|
|
1039
|
+
bash(mkdir -p {base_path}/animation-extraction)
|
|
1040
|
+
bash(mkdir -p {base_path}/.intermediates/animation-analysis)
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
### Validation Commands
|
|
1044
|
+
|
|
1045
|
+
```bash
|
|
1046
|
+
# Check if already extracted
|
|
1047
|
+
bash(test -f {base_path}/animation-extraction/animation-tokens.json && echo "exists")
|
|
1048
|
+
|
|
1049
|
+
# Validate JSON structure
|
|
1050
|
+
bash(cat {base_path}/animation-extraction/animation-tokens.json | grep -q "duration" && echo "valid")
|
|
1051
|
+
|
|
1052
|
+
# Count animation types
|
|
1053
|
+
bash(cat animation-tokens.json | grep -c "\"keyframes\":")
|
|
1054
|
+
```
|
|
1055
|
+
|
|
1056
|
+
### File Operations
|
|
1057
|
+
|
|
1058
|
+
```bash
|
|
1059
|
+
# Load design tokens context
|
|
1060
|
+
bash(test -f {base_path}/style-extraction/style-1/design-tokens.json && cat it)
|
|
1061
|
+
|
|
1062
|
+
# Verify output
|
|
1063
|
+
bash(ls {base_path}/animation-extraction/)
|
|
1064
|
+
```
|
|
1065
|
+
|
|
1066
|
+
## Output Structure
|
|
1067
|
+
|
|
1068
|
+
```
|
|
1069
|
+
{base_path}/
|
|
1070
|
+
├── .intermediates/ # Intermediate analysis files
|
|
1071
|
+
│ └── animation-analysis/
|
|
1072
|
+
│ ├── animations-{target}.json # Extracted CSS (URL mode only)
|
|
1073
|
+
│ └── analysis-options.json # Generated questions + user answers (embedded)
|
|
1074
|
+
└── animation-extraction/ # Final animation system
|
|
1075
|
+
└── animation-tokens.json # Production-ready animation tokens
|
|
1076
|
+
```
|
|
1077
|
+
|
|
1078
|
+
## animation-tokens.json Format
|
|
1079
|
+
|
|
1080
|
+
```json
|
|
1081
|
+
{
|
|
1082
|
+
"duration": {
|
|
1083
|
+
"instant": "0ms",
|
|
1084
|
+
"fast": "150ms",
|
|
1085
|
+
"normal": "300ms",
|
|
1086
|
+
"slow": "500ms",
|
|
1087
|
+
"very-slow": "800ms"
|
|
1088
|
+
},
|
|
1089
|
+
"easing": {
|
|
1090
|
+
"linear": "linear",
|
|
1091
|
+
"ease-in": "cubic-bezier(0.4, 0, 1, 1)",
|
|
1092
|
+
"ease-out": "cubic-bezier(0, 0, 0.2, 1)",
|
|
1093
|
+
"ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
1094
|
+
"spring": "cubic-bezier(0.34, 1.56, 0.64, 1)"
|
|
1095
|
+
},
|
|
1096
|
+
"transitions": {
|
|
1097
|
+
"color": {"property": "...", "duration": "var(--duration-fast)", "easing": "..."},
|
|
1098
|
+
"transform": {"property": "...", "duration": "...", "easing": "..."}
|
|
1099
|
+
},
|
|
1100
|
+
"keyframes": {
|
|
1101
|
+
"fadeIn": {"0%": {...}, "100%": {...}},
|
|
1102
|
+
"slideInUp": {...}
|
|
1103
|
+
},
|
|
1104
|
+
"interactions": {
|
|
1105
|
+
"button-hover": {"properties": [...], "duration": "...", "transform": "..."},
|
|
1106
|
+
"card-hover": {...}
|
|
1107
|
+
},
|
|
1108
|
+
"page_transitions": {...},
|
|
1109
|
+
"scroll_animations": {...}
|
|
1110
|
+
}
|
|
1111
|
+
```
|
|
1112
|
+
|
|
1113
|
+
**Requirements**: CSS var() format, valid cubic-bezier values, prefers-reduced-motion support
|
|
1114
|
+
|
|
1115
|
+
## Error Handling
|
|
1116
|
+
|
|
1117
|
+
### Common Errors
|
|
1118
|
+
|
|
1119
|
+
```
|
|
1120
|
+
ERROR: No image references found
|
|
1121
|
+
→ Provide valid --images glob pattern or proceed with prompt-only mode
|
|
1122
|
+
|
|
1123
|
+
ERROR: Invalid image format
|
|
1124
|
+
→ Skips unsupported files, continues with valid images
|
|
1125
|
+
|
|
1126
|
+
ERROR: Invalid cubic-bezier values
|
|
1127
|
+
→ Validates and corrects to nearest standard easing
|
|
1128
|
+
```
|
|
1129
|
+
|
|
1130
|
+
### Recovery Strategies
|
|
1131
|
+
|
|
1132
|
+
- **Image loading failure**: Falls back to prompt-only specification mode
|
|
1133
|
+
- **Partial image set**: Supplements with default values and best practices
|
|
1134
|
+
- **Invalid data**: Validates and uses fallback values
|
|
1135
|
+
|
|
1136
|
+
## Key Features
|
|
1137
|
+
|
|
1138
|
+
- **Prompt & Image Inference** - Analyzes design intent from textual descriptions and visual references (Phase 0)
|
|
1139
|
+
- **Agent-Generated Questions** - Context-aware specification questions with visual previews (Phase 1)
|
|
1140
|
+
- **Visual Previews** - Timeline representations, easing curve ASCII art, and animation sequences for each option
|
|
1141
|
+
- **Optional User Interaction** - User answers questions only when `--interactive` flag present (Phase 1.5)
|
|
1142
|
+
- **Non-Interactive Mode** - Default behavior uses inferred patterns + best practices (no user questions)
|
|
1143
|
+
- **Hybrid Strategy** - Combines image analysis with user preferences (when interactive)
|
|
1144
|
+
- **No MCP Dependencies** - Pure AI-driven inference from visual and textual inputs
|
|
1145
|
+
- **Context-Aware** - Aligns with existing design tokens
|
|
1146
|
+
- **Production-Ready** - CSS var() format, accessibility support
|
|
1147
|
+
- **Comprehensive Coverage** - Transitions, keyframes, interactions, scroll animations
|
|
1148
|
+
- **Clear Phase Separation** - Question generation (Agent) → User confirmation (Optional) → Token synthesis (Agent)
|
|
1149
|
+
|
|
1150
|
+
|