claude-mpm 3.7.8__py3-none-any.whl → 3.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_PM.md +0 -106
- claude_mpm/agents/INSTRUCTIONS.md +0 -96
- claude_mpm/agents/MEMORY.md +94 -0
- claude_mpm/agents/WORKFLOW.md +86 -0
- claude_mpm/agents/templates/code_analyzer.json +2 -2
- claude_mpm/agents/templates/data_engineer.json +1 -1
- claude_mpm/agents/templates/documentation.json +1 -1
- claude_mpm/agents/templates/engineer.json +1 -1
- claude_mpm/agents/templates/ops.json +1 -1
- claude_mpm/agents/templates/qa.json +1 -1
- claude_mpm/agents/templates/research.json +1 -1
- claude_mpm/agents/templates/security.json +1 -1
- claude_mpm/agents/templates/ticketing.json +3 -8
- claude_mpm/agents/templates/version_control.json +1 -1
- claude_mpm/agents/templates/web_qa.json +2 -2
- claude_mpm/agents/templates/web_ui.json +2 -2
- claude_mpm/cli/__init__.py +2 -2
- claude_mpm/cli/commands/__init__.py +2 -1
- claude_mpm/cli/commands/agents.py +8 -3
- claude_mpm/cli/commands/tickets.py +596 -19
- claude_mpm/cli/parser.py +217 -5
- claude_mpm/config/__init__.py +30 -39
- claude_mpm/config/socketio_config.py +8 -5
- claude_mpm/constants.py +13 -0
- claude_mpm/core/__init__.py +8 -18
- claude_mpm/core/cache.py +596 -0
- claude_mpm/core/claude_runner.py +166 -622
- claude_mpm/core/config.py +7 -3
- claude_mpm/core/constants.py +339 -0
- claude_mpm/core/container.py +548 -38
- claude_mpm/core/exceptions.py +392 -0
- claude_mpm/core/framework_loader.py +249 -93
- claude_mpm/core/interactive_session.py +479 -0
- claude_mpm/core/interfaces.py +424 -0
- claude_mpm/core/lazy.py +467 -0
- claude_mpm/core/logging_config.py +444 -0
- claude_mpm/core/oneshot_session.py +465 -0
- claude_mpm/core/optimized_agent_loader.py +485 -0
- claude_mpm/core/optimized_startup.py +490 -0
- claude_mpm/core/service_registry.py +52 -26
- claude_mpm/core/socketio_pool.py +162 -5
- claude_mpm/core/types.py +292 -0
- claude_mpm/core/typing_utils.py +477 -0
- claude_mpm/hooks/claude_hooks/hook_handler.py +213 -99
- claude_mpm/init.py +2 -1
- claude_mpm/services/__init__.py +78 -14
- claude_mpm/services/agent/__init__.py +24 -0
- claude_mpm/services/agent/deployment.py +2548 -0
- claude_mpm/services/agent/management.py +598 -0
- claude_mpm/services/agent/registry.py +813 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +728 -308
- claude_mpm/services/agents/memory/agent_memory_manager.py +160 -4
- claude_mpm/services/async_session_logger.py +8 -3
- claude_mpm/services/communication/__init__.py +21 -0
- claude_mpm/services/communication/socketio.py +1933 -0
- claude_mpm/services/communication/websocket.py +479 -0
- claude_mpm/services/core/__init__.py +123 -0
- claude_mpm/services/core/base.py +247 -0
- claude_mpm/services/core/interfaces.py +951 -0
- claude_mpm/services/framework_claude_md_generator/__init__.py +10 -3
- claude_mpm/services/framework_claude_md_generator/deployment_manager.py +14 -11
- claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +23 -23
- claude_mpm/services/framework_claude_md_generator.py +3 -2
- claude_mpm/services/health_monitor.py +4 -3
- claude_mpm/services/hook_service.py +64 -4
- claude_mpm/services/infrastructure/__init__.py +21 -0
- claude_mpm/services/infrastructure/logging.py +202 -0
- claude_mpm/services/infrastructure/monitoring.py +893 -0
- claude_mpm/services/memory/indexed_memory.py +648 -0
- claude_mpm/services/project/__init__.py +21 -0
- claude_mpm/services/project/analyzer.py +864 -0
- claude_mpm/services/project/registry.py +608 -0
- claude_mpm/services/project_analyzer.py +95 -2
- claude_mpm/services/recovery_manager.py +15 -9
- claude_mpm/services/response_tracker.py +3 -5
- claude_mpm/services/socketio/__init__.py +25 -0
- claude_mpm/services/socketio/handlers/__init__.py +25 -0
- claude_mpm/services/socketio/handlers/base.py +121 -0
- claude_mpm/services/socketio/handlers/connection.py +198 -0
- claude_mpm/services/socketio/handlers/file.py +213 -0
- claude_mpm/services/socketio/handlers/git.py +723 -0
- claude_mpm/services/socketio/handlers/memory.py +27 -0
- claude_mpm/services/socketio/handlers/project.py +25 -0
- claude_mpm/services/socketio/handlers/registry.py +145 -0
- claude_mpm/services/socketio_client_manager.py +12 -7
- claude_mpm/services/socketio_server.py +156 -30
- claude_mpm/services/ticket_manager.py +172 -9
- claude_mpm/services/ticket_manager_di.py +1 -1
- claude_mpm/services/version_control/semantic_versioning.py +80 -7
- claude_mpm/services/version_control/version_parser.py +528 -0
- claude_mpm/utils/error_handler.py +1 -1
- claude_mpm/validation/agent_validator.py +27 -14
- claude_mpm/validation/frontmatter_validator.py +231 -0
- {claude_mpm-3.7.8.dist-info → claude_mpm-3.9.0.dist-info}/METADATA +38 -128
- {claude_mpm-3.7.8.dist-info → claude_mpm-3.9.0.dist-info}/RECORD +100 -59
- {claude_mpm-3.7.8.dist-info → claude_mpm-3.9.0.dist-info}/WHEEL +0 -0
- {claude_mpm-3.7.8.dist-info → claude_mpm-3.9.0.dist-info}/entry_points.txt +0 -0
- {claude_mpm-3.7.8.dist-info → claude_mpm-3.9.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-3.7.8.dist-info → claude_mpm-3.9.0.dist-info}/top_level.txt +0 -0
| @@ -0,0 +1,231 @@ | |
| 1 | 
            +
            """
         | 
| 2 | 
            +
            Claude Code Frontmatter Validator
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Validates agent frontmatter against Claude Code Desktop specification.
         | 
| 5 | 
            +
            Critical for ensuring agents work correctly with Claude Desktop.
         | 
| 6 | 
            +
            """
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            import re
         | 
