claude-mpm 4.20.3__py3-none-any.whl → 4.25.10__py3-none-any.whl

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.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

Files changed (454) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +23 -6
  3. claude_mpm/agents/OUTPUT_STYLE.md +3 -48
  4. claude_mpm/agents/PM_INSTRUCTIONS.md +1783 -34
  5. claude_mpm/agents/WORKFLOW.md +75 -2
  6. claude_mpm/agents/base_agent.json +6 -3
  7. claude_mpm/agents/frontmatter_validator.py +1 -1
  8. claude_mpm/agents/templates/api_qa.json +5 -2
  9. claude_mpm/agents/templates/circuit_breakers.md +108 -2
  10. claude_mpm/agents/templates/documentation.json +33 -6
  11. claude_mpm/agents/templates/javascript_engineer_agent.json +380 -0
  12. claude_mpm/agents/templates/php-engineer.json +10 -4
  13. claude_mpm/agents/templates/pm_red_flags.md +89 -19
  14. claude_mpm/agents/templates/project_organizer.json +7 -3
  15. claude_mpm/agents/templates/qa.json +2 -1
  16. claude_mpm/agents/templates/react_engineer.json +1 -0
  17. claude_mpm/agents/templates/research.json +82 -12
  18. claude_mpm/agents/templates/security.json +4 -4
  19. claude_mpm/agents/templates/tauri_engineer.json +274 -0
  20. claude_mpm/agents/templates/ticketing.json +10 -6
  21. claude_mpm/agents/templates/version_control.json +4 -2
  22. claude_mpm/agents/templates/web_qa.json +2 -1
  23. claude_mpm/cli/README.md +253 -0
  24. claude_mpm/cli/__init__.py +11 -1
  25. claude_mpm/cli/commands/aggregate.py +1 -1
  26. claude_mpm/cli/commands/analyze.py +3 -3
  27. claude_mpm/cli/commands/cleanup.py +1 -1
  28. claude_mpm/cli/commands/configure_agent_display.py +4 -4
  29. claude_mpm/cli/commands/debug.py +12 -12
  30. claude_mpm/cli/commands/hook_errors.py +277 -0
  31. claude_mpm/cli/commands/mcp_install_commands.py +1 -1
  32. claude_mpm/cli/commands/mcp_install_commands.py.backup +284 -0
  33. claude_mpm/cli/commands/mpm_init/README.md +365 -0
  34. claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
  35. claude_mpm/cli/commands/mpm_init/core.py +573 -0
  36. claude_mpm/cli/commands/mpm_init/display.py +341 -0
  37. claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
  38. claude_mpm/cli/commands/mpm_init/modes.py +397 -0
  39. claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
  40. claude_mpm/cli/commands/mpm_init_cli.py +396 -0
  41. claude_mpm/cli/commands/mpm_init_handler.py +67 -1
  42. claude_mpm/cli/commands/run.py +124 -128
  43. claude_mpm/cli/commands/skills.py +522 -34
  44. claude_mpm/cli/executor.py +56 -0
  45. claude_mpm/cli/interactive/agent_wizard.py +5 -5
  46. claude_mpm/cli/parsers/base_parser.py +28 -0
  47. claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
  48. claude_mpm/cli/parsers/skills_parser.py +138 -0
  49. claude_mpm/cli/startup.py +111 -8
  50. claude_mpm/cli/startup_display.py +480 -0
  51. claude_mpm/cli/utils.py +1 -1
  52. claude_mpm/cli_module/commands.py +1 -1
  53. claude_mpm/cli_module/refactoring_guide.md +253 -0
  54. claude_mpm/commands/mpm-help.md +3 -0
  55. claude_mpm/commands/mpm-init.md +19 -3
  56. claude_mpm/commands/mpm-resume.md +372 -0
  57. claude_mpm/commands/mpm-tickets.md +56 -7
  58. claude_mpm/commands/mpm.md +1 -0
  59. claude_mpm/config/agent_capabilities.yaml +658 -0
  60. claude_mpm/config/async_logging_config.yaml +145 -0
  61. claude_mpm/constants.py +12 -0
  62. claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +34 -0
  63. claude_mpm/core/api_validator.py +1 -1
  64. claude_mpm/core/claude_runner.py +14 -1
  65. claude_mpm/core/config.py +8 -0
  66. claude_mpm/core/constants.py +1 -1
  67. claude_mpm/core/framework/processors/metadata_processor.py +1 -1
  68. claude_mpm/core/hook_error_memory.py +381 -0
  69. claude_mpm/core/hook_manager.py +41 -2
  70. claude_mpm/core/interactive_session.py +48 -3
  71. claude_mpm/core/interfaces.py +56 -1
  72. claude_mpm/core/logger.py +3 -1
  73. claude_mpm/core/oneshot_session.py +39 -0
  74. claude_mpm/d2/.gitignore +22 -0
  75. claude_mpm/d2/ARCHITECTURE_COMPARISON.md +273 -0
  76. claude_mpm/d2/FLASK_INTEGRATION.md +156 -0
  77. claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +452 -0
  78. claude_mpm/d2/QUICKSTART.md +186 -0
  79. claude_mpm/d2/README.md +232 -0
  80. claude_mpm/d2/STORE_FIX_SUMMARY.md +167 -0
  81. claude_mpm/d2/SVELTE5_STORES_GUIDE.md +180 -0
  82. claude_mpm/d2/TESTING.md +288 -0
  83. claude_mpm/d2/index.html +118 -0
  84. claude_mpm/d2/package.json +19 -0
  85. claude_mpm/d2/src/App.svelte +110 -0
  86. claude_mpm/d2/src/components/Header.svelte +153 -0
  87. claude_mpm/d2/src/components/MainContent.svelte +74 -0
  88. claude_mpm/d2/src/components/Sidebar.svelte +85 -0
  89. claude_mpm/d2/src/components/tabs/EventsTab.svelte +326 -0
  90. claude_mpm/d2/src/lib/socketio.js +144 -0
  91. claude_mpm/d2/src/main.js +7 -0
  92. claude_mpm/d2/src/stores/events.js +114 -0
  93. claude_mpm/d2/src/stores/socket.js +108 -0
  94. claude_mpm/d2/src/stores/theme.js +65 -0
  95. claude_mpm/d2/svelte.config.js +12 -0
  96. claude_mpm/d2/vite.config.js +15 -0
  97. claude_mpm/dashboard/.claude-mpm/memories/README.md +36 -0
  98. claude_mpm/dashboard/BUILD_NUMBER +1 -0
  99. claude_mpm/dashboard/README.md +121 -0
  100. claude_mpm/dashboard/VERSION +1 -0
  101. claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +273 -0
  102. claude_mpm/dashboard/react/components/ErrorBoundary.tsx +75 -0
  103. claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +141 -0
  104. claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +36 -0
  105. claude_mpm/dashboard/react/components/shared/FilterBar.tsx +89 -0
  106. claude_mpm/dashboard/react/contexts/DashboardContext.tsx +215 -0
  107. claude_mpm/dashboard/react/entries/events.tsx +165 -0
  108. claude_mpm/dashboard/react/hooks/useEvents.ts +191 -0
  109. claude_mpm/dashboard/react/hooks/useSocket.ts +225 -0
  110. claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +170 -0
  111. claude_mpm/dashboard/static/built/components/activity-tree.js.map +1 -0
  112. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +101 -101
  113. claude_mpm/dashboard/static/built/components/agent-inference.js.map +1 -0
  114. claude_mpm/dashboard/static/built/components/build-tracker.js +59 -59
  115. claude_mpm/dashboard/static/built/components/code-simple.js +107 -107
  116. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +29 -29
  117. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +24 -24
  118. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +27 -27
  119. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +25 -25
  120. claude_mpm/dashboard/static/built/components/code-tree.js.map +1 -0
  121. claude_mpm/dashboard/static/built/components/code-viewer.js.map +1 -0
  122. claude_mpm/dashboard/static/built/components/connection-debug.js +101 -101
  123. claude_mpm/dashboard/static/built/components/diff-viewer.js +113 -113
  124. claude_mpm/dashboard/static/built/components/event-processor.js.map +1 -0
  125. claude_mpm/dashboard/static/built/components/event-viewer.js.map +1 -0
  126. claude_mpm/dashboard/static/built/components/export-manager.js.map +1 -0
  127. claude_mpm/dashboard/static/built/components/file-change-tracker.js +57 -57
  128. claude_mpm/dashboard/static/built/components/file-change-viewer.js +74 -74
  129. claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +1 -0
  130. claude_mpm/dashboard/static/built/components/file-viewer.js.map +1 -0
  131. claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +1 -0
  132. claude_mpm/dashboard/static/built/components/hud-manager.js.map +1 -0
  133. claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +1 -0
  134. claude_mpm/dashboard/static/built/components/module-viewer.js.map +1 -0
  135. claude_mpm/dashboard/static/built/components/session-manager.js.map +1 -0
  136. claude_mpm/dashboard/static/built/components/socket-manager.js.map +1 -0
  137. claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +1 -0
  138. claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +1 -0
  139. claude_mpm/dashboard/static/built/components/working-directory.js.map +1 -0
  140. claude_mpm/dashboard/static/built/connection-manager.js +76 -76
  141. claude_mpm/dashboard/static/built/dashboard.js.map +1 -0
  142. claude_mpm/dashboard/static/built/extension-error-handler.js +22 -22
  143. claude_mpm/dashboard/static/built/react/events.js.map +1 -0
  144. claude_mpm/dashboard/static/built/shared/dom-helpers.js +9 -9
  145. claude_mpm/dashboard/static/built/shared/event-bus.js +5 -5
  146. claude_mpm/dashboard/static/built/shared/logger.js +16 -16
  147. claude_mpm/dashboard/static/built/shared/tooltip-service.js +6 -6
  148. claude_mpm/dashboard/static/built/socket-client.js.map +1 -0
  149. claude_mpm/dashboard/static/css/activity.css +69 -69
  150. claude_mpm/dashboard/static/css/connection-status.css +10 -10
  151. claude_mpm/dashboard/static/css/dashboard.css +15 -15
  152. claude_mpm/dashboard/static/index.html +22 -22
  153. claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +170 -0
  154. claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
  155. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
  156. claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
  157. claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
  158. claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
  159. claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
  160. claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
  161. claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
  162. claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
  163. claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
  164. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
  165. claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
  166. claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
  167. claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
  168. claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
  169. claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
  170. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
  171. claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
  172. claude_mpm/dashboard/static/js/connection-manager.js +76 -76
  173. claude_mpm/dashboard/static/js/dashboard.js +76 -58
  174. claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
  175. claude_mpm/dashboard/static/js/shared/dom-helpers.js +9 -9
  176. claude_mpm/dashboard/static/js/shared/event-bus.js +5 -5
  177. claude_mpm/dashboard/static/js/shared/logger.js +16 -16
  178. claude_mpm/dashboard/static/js/shared/tooltip-service.js +6 -6
  179. claude_mpm/dashboard/static/js/socket-client.js +138 -121
  180. claude_mpm/dashboard/static/navigation-test-results.md +118 -0
  181. claude_mpm/dashboard/static/production/main.html +21 -21
  182. claude_mpm/dashboard/static/test-archive/dashboard.html +22 -22
  183. claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +36 -0
  184. claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +39 -0
  185. claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +38 -0
  186. claude_mpm/dashboard/templates/code_simple.html +23 -23
  187. claude_mpm/dashboard/templates/index.html +18 -18
  188. claude_mpm/hooks/README.md +143 -0
  189. claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
  190. claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
  191. claude_mpm/hooks/claude_hooks/installer.py +45 -0
  192. claude_mpm/hooks/templates/README.md +180 -0
  193. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  194. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  195. claude_mpm/hooks/templates/settings.json.example +147 -0
  196. claude_mpm/schemas/agent_schema.json +596 -0
  197. claude_mpm/schemas/frontmatter_schema.json +165 -0
  198. claude_mpm/scripts/claude-hook-handler.sh +3 -3
  199. claude_mpm/scripts/start_activity_logging.py +3 -1
  200. claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
  201. claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
  202. claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
  203. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
  204. claude_mpm/services/agents/loading/framework_agent_loader.py +8 -8
  205. claude_mpm/services/agents/local_template_manager.py +3 -1
  206. claude_mpm/services/cli/session_pause_manager.py +504 -0
  207. claude_mpm/services/cli/session_resume_helper.py +36 -16
  208. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  209. claude_mpm/services/core/base.py +26 -11
  210. claude_mpm/services/core/interfaces.py +56 -1
  211. claude_mpm/services/core/models/agent_config.py +3 -0
  212. claude_mpm/services/core/models/process.py +4 -0
  213. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  214. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  215. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  216. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  217. claude_mpm/services/diagnostics/doctor_reporter.py +6 -4
  218. claude_mpm/services/diagnostics/models.py +21 -0
  219. claude_mpm/services/event_bus/README.md +244 -0
  220. claude_mpm/services/event_bus/direct_relay.py +3 -3
  221. claude_mpm/services/event_bus/event_bus.py +36 -3
  222. claude_mpm/services/event_bus/relay.py +23 -7
  223. claude_mpm/services/events/README.md +303 -0
  224. claude_mpm/services/events/consumers/logging.py +1 -2
  225. claude_mpm/services/framework_claude_md_generator/README.md +119 -0
  226. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  227. claude_mpm/services/local_ops/__init__.py +2 -0
  228. claude_mpm/services/local_ops/process_manager.py +1 -1
  229. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  230. claude_mpm/services/mcp_gateway/README.md +185 -0
  231. claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
  232. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  233. claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
  234. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  235. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  236. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +26 -21
  237. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  238. claude_mpm/services/memory/failure_tracker.py +19 -4
  239. claude_mpm/services/memory/optimizer.py +1 -1
  240. claude_mpm/services/model/model_router.py +8 -9
  241. claude_mpm/services/monitor/daemon.py +1 -1
  242. claude_mpm/services/monitor/server.py +2 -2
  243. claude_mpm/services/native_agent_converter.py +356 -0
  244. claude_mpm/services/port_manager.py +1 -1
  245. claude_mpm/services/project/documentation_manager.py +2 -1
  246. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  247. claude_mpm/services/runner_configuration_service.py +1 -0
  248. claude_mpm/services/self_upgrade_service.py +165 -7
  249. claude_mpm/services/skills_config.py +547 -0
  250. claude_mpm/services/skills_deployer.py +955 -0
  251. claude_mpm/services/socketio/handlers/connection.py +1 -1
  252. claude_mpm/services/socketio/handlers/connection.py.backup +217 -0
  253. claude_mpm/services/socketio/handlers/git.py +2 -2
  254. claude_mpm/services/socketio/handlers/hook.py.backup +154 -0
  255. claude_mpm/services/static/.gitkeep +2 -0
  256. claude_mpm/services/system_instructions_service.py +1 -3
  257. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  258. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  259. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  260. claude_mpm/services/version_control/VERSION +1 -0
  261. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  262. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  263. claude_mpm/skills/__init__.py +3 -3
  264. claude_mpm/skills/agent_skills_injector.py +42 -49
  265. claude_mpm/skills/bundled/.gitkeep +2 -0
  266. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +4 -0
  267. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +108 -114
  268. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  269. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  270. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  271. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  272. claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
  273. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +46 -41
  274. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  275. claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
  276. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +36 -73
  277. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  278. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  279. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +100 -125
  280. claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +63 -0
  281. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  282. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  283. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  284. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  285. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +28 -72
  286. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +11 -0
  287. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  288. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  289. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +272 -0
  290. claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
  291. claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
  292. claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
  293. claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
  294. claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
  295. claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
  296. claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
  297. claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
  298. claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
  299. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  300. claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +202 -0
  301. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +13 -1
  302. claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  303. claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +322 -0
  304. claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  305. claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +202 -0
  306. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +11 -0
  307. claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +202 -0
  308. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +109 -277
  309. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  310. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  311. claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +17 -10
  312. claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +92 -39
  313. claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +22 -0
  314. claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +2 -0
  315. claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +202 -0
  316. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +135 -155
  317. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  318. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  319. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  320. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  321. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  322. claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +13 -12
  323. claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +5 -3
  324. claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +19 -12
  325. claude_mpm/skills/bundled/performance-profiling.md +6 -0
  326. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  327. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  328. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  329. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  330. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  331. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  332. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  333. claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
  334. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  335. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  336. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  337. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  338. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  339. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  340. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  341. claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
  342. claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
  343. claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
  344. claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
  345. claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
  346. claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
  347. claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
  348. claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
  349. claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
  350. claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
  351. claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
  352. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +21 -25
  353. claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +158 -0
  354. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  355. claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
  356. claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
  357. claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
  358. claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
  359. claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
  360. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +86 -250
  361. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  362. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  363. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  364. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  365. claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +202 -0
  366. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +145 -57
  367. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  368. claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +6 -6
  369. claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +13 -9
  370. claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +8 -8
  371. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  372. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  373. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +37 -15
  374. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  375. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  376. claude_mpm/skills/skills_registry.py +44 -48
  377. claude_mpm/skills/skills_service.py +117 -108
  378. claude_mpm/templates/questions/EXAMPLES.md +501 -0
  379. claude_mpm/templates/questions/__init__.py +43 -0
  380. claude_mpm/templates/questions/base.py +193 -0
  381. claude_mpm/templates/questions/pr_strategy.py +314 -0
  382. claude_mpm/templates/questions/project_init.py +388 -0
  383. claude_mpm/templates/questions/ticket_mgmt.py +397 -0
  384. claude_mpm/tools/README_SOCKETIO_DEBUG.md +224 -0
  385. claude_mpm/tools/__main__.py +8 -8
  386. claude_mpm/tools/code_tree_analyzer/README.md +64 -0
  387. claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
  388. claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
  389. claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
  390. claude_mpm/tools/code_tree_analyzer/core.py +380 -0
  391. claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
  392. claude_mpm/tools/code_tree_analyzer/events.py +168 -0
  393. claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
  394. claude_mpm/tools/code_tree_analyzer/models.py +39 -0
  395. claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
  396. claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
  397. claude_mpm/utils/agent_dependency_loader.py +3 -3
  398. claude_mpm/utils/dependency_cache.py +3 -1
  399. claude_mpm/utils/gitignore.py +241 -0
  400. claude_mpm/utils/log_cleanup.py +3 -3
  401. claude_mpm/utils/robust_installer.py +3 -5
  402. claude_mpm/utils/structured_questions.py +619 -0
  403. {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/METADATA +218 -31
  404. {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/RECORD +409 -246
  405. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  406. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  407. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  408. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  409. claude_mpm/cli/commands/mpm_init.py +0 -2093
  410. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  411. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  412. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  413. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  414. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  415. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  416. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  417. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  418. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  419. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  420. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  421. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  422. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  423. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  424. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  425. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  426. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  427. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  428. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  429. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  430. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  431. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  432. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  433. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  434. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  435. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  436. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  437. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  438. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  439. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  440. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  441. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  442. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  443. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  444. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  445. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  446. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  447. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  448. claude_mpm/skills/bundled/debugging/verification-before-completion/references/common-failures.md +0 -213
  449. claude_mpm/tools/code_tree_analyzer.py +0 -1825
  450. /claude_mpm/skills/bundled/collaboration/requesting-code-review/{code-reviewer.md → references/code-reviewer-template.md} +0 -0
  451. {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/WHEEL +0 -0
  452. {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/entry_points.txt +0 -0
  453. {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/licenses/LICENSE +0 -0
  454. {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,303 @@
1
+ # Event Bus System
2
+
3
+ A decoupled, reliable event system for Claude MPM that separates event producers from consumers, enabling better testing, maintenance, and extensibility.
4
+
5
+ ## Overview
6
+
7
+ The Event Bus system provides a central hub for all events in the Claude MPM framework. Instead of components directly calling Socket.IO or other services, they publish events to the bus, which routes them to interested consumers.
8
+
9
+ ## Architecture
10
+
11
+ ```
12
+ Producers → Event Bus → Consumers
13
+ ```
14
+
15
+ ### Key Components
16
+
17
+ - **EventBus**: Central routing and queuing system
18
+ - **Event**: Standard event format with metadata
19
+ - **Producers**: Publish events without knowing consumers
20
+ - **Consumers**: Subscribe to topics and process events
21
+ - **Topics**: Hierarchical event categorization
22
+
23
+ ## Benefits
24
+
25
+ ### 1. Decoupling
26
+ - Producers don't know about consumers
27
+ - Socket.IO is just another consumer
28
+ - Easy to add/remove consumers without affecting producers
29
+
30
+ ### 2. Reliability
31
+ - Events queued when consumers unavailable
32
+ - Retry logic with exponential backoff
33
+ - Dead letter queue for failed events
34
+ - Graceful degradation
35
+
36
+ ### 3. Testability
37
+ - Test producers without Socket.IO
38
+ - Mock event bus for unit tests
39
+ - Test consumers in isolation
40
+ - Deterministic event flow
41
+
42
+ ### 4. Observability
43
+ - Central metrics collection
44
+ - Event flow monitoring
45
+ - Performance tracking
46
+ - Debug logging
47
+
48
+ ### 5. Flexibility
49
+ - Topic-based filtering
50
+ - Event transformation
51
+ - Batch processing
52
+ - Priority queuing
53
+
54
+ ## Usage
55
+
56
+ ### Basic Setup
57
+
58
+ ```python
59
+ from claude_mpm.services.events import EventBus, SocketIOConsumer, LoggingConsumer
60
+
61
+ # Create and start event bus
62
+ bus = EventBus()
63
+ await bus.start()
64
+
65
+ # Add consumers
66
+ socketio_consumer = SocketIOConsumer()
67
+ await bus.subscribe(socketio_consumer)
68
+
69
+ logging_consumer = LoggingConsumer(topics=["hook.**"])
70
+ await bus.subscribe(logging_consumer)
71
+ ```
72
+
73
+ ### Publishing Events
74
+
75
+ ```python
76
+ from claude_mpm.services.events import HookEventProducer
77
+
78
+ # Create producer
79
+ producer = HookEventProducer(bus)
80
+
81
+ # Publish events
82
+ await producer.publish_response({
83
+ "content": "Assistant response text",
84
+ "model": "claude-3",
85
+ })
86
+
87
+ await producer.publish_tool_use(
88
+ tool_name="Read",
89
+ tool_params={"file_path": "/path/to/file"},
90
+ tool_result="File contents",
91
+ )
92
+ ```
93
+
94
+ ### Creating Custom Consumers
95
+
96
+ ```python
97
+ from claude_mpm.services.events import IEventConsumer, ConsumerConfig
98
+
99
+ class CustomConsumer(IEventConsumer):
100
+ def __init__(self):
101
+ self._config = ConsumerConfig(
102
+ name="CustomConsumer",
103
+ topics=["system.**"], # Subscribe to system events
104
+ priority=ConsumerPriority.NORMAL,
105
+ )
106
+
107
+ async def consume(self, event: Event) -> bool:
108
+ # Process event
109
+ print(f"Processing: {event.topic} - {event.type}")
110
+ return True
111
+
112
+ # Implement other required methods...
113
+ ```
114
+
115
+ ## Topic Hierarchy
116
+
117
+ Events are organized in a hierarchical topic structure:
118
+
119
+ ```
120
+ hook.* # Hook system events
121
+ .response # Assistant responses
122
+ .tool # Tool usage
123
+ .subagent.* # Subagent events
124
+ .error # Hook errors
125
+
126
+ system.* # System events
127
+ .lifecycle.* # Service startup/shutdown
128
+ .health # Health status
129
+ .config # Configuration changes
130
+ .performance # Performance metrics
131
+ .error # System errors
132
+ .warning # System warnings
133
+
134
+ cli.* # CLI command events
135
+ agent.* # Agent events
136
+ build.* # Build monitoring events
137
+ ```
138
+
139
+ ### Topic Patterns
140
+
141
+ - `hook.*` - Matches `hook.response` but not `hook.tool.usage`
142
+ - `hook.**` - Matches all hook events including nested
143
+ - `**` - Matches all events
144
+
145
+ ## Event Format
146
+
147
+ ```python
148
+ @dataclass
149
+ class Event:
150
+ id: str # Unique event ID
151
+ topic: str # Event topic
152
+ type: str # Event type
153
+ timestamp: datetime # Creation time
154
+ source: str # Event source
155
+ data: Dict[str, Any] # Event payload
156
+ metadata: EventMetadata # Processing metadata
157
+ correlation_id: str # Track related events
158
+ priority: EventPriority # Processing priority
159
+ ```
160
+
161
+ ## Consumers
162
+
163
+ ### Built-in Consumers
164
+
165
+ #### SocketIOConsumer
166
+ - Emits events via Socket.IO
167
+ - Batching for efficiency
168
+ - Automatic reconnection
169
+ - Connection pooling
170
+
171
+ #### LoggingConsumer
172
+ - Logs events for debugging
173
+ - Configurable log levels
174
+ - JSON formatting
175
+ - Topic filtering
176
+
177
+ #### MetricsConsumer
178
+ - Collects event statistics
179
+ - Rate calculation
180
+ - Latency tracking
181
+ - Top event analysis
182
+
183
+ #### DeadLetterConsumer
184
+ - Stores failed events
185
+ - Event replay capability
186
+ - Retention policies
187
+ - Failure analysis
188
+
189
+ ## Producers
190
+
191
+ ### Built-in Producers
192
+
193
+ #### HookEventProducer
194
+ - Publishes hook system events
195
+ - Helper methods for common events
196
+ - Correlation tracking
197
+
198
+ #### SystemEventProducer
199
+ - Publishes system-level events
200
+ - Service lifecycle events
201
+ - Health and metrics
202
+ - Configuration changes
203
+
204
+ ## Configuration
205
+
206
+ ### EventBus Options
207
+
208
+ ```python
209
+ EventBus(
210
+ max_queue_size=10000, # Maximum queued events
211
+ process_interval=0.01, # Processing frequency
212
+ batch_timeout=0.1, # Batch wait time
213
+ enable_metrics=True, # Track metrics
214
+ enable_persistence=False, # Persist to disk
215
+ )
216
+ ```
217
+
218
+ ### Consumer Configuration
219
+
220
+ ```python
221
+ ConsumerConfig(
222
+ name="MyConsumer",
223
+ topics=["hook.**"], # Topics to subscribe
224
+ priority=ConsumerPriority.HIGH,
225
+ batch_size=10, # Process in batches
226
+ batch_timeout=0.5, # Batch wait time
227
+ max_retries=3, # Retry failed events
228
+ retry_backoff=2.0, # Backoff multiplier
229
+ filter_func=my_filter, # Event filter
230
+ transform_func=my_transform, # Event transformer
231
+ )
232
+ ```
233
+
234
+ ## Migration Guide
235
+
236
+ ### Updating Hook Handler
237
+
238
+ Before (Direct Socket.IO):
239
+ ```python
240
+ # Old: Direct Socket.IO dependency
241
+ socketio_client = socketio.Client()
242
+ socketio_client.emit("hook_event", event_data)
243
+ ```
244
+
245
+ After (Event Bus):
246
+ ```python
247
+ # New: Publish to event bus
248
+ producer = HookEventProducer(event_bus)
249
+ await producer.publish_response(response_data)
250
+ ```
251
+
252
+ ### Testing
253
+
254
+ Before:
255
+ ```python
256
+ # Hard to test - needs Socket.IO server
257
+ def test_hook_handler():
258
+ # Complex setup with Socket.IO
259
+ pass
260
+ ```
261
+
262
+ After:
263
+ ```python
264
+ # Easy to test - mock event bus
265
+ def test_hook_handler():
266
+ mock_bus = Mock()
267
+ producer = HookEventProducer(mock_bus)
268
+ await producer.publish_response(data)
269
+ mock_bus.publish.assert_called_once()
270
+ ```
271
+
272
+ ## Performance
273
+
274
+ - **Publish Latency**: <1ms average
275
+ - **Processing Throughput**: 10,000+ events/sec
276
+ - **Memory Usage**: ~100 bytes per queued event
277
+ - **CPU Overhead**: <5% for typical load
278
+
279
+ ## Best Practices
280
+
281
+ 1. **Use Topics Wisely**: Create logical topic hierarchies
282
+ 2. **Set Priorities**: Critical events should have higher priority
283
+ 3. **Handle Errors**: Consumers should handle their own errors
284
+ 4. **Monitor Metrics**: Track queue size and processing rates
285
+ 5. **Test in Isolation**: Test producers and consumers separately
286
+ 6. **Batch When Possible**: Improve efficiency with batching
287
+ 7. **Clean Shutdown**: Always call `bus.stop()` for graceful shutdown
288
+
289
+ ## Examples
290
+
291
+ See the `scripts/` directory for complete examples:
292
+ - `test_event_bus.py` - Basic event bus demonstration
293
+ - `hook_handler_with_event_bus.py` - Hook handler integration
294
+
295
+ ## Future Enhancements
296
+
297
+ - [ ] Persistent event storage
298
+ - [ ] Event replay from timestamp
299
+ - [ ] Distributed event bus (Redis/RabbitMQ backend)
300
+ - [ ] Event schema validation
301
+ - [ ] Advanced routing rules
302
+ - [ ] Event compression
303
+ - [ ] WebSocket consumer for real-time streaming
@@ -133,8 +133,7 @@ class LoggingConsumer(IEventConsumer):
133
133
  """Format an event for logging."""
134
134
  # Build base message
135
135
  message = (
136
- f"[{event.topic}] {event.type} "
137
- f"(id={event.id[:8]}, source={event.source})"
136
+ f"[{event.topic}] {event.type} (id={event.id[:8]}, source={event.source})"
138
137
  )
139
138
 
140
139
  # Add data if configured
@@ -0,0 +1,119 @@
1
+ # Framework CLAUDE.md Generator
2
+
3
+ This directory contains the refactored framework CLAUDE.md generator service, originally a single 1,267-line file.
4
+
5
+ ## Structure
6
+
7
+ ### Core Modules
8
+
9
+ - **`__init__.py`** (~250 lines) - Main facade class that coordinates all functionality
10
+ - **`version_manager.py`** (~100 lines) - Handles version parsing, incrementing, and comparison
11
+ - **`content_assembler.py`** (~120 lines) - Assembles sections and applies template variables
12
+ - **`content_validator.py`** (~80 lines) - Validates generated content structure and completeness
13
+ - **`deployment_manager.py`** (~80 lines) - Handles deployment to parent directories
14
+ - **`section_manager.py`** (~60 lines) - Manages section registration, ordering, and updates
15
+
16
+ ### Section Generators
17
+
18
+ The `section_generators/` subdirectory contains individual generators for each section:
19
+
20
+ - **`__init__.py`** - Base classes and registry
21
+ - **`header.py`** - Header with version metadata
22
+ - **`role_designation.py`** - AI Assistant role designation
23
+ - **`agents.py`** (~570 lines) - Comprehensive agents documentation (largest section)
24
+ - **`todo_task_tools.py`** - Todo and Task Tools integration
25
+ - **`claude_pm_init.py`** - Claude-PM initialization procedures
26
+ - **`orchestration_principles.py`** - Core orchestration principles
27
+ - **`subprocess_validation.py`** - Subprocess validation protocol
28
+ - **`delegation_constraints.py`** - Critical delegation constraints
29
+ - **`environment_config.py`** - Environment configuration
30
+ - **`troubleshooting.py`** - Troubleshooting guide
31
+ - **`core_responsibilities.py`** - Core responsibilities list
32
+ - **`footer.py`** - Footer with metadata
33
+
34
+ ## Usage
35
+
36
+ The API remains unchanged from the original implementation:
37
+
38
+ ```python
39
+ from claude_pm.services.framework_claude_md_generator import FrameworkClaudeMdGenerator
40
+
41
+ # Create generator instance (default: INSTRUCTIONS.md)
42
+ generator = FrameworkClaudeMdGenerator()
43
+
44
+ # Or specify a custom target filename (e.g., for legacy compatibility)
45
+ generator = FrameworkClaudeMdGenerator(target_filename="CLAUDE.md")
46
+
47
+ # Generate content
48
+ content = generator.generate(
49
+ current_content=existing_content, # Optional: for version auto-increment
50
+ template_variables={'PLATFORM': 'darwin', 'PYTHON_CMD': 'python3'}
51
+ )
52
+
53
+ # Deploy to parent directory
54
+ success, message = generator.deploy_to_parent(Path('/parent/dir'))
55
+
56
+ # Update a section
57
+ generator.update_section('agents', 'Custom agents content')
58
+
59
+ # Add custom section
60
+ generator.add_custom_section('custom', 'Custom content', after='agents')
61
+ ```
62
+
63
+ ## Configuration Options
64
+
65
+ ### Target Filename
66
+
67
+ The generator supports configurable target filenames for deployment:
68
+
69
+ - **Default**: `"INSTRUCTIONS.md"` - The standard filename for framework instructions
70
+ - **Legacy**: `"CLAUDE.md"` - For backward compatibility with older projects
71
+ - **Custom**: Any filename can be specified for special use cases
72
+
73
+ This configuration affects:
74
+ - Deployment target filename
75
+ - Backup file naming
76
+ - Deployment check logic
77
+
78
+ Example:
79
+ ```python
80
+ # Use legacy filename for older projects
81
+ generator = FrameworkClaudeMdGenerator(target_filename="CLAUDE.md")
82
+
83
+ # Use custom filename for special environments
84
+ generator = FrameworkClaudeMdGenerator(target_filename="PROJECT_INSTRUCTIONS.md")
85
+ ```
86
+
87
+ ## Design Benefits
88
+
89
+ 1. **Modularity**: Each concern is separated into its own module
90
+ 2. **Maintainability**: Smaller, focused modules are easier to understand and modify
91
+ 3. **Testability**: Individual components can be tested in isolation
92
+ 4. **Extensibility**: New section generators can be added easily
93
+ 5. **Performance**: Section generators are loaded on demand
94
+ 6. **Backward Compatibility**: Original API preserved through facade pattern
95
+
96
+ ## Section Generator Pattern
97
+
98
+ To add a new section generator:
99
+
100
+ 1. Create a new file in `section_generators/`
101
+ 2. Inherit from `BaseSectionGenerator`
102
+ 3. Implement the `generate()` method
103
+ 4. Register in `section_generators/__init__.py`
104
+
105
+ Example:
106
+ ```python
107
+ from . import BaseSectionGenerator
108
+
109
+ class CustomSectionGenerator(BaseSectionGenerator):
110
+ def generate(self, data: Dict[str, Any]) -> str:
111
+ return "## Custom Section\n\nContent here..."
112
+ ```
113
+
114
+ ## Refactoring Summary
115
+
116
+ - **Original**: 1,267 lines in a single file
117
+ - **Refactored**: ~250 lines in main module + well-organized submodules
118
+ - **Total line reduction**: Main module reduced by 80%
119
+ - **Improved organization**: 13 focused modules instead of 1 large file
@@ -177,7 +177,7 @@ class ResourceMonitorService(BaseMonitoringService):
177
177
  # Load average (Unix only)
178
178
  try:
179
179
  if hasattr(psutil, "getloadavg"):
180
- load1, load5, load15 = psutil.getloadavg()
180
+ load1, load5, _load15 = psutil.getloadavg()
181
181
  cpu_count = psutil.cpu_count()
182
182
 
183
183
  # Load is concerning if > cpu_count
@@ -86,6 +86,7 @@ from claude_mpm.services.core.models.process import (
86
86
  PROTECTED_PORT_RANGES,
87
87
  DeploymentState,
88
88
  ProcessInfo,
89
+ ProcessStatus,
89
90
  StartConfig,
90
91
  is_port_protected,
91
92
  )
@@ -147,6 +148,7 @@ __all__ = [
147
148
  "PortConflictError",
148
149
  "ProcessInfo",
149
150
  "ProcessSpawnError",
151
+ "ProcessStatus",
150
152
  # Data models - Process
151
153
  "ResourceMonitor",
152
154
  "ResourceUsage",
@@ -187,7 +187,7 @@ class LocalProcessManager(SyncBaseService, ILocalProcessManager):
187
187
  # Check if process is still running
188
188
  if process.poll() is not None:
189
189
  # Process died immediately
190
- stdout, stderr = process.communicate()
190
+ _stdout, stderr = process.communicate()
191
191
  error_msg = stderr.decode("utf-8", errors="replace") if stderr else ""
192
192
  raise ProcessSpawnError(
193
193
  f"Process died immediately. Exit code: {process.returncode}. "
@@ -102,7 +102,7 @@ class ResourceMonitor(SyncBaseService, IResourceMonitor):
102
102
  self._initialized = True
103
103
  self.log_info(
104
104
  f"Resource monitor initialized "
105
- f"(fd_threshold={self.fd_threshold_percent*100:.0f}%, "
105
+ f"(fd_threshold={self.fd_threshold_percent * 100:.0f}%, "
106
106
  f"thread_threshold={self.thread_threshold}, "
107
107
  f"connection_threshold={self.connection_threshold}, "
108
108
  f"disk_threshold={self.disk_threshold_mb}MB)"
@@ -304,7 +304,7 @@ class ResourceMonitor(SyncBaseService, IResourceMonitor):
304
304
  return 0
305
305
 
306
306
  try:
307
- soft_limit, hard_limit = resource_module.getrlimit(
307
+ soft_limit, _hard_limit = resource_module.getrlimit(
308
308
  resource_module.RLIMIT_NOFILE
309
309
  )
310
310
  return soft_limit
@@ -0,0 +1,185 @@
1
+ # MCP Gateway Service
2
+
3
+ ## Overview
4
+
5
+ The MCP Gateway is a standards-compliant implementation of the Model Context Protocol (MCP) for Claude MPM. It provides a simple, stdio-based server that enables seamless integration with Claude Code.
6
+
7
+ **NOTE: MCP is ONLY for Claude Code - NOT for Claude Code.**
8
+ Claude Code uses a different system for agent deployment via the `.claude/agents/` directory.
9
+
10
+ ## Architecture
11
+
12
+ The MCP Gateway uses the official Anthropic MCP Python SDK with:
13
+
14
+ - **Standards compliance** with the official MCP specification
15
+ - **Stdio-based communication** for Claude Code integration
16
+ - **Simple JSON-RPC protocol** over stdin/stdout
17
+ - **Tool registry system** for extensible functionality
18
+ - **Comprehensive error handling** and logging
19
+
20
+ ## Structure
21
+
22
+ ```
23
+ mcp_gateway/
24
+ ├── core/ # Core interfaces and base classes
25
+ │ ├── interfaces.py # MCP service interfaces
26
+ │ ├── base.py # Base MCP service class
27
+ │ └── exceptions.py # MCP-specific exceptions
28
+ ├── config/ # Configuration management
29
+ │ ├── configuration.py # Main configuration service
30
+ │ ├── config_loader.py # Configuration discovery and loading
31
+ │ └── config_schema.py # Configuration validation
32
+ ├── server/ # MCP server implementation (ISS-0035)
33
+ ├── tools/ # Tool registry and adapters (ISS-0036)
34
+ └── registry/ # Service discovery and registration
35
+ ```
36
+
37
+ ## Features
38
+
39
+ ### Implemented
40
+ - ✅ **Official MCP Server** - Standards-compliant implementation using Anthropic's MCP SDK
41
+ - ✅ **Tool Registry System** - Extensible tool management and discovery
42
+ - ✅ **Stdio Communication** - Standard MCP protocol over stdin/stdout
43
+ - ✅ **Configuration Management** - YAML-based configuration with validation
44
+ - ✅ **Built-in Tools** - Echo, calculator, and system info tools
45
+ - ✅ **CLI Integration** - Complete command-line interface for management
46
+ - ✅ **Error Handling** - Comprehensive error handling and logging
47
+
48
+ ### Key Features
49
+ - **Protocol Handler** - Stdio-based MCP protocol handler, not a background service
50
+ - **Claude Code Ready** - Direct integration with Claude Code MCP client
51
+ - **Extensible** - Easy to add new tools and capabilities
52
+ - **Standards Compliant** - Follows official MCP specification exactly
53
+
54
+ ## Quick Start
55
+
56
+ ### 1. Check Status
57
+ ```bash
58
+ claude-mpm mcp status
59
+ ```
60
+
61
+ ### 2. Test Tools
62
+ ```bash
63
+ # Test echo tool
64
+ claude-mpm mcp test echo --args '{"message": "Hello MCP!"}'
65
+
66
+ # Test calculator
67
+ claude-mpm mcp test calculator --args '{"operation": "add", "a": 5, "b": 3}'
68
+
69
+ # Test system info
70
+ claude-mpm mcp test system_info
71
+ ```
72
+
73
+ ### 3. Start MCP Gateway Handler
74
+ ```bash
75
+ # Start gateway handler for Claude Code integration
76
+ claude-mpm mcp start
77
+ ```
78
+
79
+ The gateway handler will listen for MCP protocol messages via stdin/stdout. This is typically invoked by Claude Code, not run directly by users.
80
+
81
+ ### 4. Claude Code Integration
82
+ Add to your Claude Code configuration (~/.claude.json):
83
+ ```json
84
+ {
85
+ "mcpServers": {
86
+ "claude-mpm": {
87
+ "command": "python",
88
+ "args": ["-m", "claude_mpm.cli", "mcp", "start"],
89
+ "cwd": "/path/to/claude-mpm"
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ ## Configuration
96
+
97
+ The MCP Gateway uses a hierarchical configuration system with the following priority:
98
+
99
+ 1. Default configuration (built-in)
100
+ 2. Configuration file (YAML)
101
+ 3. Environment variables (highest priority)
102
+
103
+ ### Configuration File Locations
104
+
105
+ The system searches for configuration in these locations (in order):
106
+ - `~/.claude/mcp/config.yaml` (user-specific)
107
+ - `~/.claude/mcp_gateway.yaml`
108
+ - `~/.config/claude-mpm/mcp_gateway.yaml`
109
+ - `./mcp_gateway.yaml` (project-specific)
110
+ - `./config/mcp_gateway.yaml`
111
+ - `./.claude/mcp_gateway.yaml`
112
+ - `/etc/claude-mpm/mcp_gateway.yaml` (system-wide)
113
+
114
+ ### Environment Variables
115
+
116
+ Override configuration using environment variables:
117
+ ```bash
118
+ export MCP_GATEWAY_SERVER_NAME=my-gateway
119
+ export MCP_GATEWAY_TOOLS_TIMEOUT_DEFAULT=60
120
+ export MCP_GATEWAY_LOGGING_LEVEL=DEBUG
121
+ ```
122
+
123
+ ## Usage
124
+
125
+ ### Basic Setup
126
+
127
+ ```python
128
+ from claude_mpm.services.mcp_gateway import MCPConfiguration, MCPConfigLoader
129
+
130
+ # Load configuration
131
+ config_loader = MCPConfigLoader()
132
+ config = MCPConfiguration()
133
+ await config.initialize()
134
+
135
+ # Access configuration
136
+ server_name = config.get("mcp.server.name")
137
+ tools_enabled = config.get("mcp.tools.enabled")
138
+ ```
139
+
140
+ ### Service Registration
141
+
142
+ The MCP Gateway services are automatically registered with the claude-mpm service container:
143
+
144
+ ```python
145
+ from claude_mpm.services import MCPConfiguration, BaseMCPService
146
+
147
+ # Services are available through lazy loading
148
+ config = MCPConfiguration()
149
+ ```
150
+
151
+ ## Development
152
+
153
+ ### Adding New MCP Services
154
+
155
+ 1. Define the interface in `core/interfaces.py`
156
+ 2. Create base implementation in appropriate module
157
+ 3. Register in service container if needed
158
+ 4. Add lazy import to `__init__.py`
159
+ 5. Update documentation
160
+
161
+ ### Testing
162
+
163
+ Run tests with:
164
+ ```bash
165
+ pytest tests/services/mcp_gateway/
166
+ ```
167
+
168
+ ## Dependencies
169
+
170
+ - Python 3.8+
171
+ - mcp>=0.1.0 (Anthropic's MCP package)
172
+ - PyYAML for configuration
173
+ - asyncio for async operations
174
+
175
+ ## Related Issues
176
+
177
+ - ISS-0034: Infrastructure Setup (this implementation)
178
+ - ISS-0035: MCP Server Core Implementation
179
+ - ISS-0036: Tool Registry & Discovery System
180
+ - ISS-0037: stdio Communication Handler
181
+ - ISS-0038: Tool Adapter Framework
182
+
183
+ ## Notes
184
+
185
+ This is the foundation implementation for the MCP Gateway. The actual server functionality, tool registry, and communication handlers will be implemented in subsequent tickets as part of the EP-0007 epic.