claude-mpm 4.14.6__py3-none-any.whl → 4.21.0__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.
Files changed (353) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_ENGINEER.md +286 -0
  3. claude_mpm/agents/BASE_PM.md +272 -23
  4. claude_mpm/agents/OUTPUT_STYLE.md +48 -3
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +49 -0
  6. claude_mpm/agents/agent_loader.py +17 -5
  7. claude_mpm/agents/frontmatter_validator.py +284 -253
  8. claude_mpm/agents/templates/agentic-coder-optimizer.json +9 -2
  9. claude_mpm/agents/templates/api_qa.json +7 -1
  10. claude_mpm/agents/templates/clerk-ops.json +8 -1
  11. claude_mpm/agents/templates/code_analyzer.json +4 -1
  12. claude_mpm/agents/templates/dart_engineer.json +11 -1
  13. claude_mpm/agents/templates/data_engineer.json +11 -1
  14. claude_mpm/agents/templates/documentation.json +6 -1
  15. claude_mpm/agents/templates/engineer.json +18 -1
  16. claude_mpm/agents/templates/gcp_ops_agent.json +8 -1
  17. claude_mpm/agents/templates/golang_engineer.json +11 -1
  18. claude_mpm/agents/templates/java_engineer.json +12 -2
  19. claude_mpm/agents/templates/local_ops_agent.json +216 -37
  20. claude_mpm/agents/templates/nextjs_engineer.json +11 -1
  21. claude_mpm/agents/templates/ops.json +8 -1
  22. claude_mpm/agents/templates/php-engineer.json +20 -4
  23. claude_mpm/agents/templates/project_organizer.json +10 -3
  24. claude_mpm/agents/templates/prompt-engineer.json +5 -1
  25. claude_mpm/agents/templates/python_engineer.json +19 -4
  26. claude_mpm/agents/templates/qa.json +7 -1
  27. claude_mpm/agents/templates/react_engineer.json +11 -1
  28. claude_mpm/agents/templates/refactoring_engineer.json +8 -1
  29. claude_mpm/agents/templates/research.json +4 -1
  30. claude_mpm/agents/templates/ruby-engineer.json +11 -1
  31. claude_mpm/agents/templates/rust_engineer.json +23 -8
  32. claude_mpm/agents/templates/security.json +6 -1
  33. claude_mpm/agents/templates/svelte-engineer.json +225 -0
  34. claude_mpm/agents/templates/ticketing.json +6 -1
  35. claude_mpm/agents/templates/typescript_engineer.json +11 -1
  36. claude_mpm/agents/templates/vercel_ops_agent.json +8 -1
  37. claude_mpm/agents/templates/version_control.json +8 -1
  38. claude_mpm/agents/templates/web_qa.json +7 -1
  39. claude_mpm/agents/templates/web_ui.json +11 -1
  40. claude_mpm/cli/__init__.py +34 -740
  41. claude_mpm/cli/commands/__init__.py +2 -0
  42. claude_mpm/cli/commands/agent_manager.py +25 -12
  43. claude_mpm/cli/commands/agent_state_manager.py +186 -0
  44. claude_mpm/cli/commands/agents.py +204 -148
  45. claude_mpm/cli/commands/aggregate.py +7 -3
  46. claude_mpm/cli/commands/analyze.py +9 -4
  47. claude_mpm/cli/commands/analyze_code.py +7 -2
  48. claude_mpm/cli/commands/auto_configure.py +7 -9
  49. claude_mpm/cli/commands/config.py +47 -13
  50. claude_mpm/cli/commands/configure.py +294 -1788
  51. claude_mpm/cli/commands/configure_agent_display.py +261 -0
  52. claude_mpm/cli/commands/configure_behavior_manager.py +204 -0
  53. claude_mpm/cli/commands/configure_hook_manager.py +225 -0
  54. claude_mpm/cli/commands/configure_models.py +18 -0
  55. claude_mpm/cli/commands/configure_navigation.py +167 -0
  56. claude_mpm/cli/commands/configure_paths.py +104 -0
  57. claude_mpm/cli/commands/configure_persistence.py +254 -0
  58. claude_mpm/cli/commands/configure_startup_manager.py +646 -0
  59. claude_mpm/cli/commands/configure_template_editor.py +497 -0
  60. claude_mpm/cli/commands/configure_validators.py +73 -0
  61. claude_mpm/cli/commands/local_deploy.py +3 -2
  62. claude_mpm/cli/commands/memory.py +54 -20
  63. claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
  64. claude_mpm/cli/commands/mpm_init/core.py +525 -0
  65. claude_mpm/cli/commands/mpm_init/display.py +341 -0
  66. claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
  67. claude_mpm/cli/commands/mpm_init/modes.py +397 -0
  68. claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
  69. claude_mpm/cli/commands/mpm_init_cli.py +396 -0
  70. claude_mpm/cli/commands/mpm_init_handler.py +75 -4
  71. claude_mpm/cli/commands/skills.py +488 -0
  72. claude_mpm/cli/executor.py +204 -0
  73. claude_mpm/cli/helpers.py +105 -0
  74. claude_mpm/cli/interactive/__init__.py +3 -0
  75. claude_mpm/cli/interactive/skills_wizard.py +491 -0
  76. claude_mpm/cli/parsers/base_parser.py +7 -0
  77. claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
  78. claude_mpm/cli/parsers/skills_parser.py +137 -0
  79. claude_mpm/cli/shared/output_formatters.py +28 -19
  80. claude_mpm/cli/startup.py +538 -0
  81. claude_mpm/commands/mpm-auto-configure.md +52 -0
  82. claude_mpm/commands/mpm-help.md +3 -0
  83. claude_mpm/commands/mpm-init.md +112 -6
  84. claude_mpm/commands/mpm-version.md +113 -0
  85. claude_mpm/commands/mpm.md +1 -0
  86. claude_mpm/config/agent_config.py +2 -2
  87. claude_mpm/constants.py +12 -0
  88. claude_mpm/core/base_service.py +13 -12
  89. claude_mpm/core/config.py +42 -0
  90. claude_mpm/core/enums.py +452 -0
  91. claude_mpm/core/factories.py +1 -1
  92. claude_mpm/core/instruction_reinforcement_hook.py +2 -1
  93. claude_mpm/core/interactive_session.py +6 -3
  94. claude_mpm/core/interfaces.py +56 -1
  95. claude_mpm/core/logging_config.py +6 -2
  96. claude_mpm/core/oneshot_session.py +8 -4
  97. claude_mpm/core/optimized_agent_loader.py +3 -3
  98. claude_mpm/core/output_style_manager.py +12 -192
  99. claude_mpm/core/service_registry.py +5 -1
  100. claude_mpm/core/types.py +2 -9
  101. claude_mpm/core/typing_utils.py +7 -6
  102. claude_mpm/dashboard/static/js/dashboard.js +0 -14
  103. claude_mpm/dashboard/templates/index.html +3 -41
  104. claude_mpm/hooks/__init__.py +8 -0
  105. claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
  106. claude_mpm/hooks/instruction_reinforcement.py +7 -2
  107. claude_mpm/hooks/session_resume_hook.py +121 -0
  108. claude_mpm/models/resume_log.py +340 -0
  109. claude_mpm/services/agents/auto_config_manager.py +10 -11
  110. claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
  111. claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
  112. claude_mpm/services/agents/deployment/agent_validator.py +17 -1
  113. claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
  114. claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
  115. claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
  116. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +7 -6
  117. claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +7 -16
  118. claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +4 -3
  119. claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +5 -3
  120. claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +6 -5
  121. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +9 -6
  122. claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
  123. claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
  124. claude_mpm/services/agents/local_template_manager.py +1 -1
  125. claude_mpm/services/agents/memory/agent_memory_manager.py +5 -2
  126. claude_mpm/services/agents/recommender.py +47 -0
  127. claude_mpm/services/agents/registry/modification_tracker.py +5 -2
  128. claude_mpm/services/cli/resume_service.py +617 -0
  129. claude_mpm/services/cli/session_manager.py +87 -0
  130. claude_mpm/services/cli/session_pause_manager.py +504 -0
  131. claude_mpm/services/cli/session_resume_helper.py +372 -0
  132. claude_mpm/services/command_handler_service.py +11 -5
  133. claude_mpm/services/core/interfaces/process.py +6 -6
  134. claude_mpm/services/core/interfaces.py +56 -1
  135. claude_mpm/services/core/models/__init__.py +0 -2
  136. claude_mpm/services/core/models/agent_config.py +15 -28
  137. claude_mpm/services/core/models/health.py +1 -28
  138. claude_mpm/services/core/models/process.py +22 -41
  139. claude_mpm/services/core/path_resolver.py +1 -1
  140. claude_mpm/services/diagnostics/__init__.py +2 -2
  141. claude_mpm/services/diagnostics/checks/agent_check.py +25 -24
  142. claude_mpm/services/diagnostics/checks/claude_code_check.py +24 -23
  143. claude_mpm/services/diagnostics/checks/common_issues_check.py +25 -24
  144. claude_mpm/services/diagnostics/checks/configuration_check.py +24 -23
  145. claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
  146. claude_mpm/services/diagnostics/checks/installation_check.py +30 -29
  147. claude_mpm/services/diagnostics/checks/instructions_check.py +20 -19
  148. claude_mpm/services/diagnostics/checks/mcp_check.py +50 -36
  149. claude_mpm/services/diagnostics/checks/mcp_services_check.py +36 -31
  150. claude_mpm/services/diagnostics/checks/monitor_check.py +23 -22
  151. claude_mpm/services/diagnostics/checks/startup_log_check.py +9 -8
  152. claude_mpm/services/diagnostics/diagnostic_runner.py +6 -5
  153. claude_mpm/services/diagnostics/doctor_reporter.py +28 -25
  154. claude_mpm/services/diagnostics/models.py +37 -21
  155. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -1
  156. claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
  157. claude_mpm/services/infrastructure/monitoring/base.py +5 -13
  158. claude_mpm/services/infrastructure/monitoring/network.py +7 -6
  159. claude_mpm/services/infrastructure/monitoring/process.py +13 -12
  160. claude_mpm/services/infrastructure/monitoring/resources.py +7 -6
  161. claude_mpm/services/infrastructure/monitoring/service.py +16 -15
  162. claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
  163. claude_mpm/services/local_ops/__init__.py +5 -3
  164. claude_mpm/services/local_ops/crash_detector.py +1 -1
  165. claude_mpm/services/local_ops/health_checks/http_check.py +2 -1
  166. claude_mpm/services/local_ops/health_checks/process_check.py +2 -1
  167. claude_mpm/services/local_ops/health_checks/resource_check.py +2 -1
  168. claude_mpm/services/local_ops/health_manager.py +1 -1
  169. claude_mpm/services/local_ops/process_manager.py +12 -12
  170. claude_mpm/services/local_ops/restart_manager.py +1 -1
  171. claude_mpm/services/local_ops/state_manager.py +6 -5
  172. claude_mpm/services/local_ops/unified_manager.py +2 -2
  173. claude_mpm/services/mcp_config_manager.py +7 -126
  174. claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
  175. claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
  176. claude_mpm/services/mcp_gateway/core/base.py +18 -31
  177. claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
  178. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +97 -45
  179. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +30 -28
  180. claude_mpm/services/memory_hook_service.py +4 -1
  181. claude_mpm/services/monitor/daemon_manager.py +3 -2
  182. claude_mpm/services/monitor/handlers/dashboard.py +2 -1
  183. claude_mpm/services/monitor/handlers/hooks.py +2 -1
  184. claude_mpm/services/monitor/management/lifecycle.py +3 -2
  185. claude_mpm/services/monitor/server.py +2 -1
  186. claude_mpm/services/session_management_service.py +3 -2
  187. claude_mpm/services/session_manager.py +205 -1
  188. claude_mpm/services/shared/async_service_base.py +16 -27
  189. claude_mpm/services/shared/lifecycle_service_base.py +1 -14
  190. claude_mpm/services/socketio/handlers/__init__.py +5 -2
  191. claude_mpm/services/socketio/handlers/hook.py +13 -2
  192. claude_mpm/services/socketio/handlers/registry.py +4 -2
  193. claude_mpm/services/socketio/server/main.py +10 -8
  194. claude_mpm/services/subprocess_launcher_service.py +14 -5
  195. claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +8 -7
  196. claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +6 -5
  197. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +8 -7
  198. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +7 -6
  199. claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +5 -4
  200. claude_mpm/services/unified/config_strategies/validation_strategy.py +13 -9
  201. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +10 -3
  202. claude_mpm/services/unified/deployment_strategies/local.py +6 -5
  203. claude_mpm/services/unified/deployment_strategies/utils.py +6 -5
  204. claude_mpm/services/unified/deployment_strategies/vercel.py +7 -6
  205. claude_mpm/services/unified/interfaces.py +3 -1
  206. claude_mpm/services/unified/unified_analyzer.py +14 -10
  207. claude_mpm/services/unified/unified_config.py +2 -1
  208. claude_mpm/services/unified/unified_deployment.py +9 -4
  209. claude_mpm/services/version_service.py +104 -1
  210. claude_mpm/skills/__init__.py +42 -0
  211. claude_mpm/skills/agent_skills_injector.py +324 -0
  212. claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +79 -0
  213. claude_mpm/skills/bundled/__init__.py +6 -0
  214. claude_mpm/skills/bundled/api-documentation.md +393 -0
  215. claude_mpm/skills/bundled/async-testing.md +571 -0
  216. claude_mpm/skills/bundled/code-review.md +143 -0
  217. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
  218. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
  219. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  220. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  221. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  222. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  223. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
  224. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
  225. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  226. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
  227. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  228. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  229. claude_mpm/skills/bundled/database-migration.md +199 -0
  230. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
  231. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  232. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  233. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  234. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  235. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
  236. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
  237. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
  238. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
  239. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
  240. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
  241. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
  242. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
  243. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
  244. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
  245. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
  246. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
  247. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  248. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  249. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
  250. claude_mpm/skills/bundled/docker-containerization.md +194 -0
  251. claude_mpm/skills/bundled/express-local-dev.md +1429 -0
  252. claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
  253. claude_mpm/skills/bundled/git-workflow.md +414 -0
  254. claude_mpm/skills/bundled/imagemagick.md +204 -0
  255. claude_mpm/skills/bundled/json-data-handling.md +223 -0
  256. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
  257. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
  258. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
  259. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
  260. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
  261. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
  262. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
  263. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  264. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
  265. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
  266. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
  267. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
  268. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  269. claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +157 -0
  270. claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +425 -0
  271. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
  272. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  273. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  274. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  275. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  276. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  277. claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +303 -0
  278. claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +113 -0
  279. claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +72 -0
  280. claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
  281. claude_mpm/skills/bundled/pdf.md +141 -0
  282. claude_mpm/skills/bundled/performance-profiling.md +567 -0
  283. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  284. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  285. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  286. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  287. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  288. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  289. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  290. claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
  291. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  292. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  293. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  294. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  295. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  296. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  297. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  298. claude_mpm/skills/bundled/security-scanning.md +327 -0
  299. claude_mpm/skills/bundled/systematic-debugging.md +473 -0
  300. claude_mpm/skills/bundled/test-driven-development.md +378 -0
  301. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
  302. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  303. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
  304. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
  305. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
  306. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
  307. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
  308. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
  309. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
  310. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  311. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  312. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  313. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  314. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
  315. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  316. claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +35 -0
  317. claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +44 -0
  318. claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +34 -0
  319. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  320. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  321. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
  322. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  323. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  324. claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
  325. claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
  326. claude_mpm/skills/bundled/xlsx.md +157 -0
  327. claude_mpm/skills/registry.py +286 -0
  328. claude_mpm/skills/skill_manager.py +310 -0
  329. claude_mpm/skills/skills_registry.py +348 -0
  330. claude_mpm/skills/skills_service.py +739 -0
  331. claude_mpm/tools/code_tree_analyzer.py +177 -141
  332. claude_mpm/tools/code_tree_events.py +4 -2
  333. claude_mpm/utils/agent_dependency_loader.py +2 -2
  334. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/METADATA +211 -33
  335. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/RECORD +339 -199
  336. claude_mpm/agents/INSTRUCTIONS_OLD_DEPRECATED.md +0 -602
  337. claude_mpm/cli/commands/mpm_init.py +0 -1994
  338. claude_mpm/dashboard/static/css/code-tree.css +0 -1639
  339. claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
  340. claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
  341. claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
  342. claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
  343. claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
  344. claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
  345. claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
  346. claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1041
  347. claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
  348. claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
  349. claude_mpm/services/project/analyzer_refactored.py +0 -450
  350. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/WHEEL +0 -0
  351. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/entry_points.txt +0 -0
  352. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/licenses/LICENSE +0 -0
  353. {claude_mpm-4.14.6.dist-info → claude_mpm-4.21.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,538 @@
1
+ """
2
+ CLI Startup Functions
3
+ =====================
4
+
5
+ This module contains initialization functions that run on CLI startup,
6
+ including project registry, MCP configuration, and update checks.
7
+
8
+ Part of cli/__init__.py refactoring to reduce file size and improve modularity.
9
+ """
10
+
11
+ import os
12
+ import sys
13
+
14
+
15
+ def setup_early_environment(argv):
16
+ """
17
+ Set up early environment variables and logging suppression.
18
+
19
+ WHY: Some commands need special environment handling before any logging
20
+ or service initialization occurs.
21
+
22
+ Args:
23
+ argv: Command line arguments
24
+
25
+ Returns:
26
+ Processed argv list
27
+ """
28
+ # Disable telemetry and set cleanup flags early
29
+ os.environ.setdefault("DISABLE_TELEMETRY", "1")
30
+ os.environ.setdefault("CLAUDE_MPM_SKIP_CLEANUP", "0")
31
+
32
+ # EARLY CHECK: Suppress logging for configure command
33
+ if argv is None:
34
+ argv = sys.argv[1:]
35
+ if "configure" in argv or (len(argv) > 0 and argv[0] == "configure"):
36
+ import logging
37
+
38
+ logging.getLogger("claude_mpm").setLevel(logging.WARNING)
39
+ os.environ["CLAUDE_MPM_SKIP_CLEANUP"] = "1"
40
+
41
+ return argv
42
+
43
+
44
+ def should_skip_background_services(args, processed_argv):
45
+ """
46
+ Determine if background services should be skipped for this command.
47
+
48
+ WHY: Some commands (help, version, configure, doctor) don't need
49
+ background services and should start faster.
50
+
51
+ Args:
52
+ args: Parsed arguments
53
+ processed_argv: Processed command line arguments
54
+
55
+ Returns:
56
+ bool: True if background services should be skipped
57
+ """
58
+ skip_commands = ["--version", "-v", "--help", "-h"]
59
+ return any(cmd in (processed_argv or sys.argv[1:]) for cmd in skip_commands) or (
60
+ hasattr(args, "command")
61
+ and args.command in ["info", "doctor", "config", "mcp", "configure"]
62
+ )
63
+
64
+
65
+ def setup_configure_command_environment(args):
66
+ """
67
+ Set up special environment for configure command.
68
+
69
+ WHY: Configure command needs clean state without background services
70
+ and with suppressed logging.
71
+
72
+ Args:
73
+ args: Parsed arguments
74
+ """
75
+ if hasattr(args, "command") and args.command == "configure":
76
+ os.environ["CLAUDE_MPM_SKIP_CLEANUP"] = "1"
77
+ import logging
78
+
79
+ logging.getLogger("claude_mpm").setLevel(logging.WARNING)
80
+
81
+
82
+ def deploy_bundled_skills():
83
+ """
84
+ Deploy bundled Claude Code skills on startup.
85
+
86
+ WHY: Automatically deploy skills from the bundled/ directory to .claude/skills/
87
+ to ensure skills are available for agents without manual intervention.
88
+
89
+ DESIGN DECISION: Deployment happens silently on startup with logging only.
90
+ Failures are logged but don't block startup to ensure claude-mpm remains
91
+ functional even if skills deployment fails. Respects auto_deploy config setting.
92
+ """
93
+ try:
94
+ # Check if auto-deploy is disabled in config
95
+ from ..config.config_loader import ConfigLoader
96
+
97
+ config_loader = ConfigLoader()
98
+ try:
99
+ config = config_loader.load_config()
100
+ skills_config = config.get("skills", {})
101
+ if not skills_config.get("auto_deploy", True):
102
+ # Auto-deploy disabled, skip silently
103
+ return
104
+ except Exception:
105
+ # If config loading fails, assume auto-deploy is enabled (default)
106
+ pass
107
+
108
+ # Import and run skills deployment
109
+ from ..skills.skills_service import SkillsService
110
+
111
+ skills_service = SkillsService()
112
+ deployment_result = skills_service.deploy_bundled_skills()
113
+
114
+ # Log results
115
+ from ..core.logger import get_logger
116
+
117
+ logger = get_logger("cli")
118
+
119
+ if deployment_result.get("deployed"):
120
+ logger.info(
121
+ f"Skills: Deployed {len(deployment_result['deployed'])} skill(s)"
122
+ )
123
+
124
+ if deployment_result.get("errors"):
125
+ logger.warning(
126
+ f"Skills: {len(deployment_result['errors'])} skill(s) failed to deploy"
127
+ )
128
+
129
+ except Exception as e:
130
+ # Import logger here to avoid circular imports
131
+ from ..core.logger import get_logger
132
+
133
+ logger = get_logger("cli")
134
+ logger.debug(f"Failed to deploy bundled skills: {e}")
135
+ # Continue execution - skills deployment failure shouldn't block startup
136
+
137
+
138
+ def discover_and_link_runtime_skills():
139
+ """
140
+ Discover and link runtime skills from user/project directories.
141
+
142
+ WHY: Automatically discover and link skills added to .claude/skills/
143
+ without requiring manual configuration.
144
+
145
+ DESIGN DECISION: Failures are logged but don't block startup to ensure
146
+ claude-mpm remains functional even if skills discovery fails.
147
+ """
148
+ try:
149
+ from ..cli.interactive.skills_wizard import (
150
+ discover_and_link_runtime_skills as discover_skills,
151
+ )
152
+
153
+ discover_skills()
154
+ except Exception as e:
155
+ # Import logger here to avoid circular imports
156
+ from ..core.logger import get_logger
157
+
158
+ logger = get_logger("cli")
159
+ logger.debug(f"Failed to discover runtime skills: {e}")
160
+ # Continue execution - skills discovery failure shouldn't block startup
161
+
162
+
163
+ def run_background_services():
164
+ """
165
+ Initialize all background services on startup.
166
+
167
+ WHY: Centralizes all startup service initialization for cleaner main().
168
+ """
169
+ initialize_project_registry()
170
+ check_mcp_auto_configuration()
171
+ verify_mcp_gateway_startup()
172
+ check_for_updates_async()
173
+ deploy_bundled_skills()
174
+ discover_and_link_runtime_skills()
175
+
176
+
177
+ def setup_mcp_server_logging(args):
178
+ """
179
+ Configure minimal logging for MCP server mode.
180
+
181
+ WHY: MCP server needs minimal stderr-only logging to avoid interfering
182
+ with stdout protocol communication.
183
+
184
+ Args:
185
+ args: Parsed arguments
186
+
187
+ Returns:
188
+ Configured logger
189
+ """
190
+ import logging
191
+
192
+ from ..cli.utils import setup_logging
193
+ from ..constants import CLICommands
194
+
195
+ if (
196
+ args.command == CLICommands.MCP.value
197
+ and getattr(args, "mcp_command", None) == "start"
198
+ ):
199
+ if not getattr(args, "test", False) and not getattr(
200
+ args, "instructions", False
201
+ ):
202
+ # Production MCP mode - minimal logging
203
+ logging.basicConfig(
204
+ level=logging.ERROR,
205
+ format="%(message)s",
206
+ stream=sys.stderr,
207
+ force=True,
208
+ )
209
+ return logging.getLogger("claude_mpm")
210
+ # Test or instructions mode - normal logging
211
+ return setup_logging(args)
212
+ # Normal logging for all other commands
213
+ return setup_logging(args)
214
+
215
+
216
+ def initialize_project_registry():
217
+ """
218
+ Initialize or update the project registry for the current session.
219
+
220
+ WHY: The project registry tracks all claude-mpm projects and their metadata
221
+ across sessions. This function ensures the current project is properly
222
+ registered and updates session information.
223
+
224
+ DESIGN DECISION: Registry failures are logged but don't prevent startup
225
+ to ensure claude-mpm remains functional even if registry operations fail.
226
+ """
227
+ try:
228
+ from ..services.project.registry import ProjectRegistry
229
+
230
+ registry = ProjectRegistry()
231
+ registry.get_or_create_project_entry()
232
+ except Exception as e:
233
+ # Import logger here to avoid circular imports
234
+ from ..core.logger import get_logger
235
+
236
+ logger = get_logger("cli")
237
+ logger.debug(f"Failed to initialize project registry: {e}")
238
+ # Continue execution - registry failure shouldn't block startup
239
+
240
+
241
+ def check_mcp_auto_configuration():
242
+ """
243
+ Check and potentially auto-configure MCP for pipx installations.
244
+
245
+ WHY: Users installing via pipx should have MCP work out-of-the-box with
246
+ minimal friction. This function offers one-time auto-configuration with
247
+ user consent.
248
+
249
+ DESIGN DECISION: This is blocking but quick - it only runs once and has
250
+ a 10-second timeout. We want to catch users on first run for the best
251
+ experience.
252
+ """
253
+ try:
254
+ from ..services.mcp_gateway.auto_configure import check_and_configure_mcp
255
+
256
+ # This function handles all the logic:
257
+ # - Checks if already configured
258
+ # - Checks if pipx installation
259
+ # - Checks if already asked before
260
+ # - Prompts user if needed
261
+ # - Configures if user agrees
262
+ check_and_configure_mcp()
263
+
264
+ except Exception as e:
265
+ # Non-critical - log but don't fail
266
+ from ..core.logger import get_logger
267
+
268
+ logger = get_logger("cli")
269
+ logger.debug(f"MCP auto-configuration check failed: {e}")
270
+
271
+ # Skip MCP service fixes for the doctor and configure commands
272
+ # The doctor command performs its own comprehensive MCP service check
273
+ # The configure command allows users to configure which services to enable
274
+ # Running both would cause duplicate checks and log messages (9 seconds apart)
275
+ if len(sys.argv) > 1 and sys.argv[1] in ("doctor", "configure"):
276
+ return
277
+
278
+ # Also ensure MCP services are properly configured in ~/.claude.json
279
+ # This fixes incorrect paths and adds missing services
280
+ try:
281
+ from ..core.logger import get_logger
282
+ from ..services.mcp_config_manager import MCPConfigManager
283
+
284
+ logger = get_logger("cli")
285
+ mcp_manager = MCPConfigManager()
286
+
287
+ # Fix any corrupted installations first
288
+ fix_success, fix_message = mcp_manager.fix_mcp_service_issues()
289
+ if fix_message and "Fixed:" in fix_message:
290
+ logger.info(f"MCP service fixes applied: {fix_message}")
291
+
292
+ # Ensure all services are configured correctly
293
+ config_success, config_message = mcp_manager.ensure_mcp_services_configured()
294
+ if config_message and "Added MCP services" in config_message:
295
+ logger.info(f"MCP services configured: {config_message}")
296
+
297
+ except Exception as e:
298
+ # Non-critical - log but don't fail
299
+ from ..core.logger import get_logger
300
+
301
+ logger = get_logger("cli")
302
+ logger.debug(f"MCP services configuration update failed: {e}")
303
+
304
+
305
+ def verify_mcp_gateway_startup():
306
+ """
307
+ Verify MCP Gateway configuration on startup and pre-warm MCP services.
308
+
309
+ WHY: The MCP gateway should be automatically configured and verified on startup
310
+ to provide a seamless experience with diagnostic tools, file summarizer, and
311
+ ticket service. Pre-warming MCP services eliminates the 11.9s delay on first use.
312
+
313
+ DESIGN DECISION: This is non-blocking - failures are logged but don't prevent
314
+ startup to ensure claude-mpm remains functional even if MCP gateway has issues.
315
+ """
316
+ # Quick verification of MCP services installation
317
+ try:
318
+ from ..core.logger import get_logger
319
+ from ..services.mcp_service_verifier import verify_mcp_services_on_startup
320
+
321
+ logger = get_logger("mcp_verify")
322
+ all_ok, message = verify_mcp_services_on_startup()
323
+ if not all_ok:
324
+ logger.warning(message)
325
+ except Exception:
326
+ # Non-critical - continue with startup
327
+ pass
328
+
329
+ try:
330
+ import asyncio
331
+ import time
332
+
333
+ from ..core.logger import get_logger
334
+ from ..services.mcp_gateway.core.startup_verification import (
335
+ is_mcp_gateway_configured,
336
+ verify_mcp_gateway_on_startup,
337
+ )
338
+
339
+ logger = get_logger("mcp_prewarm")
340
+
341
+ # Quick check first - if already configured, skip detailed verification
342
+ gateway_configured = is_mcp_gateway_configured()
343
+
344
+ # DISABLED: Pre-warming MCP servers can interfere with Claude Code's MCP management
345
+ # This was causing issues with MCP server initialization and stderr handling
346
+ # def run_pre_warming():
347
+ # loop = None
348
+ # try:
349
+ # start_time = time.time()
350
+ # loop = asyncio.new_event_loop()
351
+ # asyncio.set_event_loop(loop)
352
+ #
353
+ # # Pre-warm MCP servers (especially vector search)
354
+ # logger.info("Pre-warming MCP servers to eliminate startup delay...")
355
+ # loop.run_until_complete(pre_warm_mcp_servers())
356
+ #
357
+ # pre_warm_time = time.time() - start_time
358
+ # if pre_warm_time > 1.0:
359
+ # logger.info(f"MCP servers pre-warmed in {pre_warm_time:.2f}s")
360
+
361
+ # Dummy function to maintain structure
362
+ def run_pre_warming():
363
+ loop = None
364
+ try:
365
+ time.time()
366
+ loop = asyncio.new_event_loop()
367
+ asyncio.set_event_loop(loop)
368
+
369
+ # Also run gateway verification if needed
370
+ if not gateway_configured:
371
+ loop.run_until_complete(verify_mcp_gateway_on_startup())
372
+
373
+ except Exception as e:
374
+ # Non-blocking - log but don't fail
375
+ logger.debug(f"MCP pre-warming error (non-critical): {e}")
376
+ finally:
377
+ # Properly clean up event loop to prevent kqueue warnings
378
+ if loop is not None:
379
+ try:
380
+ # Cancel all running tasks
381
+ pending = asyncio.all_tasks(loop)
382
+ for task in pending:
383
+ task.cancel()
384
+ # Wait for tasks to complete cancellation
385
+ if pending:
386
+ loop.run_until_complete(
387
+ asyncio.gather(*pending, return_exceptions=True)
388
+ )
389
+ except Exception:
390
+ pass # Ignore cleanup errors
391
+ finally:
392
+ loop.close()
393
+ # Clear the event loop reference to help with cleanup
394
+ asyncio.set_event_loop(None)
395
+
396
+ # Run pre-warming in background thread
397
+ import threading
398
+
399
+ pre_warm_thread = threading.Thread(target=run_pre_warming, daemon=True)
400
+ pre_warm_thread.start()
401
+
402
+ return
403
+
404
+ # Run detailed verification in background if not configured
405
+ if not gateway_configured:
406
+ # Note: We don't await this to avoid blocking startup
407
+ def run_verification():
408
+ loop = None
409
+ try:
410
+ loop = asyncio.new_event_loop()
411
+ asyncio.set_event_loop(loop)
412
+ results = loop.run_until_complete(verify_mcp_gateway_on_startup())
413
+
414
+ # Log results but don't block
415
+ from ..core.logger import get_logger
416
+
417
+ logger = get_logger("cli")
418
+
419
+ if results.get("gateway_configured"):
420
+ logger.debug("MCP Gateway verification completed successfully")
421
+ else:
422
+ logger.debug("MCP Gateway verification completed with warnings")
423
+
424
+ except Exception as e:
425
+ from ..core.logger import get_logger
426
+
427
+ logger = get_logger("cli")
428
+ logger.debug(f"MCP Gateway verification failed: {e}")
429
+ finally:
430
+ # Properly clean up event loop to prevent kqueue warnings
431
+ if loop is not None:
432
+ try:
433
+ # Cancel all running tasks
434
+ pending = asyncio.all_tasks(loop)
435
+ for task in pending:
436
+ task.cancel()
437
+ # Wait for tasks to complete cancellation
438
+ if pending:
439
+ loop.run_until_complete(
440
+ asyncio.gather(*pending, return_exceptions=True)
441
+ )
442
+ except Exception:
443
+ pass # Ignore cleanup errors
444
+ finally:
445
+ loop.close()
446
+ # Clear the event loop reference to help with cleanup
447
+ asyncio.set_event_loop(None)
448
+
449
+ # Run in background thread to avoid blocking startup
450
+ import threading
451
+
452
+ verification_thread = threading.Thread(target=run_verification, daemon=True)
453
+ verification_thread.start()
454
+
455
+ except Exception as e:
456
+ # Import logger here to avoid circular imports
457
+ from ..core.logger import get_logger
458
+
459
+ logger = get_logger("cli")
460
+ logger.debug(f"Failed to start MCP Gateway verification: {e}")
461
+ # Continue execution - MCP gateway issues shouldn't block startup
462
+
463
+
464
+ def check_for_updates_async():
465
+ """
466
+ Check for updates in background thread (non-blocking).
467
+
468
+ WHY: Users should be notified of new versions and have an easy way to upgrade
469
+ without manually checking PyPI/npm. This runs asynchronously on startup to avoid
470
+ blocking the CLI.
471
+
472
+ DESIGN DECISION: This is non-blocking and non-critical - failures are logged
473
+ but don't prevent startup. Only runs for pip/pipx/npm installations, skips
474
+ editable/development installations.
475
+ """
476
+
477
+ def run_update_check():
478
+ """Inner function to run in background thread."""
479
+ loop = None
480
+ try:
481
+ import asyncio
482
+
483
+ from ..core.logger import get_logger
484
+ from ..services.self_upgrade_service import SelfUpgradeService
485
+
486
+ logger = get_logger("upgrade_check")
487
+
488
+ # Create new event loop for this thread
489
+ loop = asyncio.new_event_loop()
490
+ asyncio.set_event_loop(loop)
491
+
492
+ # Create upgrade service and check for updates
493
+ upgrade_service = SelfUpgradeService()
494
+
495
+ # Skip for editable installs (development mode)
496
+ from ..services.self_upgrade_service import InstallationMethod
497
+
498
+ if upgrade_service.installation_method == InstallationMethod.EDITABLE:
499
+ logger.debug("Skipping version check for editable installation")
500
+ return
501
+
502
+ # Check and prompt for upgrade if available (non-blocking)
503
+ loop.run_until_complete(upgrade_service.check_and_prompt_on_startup())
504
+
505
+ except Exception as e:
506
+ # Non-critical - log but don't fail startup
507
+ try:
508
+ from ..core.logger import get_logger
509
+
510
+ logger = get_logger("upgrade_check")
511
+ logger.debug(f"Update check failed (non-critical): {e}")
512
+ except Exception:
513
+ pass # Avoid any errors in error handling
514
+ finally:
515
+ # Properly clean up event loop
516
+ if loop is not None:
517
+ try:
518
+ # Cancel all running tasks
519
+ pending = asyncio.all_tasks(loop)
520
+ for task in pending:
521
+ task.cancel()
522
+ # Wait for tasks to complete cancellation
523
+ if pending:
524
+ loop.run_until_complete(
525
+ asyncio.gather(*pending, return_exceptions=True)
526
+ )
527
+ except Exception:
528
+ pass # Ignore cleanup errors
529
+ finally:
530
+ loop.close()
531
+ # Clear the event loop reference to help with cleanup
532
+ asyncio.set_event_loop(None)
533
+
534
+ # Run update check in background thread to avoid blocking startup
535
+ import threading
536
+
537
+ update_check_thread = threading.Thread(target=run_update_check, daemon=True)
538
+ update_check_thread.start()
@@ -201,6 +201,58 @@ Next steps:
201
201
  - docker-ops
202
202
  - local-ops-agent
203
203
 
204
+ ## Default Configuration Fallback
205
+
206
+ When auto-configuration cannot detect your project's toolchain (e.g., a new or uncommon language/framework), it automatically falls back to a sensible set of default general-purpose agents instead of leaving your project unconfigured.
207
+
208
+ ### When Defaults are Applied
209
+
210
+ Default agents are deployed when:
211
+ - Primary language is detected as "Unknown"
212
+ - No specific framework or toolchain can be identified
213
+ - No agent recommendations can be generated from detected technologies
214
+
215
+ ### Default Agents
216
+
217
+ The following general-purpose agents are recommended with moderate confidence (0.7):
218
+
219
+ - **engineer**: General-purpose engineer for code implementation
220
+ - **research**: Code exploration and analysis
221
+ - **qa**: Testing and quality assurance
222
+ - **ops**: Infrastructure and deployment operations
223
+ - **documentation**: Documentation and technical writing
224
+
225
+ All default recommendations will be marked with `is_default: True` in the metadata.
226
+
227
+ ### Disabling Default Fallback
228
+
229
+ To disable the default configuration fallback, edit `.claude-mpm/config/agent_capabilities.yaml`:
230
+
231
+ ```yaml
232
+ default_configuration:
233
+ enabled: false # Disable default fallback
234
+ ```
235
+
236
+ When disabled, auto-configuration will recommend zero agents if the toolchain cannot be detected.
237
+
238
+ ### Customizing Defaults
239
+
240
+ You can customize which agents are deployed by default by editing the `default_configuration.agents` section in `.claude-mpm/config/agent_capabilities.yaml`:
241
+
242
+ ```yaml
243
+ default_configuration:
244
+ enabled: true
245
+ min_confidence: 0.7 # Confidence score for default recommendations
246
+ agents:
247
+ - agent_id: engineer
248
+ reasoning: "General-purpose engineer for code implementation"
249
+ priority: 1
250
+ - agent_id: research
251
+ reasoning: "Code exploration and analysis"
252
+ priority: 2
253
+ # Add or remove agents as needed
254
+ ```
255
+
204
256
  ## Tips
205
257
 
206
258
  1. **Start with preview**: Always run with `--preview` first to see recommendations
@@ -90,6 +90,9 @@ Available Commands:
90
90
  /mpm-monitor [start|stop|restart|status|port]
91
91
  Manage Socket.IO monitoring server and dashboard
92
92
 
93
+ /mpm-version
94
+ Display comprehensive version information including project version, all agents with versions, and all skills with versions
95
+
93
96
  Use '/mpm-help <command>' for detailed help on a specific command.
94
97
  ```
95
98