claude-mpm 3.5.2__tar.gz → 3.5.4__tar.gz

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 (219) hide show
  1. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/CLAUDE.md +25 -16
  2. {claude_mpm-3.5.2/src/claude_mpm.egg-info → claude_mpm-3.5.4}/PKG-INFO +18 -3
  3. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/README.md +17 -2
  4. claude_mpm-3.5.4/VERSION +1 -0
  5. claude_mpm-3.5.4/src/claude_mpm/VERSION +1 -0
  6. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/INSTRUCTIONS.md +2 -2
  7. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/agent_loader.py +109 -15
  8. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/base_agent.json +1 -1
  9. claude_mpm-3.5.4/src/claude_mpm/agents/frontmatter_validator.py +448 -0
  10. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/data_engineer.json +4 -3
  11. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/documentation.json +4 -3
  12. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/engineer.json +4 -3
  13. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/ops.json +4 -3
  14. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/pm.json +5 -4
  15. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/qa.json +4 -3
  16. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/research.json +8 -7
  17. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/security.json +4 -3
  18. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/test_integration.json +4 -3
  19. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/version_control.json +4 -3
  20. claude_mpm-3.5.4/src/claude_mpm/cli/commands/agents.py +539 -0
  21. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/parser.py +36 -0
  22. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/constants.py +2 -0
  23. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/agent_registry.py +4 -1
  24. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/claude_runner.py +224 -8
  25. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/agent_deployment.py +39 -9
  26. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/agent_registry.py +22 -1
  27. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/validation/agent_validator.py +56 -1
  28. {claude_mpm-3.5.2 → claude_mpm-3.5.4/src/claude_mpm.egg-info}/PKG-INFO +18 -3
  29. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/SOURCES.txt +1 -0
  30. claude_mpm-3.5.2/VERSION +0 -1
  31. claude_mpm-3.5.2/src/claude_mpm/VERSION +0 -1
  32. claude_mpm-3.5.2/src/claude_mpm/cli/commands/agents.py +0 -191
  33. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/LICENSE +0 -0
  34. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/MANIFEST.in +0 -0
  35. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/claude-mpm +0 -0
  36. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/pyproject.toml +0 -0
  37. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/requirements.txt +0 -0
  38. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/scripts/run_mpm.py +0 -0
  39. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/scripts/ticket +0 -0
  40. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/setup.cfg +0 -0
  41. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/setup.py +0 -0
  42. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/__init__.py +0 -0
  43. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/__main__.py +0 -0
  44. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
  45. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/__init__.py +0 -0
  46. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
  47. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/agents_metadata.py +0 -0
  48. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
  49. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/base_agent_loader.py +0 -0
  50. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
  51. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/system_agent_config.py +0 -0
  52. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -0
  53. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/.claude-mpm/memories/version_control_agent.md +0 -0
  54. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/__init__.py +0 -0
  55. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
  56. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
  57. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
  58. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
  59. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
  60. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
  61. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
  62. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
  63. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/__init__.py +0 -0
  64. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/__main__.py +0 -0
  65. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/__init__.py +0 -0
  66. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/info.py +0 -0
  67. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/memory.py +0 -0
  68. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/monitor.py +0 -0
  69. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/run.py +0 -0
  70. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/tickets.py +0 -0
  71. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/utils.py +0 -0
  72. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/__init__.py +0 -0
  73. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/args.py +0 -0
  74. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/commands.py +0 -0
  75. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/migration_example.py +0 -0
  76. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/__init__.py +0 -0
  77. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/agent_config.py +0 -0
  78. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/paths.py +0 -0
  79. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/socketio_config.py +0 -0
  80. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/__init__.py +0 -0
  81. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
  82. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/agent_session_manager.py +0 -0
  83. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/base_service.py +0 -0
  84. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/config.py +0 -0
  85. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/config_aliases.py +0 -0
  86. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/config_paths.py +0 -0
  87. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/container.py +0 -0
  88. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/factories.py +0 -0
  89. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/framework_loader.py +0 -0
  90. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/hook_manager.py +0 -0
  91. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/injectable_service.py +0 -0
  92. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/interfaces.py +0 -0
  93. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/logger.py +0 -0
  94. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
  95. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/mixins.py +0 -0
  96. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
  97. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/service_registry.py +0 -0
  98. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/session_manager.py +0 -0
  99. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/socketio_pool.py +0 -0
  100. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/tool_access_control.py +0 -0
  101. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/index.html +0 -0
  102. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
  103. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
  104. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
  105. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
  106. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
  107. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
  108. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
  109. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
  110. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
  111. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
  112. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
  113. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
  114. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
  115. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
  116. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
  117. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -0
  118. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
  119. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
  120. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/templates/index.html +0 -0
  121. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
  122. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/deployment_paths.py +0 -0
  123. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
  124. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/generators/__init__.py +0 -0
  125. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
  126. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/__init__.py +0 -0
  127. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/base_hook.py +0 -0
  128. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
  129. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
  130. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
  131. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
  132. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
  133. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/validation_hooks.py +0 -0
  134. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/init.py +0 -0
  135. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/models/__init__.py +0 -0
  136. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/models/agent_definition.py +0 -0
  137. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
  138. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/__init__.py +0 -0
  139. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/__init__.py +0 -0
  140. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
  141. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
  142. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
  143. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
  144. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
  145. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
  146. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
  147. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/management/__init__.py +0 -0
  148. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
  149. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
  150. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
  151. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
  152. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
  153. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
  154. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
  155. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
  156. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/async_session_logger.py +0 -0
  157. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/claude_session_logger.py +0 -0
  158. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/exceptions.py +0 -0
  159. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
  160. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
  161. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
  162. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
  163. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
  164. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
  165. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
  166. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
  167. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
  168. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
  169. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
  170. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
  171. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
  172. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
  173. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
  174. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
  175. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
  176. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
  177. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
  178. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
  179. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/health_monitor.py +0 -0
  180. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/hook_service.py +0 -0
  181. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/__init__.py +0 -0
  182. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/builder.py +0 -0
  183. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
  184. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
  185. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
  186. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/optimizer.py +0 -0
  187. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/router.py +0 -0
  188. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/optimized_hook_service.py +0 -0
  189. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/project_analyzer.py +0 -0
  190. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/project_registry.py +0 -0
  191. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/recovery_manager.py +0 -0
  192. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/response_tracker.py +0 -0
  193. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/socketio_client_manager.py +0 -0
  194. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/socketio_server.py +0 -0
  195. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/standalone_socketio_server.py +0 -0
  196. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/ticket_manager.py +0 -0
  197. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/ticket_manager_di.py +0 -0
  198. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/ticketing_service_original.py +0 -0
  199. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/__init__.py +0 -0
  200. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
  201. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
  202. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/git_operations.py +0 -0
  203. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
  204. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/ticket_wrapper.py +0 -0
  205. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/__init__.py +0 -0
  206. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/config_manager.py +0 -0
  207. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/dependency_manager.py +0 -0
  208. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/error_handler.py +0 -0
  209. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/framework_detection.py +0 -0
  210. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/import_migration_example.py +0 -0
  211. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/imports.py +0 -0
  212. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/path_operations.py +0 -0
  213. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/paths.py +0 -0
  214. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/session_logging.py +0 -0
  215. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/validation/__init__.py +0 -0
  216. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
  217. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/entry_points.txt +0 -0
  218. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/requires.txt +0 -0
  219. {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/top_level.txt +0 -0
@@ -47,6 +47,7 @@ See [docs/QA.md](docs/QA.md) for detailed testing procedures.
47
47
  - Dynamic discovery via `AgentRegistry`
48
48
  - Three-tier precedence: PROJECT > USER > SYSTEM
49
49
  - Local project agents in `.claude-mpm/agents/`
50
+ - **Capabilities Discovery**: Agent capabilities read from deployed agents in `.claude/agents/` to ensure consistency with Claude Code
50
51
 
51
52
  2. **Memory System** (`src/claude_mpm/services/`)
52
53
  - Persistent agent learning and knowledge storage
@@ -75,18 +76,22 @@ See [docs/QA.md](docs/QA.md) for detailed testing procedures.
75
76
  # Non-interactive mode
76
77
  ./claude-mpm run -i "Your prompt here" --non-interactive
77
78
 
78
- # Create a local project agent
79
+ # Create a local project agent (JSON format for .claude-mpm/agents/)
79
80
  mkdir -p .claude-mpm/agents
80
- cat > .claude-mpm/agents/custom_engineer.md << 'EOF'
81
- ---
82
- description: Custom engineer for this project
83
- version: 2.0.0
84
- tools: ["project_tools", "custom_debugger"]
85
- ---
86
-
87
- # Custom Engineer Agent
88
-
89
- This engineer has specific knowledge about our project architecture.
81
+ cat > .claude-mpm/agents/custom_engineer.json << 'EOF'
82
+ {
83
+ "agent_id": "custom_engineer",
84
+ "version": "2.0.0",
85
+ "metadata": {
86
+ "name": "Custom Engineer Agent",
87
+ "description": "Custom engineer for this project"
88
+ },
89
+ "capabilities": {
90
+ "tools": ["project_tools", "custom_debugger"],
91
+ "model": "claude-sonnet-4-20250514"
92
+ },
93
+ "instructions": "# Custom Engineer Agent\n\nThis engineer has specific knowledge about our project architecture."
94
+ }
90
95
  EOF
91
96
 
92
97
  # List agents by tier to see which version is being used
@@ -98,8 +103,8 @@ EOF
98
103
  Claude MPM supports project-specific agents that take precedence over system and user agents:
99
104
 
100
105
  ### Agent Precedence (Highest to Lowest)
101
- 1. **PROJECT** - `.claude-mpm/agents/` in your project
102
- 2. **USER** - `~/.claude-mpm/agents/` in your home directory
106
+ 1. **PROJECT** - `.claude-mpm/agents/` in your project (**JSON format only**)
107
+ 2. **USER** - `~/.claude-mpm/agents/` in your home directory (any format)
103
108
  3. **SYSTEM** - Built-in framework agents
104
109
 
105
110
  ### Creating Local Agents
@@ -109,22 +114,26 @@ Create project-specific agents to:
109
114
  - Add custom agents for your domain/workflow
110
115
  - Test new agent configurations before promoting them
111
116
 
117
+ **Important**: Project agents in `.claude-mpm/agents/` must be JSON format. They're automatically converted to Markdown in `.claude/agents/` for Claude Desktop compatibility.
118
+
112
119
  ```bash
113
120
  # Create project agents directory
114
121
  mkdir -p .claude-mpm/agents
115
122
 
116
- # Example: Custom QA agent with project-specific rules
123
+ # Example: Custom QA agent with project-specific rules (JSON format only)
117
124
  cat > .claude-mpm/agents/qa.json << 'EOF'
118
125
  {
119
126
  "agent_id": "qa",
120
127
  "version": "2.0.0",
121
128
  "metadata": {
122
129
  "name": "Project QA Agent",
123
- "description": "QA agent with project-specific testing protocols"
130
+ "description": "QA agent with project-specific testing protocols",
131
+ "tags": ["qa", "project-specific"]
124
132
  },
125
133
  "capabilities": {
126
134
  "model": "claude-sonnet-4-20250514",
127
- "tools": ["custom_test_runner", "project_validator"]
135
+ "tools": ["custom_test_runner", "project_validator"],
136
+ "resource_tier": "standard"
128
137
  },
129
138
  "instructions": "# Project QA Agent\n\nYou are a QA specialist for this specific project..."
130
139
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 3.5.2
3
+ Version: 3.5.4
4
4
  Summary: Claude Multi-agent Project Manager - Clean orchestration with ticket management
5
5
  Home-page: https://github.com/bobmatnyc/claude-mpm
6
6
  Author: Claude MPM Team
@@ -92,6 +92,19 @@ claude-mpm run --monitor
92
92
  claude-mpm run --resume
93
93
  ```
94
94
 
95
+ ### Agent Management
96
+
97
+ ```bash
98
+ # View agent hierarchy and precedence
99
+ claude-mpm agents list --by-tier
100
+
101
+ # Inspect specific agent configuration
102
+ claude-mpm agents view engineer
103
+
104
+ # Fix agent configuration issues
105
+ claude-mpm agents fix --all --dry-run
106
+ ```
107
+
95
108
  For detailed usage, see [QUICKSTART.md](QUICKSTART.md)
96
109
 
97
110
  ## Key Capabilities
@@ -108,6 +121,8 @@ The PM agent automatically delegates work to specialized agents:
108
121
  - **Test Integration**: E2E testing and cross-system validation
109
122
  - **Version Control**: Git workflows and release management
110
123
 
124
+ **Three-Tier Agent System**: PROJECT > USER > SYSTEM precedence allows project-specific agent customization while maintaining fallbacks. Use `claude-mpm agents list --by-tier` to see the active agent hierarchy.
125
+
111
126
  ### Session Management
112
127
  - All work is tracked in persistent sessions
113
128
  - Resume any session with `--resume`
@@ -144,14 +159,14 @@ The `--monitor` flag opens a web dashboard showing:
144
159
  - Tool usage and results
145
160
  - Session management UI
146
161
 
147
- See [docs/developer/monitoring.md](docs/developer/monitoring.md) for full monitoring guide.
162
+ See [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for full monitoring guide.
148
163
 
149
164
 
150
165
  ## Documentation
151
166
 
152
167
  - **[Quick Start Guide](QUICKSTART.md)** - Get running in 5 minutes
153
168
  - **[Agent Memory System](docs/MEMORY.md)** - Comprehensive memory documentation
154
- - **[Monitoring Dashboard](docs/developer/monitoring.md)** - Real-time monitoring features
169
+ - **[Monitoring Dashboard](docs/developer/11-dashboard/README.md)** - Real-time monitoring features
155
170
  - **[Project Structure](docs/STRUCTURE.md)** - Codebase organization
156
171
  - **[Deployment Guide](docs/DEPLOY.md)** - Publishing and versioning
157
172
  - **[User Guide](docs/user/)** - Detailed usage documentation
@@ -40,6 +40,19 @@ claude-mpm run --monitor
40
40
  claude-mpm run --resume
41
41
  ```
42
42
 
43
+ ### Agent Management
44
+
45
+ ```bash
46
+ # View agent hierarchy and precedence
47
+ claude-mpm agents list --by-tier
48
+
49
+ # Inspect specific agent configuration
50
+ claude-mpm agents view engineer
51
+
52
+ # Fix agent configuration issues
53
+ claude-mpm agents fix --all --dry-run
54
+ ```
55
+
43
56
  For detailed usage, see [QUICKSTART.md](QUICKSTART.md)
44
57
 
45
58
  ## Key Capabilities
@@ -56,6 +69,8 @@ The PM agent automatically delegates work to specialized agents:
56
69
  - **Test Integration**: E2E testing and cross-system validation
57
70
  - **Version Control**: Git workflows and release management
58
71
 
72
+ **Three-Tier Agent System**: PROJECT > USER > SYSTEM precedence allows project-specific agent customization while maintaining fallbacks. Use `claude-mpm agents list --by-tier` to see the active agent hierarchy.
73
+
59
74
  ### Session Management
60
75
  - All work is tracked in persistent sessions
61
76
  - Resume any session with `--resume`
@@ -92,14 +107,14 @@ The `--monitor` flag opens a web dashboard showing:
92
107
  - Tool usage and results
93
108
  - Session management UI
94
109
 
95
- See [docs/developer/monitoring.md](docs/developer/monitoring.md) for full monitoring guide.
110
+ See [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for full monitoring guide.
96
111
 
97
112
 
98
113
  ## Documentation
99
114
 
100
115
  - **[Quick Start Guide](QUICKSTART.md)** - Get running in 5 minutes
101
116
  - **[Agent Memory System](docs/MEMORY.md)** - Comprehensive memory documentation
102
- - **[Monitoring Dashboard](docs/developer/monitoring.md)** - Real-time monitoring features
117
+ - **[Monitoring Dashboard](docs/developer/11-dashboard/README.md)** - Real-time monitoring features
103
118
  - **[Project Structure](docs/STRUCTURE.md)** - Codebase organization
104
119
  - **[Deployment Guide](docs/DEPLOY.md)** - Publishing and versioning
105
120
  - **[User Guide](docs/user/)** - Detailed usage documentation
@@ -0,0 +1 @@
1
+ 3.5.4
@@ -0,0 +1 @@
1
+ 3.5.4
@@ -1,4 +1,4 @@
1
- <!-- FRAMEWORK_VERSION: 0009 -->
1
+ <!-- FRAMEWORK_VERSION: 0010 -->
2
2
  <!-- LAST_MODIFIED: 2025-08-10T00:00:00Z -->
3
3
 
4
4
  # Claude Multi-Agent Project Manager Instructions
@@ -33,11 +33,11 @@
33
33
  ## Communication Standards
34
34
 
35
35
  - **Tone**: Professional, neutral by default
36
- - **Avoid**: "Excellent!", "Perfect!", "Amazing!", "You're absolutely right!" (and similar unwarrented phrasing)
37
36
  - **Use**: "Understood", "Confirmed", "Noted"
38
37
  - **No simplification** without explicit user request
39
38
  - **No mocks** outside test environments
40
39
  - **Complete implementations** only - no placeholders
40
+ - **FORBIDDEN**: "Excellent!", "Perfect!", "Amazing!", "You're absolutely right!" (and similar unwarrented phrasing)
41
41
 
42
42
  ## Mandatory Workflow Sequence
43
43
 
@@ -15,7 +15,7 @@ standardized schema before being registered for use.
15
15
 
16
16
  Key Features:
17
17
  -------------
18
- - Automatic agent discovery from src/claude_mpm/agents/templates/*.json files
18
+ - Automatic agent discovery from JSON files in configured agent directories
19
19
  - Schema validation ensures all agents conform to the expected structure
20
20
  - Intelligent caching using SharedPromptCache for performance optimization
21
21
  - Dynamic model selection based on task complexity analysis
@@ -70,6 +70,7 @@ from ..validation.agent_validator import AgentValidator, ValidationResult
70
70
  from ..utils.paths import PathResolver
71
71
  from ..core.agent_name_normalizer import AgentNameNormalizer
72
72
  from ..core.config_paths import ConfigPaths
73
+ from .frontmatter_validator import FrontmatterValidator
73
74
 
74
75
  # Temporary placeholders for missing module
75
76
  # WHY: These classes would normally come from a task_complexity module, but
@@ -101,12 +102,12 @@ class AgentTier(Enum):
101
102
 
102
103
  def _get_agent_templates_dirs() -> Dict[AgentTier, Optional[Path]]:
103
104
  """
104
- Get directories containing agent template JSON files across all tiers.
105
+ Get directories containing agent JSON files across all tiers.
105
106
 
106
- Returns a dictionary mapping tiers to their template directories:
107
- - PROJECT: .claude-mpm/agents/templates in the current working directory
108
- - USER: ~/.claude-mpm/agents/templates
109
- - SYSTEM: Built-in templates relative to this module
107
+ Returns a dictionary mapping tiers to their agent directories:
108
+ - PROJECT: .claude-mpm/agents in the current working directory
109
+ - USER: ~/.claude-mpm/agents
110
+ - SYSTEM: Built-in agents relative to this module
110
111
 
111
112
  WHY: We support multiple tiers to allow project-specific customization
112
113
  while maintaining backward compatibility with system agents.
@@ -118,7 +119,7 @@ def _get_agent_templates_dirs() -> Dict[AgentTier, Optional[Path]]:
118
119
 
119
120
  # PROJECT tier - ALWAYS check current working directory dynamically
120
121
  # This ensures we pick up project agents even if CWD changes
121
- project_dir = Path.cwd() / ConfigPaths.CONFIG_DIR / "agents" / "templates"
122
+ project_dir = Path.cwd() / ConfigPaths.CONFIG_DIR / "agents"
122
123
  if project_dir.exists():
123
124
  dirs[AgentTier.PROJECT] = project_dir
124
125
  logger.debug(f"Found PROJECT agents at: {project_dir}")
@@ -126,12 +127,12 @@ def _get_agent_templates_dirs() -> Dict[AgentTier, Optional[Path]]:
126
127
  # USER tier - check user home directory
127
128
  user_config_dir = ConfigPaths.get_user_config_dir()
128
129
  if user_config_dir:
129
- user_agents_dir = user_config_dir / "agents" / "templates"
130
+ user_agents_dir = user_config_dir / "agents"
130
131
  if user_agents_dir.exists():
131
132
  dirs[AgentTier.USER] = user_agents_dir
132
133
  logger.debug(f"Found USER agents at: {user_agents_dir}")
133
134
 
134
- # SYSTEM tier - built-in templates
135
+ # SYSTEM tier - built-in agents
135
136
  system_dir = Path(__file__).parent / "templates"
136
137
  if system_dir.exists():
137
138
  dirs[AgentTier.SYSTEM] = system_dir
@@ -142,18 +143,18 @@ def _get_agent_templates_dirs() -> Dict[AgentTier, Optional[Path]]:
142
143
 
143
144
  def _get_agent_templates_dir() -> Path:
144
145
  """
145
- Get the primary directory containing agent template JSON files.
146
+ Get the primary directory containing agent JSON files.
146
147
 
147
148
  DEPRECATED: Use _get_agent_templates_dirs() for tier-aware loading.
148
149
  This function is kept for backward compatibility.
149
150
 
150
151
  Returns:
151
- Path: Absolute path to the system templates directory
152
+ Path: Absolute path to the system agents directory
152
153
  """
153
154
  return Path(__file__).parent / "templates"
154
155
 
155
156
 
156
- # Agent templates directory - where all agent JSON files are stored
157
+ # Agent directory - where all agent JSON files are stored
157
158
  AGENT_TEMPLATES_DIR = _get_agent_templates_dir()
158
159
 
159
160
  # Cache prefix for agent prompts - versioned to allow cache invalidation on schema changes
@@ -186,7 +187,7 @@ class AgentLoader:
186
187
  Central registry for loading and managing agent configurations.
187
188
 
188
189
  This class implements the core agent discovery and management system. It:
189
- 1. Discovers agent JSON files from the templates directory
190
+ 1. Discovers agent JSON files from the agents directory
190
191
  2. Validates each agent against the standardized schema
191
192
  3. Maintains an in-memory registry of valid agents
192
193
  4. Provides caching for performance optimization
@@ -198,7 +199,7 @@ class AgentLoader:
198
199
  - Agent usage frequency and patterns
199
200
  - Model selection distribution
200
201
  - Task complexity analysis results
201
- - Memory usage for agent templates
202
+ - Memory usage for agent definitions
202
203
  - Error rates during loading/validation
203
204
  - Agent prompt size distributions
204
205
 
@@ -243,6 +244,9 @@ class AgentLoader:
243
244
  # Track which tier each agent came from for debugging
244
245
  self._agent_tiers: Dict[str, AgentTier] = {}
245
246
 
247
+ # Initialize frontmatter validator for .md agent files
248
+ self.frontmatter_validator = FrontmatterValidator()
249
+
246
250
  # METRICS: Initialize performance tracking
247
251
  # This structure collects valuable telemetry for AI agent performance
248
252
  self._metrics = {
@@ -285,11 +289,14 @@ class AgentLoader:
285
289
  - Schema validation failures are logged with details
286
290
  - The system continues to function with whatever valid agents it finds
287
291
  """
288
- # Dynamically discover template directories at load time
292
+ # Dynamically discover agent directories at load time
289
293
  self._template_dirs = _get_agent_templates_dirs()
290
294
 
291
295
  logger.info(f"Loading agents from {len(self._template_dirs)} tier(s)")
292
296
 
297
+ # Perform startup validation check for .md agent files
298
+ self._validate_markdown_agents()
299
+
293
300
  # Process tiers in REVERSE precedence order (SYSTEM first, PROJECT last)
294
301
  # This ensures PROJECT agents override USER/SYSTEM agents
295
302
  for tier in [AgentTier.SYSTEM, AgentTier.USER, AgentTier.PROJECT]:
@@ -353,6 +360,93 @@ class AgentLoader:
353
360
  # Log loading errors but don't crash - system should be resilient
354
361
  logger.error(f"Failed to load {json_file.name}: {e}")
355
362
 
363
+ def _validate_markdown_agents(self) -> None:
364
+ """
365
+ Validate frontmatter in all .md agent files at startup.
366
+
367
+ This method performs validation and reports issues found in agent files.
368
+ It checks all tiers and provides a summary of validation results.
369
+ Auto-correction is applied in memory but not written to files.
370
+ """
371
+ validation_summary = {
372
+ 'total_checked': 0,
373
+ 'valid': 0,
374
+ 'corrected': 0,
375
+ 'errors': 0,
376
+ 'by_tier': {}
377
+ }
378
+
379
+ # Check the .claude/agents directory for .md files
380
+ claude_agents_dir = Path.cwd() / ".claude" / "agents"
381
+ if claude_agents_dir.exists():
382
+ logger.info("Validating agent files in .claude/agents directory...")
383
+
384
+ for md_file in claude_agents_dir.glob("*.md"):
385
+ validation_summary['total_checked'] += 1
386
+
387
+ # Validate the file
388
+ result = self.frontmatter_validator.validate_file(md_file)
389
+
390
+ if result.is_valid and not result.corrections:
391
+ validation_summary['valid'] += 1
392
+ elif result.corrections:
393
+ validation_summary['corrected'] += 1
394
+ logger.info(f"Auto-corrected frontmatter in {md_file.name}:")
395
+ for correction in result.corrections:
396
+ logger.info(f" - {correction}")
397
+
398
+ if result.errors:
399
+ validation_summary['errors'] += 1
400
+ logger.warning(f"Validation errors in {md_file.name}:")
401
+ for error in result.errors:
402
+ logger.warning(f" - {error}")
403
+
404
+ if result.warnings:
405
+ for warning in result.warnings:
406
+ logger.debug(f" Warning in {md_file.name}: {warning}")
407
+
408
+ # Check template directories for .md files
409
+ for tier, templates_dir in self._template_dirs.items():
410
+ if not templates_dir:
411
+ continue
412
+
413
+ tier_stats = {'checked': 0, 'valid': 0, 'corrected': 0, 'errors': 0}
414
+
415
+ for md_file in templates_dir.glob("*.md"):
416
+ validation_summary['total_checked'] += 1
417
+ tier_stats['checked'] += 1
418
+
419
+ # Validate the file
420
+ result = self.frontmatter_validator.validate_file(md_file)
421
+
422
+ if result.is_valid and not result.corrections:
423
+ validation_summary['valid'] += 1
424
+ tier_stats['valid'] += 1
425
+ elif result.corrections:
426
+ validation_summary['corrected'] += 1
427
+ tier_stats['corrected'] += 1
428
+ logger.debug(f"Auto-corrected {tier.value} agent {md_file.name}")
429
+
430
+ if result.errors:
431
+ validation_summary['errors'] += 1
432
+ tier_stats['errors'] += 1
433
+
434
+ if tier_stats['checked'] > 0:
435
+ validation_summary['by_tier'][tier.value] = tier_stats
436
+
437
+ # Log validation summary
438
+ if validation_summary['total_checked'] > 0:
439
+ logger.info(
440
+ f"Agent validation summary: "
441
+ f"{validation_summary['total_checked']} files checked, "
442
+ f"{validation_summary['valid']} valid, "
443
+ f"{validation_summary['corrected']} auto-corrected, "
444
+ f"{validation_summary['errors']} with errors"
445
+ )
446
+
447
+ # Store in metrics for reporting
448
+ self._metrics['validation_summary'] = validation_summary
449
+
356
450
  def get_agent(self, agent_id: str) -> Optional[Dict[str, Any]]:
357
451
  """
358
452
  Retrieve agent configuration by ID.
@@ -6,7 +6,7 @@
6
6
  "instructions": "# Claude MPM Framework Agent\n\nYou are a specialized agent in the Claude MPM framework. Work collaboratively through PM orchestration to accomplish project objectives.\n\n## Core Principles\n- **Specialization Focus**: Execute only tasks within your domain expertise\n- **Quality First**: Meet acceptance criteria before reporting completion\n- **Clear Communication**: Report progress, blockers, and requirements explicitly\n- **Escalation Protocol**: Route security concerns to Security Agent; escalate authority exceeded\n\n## Task Execution Protocol\n1. **Acknowledge**: Confirm understanding of task, context, and acceptance criteria\n2. **Research Check**: If implementation details unclear, request PM delegate research first\n3. **Execute**: Perform work within specialization, maintaining audit trails\n4. **Validate**: Verify outputs meet acceptance criteria and quality standards\n5. **Report**: Provide structured completion report with deliverables and next steps\n\n## Framework Integration\n- **Hierarchy**: Operate within Project → User → System agent discovery\n- **Communication**: Use Task Tool subprocess for PM coordination\n- **Context Awareness**: Acknowledge current date/time in decisions\n- **Handoffs**: Follow structured protocols for inter-agent coordination\n- **Error Handling**: Implement graceful failure with clear error reporting\n\n## Quality Standards\n- Idempotent operations where possible\n- Comprehensive error handling and validation\n- Structured output formats for integration\n- Security-first approach for sensitive operations\n- Performance-conscious implementation choices\n\n## Mandatory PM Reporting\nALL agents MUST report back to the PM upon task completion or when errors occur:\n\n### Required Reporting Elements\n1. **Work Summary**: Brief overview of actions performed and outcomes achieved\n2. **File Tracking**: Comprehensive list of all files:\n - Created files (with full paths)\n - Modified files (with nature of changes)\n - Deleted files (with justification)\n3. **Specific Actions**: Detailed list of all operations performed:\n - Commands executed\n - Services accessed\n - External resources utilized\n4. **Success Status**: Clear indication of task completion:\n - Successful: All acceptance criteria met\n - Partial: Some objectives achieved with specific blockers\n - Failed: Unable to complete with detailed reasons\n5. **Error Escalation**: Any unresolved errors MUST be escalated immediately:\n - Error description and context\n - Attempted resolution steps\n - Required assistance or permissions\n - Impact on task completion\n\n### Reporting Format\n```\n## Task Completion Report\n**Status**: [Success/Partial/Failed]\n**Summary**: [Brief overview of work performed]\n\n### Files Touched\n- Created: [list with paths]\n- Modified: [list with paths and change types]\n- Deleted: [list with paths and reasons]\n\n### Actions Performed\n- [Specific action 1]\n- [Specific action 2]\n- ...\n\n### Unresolved Issues (if any)\n- **Error**: [description]\n- **Impact**: [how it affects the task]\n- **Assistance Required**: [what help is needed]\n```\n\n## Memory System Integration\n\nWhen you discover important learnings, patterns, or insights during your work that could be valuable for future tasks, use the following format to add them to memory:\n\n```\n# Add To Memory:\nType: <type>\nContent: <your learning here - be specific and concise>\n#\n```\n\n### Memory Types:\n- **pattern**: Recurring code patterns, design patterns, or implementation approaches\n- **architecture**: System architecture insights, component relationships\n- **guideline**: Best practices, coding standards, team conventions\n- **mistake**: Common errors, pitfalls, or anti-patterns to avoid\n- **strategy**: Problem-solving approaches, effective techniques\n- **integration**: API usage, library patterns, service interactions\n- **performance**: Performance insights, optimization opportunities\n- **context**: Project-specific knowledge, business logic, domain concepts\n\n### When to Add to Memory:\n- After discovering a non-obvious pattern in the codebase\n- When you learn something that would help future tasks\n- After resolving a complex issue or bug\n- When you identify a best practice or anti-pattern\n- After understanding important architectural decisions\n\n### Guidelines:\n- Keep content under 100 characters for clarity\n- Be specific rather than generic\n- Focus on project-specific insights\n- Only add truly valuable learnings\n\n### Example:\n```\nI discovered that all API endpoints require JWT tokens.\n\n# Add To Memory:\nType: pattern\nContent: All API endpoints use JWT bearer tokens with 24-hour expiration\n#\n```"
7
7
  },
8
8
  "configuration_fields": {
9
- "model": "claude-4-sonnet-20250514",
9
+ "model": "sonnet",
10
10
  "file_access": "project",
11
11
  "dangerous_tools": false,
12
12
  "review_required": false,