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,585 +1,585 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: api-designer
|
|
3
|
-
description: Generate or update api-designer/analysis.md addressing guidance-specification discussion points for API design perspective
|
|
4
|
-
argument-hint: "optional topic - uses existing framework if available"
|
|
5
|
-
allowed-tools: Task(conceptual-planning-agent), TodoWrite(*), Read(*), Write(*)
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 🔌 **API Designer Analysis Generator**
|
|
9
|
-
|
|
10
|
-
### Purpose
|
|
11
|
-
**Specialized command for generating api-designer/analysis.md** that addresses guidance-specification.md discussion points from backend API design perspective. Creates or updates role-specific analysis with framework references.
|
|
12
|
-
|
|
13
|
-
### Core Function
|
|
14
|
-
- **Framework-based Analysis**: Address each discussion point in guidance-specification.md
|
|
15
|
-
- **API Design Focus**: RESTful/GraphQL API design, endpoint structure, and contract definition
|
|
16
|
-
- **Update Mechanism**: Create new or update existing analysis.md
|
|
17
|
-
- **Agent Delegation**: Use conceptual-planning-agent for analysis generation
|
|
18
|
-
|
|
19
|
-
### Analysis Scope
|
|
20
|
-
- **API Architecture**: RESTful/GraphQL design patterns and best practices
|
|
21
|
-
- **Endpoint Design**: Resource modeling, URL structure, and HTTP method selection
|
|
22
|
-
- **Data Contracts**: Request/response schemas, validation rules, and data transformation
|
|
23
|
-
- **API Documentation**: OpenAPI/Swagger specifications and developer experience
|
|
24
|
-
|
|
25
|
-
### Role Boundaries & Responsibilities
|
|
26
|
-
|
|
27
|
-
#### **What This Role OWNS (API Contract Within Architectural Framework)**
|
|
28
|
-
- **API Contract Definition**: Specific endpoint paths, HTTP methods, and status codes
|
|
29
|
-
- **Resource Modeling**: Mapping domain entities to RESTful resources or GraphQL types
|
|
30
|
-
- **Request/Response Schemas**: Detailed data contracts, validation rules, and error formats
|
|
31
|
-
- **API Versioning Strategy**: Version management, deprecation policies, and migration paths
|
|
32
|
-
- **Developer Experience**: API documentation (OpenAPI/Swagger), code examples, and SDKs
|
|
33
|
-
|
|
34
|
-
#### **What This Role DOES NOT Own (Defers to Other Roles)**
|
|
35
|
-
- **System Architecture Decisions**: Microservices vs monolithic, overall communication patterns → Defers to **System Architect**
|
|
36
|
-
- **Canonical Data Model**: Underlying data schemas and entity relationships → Defers to **Data Architect**
|
|
37
|
-
- **UI/Frontend Integration**: How clients consume the API → Defers to **UI Designer**
|
|
38
|
-
|
|
39
|
-
#### **Handoff Points**
|
|
40
|
-
- **FROM System Architect**: Receives architectural constraints (REST vs GraphQL, sync vs async) that define the design space
|
|
41
|
-
- **FROM Data Architect**: Receives canonical data model and translates it into public API data contracts (as projection/view)
|
|
42
|
-
- **TO Frontend Teams**: Provides complete API specifications, documentation, and integration guides
|
|
43
|
-
|
|
44
|
-
## ⚙️ **Execution Protocol**
|
|
45
|
-
|
|
46
|
-
### Phase 1: Session & Framework Detection
|
|
47
|
-
```bash
|
|
48
|
-
# Check active session and framework
|
|
49
|
-
CHECK: find .workflow/active/ -name "WFS-*" -type d
|
|
50
|
-
IF active_session EXISTS:
|
|
51
|
-
session_id = get_active_session()
|
|
52
|
-
brainstorm_dir = .workflow/active/WFS-{session}/.brainstorming/
|
|
53
|
-
|
|
54
|
-
CHECK: brainstorm_dir/guidance-specification.md
|
|
55
|
-
IF EXISTS:
|
|
56
|
-
framework_mode = true
|
|
57
|
-
load_framework = true
|
|
58
|
-
ELSE:
|
|
59
|
-
IF topic_provided:
|
|
60
|
-
framework_mode = false # Create analysis without framework
|
|
61
|
-
ELSE:
|
|
62
|
-
ERROR: "No framework found and no topic provided"
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Phase 2: Analysis Mode Detection
|
|
66
|
-
```bash
|
|
67
|
-
# Check existing analysis
|
|
68
|
-
CHECK: brainstorm_dir/api-designer/analysis.md
|
|
69
|
-
IF EXISTS:
|
|
70
|
-
SHOW existing analysis summary
|
|
71
|
-
ASK: "Analysis exists. Do you want to:"
|
|
72
|
-
OPTIONS:
|
|
73
|
-
1. "Update with new insights" → Update existing
|
|
74
|
-
2. "Replace completely" → Generate new
|
|
75
|
-
3. "Cancel" → Exit without changes
|
|
76
|
-
ELSE:
|
|
77
|
-
CREATE new analysis
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Phase 3: Agent Task Generation
|
|
81
|
-
**Framework-Based Analysis** (when guidance-specification.md exists):
|
|
82
|
-
```bash
|
|
83
|
-
Task(subagent_type="conceptual-planning-agent",
|
|
84
|
-
prompt="Generate API designer analysis addressing topic framework
|
|
85
|
-
|
|
86
|
-
## Framework Integration Required
|
|
87
|
-
**MANDATORY**: Load and address guidance-specification.md discussion points
|
|
88
|
-
**Framework Reference**: @{session.brainstorm_dir}/guidance-specification.md
|
|
89
|
-
**Output Location**: {session.brainstorm_dir}/api-designer/analysis.md
|
|
90
|
-
|
|
91
|
-
## Analysis Requirements
|
|
92
|
-
1. **Load Topic Framework**: Read guidance-specification.md completely
|
|
93
|
-
2. **Address Each Discussion Point**: Respond to all 5 framework sections from API design perspective
|
|
94
|
-
3. **Include Framework Reference**: Start analysis.md with @../guidance-specification.md
|
|
95
|
-
4. **API Design Focus**: Emphasize endpoint structure, data contracts, versioning strategies
|
|
96
|
-
5. **Structured Response**: Use framework structure for analysis organization
|
|
97
|
-
|
|
98
|
-
## Framework Sections to Address
|
|
99
|
-
- Core Requirements (from API design perspective)
|
|
100
|
-
- Technical Considerations (detailed API architecture analysis)
|
|
101
|
-
- User Experience Factors (developer experience and API usability)
|
|
102
|
-
- Implementation Challenges (API design risks and solutions)
|
|
103
|
-
- Success Metrics (API performance metrics and adoption tracking)
|
|
104
|
-
|
|
105
|
-
## Output Structure Required
|
|
106
|
-
```markdown
|
|
107
|
-
# API Designer Analysis: [Topic]
|
|
108
|
-
|
|
109
|
-
**Framework Reference**: @../guidance-specification.md
|
|
110
|
-
**Role Focus**: Backend API Design and Contract Definition
|
|
111
|
-
|
|
112
|
-
## Core Requirements Analysis
|
|
113
|
-
[Address framework requirements from API design perspective]
|
|
114
|
-
|
|
115
|
-
## Technical Considerations
|
|
116
|
-
[Detailed API architecture and endpoint design analysis]
|
|
117
|
-
|
|
118
|
-
## Developer Experience Factors
|
|
119
|
-
[API usability, documentation, and integration ease]
|
|
120
|
-
|
|
121
|
-
## Implementation Challenges
|
|
122
|
-
[API design risks and mitigation strategies]
|
|
123
|
-
|
|
124
|
-
## Success Metrics
|
|
125
|
-
[API performance metrics, adoption rates, and developer satisfaction]
|
|
126
|
-
|
|
127
|
-
## API Design-Specific Recommendations
|
|
128
|
-
[Detailed API design recommendations and best practices]
|
|
129
|
-
```",
|
|
130
|
-
description="Generate API designer framework-based analysis")
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Phase 4: Update Mechanism
|
|
134
|
-
**Analysis Update Process**:
|
|
135
|
-
```bash
|
|
136
|
-
# For existing analysis updates
|
|
137
|
-
IF update_mode = "incremental":
|
|
138
|
-
Task(subagent_type="conceptual-planning-agent",
|
|
139
|
-
prompt="Update existing API designer analysis
|
|
140
|
-
|
|
141
|
-
## Current Analysis Context
|
|
142
|
-
**Existing Analysis**: @{session.brainstorm_dir}/api-designer/analysis.md
|
|
143
|
-
**Framework Reference**: @{session.brainstorm_dir}/guidance-specification.md
|
|
144
|
-
|
|
145
|
-
## Update Requirements
|
|
146
|
-
1. **Preserve Structure**: Maintain existing analysis structure
|
|
147
|
-
2. **Add New Insights**: Integrate new API design insights and recommendations
|
|
148
|
-
3. **Framework Alignment**: Ensure continued alignment with topic framework
|
|
149
|
-
4. **API Updates**: Add new endpoint patterns, versioning strategies, documentation improvements
|
|
150
|
-
5. **Maintain References**: Keep @../guidance-specification.md reference
|
|
151
|
-
|
|
152
|
-
## Update Instructions
|
|
153
|
-
- Read existing analysis completely
|
|
154
|
-
- Identify areas for enhancement or new insights
|
|
155
|
-
- Add API design depth while preserving original structure
|
|
156
|
-
- Update recommendations with new API design patterns and approaches
|
|
157
|
-
- Maintain framework discussion point addressing",
|
|
158
|
-
description="Update API designer analysis incrementally")
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## Document Structure
|
|
162
|
-
|
|
163
|
-
### Output Files
|
|
164
|
-
```
|
|
165
|
-
.workflow/active/WFS-[topic]/.brainstorming/
|
|
166
|
-
├── guidance-specification.md # Input: Framework (if exists)
|
|
167
|
-
└── api-designer/
|
|
168
|
-
└── analysis.md # ★ OUTPUT: Framework-based analysis
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Analysis Structure
|
|
172
|
-
**Required Elements**:
|
|
173
|
-
- **Framework Reference**: @../guidance-specification.md (if framework exists)
|
|
174
|
-
- **Role Focus**: Backend API Design and Contract Definition perspective
|
|
175
|
-
- **5 Framework Sections**: Address each framework discussion point
|
|
176
|
-
- **API Design Recommendations**: Endpoint-specific insights and solutions
|
|
177
|
-
|
|
178
|
-
## ⚡ **Two-Step Execution Flow**
|
|
179
|
-
|
|
180
|
-
### ⚠️ Session Management - FIRST STEP
|
|
181
|
-
Session detection and selection:
|
|
182
|
-
```bash
|
|
183
|
-
# Check for active sessions
|
|
184
|
-
active_sessions=$(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null)
|
|
185
|
-
if [ multiple_sessions ]; then
|
|
186
|
-
prompt_user_to_select_session()
|
|
187
|
-
else
|
|
188
|
-
use_existing_or_create_new()
|
|
189
|
-
fi
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### Step 1: Context Gathering Phase
|
|
193
|
-
**API Designer Perspective Questioning**
|
|
194
|
-
|
|
195
|
-
Before agent assignment, gather comprehensive API design context:
|
|
196
|
-
|
|
197
|
-
#### 📋 Role-Specific Questions
|
|
198
|
-
1. **API Type & Architecture**
|
|
199
|
-
- RESTful, GraphQL, or hybrid API approach?
|
|
200
|
-
- Synchronous vs asynchronous communication patterns?
|
|
201
|
-
- Real-time requirements (WebSocket, Server-Sent Events)?
|
|
202
|
-
|
|
203
|
-
2. **Resource Modeling & Endpoints**
|
|
204
|
-
- What are the core domain resources/entities?
|
|
205
|
-
- Expected CRUD operations for each resource?
|
|
206
|
-
- Complex query requirements (filtering, sorting, pagination)?
|
|
207
|
-
|
|
208
|
-
3. **Data Contracts & Validation**
|
|
209
|
-
- Request/response data format requirements (JSON, XML, Protocol Buffers)?
|
|
210
|
-
- Input validation and sanitization requirements?
|
|
211
|
-
- Data transformation and mapping needs?
|
|
212
|
-
|
|
213
|
-
4. **API Management & Governance**
|
|
214
|
-
- API versioning strategy requirements?
|
|
215
|
-
- Authentication and authorization mechanisms?
|
|
216
|
-
- Rate limiting and throttling requirements?
|
|
217
|
-
- API documentation and developer portal needs?
|
|
218
|
-
|
|
219
|
-
5. **Integration & Compatibility**
|
|
220
|
-
- Client platforms consuming the API (web, mobile, third-party)?
|
|
221
|
-
- Backward compatibility requirements?
|
|
222
|
-
- External API integrations needed?
|
|
223
|
-
|
|
224
|
-
#### Context Validation
|
|
225
|
-
- **Minimum Response**: Each answer must be ≥50 characters
|
|
226
|
-
- **Re-prompting**: Insufficient detail triggers follow-up questions
|
|
227
|
-
- **Context Storage**: Save responses to `.brainstorming/api-designer-context.md`
|
|
228
|
-
|
|
229
|
-
### Step 2: Agent Assignment with Flow Control
|
|
230
|
-
**Dedicated Agent Execution**
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
Task(conceptual-planning-agent): "
|
|
234
|
-
[FLOW_CONTROL]
|
|
235
|
-
|
|
236
|
-
Execute dedicated api-designer conceptual analysis for: {topic}
|
|
237
|
-
|
|
238
|
-
ASSIGNED_ROLE: api-designer
|
|
239
|
-
OUTPUT_LOCATION: .brainstorming/api-designer/
|
|
240
|
-
USER_CONTEXT: {validated_responses_from_context_gathering}
|
|
241
|
-
|
|
242
|
-
Flow Control Steps:
|
|
243
|
-
[
|
|
244
|
-
{
|
|
245
|
-
\"step\": \"load_role_template\",
|
|
246
|
-
\"action\": \"Load api-designer planning template\",
|
|
247
|
-
\"command\": \"bash($(cat ~/.claude/workflows/cli-templates/planning-roles/api-designer.md))\",
|
|
248
|
-
\"output_to\": \"role_template\"
|
|
249
|
-
}
|
|
250
|
-
]
|
|
251
|
-
|
|
252
|
-
Conceptual Analysis Requirements:
|
|
253
|
-
- Apply api-designer perspective to topic analysis
|
|
254
|
-
- Focus on endpoint design, data contracts, and API governance
|
|
255
|
-
- Use loaded role template framework for analysis structure
|
|
256
|
-
- Generate role-specific deliverables in designated output location
|
|
257
|
-
- Address all user context from questioning phase
|
|
258
|
-
|
|
259
|
-
Deliverables:
|
|
260
|
-
- analysis.md: Main API design analysis
|
|
261
|
-
- api-specification.md: Detailed endpoint specifications
|
|
262
|
-
- data-contracts.md: Request/response schemas and validation rules
|
|
263
|
-
- api-documentation.md: API documentation strategy and templates
|
|
264
|
-
|
|
265
|
-
Embody api-designer role expertise for comprehensive conceptual planning."
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### Progress Tracking
|
|
269
|
-
TodoWrite tracking for two-step process:
|
|
270
|
-
```json
|
|
271
|
-
[
|
|
272
|
-
{"content": "Gather API designer context through role-specific questioning", "status": "in_progress", "activeForm": "Gathering context"},
|
|
273
|
-
{"content": "Validate context responses and save to api-designer-context.md", "status": "pending", "activeForm": "Validating context"},
|
|
274
|
-
{"content": "Load api-designer planning template via flow control", "status": "pending", "activeForm": "Loading template"},
|
|
275
|
-
{"content": "Execute dedicated conceptual-planning-agent for api-designer role", "status": "pending", "activeForm": "Executing agent"}
|
|
276
|
-
]
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
## 📊 **Output Specification**
|
|
280
|
-
|
|
281
|
-
### Output Location
|
|
282
|
-
```
|
|
283
|
-
.workflow/active/WFS-{topic-slug}/.brainstorming/api-designer/
|
|
284
|
-
├── analysis.md # Primary API design analysis
|
|
285
|
-
├── api-specification.md # Detailed endpoint specifications (OpenAPI/Swagger)
|
|
286
|
-
├── data-contracts.md # Request/response schemas and validation rules
|
|
287
|
-
├── versioning-strategy.md # API versioning and backward compatibility plan
|
|
288
|
-
└── developer-guide.md # API usage documentation and integration examples
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
### Document Templates
|
|
292
|
-
|
|
293
|
-
#### analysis.md Structure
|
|
294
|
-
```markdown
|
|
295
|
-
# API Design Analysis: {Topic}
|
|
296
|
-
*Generated: {timestamp}*
|
|
297
|
-
|
|
298
|
-
## Executive Summary
|
|
299
|
-
[Key API design findings and recommendations overview]
|
|
300
|
-
|
|
301
|
-
## API Architecture Overview
|
|
302
|
-
### API Type Selection (REST/GraphQL/Hybrid)
|
|
303
|
-
### Communication Patterns
|
|
304
|
-
### Authentication & Authorization Strategy
|
|
305
|
-
|
|
306
|
-
## Resource Modeling
|
|
307
|
-
### Core Domain Resources
|
|
308
|
-
### Resource Relationships
|
|
309
|
-
### URL Structure and Naming Conventions
|
|
310
|
-
|
|
311
|
-
## Endpoint Design
|
|
312
|
-
### Resource Endpoints
|
|
313
|
-
- GET /api/v1/resources
|
|
314
|
-
- POST /api/v1/resources
|
|
315
|
-
- GET /api/v1/resources/{id}
|
|
316
|
-
- PUT /api/v1/resources/{id}
|
|
317
|
-
- DELETE /api/v1/resources/{id}
|
|
318
|
-
|
|
319
|
-
### Query Parameters
|
|
320
|
-
- Filtering: ?filter[field]=value
|
|
321
|
-
- Sorting: ?sort=field,-field2
|
|
322
|
-
- Pagination: ?page=1&limit=20
|
|
323
|
-
|
|
324
|
-
### HTTP Methods and Status Codes
|
|
325
|
-
- Success responses (2xx)
|
|
326
|
-
- Client errors (4xx)
|
|
327
|
-
- Server errors (5xx)
|
|
328
|
-
|
|
329
|
-
## Data Contracts
|
|
330
|
-
### Request Schemas
|
|
331
|
-
[JSON Schema or OpenAPI definitions]
|
|
332
|
-
|
|
333
|
-
### Response Schemas
|
|
334
|
-
[JSON Schema or OpenAPI definitions]
|
|
335
|
-
|
|
336
|
-
### Validation Rules
|
|
337
|
-
- Required fields
|
|
338
|
-
- Data types and formats
|
|
339
|
-
- Business logic constraints
|
|
340
|
-
|
|
341
|
-
## API Versioning Strategy
|
|
342
|
-
### Versioning Approach (URL/Header/Accept)
|
|
343
|
-
### Version Lifecycle Management
|
|
344
|
-
### Deprecation Policy
|
|
345
|
-
### Migration Paths
|
|
346
|
-
|
|
347
|
-
## Security & Governance
|
|
348
|
-
### Authentication Mechanisms
|
|
349
|
-
- OAuth 2.0 / JWT / API Keys
|
|
350
|
-
### Authorization Patterns
|
|
351
|
-
- RBAC / ABAC / Resource-based
|
|
352
|
-
### Rate Limiting & Throttling
|
|
353
|
-
### CORS and Security Headers
|
|
354
|
-
|
|
355
|
-
## Error Handling
|
|
356
|
-
### Standard Error Response Format
|
|
357
|
-
```json
|
|
358
|
-
{
|
|
359
|
-
"error": {
|
|
360
|
-
"code": "ERROR_CODE",
|
|
361
|
-
"message": "Human-readable error message",
|
|
362
|
-
"details": [],
|
|
363
|
-
"trace_id": "uuid"
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
### Error Code Taxonomy
|
|
369
|
-
### Validation Error Responses
|
|
370
|
-
|
|
371
|
-
## API Documentation
|
|
372
|
-
### OpenAPI/Swagger Specification
|
|
373
|
-
### Developer Portal Requirements
|
|
374
|
-
### Code Examples and SDKs
|
|
375
|
-
### Changelog and Migration Guides
|
|
376
|
-
|
|
377
|
-
## Performance Optimization
|
|
378
|
-
### Response Caching Strategies
|
|
379
|
-
### Compression (gzip, brotli)
|
|
380
|
-
### Field Selection (sparse fieldsets)
|
|
381
|
-
### Bulk Operations and Batch Endpoints
|
|
382
|
-
|
|
383
|
-
## Monitoring & Observability
|
|
384
|
-
### API Metrics
|
|
385
|
-
- Request count, latency, error rates
|
|
386
|
-
- Endpoint usage analytics
|
|
387
|
-
### Logging Strategy
|
|
388
|
-
### Distributed Tracing
|
|
389
|
-
|
|
390
|
-
## Developer Experience
|
|
391
|
-
### API Usability Assessment
|
|
392
|
-
### Integration Complexity
|
|
393
|
-
### SDK and Client Library Needs
|
|
394
|
-
### Sandbox and Testing Environments
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
#### api-specification.md Structure
|
|
398
|
-
```markdown
|
|
399
|
-
# API Specification: {Topic}
|
|
400
|
-
*OpenAPI 3.0 Specification*
|
|
401
|
-
|
|
402
|
-
## API Information
|
|
403
|
-
- **Title**: {API Name}
|
|
404
|
-
- **Version**: 1.0.0
|
|
405
|
-
- **Base URL**: https://api.example.com/v1
|
|
406
|
-
- **Contact**: api-team@example.com
|
|
407
|
-
|
|
408
|
-
## Endpoints
|
|
409
|
-
|
|
410
|
-
### Users API
|
|
411
|
-
|
|
412
|
-
#### GET /users
|
|
413
|
-
**Description**: Retrieve a list of users
|
|
414
|
-
|
|
415
|
-
**Parameters**:
|
|
416
|
-
- `page` (query, integer): Page number (default: 1)
|
|
417
|
-
- `limit` (query, integer): Items per page (default: 20, max: 100)
|
|
418
|
-
- `sort` (query, string): Sort field (e.g., "created_at", "-updated_at")
|
|
419
|
-
- `filter[status]` (query, string): Filter by user status
|
|
420
|
-
|
|
421
|
-
**Response 200**:
|
|
422
|
-
```json
|
|
423
|
-
{
|
|
424
|
-
"data": [
|
|
425
|
-
{
|
|
426
|
-
"id": "uuid",
|
|
427
|
-
"username": "string",
|
|
428
|
-
"email": "string",
|
|
429
|
-
"created_at": "2025-10-15T00:00:00Z"
|
|
430
|
-
}
|
|
431
|
-
],
|
|
432
|
-
"meta": {
|
|
433
|
-
"page": 1,
|
|
434
|
-
"limit": 20,
|
|
435
|
-
"total": 100
|
|
436
|
-
},
|
|
437
|
-
"links": {
|
|
438
|
-
"self": "/users?page=1",
|
|
439
|
-
"next": "/users?page=2",
|
|
440
|
-
"prev": null
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
#### POST /users
|
|
446
|
-
**Description**: Create a new user
|
|
447
|
-
|
|
448
|
-
**Request Body**:
|
|
449
|
-
```json
|
|
450
|
-
{
|
|
451
|
-
"username": "string (required, 3-50 chars)",
|
|
452
|
-
"email": "string (required, valid email)",
|
|
453
|
-
"password": "string (required, min 8 chars)",
|
|
454
|
-
"profile": {
|
|
455
|
-
"first_name": "string (optional)",
|
|
456
|
-
"last_name": "string (optional)"
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
**Response 201**:
|
|
462
|
-
```json
|
|
463
|
-
{
|
|
464
|
-
"data": {
|
|
465
|
-
"id": "uuid",
|
|
466
|
-
"username": "string",
|
|
467
|
-
"email": "string",
|
|
468
|
-
"created_at": "2025-10-15T00:00:00Z"
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
**Response 400** (Validation Error):
|
|
474
|
-
```json
|
|
475
|
-
{
|
|
476
|
-
"error": {
|
|
477
|
-
"code": "VALIDATION_ERROR",
|
|
478
|
-
"message": "Request validation failed",
|
|
479
|
-
"details": [
|
|
480
|
-
{
|
|
481
|
-
"field": "email",
|
|
482
|
-
"message": "Invalid email format"
|
|
483
|
-
}
|
|
484
|
-
]
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
[Continue for all endpoints...]
|
|
490
|
-
|
|
491
|
-
## Authentication
|
|
492
|
-
|
|
493
|
-
### OAuth 2.0 Flow
|
|
494
|
-
1. Client requests authorization
|
|
495
|
-
2. User grants permission
|
|
496
|
-
3. Client receives access token
|
|
497
|
-
4. Client uses token in requests
|
|
498
|
-
|
|
499
|
-
**Header Format**:
|
|
500
|
-
```
|
|
501
|
-
Authorization: Bearer {access_token}
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
## Rate Limiting
|
|
505
|
-
|
|
506
|
-
**Headers**:
|
|
507
|
-
- `X-RateLimit-Limit`: 1000
|
|
508
|
-
- `X-RateLimit-Remaining`: 999
|
|
509
|
-
- `X-RateLimit-Reset`: 1634270400
|
|
510
|
-
|
|
511
|
-
**Response 429** (Too Many Requests):
|
|
512
|
-
```json
|
|
513
|
-
{
|
|
514
|
-
"error": {
|
|
515
|
-
"code": "RATE_LIMIT_EXCEEDED",
|
|
516
|
-
"message": "API rate limit exceeded",
|
|
517
|
-
"retry_after": 3600
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
```
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
## 🔄 **Session Integration**
|
|
524
|
-
|
|
525
|
-
### Status Synchronization
|
|
526
|
-
Upon completion, update `workflow-session.json`:
|
|
527
|
-
```json
|
|
528
|
-
{
|
|
529
|
-
"phases": {
|
|
530
|
-
"BRAINSTORM": {
|
|
531
|
-
"api_designer": {
|
|
532
|
-
"status": "completed",
|
|
533
|
-
"completed_at": "timestamp",
|
|
534
|
-
"output_directory": ".workflow/active/WFS-{topic}/.brainstorming/api-designer/",
|
|
535
|
-
"key_insights": ["endpoint_design", "versioning_strategy", "data_contracts"]
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
### Cross-Role Collaboration
|
|
543
|
-
API designer perspective provides:
|
|
544
|
-
- **API Contract Specifications** → Frontend Developer
|
|
545
|
-
- **Data Schema Requirements** → Data Architect
|
|
546
|
-
- **Security Requirements** → Security Expert
|
|
547
|
-
- **Integration Endpoints** → System Architect
|
|
548
|
-
- **Performance Constraints** → DevOps Engineer
|
|
549
|
-
|
|
550
|
-
## ✅ **Quality Assurance**
|
|
551
|
-
|
|
552
|
-
### Required Analysis Elements
|
|
553
|
-
- [ ] Complete endpoint inventory with HTTP methods and paths
|
|
554
|
-
- [ ] Detailed request/response schemas with validation rules
|
|
555
|
-
- [ ] Clear versioning strategy and backward compatibility plan
|
|
556
|
-
- [ ] Comprehensive error handling and status code usage
|
|
557
|
-
- [ ] API documentation strategy (OpenAPI/Swagger)
|
|
558
|
-
|
|
559
|
-
### API Design Principles
|
|
560
|
-
- [ ] **Consistency**: Uniform naming conventions and patterns across all endpoints
|
|
561
|
-
- [ ] **Simplicity**: Intuitive resource modeling and URL structures
|
|
562
|
-
- [ ] **Flexibility**: Support for filtering, sorting, pagination, and field selection
|
|
563
|
-
- [ ] **Security**: Proper authentication, authorization, and input validation
|
|
564
|
-
- [ ] **Performance**: Caching strategies, compression, and efficient data structures
|
|
565
|
-
|
|
566
|
-
### Developer Experience Validation
|
|
567
|
-
- [ ] API is self-documenting with clear endpoint descriptions
|
|
568
|
-
- [ ] Error messages are actionable and helpful for debugging
|
|
569
|
-
- [ ] Response formats are consistent and predictable
|
|
570
|
-
- [ ] Code examples and integration guides are provided
|
|
571
|
-
- [ ] Sandbox environment available for testing
|
|
572
|
-
|
|
573
|
-
### Technical Completeness
|
|
574
|
-
- [ ] **Resource Modeling**: All domain entities mapped to API resources
|
|
575
|
-
- [ ] **CRUD Coverage**: Complete create, read, update, delete operations
|
|
576
|
-
- [ ] **Query Capabilities**: Advanced filtering, sorting, and search functionality
|
|
577
|
-
- [ ] **Versioning**: Clear version management and migration paths
|
|
578
|
-
- [ ] **Monitoring**: API metrics, logging, and tracing strategies defined
|
|
579
|
-
|
|
580
|
-
### Integration Readiness
|
|
581
|
-
- [ ] **Client Compatibility**: API works with all target client platforms
|
|
582
|
-
- [ ] **External Integration**: Third-party API dependencies identified
|
|
583
|
-
- [ ] **Backward Compatibility**: Changes don't break existing clients
|
|
584
|
-
- [ ] **Migration Path**: Clear upgrade paths for API consumers
|
|
585
|
-
- [ ] **SDK Support**: Client libraries and code generation considered
|
|
1
|
+
---
|
|
2
|
+
name: api-designer
|
|
3
|
+
description: Generate or update api-designer/analysis.md addressing guidance-specification discussion points for API design perspective
|
|
4
|
+
argument-hint: "optional topic - uses existing framework if available"
|
|
5
|
+
allowed-tools: Task(conceptual-planning-agent), TodoWrite(*), Read(*), Write(*)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🔌 **API Designer Analysis Generator**
|
|
9
|
+
|
|
10
|
+
### Purpose
|
|
11
|
+
**Specialized command for generating api-designer/analysis.md** that addresses guidance-specification.md discussion points from backend API design perspective. Creates or updates role-specific analysis with framework references.
|
|
12
|
+
|
|
13
|
+
### Core Function
|
|
14
|
+
- **Framework-based Analysis**: Address each discussion point in guidance-specification.md
|
|
15
|
+
- **API Design Focus**: RESTful/GraphQL API design, endpoint structure, and contract definition
|
|
16
|
+
- **Update Mechanism**: Create new or update existing analysis.md
|
|
17
|
+
- **Agent Delegation**: Use conceptual-planning-agent for analysis generation
|
|
18
|
+
|
|
19
|
+
### Analysis Scope
|
|
20
|
+
- **API Architecture**: RESTful/GraphQL design patterns and best practices
|
|
21
|
+
- **Endpoint Design**: Resource modeling, URL structure, and HTTP method selection
|
|
22
|
+
- **Data Contracts**: Request/response schemas, validation rules, and data transformation
|
|
23
|
+
- **API Documentation**: OpenAPI/Swagger specifications and developer experience
|
|
24
|
+
|
|
25
|
+
### Role Boundaries & Responsibilities
|
|
26
|
+
|
|
27
|
+
#### **What This Role OWNS (API Contract Within Architectural Framework)**
|
|
28
|
+
- **API Contract Definition**: Specific endpoint paths, HTTP methods, and status codes
|
|
29
|
+
- **Resource Modeling**: Mapping domain entities to RESTful resources or GraphQL types
|
|
30
|
+
- **Request/Response Schemas**: Detailed data contracts, validation rules, and error formats
|
|
31
|
+
- **API Versioning Strategy**: Version management, deprecation policies, and migration paths
|
|
32
|
+
- **Developer Experience**: API documentation (OpenAPI/Swagger), code examples, and SDKs
|
|
33
|
+
|
|
34
|
+
#### **What This Role DOES NOT Own (Defers to Other Roles)**
|
|
35
|
+
- **System Architecture Decisions**: Microservices vs monolithic, overall communication patterns → Defers to **System Architect**
|
|
36
|
+
- **Canonical Data Model**: Underlying data schemas and entity relationships → Defers to **Data Architect**
|
|
37
|
+
- **UI/Frontend Integration**: How clients consume the API → Defers to **UI Designer**
|
|
38
|
+
|
|
39
|
+
#### **Handoff Points**
|
|
40
|
+
- **FROM System Architect**: Receives architectural constraints (REST vs GraphQL, sync vs async) that define the design space
|
|
41
|
+
- **FROM Data Architect**: Receives canonical data model and translates it into public API data contracts (as projection/view)
|
|
42
|
+
- **TO Frontend Teams**: Provides complete API specifications, documentation, and integration guides
|
|
43
|
+
|
|
44
|
+
## ⚙️ **Execution Protocol**
|
|
45
|
+
|
|
46
|
+
### Phase 1: Session & Framework Detection
|
|
47
|
+
```bash
|
|
48
|
+
# Check active session and framework
|
|
49
|
+
CHECK: find .workflow/active/ -name "WFS-*" -type d
|
|
50
|
+
IF active_session EXISTS:
|
|
51
|
+
session_id = get_active_session()
|
|
52
|
+
brainstorm_dir = .workflow/active/WFS-{session}/.brainstorming/
|
|
53
|
+
|
|
54
|
+
CHECK: brainstorm_dir/guidance-specification.md
|
|
55
|
+
IF EXISTS:
|
|
56
|
+
framework_mode = true
|
|
57
|
+
load_framework = true
|
|
58
|
+
ELSE:
|
|
59
|
+
IF topic_provided:
|
|
60
|
+
framework_mode = false # Create analysis without framework
|
|
61
|
+
ELSE:
|
|
62
|
+
ERROR: "No framework found and no topic provided"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Phase 2: Analysis Mode Detection
|
|
66
|
+
```bash
|
|
67
|
+
# Check existing analysis
|
|
68
|
+
CHECK: brainstorm_dir/api-designer/analysis.md
|
|
69
|
+
IF EXISTS:
|
|
70
|
+
SHOW existing analysis summary
|
|
71
|
+
ASK: "Analysis exists. Do you want to:"
|
|
72
|
+
OPTIONS:
|
|
73
|
+
1. "Update with new insights" → Update existing
|
|
74
|
+
2. "Replace completely" → Generate new
|
|
75
|
+
3. "Cancel" → Exit without changes
|
|
76
|
+
ELSE:
|
|
77
|
+
CREATE new analysis
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Phase 3: Agent Task Generation
|
|
81
|
+
**Framework-Based Analysis** (when guidance-specification.md exists):
|
|
82
|
+
```bash
|
|
83
|
+
Task(subagent_type="conceptual-planning-agent",
|
|
84
|
+
prompt="Generate API designer analysis addressing topic framework
|
|
85
|
+
|
|
86
|
+
## Framework Integration Required
|
|
87
|
+
**MANDATORY**: Load and address guidance-specification.md discussion points
|
|
88
|
+
**Framework Reference**: @{session.brainstorm_dir}/guidance-specification.md
|
|
89
|
+
**Output Location**: {session.brainstorm_dir}/api-designer/analysis.md
|
|
90
|
+
|
|
91
|
+
## Analysis Requirements
|
|
92
|
+
1. **Load Topic Framework**: Read guidance-specification.md completely
|
|
93
|
+
2. **Address Each Discussion Point**: Respond to all 5 framework sections from API design perspective
|
|
94
|
+
3. **Include Framework Reference**: Start analysis.md with @../guidance-specification.md
|
|
95
|
+
4. **API Design Focus**: Emphasize endpoint structure, data contracts, versioning strategies
|
|
96
|
+
5. **Structured Response**: Use framework structure for analysis organization
|
|
97
|
+
|
|
98
|
+
## Framework Sections to Address
|
|
99
|
+
- Core Requirements (from API design perspective)
|
|
100
|
+
- Technical Considerations (detailed API architecture analysis)
|
|
101
|
+
- User Experience Factors (developer experience and API usability)
|
|
102
|
+
- Implementation Challenges (API design risks and solutions)
|
|
103
|
+
- Success Metrics (API performance metrics and adoption tracking)
|
|
104
|
+
|
|
105
|
+
## Output Structure Required
|
|
106
|
+
```markdown
|
|
107
|
+
# API Designer Analysis: [Topic]
|
|
108
|
+
|
|
109
|
+
**Framework Reference**: @../guidance-specification.md
|
|
110
|
+
**Role Focus**: Backend API Design and Contract Definition
|
|
111
|
+
|
|
112
|
+
## Core Requirements Analysis
|
|
113
|
+
[Address framework requirements from API design perspective]
|
|
114
|
+
|
|
115
|
+
## Technical Considerations
|
|
116
|
+
[Detailed API architecture and endpoint design analysis]
|
|
117
|
+
|
|
118
|
+
## Developer Experience Factors
|
|
119
|
+
[API usability, documentation, and integration ease]
|
|
120
|
+
|
|
121
|
+
## Implementation Challenges
|
|
122
|
+
[API design risks and mitigation strategies]
|
|
123
|
+
|
|
124
|
+
## Success Metrics
|
|
125
|
+
[API performance metrics, adoption rates, and developer satisfaction]
|
|
126
|
+
|
|
127
|
+
## API Design-Specific Recommendations
|
|
128
|
+
[Detailed API design recommendations and best practices]
|
|
129
|
+
```",
|
|
130
|
+
description="Generate API designer framework-based analysis")
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Phase 4: Update Mechanism
|
|
134
|
+
**Analysis Update Process**:
|
|
135
|
+
```bash
|
|
136
|
+
# For existing analysis updates
|
|
137
|
+
IF update_mode = "incremental":
|
|
138
|
+
Task(subagent_type="conceptual-planning-agent",
|
|
139
|
+
prompt="Update existing API designer analysis
|
|
140
|
+
|
|
141
|
+
## Current Analysis Context
|
|
142
|
+
**Existing Analysis**: @{session.brainstorm_dir}/api-designer/analysis.md
|
|
143
|
+
**Framework Reference**: @{session.brainstorm_dir}/guidance-specification.md
|
|
144
|
+
|
|
145
|
+
## Update Requirements
|
|
146
|
+
1. **Preserve Structure**: Maintain existing analysis structure
|
|
147
|
+
2. **Add New Insights**: Integrate new API design insights and recommendations
|
|
148
|
+
3. **Framework Alignment**: Ensure continued alignment with topic framework
|
|
149
|
+
4. **API Updates**: Add new endpoint patterns, versioning strategies, documentation improvements
|
|
150
|
+
5. **Maintain References**: Keep @../guidance-specification.md reference
|
|
151
|
+
|
|
152
|
+
## Update Instructions
|
|
153
|
+
- Read existing analysis completely
|
|
154
|
+
- Identify areas for enhancement or new insights
|
|
155
|
+
- Add API design depth while preserving original structure
|
|
156
|
+
- Update recommendations with new API design patterns and approaches
|
|
157
|
+
- Maintain framework discussion point addressing",
|
|
158
|
+
description="Update API designer analysis incrementally")
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Document Structure
|
|
162
|
+
|
|
163
|
+
### Output Files
|
|
164
|
+
```
|
|
165
|
+
.workflow/active/WFS-[topic]/.brainstorming/
|
|
166
|
+
├── guidance-specification.md # Input: Framework (if exists)
|
|
167
|
+
└── api-designer/
|
|
168
|
+
└── analysis.md # ★ OUTPUT: Framework-based analysis
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Analysis Structure
|
|
172
|
+
**Required Elements**:
|
|
173
|
+
- **Framework Reference**: @../guidance-specification.md (if framework exists)
|
|
174
|
+
- **Role Focus**: Backend API Design and Contract Definition perspective
|
|
175
|
+
- **5 Framework Sections**: Address each framework discussion point
|
|
176
|
+
- **API Design Recommendations**: Endpoint-specific insights and solutions
|
|
177
|
+
|
|
178
|
+
## ⚡ **Two-Step Execution Flow**
|
|
179
|
+
|
|
180
|
+
### ⚠️ Session Management - FIRST STEP
|
|
181
|
+
Session detection and selection:
|
|
182
|
+
```bash
|
|
183
|
+
# Check for active sessions
|
|
184
|
+
active_sessions=$(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null)
|
|
185
|
+
if [ multiple_sessions ]; then
|
|
186
|
+
prompt_user_to_select_session()
|
|
187
|
+
else
|
|
188
|
+
use_existing_or_create_new()
|
|
189
|
+
fi
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Step 1: Context Gathering Phase
|
|
193
|
+
**API Designer Perspective Questioning**
|
|
194
|
+
|
|
195
|
+
Before agent assignment, gather comprehensive API design context:
|
|
196
|
+
|
|
197
|
+
#### 📋 Role-Specific Questions
|
|
198
|
+
1. **API Type & Architecture**
|
|
199
|
+
- RESTful, GraphQL, or hybrid API approach?
|
|
200
|
+
- Synchronous vs asynchronous communication patterns?
|
|
201
|
+
- Real-time requirements (WebSocket, Server-Sent Events)?
|
|
202
|
+
|
|
203
|
+
2. **Resource Modeling & Endpoints**
|
|
204
|
+
- What are the core domain resources/entities?
|
|
205
|
+
- Expected CRUD operations for each resource?
|
|
206
|
+
- Complex query requirements (filtering, sorting, pagination)?
|
|
207
|
+
|
|
208
|
+
3. **Data Contracts & Validation**
|
|
209
|
+
- Request/response data format requirements (JSON, XML, Protocol Buffers)?
|
|
210
|
+
- Input validation and sanitization requirements?
|
|
211
|
+
- Data transformation and mapping needs?
|
|
212
|
+
|
|
213
|
+
4. **API Management & Governance**
|
|
214
|
+
- API versioning strategy requirements?
|
|
215
|
+
- Authentication and authorization mechanisms?
|
|
216
|
+
- Rate limiting and throttling requirements?
|
|
217
|
+
- API documentation and developer portal needs?
|
|
218
|
+
|
|
219
|
+
5. **Integration & Compatibility**
|
|
220
|
+
- Client platforms consuming the API (web, mobile, third-party)?
|
|
221
|
+
- Backward compatibility requirements?
|
|
222
|
+
- External API integrations needed?
|
|
223
|
+
|
|
224
|
+
#### Context Validation
|
|
225
|
+
- **Minimum Response**: Each answer must be ≥50 characters
|
|
226
|
+
- **Re-prompting**: Insufficient detail triggers follow-up questions
|
|
227
|
+
- **Context Storage**: Save responses to `.brainstorming/api-designer-context.md`
|
|
228
|
+
|
|
229
|
+
### Step 2: Agent Assignment with Flow Control
|
|
230
|
+
**Dedicated Agent Execution**
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
Task(conceptual-planning-agent): "
|
|
234
|
+
[FLOW_CONTROL]
|
|
235
|
+
|
|
236
|
+
Execute dedicated api-designer conceptual analysis for: {topic}
|
|
237
|
+
|
|
238
|
+
ASSIGNED_ROLE: api-designer
|
|
239
|
+
OUTPUT_LOCATION: .brainstorming/api-designer/
|
|
240
|
+
USER_CONTEXT: {validated_responses_from_context_gathering}
|
|
241
|
+
|
|
242
|
+
Flow Control Steps:
|
|
243
|
+
[
|
|
244
|
+
{
|
|
245
|
+
\"step\": \"load_role_template\",
|
|
246
|
+
\"action\": \"Load api-designer planning template\",
|
|
247
|
+
\"command\": \"bash($(cat ~/.claude/workflows/cli-templates/planning-roles/api-designer.md))\",
|
|
248
|
+
\"output_to\": \"role_template\"
|
|
249
|
+
}
|
|
250
|
+
]
|
|
251
|
+
|
|
252
|
+
Conceptual Analysis Requirements:
|
|
253
|
+
- Apply api-designer perspective to topic analysis
|
|
254
|
+
- Focus on endpoint design, data contracts, and API governance
|
|
255
|
+
- Use loaded role template framework for analysis structure
|
|
256
|
+
- Generate role-specific deliverables in designated output location
|
|
257
|
+
- Address all user context from questioning phase
|
|
258
|
+
|
|
259
|
+
Deliverables:
|
|
260
|
+
- analysis.md: Main API design analysis
|
|
261
|
+
- api-specification.md: Detailed endpoint specifications
|
|
262
|
+
- data-contracts.md: Request/response schemas and validation rules
|
|
263
|
+
- api-documentation.md: API documentation strategy and templates
|
|
264
|
+
|
|
265
|
+
Embody api-designer role expertise for comprehensive conceptual planning."
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Progress Tracking
|
|
269
|
+
TodoWrite tracking for two-step process:
|
|
270
|
+
```json
|
|
271
|
+
[
|
|
272
|
+
{"content": "Gather API designer context through role-specific questioning", "status": "in_progress", "activeForm": "Gathering context"},
|
|
273
|
+
{"content": "Validate context responses and save to api-designer-context.md", "status": "pending", "activeForm": "Validating context"},
|
|
274
|
+
{"content": "Load api-designer planning template via flow control", "status": "pending", "activeForm": "Loading template"},
|
|
275
|
+
{"content": "Execute dedicated conceptual-planning-agent for api-designer role", "status": "pending", "activeForm": "Executing agent"}
|
|
276
|
+
]
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## 📊 **Output Specification**
|
|
280
|
+
|
|
281
|
+
### Output Location
|
|
282
|
+
```
|
|
283
|
+
.workflow/active/WFS-{topic-slug}/.brainstorming/api-designer/
|
|
284
|
+
├── analysis.md # Primary API design analysis
|
|
285
|
+
├── api-specification.md # Detailed endpoint specifications (OpenAPI/Swagger)
|
|
286
|
+
├── data-contracts.md # Request/response schemas and validation rules
|
|
287
|
+
├── versioning-strategy.md # API versioning and backward compatibility plan
|
|
288
|
+
└── developer-guide.md # API usage documentation and integration examples
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Document Templates
|
|
292
|
+
|
|
293
|
+
#### analysis.md Structure
|
|
294
|
+
```markdown
|
|
295
|
+
# API Design Analysis: {Topic}
|
|
296
|
+
*Generated: {timestamp}*
|
|
297
|
+
|
|
298
|
+
## Executive Summary
|
|
299
|
+
[Key API design findings and recommendations overview]
|
|
300
|
+
|
|
301
|
+
## API Architecture Overview
|
|
302
|
+
### API Type Selection (REST/GraphQL/Hybrid)
|
|
303
|
+
### Communication Patterns
|
|
304
|
+
### Authentication & Authorization Strategy
|
|
305
|
+
|
|
306
|
+
## Resource Modeling
|
|
307
|
+
### Core Domain Resources
|
|
308
|
+
### Resource Relationships
|
|
309
|
+
### URL Structure and Naming Conventions
|
|
310
|
+
|
|
311
|
+
## Endpoint Design
|
|
312
|
+
### Resource Endpoints
|
|
313
|
+
- GET /api/v1/resources
|
|
314
|
+
- POST /api/v1/resources
|
|
315
|
+
- GET /api/v1/resources/{id}
|
|
316
|
+
- PUT /api/v1/resources/{id}
|
|
317
|
+
- DELETE /api/v1/resources/{id}
|
|
318
|
+
|
|
319
|
+
### Query Parameters
|
|
320
|
+
- Filtering: ?filter[field]=value
|
|
321
|
+
- Sorting: ?sort=field,-field2
|
|
322
|
+
- Pagination: ?page=1&limit=20
|
|
323
|
+
|
|
324
|
+
### HTTP Methods and Status Codes
|
|
325
|
+
- Success responses (2xx)
|
|
326
|
+
- Client errors (4xx)
|
|
327
|
+
- Server errors (5xx)
|
|
328
|
+
|
|
329
|
+
## Data Contracts
|
|
330
|
+
### Request Schemas
|
|
331
|
+
[JSON Schema or OpenAPI definitions]
|
|
332
|
+
|
|
333
|
+
### Response Schemas
|
|
334
|
+
[JSON Schema or OpenAPI definitions]
|
|
335
|
+
|
|
336
|
+
### Validation Rules
|
|
337
|
+
- Required fields
|
|
338
|
+
- Data types and formats
|
|
339
|
+
- Business logic constraints
|
|
340
|
+
|
|
341
|
+
## API Versioning Strategy
|
|
342
|
+
### Versioning Approach (URL/Header/Accept)
|
|
343
|
+
### Version Lifecycle Management
|
|
344
|
+
### Deprecation Policy
|
|
345
|
+
### Migration Paths
|
|
346
|
+
|
|
347
|
+
## Security & Governance
|
|
348
|
+
### Authentication Mechanisms
|
|
349
|
+
- OAuth 2.0 / JWT / API Keys
|
|
350
|
+
### Authorization Patterns
|
|
351
|
+
- RBAC / ABAC / Resource-based
|
|
352
|
+
### Rate Limiting & Throttling
|
|
353
|
+
### CORS and Security Headers
|
|
354
|
+
|
|
355
|
+
## Error Handling
|
|
356
|
+
### Standard Error Response Format
|
|
357
|
+
```json
|
|
358
|
+
{
|
|
359
|
+
"error": {
|
|
360
|
+
"code": "ERROR_CODE",
|
|
361
|
+
"message": "Human-readable error message",
|
|
362
|
+
"details": [],
|
|
363
|
+
"trace_id": "uuid"
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Error Code Taxonomy
|
|
369
|
+
### Validation Error Responses
|
|
370
|
+
|
|
371
|
+
## API Documentation
|
|
372
|
+
### OpenAPI/Swagger Specification
|
|
373
|
+
### Developer Portal Requirements
|
|
374
|
+
### Code Examples and SDKs
|
|
375
|
+
### Changelog and Migration Guides
|
|
376
|
+
|
|
377
|
+
## Performance Optimization
|
|
378
|
+
### Response Caching Strategies
|
|
379
|
+
### Compression (gzip, brotli)
|
|
380
|
+
### Field Selection (sparse fieldsets)
|
|
381
|
+
### Bulk Operations and Batch Endpoints
|
|
382
|
+
|
|
383
|
+
## Monitoring & Observability
|
|
384
|
+
### API Metrics
|
|
385
|
+
- Request count, latency, error rates
|
|
386
|
+
- Endpoint usage analytics
|
|
387
|
+
### Logging Strategy
|
|
388
|
+
### Distributed Tracing
|
|
389
|
+
|
|
390
|
+
## Developer Experience
|
|
391
|
+
### API Usability Assessment
|
|
392
|
+
### Integration Complexity
|
|
393
|
+
### SDK and Client Library Needs
|
|
394
|
+
### Sandbox and Testing Environments
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
#### api-specification.md Structure
|
|
398
|
+
```markdown
|
|
399
|
+
# API Specification: {Topic}
|
|
400
|
+
*OpenAPI 3.0 Specification*
|
|
401
|
+
|
|
402
|
+
## API Information
|
|
403
|
+
- **Title**: {API Name}
|
|
404
|
+
- **Version**: 1.0.0
|
|
405
|
+
- **Base URL**: https://api.example.com/v1
|
|
406
|
+
- **Contact**: api-team@example.com
|
|
407
|
+
|
|
408
|
+
## Endpoints
|
|
409
|
+
|
|
410
|
+
### Users API
|
|
411
|
+
|
|
412
|
+
#### GET /users
|
|
413
|
+
**Description**: Retrieve a list of users
|
|
414
|
+
|
|
415
|
+
**Parameters**:
|
|
416
|
+
- `page` (query, integer): Page number (default: 1)
|
|
417
|
+
- `limit` (query, integer): Items per page (default: 20, max: 100)
|
|
418
|
+
- `sort` (query, string): Sort field (e.g., "created_at", "-updated_at")
|
|
419
|
+
- `filter[status]` (query, string): Filter by user status
|
|
420
|
+
|
|
421
|
+
**Response 200**:
|
|
422
|
+
```json
|
|
423
|
+
{
|
|
424
|
+
"data": [
|
|
425
|
+
{
|
|
426
|
+
"id": "uuid",
|
|
427
|
+
"username": "string",
|
|
428
|
+
"email": "string",
|
|
429
|
+
"created_at": "2025-10-15T00:00:00Z"
|
|
430
|
+
}
|
|
431
|
+
],
|
|
432
|
+
"meta": {
|
|
433
|
+
"page": 1,
|
|
434
|
+
"limit": 20,
|
|
435
|
+
"total": 100
|
|
436
|
+
},
|
|
437
|
+
"links": {
|
|
438
|
+
"self": "/users?page=1",
|
|
439
|
+
"next": "/users?page=2",
|
|
440
|
+
"prev": null
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
#### POST /users
|
|
446
|
+
**Description**: Create a new user
|
|
447
|
+
|
|
448
|
+
**Request Body**:
|
|
449
|
+
```json
|
|
450
|
+
{
|
|
451
|
+
"username": "string (required, 3-50 chars)",
|
|
452
|
+
"email": "string (required, valid email)",
|
|
453
|
+
"password": "string (required, min 8 chars)",
|
|
454
|
+
"profile": {
|
|
455
|
+
"first_name": "string (optional)",
|
|
456
|
+
"last_name": "string (optional)"
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Response 201**:
|
|
462
|
+
```json
|
|
463
|
+
{
|
|
464
|
+
"data": {
|
|
465
|
+
"id": "uuid",
|
|
466
|
+
"username": "string",
|
|
467
|
+
"email": "string",
|
|
468
|
+
"created_at": "2025-10-15T00:00:00Z"
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Response 400** (Validation Error):
|
|
474
|
+
```json
|
|
475
|
+
{
|
|
476
|
+
"error": {
|
|
477
|
+
"code": "VALIDATION_ERROR",
|
|
478
|
+
"message": "Request validation failed",
|
|
479
|
+
"details": [
|
|
480
|
+
{
|
|
481
|
+
"field": "email",
|
|
482
|
+
"message": "Invalid email format"
|
|
483
|
+
}
|
|
484
|
+
]
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
[Continue for all endpoints...]
|
|
490
|
+
|
|
491
|
+
## Authentication
|
|
492
|
+
|
|
493
|
+
### OAuth 2.0 Flow
|
|
494
|
+
1. Client requests authorization
|
|
495
|
+
2. User grants permission
|
|
496
|
+
3. Client receives access token
|
|
497
|
+
4. Client uses token in requests
|
|
498
|
+
|
|
499
|
+
**Header Format**:
|
|
500
|
+
```
|
|
501
|
+
Authorization: Bearer {access_token}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
## Rate Limiting
|
|
505
|
+
|
|
506
|
+
**Headers**:
|
|
507
|
+
- `X-RateLimit-Limit`: 1000
|
|
508
|
+
- `X-RateLimit-Remaining`: 999
|
|
509
|
+
- `X-RateLimit-Reset`: 1634270400
|
|
510
|
+
|
|
511
|
+
**Response 429** (Too Many Requests):
|
|
512
|
+
```json
|
|
513
|
+
{
|
|
514
|
+
"error": {
|
|
515
|
+
"code": "RATE_LIMIT_EXCEEDED",
|
|
516
|
+
"message": "API rate limit exceeded",
|
|
517
|
+
"retry_after": 3600
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
```
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
## 🔄 **Session Integration**
|
|
524
|
+
|
|
525
|
+
### Status Synchronization
|
|
526
|
+
Upon completion, update `workflow-session.json`:
|
|
527
|
+
```json
|
|
528
|
+
{
|
|
529
|
+
"phases": {
|
|
530
|
+
"BRAINSTORM": {
|
|
531
|
+
"api_designer": {
|
|
532
|
+
"status": "completed",
|
|
533
|
+
"completed_at": "timestamp",
|
|
534
|
+
"output_directory": ".workflow/active/WFS-{topic}/.brainstorming/api-designer/",
|
|
535
|
+
"key_insights": ["endpoint_design", "versioning_strategy", "data_contracts"]
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### Cross-Role Collaboration
|
|
543
|
+
API designer perspective provides:
|
|
544
|
+
- **API Contract Specifications** → Frontend Developer
|
|
545
|
+
- **Data Schema Requirements** → Data Architect
|
|
546
|
+
- **Security Requirements** → Security Expert
|
|
547
|
+
- **Integration Endpoints** → System Architect
|
|
548
|
+
- **Performance Constraints** → DevOps Engineer
|
|
549
|
+
|
|
550
|
+
## ✅ **Quality Assurance**
|
|
551
|
+
|
|
552
|
+
### Required Analysis Elements
|
|
553
|
+
- [ ] Complete endpoint inventory with HTTP methods and paths
|
|
554
|
+
- [ ] Detailed request/response schemas with validation rules
|
|
555
|
+
- [ ] Clear versioning strategy and backward compatibility plan
|
|
556
|
+
- [ ] Comprehensive error handling and status code usage
|
|
557
|
+
- [ ] API documentation strategy (OpenAPI/Swagger)
|
|
558
|
+
|
|
559
|
+
### API Design Principles
|
|
560
|
+
- [ ] **Consistency**: Uniform naming conventions and patterns across all endpoints
|
|
561
|
+
- [ ] **Simplicity**: Intuitive resource modeling and URL structures
|
|
562
|
+
- [ ] **Flexibility**: Support for filtering, sorting, pagination, and field selection
|
|
563
|
+
- [ ] **Security**: Proper authentication, authorization, and input validation
|
|
564
|
+
- [ ] **Performance**: Caching strategies, compression, and efficient data structures
|
|
565
|
+
|
|
566
|
+
### Developer Experience Validation
|
|
567
|
+
- [ ] API is self-documenting with clear endpoint descriptions
|
|
568
|
+
- [ ] Error messages are actionable and helpful for debugging
|
|
569
|
+
- [ ] Response formats are consistent and predictable
|
|
570
|
+
- [ ] Code examples and integration guides are provided
|
|
571
|
+
- [ ] Sandbox environment available for testing
|
|
572
|
+
|
|
573
|
+
### Technical Completeness
|
|
574
|
+
- [ ] **Resource Modeling**: All domain entities mapped to API resources
|
|
575
|
+
- [ ] **CRUD Coverage**: Complete create, read, update, delete operations
|
|
576
|
+
- [ ] **Query Capabilities**: Advanced filtering, sorting, and search functionality
|
|
577
|
+
- [ ] **Versioning**: Clear version management and migration paths
|
|
578
|
+
- [ ] **Monitoring**: API metrics, logging, and tracing strategies defined
|
|
579
|
+
|
|
580
|
+
### Integration Readiness
|
|
581
|
+
- [ ] **Client Compatibility**: API works with all target client platforms
|
|
582
|
+
- [ ] **External Integration**: Third-party API dependencies identified
|
|
583
|
+
- [ ] **Backward Compatibility**: Changes don't break existing clients
|
|
584
|
+
- [ ] **Migration Path**: Clear upgrade paths for API consumers
|
|
585
|
+
- [ ] **SDK Support**: Client libraries and code generation considered
|