| 9 | 
            +
            from pathlib import Path
         | 
| 10 | 
            +
            from typing import Dict, List, Optional, Tuple
         | 
| 11 | 
            +
            import yaml
         | 
| 12 | 
            +
             | 
| 13 | 
            +
             | 
| 14 | 
            +
            class FrontmatterValidator:
         | 
| 15 | 
            +
                """Validates agent frontmatter against Claude Code specification."""
         | 
| 16 | 
            +
                
         | 
| 17 | 
            +
                # Claude Code name pattern: lowercase letters, numbers, hyphens only
         | 
| 18 | 
            +
                # NO UNDERSCORES, NO UPPERCASE, NO SPECIAL CHARACTERS
         | 
| 19 | 
            +
                NAME_PATTERN = re.compile(r'^[a-z0-9]+(-[a-z0-9]+)*$')
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
                # Valid tool names (from Claude Code spec)
         | 
| 22 | 
            +
                VALID_TOOLS = {
         | 
| 23 | 
            +
                    'Read', 'Write', 'Edit', 'MultiEdit', 'Bash', 'Grep', 'Glob', 'LS',
         | 
| 24 | 
            +
                    'WebSearch', 'WebFetch', 'TodoWrite', 'BashOutput', 'KillBash',
         | 
| 25 | 
            +
                    'NotebookEdit', 'Task', 'ExitPlanMode'
         | 
| 26 | 
            +
                }
         | 
| 27 | 
            +
                
         | 
| 28 | 
            +
                # Valid model tiers
         | 
| 29 | 
            +
                VALID_MODELS = {'opus', 'sonnet', 'haiku'}
         | 
| 30 | 
            +
                
         | 
| 31 | 
            +
                # Required fields in frontmatter
         | 
| 32 | 
            +
                REQUIRED_FIELDS = {'name', 'description', 'tools'}
         | 
| 33 | 
            +
                
         | 
| 34 | 
            +
                @classmethod
         | 
| 35 | 
            +
                def validate_name(cls, name: str) -> Tuple[bool, Optional[str]]:
         | 
| 36 | 
            +
                    """
         | 
| 37 | 
            +
                    Validate agent name field against Claude Code spec.
         | 
| 38 | 
            +
                    
         | 
| 39 | 
            +
                    Args:
         | 
| 40 | 
            +
                        name: Agent name to validate
         | 
| 41 | 
            +
                        
         | 
| 42 | 
            +
                    Returns:
         | 
| 43 | 
            +
                        (is_valid, error_message)
         | 
| 44 | 
            +
                    """
         | 
| 45 | 
            +
                    if not name:
         | 
