claude-mpm 4.21.3__py3-none-any.whl → 5.1.9__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 (517) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +12 -0
  3. claude_mpm/agents/{OUTPUT_STYLE.md → CLAUDE_MPM_OUTPUT_STYLE.md} +3 -48
  4. claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +2002 -0
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +1239 -674
  6. claude_mpm/agents/WORKFLOW.md +75 -2
  7. claude_mpm/agents/__init__.py +6 -0
  8. claude_mpm/agents/agent_loader.py +1 -4
  9. claude_mpm/agents/base_agent.json +6 -3
  10. claude_mpm/agents/base_agent_loader.py +10 -35
  11. claude_mpm/agents/frontmatter_validator.py +69 -1
  12. claude_mpm/agents/templates/circuit-breakers.md +1254 -0
  13. claude_mpm/agents/templates/context-management-examples.md +544 -0
  14. claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
  15. claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
  16. claude_mpm/agents/templates/research-gate-examples.md +669 -0
  17. claude_mpm/agents/templates/structured-questions-examples.md +615 -0
  18. claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
  19. claude_mpm/agents/templates/ticketing-examples.md +277 -0
  20. claude_mpm/cli/__init__.py +37 -2
  21. claude_mpm/cli/commands/__init__.py +2 -0
  22. claude_mpm/cli/commands/agent_source.py +774 -0
  23. claude_mpm/cli/commands/agent_state_manager.py +188 -30
  24. claude_mpm/cli/commands/agents.py +1128 -36
  25. claude_mpm/cli/commands/agents_cleanup.py +210 -0
  26. claude_mpm/cli/commands/agents_discover.py +338 -0
  27. claude_mpm/cli/commands/aggregate.py +1 -1
  28. claude_mpm/cli/commands/analyze.py +3 -3
  29. claude_mpm/cli/commands/auto_configure.py +537 -239
  30. claude_mpm/cli/commands/cleanup.py +1 -1
  31. claude_mpm/cli/commands/config.py +7 -4
  32. claude_mpm/cli/commands/configure.py +935 -45
  33. claude_mpm/cli/commands/configure_agent_display.py +4 -4
  34. claude_mpm/cli/commands/configure_navigation.py +63 -46
  35. claude_mpm/cli/commands/debug.py +12 -12
  36. claude_mpm/cli/commands/doctor.py +10 -2
  37. claude_mpm/cli/commands/hook_errors.py +277 -0
  38. claude_mpm/cli/commands/local_deploy.py +1 -4
  39. claude_mpm/cli/commands/mcp_install_commands.py +1 -1
  40. claude_mpm/cli/commands/mpm_init/core.py +50 -2
  41. claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
  42. claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
  43. claude_mpm/cli/commands/postmortem.py +401 -0
  44. claude_mpm/cli/commands/run.py +125 -167
  45. claude_mpm/cli/commands/skill_source.py +694 -0
  46. claude_mpm/cli/commands/skills.py +757 -20
  47. claude_mpm/cli/executor.py +78 -3
  48. claude_mpm/cli/interactive/agent_wizard.py +1032 -47
  49. claude_mpm/cli/parsers/agent_source_parser.py +171 -0
  50. claude_mpm/cli/parsers/agents_parser.py +310 -4
  51. claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
  52. claude_mpm/cli/parsers/base_parser.py +53 -0
  53. claude_mpm/cli/parsers/config_parser.py +96 -43
  54. claude_mpm/cli/parsers/skill_source_parser.py +169 -0
  55. claude_mpm/cli/parsers/skills_parser.py +145 -0
  56. claude_mpm/cli/parsers/source_parser.py +138 -0
  57. claude_mpm/cli/startup.py +564 -108
  58. claude_mpm/cli/startup_display.py +480 -0
  59. claude_mpm/cli/utils.py +1 -1
  60. claude_mpm/cli_module/commands.py +1 -1
  61. claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
  62. claude_mpm/commands/mpm-agents-detect.md +9 -0
  63. claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
  64. claude_mpm/commands/mpm-agents-recommend.md +9 -0
  65. claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
  66. claude_mpm/commands/mpm-doctor.md +9 -0
  67. claude_mpm/commands/mpm-help.md +14 -2
  68. claude_mpm/commands/mpm-init.md +27 -2
  69. claude_mpm/commands/mpm-monitor.md +9 -0
  70. claude_mpm/commands/mpm-postmortem.md +123 -0
  71. claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
  72. claude_mpm/commands/mpm-status.md +9 -0
  73. claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
  74. claude_mpm/commands/mpm-ticket-view.md +552 -0
  75. claude_mpm/commands/mpm-version.md +9 -0
  76. claude_mpm/commands/mpm.md +10 -0
  77. claude_mpm/config/agent_presets.py +488 -0
  78. claude_mpm/config/agent_sources.py +325 -0
  79. claude_mpm/config/skill_presets.py +392 -0
  80. claude_mpm/config/skill_sources.py +590 -0
  81. claude_mpm/constants.py +13 -0
  82. claude_mpm/core/api_validator.py +1 -1
  83. claude_mpm/core/claude_runner.py +19 -35
  84. claude_mpm/core/config.py +24 -0
  85. claude_mpm/core/constants.py +1 -1
  86. claude_mpm/core/framework/__init__.py +3 -16
  87. claude_mpm/core/framework/loaders/file_loader.py +54 -101
  88. claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
  89. claude_mpm/core/framework/processors/metadata_processor.py +1 -1
  90. claude_mpm/core/hook_error_memory.py +381 -0
  91. claude_mpm/core/hook_manager.py +41 -2
  92. claude_mpm/core/interactive_session.py +131 -10
  93. claude_mpm/core/logger.py +3 -1
  94. claude_mpm/core/oneshot_session.py +110 -8
  95. claude_mpm/core/output_style_manager.py +173 -43
  96. claude_mpm/core/protocols/__init__.py +23 -0
  97. claude_mpm/core/protocols/runner_protocol.py +103 -0
  98. claude_mpm/core/protocols/session_protocol.py +131 -0
  99. claude_mpm/core/shared/singleton_manager.py +11 -4
  100. claude_mpm/core/system_context.py +38 -0
  101. claude_mpm/core/unified_agent_registry.py +129 -1
  102. claude_mpm/core/unified_config.py +22 -0
  103. claude_mpm/dashboard/static/css/activity.css +69 -69
  104. claude_mpm/dashboard/static/css/connection-status.css +10 -10
  105. claude_mpm/dashboard/static/css/dashboard.css +15 -15
  106. claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
  107. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
  108. claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
  109. claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
  110. claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
  111. claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
  112. claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
  113. claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
  114. claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
  115. claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
  116. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
  117. claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
  118. claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
  119. claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
  120. claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
  121. claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
  122. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
  123. claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
  124. claude_mpm/dashboard/static/js/connection-manager.js +76 -76
  125. claude_mpm/dashboard/static/js/dashboard.js +76 -58
  126. claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
  127. claude_mpm/dashboard/static/js/socket-client.js +138 -121
  128. claude_mpm/dashboard/templates/code_simple.html +23 -23
  129. claude_mpm/dashboard/templates/index.html +18 -18
  130. claude_mpm/experimental/cli_enhancements.py +1 -5
  131. claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
  132. claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
  133. claude_mpm/hooks/claude_hooks/installer.py +45 -0
  134. claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
  135. claude_mpm/hooks/failure_learning/__init__.py +2 -8
  136. claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
  137. claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
  138. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
  139. claude_mpm/hooks/kuzu_response_hook.py +1 -5
  140. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  141. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  142. claude_mpm/models/agent_definition.py +7 -0
  143. claude_mpm/models/git_repository.py +198 -0
  144. claude_mpm/scripts/claude-hook-handler.sh +3 -3
  145. claude_mpm/scripts/start_activity_logging.py +3 -1
  146. claude_mpm/services/agents/agent_builder.py +45 -9
  147. claude_mpm/services/agents/agent_preset_service.py +238 -0
  148. claude_mpm/services/agents/agent_selection_service.py +484 -0
  149. claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
  150. claude_mpm/services/agents/cache_git_manager.py +621 -0
  151. claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
  152. claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
  153. claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
  154. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
  155. claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
  156. claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
  157. claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
  158. claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
  159. claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
  160. claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
  161. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +225 -18
  162. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
  163. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
  164. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +557 -0
  165. claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
  166. claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
  167. claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
  168. claude_mpm/services/agents/git_source_manager.py +629 -0
  169. claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
  170. claude_mpm/services/agents/local_template_manager.py +50 -10
  171. claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
  172. claude_mpm/services/agents/sources/__init__.py +13 -0
  173. claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
  174. claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
  175. claude_mpm/services/agents/startup_sync.py +239 -0
  176. claude_mpm/services/agents/toolchain_detector.py +474 -0
  177. claude_mpm/services/analysis/__init__.py +25 -0
  178. claude_mpm/services/analysis/postmortem_reporter.py +474 -0
  179. claude_mpm/services/analysis/postmortem_service.py +765 -0
  180. claude_mpm/services/cli/session_pause_manager.py +1 -1
  181. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  182. claude_mpm/services/command_deployment_service.py +200 -6
  183. claude_mpm/services/core/base.py +7 -2
  184. claude_mpm/services/core/interfaces/__init__.py +1 -3
  185. claude_mpm/services/core/interfaces/health.py +1 -4
  186. claude_mpm/services/core/models/__init__.py +2 -11
  187. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  188. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  189. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  190. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  191. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  192. claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
  193. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  194. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  195. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  196. claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
  197. claude_mpm/services/event_bus/direct_relay.py +3 -3
  198. claude_mpm/services/event_bus/event_bus.py +36 -3
  199. claude_mpm/services/events/consumers/logging.py +1 -2
  200. claude_mpm/services/git/__init__.py +21 -0
  201. claude_mpm/services/git/git_operations_service.py +494 -0
  202. claude_mpm/services/github/__init__.py +21 -0
  203. claude_mpm/services/github/github_cli_service.py +397 -0
  204. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  205. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  206. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  207. claude_mpm/services/instructions/__init__.py +9 -0
  208. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  209. claude_mpm/services/local_ops/__init__.py +3 -13
  210. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  211. claude_mpm/services/local_ops/health_manager.py +1 -4
  212. claude_mpm/services/local_ops/process_manager.py +1 -1
  213. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  214. claude_mpm/services/mcp_config_manager.py +75 -145
  215. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  216. claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
  217. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  218. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  219. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  220. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  221. claude_mpm/services/mcp_service_verifier.py +6 -3
  222. claude_mpm/services/memory/optimizer.py +1 -1
  223. claude_mpm/services/model/model_router.py +8 -9
  224. claude_mpm/services/monitor/daemon.py +29 -9
  225. claude_mpm/services/monitor/daemon_manager.py +96 -19
  226. claude_mpm/services/monitor/server.py +2 -2
  227. claude_mpm/services/native_agent_converter.py +356 -0
  228. claude_mpm/services/port_manager.py +1 -1
  229. claude_mpm/services/pr/__init__.py +14 -0
  230. claude_mpm/services/pr/pr_template_service.py +329 -0
  231. claude_mpm/services/project/documentation_manager.py +2 -1
  232. claude_mpm/services/project/project_organizer.py +4 -0
  233. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  234. claude_mpm/services/runner_configuration_service.py +17 -3
  235. claude_mpm/services/self_upgrade_service.py +165 -7
  236. claude_mpm/services/session_management_service.py +16 -4
  237. claude_mpm/services/skills/__init__.py +18 -0
  238. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  239. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  240. claude_mpm/services/skills_config.py +547 -0
  241. claude_mpm/services/skills_deployer.py +955 -0
  242. claude_mpm/services/socketio/handlers/connection.py +1 -1
  243. claude_mpm/services/socketio/handlers/git.py +2 -2
  244. claude_mpm/services/socketio/server/core.py +1 -4
  245. claude_mpm/services/socketio/server/main.py +1 -3
  246. claude_mpm/services/system_instructions_service.py +1 -3
  247. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  248. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  249. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  250. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  251. claude_mpm/services/unified/unified_deployment.py +1 -5
  252. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  253. claude_mpm/services/visualization/__init__.py +1 -5
  254. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  255. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  256. claude_mpm/skills/bundled/performance-profiling.md +6 -0
  257. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
  258. claude_mpm/skills/skills_registry.py +0 -1
  259. claude_mpm/templates/questions/__init__.py +38 -0
  260. claude_mpm/templates/questions/base.py +193 -0
  261. claude_mpm/templates/questions/pr_strategy.py +311 -0
  262. claude_mpm/templates/questions/project_init.py +385 -0
  263. claude_mpm/templates/questions/ticket_mgmt.py +394 -0
  264. claude_mpm/tools/__main__.py +8 -8
  265. claude_mpm/tools/code_tree_analyzer/analysis.py +1 -1
  266. claude_mpm/utils/agent_dependency_loader.py +80 -13
  267. claude_mpm/utils/agent_filters.py +288 -0
  268. claude_mpm/utils/dependency_cache.py +3 -1
  269. claude_mpm/utils/gitignore.py +244 -0
  270. claude_mpm/utils/log_cleanup.py +3 -3
  271. claude_mpm/utils/migration.py +372 -0
  272. claude_mpm/utils/progress.py +387 -0
  273. claude_mpm/utils/robust_installer.py +3 -5
  274. claude_mpm/utils/structured_questions.py +619 -0
  275. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/METADATA +496 -65
  276. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/RECORD +284 -443
  277. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  278. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  279. claude_mpm/agents/templates/agent-manager.json +0 -273
  280. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  281. claude_mpm/agents/templates/api_qa.json +0 -180
  282. claude_mpm/agents/templates/circuit_breakers.md +0 -638
  283. claude_mpm/agents/templates/clerk-ops.json +0 -235
  284. claude_mpm/agents/templates/code_analyzer.json +0 -101
  285. claude_mpm/agents/templates/content-agent.json +0 -358
  286. claude_mpm/agents/templates/dart_engineer.json +0 -307
  287. claude_mpm/agents/templates/data_engineer.json +0 -225
  288. claude_mpm/agents/templates/documentation.json +0 -211
  289. claude_mpm/agents/templates/engineer.json +0 -210
  290. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  291. claude_mpm/agents/templates/golang_engineer.json +0 -270
  292. claude_mpm/agents/templates/imagemagick.json +0 -264
  293. claude_mpm/agents/templates/java_engineer.json +0 -346
  294. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  295. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  296. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  297. claude_mpm/agents/templates/memory_manager.json +0 -158
  298. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  299. claude_mpm/agents/templates/ops.json +0 -185
  300. claude_mpm/agents/templates/php-engineer.json +0 -287
  301. claude_mpm/agents/templates/product_owner.json +0 -338
  302. claude_mpm/agents/templates/project_organizer.json +0 -140
  303. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  304. claude_mpm/agents/templates/python_engineer.json +0 -387
  305. claude_mpm/agents/templates/qa.json +0 -242
  306. claude_mpm/agents/templates/react_engineer.json +0 -238
  307. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  308. claude_mpm/agents/templates/research.json +0 -188
  309. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  310. claude_mpm/agents/templates/rust_engineer.json +0 -275
  311. claude_mpm/agents/templates/security.json +0 -202
  312. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  313. claude_mpm/agents/templates/ticketing.json +0 -177
  314. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  315. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  316. claude_mpm/agents/templates/version_control.json +0 -157
  317. claude_mpm/agents/templates/web_qa.json +0 -399
  318. claude_mpm/agents/templates/web_ui.json +0 -189
  319. claude_mpm/commands/mpm-tickets.md +0 -102
  320. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  321. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  322. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  323. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  324. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  325. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  326. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  327. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  328. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  329. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  330. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  331. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  332. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  333. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  334. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  335. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  336. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  337. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  338. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  339. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  340. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  341. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  342. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  343. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  344. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  345. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  346. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  347. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  348. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  349. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  350. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  351. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  352. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  353. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  354. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  355. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  356. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  357. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  358. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  359. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  360. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  361. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  362. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  363. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  364. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  365. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  366. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  367. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  368. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  369. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  370. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  371. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  372. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  373. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  374. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  375. claude_mpm/dashboard/static/built/react/events.js +0 -30
  376. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  377. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  378. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  379. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  380. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  381. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  382. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  383. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  384. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  385. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  386. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  387. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  388. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  389. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  390. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  391. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  392. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  393. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  394. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  395. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  396. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  397. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  398. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  399. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  400. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  401. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  402. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  403. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  404. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  405. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  406. claude_mpm/dashboard/static/events.html +0 -607
  407. claude_mpm/dashboard/static/index.html +0 -635
  408. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  409. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  410. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  411. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  412. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  413. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  414. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  415. claude_mpm/dashboard/static/legacy/files.html +0 -747
  416. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  417. claude_mpm/dashboard/static/monitors.html +0 -431
  418. claude_mpm/dashboard/static/production/events.html +0 -659
  419. claude_mpm/dashboard/static/production/main.html +0 -698
  420. claude_mpm/dashboard/static/production/monitors.html +0 -483
  421. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  422. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  423. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  424. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  425. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  426. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  427. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  428. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  429. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  430. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  431. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  432. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  433. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  434. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  435. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  436. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  437. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  438. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  439. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  440. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  441. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  442. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  443. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  444. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  445. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  446. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  447. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  448. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  449. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  450. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  451. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  452. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  453. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  454. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  455. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  456. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  457. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  458. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  459. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  460. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  461. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  462. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  463. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  464. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  465. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  466. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  467. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  468. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  469. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  470. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  471. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
  472. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
  473. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
  474. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
  475. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
  476. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
  477. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
  478. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
  479. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
  480. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
  481. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
  482. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
  483. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
  484. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  485. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  486. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  487. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  488. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  489. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  490. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  491. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  492. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  493. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  494. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  495. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  496. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  497. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  498. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  499. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  500. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  501. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  502. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  503. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  504. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  505. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  506. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  507. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  508. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  509. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  510. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  511. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  512. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  513. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  514. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/WHEEL +0 -0
  515. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/entry_points.txt +0 -0
  516. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/licenses/LICENSE +0 -0
  517. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,139 @@
