claude-mpm 4.7.4__py3-none-any.whl → 4.18.2__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 (308) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_AGENT_TEMPLATE.md +118 -0
  3. claude_mpm/agents/BASE_ENGINEER.md +286 -0
  4. claude_mpm/agents/BASE_PM.md +106 -1
  5. claude_mpm/agents/OUTPUT_STYLE.md +329 -11
  6. claude_mpm/agents/PM_INSTRUCTIONS.md +397 -459
  7. claude_mpm/agents/agent_loader.py +17 -5
  8. claude_mpm/agents/frontmatter_validator.py +284 -253
  9. claude_mpm/agents/templates/README.md +465 -0
  10. claude_mpm/agents/templates/agent-manager.json +4 -1
  11. claude_mpm/agents/templates/agentic-coder-optimizer.json +13 -3
  12. claude_mpm/agents/templates/api_qa.json +11 -2
  13. claude_mpm/agents/templates/circuit_breakers.md +638 -0
  14. claude_mpm/agents/templates/clerk-ops.json +12 -2
  15. claude_mpm/agents/templates/code_analyzer.json +8 -2
  16. claude_mpm/agents/templates/content-agent.json +358 -0
  17. claude_mpm/agents/templates/dart_engineer.json +15 -2
  18. claude_mpm/agents/templates/data_engineer.json +15 -2
  19. claude_mpm/agents/templates/documentation.json +10 -2
  20. claude_mpm/agents/templates/engineer.json +21 -1
  21. claude_mpm/agents/templates/gcp_ops_agent.json +12 -2
  22. claude_mpm/agents/templates/git_file_tracking.md +584 -0
  23. claude_mpm/agents/templates/golang_engineer.json +270 -0
  24. claude_mpm/agents/templates/imagemagick.json +4 -1
  25. claude_mpm/agents/templates/java_engineer.json +346 -0
  26. claude_mpm/agents/templates/local_ops_agent.json +1227 -6
  27. claude_mpm/agents/templates/memory_manager.json +4 -1
  28. claude_mpm/agents/templates/nextjs_engineer.json +141 -133
  29. claude_mpm/agents/templates/ops.json +12 -2
  30. claude_mpm/agents/templates/php-engineer.json +270 -174
  31. claude_mpm/agents/templates/pm_examples.md +474 -0
  32. claude_mpm/agents/templates/pm_red_flags.md +240 -0
  33. claude_mpm/agents/templates/product_owner.json +338 -0
  34. claude_mpm/agents/templates/project_organizer.json +14 -4
  35. claude_mpm/agents/templates/prompt-engineer.json +13 -2
  36. claude_mpm/agents/templates/python_engineer.json +174 -81
  37. claude_mpm/agents/templates/qa.json +11 -2
  38. claude_mpm/agents/templates/react_engineer.json +16 -3
  39. claude_mpm/agents/templates/refactoring_engineer.json +12 -2
  40. claude_mpm/agents/templates/research.json +34 -21
  41. claude_mpm/agents/templates/response_format.md +583 -0
  42. claude_mpm/agents/templates/ruby-engineer.json +129 -192
  43. claude_mpm/agents/templates/rust_engineer.json +270 -0
  44. claude_mpm/agents/templates/security.json +10 -2
  45. claude_mpm/agents/templates/svelte-engineer.json +225 -0
  46. claude_mpm/agents/templates/ticketing.json +10 -2
  47. claude_mpm/agents/templates/typescript_engineer.json +116 -125
  48. claude_mpm/agents/templates/validation_templates.md +312 -0
  49. claude_mpm/agents/templates/vercel_ops_agent.json +12 -2
  50. claude_mpm/agents/templates/version_control.json +12 -2
  51. claude_mpm/agents/templates/web_qa.json +11 -2
  52. claude_mpm/agents/templates/web_ui.json +15 -2
  53. claude_mpm/cli/__init__.py +34 -614
  54. claude_mpm/cli/commands/agent_manager.py +25 -12
  55. claude_mpm/cli/commands/agent_state_manager.py +186 -0
  56. claude_mpm/cli/commands/agents.py +235 -148
  57. claude_mpm/cli/commands/agents_detect.py +380 -0
  58. claude_mpm/cli/commands/agents_recommend.py +309 -0
  59. claude_mpm/cli/commands/aggregate.py +7 -3
  60. claude_mpm/cli/commands/analyze.py +9 -4
  61. claude_mpm/cli/commands/analyze_code.py +7 -2
  62. claude_mpm/cli/commands/auto_configure.py +570 -0
  63. claude_mpm/cli/commands/config.py +47 -13
  64. claude_mpm/cli/commands/configure.py +419 -1571
  65. claude_mpm/cli/commands/configure_agent_display.py +261 -0
  66. claude_mpm/cli/commands/configure_behavior_manager.py +204 -0
  67. claude_mpm/cli/commands/configure_hook_manager.py +225 -0
  68. claude_mpm/cli/commands/configure_models.py +18 -0
  69. claude_mpm/cli/commands/configure_navigation.py +167 -0
  70. claude_mpm/cli/commands/configure_paths.py +104 -0
  71. claude_mpm/cli/commands/configure_persistence.py +254 -0
  72. claude_mpm/cli/commands/configure_startup_manager.py +646 -0
  73. claude_mpm/cli/commands/configure_template_editor.py +497 -0
  74. claude_mpm/cli/commands/configure_validators.py +73 -0
  75. claude_mpm/cli/commands/local_deploy.py +537 -0
  76. claude_mpm/cli/commands/memory.py +54 -20
  77. claude_mpm/cli/commands/mpm_init.py +585 -196
  78. claude_mpm/cli/commands/mpm_init_handler.py +37 -3
  79. claude_mpm/cli/commands/search.py +170 -4
  80. claude_mpm/cli/commands/upgrade.py +152 -0
  81. claude_mpm/cli/executor.py +202 -0
  82. claude_mpm/cli/helpers.py +105 -0
  83. claude_mpm/cli/interactive/__init__.py +3 -0
  84. claude_mpm/cli/interactive/skills_wizard.py +491 -0
  85. claude_mpm/cli/parsers/__init__.py +7 -1
  86. claude_mpm/cli/parsers/agents_parser.py +9 -0
  87. claude_mpm/cli/parsers/auto_configure_parser.py +245 -0
  88. claude_mpm/cli/parsers/base_parser.py +110 -3
  89. claude_mpm/cli/parsers/local_deploy_parser.py +227 -0
  90. claude_mpm/cli/parsers/mpm_init_parser.py +65 -5
  91. claude_mpm/cli/shared/output_formatters.py +28 -19
  92. claude_mpm/cli/startup.py +481 -0
  93. claude_mpm/cli/utils.py +52 -1
  94. claude_mpm/commands/mpm-agents-detect.md +168 -0
  95. claude_mpm/commands/mpm-agents-recommend.md +214 -0
  96. claude_mpm/commands/mpm-agents.md +75 -1
  97. claude_mpm/commands/mpm-auto-configure.md +217 -0
  98. claude_mpm/commands/mpm-help.md +163 -0
  99. claude_mpm/commands/mpm-init.md +148 -3
  100. claude_mpm/commands/mpm-version.md +113 -0
  101. claude_mpm/commands/mpm.md +1 -0
  102. claude_mpm/config/agent_config.py +2 -2
  103. claude_mpm/config/model_config.py +428 -0
  104. claude_mpm/constants.py +1 -0
  105. claude_mpm/core/base_service.py +13 -12
  106. claude_mpm/core/enums.py +452 -0
  107. claude_mpm/core/factories.py +1 -1
  108. claude_mpm/core/instruction_reinforcement_hook.py +2 -1
  109. claude_mpm/core/interactive_session.py +9 -3
  110. claude_mpm/core/log_manager.py +2 -0
  111. claude_mpm/core/logging_config.py +6 -2
  112. claude_mpm/core/oneshot_session.py +8 -4
  113. claude_mpm/core/optimized_agent_loader.py +3 -3
  114. claude_mpm/core/output_style_manager.py +12 -192
  115. claude_mpm/core/service_registry.py +5 -1
  116. claude_mpm/core/types.py +2 -9
  117. claude_mpm/core/typing_utils.py +7 -6
  118. claude_mpm/dashboard/static/js/dashboard.js +0 -14
  119. claude_mpm/dashboard/templates/index.html +3 -41
  120. claude_mpm/hooks/__init__.py +20 -0
  121. claude_mpm/hooks/claude_hooks/event_handlers.py +4 -2
  122. claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
  123. claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +23 -2
  124. claude_mpm/hooks/failure_learning/__init__.py +60 -0
  125. claude_mpm/hooks/failure_learning/failure_detection_hook.py +235 -0
  126. claude_mpm/hooks/failure_learning/fix_detection_hook.py +217 -0
  127. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +286 -0
  128. claude_mpm/hooks/instruction_reinforcement.py +7 -2
  129. claude_mpm/hooks/kuzu_enrichment_hook.py +263 -0
  130. claude_mpm/hooks/kuzu_memory_hook.py +37 -12
  131. claude_mpm/hooks/kuzu_response_hook.py +183 -0
  132. claude_mpm/models/resume_log.py +340 -0
  133. claude_mpm/services/agents/__init__.py +18 -5
  134. claude_mpm/services/agents/auto_config_manager.py +796 -0
  135. claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
  136. claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
  137. claude_mpm/services/agents/deployment/agent_validator.py +17 -1
  138. claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
  139. claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
  140. claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
  141. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +7 -6
  142. claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +7 -16
  143. claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +4 -3
  144. claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +5 -3
  145. claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +6 -5
  146. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +9 -6
  147. claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
  148. claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
  149. claude_mpm/services/agents/local_template_manager.py +1 -1
  150. claude_mpm/services/agents/memory/agent_memory_manager.py +5 -2
  151. claude_mpm/services/agents/observers.py +547 -0
  152. claude_mpm/services/agents/recommender.py +568 -0
  153. claude_mpm/services/agents/registry/modification_tracker.py +5 -2
  154. claude_mpm/services/command_handler_service.py +11 -5
  155. claude_mpm/services/core/__init__.py +33 -1
  156. claude_mpm/services/core/interfaces/__init__.py +90 -3
  157. claude_mpm/services/core/interfaces/agent.py +184 -0
  158. claude_mpm/services/core/interfaces/health.py +172 -0
  159. claude_mpm/services/core/interfaces/model.py +281 -0
  160. claude_mpm/services/core/interfaces/process.py +372 -0
  161. claude_mpm/services/core/interfaces/project.py +121 -0
  162. claude_mpm/services/core/interfaces/restart.py +307 -0
  163. claude_mpm/services/core/interfaces/stability.py +260 -0
  164. claude_mpm/services/core/memory_manager.py +11 -24
  165. claude_mpm/services/core/models/__init__.py +79 -0
  166. claude_mpm/services/core/models/agent_config.py +381 -0
  167. claude_mpm/services/core/models/health.py +162 -0
  168. claude_mpm/services/core/models/process.py +235 -0
  169. claude_mpm/services/core/models/restart.py +302 -0
  170. claude_mpm/services/core/models/stability.py +264 -0
  171. claude_mpm/services/core/models/toolchain.py +306 -0
  172. claude_mpm/services/core/path_resolver.py +23 -7
  173. claude_mpm/services/diagnostics/__init__.py +2 -2
  174. claude_mpm/services/diagnostics/checks/agent_check.py +25 -24
  175. claude_mpm/services/diagnostics/checks/claude_code_check.py +24 -23
  176. claude_mpm/services/diagnostics/checks/common_issues_check.py +25 -24
  177. claude_mpm/services/diagnostics/checks/configuration_check.py +24 -23
  178. claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
  179. claude_mpm/services/diagnostics/checks/installation_check.py +30 -29
  180. claude_mpm/services/diagnostics/checks/instructions_check.py +20 -19
  181. claude_mpm/services/diagnostics/checks/mcp_check.py +50 -36
  182. claude_mpm/services/diagnostics/checks/mcp_services_check.py +38 -33
  183. claude_mpm/services/diagnostics/checks/monitor_check.py +23 -22
  184. claude_mpm/services/diagnostics/checks/startup_log_check.py +9 -8
  185. claude_mpm/services/diagnostics/diagnostic_runner.py +6 -5
  186. claude_mpm/services/diagnostics/doctor_reporter.py +28 -25
  187. claude_mpm/services/diagnostics/models.py +19 -24
  188. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -1
  189. claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
  190. claude_mpm/services/infrastructure/monitoring/base.py +5 -13
  191. claude_mpm/services/infrastructure/monitoring/network.py +7 -6
  192. claude_mpm/services/infrastructure/monitoring/process.py +13 -12
  193. claude_mpm/services/infrastructure/monitoring/resources.py +7 -6
  194. claude_mpm/services/infrastructure/monitoring/service.py +16 -15
  195. claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
  196. claude_mpm/services/local_ops/__init__.py +163 -0
  197. claude_mpm/services/local_ops/crash_detector.py +257 -0
  198. claude_mpm/services/local_ops/health_checks/__init__.py +28 -0
  199. claude_mpm/services/local_ops/health_checks/http_check.py +224 -0
  200. claude_mpm/services/local_ops/health_checks/process_check.py +236 -0
  201. claude_mpm/services/local_ops/health_checks/resource_check.py +255 -0
  202. claude_mpm/services/local_ops/health_manager.py +430 -0
  203. claude_mpm/services/local_ops/log_monitor.py +396 -0
  204. claude_mpm/services/local_ops/memory_leak_detector.py +294 -0
  205. claude_mpm/services/local_ops/process_manager.py +595 -0
  206. claude_mpm/services/local_ops/resource_monitor.py +331 -0
  207. claude_mpm/services/local_ops/restart_manager.py +401 -0
  208. claude_mpm/services/local_ops/restart_policy.py +387 -0
  209. claude_mpm/services/local_ops/state_manager.py +372 -0
  210. claude_mpm/services/local_ops/unified_manager.py +600 -0
  211. claude_mpm/services/mcp_config_manager.py +9 -4
  212. claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
  213. claude_mpm/services/mcp_gateway/core/base.py +18 -31
  214. claude_mpm/services/mcp_gateway/main.py +30 -0
  215. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +206 -32
  216. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +30 -28
  217. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +25 -5
  218. claude_mpm/services/mcp_service_verifier.py +1 -1
  219. claude_mpm/services/memory/failure_tracker.py +563 -0
  220. claude_mpm/services/memory_hook_service.py +165 -4
  221. claude_mpm/services/model/__init__.py +147 -0
  222. claude_mpm/services/model/base_provider.py +365 -0
  223. claude_mpm/services/model/claude_provider.py +412 -0
  224. claude_mpm/services/model/model_router.py +453 -0
  225. claude_mpm/services/model/ollama_provider.py +415 -0
  226. claude_mpm/services/monitor/daemon_manager.py +3 -2
  227. claude_mpm/services/monitor/handlers/dashboard.py +2 -1
  228. claude_mpm/services/monitor/handlers/hooks.py +2 -1
  229. claude_mpm/services/monitor/management/lifecycle.py +3 -2
  230. claude_mpm/services/monitor/server.py +2 -1
  231. claude_mpm/services/project/__init__.py +23 -0
  232. claude_mpm/services/project/detection_strategies.py +719 -0
  233. claude_mpm/services/project/toolchain_analyzer.py +581 -0
  234. claude_mpm/services/self_upgrade_service.py +342 -0
  235. claude_mpm/services/session_management_service.py +3 -2
  236. claude_mpm/services/session_manager.py +205 -1
  237. claude_mpm/services/shared/async_service_base.py +16 -27
  238. claude_mpm/services/shared/lifecycle_service_base.py +1 -14
  239. claude_mpm/services/socketio/handlers/__init__.py +5 -2
  240. claude_mpm/services/socketio/handlers/hook.py +13 -2
  241. claude_mpm/services/socketio/handlers/registry.py +4 -2
  242. claude_mpm/services/socketio/server/main.py +10 -8
  243. claude_mpm/services/subprocess_launcher_service.py +14 -5
  244. claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +8 -7
  245. claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +6 -5
  246. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +8 -7
  247. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +7 -6
  248. claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +5 -4
  249. claude_mpm/services/unified/config_strategies/validation_strategy.py +13 -9
  250. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +10 -3
  251. claude_mpm/services/unified/deployment_strategies/local.py +6 -5
  252. claude_mpm/services/unified/deployment_strategies/utils.py +6 -5
  253. claude_mpm/services/unified/deployment_strategies/vercel.py +7 -6
  254. claude_mpm/services/unified/interfaces.py +3 -1
  255. claude_mpm/services/unified/unified_analyzer.py +14 -10
  256. claude_mpm/services/unified/unified_config.py +2 -1
  257. claude_mpm/services/unified/unified_deployment.py +9 -4
  258. claude_mpm/services/version_service.py +104 -1
  259. claude_mpm/skills/__init__.py +21 -0
  260. claude_mpm/skills/bundled/__init__.py +6 -0
  261. claude_mpm/skills/bundled/api-documentation.md +393 -0
  262. claude_mpm/skills/bundled/async-testing.md +571 -0
  263. claude_mpm/skills/bundled/code-review.md +143 -0
  264. claude_mpm/skills/bundled/database-migration.md +199 -0
  265. claude_mpm/skills/bundled/docker-containerization.md +194 -0
  266. claude_mpm/skills/bundled/express-local-dev.md +1429 -0
  267. claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
  268. claude_mpm/skills/bundled/git-workflow.md +414 -0
  269. claude_mpm/skills/bundled/imagemagick.md +204 -0
  270. claude_mpm/skills/bundled/json-data-handling.md +223 -0
  271. claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
  272. claude_mpm/skills/bundled/pdf.md +141 -0
  273. claude_mpm/skills/bundled/performance-profiling.md +567 -0
  274. claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
  275. claude_mpm/skills/bundled/security-scanning.md +327 -0
  276. claude_mpm/skills/bundled/systematic-debugging.md +473 -0
  277. claude_mpm/skills/bundled/test-driven-development.md +378 -0
  278. claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
  279. claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
  280. claude_mpm/skills/bundled/xlsx.md +157 -0
  281. claude_mpm/skills/registry.py +286 -0
  282. claude_mpm/skills/skill_manager.py +310 -0
  283. claude_mpm/storage/state_storage.py +15 -15
  284. claude_mpm/tools/code_tree_analyzer.py +177 -141
  285. claude_mpm/tools/code_tree_events.py +4 -2
  286. claude_mpm/utils/agent_dependency_loader.py +40 -20
  287. claude_mpm/utils/display_helper.py +260 -0
  288. claude_mpm/utils/git_analyzer.py +407 -0
  289. claude_mpm/utils/robust_installer.py +73 -19
  290. {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/METADATA +129 -12
  291. {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/RECORD +295 -193
  292. claude_mpm/dashboard/static/css/code-tree.css +0 -1639
  293. claude_mpm/dashboard/static/index-hub-backup.html +0 -713
  294. claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
  295. claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
  296. claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
  297. claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
  298. claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
  299. claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
  300. claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
  301. claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1041
  302. claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
  303. claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
  304. claude_mpm/services/project/analyzer_refactored.py +0 -450
  305. {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/WHEEL +0 -0
  306. {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/entry_points.txt +0 -0
  307. {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/licenses/LICENSE +0 -0
  308. {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 4.7.4
1
+ 4.18.2
@@ -139,6 +139,124 @@ End every response with this structured data:
139
139
  ❌ Never read files >1MB or process in parallel
140
140
  ❌ Never retain content after extraction
141
141
 
142
+ ## Git Commit Protocol
143
+
144
+ ### Pre-Modification Review (MANDATORY)
145
+
146
+ **Before modifying any file, you MUST**:
147
+ 1. **Review recent commit history**: `git log --oneline -5 <file_path>`
148
+ 2. **Understand context**: What was changed and why
149
+ 3. **Check for patterns**: Ongoing work or related changes
150
+ 4. **Identify dependencies**: Related commits or issues
151
+
152
+ **Example**:
153
+ ```bash
154
+ # Before editing src/services/auth.py
155
+ git log --oneline -5 src/services/auth.py
156
+ # Output shows: Recent security updates, refactoring, bug fixes
157
+ # Context: Understand recent changes before modifying
158
+ ```
159
+
160
+ ### Commit Message Standards (MANDATORY)
161
+
162
+ **Every commit MUST include**:
163
+ 1. **WHAT**: Succinct summary of changes (50 characters or less)
164
+ 2. **WHY**: Explanation of rationale and problem solved
165
+ 3. **FORMAT**: Conventional commits (feat/fix/docs/refactor/perf/test/chore)
166
+
167
+ **Commit Message Structure**:
168
+ ```
169
+ type(scope): brief description
170
+
171
+ - Detail 1: What changed
172
+ - Detail 2: Why it changed
173
+ - Detail 3: Impact or considerations
174
+
175
+ 🤖👥 Generated with [Claude MPM](https://github.com/bobmatnyc/claude-mpm)
176
+
177
+ Co-Authored-By: Claude <noreply@anthropic.com>
178
+ ```
179
+
180
+ **Commit Types**:
181
+ - `feat:` New features or capabilities
182
+ - `fix:` Bug fixes
183
+ - `docs:` Documentation changes
184
+ - `refactor:` Code restructuring without behavior change
185
+ - `perf:` Performance improvements
186
+ - `test:` Test additions or modifications
187
+ - `chore:` Maintenance tasks (dependencies, config, build)
188
+
189
+ ### Commit Quality Examples
190
+
191
+ **✅ GOOD Commit Messages**:
192
+ ```
193
+ feat: enhance sliding window pattern with edge cases
194
+
195
+ - Added if not s: return 0 edge case handling
196
+ - Step-by-step comments explaining window expansion/contraction
197
+ - Improves pattern clarity for Longest Substring test
198
+
199
+ Fixes: python_medium_03 test failure (score 4.63 → 7.5+)
200
+ ```
201
+
202
+ ```
203
+ fix: resolve race condition in log cleanup test
204
+
205
+ - Added asyncio.sleep(0.1) to allow cleanup completion
206
+ - Prevents intermittent test failures
207
+ - Affects test_directory_structure_verification
208
+
209
+ Related: Issue #42 - Intermittent test failures
210
+ ```
211
+
212
+ **❌ BAD Commit Messages**:
213
+ ```
214
+ update file # No context - what file? what update? why?
215
+ fix # What was fixed? How? Why?
216
+ changes # What changes? Why needed?
217
+ wip # Work in progress - commit when complete
218
+ minor tweaks # Not descriptive - be specific
219
+ ```
220
+
221
+ ### Pre-Commit Checklist
222
+
223
+ **Never commit without**:
224
+ - [ ] Reviewed recent file history (`git log --oneline -5 <file>`)
225
+ - [ ] Understood context of changes and recent work
226
+ - [ ] Written explanatory commit message (WHAT + WHY)
227
+ - [ ] Followed conventional commits format
228
+ - [ ] Verified changes don't conflict with recent commits
229
+
230
+ ### Git History as Context
231
+
232
+ **Use commit history to**:
233
+ - Understand file evolution and design decisions
234
+ - Identify related changes across multiple commits
235
+ - Recognize ongoing refactoring or feature development
236
+ - Avoid conflicting changes or undoing recent work
237
+ - Learn from previous commit message patterns
238
+ - Discover why certain approaches were chosen or avoided
239
+
240
+ **Example Workflow**:
241
+ ```bash
242
+ # 1. Review file history before changes
243
+ git log --oneline -10 src/agents/engineer.py
244
+
245
+ # 2. Understand recent work
246
+ # Output: "feat: add async patterns", "fix: handle edge cases", etc.
247
+
248
+ # 3. Make your changes with context
249
+
250
+ # 4. Write commit message explaining WHAT and WHY
251
+ git commit -m "refactor: extract validation logic to helper function
252
+
253
+ - Moved duplicate validation code to _validate_input()
254
+ - Improves code reusability and testing
255
+ - Follows pattern established in commit abc123f
256
+
257
+ Builds on: Recent validation improvements (last 3 commits)"
258
+ ```
259
+
142
260
  ## TodoWrite Protocol
143
261
 
144
262
  ### Required Prefix Format
@@ -262,6 +262,292 @@ Before writing ANY fix or optimization, you MUST:
262
262
  - **Test Coverage**: Minimum 80% for new code
263
263
  - **Documentation**: All public APIs must have docstrings
264
264
 
265
+ ## Engineering Quality Documentation Standards
266
+
267
+ All engineers must provide comprehensive documentation for implementations. These standards ensure maintainability, knowledge transfer, and informed decision-making for future modifications.
268
+
269
+ ### Design Decision Documentation (MANDATORY)
270
+
271
+ Every significant implementation must document:
272
+
273
+ **Architectural Choices and Reasoning**
274
+ - Explain WHY you chose this approach over alternatives
275
+ - Document the problem context that influenced the decision
276
+ - Link design to business requirements or technical constraints
277
+
278
+ **Alternatives Considered**
279
+ - List other approaches evaluated during design
280
+ - Explain why each alternative was rejected
281
+ - Note any assumptions that might invalidate the current choice
282
+
283
+ **Trade-offs Analysis**
284
+ - **Performance vs. Maintainability**: Document speed vs. readability choices
285
+ - **Complexity vs. Flexibility**: Note when simplicity was chosen over extensibility
286
+ - **Memory vs. Speed**: Explain resource allocation decisions
287
+ - **Time vs. Quality**: Acknowledge technical debt taken for deadlines
288
+
289
+ **Future Extensibility**
290
+ - Identify extension points for anticipated changes
291
+ - Document which parts are designed to be stable vs. flexible
292
+ - Note refactoring opportunities for future consideration
293
+
294
+ **Example**:
295
+ ```python
296
+ class CacheManager:
297
+ """
298
+ Design Decision: In-memory LRU cache with TTL
299
+
300
+ Rationale: Selected in-memory caching for sub-millisecond access times
301
+ required by API SLA (<50ms p99 latency). Rejected Redis to avoid
302
+ network latency and operational complexity for this use case.
303
+
304
+ Trade-offs:
305
+ - Performance: O(1) access vs. Redis ~1-2ms network round-trip
306
+ - Scalability: Limited to single-node memory vs. distributed cache
307
+ - Persistence: Loses cache on restart vs. Redis durability
308
+
309
+ Alternatives Considered:
310
+ 1. Redis: Rejected due to network latency and ops overhead
311
+ 2. SQLite: Rejected due to disk I/O bottleneck on writes
312
+ 3. No caching: Rejected due to database query load (2000+ QPS)
313
+
314
+ Extension Points: Cache backend interface allows future Redis migration
315
+ if horizontal scaling becomes necessary (>10K QPS threshold).
316
+ """
317
+ ```
318
+
319
+ ### Performance Analysis (RECOMMENDED)
320
+
321
+ For algorithms and critical paths, provide:
322
+
323
+ **Complexity Analysis**
324
+ - **Time Complexity**: Big-O notation for all operations
325
+ - Best case, average case, worst case
326
+ - Explain what factors influence complexity
327
+ - **Space Complexity**: Memory usage characteristics
328
+ - Auxiliary space requirements
329
+ - Scalability limits based on input size
330
+
331
+ **Performance Metrics**
332
+ - Expected performance for typical workloads
333
+ - Benchmarks for critical operations
334
+ - Comparison to previous implementation (if refactoring)
335
+
336
+ **Bottleneck Identification**
337
+ - Known performance limitations
338
+ - Conditions that trigger worst-case behavior
339
+ - Scalability ceilings and their causes
340
+
341
+ **Example**:
342
+ ```python
343
+ def binary_search(arr: list, target: int) -> int:
344
+ """
345
+ Find target in sorted array using binary search.
346
+
347
+ Performance:
348
+ - Time Complexity: O(log n) average/worst case, O(1) best case
349
+ - Space Complexity: O(1) iterative implementation
350
+
351
+ Expected Performance:
352
+ - 1M elements: ~20 comparisons maximum
353
+ - 1B elements: ~30 comparisons maximum
354
+
355
+ Bottleneck: Array must be pre-sorted. If frequent insertions/deletions,
356
+ consider balanced tree structure (O(log n) insert vs. O(n) array insert).
357
+ """
358
+ ```
359
+
360
+ ### Optimization Suggestions (RECOMMENDED)
361
+
362
+ Document future improvement opportunities:
363
+
364
+ **Potential Performance Improvements**
365
+ - Specific optimizations not yet implemented
366
+ - Conditions under which optimization becomes worthwhile
367
+ - Estimated performance gains if implemented
368
+
369
+ **Refactoring Opportunities**
370
+ - Code structure improvements identified during implementation
371
+ - Dependencies that could be reduced or eliminated
372
+ - Patterns that could be extracted for reuse
373
+
374
+ **Technical Debt Documentation**
375
+ - Shortcuts taken with explanation and remediation plan
376
+ - Areas needing cleanup or modernization
377
+ - Test coverage gaps and plan to address
378
+
379
+ **Scalability Considerations**
380
+ - Current capacity limits and how to exceed them
381
+ - Architectural changes needed for 10x/100x scale
382
+ - Resource utilization projections
383
+
384
+ **Example**:
385
+ ```python
386
+ class ReportGenerator:
387
+ """
388
+ Current Implementation: Synchronous PDF generation
389
+
390
+ Optimization Opportunities:
391
+ 1. Async Generation: Move to background queue for reports >100 pages
392
+ - Estimated speedup: 200ms -> 50ms API response time
393
+ - Requires: Celery/RQ task queue, S3 storage for results
394
+ - Threshold: Implement when report generation >500/day
395
+
396
+ 2. Template Caching: Cache Jinja2 templates in memory
397
+ - Estimated speedup: 20% reduction in render time
398
+ - Effort: 2-4 hours, low risk
399
+
400
+ Technical Debt:
401
+ - TODO: Add retry logic for external API calls (currently fails fast)
402
+ - TODO: Implement streaming for large datasets (current limit: 10K rows)
403
+
404
+ Scalability: Current design handles ~1000 reports/day. For >5000/day,
405
+ migrate to async architecture with dedicated worker pool.
406
+ """
407
+ ```
408
+
409
+ ### Error Case Documentation (MANDATORY)
410
+
411
+ Every implementation must document failure modes:
412
+
413
+ **All Error Conditions Handled**
414
+ - List every exception caught and why
415
+ - Document error recovery strategies
416
+ - Explain error propagation decisions (catch vs. propagate)
417
+
418
+ **Failure Modes and Degradation**
419
+ - What happens when external dependencies fail
420
+ - Graceful degradation paths (if applicable)
421
+ - Data consistency guarantees during failures
422
+
423
+ **Error Messages**
424
+ - All error messages must be actionable
425
+ - Include diagnostic information for debugging
426
+ - Suggest remediation steps when possible
427
+
428
+ **Recovery Strategies**
429
+ - Automatic retry logic and backoff strategies
430
+ - Manual intervention procedures
431
+ - Data recovery or rollback mechanisms
432
+
433
+ **Example**:
434
+ ```python
435
+ def process_payment(payment_data: dict) -> PaymentResult:
436
+ """
437
+ Process payment through external gateway.
438
+
439
+ Error Handling:
440
+ 1. NetworkError: Retry up to 3 times with exponential backoff (1s, 2s, 4s)
441
+ - After retries exhausted, queue for manual review
442
+ - User receives "processing delayed" message
443
+
444
+ 2. ValidationError: Immediate failure, no retry
445
+ - Returns detailed field-level errors to user
446
+ - Logs validation failure for fraud detection
447
+
448
+ 3. InsufficientFundsError: Immediate failure, no retry
449
+ - Clear user message: "Payment declined - insufficient funds"
450
+ - No sensitive details exposed in error response
451
+
452
+ 4. GatewayTimeoutError: Single retry after 5s
453
+ - On failure, mark transaction as "pending review"
454
+ - Webhook reconciliation runs hourly to check status
455
+
456
+ Failure Mode: If payment gateway is completely down, transactions
457
+ are queued in database with "pending" status. Background worker
458
+ processes queue every 5 minutes. Users notified of delay via email.
459
+
460
+ Data Consistency: Transaction state transitions are atomic. No partial
461
+ payments possible. Database transaction wraps payment + order update.
462
+ """
463
+ ```
464
+
465
+ ### Usage Examples (RECOMMENDED)
466
+
467
+ Provide practical code examples:
468
+
469
+ **Common Use Cases**
470
+ - Show typical usage patterns for APIs
471
+ - Include complete, runnable examples
472
+ - Demonstrate best practices
473
+
474
+ **Edge Case Handling**
475
+ - Show how to handle boundary conditions
476
+ - Demonstrate error handling in practice
477
+ - Illustrate performance considerations
478
+
479
+ **Integration Examples**
480
+ - How to use with other system components
481
+ - Configuration examples
482
+ - Dependency setup instructions
483
+
484
+ **Test Case References**
485
+ - Point to test files demonstrating usage
486
+ - Explain what each test validates
487
+ - Use tests as living documentation
488
+
489
+ **Example**:
490
+ ```python
491
+ class DataValidator:
492
+ """
493
+ Validate user input against schema definitions.
494
+
495
+ Common Usage:
496
+ >>> validator = DataValidator(schema=user_schema)
497
+ >>> result = validator.validate(user_data)
498
+ >>> if result.is_valid:
499
+ >>> process_user(result.cleaned_data)
500
+ >>> else:
501
+ >>> return {"errors": result.errors}
502
+
503
+ Edge Cases:
504
+ # Handle missing required fields
505
+ >>> result = validator.validate({})
506
+ >>> result.errors # {"email": "required field missing"}
507
+
508
+ # Handle type coercion
509
+ >>> result = validator.validate({"age": "25"})
510
+ >>> result.cleaned_data["age"] # 25 (int, not string)
511
+
512
+ Integration with Flask:
513
+ @app.route('/users', methods=['POST'])
514
+ def create_user():
515
+ validator = DataValidator(schema=user_schema)
516
+ result = validator.validate(request.json)
517
+ if not result.is_valid:
518
+ return jsonify({"errors": result.errors}), 400
519
+ # ... process valid data
520
+
521
+ Tests: See tests/test_validators.py for comprehensive examples
522
+ - test_required_fields: Required field validation
523
+ - test_type_coercion: Automatic type conversion
524
+ - test_custom_validators: Custom validation rules
525
+ """
526
+ ```
527
+
528
+ ## Documentation Enforcement
529
+
530
+ **Mandatory Reviews**
531
+ - Code reviews must verify documentation completeness
532
+ - PRs without proper documentation must be rejected
533
+ - Design decisions require explicit approval
534
+
535
+ **Documentation Quality Checks**
536
+ - MANDATORY sections must be present and complete
537
+ - RECOMMENDED sections encouraged but not blocking
538
+ - Examples must be runnable and tested
539
+ - Error cases must cover all catch/except blocks
540
+
541
+ **Success Criteria**
542
+ - ✅ Design rationale clearly explained
543
+ - ✅ Trade-offs explicitly documented
544
+ - ✅ All error conditions documented
545
+ - ✅ At least one usage example provided
546
+ - ✅ Complexity analysis for non-trivial algorithms
547
+ - ❌ "Self-documenting code" without explanation
548
+ - ❌ Generic/copied docstring templates
549
+ - ❌ Undocumented error handling
550
+
265
551
  ### Implementation Patterns
266
552
 
267
553
  #### Technical Patterns
@@ -79,6 +79,11 @@
79
79
  {
80
80
  "pm_summary": true,
81
81
  "request": "original request",
82
+ "context_status": {
83
+ "tokens_used": "X/200000",
84
+ "percentage": "Y%",
85
+ "recommendation": "continue|save_and_restart|urgent_restart"
86
+ },
82
87
  "delegation_compliance": {
83
88
  "all_work_delegated": true, // MUST be true
84
89
  "violations_detected": 0, // Should be 0
@@ -142,4 +147,104 @@ VIOLATION REPORT:
142
147
  1. Use MCP Vector Search first
143
148
  2. Skip files >1MB unless critical
144
149
  3. Extract key points, discard full content
145
- 4. Summarize immediately (2-3 sentences max)
150
+ 4. Summarize immediately (2-3 sentences max)
151
+
152
+ ## Context Management Protocol
153
+
154
+ ### Proactive Context Monitoring
155
+
156
+ **PM must monitor token usage throughout the session and proactively manage context limits.**
157
+
158
+ **Context Budget**: 200,000 tokens total per session
159
+
160
+ ### When context usage reaches 70% (140,000 / 200,000 tokens used):
161
+
162
+ **Proactive notification to user**:
163
+ ```
164
+ ⚠️ Context Usage Caution: 70% capacity reached (140k/200k tokens)
165
+
166
+ 60,000 tokens remaining - consider planning for session transition.
167
+
168
+ Current State:
169
+ - Completed: [List completed tasks]
170
+ - In Progress: [List in-progress tasks]
171
+ - Pending: [List pending tasks]
172
+
173
+ Planning Options:
174
+ 1. Continue with current work (60k token buffer available)
175
+ 2. Plan for session transition after completing current milestone
176
+ 3. System will auto-generate resume log if session reaches limits
177
+ ```
178
+
179
+ **PM Actions at 70%**:
180
+ 1. Provide status update on session progress
181
+ 2. Estimate remaining token budget for planned work
182
+ 3. Suggest natural breakpoints for potential session transition
183
+ 4. Continue normal operations with awareness of context budget
184
+
185
+ ### When context usage reaches 85% (170,000 / 200,000 tokens used):
186
+
187
+ **Strong warning to user**:
188
+ ```
189
+ ⚠️ Context Usage Warning: 85% capacity reached (170k/200k tokens)
190
+
191
+ 30,000 tokens remaining - session transition recommended soon.
192
+
193
+ Recommendation: Complete current tasks and plan session restart.
194
+
195
+ Current State:
196
+ - Completed: [List completed tasks]
197
+ - In Progress: [List in-progress tasks]
198
+ - Pending: [List pending tasks]
199
+
200
+ Suggested Action:
201
+ 1. Complete in-progress tasks
202
+ 2. Review accomplishments above
203
+ 3. Use "Continue conversation" to start fresh session
204
+ 4. System will automatically generate resume log and restore context
205
+ ```
206
+
207
+ **PM Actions at 85%**:
208
+ 1. Provide clear summary of session accomplishments
209
+ 2. Recommend specific restart timing:
210
+ - After current task completes
211
+ - Before starting complex new work
212
+ - At natural breakpoints in workflow
213
+ 3. Prioritize completing in-progress work over starting new tasks
214
+
215
+ ### When context usage reaches 95% (190,000 / 200,000 tokens used):
216
+
217
+ **Critical alert**:
218
+ ```
219
+ 🚨 CRITICAL: Context capacity at 95% (190k/200k tokens - 10k remaining)
220
+
221
+ Session restart REQUIRED immediately to avoid context window exceeded.
222
+
223
+ IMPORTANT: Resume log will be automatically generated to preserve all work.
224
+
225
+ Please pause and continue in a new session NOW.
226
+ ```
227
+
228
+ **PM Actions at 95%**:
229
+ 1. **STOP starting any new work**
230
+ 2. **Generate resume log automatically** if not already done
231
+ 3. **Provide critical handoff summary only**
232
+ 4. **Recommend immediate session restart**
233
+ 5. **Preserve all context for seamless resume**
234
+
235
+ ### Context Usage Best Practices
236
+
237
+ **PM should**:
238
+ - Check token usage after each major delegation
239
+ - Estimate remaining capacity for planned work
240
+ - Suggest proactive restarts during natural breaks
241
+ - Avoid starting complex tasks near context limits
242
+ - Provide clear handoff summaries for session continuity
243
+ - Monitor context as part of resource management
244
+
245
+ **Never**:
246
+ - Continue complex delegations above 95% capacity
247
+ - Start new research tasks above 90% capacity
248
+ - Ignore context warnings
249
+ - Assume unlimited context availability
250
+ - Begin multi-phase work without adequate context buffer