| 46 | 
            +
                        return False, "Name field is required"
         | 
| 47 | 
            +
                    
         | 
| 48 | 
            +
                    if not cls.NAME_PATTERN.match(name):
         | 
| 49 | 
            +
                        return False, (
         | 
| 50 | 
            +
                            f"Invalid name '{name}'. Must match pattern ^[a-z0-9]+(-[a-z0-9]+)*$ "
         | 
| 51 | 
            +
                            "(lowercase letters, numbers, and hyphens only - NO underscores!)"
         | 
| 52 | 
            +
                        )
         | 
| 53 | 
            +
                    
         | 
| 54 | 
            +
                    if len(name) > 50:
         | 
| 55 | 
            +
                        return False, f"Name '{name}' too long (max 50 characters)"
         | 
| 56 | 
            +
                    
         | 
| 57 | 
            +
                    return True, None
         | 
| 58 | 
            +
                
         | 
| 59 | 
            +
                @classmethod
         | 
| 60 | 
            +
                def validate_tools(cls, tools: str) -> Tuple[bool, Optional[str]]:
         | 
| 61 | 
            +
                    """
         | 
| 62 | 
            +
                    Validate tools field format and content.
         | 
| 63 | 
            +
                    
         | 
| 64 | 
            +
                    CRITICAL: Tools must be comma-separated WITHOUT spaces!
         | 
| 65 | 
            +
                    
         | 
| 66 | 
            +
                    Args:
         | 
| 67 | 
            +
                        tools: Tools string to validate
         | 
| 68 | 
            +
                        
         | 
| 69 | 
            +
                    Returns:
         | 
| 70 | 
            +
                        (is_valid, error_message)
         | 
| 71 | 
            +
                    """
         | 
| 72 | 
            +
                    if not tools:
         | 
| 73 | 
            +
                        return False, "Tools field is required"
         | 
| 74 | 
            +
                    
         | 
| 75 | 
            +
                    # Check for spaces after commas (CRITICAL ERROR)
         | 
| 76 | 
            +
                    if ', ' in tools:
         | 
| 77 | 
            +
                        return False, (
         | 
| 78 | 
            +
                            f"CRITICAL: Tools contain spaces after commas! '{tools}' "
         | 
| 79 | 
            +
                            "Must be comma-separated WITHOUT spaces (e.g., 'Read,Write,Edit')"
         | 
| 80 | 
            +
                        )
         | 
| 81 | 
            +
                    
         | 
| 82 | 
            +
                    # Validate individual tools
         | 
| 83 | 
            +
                    tool_list = tools.split(',')
         | 
| 84 | 
            +
                    invalid_tools = [t for t in tool_list if t not in cls.VALID_TOOLS]
         | 
| 85 | 
            +
                    
         | 
| 86 | 
            +
                    if invalid_tools:
         | 
| 87 | 
            +
                        return False, f"Invalid tools: {', '.join(invalid_tools)}. Valid tools: {', '.join(sorted(cls.VALID_TOOLS))}"
         | 
| 88 | 
            +
                    
         | 
| 89 | 
            +
                    return True, None
         | 
| 90 | 
            +
                
         | 
| 91 | 
            +
                @classmethod
         | 
| 92 | 
            +
                def validate_model(cls, model: str) -> Tuple[bool, Optional[str]]:
         | 
| 93 | 
            +
                    """
         | 
| 94 | 
            +
                    Validate model field.
         | 
| 95 | 
            +
                    
         | 
| 96 | 
            +
                    Args:
         | 
| 97 | 
            +
                        model: Model tier to validate
         | 
| 98 | 
            +
                        
         | 
| 99 | 
            +
                    Returns:
         | 
| 100 | 
            +
                        (is_valid, error_message)
         | 
| 101 | 
            +
                    """
         | 
| 102 | 
            +
                    if model and model not in cls.VALID_MODELS:
         | 
| 103 | 
            +
                        return False, f"Invalid model '{model}'. Must be one of: {', '.join(cls.VALID_MODELS)}"
         | 
| 104 | 
            +
                    
         | 
| 105 | 
            +
                    return True, None
         | 
| 106 | 
            +
                
         | 
| 107 | 
            +
                @classmethod
         | 
| 108 | 
            +
                def validate_frontmatter(cls, frontmatter: Dict) -> List[str]:
         | 
| 109 | 
            +
                    """
         | 
| 110 | 
            +
                    Validate complete frontmatter structure.
         | 
| 111 | 
            +
                    
         | 
| 112 | 
            +
                    Args:
         | 
| 113 | 
            +
                        frontmatter: Parsed frontmatter dictionary
         | 
| 114 | 
            +
                        
         | 
| 115 | 
            +
                    Returns:
         | 
| 116 | 
            +
                        List of validation errors (empty if valid)
         | 
| 117 | 
            +
                    """
         | 
