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.
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/CLAUDE.md +25 -16
- {claude_mpm-3.5.2/src/claude_mpm.egg-info → claude_mpm-3.5.4}/PKG-INFO +18 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/README.md +17 -2
- claude_mpm-3.5.4/VERSION +1 -0
- claude_mpm-3.5.4/src/claude_mpm/VERSION +1 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/INSTRUCTIONS.md +2 -2
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/agent_loader.py +109 -15
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/base_agent.json +1 -1
- claude_mpm-3.5.4/src/claude_mpm/agents/frontmatter_validator.py +448 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/data_engineer.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/documentation.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/engineer.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/ops.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/pm.json +5 -4
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/qa.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/research.json +8 -7
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/security.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/test_integration.json +4 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/version_control.json +4 -3
- claude_mpm-3.5.4/src/claude_mpm/cli/commands/agents.py +539 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/parser.py +36 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/constants.py +2 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/agent_registry.py +4 -1
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/claude_runner.py +224 -8
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/agent_deployment.py +39 -9
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/agent_registry.py +22 -1
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/validation/agent_validator.py +56 -1
- {claude_mpm-3.5.2 → claude_mpm-3.5.4/src/claude_mpm.egg-info}/PKG-INFO +18 -3
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/SOURCES.txt +1 -0
- claude_mpm-3.5.2/VERSION +0 -1
- claude_mpm-3.5.2/src/claude_mpm/VERSION +0 -1
- claude_mpm-3.5.2/src/claude_mpm/cli/commands/agents.py +0 -191
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/LICENSE +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/MANIFEST.in +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/claude-mpm +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/pyproject.toml +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/requirements.txt +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/scripts/run_mpm.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/scripts/ticket +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/setup.cfg +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/setup.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/__main__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/.claude-mpm/memories/version_control_agent.md +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/__main__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/info.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/memory.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/monitor.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/run.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/commands/tickets.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli/utils.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/cli_module/migration_example.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/agent_config.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/paths.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/config/socketio_config.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/config_paths.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/framework_loader.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/hook_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/socketio_pool.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/index.html +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/templates/index.html +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/deployment_paths.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/init.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/models/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/models/agent_definition.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/management/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/async_session_logger.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/claude_session_logger.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/exceptions.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {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
- {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
- {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
- {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
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {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
- {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
- {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
- {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
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/health_monitor.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/hook_service.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/builder.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/optimizer.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/memory/router.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/optimized_hook_service.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/project_analyzer.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/project_registry.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/recovery_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/response_tracker.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/socketio_client_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/socketio_server.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/standalone_socketio_server.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/ticket_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/ticket_manager_di.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/ticketing_service_original.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/ticket_wrapper.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/dependency_manager.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/paths.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/utils/session_logging.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-3.5.2 → claude_mpm-3.5.4}/src/claude_mpm.egg-info/requires.txt +0 -0
- {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. | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
            version: 2.0.0
         | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 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. | 
| 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/ | 
| 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/ | 
| 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/ | 
| 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/ | 
| 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
         | 
    
        claude_mpm-3.5.4/VERSION
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            3.5.4
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            3.5.4
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            <!-- FRAMEWORK_VERSION:  | 
| 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  | 
| 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  | 
| 105 | 
            +
                Get directories containing agent JSON files across all tiers.
         | 
| 105 106 |  | 
| 106 | 
            -
                Returns a dictionary mapping tiers to their  | 
| 107 | 
            -
                - PROJECT: .claude-mpm/agents | 
| 108 | 
            -
                - USER: ~/.claude-mpm/agents | 
| 109 | 
            -
                - SYSTEM: Built-in  | 
| 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" | 
| 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" | 
| 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  | 
| 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  | 
| 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  | 
| 152 | 
            +
                    Path: Absolute path to the system agents directory
         | 
| 152 153 | 
             
                """
         | 
| 153 154 | 
             
                return Path(__file__).parent / "templates"
         | 
| 154 155 |  | 
| 155 156 |  | 
| 156 | 
            -
            # Agent  | 
| 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  | 
| 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  | 
| 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  | 
| 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": " | 
| 9 | 
            +
                "model": "sonnet",
         | 
| 10 10 | 
             
                "file_access": "project",
         | 
| 11 11 | 
             
                "dangerous_tools": false,
         | 
| 12 12 | 
             
                "review_required": false,
         |