claude-code-workflow 6.1.4 → 6.2.2
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 -778
- package/.claude/agents/cli-execution-agent.md +266 -269
- package/.claude/agents/cli-explore-agent.md +2 -2
- package/.claude/agents/cli-lite-planning-agent.md +142 -92
- package/.claude/agents/cli-planning-agent.md +4 -4
- package/.claude/agents/code-developer.md +7 -6
- package/.claude/agents/conceptual-planning-agent.md +2 -2
- package/.claude/agents/context-search-agent.md +31 -32
- package/.claude/agents/doc-generator.md +4 -4
- package/.claude/agents/memory-bridge.md +93 -93
- package/.claude/agents/test-context-search-agent.md +8 -7
- package/.claude/agents/test-fix-agent.md +7 -6
- package/.claude/commands/clean.md +516 -0
- package/.claude/commands/memory/compact.md +383 -0
- package/.claude/commands/memory/docs-full-cli.md +471 -471
- package/.claude/commands/memory/docs-related-cli.md +386 -386
- package/.claude/commands/memory/docs.md +615 -615
- package/.claude/commands/memory/load.md +5 -5
- package/.claude/commands/memory/tech-research-rules.md +310 -0
- package/.claude/commands/memory/update-full.md +332 -332
- package/.claude/commands/memory/workflow-skill-memory.md +4 -4
- package/.claude/commands/task/create.md +151 -151
- package/.claude/commands/version.md +254 -254
- package/.claude/commands/workflow/brainstorm/api-designer.md +587 -585
- package/.claude/commands/workflow/brainstorm/artifacts.md +1 -0
- package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -443
- package/.claude/commands/workflow/brainstorm/data-architect.md +220 -220
- package/.claude/commands/workflow/brainstorm/product-manager.md +200 -200
- package/.claude/commands/workflow/brainstorm/product-owner.md +200 -200
- package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -200
- package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -200
- package/.claude/commands/workflow/brainstorm/system-architect.md +389 -387
- package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -221
- package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -221
- package/.claude/commands/workflow/debug.md +321 -0
- package/.claude/commands/workflow/execute.md +13 -0
- package/.claude/commands/workflow/init.md +165 -164
- package/.claude/commands/workflow/lite-execute.md +119 -13
- package/.claude/commands/workflow/lite-fix.md +623 -621
- package/.claude/commands/workflow/lite-plan.md +610 -592
- package/.claude/commands/workflow/plan.md +5 -5
- package/.claude/commands/workflow/review-module-cycle.md +2 -0
- package/.claude/commands/workflow/review-session-cycle.md +2 -0
- package/.claude/commands/workflow/review.md +297 -291
- package/.claude/commands/workflow/session/complete.md +153 -500
- package/.claude/commands/workflow/session/list.md +95 -95
- package/.claude/commands/workflow/session/resume.md +60 -60
- package/.claude/commands/workflow/session/start.md +199 -199
- package/.claude/commands/workflow/tdd-plan.md +3 -3
- package/.claude/commands/workflow/tdd-verify.md +23 -9
- package/.claude/commands/workflow/test-cycle-execute.md +2 -0
- package/.claude/commands/workflow/test-fix-gen.md +699 -699
- package/.claude/commands/workflow/tools/conflict-resolution.md +104 -18
- package/.claude/commands/workflow/tools/context-gather.md +436 -434
- package/.claude/commands/workflow/tools/task-generate-agent.md +490 -291
- package/.claude/commands/workflow/tools/task-generate-tdd.md +18 -10
- package/.claude/commands/workflow/tools/test-concept-enhanced.md +2 -1
- package/.claude/commands/workflow/tools/test-context-gather.md +1 -0
- package/.claude/commands/workflow/tools/test-task-generate.md +1 -0
- package/.claude/commands/workflow/ui-design/import-from-code.md +9 -6
- package/.claude/skills/command-guide/SKILL.md +5 -5
- package/.claude/skills/command-guide/index/all-commands.json +1 -1
- package/.claude/skills/command-guide/index/by-category.json +1 -1
- package/.claude/skills/command-guide/index/by-use-case.json +1 -1
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +857 -778
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +266 -269
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +2 -2
- package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +142 -92
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +4 -4
- package/.claude/skills/command-guide/reference/agents/code-developer.md +7 -6
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +2 -2
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +31 -32
- package/.claude/skills/command-guide/reference/agents/doc-generator.md +4 -4
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +93 -93
- package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +8 -7
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +7 -6
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -471
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -386
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +17 -16
- package/.claude/skills/command-guide/reference/commands/memory/load.md +5 -5
- package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +194 -357
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -332
- package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +4 -4
- package/.claude/skills/command-guide/reference/commands/task/create.md +151 -151
- package/.claude/skills/command-guide/reference/commands/version.md +254 -254
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -585
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +443 -443
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -220
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -387
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -221
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -221
- package/.claude/skills/command-guide/reference/commands/workflow/execute.md +25 -20
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -164
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +748 -686
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +664 -621
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +645 -592
- package/.claude/skills/command-guide/reference/commands/workflow/plan.md +5 -5
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +25 -18
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +547 -500
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +45 -27
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +35 -19
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +90 -33
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +3 -3
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +23 -9
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -699
- package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +103 -17
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -434
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +487 -291
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +17 -10
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +1 -1
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +6 -6
- package/.claude/workflows/chinese-response.md +38 -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/workflow/gemini-solution-design.txt +131 -131
- package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +5 -9
- package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +5 -9
- 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/fix-plan-json-schema.json +25 -0
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +25 -0
- package/.claude/workflows/cli-tools-usage.md +526 -0
- package/{CLAUDE.md → .claude/workflows/coding-philosophy.md} +24 -45
- package/.claude/workflows/context-tools.md +84 -0
- package/.claude/workflows/file-modification.md +64 -0
- package/.claude/workflows/tool-strategy.md +216 -79
- package/.claude/workflows/windows-platform.md +16 -0
- package/.claude/workflows/workflow-architecture.md +942 -942
- package/.codex/AGENTS.md +63 -330
- 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 -164
- package/.qwen/QWEN.md +0 -139
- package/README.md +29 -9
- package/ccw/README.md +30 -6
- package/ccw/bin/ccw-mcp.js +7 -0
- package/ccw/bin/ccw.js +9 -9
- package/ccw/package.json +65 -47
- package/ccw/src/.workflow/.cli-history/history.db +0 -0
- package/ccw/src/.workflow/.cli-history/history.db-shm +0 -0
- package/ccw/src/.workflow/.cli-history/history.db-wal +0 -0
- package/ccw/src/cli.ts +244 -0
- package/ccw/src/commands/cli.ts +740 -0
- package/ccw/src/commands/core-memory.ts +770 -0
- package/ccw/src/commands/hook.ts +315 -0
- package/ccw/src/commands/install.ts +519 -0
- package/ccw/src/commands/{list.js → list.ts} +1 -1
- package/ccw/src/commands/memory.ts +1090 -0
- package/ccw/src/commands/{serve.js → serve.ts} +14 -5
- package/ccw/src/commands/session-path-resolver.ts +372 -0
- package/ccw/src/commands/session.ts +1141 -0
- package/ccw/src/commands/{stop.js → stop.ts} +16 -6
- package/ccw/src/commands/tool.ts +201 -0
- package/ccw/src/commands/{uninstall.js → uninstall.ts} +89 -40
- package/ccw/src/commands/{upgrade.js → upgrade.ts} +68 -23
- package/ccw/src/commands/{view.js → view.ts} +22 -8
- package/ccw/src/config/storage-paths.ts +670 -0
- package/ccw/src/core/cache-manager.ts +294 -0
- package/ccw/src/core/claude-freshness.ts +319 -0
- package/ccw/src/core/core-memory-store.ts +1528 -0
- package/ccw/src/core/{dashboard-generator-patch.js → dashboard-generator-patch.ts} +18 -0
- package/ccw/src/core/{dashboard-generator.js → dashboard-generator.ts} +69 -12
- package/ccw/src/core/data-aggregator.ts +584 -0
- package/ccw/src/core/history-importer.ts +625 -0
- package/ccw/src/core/{lite-scanner.js → lite-scanner-complete.ts} +162 -66
- package/ccw/src/core/lite-scanner.ts +469 -0
- package/ccw/src/core/{manifest.js → manifest.ts} +104 -34
- package/ccw/src/core/memory-embedder-bridge.ts +262 -0
- package/ccw/src/core/memory-store.ts +978 -0
- package/ccw/src/core/routes/ccw-routes.ts +96 -0
- package/ccw/src/core/routes/claude-routes.ts +1183 -0
- package/ccw/src/core/routes/cli-routes.ts +561 -0
- package/ccw/src/core/routes/codexlens-routes.ts +806 -0
- package/ccw/src/core/routes/core-memory-routes.ts +605 -0
- package/ccw/src/core/routes/files-routes.ts +428 -0
- package/ccw/src/core/routes/graph-routes.md +164 -0
- package/ccw/src/core/routes/graph-routes.ts +626 -0
- package/ccw/src/core/routes/help-routes.ts +308 -0
- package/ccw/src/core/routes/hooks-routes.ts +405 -0
- package/ccw/src/core/routes/mcp-routes.ts +1271 -0
- package/ccw/src/core/routes/mcp-routes.ts.backup +550 -0
- package/ccw/src/core/routes/mcp-templates-db.ts +268 -0
- package/ccw/src/core/routes/memory-routes.ts +1206 -0
- package/ccw/src/core/routes/rules-routes.ts +526 -0
- package/ccw/src/core/routes/session-routes.ts +467 -0
- package/ccw/src/core/routes/skills-routes.ts +599 -0
- package/ccw/src/core/routes/status-routes.ts +57 -0
- package/ccw/src/core/routes/system-routes.ts +427 -0
- package/ccw/src/core/server.ts +431 -0
- package/ccw/src/core/session-clustering-service.ts +1258 -0
- package/ccw/src/core/session-scanner.ts +283 -0
- package/ccw/src/core/websocket.ts +190 -0
- package/ccw/src/{index.js → index.ts} +1 -0
- package/ccw/src/mcp-server/index.ts +186 -0
- package/ccw/src/templates/assets/css/github-dark.min.css +10 -0
- package/ccw/src/templates/assets/css/github.min.css +10 -0
- package/ccw/src/templates/assets/js/cytoscape.min.js +32 -0
- package/ccw/src/templates/assets/js/d3.min.js +2 -0
- package/ccw/src/templates/assets/js/highlight.min.js +1244 -0
- package/ccw/src/templates/assets/js/lucide.min.js +12 -0
- package/ccw/src/templates/assets/js/marked.min.js +69 -0
- package/ccw/src/templates/assets/js/tailwind.js +83 -0
- package/ccw/src/templates/dashboard-css/01-base.css +11 -0
- package/ccw/src/templates/dashboard-css/02-session.css +22 -0
- package/ccw/src/templates/dashboard-css/04-lite-tasks.css +10 -0
- package/ccw/src/templates/dashboard-css/06-cards.css +10 -4
- package/ccw/src/templates/dashboard-css/07-managers.css +1178 -7
- package/ccw/src/templates/dashboard-css/09-explorer.css +23 -12
- package/ccw/src/templates/dashboard-css/10-cli-status.css +337 -0
- package/ccw/src/templates/dashboard-css/11-cli-history.css +271 -0
- package/ccw/src/templates/dashboard-css/12-cli-legacy.css +796 -0
- package/ccw/src/templates/dashboard-css/13-cli-ccw.css +199 -0
- package/ccw/src/templates/dashboard-css/14-cli-modals.css +258 -0
- package/ccw/src/templates/dashboard-css/15-cli-endpoints.css +305 -0
- package/ccw/src/templates/dashboard-css/16-cli-session.css +241 -0
- package/ccw/src/templates/dashboard-css/17-cli-conversation.css +283 -0
- package/ccw/src/templates/dashboard-css/18-cli-settings.css +160 -0
- package/ccw/src/templates/dashboard-css/19-cli-native-session.css +496 -0
- package/ccw/src/templates/dashboard-css/20-cli-taskqueue.css +188 -0
- package/ccw/src/templates/dashboard-css/21-cli-toolmgmt.css +310 -0
- package/ccw/src/templates/dashboard-css/22-cli-semantic.css +240 -0
- package/ccw/src/templates/dashboard-css/23-memory.css +2390 -0
- package/ccw/src/templates/dashboard-css/24-prompt-history.css +1089 -0
- package/ccw/src/templates/dashboard-css/25-skills-rules.css +326 -0
- package/ccw/src/templates/dashboard-css/26-claude-manager.css +908 -0
- package/ccw/src/templates/dashboard-css/27-graph-explorer.css +1678 -0
- package/ccw/src/templates/dashboard-css/28-mcp-manager.css +748 -0
- package/ccw/src/templates/dashboard-css/29-help.css +264 -0
- package/ccw/src/templates/dashboard-css/30-core-memory.css +1700 -0
- package/ccw/src/templates/dashboard-js/api.js +162 -142
- package/ccw/src/templates/dashboard-js/components/carousel.js +4 -4
- package/ccw/src/templates/dashboard-js/components/cli-history.js +876 -0
- package/ccw/src/templates/dashboard-js/components/cli-status.js +978 -0
- package/ccw/src/templates/dashboard-js/components/global-notifications.js +508 -219
- package/ccw/src/templates/dashboard-js/components/hook-manager.js +1277 -282
- package/ccw/src/templates/dashboard-js/components/index-manager.js +302 -0
- package/ccw/src/templates/dashboard-js/components/mcp-manager.js +718 -27
- package/ccw/src/templates/dashboard-js/components/modals.js +66 -0
- package/ccw/src/templates/dashboard-js/components/navigation.js +80 -12
- package/ccw/src/templates/dashboard-js/components/notifications.js +758 -194
- package/ccw/src/templates/dashboard-js/components/storage-manager.js +478 -0
- package/ccw/src/templates/dashboard-js/components/tabs-other.js +157 -6
- package/ccw/src/templates/dashboard-js/components/task-queue-sidebar.js +716 -0
- package/ccw/src/templates/dashboard-js/help-i18n.js +272 -0
- package/ccw/src/templates/dashboard-js/i18n.js +2807 -0
- package/ccw/src/templates/dashboard-js/main.js +15 -0
- package/ccw/src/templates/dashboard-js/state.js +243 -42
- package/ccw/src/templates/dashboard-js/utils.js +47 -1
- package/ccw/src/templates/dashboard-js/views/claude-manager.js +912 -0
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +2272 -0
- package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +964 -0
- package/ccw/src/templates/dashboard-js/views/core-memory-clusters.js +503 -0
- package/ccw/src/templates/dashboard-js/views/core-memory.js +782 -0
- package/ccw/src/templates/dashboard-js/views/explorer.js +888 -852
- package/ccw/src/templates/dashboard-js/views/graph-explorer.js +1157 -0
- package/ccw/src/templates/dashboard-js/views/help.js +856 -0
- package/ccw/src/templates/dashboard-js/views/history.js +337 -0
- package/ccw/src/templates/dashboard-js/views/home.js +61 -15
- package/ccw/src/templates/dashboard-js/views/hook-manager.js +311 -43
- package/ccw/src/templates/dashboard-js/views/lite-tasks.js +204 -28
- package/ccw/src/templates/dashboard-js/views/mcp-manager.js +2187 -411
- package/ccw/src/templates/dashboard-js/views/mcp-manager.js.backup +1729 -0
- package/ccw/src/templates/dashboard-js/views/mcp-manager.js.new +928 -0
- package/ccw/src/templates/dashboard-js/views/memory.js +1221 -0
- package/ccw/src/templates/dashboard-js/views/prompt-history.js +713 -0
- package/ccw/src/templates/dashboard-js/views/rules-manager.js +828 -0
- package/ccw/src/templates/dashboard-js/views/session-detail.js +54 -53
- package/ccw/src/templates/dashboard-js/views/skills-manager.js +819 -0
- package/ccw/src/templates/dashboard.html +185 -85
- package/ccw/src/templates/hooks-config-example.json +60 -0
- package/ccw/src/tools/classify-folders.ts +245 -0
- package/ccw/src/tools/cli-config-manager.ts +268 -0
- package/ccw/src/tools/cli-executor.ts +2014 -0
- package/ccw/src/tools/cli-history-store.ts +1195 -0
- package/ccw/src/tools/codex-lens.ts +1141 -0
- package/ccw/src/tools/{convert-tokens-to-css.js → convert-tokens-to-css.ts} +73 -23
- package/ccw/src/tools/core-memory.ts +444 -0
- package/ccw/src/tools/detect-changed-modules.ts +325 -0
- package/ccw/src/tools/{discover-design-files.js → discover-design-files.ts} +74 -24
- package/ccw/src/tools/edit-file.ts +568 -0
- package/ccw/src/tools/{generate-module-docs.js → generate-module-docs.ts} +207 -185
- package/ccw/src/tools/{get-modules-by-depth.js → get-modules-by-depth.ts} +120 -79
- package/ccw/src/tools/index.ts +370 -0
- package/ccw/src/tools/native-session-discovery.ts +795 -0
- package/ccw/src/tools/notifier.ts +129 -0
- package/ccw/src/tools/read-file.ts +410 -0
- package/ccw/src/tools/resume-strategy.ts +345 -0
- package/ccw/src/tools/session-content-parser.ts +619 -0
- package/ccw/src/tools/session-manager.ts +1026 -0
- package/ccw/src/tools/smart-context.ts +228 -0
- package/ccw/src/tools/smart-search.ts +2065 -0
- package/ccw/src/tools/smart-search.ts.backup +1233 -0
- package/ccw/src/tools/storage-manager.ts +455 -0
- package/ccw/src/tools/write-file.ts +222 -0
- package/ccw/src/types/config.ts +11 -0
- package/ccw/src/types/index.ts +3 -0
- package/ccw/src/types/session.ts +25 -0
- package/ccw/src/types/tool.ts +41 -0
- package/ccw/src/utils/{browser-launcher.js → browser-launcher.ts} +10 -8
- package/ccw/src/utils/file-utils.ts +48 -0
- package/ccw/src/utils/{path-resolver.js → path-resolver.ts} +114 -78
- package/ccw/src/utils/path-validator.ts +153 -0
- package/ccw/src/utils/{ui.js → ui.ts} +32 -25
- package/codex-lens/pyproject.toml +48 -0
- package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
- package/codex-lens/src/codexlens/__init__.py +28 -0
- package/codex-lens/src/codexlens/__main__.py +14 -0
- package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__init__.py +27 -0
- package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +1931 -0
- package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
- package/codex-lens/src/codexlens/cli/model_manager.py +289 -0
- package/codex-lens/src/codexlens/cli/output.py +124 -0
- package/codex-lens/src/codexlens/config.py +201 -0
- package/codex-lens/src/codexlens/entities.py +121 -0
- package/codex-lens/src/codexlens/errors.py +55 -0
- package/codex-lens/src/codexlens/indexing/README.md +77 -0
- package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
- package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
- package/codex-lens/src/codexlens/parsers/factory.py +256 -0
- package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
- package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
- package/codex-lens/src/codexlens/search/__init__.py +15 -0
- package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/chain_search.py +647 -0
- package/codex-lens/src/codexlens/search/enrichment.py +150 -0
- package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
- package/codex-lens/src/codexlens/search/query_parser.py +242 -0
- package/codex-lens/src/codexlens/search/ranking.py +274 -0
- package/codex-lens/src/codexlens/semantic/__init__.py +39 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/graph_analyzer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/llm_enhancer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
- package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
- package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
- package/codex-lens/src/codexlens/semantic/embedder.py +185 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
- package/codex-lens/src/codexlens/storage/__init__.py +29 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
- package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
- package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
- package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
- package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
- package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
- package/codex-lens/src/codexlens/storage/registry.py +670 -0
- package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
- package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
- package/package.json +4 -1
- package/.claude/commands/memory/tech-research.md +0 -477
- package/.claude/scripts/classify-folders.sh +0 -39
- package/.claude/scripts/convert_tokens_to_css.sh +0 -229
- package/.claude/scripts/detect_changed_modules.sh +0 -161
- package/.claude/scripts/discover-design-files.sh +0 -87
- package/.claude/scripts/extract-animations.js +0 -243
- package/.claude/scripts/extract-computed-styles.js +0 -118
- package/.claude/scripts/extract-layout-structure.js +0 -411
- package/.claude/scripts/generate_module_docs.sh +0 -717
- package/.claude/scripts/get_modules_by_depth.sh +0 -170
- package/.claude/scripts/ui-generate-preview.sh +0 -395
- package/.claude/scripts/ui-instantiate-prototypes.sh +0 -815
- package/.claude/scripts/update_module_claude.sh +0 -337
- package/.claude/workflows/context-search-strategy.md +0 -77
- package/.claude/workflows/intelligent-tools-strategy.md +0 -662
- package/ccw/src/cli.js +0 -119
- package/ccw/src/commands/install.js +0 -324
- package/ccw/src/commands/tool.js +0 -138
- package/ccw/src/core/data-aggregator.js +0 -409
- package/ccw/src/core/server.js +0 -2063
- package/ccw/src/core/session-scanner.js +0 -235
- package/ccw/src/tools/classify-folders.js +0 -204
- package/ccw/src/tools/detect-changed-modules.js +0 -288
- package/ccw/src/tools/edit-file.js +0 -266
- package/ccw/src/tools/index.js +0 -176
- package/ccw/src/utils/file-utils.js +0 -48
|
@@ -1,477 +1,314 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tech-research
|
|
3
|
-
description: 3-phase orchestrator: extract tech stack
|
|
3
|
+
description: "3-phase orchestrator: extract tech stack → Exa research → generate path-conditional rules (auto-loaded by Claude Code)"
|
|
4
4
|
argument-hint: "[session-id | tech-stack-name] [--regenerate] [--tool <gemini|qwen>]"
|
|
5
5
|
allowed-tools: SlashCommand(*), TodoWrite(*), Bash(*), Read(*), Write(*), Task(*)
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Tech Stack
|
|
8
|
+
# Tech Stack Rules Generator
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
12
|
-
**
|
|
12
|
+
**Purpose**: Generate multi-layered, path-conditional rules that Claude Code automatically loads based on file context.
|
|
13
13
|
|
|
14
|
-
**
|
|
14
|
+
**Key Difference from SKILL Memory**:
|
|
15
|
+
- **SKILL**: Manual loading via `Skill(command: "tech-name")`
|
|
16
|
+
- **Rules**: Automatic loading when working with matching file paths
|
|
15
17
|
|
|
16
|
-
**
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
18
|
+
**Output Structure**:
|
|
19
|
+
```
|
|
20
|
+
.claude/rules/tech/{tech-stack}/
|
|
21
|
+
├── core.md # paths: **/*.{ext} - Core principles
|
|
22
|
+
├── patterns.md # paths: src/**/*.{ext} - Implementation patterns
|
|
23
|
+
├── testing.md # paths: **/*.{test,spec}.{ext} - Testing rules
|
|
24
|
+
├── config.md # paths: *.config.* - Configuration rules
|
|
25
|
+
├── api.md # paths: **/api/**/* - API rules (backend only)
|
|
26
|
+
├── components.md # paths: **/components/**/* - Component rules (frontend only)
|
|
27
|
+
└── metadata.json # Generation metadata
|
|
28
|
+
```
|
|
20
29
|
|
|
21
|
-
**
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
**Templates Location**: `~/.claude/workflows/cli-templates/prompts/rules/`
|
|
31
|
+
|
|
32
|
+
---
|
|
24
33
|
|
|
25
34
|
## Core Rules
|
|
26
35
|
|
|
27
|
-
1. **Start Immediately**: First action is TodoWrite initialization
|
|
28
|
-
2. **
|
|
29
|
-
3. **
|
|
30
|
-
4. **
|
|
31
|
-
5. **No
|
|
32
|
-
6. **Track Progress**: Update TodoWrite after EVERY phase completion before starting next phase
|
|
33
|
-
7. **Lightweight Index**: Phase 3 only generates SKILL.md index by reading existing files
|
|
36
|
+
1. **Start Immediately**: First action is TodoWrite initialization
|
|
37
|
+
2. **Path-Conditional Output**: Every rule file includes `paths` frontmatter
|
|
38
|
+
3. **Template-Driven**: Agent reads templates before generating content
|
|
39
|
+
4. **Agent Produces Files**: Agent writes all rule files directly
|
|
40
|
+
5. **No Manual Loading**: Rules auto-activate when Claude works with matching files
|
|
34
41
|
|
|
35
42
|
---
|
|
36
43
|
|
|
37
44
|
## 3-Phase Execution
|
|
38
45
|
|
|
39
|
-
### Phase 1: Prepare Context
|
|
46
|
+
### Phase 1: Prepare Context & Detect Tech Stack
|
|
40
47
|
|
|
41
|
-
**Goal**: Detect input mode,
|
|
48
|
+
**Goal**: Detect input mode, extract tech stack info, determine file extensions
|
|
42
49
|
|
|
43
50
|
**Input Mode Detection**:
|
|
44
51
|
```bash
|
|
45
|
-
# Get input parameter
|
|
46
52
|
input="$1"
|
|
47
53
|
|
|
48
|
-
# Detect mode
|
|
49
54
|
if [[ "$input" == WFS-* ]]; then
|
|
50
55
|
MODE="session"
|
|
51
56
|
SESSION_ID="$input"
|
|
52
|
-
|
|
57
|
+
# Read workflow-session.json to extract tech stack
|
|
53
58
|
else
|
|
54
59
|
MODE="direct"
|
|
55
60
|
TECH_STACK_NAME="$input"
|
|
56
|
-
CONTEXT_PATH="$input" # Pass tech stack name as context
|
|
57
61
|
fi
|
|
58
62
|
```
|
|
59
63
|
|
|
60
|
-
**
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
**Tech Stack Analysis**:
|
|
65
|
+
```javascript
|
|
66
|
+
// Decompose composite tech stacks
|
|
67
|
+
// "typescript-react-nextjs" → ["typescript", "react", "nextjs"]
|
|
68
|
+
|
|
69
|
+
const TECH_EXTENSIONS = {
|
|
70
|
+
"typescript": "{ts,tsx}",
|
|
71
|
+
"javascript": "{js,jsx}",
|
|
72
|
+
"python": "py",
|
|
73
|
+
"rust": "rs",
|
|
74
|
+
"go": "go",
|
|
75
|
+
"java": "java",
|
|
76
|
+
"csharp": "cs",
|
|
77
|
+
"ruby": "rb",
|
|
78
|
+
"php": "php"
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const FRAMEWORK_TYPE = {
|
|
82
|
+
"react": "frontend",
|
|
83
|
+
"vue": "frontend",
|
|
84
|
+
"angular": "frontend",
|
|
85
|
+
"nextjs": "fullstack",
|
|
86
|
+
"nuxt": "fullstack",
|
|
87
|
+
"fastapi": "backend",
|
|
88
|
+
"express": "backend",
|
|
89
|
+
"django": "backend",
|
|
90
|
+
"rails": "backend"
|
|
91
|
+
};
|
|
92
|
+
```
|
|
68
93
|
|
|
69
|
-
|
|
94
|
+
**Check Existing Rules**:
|
|
95
|
+
```bash
|
|
70
96
|
normalized_name=$(echo "$TECH_STACK_NAME" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
|
|
71
|
-
|
|
72
|
-
|
|
97
|
+
rules_dir=".claude/rules/tech/${normalized_name}"
|
|
98
|
+
existing_count=$(find "${rules_dir}" -name "*.md" 2>/dev/null | wc -l || echo 0)
|
|
73
99
|
```
|
|
74
100
|
|
|
75
101
|
**Skip Decision**:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
SKIP_GENERATION = true
|
|
79
|
-
message = "Tech stack SKILL already exists, skipping Phase 2. Use --regenerate to force regeneration."
|
|
80
|
-
} else if (regenerate_flag) {
|
|
81
|
-
bash(rm -rf ".claude/skills/${normalized_name}")
|
|
82
|
-
SKIP_GENERATION = false
|
|
83
|
-
message = "Regenerating tech stack SKILL from scratch."
|
|
84
|
-
} else {
|
|
85
|
-
SKIP_GENERATION = false
|
|
86
|
-
message = "No existing SKILL found, generating new tech stack documentation."
|
|
87
|
-
}
|
|
88
|
-
```
|
|
102
|
+
- If `existing_count > 0` AND no `--regenerate` → `SKIP_GENERATION = true`
|
|
103
|
+
- If `--regenerate` → Delete existing and regenerate
|
|
89
104
|
|
|
90
105
|
**Output Variables**:
|
|
91
|
-
- `
|
|
92
|
-
- `
|
|
93
|
-
- `
|
|
94
|
-
- `
|
|
95
|
-
- `
|
|
106
|
+
- `TECH_STACK_NAME`: Normalized name
|
|
107
|
+
- `PRIMARY_LANG`: Primary language
|
|
108
|
+
- `FILE_EXT`: File extension pattern
|
|
109
|
+
- `FRAMEWORK_TYPE`: frontend | backend | fullstack | library
|
|
110
|
+
- `COMPONENTS`: Array of tech components
|
|
111
|
+
- `SKIP_GENERATION`: Boolean
|
|
96
112
|
|
|
97
|
-
**TodoWrite**:
|
|
98
|
-
- If skipping: Mark phase 1 completed, phase 2 completed, phase 3 in_progress
|
|
99
|
-
- If not skipping: Mark phase 1 completed, phase 2 in_progress
|
|
113
|
+
**TodoWrite**: Mark phase 1 completed
|
|
100
114
|
|
|
101
115
|
---
|
|
102
116
|
|
|
103
|
-
### Phase 2: Agent Produces
|
|
117
|
+
### Phase 2: Agent Produces Path-Conditional Rules
|
|
104
118
|
|
|
105
119
|
**Skip Condition**: Skipped if `SKIP_GENERATION = true`
|
|
106
120
|
|
|
107
|
-
**Goal**: Delegate
|
|
108
|
-
|
|
109
|
-
**Agent Task Specification**:
|
|
121
|
+
**Goal**: Delegate to agent for Exa research and rule file generation
|
|
110
122
|
|
|
123
|
+
**Template Files**:
|
|
124
|
+
```
|
|
125
|
+
~/.claude/workflows/cli-templates/prompts/rules/
|
|
126
|
+
├── tech-rules-agent-prompt.txt # Agent instructions
|
|
127
|
+
├── rule-core.txt # Core principles template
|
|
128
|
+
├── rule-patterns.txt # Implementation patterns template
|
|
129
|
+
├── rule-testing.txt # Testing rules template
|
|
130
|
+
├── rule-config.txt # Configuration rules template
|
|
131
|
+
├── rule-api.txt # API rules template (backend)
|
|
132
|
+
└── rule-components.txt # Component rules template (frontend)
|
|
111
133
|
```
|
|
112
|
-
Task(
|
|
113
|
-
subagent_type: "general-purpose",
|
|
114
|
-
description: "Generate tech stack SKILL: {CONTEXT_PATH}",
|
|
115
|
-
prompt: "
|
|
116
|
-
Generate a complete tech stack SKILL package with Exa research.
|
|
117
|
-
|
|
118
|
-
**Context Provided**:
|
|
119
|
-
- Mode: {MODE}
|
|
120
|
-
- Context Path: {CONTEXT_PATH}
|
|
121
|
-
|
|
122
|
-
**Templates Available**:
|
|
123
|
-
- Module Format: ~/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt
|
|
124
|
-
- SKILL Index: ~/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt
|
|
125
|
-
|
|
126
|
-
**Your Responsibilities**:
|
|
127
|
-
|
|
128
|
-
1. **Extract Tech Stack Information**:
|
|
129
|
-
|
|
130
|
-
IF MODE == 'session':
|
|
131
|
-
- Read `.workflow/active/{session_id}/workflow-session.json`
|
|
132
|
-
- Read `.workflow/active/{session_id}/.process/context-package.json`
|
|
133
|
-
- Extract tech_stack: {language, frameworks, libraries}
|
|
134
|
-
- Build tech stack name: \"{language}-{framework1}-{framework2}\"
|
|
135
|
-
- Example: \"typescript-react-nextjs\"
|
|
136
|
-
|
|
137
|
-
IF MODE == 'direct':
|
|
138
|
-
- Tech stack name = CONTEXT_PATH
|
|
139
|
-
- Parse composite: split by '-' delimiter
|
|
140
|
-
- Example: \"typescript-react-nextjs\" → [\"typescript\", \"react\", \"nextjs\"]
|
|
141
|
-
|
|
142
|
-
2. **Execute Exa Research** (4-6 parallel queries):
|
|
143
|
-
|
|
144
|
-
Base Queries (always execute):
|
|
145
|
-
- mcp__exa__get_code_context_exa(query: \"{tech} core principles best practices 2025\", tokensNum: 8000)
|
|
146
|
-
- mcp__exa__get_code_context_exa(query: \"{tech} common patterns architecture examples\", tokensNum: 7000)
|
|
147
|
-
- mcp__exa__web_search_exa(query: \"{tech} configuration setup tooling 2025\", numResults: 5)
|
|
148
|
-
- mcp__exa__get_code_context_exa(query: \"{tech} testing strategies\", tokensNum: 5000)
|
|
149
|
-
|
|
150
|
-
Component Queries (if composite):
|
|
151
|
-
- For each additional component:
|
|
152
|
-
mcp__exa__get_code_context_exa(query: \"{main_tech} {component} integration\", tokensNum: 5000)
|
|
153
|
-
|
|
154
|
-
3. **Read Module Format Template**:
|
|
155
|
-
|
|
156
|
-
Read template for structure guidance:
|
|
157
|
-
```bash
|
|
158
|
-
Read(~/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt)
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
4. **Synthesize Content into 6 Modules**:
|
|
162
|
-
|
|
163
|
-
Follow template structure from tech-module-format.txt:
|
|
164
|
-
- **principles.md** - Core concepts, philosophies (~3K tokens)
|
|
165
|
-
- **patterns.md** - Implementation patterns with code examples (~5K tokens)
|
|
166
|
-
- **practices.md** - Best practices, anti-patterns, pitfalls (~4K tokens)
|
|
167
|
-
- **testing.md** - Testing strategies, frameworks (~3K tokens)
|
|
168
|
-
- **config.md** - Setup, configuration, tooling (~3K tokens)
|
|
169
|
-
- **frameworks.md** - Framework integration (only if composite, ~4K tokens)
|
|
170
|
-
|
|
171
|
-
Each module follows template format:
|
|
172
|
-
- Frontmatter (YAML)
|
|
173
|
-
- Main sections with clear headings
|
|
174
|
-
- Code examples from Exa research
|
|
175
|
-
- Best practices sections
|
|
176
|
-
- References to Exa sources
|
|
177
|
-
|
|
178
|
-
5. **Write Files Directly**:
|
|
179
134
|
|
|
180
|
-
|
|
181
|
-
// Create directory
|
|
182
|
-
bash(mkdir -p \".claude/skills/{tech_stack_name}\")
|
|
183
|
-
|
|
184
|
-
// Write each module file using Write tool
|
|
185
|
-
Write({ file_path: \".claude/skills/{tech_stack_name}/principles.md\", content: ... })
|
|
186
|
-
Write({ file_path: \".claude/skills/{tech_stack_name}/patterns.md\", content: ... })
|
|
187
|
-
Write({ file_path: \".claude/skills/{tech_stack_name}/practices.md\", content: ... })
|
|
188
|
-
Write({ file_path: \".claude/skills/{tech_stack_name}/testing.md\", content: ... })
|
|
189
|
-
Write({ file_path: \".claude/skills/{tech_stack_name}/config.md\", content: ... })
|
|
190
|
-
// Write frameworks.md only if composite
|
|
191
|
-
|
|
192
|
-
// Write metadata.json
|
|
193
|
-
Write({
|
|
194
|
-
file_path: \".claude/skills/{tech_stack_name}/metadata.json\",
|
|
195
|
-
content: JSON.stringify({
|
|
196
|
-
tech_stack_name,
|
|
197
|
-
components,
|
|
198
|
-
is_composite,
|
|
199
|
-
generated_at: timestamp,
|
|
200
|
-
source: \"exa-research\",
|
|
201
|
-
research_summary: { total_queries, total_sources }
|
|
202
|
-
})
|
|
203
|
-
})
|
|
204
|
-
```
|
|
135
|
+
**Agent Task**:
|
|
205
136
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
218
|
-
-
|
|
219
|
-
-
|
|
220
|
-
|
|
221
|
-
|
|
137
|
+
```javascript
|
|
138
|
+
Task({
|
|
139
|
+
subagent_type: "general-purpose",
|
|
140
|
+
description: `Generate tech stack rules: ${TECH_STACK_NAME}`,
|
|
141
|
+
prompt: `
|
|
142
|
+
You are generating path-conditional rules for Claude Code.
|
|
143
|
+
|
|
144
|
+
## Context
|
|
145
|
+
- Tech Stack: ${TECH_STACK_NAME}
|
|
146
|
+
- Primary Language: ${PRIMARY_LANG}
|
|
147
|
+
- File Extensions: ${FILE_EXT}
|
|
148
|
+
- Framework Type: ${FRAMEWORK_TYPE}
|
|
149
|
+
- Components: ${JSON.stringify(COMPONENTS)}
|
|
150
|
+
- Output Directory: .claude/rules/tech/${TECH_STACK_NAME}/
|
|
151
|
+
|
|
152
|
+
## Instructions
|
|
153
|
+
|
|
154
|
+
Read the agent prompt template for detailed instructions:
|
|
155
|
+
$(cat ~/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt)
|
|
156
|
+
|
|
157
|
+
## Execution Steps
|
|
158
|
+
|
|
159
|
+
1. Execute Exa research queries (see agent prompt)
|
|
160
|
+
2. Read each rule template
|
|
161
|
+
3. Generate rule files following template structure
|
|
162
|
+
4. Write files to output directory
|
|
163
|
+
5. Write metadata.json
|
|
164
|
+
6. Report completion
|
|
165
|
+
|
|
166
|
+
## Variable Substitutions
|
|
167
|
+
|
|
168
|
+
Replace in templates:
|
|
169
|
+
- {TECH_STACK_NAME} → ${TECH_STACK_NAME}
|
|
170
|
+
- {PRIMARY_LANG} → ${PRIMARY_LANG}
|
|
171
|
+
- {FILE_EXT} → ${FILE_EXT}
|
|
172
|
+
- {FRAMEWORK_TYPE} → ${FRAMEWORK_TYPE}
|
|
173
|
+
`
|
|
174
|
+
})
|
|
222
175
|
```
|
|
223
176
|
|
|
224
177
|
**Completion Criteria**:
|
|
225
|
-
-
|
|
226
|
-
- 5-6 modular files written to `.claude/skills/{tech_stack_name}/`
|
|
178
|
+
- 4-6 rule files written with proper `paths` frontmatter
|
|
227
179
|
- metadata.json written
|
|
228
|
-
- Agent reports
|
|
180
|
+
- Agent reports files created
|
|
229
181
|
|
|
230
|
-
**TodoWrite**: Mark phase 2 completed
|
|
182
|
+
**TodoWrite**: Mark phase 2 completed
|
|
231
183
|
|
|
232
184
|
---
|
|
233
185
|
|
|
234
|
-
### Phase 3:
|
|
186
|
+
### Phase 3: Verify & Report
|
|
235
187
|
|
|
236
|
-
**
|
|
237
|
-
|
|
238
|
-
**Goal**: Read generated module files and create SKILL.md index with loading recommendations
|
|
188
|
+
**Goal**: Verify generated files and provide usage summary
|
|
239
189
|
|
|
240
190
|
**Steps**:
|
|
241
191
|
|
|
242
|
-
1. **Verify
|
|
192
|
+
1. **Verify Files**:
|
|
243
193
|
```bash
|
|
244
|
-
|
|
194
|
+
find ".claude/rules/tech/${TECH_STACK_NAME}" -name "*.md" -type f
|
|
245
195
|
```
|
|
246
196
|
|
|
247
|
-
2. **
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
// Extract: tech_stack_name, components, is_composite, research_summary
|
|
197
|
+
2. **Validate Frontmatter**:
|
|
198
|
+
```bash
|
|
199
|
+
head -5 ".claude/rules/tech/${TECH_STACK_NAME}/core.md"
|
|
251
200
|
```
|
|
252
201
|
|
|
253
|
-
3. **Read
|
|
202
|
+
3. **Read Metadata**:
|
|
254
203
|
```javascript
|
|
255
|
-
Read(
|
|
256
|
-
// Repeat for other modules
|
|
204
|
+
Read(`.claude/rules/tech/${TECH_STACK_NAME}/metadata.json`)
|
|
257
205
|
```
|
|
258
206
|
|
|
259
|
-
4. **
|
|
260
|
-
|
|
261
|
-
```javascript
|
|
262
|
-
Read(~/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt)
|
|
207
|
+
4. **Generate Summary Report**:
|
|
263
208
|
```
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
-
|
|
278
|
-
-
|
|
279
|
-
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
Write({
|
|
286
|
-
file_path: `.claude/skills/${TECH_STACK_NAME}/SKILL.md`,
|
|
287
|
-
content: generatedIndexMarkdown
|
|
288
|
-
})
|
|
209
|
+
Tech Stack Rules Generated
|
|
210
|
+
|
|
211
|
+
Tech Stack: {TECH_STACK_NAME}
|
|
212
|
+
Location: .claude/rules/tech/{TECH_STACK_NAME}/
|
|
213
|
+
|
|
214
|
+
Files Created:
|
|
215
|
+
├── core.md → paths: **/*.{ext}
|
|
216
|
+
├── patterns.md → paths: src/**/*.{ext}
|
|
217
|
+
├── testing.md → paths: **/*.{test,spec}.{ext}
|
|
218
|
+
├── config.md → paths: *.config.*
|
|
219
|
+
├── api.md → paths: **/api/**/* (if backend)
|
|
220
|
+
└── components.md → paths: **/components/**/* (if frontend)
|
|
221
|
+
|
|
222
|
+
Auto-Loading:
|
|
223
|
+
- Rules apply automatically when editing matching files
|
|
224
|
+
- No manual loading required
|
|
225
|
+
|
|
226
|
+
Example Activation:
|
|
227
|
+
- Edit src/components/Button.tsx → core.md + patterns.md + components.md
|
|
228
|
+
- Edit tests/api.test.ts → core.md + testing.md
|
|
229
|
+
- Edit package.json → config.md
|
|
289
230
|
```
|
|
290
231
|
|
|
291
|
-
**Completion Criteria**:
|
|
292
|
-
- SKILL.md index written
|
|
293
|
-
- All module files verified
|
|
294
|
-
- Loading recommendations included
|
|
295
|
-
|
|
296
232
|
**TodoWrite**: Mark phase 3 completed
|
|
297
233
|
|
|
298
|
-
**Final Report**:
|
|
299
|
-
```
|
|
300
|
-
Tech Stack SKILL Package Complete
|
|
301
|
-
|
|
302
|
-
Tech Stack: {TECH_STACK_NAME}
|
|
303
|
-
Location: .claude/skills/{TECH_STACK_NAME}/
|
|
304
|
-
|
|
305
|
-
Files: SKILL.md + 5-6 modules + metadata.json
|
|
306
|
-
Exa Research: {queries} queries, {sources} sources
|
|
307
|
-
|
|
308
|
-
Usage: Skill(command: "{TECH_STACK_NAME}")
|
|
309
|
-
```
|
|
310
|
-
|
|
311
234
|
---
|
|
312
235
|
|
|
313
|
-
##
|
|
236
|
+
## Path Pattern Reference
|
|
314
237
|
|
|
315
|
-
|
|
238
|
+
| Pattern | Matches |
|
|
239
|
+
|---------|---------|
|
|
240
|
+
| `**/*.ts` | All .ts files |
|
|
241
|
+
| `src/**/*` | All files under src/ |
|
|
242
|
+
| `*.config.*` | Config files in root |
|
|
243
|
+
| `**/*.{ts,tsx}` | .ts and .tsx files |
|
|
316
244
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
]})
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
**Full Path** (SKIP_GENERATION = false):
|
|
327
|
-
```javascript
|
|
328
|
-
// After Phase 1
|
|
329
|
-
TodoWrite({todos: [
|
|
330
|
-
{"content": "Prepare context paths", "status": "completed", ...},
|
|
331
|
-
{"content": "Agent produces all module files", "status": "in_progress", ...},
|
|
332
|
-
{"content": "Generate SKILL.md index", "status": "pending", ...}
|
|
333
|
-
]})
|
|
334
|
-
|
|
335
|
-
// After Phase 2
|
|
336
|
-
TodoWrite({todos: [
|
|
337
|
-
{"content": "Prepare context paths", "status": "completed", ...},
|
|
338
|
-
{"content": "Agent produces all module files", "status": "completed", ...},
|
|
339
|
-
{"content": "Generate SKILL.md index", "status": "in_progress", ...}
|
|
340
|
-
]})
|
|
341
|
-
|
|
342
|
-
// After Phase 3
|
|
343
|
-
TodoWrite({todos: [
|
|
344
|
-
{"content": "Prepare context paths", "status": "completed", ...},
|
|
345
|
-
{"content": "Agent produces all module files", "status": "completed", ...},
|
|
346
|
-
{"content": "Generate SKILL.md index", "status": "completed", ...}
|
|
347
|
-
]})
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
**Skip Path** (SKIP_GENERATION = true):
|
|
351
|
-
```javascript
|
|
352
|
-
// After Phase 1 (skip Phase 2)
|
|
353
|
-
TodoWrite({todos: [
|
|
354
|
-
{"content": "Prepare context paths", "status": "completed", ...},
|
|
355
|
-
{"content": "Agent produces all module files", "status": "completed", ...}, // Skipped
|
|
356
|
-
{"content": "Generate SKILL.md index", "status": "in_progress", ...}
|
|
357
|
-
]})
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### Execution Flow
|
|
361
|
-
|
|
362
|
-
**Full Path**:
|
|
363
|
-
```
|
|
364
|
-
User → TodoWrite Init → Phase 1 (prepare) → Phase 2 (agent writes files) → Phase 3 (write index) → Report
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
**Skip Path**:
|
|
368
|
-
```
|
|
369
|
-
User → TodoWrite Init → Phase 1 (detect existing) → Phase 3 (update index) → Report
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
### Error Handling
|
|
373
|
-
|
|
374
|
-
**Phase 1 Errors**:
|
|
375
|
-
- Invalid session ID: Report error, verify session exists
|
|
376
|
-
- Missing context-package: Warn, fall back to direct mode
|
|
377
|
-
- No tech stack detected: Ask user to specify tech stack name
|
|
378
|
-
|
|
379
|
-
**Phase 2 Errors (Agent)**:
|
|
380
|
-
- Agent task fails: Retry once, report if fails again
|
|
381
|
-
- Exa API failures: Agent handles internally with retries
|
|
382
|
-
- Incomplete results: Warn user, proceed with partial data if minimum sections available
|
|
383
|
-
|
|
384
|
-
**Phase 3 Errors**:
|
|
385
|
-
- Write failures: Report which files failed
|
|
386
|
-
- Missing files: Note in SKILL.md, suggest regeneration
|
|
245
|
+
| Tech Stack | Core Pattern | Test Pattern |
|
|
246
|
+
|------------|--------------|--------------|
|
|
247
|
+
| TypeScript | `**/*.{ts,tsx}` | `**/*.{test,spec}.{ts,tsx}` |
|
|
248
|
+
| Python | `**/*.py` | `**/test_*.py, **/*_test.py` |
|
|
249
|
+
| Rust | `**/*.rs` | `**/tests/**/*.rs` |
|
|
250
|
+
| Go | `**/*.go` | `**/*_test.go` |
|
|
387
251
|
|
|
388
252
|
---
|
|
389
253
|
|
|
390
254
|
## Parameters
|
|
391
255
|
|
|
392
256
|
```bash
|
|
393
|
-
/memory:tech-research [session-id | "tech-stack-name"] [--regenerate]
|
|
257
|
+
/memory:tech-research [session-id | "tech-stack-name"] [--regenerate]
|
|
394
258
|
```
|
|
395
259
|
|
|
396
260
|
**Arguments**:
|
|
397
|
-
- **session-id
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
- **--regenerate**: Force regenerate existing SKILL (deletes and recreates)
|
|
401
|
-
- **--tool**: Reserved for future CLI integration (default: gemini)
|
|
261
|
+
- **session-id**: `WFS-*` format - Extract from workflow session
|
|
262
|
+
- **tech-stack-name**: Direct input - `"typescript"`, `"typescript-react"`
|
|
263
|
+
- **--regenerate**: Force regenerate existing rules
|
|
402
264
|
|
|
403
265
|
---
|
|
404
266
|
|
|
405
267
|
## Examples
|
|
406
268
|
|
|
407
|
-
|
|
408
|
-
```
|
|
409
|
-
.claude/skills/{tech-stack}/
|
|
410
|
-
├── SKILL.md # Index (Phase 3)
|
|
411
|
-
├── principles.md # Agent (Phase 2)
|
|
412
|
-
├── patterns.md # Agent
|
|
413
|
-
├── practices.md # Agent
|
|
414
|
-
├── testing.md # Agent
|
|
415
|
-
├── config.md # Agent
|
|
416
|
-
├── frameworks.md # Agent (if composite)
|
|
417
|
-
└── metadata.json # Agent
|
|
418
|
-
```
|
|
419
|
-
|
|
420
|
-
### Direct Mode - Single Stack
|
|
269
|
+
### Single Language
|
|
421
270
|
|
|
422
271
|
```bash
|
|
423
272
|
/memory:tech-research "typescript"
|
|
424
273
|
```
|
|
425
274
|
|
|
426
|
-
**
|
|
427
|
-
1. Phase 1: Detects direct mode, checks existing SKILL
|
|
428
|
-
2. Phase 2: Agent executes 4 Exa queries, writes 5 modules
|
|
429
|
-
3. Phase 3: Generates SKILL.md index
|
|
275
|
+
**Output**: `.claude/rules/tech/typescript/` with 4 rule files
|
|
430
276
|
|
|
431
|
-
###
|
|
277
|
+
### Frontend Stack
|
|
432
278
|
|
|
433
279
|
```bash
|
|
434
|
-
/memory:tech-research "typescript-react
|
|
280
|
+
/memory:tech-research "typescript-react"
|
|
435
281
|
```
|
|
436
282
|
|
|
437
|
-
**
|
|
438
|
-
1. Phase 1: Decomposes into ["typescript", "react", "nextjs"]
|
|
439
|
-
2. Phase 2: Agent executes 6 Exa queries (4 base + 2 components), writes 6 modules (adds frameworks.md)
|
|
440
|
-
3. Phase 3: Generates SKILL.md index with framework integration
|
|
283
|
+
**Output**: `.claude/rules/tech/typescript-react/` with 5 rule files (includes components.md)
|
|
441
284
|
|
|
442
|
-
###
|
|
285
|
+
### Backend Stack
|
|
443
286
|
|
|
444
287
|
```bash
|
|
445
|
-
/memory:tech-research
|
|
288
|
+
/memory:tech-research "python-fastapi"
|
|
446
289
|
```
|
|
447
290
|
|
|
448
|
-
**
|
|
449
|
-
1. Phase 1: Reads session, extracts tech stack: `python-fastapi-sqlalchemy`
|
|
450
|
-
2. Phase 2: Agent researches Python + FastAPI + SQLAlchemy, writes 6 modules
|
|
451
|
-
3. Phase 3: Generates SKILL.md index
|
|
291
|
+
**Output**: `.claude/rules/tech/python-fastapi/` with 5 rule files (includes api.md)
|
|
452
292
|
|
|
453
|
-
###
|
|
293
|
+
### From Session
|
|
454
294
|
|
|
455
295
|
```bash
|
|
456
|
-
/memory:tech-research
|
|
296
|
+
/memory:tech-research WFS-user-auth-20251104
|
|
457
297
|
```
|
|
458
298
|
|
|
459
|
-
**Workflow**:
|
|
460
|
-
1. Phase 1: Deletes existing SKILL due to --regenerate
|
|
461
|
-
2. Phase 2: Agent executes fresh Exa research (latest 2025 practices)
|
|
462
|
-
3. Phase 3: Generates updated SKILL.md
|
|
463
|
-
|
|
464
|
-
### Skip Path - Fast Update
|
|
299
|
+
**Workflow**: Extract tech stack from session → Generate rules
|
|
465
300
|
|
|
466
|
-
|
|
467
|
-
/memory:tech-research "python"
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
**Scenario**: SKILL already exists with 7 files
|
|
301
|
+
---
|
|
471
302
|
|
|
472
|
-
|
|
473
|
-
1. Phase 1: Detects existing SKILL, sets SKIP_GENERATION = true
|
|
474
|
-
2. Phase 2: **SKIPPED**
|
|
475
|
-
3. Phase 3: Updates SKILL.md index only (5-10x faster)
|
|
303
|
+
## Comparison: Rules vs SKILL
|
|
476
304
|
|
|
305
|
+
| Aspect | SKILL Memory | Rules |
|
|
306
|
+
|--------|--------------|-------|
|
|
307
|
+
| Loading | Manual: `Skill("tech")` | Automatic by path |
|
|
308
|
+
| Scope | All files when loaded | Only matching files |
|
|
309
|
+
| Granularity | Monolithic packages | Per-file-type |
|
|
310
|
+
| Context | Full package | Only relevant rules |
|
|
477
311
|
|
|
312
|
+
**When to Use**:
|
|
313
|
+
- **Rules**: Tech stack conventions per file type
|
|
314
|
+
- **SKILL**: Reference docs, APIs, examples for manual lookup
|