| 118 | 
            +
                    errors = []
         | 
| 119 | 
            +
                    
         | 
| 120 | 
            +
                    # Check required fields
         | 
| 121 | 
            +
                    missing = cls.REQUIRED_FIELDS - set(frontmatter.keys())
         | 
| 122 | 
            +
                    if missing:
         | 
| 123 | 
            +
                        errors.append(f"Missing required fields: {', '.join(missing)}")
         | 
| 124 | 
            +
                    
         | 
| 125 | 
            +
                    # Validate name
         | 
| 126 | 
            +
                    if 'name' in frontmatter:
         | 
| 127 | 
            +
                        valid, error = cls.validate_name(frontmatter['name'])
         | 
| 128 | 
            +
                        if not valid:
         | 
| 129 | 
            +
                            errors.append(error)
         | 
| 130 | 
            +
                    
         | 
| 131 | 
            +
                    # Validate tools
         | 
| 132 | 
            +
                    if 'tools' in frontmatter:
         | 
| 133 | 
            +
                        valid, error = cls.validate_tools(frontmatter['tools'])
         | 
| 134 | 
            +
                        if not valid:
         | 
| 135 | 
            +
                            errors.append(error)
         | 
| 136 | 
            +
                    
         | 
| 137 | 
            +
                    # Validate model
         | 
| 138 | 
            +
                    if 'model' in frontmatter:
         | 
| 139 | 
            +
                        valid, error = cls.validate_model(frontmatter['model'])
         | 
| 140 | 
            +
                        if not valid:
         | 
| 141 | 
            +
                            errors.append(error)
         | 
| 142 | 
            +
                    
         | 
| 143 | 
            +
                    # Validate description
         | 
| 144 | 
            +
                    if 'description' in frontmatter:
         | 
| 145 | 
            +
                        desc = frontmatter['description']
         | 
| 146 | 
            +
                        if len(desc) < 10:
         | 
| 147 | 
            +
                            errors.append(f"Description too short ({len(desc)} chars, min 10)")
         | 
| 148 | 
            +
                        if len(desc) > 200:
         | 
| 149 | 
            +
                            errors.append(f"Description too long ({len(desc)} chars, max 200)")
         | 
| 150 | 
            +
                    
         | 
| 151 | 
            +
                    return errors
         | 
| 152 | 
            +
                
         | 
| 153 | 
            +
                @classmethod
         | 
| 154 | 
            +
                def validate_agent_file(cls, file_path: Path) -> List[str]:
         | 
| 155 | 
            +
                    """
         | 
| 156 | 
            +
                    Validate an agent markdown file.
         | 
| 157 | 
            +
                    
         | 
| 158 | 
            +
                    Args:
         | 
| 159 | 
            +
                        file_path: Path to agent .md file
         | 
| 160 | 
            +
                        
         | 
| 161 | 
            +
                    Returns:
         | 
| 162 | 
            +
                        List of validation errors (empty if valid)
         | 
| 163 | 
            +
                    """
         | 
| 164 | 
            +
                    errors = []
         | 
| 165 | 
            +
                    
         | 
| 166 | 
            +
                    try:
         | 
| 167 | 
            +
                        with open(file_path, 'r') as f:
         | 
| 168 | 
            +
                            content = f.read()
         | 
| 169 | 
            +
                        
         | 
| 170 | 
            +
                        # Check for frontmatter markers
         | 
| 171 | 
            +
                        if not content.startswith('---\n'):
         | 
| 172 | 
            +
                            errors.append("File must start with '---' frontmatter marker")
         | 
| 173 | 
            +
                            return errors
         | 
| 174 | 
            +
                        
         | 
| 175 | 
            +
                        # Extract frontmatter
         | 
| 176 | 
            +
                        end_marker = content.find('\n---\n', 4)
         | 
| 177 | 
            +
                        if end_marker == -1:
         | 
| 178 | 
            +
                            errors.append("Missing closing '---' frontmatter marker")
         | 
| 179 | 
            +
                            return errors
         | 
| 180 | 
            +
                        
         | 
| 181 | 
            +
                        frontmatter_text = content[4:end_marker]
         | 
| 182 | 
            +
                        
         | 
| 183 | 
            +
                        # Parse YAML
         | 
| 184 | 
            +
                        try:
         | 
| 185 | 
            +
                            frontmatter = yaml.safe_load(frontmatter_text)
         | 
| 186 | 
            +
                        except yaml.YAMLError as e:
         | 
