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,500 +1,153 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: complete
|
|
3
|
-
description: Mark active workflow session as complete, archive with lessons learned, update manifest, remove active flag
|
|
4
|
-
examples:
|
|
5
|
-
- /workflow:session:complete
|
|
6
|
-
- /workflow:session:complete --detailed
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Complete Workflow Session (/workflow:session:complete)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```bash
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
)
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
**Expected Output**:
|
|
156
|
-
- Agent returns complete metadata package
|
|
157
|
-
- Session remains in `.workflow/active/` with `.archiving` marker
|
|
158
|
-
- No files moved or manifests updated yet
|
|
159
|
-
|
|
160
|
-
### Phase 3: Atomic Commit (Transactional File Operations)
|
|
161
|
-
|
|
162
|
-
**Purpose**: Atomically commit all changes. Only execute if Phase 2 succeeds.
|
|
163
|
-
|
|
164
|
-
#### Step 3.1: Create Archive Directory
|
|
165
|
-
```bash
|
|
166
|
-
bash(mkdir -p .workflow/archives/)
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
#### Step 3.2: Move Session to Archive
|
|
170
|
-
```bash
|
|
171
|
-
bash(mv .workflow/active/WFS-session-name .workflow/archives/WFS-session-name)
|
|
172
|
-
```
|
|
173
|
-
**Result**: Session now at `.workflow/archives/WFS-session-name/`
|
|
174
|
-
|
|
175
|
-
#### Step 3.3: Update Manifest
|
|
176
|
-
```bash
|
|
177
|
-
# Read current manifest (or create empty array if not exists)
|
|
178
|
-
bash(test -f .workflow/archives/manifest.json && cat .workflow/archives/manifest.json || echo "[]")
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**JSON Update Logic**:
|
|
182
|
-
```javascript
|
|
183
|
-
// Read agent result from Phase 2
|
|
184
|
-
const agentResult = JSON.parse(agentOutput);
|
|
185
|
-
const archiveEntry = agentResult.archive_entry;
|
|
186
|
-
|
|
187
|
-
// Read existing manifest
|
|
188
|
-
let manifest = [];
|
|
189
|
-
try {
|
|
190
|
-
const manifestContent = Read('.workflow/archives/manifest.json');
|
|
191
|
-
manifest = JSON.parse(manifestContent);
|
|
192
|
-
} catch {
|
|
193
|
-
manifest = []; // Initialize if not exists
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Append new entry
|
|
197
|
-
manifest.push(archiveEntry);
|
|
198
|
-
|
|
199
|
-
// Write back
|
|
200
|
-
Write('.workflow/archives/manifest.json', JSON.stringify(manifest, null, 2));
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
#### Step 3.4: Remove Archiving Marker
|
|
204
|
-
```bash
|
|
205
|
-
bash(rm .workflow/archives/WFS-session-name/.archiving)
|
|
206
|
-
```
|
|
207
|
-
**Result**: Clean archived session without temporary markers
|
|
208
|
-
|
|
209
|
-
**Output Confirmation**:
|
|
210
|
-
```
|
|
211
|
-
✓ Session "${sessionId}" archived successfully
|
|
212
|
-
Location: .workflow/archives/WFS-session-name/
|
|
213
|
-
Lessons: ${archiveEntry.lessons.successes.length} successes, ${archiveEntry.lessons.challenges.length} challenges
|
|
214
|
-
Manifest: Updated with ${manifest.length} total sessions
|
|
215
|
-
${reviewMetrics ? `Review: ${reviewMetrics.total_findings} findings across ${reviewMetrics.dimensions_analyzed} dimensions, ${Math.round(reviewMetrics.fix_success_rate * 100)}% fixed` : ''}
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Phase 4: Update Project Feature Registry
|
|
219
|
-
|
|
220
|
-
**Purpose**: Record completed session as a project feature in `.workflow/project.json`.
|
|
221
|
-
|
|
222
|
-
**Execution**: Uses feature metadata from Phase 2 agent result to update project registry.
|
|
223
|
-
|
|
224
|
-
#### Step 4.1: Check Project State Exists
|
|
225
|
-
```bash
|
|
226
|
-
bash(test -f .workflow/project.json && echo "EXISTS" || echo "SKIP")
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
**If SKIP**: Output warning and skip Phase 4
|
|
230
|
-
```
|
|
231
|
-
WARNING: No project.json found. Run /workflow:session:start to initialize.
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
#### Step 4.2: Extract Feature Information from Agent Result
|
|
235
|
-
|
|
236
|
-
**Data Processing** (Uses Phase 2 agent output):
|
|
237
|
-
```javascript
|
|
238
|
-
// Extract feature metadata from agent result
|
|
239
|
-
const agentResult = JSON.parse(agentOutput);
|
|
240
|
-
const featureMeta = agentResult.feature_metadata;
|
|
241
|
-
|
|
242
|
-
// Data already prepared by agent:
|
|
243
|
-
const title = featureMeta.title;
|
|
244
|
-
const description = featureMeta.description;
|
|
245
|
-
const tags = featureMeta.tags;
|
|
246
|
-
|
|
247
|
-
// Create feature ID (lowercase slug)
|
|
248
|
-
const featureId = title.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 50);
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
#### Step 4.3: Update project.json
|
|
252
|
-
|
|
253
|
-
```bash
|
|
254
|
-
# Read current project state
|
|
255
|
-
bash(cat .workflow/project.json)
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
**JSON Update Logic**:
|
|
259
|
-
```javascript
|
|
260
|
-
// Read existing project.json (created by /workflow:init)
|
|
261
|
-
// Note: overview field is managed by /workflow:init, not modified here
|
|
262
|
-
const projectMeta = JSON.parse(Read('.workflow/project.json'));
|
|
263
|
-
const currentTimestamp = new Date().toISOString();
|
|
264
|
-
const currentDate = currentTimestamp.split('T')[0]; // YYYY-MM-DD
|
|
265
|
-
|
|
266
|
-
// Extract tags from IMPL_PLAN.md (simple keyword extraction)
|
|
267
|
-
const tags = extractTags(planContent); // e.g., ["auth", "security"]
|
|
268
|
-
|
|
269
|
-
// Build feature object with complete metadata
|
|
270
|
-
const newFeature = {
|
|
271
|
-
id: featureId,
|
|
272
|
-
title: title,
|
|
273
|
-
description: description,
|
|
274
|
-
status: "completed",
|
|
275
|
-
tags: tags,
|
|
276
|
-
timeline: {
|
|
277
|
-
created_at: currentTimestamp,
|
|
278
|
-
implemented_at: currentDate,
|
|
279
|
-
updated_at: currentTimestamp
|
|
280
|
-
},
|
|
281
|
-
traceability: {
|
|
282
|
-
session_id: sessionId,
|
|
283
|
-
archive_path: archivePath, // e.g., ".workflow/archives/WFS-auth-system"
|
|
284
|
-
commit_hash: getLatestCommitHash() || "" // Optional: git rev-parse HEAD
|
|
285
|
-
},
|
|
286
|
-
docs: [], // Placeholder for future doc links
|
|
287
|
-
relations: [] // Placeholder for feature dependencies
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// Add new feature to array
|
|
291
|
-
projectMeta.features.push(newFeature);
|
|
292
|
-
|
|
293
|
-
// Update statistics
|
|
294
|
-
projectMeta.statistics.total_features = projectMeta.features.length;
|
|
295
|
-
projectMeta.statistics.total_sessions += 1;
|
|
296
|
-
projectMeta.statistics.last_updated = currentTimestamp;
|
|
297
|
-
|
|
298
|
-
// Write back
|
|
299
|
-
Write('.workflow/project.json', JSON.stringify(projectMeta, null, 2));
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
**Helper Functions**:
|
|
303
|
-
```javascript
|
|
304
|
-
// Extract tags from IMPL_PLAN.md content
|
|
305
|
-
function extractTags(planContent) {
|
|
306
|
-
const tags = [];
|
|
307
|
-
|
|
308
|
-
// Look for common keywords
|
|
309
|
-
const keywords = {
|
|
310
|
-
'auth': /authentication|login|oauth|jwt/i,
|
|
311
|
-
'security': /security|encrypt|hash|token/i,
|
|
312
|
-
'api': /api|endpoint|rest|graphql/i,
|
|
313
|
-
'ui': /component|page|interface|frontend/i,
|
|
314
|
-
'database': /database|schema|migration|sql/i,
|
|
315
|
-
'test': /test|testing|spec|coverage/i
|
|
316
|
-
};
|
|
317
|
-
|
|
318
|
-
for (const [tag, pattern] of Object.entries(keywords)) {
|
|
319
|
-
if (pattern.test(planContent)) {
|
|
320
|
-
tags.push(tag);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
return tags.slice(0, 5); // Max 5 tags
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
// Get latest git commit hash (optional)
|
|
328
|
-
function getLatestCommitHash() {
|
|
329
|
-
try {
|
|
330
|
-
const result = Bash({
|
|
331
|
-
command: "git rev-parse --short HEAD 2>/dev/null",
|
|
332
|
-
description: "Get latest commit hash"
|
|
333
|
-
});
|
|
334
|
-
return result.trim();
|
|
335
|
-
} catch {
|
|
336
|
-
return "";
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
#### Step 4.4: Output Confirmation
|
|
342
|
-
|
|
343
|
-
```
|
|
344
|
-
✓ Feature "${title}" added to project registry
|
|
345
|
-
ID: ${featureId}
|
|
346
|
-
Session: ${sessionId}
|
|
347
|
-
Location: .workflow/project.json
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
**Error Handling**:
|
|
351
|
-
- If project.json malformed: Output error, skip update
|
|
352
|
-
- If feature_metadata missing from agent result: Skip Phase 4
|
|
353
|
-
- If extraction fails: Use minimal defaults
|
|
354
|
-
|
|
355
|
-
**Phase 4 Total Commands**: 1 bash read + JSON manipulation
|
|
356
|
-
|
|
357
|
-
## Error Recovery
|
|
358
|
-
|
|
359
|
-
### If Agent Fails (Phase 2)
|
|
360
|
-
|
|
361
|
-
**Symptoms**:
|
|
362
|
-
- Agent returns `{"status": "error", ...}`
|
|
363
|
-
- Agent crashes or times out
|
|
364
|
-
- Analysis incomplete
|
|
365
|
-
|
|
366
|
-
**Recovery Steps**:
|
|
367
|
-
```bash
|
|
368
|
-
# Session still in .workflow/active/WFS-session-name
|
|
369
|
-
# Remove archiving marker
|
|
370
|
-
bash(rm .workflow/active/WFS-session-name/.archiving)
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
**User Notification**:
|
|
374
|
-
```
|
|
375
|
-
ERROR: Session archival failed during analysis phase
|
|
376
|
-
Reason: [error message from agent]
|
|
377
|
-
Session remains active in: .workflow/active/WFS-session-name
|
|
378
|
-
|
|
379
|
-
Recovery:
|
|
380
|
-
1. Fix any issues identified in error message
|
|
381
|
-
2. Retry: /workflow:session:complete
|
|
382
|
-
|
|
383
|
-
Session state: SAFE (no changes committed)
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
### If Move Fails (Phase 3)
|
|
387
|
-
|
|
388
|
-
**Symptoms**:
|
|
389
|
-
- `mv` command fails
|
|
390
|
-
- Permission denied
|
|
391
|
-
- Disk full
|
|
392
|
-
|
|
393
|
-
**Recovery Steps**:
|
|
394
|
-
```bash
|
|
395
|
-
# Archiving marker still present
|
|
396
|
-
# Session still in .workflow/active/ (move failed)
|
|
397
|
-
# No manifest updated yet
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
**User Notification**:
|
|
401
|
-
```
|
|
402
|
-
ERROR: Session archival failed during move operation
|
|
403
|
-
Reason: [mv error message]
|
|
404
|
-
Session remains in: .workflow/active/WFS-session-name
|
|
405
|
-
|
|
406
|
-
Recovery:
|
|
407
|
-
1. Fix filesystem issues (permissions, disk space)
|
|
408
|
-
2. Retry: /workflow:session:complete
|
|
409
|
-
- System will detect .archiving marker
|
|
410
|
-
- Will resume from Phase 2 (agent analysis)
|
|
411
|
-
|
|
412
|
-
Session state: SAFE (analysis complete, ready to retry move)
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
### If Manifest Update Fails (Phase 3)
|
|
416
|
-
|
|
417
|
-
**Symptoms**:
|
|
418
|
-
- JSON parsing error
|
|
419
|
-
- Write permission denied
|
|
420
|
-
- Session moved but manifest not updated
|
|
421
|
-
|
|
422
|
-
**Recovery Steps**:
|
|
423
|
-
```bash
|
|
424
|
-
# Session moved to .workflow/archives/WFS-session-name
|
|
425
|
-
# Manifest NOT updated
|
|
426
|
-
# Archiving marker still present in archived location
|
|
427
|
-
```
|
|
428
|
-
|
|
429
|
-
**User Notification**:
|
|
430
|
-
```
|
|
431
|
-
ERROR: Session archived but manifest update failed
|
|
432
|
-
Reason: [error message]
|
|
433
|
-
Session location: .workflow/archives/WFS-session-name
|
|
434
|
-
|
|
435
|
-
Recovery:
|
|
436
|
-
1. Fix manifest.json issues (syntax, permissions)
|
|
437
|
-
2. Manual manifest update:
|
|
438
|
-
- Add archive entry from agent output
|
|
439
|
-
- Remove .archiving marker: rm .workflow/archives/WFS-session-name/.archiving
|
|
440
|
-
|
|
441
|
-
Session state: PARTIALLY COMPLETE (session archived, manifest needs update)
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
## Workflow Execution Strategy
|
|
445
|
-
|
|
446
|
-
### Transactional Four-Phase Approach
|
|
447
|
-
|
|
448
|
-
**Phase 1: Pre-Archival Preparation** (Marker creation)
|
|
449
|
-
- Find active session and extract name
|
|
450
|
-
- Check for existing `.archiving` marker (resume detection)
|
|
451
|
-
- Create `.archiving` marker if new
|
|
452
|
-
- **No data processing** - just state tracking
|
|
453
|
-
- **Total**: 2-3 bash commands (find + marker check/create)
|
|
454
|
-
|
|
455
|
-
**Phase 2: Agent Analysis** (Read-only data processing)
|
|
456
|
-
- Extract all session data from active location
|
|
457
|
-
- Count tasks and summaries
|
|
458
|
-
- Extract review data if .review/ exists (dimension results, findings, fix results)
|
|
459
|
-
- Generate lessons learned analysis (including review-specific lessons if applicable)
|
|
460
|
-
- Extract feature metadata from IMPL_PLAN.md
|
|
461
|
-
- Build complete archive + feature metadata package (with review_metrics if applicable)
|
|
462
|
-
- **No file modifications** - pure analysis
|
|
463
|
-
- **Total**: 1 agent invocation
|
|
464
|
-
|
|
465
|
-
**Phase 3: Atomic Commit** (Transactional file operations)
|
|
466
|
-
- Create archive directory
|
|
467
|
-
- Move session to archive location
|
|
468
|
-
- Update manifest.json with archive entry
|
|
469
|
-
- Remove `.archiving` marker
|
|
470
|
-
- **All-or-nothing**: Either all succeed or session remains in safe state
|
|
471
|
-
- **Total**: 4 bash commands + JSON manipulation
|
|
472
|
-
|
|
473
|
-
**Phase 4: Project Registry Update** (Optional feature tracking)
|
|
474
|
-
- Check project.json exists
|
|
475
|
-
- Use feature metadata from Phase 2 agent result
|
|
476
|
-
- Build feature object with complete traceability
|
|
477
|
-
- Update project statistics
|
|
478
|
-
- **Independent**: Can fail without affecting archival
|
|
479
|
-
- **Total**: 1 bash read + JSON manipulation
|
|
480
|
-
|
|
481
|
-
### Transactional Guarantees
|
|
482
|
-
|
|
483
|
-
**State Consistency**:
|
|
484
|
-
- Session NEVER in inconsistent state
|
|
485
|
-
- `.archiving` marker enables safe resume
|
|
486
|
-
- Agent failure leaves session in recoverable state
|
|
487
|
-
- Move/manifest operations grouped in Phase 3
|
|
488
|
-
|
|
489
|
-
**Failure Isolation**:
|
|
490
|
-
- Phase 1 failure: No changes made
|
|
491
|
-
- Phase 2 failure: Session still active, can retry
|
|
492
|
-
- Phase 3 failure: Clear error state, manual recovery documented
|
|
493
|
-
- Phase 4 failure: Does not affect archival success
|
|
494
|
-
|
|
495
|
-
**Resume Capability**:
|
|
496
|
-
- Detect interrupted archival via `.archiving` marker
|
|
497
|
-
- Resume from Phase 2 (skip marker creation)
|
|
498
|
-
- Idempotent operations (safe to retry)
|
|
499
|
-
|
|
500
|
-
|
|
1
|
+
---
|
|
2
|
+
name: complete
|
|
3
|
+
description: Mark active workflow session as complete, archive with lessons learned, update manifest, remove active flag
|
|
4
|
+
examples:
|
|
5
|
+
- /workflow:session:complete
|
|
6
|
+
- /workflow:session:complete --detailed
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Complete Workflow Session (/workflow:session:complete)
|
|
10
|
+
|
|
11
|
+
Mark the currently active workflow session as complete, archive it, and update manifests.
|
|
12
|
+
|
|
13
|
+
## Pre-defined Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Phase 1: Find active session
|
|
17
|
+
SESSION_PATH=$(find .workflow/active/ -maxdepth 1 -name "WFS-*" -type d | head -1)
|
|
18
|
+
SESSION_ID=$(basename "$SESSION_PATH")
|
|
19
|
+
|
|
20
|
+
# Phase 3: Move to archive
|
|
21
|
+
mkdir -p .workflow/archives/
|
|
22
|
+
mv .workflow/active/$SESSION_ID .workflow/archives/$SESSION_ID
|
|
23
|
+
|
|
24
|
+
# Cleanup marker
|
|
25
|
+
rm -f .workflow/archives/$SESSION_ID/.archiving
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Key Files to Read
|
|
29
|
+
|
|
30
|
+
**For manifest.json generation**, read ONLY these files:
|
|
31
|
+
|
|
32
|
+
| File | Extract |
|
|
33
|
+
|------|---------|
|
|
34
|
+
| `$SESSION_PATH/workflow-session.json` | session_id, description, started_at, status |
|
|
35
|
+
| `$SESSION_PATH/IMPL_PLAN.md` | title (first # heading), description (first paragraph) |
|
|
36
|
+
| `$SESSION_PATH/.tasks/*.json` | count files |
|
|
37
|
+
| `$SESSION_PATH/.summaries/*.md` | count files |
|
|
38
|
+
| `$SESSION_PATH/.review/dimensions/*.json` | count + findings summary (optional) |
|
|
39
|
+
|
|
40
|
+
## Execution Flow
|
|
41
|
+
|
|
42
|
+
### Phase 1: Find Session (2 commands)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# 1. Find and extract session
|
|
46
|
+
SESSION_PATH=$(find .workflow/active/ -maxdepth 1 -name "WFS-*" -type d | head -1)
|
|
47
|
+
SESSION_ID=$(basename "$SESSION_PATH")
|
|
48
|
+
|
|
49
|
+
# 2. Check/create archiving marker
|
|
50
|
+
test -f "$SESSION_PATH/.archiving" && echo "RESUMING" || touch "$SESSION_PATH/.archiving"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Output**: `SESSION_ID` = e.g., `WFS-auth-feature`
|
|
54
|
+
|
|
55
|
+
### Phase 2: Generate Manifest Entry (Read-only)
|
|
56
|
+
|
|
57
|
+
Read the key files above, then build this structure:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"session_id": "<from workflow-session.json>",
|
|
62
|
+
"description": "<from workflow-session.json>",
|
|
63
|
+
"archived_at": "<current ISO timestamp>",
|
|
64
|
+
"archive_path": ".workflow/archives/<SESSION_ID>",
|
|
65
|
+
"metrics": {
|
|
66
|
+
"duration_hours": "<(completed_at - started_at) / 3600000>",
|
|
67
|
+
"tasks_completed": "<count .tasks/*.json>",
|
|
68
|
+
"summaries_generated": "<count .summaries/*.md>",
|
|
69
|
+
"review_metrics": {
|
|
70
|
+
"dimensions_analyzed": "<count .review/dimensions/*.json>",
|
|
71
|
+
"total_findings": "<sum from dimension JSONs>"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"tags": ["<3-5 keywords from IMPL_PLAN.md>"],
|
|
75
|
+
"lessons": {
|
|
76
|
+
"successes": ["<key wins>"],
|
|
77
|
+
"challenges": ["<difficulties>"],
|
|
78
|
+
"watch_patterns": ["<patterns to monitor>"]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Lessons Generation**: Use gemini with `~/.claude/workflows/cli-templates/prompts/archive/analysis-simple.txt`
|
|
84
|
+
|
|
85
|
+
### Phase 3: Atomic Commit (4 commands)
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 1. Create archive directory
|
|
89
|
+
mkdir -p .workflow/archives/
|
|
90
|
+
|
|
91
|
+
# 2. Move session
|
|
92
|
+
mv .workflow/active/$SESSION_ID .workflow/archives/$SESSION_ID
|
|
93
|
+
|
|
94
|
+
# 3. Update manifest.json (Read → Append → Write)
|
|
95
|
+
# Read: .workflow/archives/manifest.json (or [])
|
|
96
|
+
# Append: archive_entry from Phase 2
|
|
97
|
+
# Write: updated JSON
|
|
98
|
+
|
|
99
|
+
# 4. Remove marker
|
|
100
|
+
rm -f .workflow/archives/$SESSION_ID/.archiving
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Output**:
|
|
104
|
+
```
|
|
105
|
+
✓ Session "$SESSION_ID" archived successfully
|
|
106
|
+
Location: .workflow/archives/$SESSION_ID/
|
|
107
|
+
Manifest: Updated with N total sessions
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Phase 4: Update project.json (Optional)
|
|
111
|
+
|
|
112
|
+
**Skip if**: `.workflow/project.json` doesn't exist
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Check
|
|
116
|
+
test -f .workflow/project.json || echo "SKIP"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**If exists**, add feature entry:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"id": "<slugified title>",
|
|
124
|
+
"title": "<from IMPL_PLAN.md>",
|
|
125
|
+
"status": "completed",
|
|
126
|
+
"tags": ["<from Phase 2>"],
|
|
127
|
+
"timeline": { "implemented_at": "<date>" },
|
|
128
|
+
"traceability": { "session_id": "<SESSION_ID>", "archive_path": "<path>" }
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Output**:
|
|
133
|
+
```
|
|
134
|
+
✓ Feature added to project registry
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Error Recovery
|
|
138
|
+
|
|
139
|
+
| Phase | Symptom | Recovery |
|
|
140
|
+
|-------|---------|----------|
|
|
141
|
+
| 1 | No active session | `No active session found` |
|
|
142
|
+
| 2 | Analysis fails | Remove marker: `rm $SESSION_PATH/.archiving`, retry |
|
|
143
|
+
| 3 | Move fails | Session safe in active/, fix issue, retry |
|
|
144
|
+
| 3 | Manifest fails | Session in archives/, manually add entry, remove marker |
|
|
145
|
+
|
|
146
|
+
## Quick Reference
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
Phase 1: find session → create .archiving marker
|
|
150
|
+
Phase 2: read key files → build manifest entry (no writes)
|
|
151
|
+
Phase 3: mkdir → mv → update manifest.json → rm marker
|
|
152
|
+
Phase 4: update project.json features array (optional)
|
|
153
|
+
```
|