1
+ # Ticket Completeness Protocol Examples
2
+
3
+ ## ✅ COMPLETE TICKET (Passes Zero PM Context Test)
4
+
5
+ ```
6
+ Ticket: PROJ-123 "Implement OAuth2 authentication"
7
+
8
+ Description:
9
+ Add OAuth2 authentication flow to user login system.
10
+
11
+ ACCEPTANCE CRITERIA:
12
+ - Users can log in via OAuth2 with Google and GitHub providers
13
+ - Existing username/password login continues to work
14
+ - OAuth2 tokens stored securely in database
15
+ - Token refresh implemented for expired tokens
16
+ - All existing tests pass + new OAuth2 tests added
17
+ - Performance: OAuth2 login completes in < 2 seconds
18
+
19
+ TECHNICAL CONTEXT (Comment):
20
+ Code Patterns:
21
+ - Follow existing auth patterns in src/auth/strategies/
22
+ - Use passport-oauth2 library (already in dependencies)
23
+ - Token storage follows pattern in src/models/auth_token.py
24
+
25
+ Files to Modify:
26
+ - src/auth/strategies/oauth2.py (create new)
27
+ - src/auth/router.py (add OAuth2 routes)
28
+ - src/models/user.py (add oauth_provider field)
29
+ - tests/test_auth_oauth2.py (create new)
30
+
31
+ Dependencies:
32
+ - passport-oauth2>=1.7.0 (already installed)
33
+ - No new dependencies required
34
+
35
+ RESEARCH FINDINGS (Comment):
36
+ OAuth2 Flow Analysis:
37
+ 1. Authorization Code Flow recommended (most secure)
38
+ 2. Google OAuth2: Requires client_id/secret (get from admin)
39
+ 3. GitHub OAuth2: Requires app registration (get from admin)
40
+ 4. Token refresh: Implement background job (runs every 24h)
41
+
42
+ Security Considerations:
43
+ - Store tokens encrypted at rest (use existing encryption service)
44
+ - Implement PKCE for mobile clients (future enhancement)
45
+ - Rate limit OAuth2 endpoints (5 attempts per minute)
46
+
47
+ Reference: https://oauth.net/2/ (see "Authorization Code Flow" section)
48
+
49
+ SUCCESS CRITERIA (Comment):
50
+ Verification Steps:
51
+ 1. User clicks "Login with Google" → redirected to Google consent
52
+ 2. User approves → redirected back with code → token exchange succeeds
53
+ 3. User profile populated from Google API
54
+ 4. Token stored in database (encrypted)
55
+ 5. User can access protected resources
56
+ 6. Token refresh runs automatically
57
+
58
+ Performance:
59
+ - OAuth2 login: < 2 seconds (measured with pytest-benchmark)
60
+ - Token refresh: < 500ms per token
61
+
62
+ DISCOVERED WORK SUMMARY (Comment):
63
+ In-Scope (Created Subtasks):
64
+ - PROJ-124: Add OAuth2 provider configuration UI
65
+ - PROJ-125: Implement token refresh background job
66
+
67
+ Out-of-Scope (Separate Tickets):
68
+ - PROJ-126: Add OAuth2 support for Facebook (separate feature request)
69
+ - PROJ-127: Migrate existing users to OAuth2 (data migration project)
70
+
71
+ Deferred (Documented but not ticketed):
72
+ - PKCE for mobile clients (not needed for web app yet)
73
+ - Multi-factor auth (separate initiative)
74
+
75
+ Scope Decision: We focused ONLY on Google/GitHub OAuth2 for web app.
76
+ Mobile and Facebook support deferred to separate initiatives per user confirmation.
77
+ ```
78
+
79
+ **Engineer Assessment**: ✅ COMPLETE
80
+ - Can understand what to build? YES (acceptance criteria clear)
81
+ - Has research findings? YES (OAuth2 flow, security considerations)
82
+ - Has technical context? YES (code patterns, files to modify, dependencies)
83
+ - Knows success criteria? YES (verification steps, performance targets)
84
+ - Knows about discovered work? YES (subtasks created, scope documented)
85
+
86
+ ## ❌ INCOMPLETE TICKET (Fails Zero PM Context Test)
87
+
88
+ ```
89
+ Ticket: PROJ-123 "Implement OAuth2 authentication"
90
+
91
+ Description:
92
+ Add OAuth2 authentication flow to user login system.
93
+
94
+ (No comments, no attachments)
95
+ ```
96
+
97
+ **Engineer Assessment**: ❌ INCOMPLETE
98
+ - Can understand what to build? PARTIALLY (vague description)
99
+ - Has research findings? NO (which providers? what flow?)
100
+ - Has technical context? NO (which files? which libraries?)
101
+ - Knows success criteria? NO (how to verify? performance targets?)
102
+ - Knows about discovered work? NO (are there dependencies? follow-ups?)
103
+
104
+ **Engineer Questions for PM**:
105
+ 1. Which OAuth2 providers should I support?
106
+ 2. Which OAuth2 flow should I use?
107
+ 3. How do I store tokens? What encryption?
108
+ 4. Which files do I need to modify?
109
+ 5. What libraries should I use?
110
+ 6. How do I test this?
111
+ 7. Are there any follow-up tickets I should know about?
112
+
113
+ **PM Violation**: Ticket lacks ALL context. Engineer cannot proceed independently.
114
+
115
+ ## Attachment Decision Tree Examples
116
+
117
+ ### 📊 RESEARCH FINDINGS:
118
+ - Summary (< 500 words) → Attach as ticket comment
119
+ - Detailed analysis (> 500 words) → Save to docs/research/, link from ticket
120
+ - Architecture diagrams → Attach as comment (markdown or image link)
121
+ - Third-party docs → Reference URL in ticket comment with key excerpts
122
+
123
+ ### 💻 CODE ANALYSIS:
124
+ - Code patterns → Attach key examples as comment (code blocks)
125
+ - File locations → List in comment ("Files to modify: src/foo.py, tests/test_foo.py")
126
+ - Dependencies → List in comment with versions ("Requires: requests>=2.28.0")
127
+ - Integration points → Describe in comment with code examples
128
+
129
+ ### 🧪 QA/TEST RESULTS:
130
+ - Test output → Attach as comment (use code blocks)
131
+ - Bug reports → Create separate tickets, reference from original
132
+ - Performance benchmarks → Attach as comment with numbers
133
+ - Edge cases → List in comment with reproduction steps
134
+
135
+ ### ⚠️ DO NOT ATTACH (Reference Only):
136
+ - CLAUDE.md patterns → Reference only ("Follow auth patterns in CLAUDE.md")
137
+ - Project-wide conventions → Reference only ("See CONTRIBUTING.md")
138
+ - Existing documentation → Link, don't duplicate
139
+ - Common knowledge → Don't attach obvious information
@@ -0,0 +1,277 @@
1
+ # Ticketing Delegation Examples
2
+
3
+ **Purpose**: Comprehensive examples of correct PM ticketing delegation patterns
4
+ **Usage**: Reference for PM when delegating ticket operations to ticketing agent
5
+ **Circuit Breaker**: #6 - PM MUST NEVER use mcp-ticketer tools directly
6
+
7
+ ---
8
+
9
+ ## Search Operations
10
+
11
+ ### Ticket Search Delegation
12
+
13
+ **❌ WRONG - PM searches directly**:
14
+ ```
15
+ User: "Find tickets related to authentication"
16
+ PM: [Uses mcp__mcp-ticketer__ticket_search directly] ← VIOLATION
17
+ ```
18
+
19
+ **✅ CORRECT - PM delegates search**:
20
+ ```
21
+ User: "Find tickets related to authentication"
22
+ PM: "I'll have ticketing search for authentication tickets..."
23
+ [Delegates to ticketing: "Search for tickets related to authentication"]
24
+ PM: "Based on ticketing's search results, here are the relevant tickets..."
25
+ ```
26
+
27
+ **Why This Matters**:
28
+ - PM focuses on orchestration, not ticket system mechanics
29
+ - Ticketing agent owns all mcp-ticketer tool expertise
30
+ - Reduces PM token load by 31.5% (886 lines of ticketing protocols)
31
+ - Maintains separation of concerns (PM = delegation, ticketing = execution)
32
+
33
+ ---
34
+
35
+ ## Listing Operations
36
+
37
+ ### Ticket List Delegation
38
+
39
+ **❌ WRONG - PM lists tickets directly**:
40
+ ```
41
+ User: "Show me open tickets"
42
+ PM: [Uses mcp__mcp-ticketer__ticket_list directly] ← VIOLATION
43
+ ```
44
+
45
+ **✅ CORRECT - PM delegates listing**:
46
+ ```
47
+ User: "Show me open tickets"
48
+ PM: "I'll have ticketing list open tickets..."
49
+ [Delegates to ticketing: "List all open tickets"]
50
+ PM: "Ticketing found [X] open tickets: [summary]"
51
+ ```
52
+
53
+ **Delegation Pattern**:
54
+ 1. PM receives user request for ticket data
55
+ 2. PM delegates to ticketing with specific query
56
+ 3. Ticketing uses mcp-ticketer tools to fetch data
57
+ 4. Ticketing returns summary to PM
58
+ 5. PM uses summary for decision-making (NOT full ticket data)
59
+
60
+ ---
61
+
62
+ ## CRUD Operations
63
+
64
+ ### Complete CRUD Patterns
65
+
66
+ **Correct Pattern**:
67
+ ```
68
+ PM: "I'll have ticketing [read/create/update/comment on] the ticket"
69
+ → Delegate to ticketing with specific instruction
70
+ → Ticketing uses mcp-ticketer tools
71
+ → Ticketing returns summary to PM
72
+ → PM uses summary for decision-making (not full ticket data)
73
+ ```
74
+
75
+ **Violation Pattern**:
76
+ ```
77
+ PM: "I'll check the ticket details"
78
+ → PM uses mcp__mcp-ticketer__ticket_read directly
79
+ → VIOLATION: Circuit Breaker #6 triggered
80
+ ```
81
+
82
+ ### Read Operations
83
+
84
+ **❌ WRONG**:
85
+ ```
86
+ PM: "Let me check ticket PROJ-123"
87
+ [Uses mcp__mcp-ticketer__ticket_read("PROJ-123")]
88
+ ```
89
+
90
+ **✅ CORRECT**:
91
+ ```
92
+ PM: "I'll have ticketing read PROJ-123"
93
+ [Delegates to ticketing: "Read ticket PROJ-123 and return status, priority, and blockers"]
94
+ Ticketing: "PROJ-123 is in progress, high priority, blocked by PROJ-122"
95
+ PM: "Based on ticketing's report, we need to resolve PROJ-122 first"
96
+ ```
97
+
98
+ ### Create Operations
99
+
100
+ **❌ WRONG**:
101
+ ```
102
+ PM: "Creating ticket now..."
103
+ [Uses mcp__mcp-ticketer__ticket_create directly]
104
+ ```
105
+
106
+ **✅ CORRECT**:
107
+ ```
108
+ PM: "I'll have ticketing create a ticket for this work"
109
+ [Delegates to ticketing: "Create ticket: Add authentication with JWT"]
110
+ Ticketing: "Created PROJ-124: Add authentication with JWT"
111
+ PM: "Ticketing created PROJ-124, now delegating implementation to engineer"
112
+ ```
113
+
114
+ ### Update Operations
115
+
116
+ **❌ WRONG**:
117
+ ```
118
+ PM: "Updating ticket status..."
119
+ [Uses mcp__mcp-ticketer__ticket_update directly]
120
+ ```
121
+
122
+ **✅ CORRECT**:
123
+ ```
124
+ PM: "I'll have ticketing update PROJ-123 status to done"
125
+ [Delegates to ticketing: "Update PROJ-123: set state=done, add completion comment"]
126
+ Ticketing: "Updated PROJ-123 to done with completion notes"
127
+ PM: "PROJ-123 marked complete, moving to next task"
128
+ ```
129
+
130
+ ### Comment Operations
131
+
132
+ **❌ WRONG**:
133
+ ```
134
+ PM: "Adding comment to ticket..."
135
+ [Uses mcp__mcp-ticketer__ticket_comment directly]
136
+ ```
137
+
138
+ **✅ CORRECT**:
139
+ ```
140
+ PM: "I'll have ticketing add a progress update to PROJ-123"
141
+ [Delegates to ticketing: "Add comment to PROJ-123: Implementation 60% complete, frontend done"]
142
+ Ticketing: "Added progress comment to PROJ-123"
143
+ PM: "Ticketing updated stakeholders on progress"
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Ticket Context Propagation
149
+
150
+ ### Passing Ticket Context to Other Agents
151
+
152
+ **Pattern**: PM receives ticket info from ticketing → propagates to engineer/research
153
+
154
+ **Example Workflow**:
155
+ ```
156
+ User: "Implement TICKET-123"
157
+
158
+ Step 1: PM delegates to ticketing
159
+ PM → Ticketing: "Read TICKET-123 and return full details"
160
+
161
+ Step 2: Ticketing returns summary
162
+ Ticketing → PM: {
163
+ "ticket_id": "TICKET-123",
164
+ "title": "Add OAuth2 authentication",
165
+ "description": "Implement OAuth2 flow...",
166
+ "priority": "high",
167
+ "acceptance_criteria": ["Users can login with Google", "Token refresh works"]
168
+ }
169
+
170
+ Step 3: PM propagates to engineer
171
+ PM → Engineer: "Implement OAuth2 authentication based on TICKET-123
172
+ 🎫 TICKET CONTEXT:
173
+ - Ticket ID: TICKET-123
174
+ - Title: Add OAuth2 authentication
175
+ - Priority: high
176
+ - Acceptance Criteria: [...]
177
+ - Description: [...]"
178
+
179
+ Step 4: Engineer completes work
180
+ Engineer → PM: "OAuth2 implemented, tests passing"
181
+
182
+ Step 5: PM delegates ticket update
183
+ PM → Ticketing: "Update TICKET-123: set state=done, add completion comment"
184
+ ```
185
+
186
+ **Key Principle**: PM acts as information router, NOT information consumer. PM receives ticket summaries from ticketing and forwards context to implementation agents, but PM doesn't use ticket data for implementation decisions.
187
+
188
+ ---
189
+
190
+ ## Scope Protection Patterns
191
+
192
+ ### Project Scoping Requirements
193
+
194
+ **Rule**: ALL ticket operations require project scoping (project_id or default_project configured)
195
+
196
+ **❌ WRONG - No project context**:
197
+ ```
198
+ PM → Ticketing: "List open tickets"
199
+ Ticketing: ⚠️ Project filtering required! Use default_project or specify project_id
200
+ ```
201
+
202
+ **✅ CORRECT - Project context included**:
203
+ ```
204
+ PM → Ticketing: "List open tickets for project MYAPP"
205
+ Ticketing: "Found 5 open tickets in MYAPP: [...]"
206
+ ```
207
+
208
+ **Automatic Protection**:
209
+ Ticketing agent automatically validates project scope before executing any ticket operation. If missing, ticketing prompts PM to clarify project context or configure default_project.
210
+
211
+ ---
212
+
213
+ ## Context Optimization
214
+
215
+ ### Compact Mode vs Full Mode
216
+
217
+ **Compact Mode** (default):
218
+ - Returns ~15 tokens per ticket (id, title, state, priority, assignee)
219
+ - Use for: listings, searches, bulk operations
220
+ - 90% token savings vs full mode
221
+
222
+ **Full Mode**:
223
+ - Returns ~185 tokens per ticket (all fields, descriptions, comments)
224
+ - Use for: detailed analysis, single ticket reads
225
+ - Only when full context is needed
226
+
227
+ **Example - Listing 20 Tickets**:
228
+ ```
229
+ Compact mode: 20 tickets × 15 tokens = 300 tokens
230
+ Full mode: 20 tickets × 185 tokens = 3,700 tokens
231
+ Savings: 3,400 tokens (91% reduction)
232
+ ```
233
+
234
+ **PM Delegation Strategy**:
235
+ ```
236
+ # For bulk operations - use compact mode
237
+ PM → Ticketing: "List open tickets (compact mode)"
238
+ Ticketing: Returns 20 tickets in 300 tokens
239
+
240
+ # For detailed analysis - use full mode on specific tickets
241
+ PM → Ticketing: "Read ticket PROJ-123 (full details)"
242
+ Ticketing: Returns 1 ticket in 185 tokens
243
+ ```
244
+
245
+ ---
246
+
247
+ ## Success Criteria
248
+
249
+ **PM is delegating correctly if**:
250
+ - ✅ PM NEVER uses mcp__mcp-ticketer__* tools directly
251
+ - ✅ ALL ticket operations go through ticketing agent
252
+ - ✅ PM receives summaries, not full ticket data
253
+ - ✅ PM propagates ticket context to other agents
254
+ - ✅ Project scoping is always specified or configured
255
+
256
+ **Red Flags** (Circuit Breaker #6 violations):
257
+ - ❌ PM uses mcp__mcp-ticketer__ticket_search directly
258
+ - ❌ PM uses mcp__mcp-ticketer__ticket_list directly
259
+ - ❌ PM uses mcp__mcp-ticketer__ticket_read directly
260
+ - ❌ PM uses mcp__mcp-ticketer__ticket_create directly
261
+ - ❌ PM uses mcp__mcp-ticketer__ticket_update directly
262
+ - ❌ PM uses any mcp-ticketer tool without delegating first
263
+
264
+ **Rule of Thumb**: If PM is about to use any tool starting with `mcp__mcp-ticketer__*`, STOP and delegate to ticketing instead.
265
+
266
+ ---
267
+
268
+ ## Related References
269
+
270
+ - **Circuit Breakers**: See [circuit-breakers.md](circuit-breakers.md#circuit-breaker-6)
271
+ - **Ticket Completeness**: See [ticket-completeness-examples.md](ticket-completeness-examples.md)
272
+ - **Ticketing Agent Instructions**: See [ticketing.md](ticketing.md)
273
+
274
+ ---
275
+
276
+ **Last Updated**: 2025-12-01
277
+ **Phase**: Phase 3 Optimization - Example Extraction
@@ -17,6 +17,7 @@ from typing import Optional
17
17
  from claude_mpm.config.paths import paths
18
18
 
19
19
  from ..constants import CLICommands
20
+ from ..utils.progress import ProgressBar
20
21
  from .executor import ensure_run_attributes, execute_command
21
22
  from .helpers import (
22
23
  handle_missing_configuration,
@@ -31,6 +32,7 @@ from .startup import (
31
32
  setup_mcp_server_logging,
32
33
  should_skip_background_services,
33
34
  )
35
+ from .startup_display import display_startup_banner, should_show_banner
34
36
  from .utils import ensure_directories, setup_logging
35
37
 
36
38
  # Version resolution
@@ -65,10 +67,43 @@ def main(argv: Optional[list] = None):
65
67
 
66
68
  setup_configure_command_environment(args)
67
69
 
70
+ # CRITICAL: Setup logging BEFORE any initialization that creates loggers
71
+ # This ensures that ensure_directories() and run_background_services()
72
+ # respect the user's logging preference (default: OFF)
73
+ logger = setup_mcp_server_logging(args)
74
+
68
75
  ensure_directories()
76
+
77
+ # Display startup banner FIRST (unless help/version/utility commands)
78
+ if should_show_banner(args):
79
+ logging_level = getattr(args, "logging", "OFF")
80
+ display_startup_banner(__version__, logging_level)
81
+
69
82
  if not should_skip_background_services(args, processed_argv):
70
- run_background_services()
71
- logger = setup_mcp_server_logging(args)
83
+ # Show "Launching Claude..." progress bar during background services startup
84
+ # This matches the visual style of agent/skill sync progress bars
85
+ launch_progress = ProgressBar(
86
+ total=100,
87
+ prefix="Launching Claude",
88
+ show_percentage=False,
89
+ show_counter=False,
90
+ bar_width=25,
91
+ )
92
+
93
+ try:
94
+ run_background_services()
95
+ launch_progress.finish(message="Ready")
96
+
97
+ # Inform user about Claude Code initialization delay (3-5 seconds)
98
+ # This message appears before os.execvpe() replaces our process
99
+ # See: docs/research/claude-startup-delay-analysis-2025-12-01.md
100
+ print(
101
+ "⏳ Starting Claude Code... (this may take a few seconds)",
102
+ flush=True,
103
+ )
104
+ except Exception:
105
+ launch_progress.finish(message="Failed")
106
+ raise
72
107
 
73
108
  if hasattr(args, "debug") and args.debug:
74
109
  logger.debug(f"Command: {args.command}")
@@ -19,6 +19,7 @@ from .info import show_info
19
19
  from .mcp import manage_mcp
20
20
  from .memory import manage_memory
21
21
  from .monitor import manage_monitor
22
+ from .postmortem import run_postmortem
22
23
  from .run import run_session
23
24
  from .skills import manage_skills
24
25
  from .tickets import list_tickets, manage_tickets
@@ -41,6 +42,7 @@ __all__ = [
41
42
  # 'run_guarded_session', # Excluded from default exports (experimental)
42
43
  "manage_tickets",
43
44
  "run_doctor",
45
+ "run_postmortem",
44
46
  "run_session",
45
47
  "show_info",
46
48
  ]