| 187 | 
            +
                            errors.append(f"Invalid YAML in frontmatter: {e}")
         | 
| 188 | 
            +
                            return errors
         | 
| 189 | 
            +
                        
         | 
| 190 | 
            +
                        # Validate frontmatter content
         | 
| 191 | 
            +
                        validation_errors = cls.validate_frontmatter(frontmatter)
         | 
| 192 | 
            +
                        errors.extend(validation_errors)
         | 
| 193 | 
            +
                        
         | 
| 194 | 
            +
                    except Exception as e:
         | 
| 195 | 
            +
                        errors.append(f"Error reading file: {e}")
         | 
| 196 | 
            +
                    
         | 
| 197 | 
            +
                    return errors
         | 
| 198 | 
            +
             | 
| 199 | 
            +
             | 
| 200 | 
            +
            def main():
         | 
| 201 | 
            +
                """Command-line validation tool."""
         | 
| 202 | 
            +
                import sys
         | 
| 203 | 
            +
                
         | 
| 204 | 
            +
                if len(sys.argv) < 2:
         | 
| 205 | 
            +
                    print("Usage: python frontmatter_validator.py <agent.md> [agent2.md ...]")
         | 
| 206 | 
            +
                    sys.exit(1)
         | 
| 207 | 
            +
                
         | 
| 208 | 
            +
                all_valid = True
         | 
| 209 | 
            +
                
         | 
| 210 | 
            +
                for file_path in sys.argv[1:]:
         | 
| 211 | 
            +
                    path = Path(file_path)
         | 
| 212 | 
            +
                    if not path.exists():
         | 
| 213 | 
            +
                        print(f"❌ {file_path}: File not found")
         | 
| 214 | 
            +
                        all_valid = False
         | 
| 215 | 
            +
                        continue
         | 
| 216 | 
            +
                    
         | 
| 217 | 
            +
                    errors = FrontmatterValidator.validate_agent_file(path)
         | 
| 218 | 
            +
                    
         | 
| 219 | 
            +
                    if errors:
         | 
| 220 | 
            +
                        print(f"❌ {file_path}:")
         | 
| 221 | 
            +
                        for error in errors:
         | 
| 222 | 
            +
                            print(f"   - {error}")
         | 
| 223 | 
            +
                        all_valid = False
         | 
| 224 | 
            +
                    else:
         | 
| 225 | 
            +
                        print(f"✅ {file_path}: Valid")
         | 
| 226 | 
            +
                
         | 
| 227 | 
            +
                sys.exit(0 if all_valid else 1)
         | 
| 228 | 
            +
             | 
| 229 | 
            +
             | 
| 230 | 
            +
            if __name__ == "__main__":
         | 
| 231 | 
            +
                main()
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.4
         | 
| 2 2 | 
             
            Name: claude-mpm
         | 
| 3 | 
            -
            Version: 3. | 
| 3 | 
            +
            Version: 3.9.0
         | 
| 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
         | 
| @@ -32,7 +32,7 @@ Requires-Dist: watchdog>=3.0.0 | |
| 32 32 | 
             
            Requires-Dist: tree-sitter>=0.21.0
         | 
| 33 33 | 
             
            Requires-Dist: python-socketio>=5.11.0
         | 
| 34 34 | 
             
            Requires-Dist: aiohttp>=3.9.0
         | 
| 35 | 
            -
            Requires-Dist: aiohttp-cors | 
| 35 | 
            +
            Requires-Dist: aiohttp-cors<0.8.0,>=0.7.0
         | 
| 36 36 | 
             
            Requires-Dist: python-engineio>=4.8.0
         | 
| 37 37 | 
             
            Requires-Dist: python-frontmatter>=1.0.0
         | 
| 38 38 | 
             
            Requires-Dist: mistune>=3.0.0
         | 
| @@ -44,6 +44,10 @@ Requires-Dist: pytest-cov; extra == "dev" | |
| 44 44 | 
             
            Requires-Dist: black; extra == "dev"
         | 
| 45 45 | 
             
            Requires-Dist: flake8; extra == "dev"
         | 
| 46 46 | 
             
            Requires-Dist: mypy; extra == "dev"
         | 
| 47 | 
            +
            Provides-Extra: docs
         | 
| 48 | 
            +
            Requires-Dist: sphinx>=7.2.0; extra == "docs"
         | 
| 49 | 
            +
            Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
         | 
| 50 | 
            +
            Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
         | 
| 47 51 | 
             
            Provides-Extra: monitor
         | 
| 48 52 | 
             
            Provides-Extra: agents
         | 
| 49 53 | 
             
            Requires-Dist: bandit>=1.7.5; extra == "agents"
         | 
