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
package/.codex/AGENTS.md
CHANGED
|
@@ -1,330 +1,63 @@
|
|
|
1
|
-
# Codex
|
|
2
|
-
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
**
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
- Test continuously after every change
|
|
65
|
-
- Commit incrementally with working code
|
|
66
|
-
- Match project style and patterns exactly
|
|
67
|
-
- List all created/modified files at output beginning
|
|
68
|
-
- Use direct binary calls (avoid shell wrappers)
|
|
69
|
-
- Prefer apply_patch for text edits
|
|
70
|
-
- Configure Windows UTF-8 encoding for Chinese support
|
|
71
|
-
|
|
72
|
-
**NEVER**:
|
|
73
|
-
- Make assumptions without code verification
|
|
74
|
-
- Ignore existing patterns
|
|
75
|
-
- Skip tests
|
|
76
|
-
- Use clever tricks over boring solutions
|
|
77
|
-
- Over-engineer solutions
|
|
78
|
-
- Break existing code or backward compatibility
|
|
79
|
-
- Exceed 3 failed attempts without stopping
|
|
80
|
-
|
|
81
|
-
### RULES Processing
|
|
82
|
-
|
|
83
|
-
- Parse RULES field to extract template content and constraints
|
|
84
|
-
- Recognize `|` as separator: `template content | additional constraints`
|
|
85
|
-
- Apply ALL template guidelines as mandatory
|
|
86
|
-
- Apply ALL additional constraints as mandatory
|
|
87
|
-
- Treat rule violations as task failures
|
|
88
|
-
|
|
89
|
-
### Multi-Task Execution (Resume Pattern)
|
|
90
|
-
|
|
91
|
-
**First subtask**: Standard execution flow above
|
|
92
|
-
**Subsequent subtasks** (via `resume --last`):
|
|
93
|
-
- Recall context from previous subtasks
|
|
94
|
-
- Build on previous work (don't repeat)
|
|
95
|
-
- Maintain consistency with established patterns
|
|
96
|
-
- Focus on current subtask scope only
|
|
97
|
-
- Test integration with previous work
|
|
98
|
-
- Report context for next subtask
|
|
99
|
-
|
|
100
|
-
## System Optimization
|
|
101
|
-
|
|
102
|
-
**Direct Binary Calls**: Always call binaries directly in `functions.shell`, set `workdir`, avoid shell wrappers (`bash -lc`, `cmd /c`, etc.)
|
|
103
|
-
|
|
104
|
-
**Text Editing Priority**:
|
|
105
|
-
1. Use `apply_patch` tool for all routine text edits
|
|
106
|
-
2. Fall back to `sed` for single-line substitutions if unavailable
|
|
107
|
-
3. Avoid Python editing scripts unless both fail
|
|
108
|
-
|
|
109
|
-
**apply_patch invocation**:
|
|
110
|
-
```json
|
|
111
|
-
{
|
|
112
|
-
"command": ["apply_patch", "*** Begin Patch\n*** Update File: path/to/file\n@@\n- old\n+ new\n*** End Patch\n"],
|
|
113
|
-
"workdir": "<workdir>",
|
|
114
|
-
"justification": "Brief reason"
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**Windows UTF-8 Encoding** (before commands):
|
|
119
|
-
```powershell
|
|
120
|
-
[Console]::InputEncoding = [Text.UTF8Encoding]::new($false)
|
|
121
|
-
[Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
|
|
122
|
-
chcp 65001 > $null
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Output Standards
|
|
126
|
-
|
|
127
|
-
### Format Priority
|
|
128
|
-
|
|
129
|
-
**If template defines output format** → Follow template format EXACTLY (all sections mandatory)
|
|
130
|
-
|
|
131
|
-
**If template has no format** → Use default format below based on task type
|
|
132
|
-
|
|
133
|
-
### Default Output Formats
|
|
134
|
-
|
|
135
|
-
#### Single Task Implementation
|
|
136
|
-
|
|
137
|
-
```markdown
|
|
138
|
-
# Implementation: [TASK Title]
|
|
139
|
-
|
|
140
|
-
## Changes
|
|
141
|
-
- Created: `path/to/file1.ext` (X lines)
|
|
142
|
-
- Modified: `path/to/file2.ext` (+Y/-Z lines)
|
|
143
|
-
- Deleted: `path/to/file3.ext`
|
|
144
|
-
|
|
145
|
-
## Summary
|
|
146
|
-
[2-3 sentence overview of what was implemented]
|
|
147
|
-
|
|
148
|
-
## Key Decisions
|
|
149
|
-
1. [Decision] - Rationale and reference to similar pattern
|
|
150
|
-
2. [Decision] - path/to/reference:line
|
|
151
|
-
|
|
152
|
-
## Implementation Details
|
|
153
|
-
[Evidence-based description with code references]
|
|
154
|
-
|
|
155
|
-
## Testing
|
|
156
|
-
- Tests written: X new tests
|
|
157
|
-
- Tests passing: Y/Z tests
|
|
158
|
-
- Coverage: N%
|
|
159
|
-
|
|
160
|
-
## Validation
|
|
161
|
-
✅ Tests: X passing
|
|
162
|
-
✅ Coverage: Y%
|
|
163
|
-
✅ Build: Success
|
|
164
|
-
|
|
165
|
-
## Next Steps
|
|
166
|
-
[Recommendations or future improvements]
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
#### Multi-Task Execution (with Resume)
|
|
170
|
-
|
|
171
|
-
**First Subtask**:
|
|
172
|
-
```markdown
|
|
173
|
-
# Subtask 1/N: [TASK Title]
|
|
174
|
-
|
|
175
|
-
## Changes
|
|
176
|
-
[List of file changes]
|
|
177
|
-
|
|
178
|
-
## Implementation
|
|
179
|
-
[Details with code references]
|
|
180
|
-
|
|
181
|
-
## Testing
|
|
182
|
-
✅ Tests: X passing
|
|
183
|
-
✅ Integration: Compatible with existing code
|
|
184
|
-
|
|
185
|
-
## Context for Next Subtask
|
|
186
|
-
- Key decisions: [established patterns]
|
|
187
|
-
- Files created: [paths and purposes]
|
|
188
|
-
- Integration points: [where next subtask should connect]
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**Subsequent Subtasks**:
|
|
192
|
-
```markdown
|
|
193
|
-
# Subtask N/M: [TASK Title]
|
|
194
|
-
|
|
195
|
-
## Changes
|
|
196
|
-
[List of file changes]
|
|
197
|
-
|
|
198
|
-
## Integration Notes
|
|
199
|
-
✅ Compatible with subtask N-1
|
|
200
|
-
✅ Maintains established patterns
|
|
201
|
-
✅ Tests pass with previous work
|
|
202
|
-
|
|
203
|
-
## Implementation
|
|
204
|
-
[Details with code references]
|
|
205
|
-
|
|
206
|
-
## Testing
|
|
207
|
-
✅ Tests: X passing
|
|
208
|
-
✅ Total coverage: Y%
|
|
209
|
-
|
|
210
|
-
## Context for Next Subtask
|
|
211
|
-
[If not final subtask, provide context for continuation]
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
#### Partial Completion
|
|
215
|
-
|
|
216
|
-
```markdown
|
|
217
|
-
# Task Status: Partially Completed
|
|
218
|
-
|
|
219
|
-
## Completed
|
|
220
|
-
- [What worked successfully]
|
|
221
|
-
- Files: `path/to/completed.ext`
|
|
222
|
-
|
|
223
|
-
## Blocked
|
|
224
|
-
- **Issue**: [What failed]
|
|
225
|
-
- **Root Cause**: [Analysis of failure]
|
|
226
|
-
- **Attempted**: [Solutions tried - attempt X of 3]
|
|
227
|
-
|
|
228
|
-
## Required
|
|
229
|
-
[What's needed to proceed]
|
|
230
|
-
|
|
231
|
-
## Recommendation
|
|
232
|
-
[Suggested next steps or alternative approaches]
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### Code References
|
|
236
|
-
|
|
237
|
-
**Format**: `path/to/file:line_number`
|
|
238
|
-
|
|
239
|
-
**Example**: `src/auth/jwt.ts:45` - Implemented token validation following pattern from `src/auth/session.ts:78`
|
|
240
|
-
|
|
241
|
-
### Related Files Section
|
|
242
|
-
|
|
243
|
-
**Always include at output beginning** - List ALL files analyzed, created, or modified:
|
|
244
|
-
|
|
245
|
-
```markdown
|
|
246
|
-
## Related Files
|
|
247
|
-
- `path/to/file1.ext` - [Role in implementation]
|
|
248
|
-
- `path/to/file2.ext` - [Reference pattern used]
|
|
249
|
-
- `path/to/file3.ext` - [Modified for X reason]
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Error Handling
|
|
253
|
-
|
|
254
|
-
### Three-Attempt Rule
|
|
255
|
-
|
|
256
|
-
**On 3rd failed attempt**:
|
|
257
|
-
1. Stop execution
|
|
258
|
-
2. Report: What attempted, what failed, root cause
|
|
259
|
-
3. Request guidance or suggest alternatives
|
|
260
|
-
|
|
261
|
-
### Recovery Strategies
|
|
262
|
-
|
|
263
|
-
| Error Type | Response |
|
|
264
|
-
|------------|----------|
|
|
265
|
-
| **Syntax/Type** | Review errors → Fix → Re-run tests → Validate build |
|
|
266
|
-
| **Runtime** | Analyze stack trace → Add error handling → Test error cases |
|
|
267
|
-
| **Test Failure** | Debug in isolation → Review setup → Fix implementation/test |
|
|
268
|
-
| **Build Failure** | Check messages → Fix incrementally → Validate each fix |
|
|
269
|
-
|
|
270
|
-
## Quality Standards
|
|
271
|
-
|
|
272
|
-
### Code Quality
|
|
273
|
-
- Follow project's existing patterns
|
|
274
|
-
- Match import style and naming conventions
|
|
275
|
-
- Single responsibility per function/class
|
|
276
|
-
- DRY (Don't Repeat Yourself)
|
|
277
|
-
- YAGNI (You Aren't Gonna Need It)
|
|
278
|
-
|
|
279
|
-
### Testing
|
|
280
|
-
- Test all public functions
|
|
281
|
-
- Test edge cases and error conditions
|
|
282
|
-
- Mock external dependencies
|
|
283
|
-
- Target 80%+ coverage
|
|
284
|
-
|
|
285
|
-
### Error Handling
|
|
286
|
-
- Proper try-catch blocks
|
|
287
|
-
- Clear error messages
|
|
288
|
-
- Graceful degradation
|
|
289
|
-
- Don't expose sensitive info
|
|
290
|
-
|
|
291
|
-
## Core Principles
|
|
292
|
-
|
|
293
|
-
**Incremental Progress**:
|
|
294
|
-
- Small, testable changes
|
|
295
|
-
- Commit working code frequently
|
|
296
|
-
- Build on previous work (subtasks)
|
|
297
|
-
|
|
298
|
-
**Evidence-Based**:
|
|
299
|
-
- Study 3+ similar patterns before implementing
|
|
300
|
-
- Match project style exactly
|
|
301
|
-
- Verify with existing code
|
|
302
|
-
|
|
303
|
-
**Pragmatic**:
|
|
304
|
-
- Boring solutions over clever code
|
|
305
|
-
- Simple over complex
|
|
306
|
-
- Adapt to project reality
|
|
307
|
-
|
|
308
|
-
**Context Continuity** (Multi-Task):
|
|
309
|
-
- Leverage resume for consistency
|
|
310
|
-
- Maintain established patterns
|
|
311
|
-
- Test integration between subtasks
|
|
312
|
-
|
|
313
|
-
## Execution Checklist
|
|
314
|
-
|
|
315
|
-
**Before**:
|
|
316
|
-
- [ ] Understand PURPOSE and TASK clearly
|
|
317
|
-
- [ ] Review CONTEXT files, find 3+ patterns
|
|
318
|
-
- [ ] Check RULES templates and constraints
|
|
319
|
-
|
|
320
|
-
**During**:
|
|
321
|
-
- [ ] Follow existing patterns exactly
|
|
322
|
-
- [ ] Write tests alongside code
|
|
323
|
-
- [ ] Run tests after every change
|
|
324
|
-
- [ ] Commit working code incrementally
|
|
325
|
-
|
|
326
|
-
**After**:
|
|
327
|
-
- [ ] All tests pass
|
|
328
|
-
- [ ] Coverage meets target
|
|
329
|
-
- [ ] Build succeeds
|
|
330
|
-
- [ ] All EXPECTED deliverables met
|
|
1
|
+
# Codex Code Guidelines
|
|
2
|
+
|
|
3
|
+
## Code Quality Standards
|
|
4
|
+
|
|
5
|
+
### Code Quality
|
|
6
|
+
- Follow project's existing patterns
|
|
7
|
+
- Match import style and naming conventions
|
|
8
|
+
- Single responsibility per function/class
|
|
9
|
+
- DRY (Don't Repeat Yourself)
|
|
10
|
+
- YAGNI (You Aren't Gonna Need It)
|
|
11
|
+
|
|
12
|
+
### Testing
|
|
13
|
+
- Test all public functions
|
|
14
|
+
- Test edge cases and error conditions
|
|
15
|
+
- Mock external dependencies
|
|
16
|
+
- Target 80%+ coverage
|
|
17
|
+
|
|
18
|
+
### Error Handling
|
|
19
|
+
- Proper try-catch blocks
|
|
20
|
+
- Clear error messages
|
|
21
|
+
- Graceful degradation
|
|
22
|
+
- Don't expose sensitive info
|
|
23
|
+
|
|
24
|
+
## Core Principles
|
|
25
|
+
|
|
26
|
+
**Incremental Progress**:
|
|
27
|
+
- Small, testable changes
|
|
28
|
+
- Commit working code frequently
|
|
29
|
+
- Build on previous work (subtasks)
|
|
30
|
+
|
|
31
|
+
**Evidence-Based**:
|
|
32
|
+
- Study 3+ similar patterns before implementing
|
|
33
|
+
- Match project style exactly
|
|
34
|
+
- Verify with existing code
|
|
35
|
+
|
|
36
|
+
**Pragmatic**:
|
|
37
|
+
- Boring solutions over clever code
|
|
38
|
+
- Simple over complex
|
|
39
|
+
- Adapt to project reality
|
|
40
|
+
|
|
41
|
+
**Context Continuity** (Multi-Task):
|
|
42
|
+
- Leverage resume for consistency
|
|
43
|
+
- Maintain established patterns
|
|
44
|
+
- Test integration between subtasks
|
|
45
|
+
|
|
46
|
+
## Execution Checklist
|
|
47
|
+
|
|
48
|
+
**Before**:
|
|
49
|
+
- [ ] Understand PURPOSE and TASK clearly
|
|
50
|
+
- [ ] Review CONTEXT files, find 3+ patterns
|
|
51
|
+
- [ ] Check RULES templates and constraints
|
|
52
|
+
|
|
53
|
+
**During**:
|
|
54
|
+
- [ ] Follow existing patterns exactly
|
|
55
|
+
- [ ] Write tests alongside code
|
|
56
|
+
- [ ] Run tests after every change
|
|
57
|
+
- [ ] Commit working code incrementally
|
|
58
|
+
|
|
59
|
+
**After**:
|
|
60
|
+
- [ ] All tests pass
|
|
61
|
+
- [ ] Coverage meets target
|
|
62
|
+
- [ ] Build succeeds
|
|
63
|
+
- [ ] All EXPECTED deliverables met
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Interactive hypothesis-driven debugging with NDJSON logging, iterative until resolved
|
|
3
|
+
argument-hint: BUG="<bug description or error message>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workflow Debug Command
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Evidence-based interactive debugging command. Systematically identifies root causes through hypothesis-driven logging and iterative verification.
|
|
11
|
+
|
|
12
|
+
**Core workflow**: Explore → Add Logging → Reproduce → Analyze Log → Fix → Verify
|
|
13
|
+
|
|
14
|
+
## Bug Description
|
|
15
|
+
|
|
16
|
+
**Target bug**: $BUG
|
|
17
|
+
|
|
18
|
+
## Execution Process
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Session Detection:
|
|
22
|
+
├─ Check if debug session exists for this bug
|
|
23
|
+
├─ EXISTS + debug.log has content → Analyze mode
|
|
24
|
+
└─ NOT_FOUND or empty log → Explore mode
|
|
25
|
+
|
|
26
|
+
Explore Mode:
|
|
27
|
+
├─ Locate error source in codebase
|
|
28
|
+
├─ Generate testable hypotheses (dynamic count)
|
|
29
|
+
├─ Add NDJSON logging instrumentation
|
|
30
|
+
└─ Output: Hypothesis list + await user reproduction
|
|
31
|
+
|
|
32
|
+
Analyze Mode:
|
|
33
|
+
├─ Parse debug.log, validate each hypothesis
|
|
34
|
+
└─ Decision:
|
|
35
|
+
├─ Confirmed → Fix root cause
|
|
36
|
+
├─ Inconclusive → Add more logging, iterate
|
|
37
|
+
└─ All rejected → Generate new hypotheses
|
|
38
|
+
|
|
39
|
+
Fix & Cleanup:
|
|
40
|
+
├─ Apply fix based on confirmed hypothesis
|
|
41
|
+
├─ User verifies
|
|
42
|
+
├─ Remove debug instrumentation
|
|
43
|
+
└─ If not fixed → Return to Analyze mode
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Implementation
|
|
47
|
+
|
|
48
|
+
### Session Setup & Mode Detection
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
|
|
52
|
+
|
|
53
|
+
const bugSlug = "$BUG".toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 30)
|
|
54
|
+
const dateStr = getUtc8ISOString().substring(0, 10)
|
|
55
|
+
|
|
56
|
+
const sessionId = `DBG-${bugSlug}-${dateStr}`
|
|
57
|
+
const sessionFolder = `.workflow/.debug/${sessionId}`
|
|
58
|
+
const debugLogPath = `${sessionFolder}/debug.log`
|
|
59
|
+
|
|
60
|
+
// Auto-detect mode
|
|
61
|
+
const sessionExists = fs.existsSync(sessionFolder)
|
|
62
|
+
const logHasContent = sessionExists && fs.existsSync(debugLogPath) && fs.statSync(debugLogPath).size > 0
|
|
63
|
+
|
|
64
|
+
const mode = logHasContent ? 'analyze' : 'explore'
|
|
65
|
+
|
|
66
|
+
if (!sessionExists) {
|
|
67
|
+
bash(`mkdir -p ${sessionFolder}`)
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### Explore Mode
|
|
74
|
+
|
|
75
|
+
**Step 1.1: Locate Error Source**
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
// Extract keywords from bug description
|
|
79
|
+
const keywords = extractErrorKeywords("$BUG")
|
|
80
|
+
// e.g., ['Stack Length', '未找到', 'registered 0']
|
|
81
|
+
|
|
82
|
+
// Search codebase for error locations
|
|
83
|
+
for (const keyword of keywords) {
|
|
84
|
+
Grep({ pattern: keyword, path: ".", output_mode: "content", "-C": 3 })
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Identify affected files and functions
|
|
88
|
+
const affectedLocations = [...] // from search results
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Step 1.2: Generate Hypotheses (Dynamic)**
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
// Hypothesis categories based on error pattern
|
|
95
|
+
const HYPOTHESIS_PATTERNS = {
|
|
96
|
+
"not found|missing|undefined|未找到": "data_mismatch",
|
|
97
|
+
"0|empty|zero|registered 0": "logic_error",
|
|
98
|
+
"timeout|connection|sync": "integration_issue",
|
|
99
|
+
"type|format|parse": "type_mismatch"
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Generate hypotheses based on actual issue (NOT fixed count)
|
|
103
|
+
function generateHypotheses(bugDescription, affectedLocations) {
|
|
104
|
+
const hypotheses = []
|
|
105
|
+
|
|
106
|
+
// Analyze bug and create targeted hypotheses
|
|
107
|
+
// Each hypothesis has:
|
|
108
|
+
// - id: H1, H2, ... (dynamic count)
|
|
109
|
+
// - description: What might be wrong
|
|
110
|
+
// - testable_condition: What to log
|
|
111
|
+
// - logging_point: Where to add instrumentation
|
|
112
|
+
|
|
113
|
+
return hypotheses // Could be 1, 3, 5, or more
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const hypotheses = generateHypotheses("$BUG", affectedLocations)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Step 1.3: Add NDJSON Instrumentation**
|
|
120
|
+
|
|
121
|
+
For each hypothesis, add logging at the relevant location:
|
|
122
|
+
|
|
123
|
+
**Python template**:
|
|
124
|
+
```python
|
|
125
|
+
# region debug [H{n}]
|
|
126
|
+
try:
|
|
127
|
+
import json, time
|
|
128
|
+
_dbg = {
|
|
129
|
+
"sid": "{sessionId}",
|
|
130
|
+
"hid": "H{n}",
|
|
131
|
+
"loc": "{file}:{line}",
|
|
132
|
+
"msg": "{testable_condition}",
|
|
133
|
+
"data": {
|
|
134
|
+
# Capture relevant values here
|
|
135
|
+
},
|
|
136
|
+
"ts": int(time.time() * 1000)
|
|
137
|
+
}
|
|
138
|
+
with open(r"{debugLogPath}", "a", encoding="utf-8") as _f:
|
|
139
|
+
_f.write(json.dumps(_dbg, ensure_ascii=False) + "\n")
|
|
140
|
+
except: pass
|
|
141
|
+
# endregion
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**JavaScript/TypeScript template**:
|
|
145
|
+
```javascript
|
|
146
|
+
// region debug [H{n}]
|
|
147
|
+
try {
|
|
148
|
+
require('fs').appendFileSync("{debugLogPath}", JSON.stringify({
|
|
149
|
+
sid: "{sessionId}",
|
|
150
|
+
hid: "H{n}",
|
|
151
|
+
loc: "{file}:{line}",
|
|
152
|
+
msg: "{testable_condition}",
|
|
153
|
+
data: { /* Capture relevant values */ },
|
|
154
|
+
ts: Date.now()
|
|
155
|
+
}) + "\n");
|
|
156
|
+
} catch(_) {}
|
|
157
|
+
// endregion
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Output to user**:
|
|
161
|
+
```
|
|
162
|
+
## Hypotheses Generated
|
|
163
|
+
|
|
164
|
+
Based on error "$BUG", generated {n} hypotheses:
|
|
165
|
+
|
|
166
|
+
{hypotheses.map(h => `
|
|
167
|
+
### ${h.id}: ${h.description}
|
|
168
|
+
- Logging at: ${h.logging_point}
|
|
169
|
+
- Testing: ${h.testable_condition}
|
|
170
|
+
`).join('')}
|
|
171
|
+
|
|
172
|
+
**Debug log**: ${debugLogPath}
|
|
173
|
+
|
|
174
|
+
**Next**: Run reproduction steps, then come back for analysis.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### Analyze Mode
|
|
180
|
+
|
|
181
|
+
```javascript
|
|
182
|
+
// Parse NDJSON log
|
|
183
|
+
const entries = Read(debugLogPath).split('\n')
|
|
184
|
+
.filter(l => l.trim())
|
|
185
|
+
.map(l => JSON.parse(l))
|
|
186
|
+
|
|
187
|
+
// Group by hypothesis
|
|
188
|
+
const byHypothesis = groupBy(entries, 'hid')
|
|
189
|
+
|
|
190
|
+
// Validate each hypothesis
|
|
191
|
+
for (const [hid, logs] of Object.entries(byHypothesis)) {
|
|
192
|
+
const hypothesis = hypotheses.find(h => h.id === hid)
|
|
193
|
+
const latestLog = logs[logs.length - 1]
|
|
194
|
+
|
|
195
|
+
// Check if evidence confirms or rejects hypothesis
|
|
196
|
+
const verdict = evaluateEvidence(hypothesis, latestLog.data)
|
|
197
|
+
// Returns: 'confirmed' | 'rejected' | 'inconclusive'
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Output**:
|
|
202
|
+
```
|
|
203
|
+
## Evidence Analysis
|
|
204
|
+
|
|
205
|
+
Analyzed ${entries.length} log entries.
|
|
206
|
+
|
|
207
|
+
${results.map(r => `
|
|
208
|
+
### ${r.id}: ${r.description}
|
|
209
|
+
- **Status**: ${r.verdict}
|
|
210
|
+
- **Evidence**: ${JSON.stringify(r.evidence)}
|
|
211
|
+
- **Reason**: ${r.reason}
|
|
212
|
+
`).join('')}
|
|
213
|
+
|
|
214
|
+
${confirmedHypothesis ? `
|
|
215
|
+
## Root Cause Identified
|
|
216
|
+
|
|
217
|
+
**${confirmedHypothesis.id}**: ${confirmedHypothesis.description}
|
|
218
|
+
|
|
219
|
+
Ready to fix.
|
|
220
|
+
` : `
|
|
221
|
+
## Need More Evidence
|
|
222
|
+
|
|
223
|
+
Add more logging or refine hypotheses.
|
|
224
|
+
`}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### Fix & Cleanup
|
|
230
|
+
|
|
231
|
+
```javascript
|
|
232
|
+
// Apply fix based on confirmed hypothesis
|
|
233
|
+
// ... Edit affected files
|
|
234
|
+
|
|
235
|
+
// After user verifies fix works:
|
|
236
|
+
|
|
237
|
+
// Remove debug instrumentation (search for region markers)
|
|
238
|
+
const instrumentedFiles = Grep({
|
|
239
|
+
pattern: "# region debug|// region debug",
|
|
240
|
+
output_mode: "files_with_matches"
|
|
241
|
+
})
|
|
242
|
+
|
|
243
|
+
for (const file of instrumentedFiles) {
|
|
244
|
+
// Remove content between region markers
|
|
245
|
+
removeDebugRegions(file)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
console.log(`
|
|
249
|
+
## Debug Complete
|
|
250
|
+
|
|
251
|
+
- Root cause: ${confirmedHypothesis.description}
|
|
252
|
+
- Fix applied to: ${modifiedFiles.join(', ')}
|
|
253
|
+
- Debug instrumentation removed
|
|
254
|
+
`)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Debug Log Format (NDJSON)
|
|
260
|
+
|
|
261
|
+
Each line is a JSON object:
|
|
262
|
+
|
|
263
|
+
```json
|
|
264
|
+
{"sid":"DBG-xxx-2025-12-18","hid":"H1","loc":"file.py:func:42","msg":"Check dict keys","data":{"keys":["a","b"],"target":"c","found":false},"ts":1734567890123}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
| Field | Description |
|
|
268
|
+
|-------|-------------|
|
|
269
|
+
| `sid` | Session ID |
|
|
270
|
+
| `hid` | Hypothesis ID (H1, H2, ...) |
|
|
271
|
+
| `loc` | Code location |
|
|
272
|
+
| `msg` | What's being tested |
|
|
273
|
+
| `data` | Captured values |
|
|
274
|
+
| `ts` | Timestamp (ms) |
|
|
275
|
+
|
|
276
|
+
## Session Folder
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
.workflow/.debug/DBG-{slug}-{date}/
|
|
280
|
+
├── debug.log # NDJSON log (main artifact)
|
|
281
|
+
└── resolution.md # Summary after fix (optional)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## Iteration Flow
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
First Call (/prompts:debug BUG="error"):
|
|
288
|
+
├─ No session exists → Explore mode
|
|
289
|
+
├─ Extract error keywords, search codebase
|
|
290
|
+
├─ Generate hypotheses, add logging
|
|
291
|
+
└─ Await user reproduction
|
|
292
|
+
|
|
293
|
+
After Reproduction (/prompts:debug BUG="error"):
|
|
294
|
+
├─ Session exists + debug.log has content → Analyze mode
|
|
295
|
+
├─ Parse log, evaluate hypotheses
|
|
296
|
+
└─ Decision:
|
|
297
|
+
├─ Confirmed → Fix → User verify
|
|
298
|
+
│ ├─ Fixed → Cleanup → Done
|
|
299
|
+
│ └─ Not fixed → Add logging → Iterate
|
|
300
|
+
├─ Inconclusive → Add logging → Iterate
|
|
301
|
+
└─ All rejected → New hypotheses → Iterate
|
|
302
|
+
|
|
303
|
+
Output:
|
|
304
|
+
└─ .workflow/.debug/DBG-{slug}-{date}/debug.log
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Error Handling
|
|
308
|
+
|
|
309
|
+
| Situation | Action |
|
|
310
|
+
|-----------|--------|
|
|
311
|
+
| Empty debug.log | Verify reproduction triggered the code path |
|
|
312
|
+
| All hypotheses rejected | Generate new hypotheses with broader scope |
|
|
313
|
+
| Fix doesn't work | Iterate with more granular logging |
|
|
314
|
+
| >5 iterations | Escalate with collected evidence |
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
**Now execute the debug workflow for bug**: $BUG
|