| @@ -109,168 +113,74 @@ A powerful orchestration framework for Claude Code that enables multi-agent work | |
| 109 113 | 
             
            - 🔍 **Git Integration**: View diffs and track changes across projects
         | 
| 110 114 | 
             
            - 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
         | 
| 111 115 |  | 
| 112 | 
            -
            ## Installation
         | 
| 116 | 
            +
            ## Quick Installation
         | 
| 113 117 |  | 
| 114 118 | 
             
            ```bash
         | 
| 115 | 
            -
            # Basic installation - pure Python, no compilation required
         | 
| 116 119 | 
             
            pip install claude-mpm
         | 
| 117 | 
            -
             | 
| 118 | 
            -
            # Install with development dependencies
         | 
| 119 | 
            -
            pip install "claude-mpm[dev]"
         | 
| 120 | 
            -
             | 
| 121 | 
            -
            # Install with agent dependencies - pure Python tools
         | 
| 122 | 
            -
            pip install "claude-mpm[agents]"
         | 
| 123 | 
            -
             | 
| 124 | 
            -
            # Install with all optional dependencies
         | 
| 125 | 
            -
            pip install "claude-mpm[agents,dev]"
         | 
| 126 120 | 
             
            ```
         | 
| 127 121 |  | 
| 128 | 
            -
             | 
| 122 | 
            +
            **That's it!** See [QUICKSTART.md](QUICKSTART.md) for immediate usage or [docs/user/installation.md](docs/user/installation.md) for advanced options.
         | 
| 129 123 |  | 
| 130 | 
            -
            ##  | 
| 124 | 
            +
            ## Quick Usage
         | 
| 131 125 |  | 
| 132 126 | 
             
            ```bash
         | 
| 133 | 
            -
            #  | 
| 127 | 
            +
            # Start interactive mode (recommended)
         | 
| 134 128 | 
             
            claude-mpm
         | 
| 135 129 |  | 
| 136 | 
            -
            #  | 
| 137 | 
            -
            claude-mpm run -i "analyze this codebase" --non-interactive
         | 
| 138 | 
            -
             | 
| 139 | 
            -
            # With monitoring dashboard
         | 
| 130 | 
            +
            # Start with monitoring dashboard
         | 
| 140 131 | 
             
            claude-mpm run --monitor
         | 
| 141 | 
            -
             | 
| 142 | 
            -
            # Resume last session
         | 
| 143 | 
            -
            claude-mpm run --resume
         | 
| 144 132 | 
             
            ```
         | 
| 145 133 |  | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
            ```bash
         | 
| 149 | 
            -
            # View agent hierarchy and precedence
         | 
| 150 | 
            -
            claude-mpm agents list --by-tier
         | 
| 151 | 
            -
             | 
| 152 | 
            -
            # Inspect specific agent configuration
         | 
| 153 | 
            -
            claude-mpm agents view engineer
         | 
| 154 | 
            -
             | 
| 155 | 
            -
            # Fix agent configuration issues
         | 
| 156 | 
            -
            claude-mpm agents fix --all --dry-run
         | 
| 157 | 
            -
            ```
         | 
| 158 | 
            -
             | 
| 159 | 
            -
            For detailed usage, see [QUICKSTART.md](QUICKSTART.md)
         | 
| 160 | 
            -
             | 
| 161 | 
            -
            ### Agent Dependencies
         | 
| 162 | 
            -
             | 
| 163 | 
            -
            Claude MPM automatically manages Python dependencies required by agents. All dependencies are pure Python packages that don't require compilation. Agents can declare their dependencies in their configuration files, and the system aggregates them for easy installation.
         | 
| 164 | 
            -
             | 
| 165 | 
            -
            ```bash
         | 
| 166 | 
            -
            # Install all agent dependencies (pure Python)
         | 
| 167 | 
            -
            pip install "claude-mpm[agents]"
         | 
| 168 | 
            -
             | 
| 169 | 
            -
            # View current agent dependencies
         | 
| 170 | 
            -
            python scripts/aggregate_agent_dependencies.py --dry-run
         | 
| 171 | 
            -
             | 
| 172 | 
            -
            # Update pyproject.toml with latest agent dependencies
         | 
| 173 | 
            -
            python scripts/aggregate_agent_dependencies.py
         | 
| 174 | 
            -
            ```
         | 
| 134 | 
            +
            See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
         | 
| 175 135 |  | 
| 176 | 
            -
            **Agent developers** can declare dependencies in their agent configurations:
         | 
| 177 136 |  | 
| 178 | 
            -
             | 
| 179 | 
            -
            {
         | 
| 180 | 
            -
              "agent_id": "my_agent",
         | 
| 181 | 
            -
              "dependencies": {
         | 
| 182 | 
            -
                "python": ["pandas>=2.0.0", "numpy>=1.24.0"],
         | 
| 183 | 
            -
                "system": ["ripgrep", "git"]
         | 
| 184 | 
            -
              }
         | 
| 185 | 
            -
            }
         | 
| 186 | 
            -
            ```
         | 
| 137 | 
            +
            ## Architecture
         | 
| 187 138 |  | 
| 188 | 
            -
             | 
| 139 | 
            +
            Claude MPM v3.8.2+ features a **modern service-oriented architecture** with interface-based design, dependency injection, and intelligent caching for 50-80% performance improvements.
         | 
| 189 140 |  | 
| 190 | 
            -
             | 
| 141 | 
            +
            See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for detailed architecture information.
         | 
| 191 142 |  | 
| 192 143 | 
             
            ## Key Capabilities
         | 
| 193 144 |  | 
| 194 145 | 
             
            ### Multi-Agent Orchestration
         | 
| 195 | 
            -
            The PM agent automatically delegates work to specialized agents | 
| 196 | 
            -
            - **Research**: Codebase analysis and investigation
         | 
| 197 | 
            -
            - **Engineer**: Implementation and coding
         | 
| 198 | 
            -
            - **QA**: Testing and validation
         | 
| 199 | 
            -
            - **Documentation**: Docs and guides
         | 
| 200 | 
            -
            - **Security**: Security analysis
         | 
| 201 | 
            -
            - **Ops**: Deployment and infrastructure
         | 
| 202 | 
            -
            - **Data Engineer**: Data pipelines and AI integrations
         | 
| 203 | 
            -
            - **Test Integration**: E2E testing and cross-system validation
         | 
| 204 | 
            -
            - **Version Control**: Git workflows and release management
         | 
| 205 | 
            -
             | 
| 206 | 
            -
            **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.
         | 
| 207 | 
            -
             | 
| 208 | 
            -
            ### Session Management
         | 
| 209 | 
            -
            - All work is tracked in persistent sessions
         | 
| 210 | 
            -
            - Resume any session with `--resume`
         | 
| 211 | 
            -
            - Switch between projects with per-session directories
         | 
| 212 | 
            -
            - View session history and activity
         | 
| 146 | 
            +
            The PM agent automatically delegates work to specialized agents including Research, Engineer, QA, Documentation, Security, Ops, Data Engineer, Test Integration, and Version Control.
         | 
| 213 147 |  | 
| 214 148 | 
             
            ### Agent Memory System
         | 
| 215 | 
            -
            Agents learn and  | 
| 216 | 
            -
            - **Project-Specific Knowledge**: Automatically analyzes your codebase to understand patterns
         | 
| 217 | 
            -
            - **Continuous Learning**: Agents remember insights across sessions
         | 
| 218 | 
            -
            - **Memory Management**: Initialize, optimize, and manage agent memories
         | 
| 219 | 
            -
            - **Quick Initialization**: Use `/mpm memory init` to scan project and create memories
         | 
| 220 | 
            -
             | 
| 221 | 
            -
            ```bash
         | 
| 222 | 
            -
            # Initialize project-specific memories
         | 
| 223 | 
            -
            claude-mpm memory init
         | 
| 224 | 
            -
             | 
| 225 | 
            -
            # View memory status
         | 
| 226 | 
            -
            claude-mpm memory status
         | 
| 227 | 
            -
             | 
| 228 | 
            -
            # Add specific learning
         | 
| 229 | 
            -
            claude-mpm memory add engineer pattern "Always use async/await for I/O"
         | 
| 230 | 
            -
             | 
| 231 | 
            -
            # Start with monitoring dashboard
         | 
| 232 | 
            -
            claude-mpm run --monitor
         | 
| 233 | 
            -
            ```
         | 
| 234 | 
            -
             | 
| 235 | 
            -
            See [docs/MEMORY.md](docs/MEMORY.md) for comprehensive memory system documentation.
         | 
| 149 | 
            +
            Agents learn project-specific patterns and remember insights across sessions. Initialize with `claude-mpm memory init`.
         | 
| 236 150 |  | 
| 237 151 | 
             
            ### Real-Time Monitoring
         | 
| 238 | 
            -
            The `--monitor` flag opens a web dashboard showing | 
| 239 | 
            -
            - Live agent activity and delegations
         | 
| 240 | 
            -
            - File operations with git diff viewer
         | 
| 241 | 
            -
            - Tool usage and results
         | 
| 242 | 
            -
            - Session management UI
         | 
| 152 | 
            +
            The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
         | 
| 243 153 |  | 
| 244 | 
            -
            See [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for  | 
| 154 | 
            +
            See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md](docs/developer/11-dashboard/README.md) for details.
         | 
| 245 155 |  | 
| 246 156 |  | 
| 247 157 | 
             
            ## Documentation
         | 
| 248 158 |  | 
| 159 | 
            +
            ### User Documentation
         | 
| 249 160 | 
             
            - **[Quick Start Guide](QUICKSTART.md)** - Get running in 5 minutes
         | 
| 250 | 
            -
            - **[ | 
| 251 | 
            -
            - **[Monitoring Dashboard](docs/developer/11-dashboard/README.md)** - Real-time monitoring features
         | 
| 252 | 
            -
            - **[Project Structure](docs/STRUCTURE.md)** - Codebase organization
         | 
| 253 | 
            -
            - **[Deployment Guide](docs/DEPLOY.md)** - Publishing and versioning
         | 
| 161 | 
            +
            - **[Installation Guide](docs/user/installation.md)** - Complete installation options
         | 
| 254 162 | 
             
            - **[User Guide](docs/user/)** - Detailed usage documentation
         | 
| 255 | 
            -
            - **[ | 
| 163 | 
            +
            - **[Memory System](docs/MEMORY.md)** - Agent memory documentation
         | 
| 164 | 
            +
            - **[Troubleshooting](docs/user/troubleshooting.md)** - Common issues and solutions
         | 
| 165 | 
            +
             | 
| 166 | 
            +
            ### Developer Documentation
         | 
| 167 | 
            +
            - **[Architecture Overview](docs/ARCHITECTURE.md)** - Service-oriented architecture and design
         | 
| 168 | 
            +
            - **[API Reference](docs/api/)** - Complete API documentation with Sphinx
         | 
| 169 | 
            +
            - **[Service Layer Guide](docs/developer/SERVICES.md)** - Service interfaces and implementations
         | 
| 170 | 
            +
            - **[Performance Guide](docs/PERFORMANCE.md)** - Optimization and caching strategies
         | 
| 171 | 
            +
            - **[Security Guide](docs/SECURITY.md)** - Security framework and best practices
         | 
| 172 | 
            +
            - **[Testing Guide](docs/TESTING.md)** - Testing patterns and strategies
         | 
| 173 | 
            +
            - **[Migration Guide](docs/MIGRATION.md)** - Upgrading from previous versions
         | 
| 174 | 
            +
            - **[Developer Guide](docs/developer/)** - Comprehensive development documentation
         | 
| 256 175 |  | 
| 257 | 
            -
             | 
| 176 | 
            +
            ### API Documentation
         | 
| 177 | 
            +
            Comprehensive API documentation is available at [docs/api/](docs/api/) - build with `make html` in that directory.
         | 
| 258 178 |  | 
| 259 | 
            -
             | 
| 260 | 
            -
            - **Project Structure Reorganization**: Centralized path management with ClaudeMPMPaths enum
         | 
| 261 | 
            -
            - **Agent Services Hierarchy**: Reorganized agent and memory services into hierarchical structures  
         | 
| 262 | 
            -
            - **Response Logging Improvements**: Flat structure logging without session_ prefix
         | 
| 263 | 
            -
            - **Memory System Expansion**: Added data_engineer and test_integration agents with specialized keywords
         | 
| 264 | 
            -
            - **Path Management System**: Implemented centralized configuration path handling
         | 
| 179 | 
            +
            ## Recent Updates (v3.8.2)
         | 
| 265 180 |  | 
| 266 | 
            -
             | 
| 267 | 
            -
            - **Test File Migration**: Moved 66 test files from scripts/ to tests/ directory
         | 
| 268 | 
            -
            - **Documentation Archives**: Archived 35+ QA reports to docs/archive/
         | 
| 269 | 
            -
            - **Obsolete Directory Removal**: Cleaned up orchestration, docker, security, and terminal_wrapper directories
         | 
| 270 | 
            -
            - **Agent Registry Caching**: Enhanced performance with intelligent caching mechanisms
         | 
| 271 | 
            -
            - **Improved TodoWrite Integration**: Enhanced agent prefix guidelines across all agent templates
         | 
| 181 | 
            +
            **Major Architecture Refactoring (TSK-0053)**: Complete service-oriented redesign with 50-80% performance improvements, enhanced security, and interface-based design.
         | 
| 272 182 |  | 
| 273 | 
            -
            See [CHANGELOG.md](CHANGELOG.md) for full history.
         | 
| 183 | 
            +
            See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/MIGRATION.md](docs/MIGRATION.md) for upgrade instructions.
         | 
| 274 184 |  | 
| 275 185 | 
             
            ## Development
         | 
| 276 186 |  |