claude-mpm 4.15.6__py3-none-any.whl → 4.21.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_ENGINEER.md +286 -0
- claude_mpm/agents/BASE_PM.md +272 -23
- claude_mpm/agents/PM_INSTRUCTIONS.md +49 -0
- claude_mpm/agents/agent_loader.py +4 -4
- claude_mpm/agents/templates/engineer.json +5 -1
- claude_mpm/agents/templates/php-engineer.json +10 -4
- claude_mpm/agents/templates/python_engineer.json +8 -3
- claude_mpm/agents/templates/rust_engineer.json +12 -7
- claude_mpm/agents/templates/svelte-engineer.json +225 -0
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
- claude_mpm/cli/commands/mpm_init/core.py +525 -0
- claude_mpm/cli/commands/mpm_init/display.py +341 -0
- claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
- claude_mpm/cli/commands/mpm_init/modes.py +397 -0
- claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
- claude_mpm/cli/commands/mpm_init_cli.py +396 -0
- claude_mpm/cli/commands/mpm_init_handler.py +67 -1
- claude_mpm/cli/commands/skills.py +488 -0
- claude_mpm/cli/executor.py +2 -0
- claude_mpm/cli/parsers/base_parser.py +7 -0
- claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
- claude_mpm/cli/parsers/skills_parser.py +137 -0
- claude_mpm/cli/startup.py +57 -0
- claude_mpm/commands/mpm-auto-configure.md +52 -0
- claude_mpm/commands/mpm-help.md +6 -0
- claude_mpm/commands/mpm-init.md +112 -6
- claude_mpm/commands/mpm-resume.md +372 -0
- claude_mpm/commands/mpm-version.md +113 -0
- claude_mpm/commands/mpm.md +2 -0
- claude_mpm/config/agent_config.py +2 -2
- claude_mpm/constants.py +12 -0
- claude_mpm/core/config.py +42 -0
- claude_mpm/core/factories.py +1 -1
- claude_mpm/core/interfaces.py +56 -1
- claude_mpm/core/optimized_agent_loader.py +3 -3
- claude_mpm/hooks/__init__.py +8 -0
- claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
- claude_mpm/hooks/session_resume_hook.py +121 -0
- claude_mpm/models/resume_log.py +340 -0
- claude_mpm/services/agents/auto_config_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
- claude_mpm/services/agents/deployment/agent_validator.py +17 -1
- claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
- claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
- claude_mpm/services/agents/local_template_manager.py +1 -1
- claude_mpm/services/agents/recommender.py +47 -0
- claude_mpm/services/cli/resume_service.py +617 -0
- claude_mpm/services/cli/session_manager.py +87 -0
- claude_mpm/services/cli/session_pause_manager.py +504 -0
- claude_mpm/services/cli/session_resume_helper.py +372 -0
- claude_mpm/services/core/base.py +26 -11
- claude_mpm/services/core/interfaces.py +56 -1
- claude_mpm/services/core/models/agent_config.py +3 -0
- claude_mpm/services/core/models/process.py +4 -0
- claude_mpm/services/core/path_resolver.py +1 -1
- claude_mpm/services/diagnostics/models.py +21 -0
- claude_mpm/services/event_bus/relay.py +23 -7
- claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
- claude_mpm/services/local_ops/__init__.py +2 -0
- claude_mpm/services/mcp_config_manager.py +7 -131
- claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
- claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +26 -21
- claude_mpm/services/memory/failure_tracker.py +19 -4
- claude_mpm/services/session_manager.py +205 -1
- claude_mpm/services/unified/deployment_strategies/local.py +1 -1
- claude_mpm/services/version_service.py +104 -1
- claude_mpm/skills/__init__.py +21 -0
- claude_mpm/skills/agent_skills_injector.py +324 -0
- claude_mpm/skills/bundled/LICENSE_ATTRIBUTIONS.md +79 -0
- claude_mpm/skills/bundled/api-documentation.md +393 -0
- claude_mpm/skills/bundled/async-testing.md +571 -0
- claude_mpm/skills/bundled/code-review.md +143 -0
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
- claude_mpm/skills/bundled/database-migration.md +199 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
- claude_mpm/skills/bundled/docker-containerization.md +194 -0
- claude_mpm/skills/bundled/express-local-dev.md +1429 -0
- claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
- claude_mpm/skills/bundled/git-workflow.md +414 -0
- claude_mpm/skills/bundled/imagemagick.md +204 -0
- claude_mpm/skills/bundled/json-data-handling.md +223 -0
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +157 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +425 -0
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +303 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +113 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +72 -0
- claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
- claude_mpm/skills/bundled/pdf.md +141 -0
- claude_mpm/skills/bundled/performance-profiling.md +567 -0
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
- claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
- claude_mpm/skills/bundled/security-scanning.md +327 -0
- claude_mpm/skills/bundled/systematic-debugging.md +473 -0
- claude_mpm/skills/bundled/test-driven-development.md +378 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +35 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +44 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +34 -0
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +129 -0
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
- claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
- claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
- claude_mpm/skills/bundled/xlsx.md +157 -0
- claude_mpm/skills/registry.py +97 -9
- claude_mpm/skills/skills_registry.py +348 -0
- claude_mpm/skills/skills_service.py +739 -0
- claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
- claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
- claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
- claude_mpm/tools/code_tree_analyzer/core.py +380 -0
- claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
- claude_mpm/tools/code_tree_analyzer/events.py +168 -0
- claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
- claude_mpm/tools/code_tree_analyzer/models.py +39 -0
- claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
- claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
- claude_mpm/utils/agent_dependency_loader.py +2 -2
- {claude_mpm-4.15.6.dist-info → claude_mpm-4.21.3.dist-info}/METADATA +211 -33
- {claude_mpm-4.15.6.dist-info → claude_mpm-4.21.3.dist-info}/RECORD +206 -64
- claude_mpm/agents/INSTRUCTIONS_OLD_DEPRECATED.md +0 -602
- claude_mpm/cli/commands/mpm_init.py +0 -2008
- claude_mpm/tools/code_tree_analyzer.py +0 -1825
- {claude_mpm-4.15.6.dist-info → claude_mpm-4.21.3.dist-info}/WHEEL +0 -0
- {claude_mpm-4.15.6.dist-info → claude_mpm-4.21.3.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.15.6.dist-info → claude_mpm-4.21.3.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.15.6.dist-info → claude_mpm-4.21.3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Python Analyzer
|
|
4
|
+
===============
|
|
5
|
+
|
|
6
|
+
Analyzes Python source code using AST.
|
|
7
|
+
|
|
8
|
+
WHY: Python's built-in AST module provides rich structural information
|
|
9
|
+
that we can leverage for detailed analysis.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import ast
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
from typing import List, Optional
|
|
15
|
+
|
|
16
|
+
from ...core.logging_config import get_logger
|
|
17
|
+
from ..code_tree_events import CodeNodeEvent, CodeTreeEventEmitter
|
|
18
|
+
from .models import CodeNode
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class PythonAnalyzer:
|
|
22
|
+
"""Analyzes Python source code using AST."""
|
|
23
|
+
|
|
24
|
+
def __init__(self, emitter: Optional[CodeTreeEventEmitter] = None):
|
|
25
|
+
self.logger = get_logger(__name__)
|
|
26
|
+
self.emitter = emitter
|
|
27
|
+
|
|
28
|
+
def analyze_file(self, file_path: Path) -> List[CodeNode]:
|
|
29
|
+
"""Analyze a Python file and extract code structure.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
file_path: Path to Python file
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
List of code nodes found in the file
|
|
36
|
+
"""
|
|
37
|
+
nodes = []
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
with Path(file_path).open(
|
|
41
|
+
encoding="utf-8",
|
|
42
|
+
) as f:
|
|
43
|
+
source = f.read()
|
|
44
|
+
|
|
45
|
+
tree = ast.parse(source, filename=str(file_path))
|
|
46
|
+
nodes = self._extract_nodes(tree, file_path, source)
|
|
47
|
+
|
|
48
|
+
except SyntaxError as e:
|
|
49
|
+
self.logger.warning(f"Syntax error in {file_path}: {e}")
|
|
50
|
+
if self.emitter:
|
|
51
|
+
self.emitter.emit_error(str(file_path), f"Syntax error: {e}")
|
|
52
|
+
except Exception as e:
|
|
53
|
+
self.logger.error(f"Error analyzing {file_path}: {e}")
|
|
54
|
+
if self.emitter:
|
|
55
|
+
self.emitter.emit_error(str(file_path), str(e))
|
|
56
|
+
|
|
57
|
+
return nodes
|
|
58
|
+
|
|
59
|
+
def _extract_nodes(
|
|
60
|
+
self, tree: ast.AST, file_path: Path, source: str
|
|
61
|
+
) -> List[CodeNode]:
|
|
62
|
+
"""Extract code nodes from AST tree.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
tree: AST tree
|
|
66
|
+
file_path: Source file path
|
|
67
|
+
source: Source code text
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
List of extracted code nodes
|
|
71
|
+
"""
|
|
72
|
+
nodes = []
|
|
73
|
+
source.splitlines()
|
|
74
|
+
|
|
75
|
+
class NodeVisitor(ast.NodeVisitor):
|
|
76
|
+
def __init__(self, parent_name: Optional[str] = None):
|
|
77
|
+
self.parent_name = parent_name
|
|
78
|
+
self.current_class = None
|
|
79
|
+
|
|
80
|
+
def visit_ClassDef(self, node):
|
|
81
|
+
# Extract class information
|
|
82
|
+
class_node = CodeNode(
|
|
83
|
+
file_path=str(file_path),
|
|
84
|
+
node_type="class",
|
|
85
|
+
name=node.name,
|
|
86
|
+
line_start=node.lineno,
|
|
87
|
+
line_end=node.end_lineno or node.lineno,
|
|
88
|
+
has_docstring=bool(ast.get_docstring(node)),
|
|
89
|
+
decorators=[self._decorator_name(d) for d in node.decorator_list],
|
|
90
|
+
parent=self.parent_name,
|
|
91
|
+
complexity=self._calculate_complexity(node),
|
|
92
|
+
signature=self._get_class_signature(node),
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
nodes.append(class_node)
|
|
96
|
+
|
|
97
|
+
# Emit event if emitter is available
|
|
98
|
+
if self.emitter:
|
|
99
|
+
self.emitter.emit_node(
|
|
100
|
+
CodeNodeEvent(
|
|
101
|
+
file_path=str(file_path),
|
|
102
|
+
node_type="class",
|
|
103
|
+
name=node.name,
|
|
104
|
+
line_start=node.lineno,
|
|
105
|
+
line_end=node.end_lineno or node.lineno,
|
|
106
|
+
complexity=class_node.complexity,
|
|
107
|
+
has_docstring=class_node.has_docstring,
|
|
108
|
+
decorators=class_node.decorators,
|
|
109
|
+
parent=self.parent_name,
|
|
110
|
+
children_count=len(node.body),
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
# Visit class members
|
|
115
|
+
old_class = self.current_class
|
|
116
|
+
self.current_class = node.name
|
|
117
|
+
for child in node.body:
|
|
118
|
+
if isinstance(child, (ast.FunctionDef, ast.AsyncFunctionDef)):
|
|
119
|
+
self.visit_FunctionDef(child, is_method=True)
|
|
120
|
+
self.current_class = old_class
|
|
121
|
+
|
|
122
|
+
def visit_FunctionDef(self, node, is_method=False):
|
|
123
|
+
# Determine node type
|
|
124
|
+
node_type = "method" if is_method else "function"
|
|
125
|
+
parent = self.current_class if is_method else self.parent_name
|
|
126
|
+
|
|
127
|
+
# Extract function information
|
|
128
|
+
func_node = CodeNode(
|
|
129
|
+
file_path=str(file_path),
|
|
130
|
+
node_type=node_type,
|
|
131
|
+
name=node.name,
|
|
132
|
+
line_start=node.lineno,
|
|
133
|
+
line_end=node.end_lineno or node.lineno,
|
|
134
|
+
has_docstring=bool(ast.get_docstring(node)),
|
|
135
|
+
decorators=[self._decorator_name(d) for d in node.decorator_list],
|
|
136
|
+
parent=parent,
|
|
137
|
+
complexity=self._calculate_complexity(node),
|
|
138
|
+
signature=self._get_function_signature(node),
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
nodes.append(func_node)
|
|
142
|
+
|
|
143
|
+
# Emit event if emitter is available
|
|
144
|
+
if self.emitter:
|
|
145
|
+
self.emitter.emit_node(
|
|
146
|
+
CodeNodeEvent(
|
|
147
|
+
file_path=str(file_path),
|
|
148
|
+
node_type=node_type,
|
|
149
|
+
name=node.name,
|
|
150
|
+
line_start=node.lineno,
|
|
151
|
+
line_end=node.end_lineno or node.lineno,
|
|
152
|
+
complexity=func_node.complexity,
|
|
153
|
+
has_docstring=func_node.has_docstring,
|
|
154
|
+
decorators=func_node.decorators,
|
|
155
|
+
parent=parent,
|
|
156
|
+
children_count=0,
|
|
157
|
+
)
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
def visit_Assign(self, node):
|
|
161
|
+
# Handle module-level variable assignments
|
|
162
|
+
if self.current_class is None: # Only module-level assignments
|
|
163
|
+
for target in node.targets:
|
|
164
|
+
if isinstance(target, ast.Name):
|
|
165
|
+
var_node = CodeNode(
|
|
166
|
+
file_path=str(file_path),
|
|
167
|
+
node_type="variable",
|
|
168
|
+
name=target.id,
|
|
169
|
+
line_start=node.lineno,
|
|
170
|
+
line_end=node.end_lineno or node.lineno,
|
|
171
|
+
parent=self.parent_name,
|
|
172
|
+
complexity=0,
|
|
173
|
+
signature=f"{target.id} = ...",
|
|
174
|
+
)
|
|
175
|
+
nodes.append(var_node)
|
|
176
|
+
|
|
177
|
+
# Emit event if emitter is available
|
|
178
|
+
if self.emitter:
|
|
179
|
+
self.emitter.emit_node(
|
|
180
|
+
CodeNodeEvent(
|
|
181
|
+
file_path=str(file_path),
|
|
182
|
+
node_type="variable",
|
|
183
|
+
name=target.id,
|
|
184
|
+
line_start=node.lineno,
|
|
185
|
+
line_end=node.end_lineno or node.lineno,
|
|
186
|
+
parent=self.parent_name,
|
|
187
|
+
)
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
def visit_AsyncFunctionDef(self, node):
|
|
191
|
+
self.visit_FunctionDef(node)
|
|
192
|
+
|
|
193
|
+
def _decorator_name(self, decorator):
|
|
194
|
+
"""Extract decorator name from AST node."""
|
|
195
|
+
if isinstance(decorator, ast.Name):
|
|
196
|
+
return decorator.id
|
|
197
|
+
if isinstance(decorator, ast.Call):
|
|
198
|
+
if isinstance(decorator.func, ast.Name):
|
|
199
|
+
return decorator.func.id
|
|
200
|
+
if isinstance(decorator.func, ast.Attribute):
|
|
201
|
+
return decorator.func.attr
|
|
202
|
+
return "unknown"
|
|
203
|
+
|
|
204
|
+
def _calculate_complexity(self, node):
|
|
205
|
+
"""Calculate cyclomatic complexity of a node."""
|
|
206
|
+
complexity = 1 # Base complexity
|
|
207
|
+
|
|
208
|
+
for child in ast.walk(node):
|
|
209
|
+
if isinstance(
|
|
210
|
+
child, (ast.If, ast.While, ast.For, ast.ExceptHandler)
|
|
211
|
+
):
|
|
212
|
+
complexity += 1
|
|
213
|
+
elif isinstance(child, ast.BoolOp):
|
|
214
|
+
complexity += len(child.values) - 1
|
|
215
|
+
|
|
216
|
+
return complexity
|
|
217
|
+
|
|
218
|
+
def _get_function_signature(self, node):
|
|
219
|
+
"""Extract function signature."""
|
|
220
|
+
args = []
|
|
221
|
+
for arg in node.args.args:
|
|
222
|
+
args.append(arg.arg)
|
|
223
|
+
return f"{node.name}({', '.join(args)})"
|
|
224
|
+
|
|
225
|
+
def _get_class_signature(self, node):
|
|
226
|
+
"""Extract class signature."""
|
|
227
|
+
bases = []
|
|
228
|
+
for base in node.bases:
|
|
229
|
+
if isinstance(base, ast.Name):
|
|
230
|
+
bases.append(base.id)
|
|
231
|
+
base_str = f"({', '.join(bases)})" if bases else ""
|
|
232
|
+
return f"class {node.name}{base_str}"
|
|
233
|
+
|
|
234
|
+
# Extract imports
|
|
235
|
+
for node in ast.walk(tree):
|
|
236
|
+
if isinstance(node, ast.Import):
|
|
237
|
+
for alias in node.names:
|
|
238
|
+
import_node = CodeNode(
|
|
239
|
+
file_path=str(file_path),
|
|
240
|
+
node_type="import",
|
|
241
|
+
name=alias.name,
|
|
242
|
+
line_start=node.lineno,
|
|
243
|
+
line_end=node.end_lineno or node.lineno,
|
|
244
|
+
signature=f"import {alias.name}",
|
|
245
|
+
)
|
|
246
|
+
nodes.append(import_node)
|
|
247
|
+
|
|
248
|
+
elif isinstance(node, ast.ImportFrom):
|
|
249
|
+
module = node.module or ""
|
|
250
|
+
for alias in node.names:
|
|
251
|
+
import_node = CodeNode(
|
|
252
|
+
file_path=str(file_path),
|
|
253
|
+
node_type="import",
|
|
254
|
+
name=f"{module}.{alias.name}",
|
|
255
|
+
line_start=node.lineno,
|
|
256
|
+
line_end=node.end_lineno or node.lineno,
|
|
257
|
+
signature=f"from {module} import {alias.name}",
|
|
258
|
+
)
|
|
259
|
+
nodes.append(import_node)
|
|
260
|
+
|
|
261
|
+
# Visit all nodes
|
|
262
|
+
visitor = NodeVisitor()
|
|
263
|
+
visitor.emitter = self.emitter
|
|
264
|
+
visitor.visit(tree)
|
|
265
|
+
|
|
266
|
+
return nodes
|
|
267
|
+
|
|
268
|
+
def _get_assignment_signature(self, node: ast.Assign, var_name: str) -> str:
|
|
269
|
+
"""Get assignment signature string."""
|
|
270
|
+
try:
|
|
271
|
+
# Try to get a simple representation of the value
|
|
272
|
+
if isinstance(node.value, ast.Constant):
|
|
273
|
+
if isinstance(node.value.value, str):
|
|
274
|
+
return f'{var_name} = "{node.value.value}"'
|
|
275
|
+
return f"{var_name} = {node.value.value}"
|
|
276
|
+
if isinstance(node.value, ast.Name):
|
|
277
|
+
return f"{var_name} = {node.value.id}"
|
|
278
|
+
if isinstance(node.value, ast.List):
|
|
279
|
+
return f"{var_name} = [...]"
|
|
280
|
+
if isinstance(node.value, ast.Dict):
|
|
281
|
+
return f"{var_name} = {{...}}"
|
|
282
|
+
return f"{var_name} = ..."
|
|
283
|
+
except Exception:
|
|
284
|
+
return f"{var_name} = ..."
|
|
@@ -85,7 +85,7 @@ class AgentDependencyLoader:
|
|
|
85
85
|
deployed_agents[agent_id] = agent_file
|
|
86
86
|
logger.debug(f"Found deployed agent: {agent_id}")
|
|
87
87
|
|
|
88
|
-
logger.
|
|
88
|
+
logger.debug(f"Discovered {len(deployed_agents)} deployed agents")
|
|
89
89
|
self.deployed_agents = deployed_agents
|
|
90
90
|
return deployed_agents
|
|
91
91
|
|
|
@@ -121,7 +121,7 @@ class AgentDependencyLoader:
|
|
|
121
121
|
logger.warning(f"Failed to load config for {agent_id}: {e}")
|
|
122
122
|
|
|
123
123
|
self.agent_dependencies = agent_dependencies
|
|
124
|
-
logger.
|
|
124
|
+
logger.debug(f"Loaded dependencies for {len(agent_dependencies)} agents")
|
|
125
125
|
return agent_dependencies
|
|
126
126
|
|
|
127
127
|
def check_python_dependency(self, package_spec: str) -> Tuple[bool, Optional[str]]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-mpm
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.21.3
|
|
4
4
|
Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
|
|
5
5
|
Author-email: Bob Matsuoka <bob@matsuoka.com>
|
|
6
6
|
Maintainer: Claude MPM Team
|
|
@@ -31,7 +31,7 @@ Requires-Dist: requests>=2.25.0
|
|
|
31
31
|
Requires-Dist: flask>=3.0.0
|
|
32
32
|
Requires-Dist: flask-cors>=4.0.0
|
|
33
33
|
Requires-Dist: watchdog>=3.0.0
|
|
34
|
-
Requires-Dist: python-socketio>=5.
|
|
34
|
+
Requires-Dist: python-socketio>=5.14.0
|
|
35
35
|
Requires-Dist: aiohttp>=3.9.0
|
|
36
36
|
Requires-Dist: aiohttp-cors<0.8.0,>=0.7.0
|
|
37
37
|
Requires-Dist: python-engineio>=4.8.0
|
|
@@ -75,7 +75,7 @@ Requires-Dist: sphinx>=7.2.0; extra == "docs"
|
|
|
75
75
|
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
|
|
76
76
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
77
77
|
Provides-Extra: monitor
|
|
78
|
-
Requires-Dist: python-socketio>=5.
|
|
78
|
+
Requires-Dist: python-socketio>=5.14.0; extra == "monitor"
|
|
79
79
|
Requires-Dist: aiohttp>=3.9.0; extra == "monitor"
|
|
80
80
|
Requires-Dist: aiohttp-cors<0.8.0,>=0.7.0; extra == "monitor"
|
|
81
81
|
Requires-Dist: python-engineio>=4.8.0; extra == "monitor"
|
|
@@ -157,12 +157,12 @@ A powerful orchestration framework for **Claude Code (CLI)** that enables multi-
|
|
|
157
157
|
## Features
|
|
158
158
|
|
|
159
159
|
- 🤖 **Multi-Agent System**: 15 specialized agents for comprehensive project management
|
|
160
|
-
-
|
|
160
|
+
- 🎯 **Skills System**: 20 bundled skills with auto-linking, three-tier organization (bundled/user/project), and interactive configuration
|
|
161
161
|
- 🔄 **Session Management**: Resume previous sessions with `--resume`
|
|
162
|
+
- 📋 **Resume Log System**: Proactive context management with automatic 10k-token session logs at 70%/85%/95% thresholds
|
|
162
163
|
- 📊 **Real-Time Monitoring**: Live dashboard with `--monitor` flag
|
|
163
|
-
- 🔌 **
|
|
164
|
-
-
|
|
165
|
-
- 📁 **Multi-Project Support**: Per-session working directories with persistent knowledge graphs
|
|
164
|
+
- 🔌 **MCP Integration**: Full support for Model Context Protocol services
|
|
165
|
+
- 📁 **Multi-Project Support**: Per-session working directories
|
|
166
166
|
- 🔍 **Git Integration**: View diffs and track changes across projects
|
|
167
167
|
- 🎯 **Smart Task Orchestration**: PM agent intelligently routes work to specialists
|
|
168
168
|
- ⚡ **Simplified Architecture**: ~3,700 lines removed for better performance and maintainability
|
|
@@ -174,8 +174,8 @@ A powerful orchestration framework for **Claude Code (CLI)** that enables multi-
|
|
|
174
174
|
# Basic installation
|
|
175
175
|
pip install claude-mpm
|
|
176
176
|
|
|
177
|
-
# Install with
|
|
178
|
-
pip install "claude-mpm[
|
|
177
|
+
# Install with monitoring dashboard (recommended)
|
|
178
|
+
pip install "claude-mpm[monitor]"
|
|
179
179
|
```
|
|
180
180
|
|
|
181
181
|
Or with pipx (recommended for isolated installation):
|
|
@@ -183,30 +183,87 @@ Or with pipx (recommended for isolated installation):
|
|
|
183
183
|
# Basic installation
|
|
184
184
|
pipx install claude-mpm
|
|
185
185
|
|
|
186
|
-
# Install with
|
|
187
|
-
pipx install "claude-mpm[
|
|
188
|
-
|
|
189
|
-
# Install with all features
|
|
190
|
-
pipx install "claude-mpm[mcp,monitor]"
|
|
191
|
-
|
|
192
|
-
# Configure MCP for pipx users:
|
|
193
|
-
claude-mpm mcp-pipx-config
|
|
186
|
+
# Install with monitoring dashboard (recommended)
|
|
187
|
+
pipx install "claude-mpm[monitor]"
|
|
194
188
|
```
|
|
195
189
|
|
|
196
190
|
**💡 Optional Dependencies**:
|
|
197
|
-
- `[mcp]` - Include MCP services (mcp-vector-search, mcp-browser, mcp-ticketer)
|
|
198
191
|
- `[monitor]` - Full monitoring dashboard with Socket.IO and async web server components
|
|
199
|
-
-
|
|
200
|
-
- **Note**: kuzu-memory is now a required dependency, always included with Claude MPM
|
|
201
|
-
- **Auto-Install**: mcp-vector-search offers interactive installation on first use (pip/pipx choice)
|
|
202
|
-
- Without pre-installed MCP dependencies, services install on-demand with user confirmation
|
|
192
|
+
- `[mcp]` - Additional MCP services (mcp-browser, mcp-ticketer) - most users won't need this
|
|
203
193
|
|
|
204
194
|
**🎉 Pipx Support Now Fully Functional!** Recent improvements ensure complete compatibility:
|
|
205
195
|
- ✅ Socket.IO daemon script path resolution (fixed)
|
|
206
|
-
- ✅ Commands directory access (fixed)
|
|
196
|
+
- ✅ Commands directory access (fixed)
|
|
207
197
|
- ✅ Resource files properly packaged for pipx environments
|
|
208
198
|
- ✅ Python 3.13+ fully supported
|
|
209
199
|
|
|
200
|
+
## 🤝 Recommended Partner Products
|
|
201
|
+
|
|
202
|
+
Claude MPM works excellently with these complementary MCP tools. While optional, we **strongly recommend** installing them for enhanced capabilities:
|
|
203
|
+
|
|
204
|
+
### kuzu-memory - Advanced Memory Management
|
|
205
|
+
|
|
206
|
+
**What it does**: Provides persistent, project-specific knowledge graphs that enable agents to learn and retain context across sessions. Your agents will remember project patterns, architectural decisions, and important context automatically.
|
|
207
|
+
|
|
208
|
+
**Installation:**
|
|
209
|
+
```bash
|
|
210
|
+
pipx install kuzu-memory
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Benefits with Claude MPM:**
|
|
214
|
+
- 🧠 **Persistent Context**: Agents remember project-specific patterns and decisions across sessions
|
|
215
|
+
- 🎯 **Intelligent Prompts**: Automatically enriches agent prompts with relevant historical context
|
|
216
|
+
- 📊 **Knowledge Graphs**: Structured storage of project knowledge, not just flat memory
|
|
217
|
+
- 🔄 **Seamless Integration**: Works transparently in the background with zero configuration
|
|
218
|
+
- 💡 **Smart Learning**: Agents improve over time as they learn your project's patterns
|
|
219
|
+
|
|
220
|
+
**Perfect for**: Long-running projects, teams needing consistent context, complex codebases with deep architectural patterns.
|
|
221
|
+
|
|
222
|
+
**Learn more**: [kuzu-memory on PyPI](https://pypi.org/project/kuzu-memory/) | [GitHub Repository](https://github.com/bobmatnyc/kuzu-memory)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### mcp-vector-search - Semantic Code Search
|
|
227
|
+
|
|
228
|
+
**What it does**: Enables semantic code search across your entire codebase using AI embeddings. Find code by what it *does*, not just what it's *named*. Search for "authentication logic" and find relevant functions even if they're named differently.
|
|
229
|
+
|
|
230
|
+
**Installation:**
|
|
231
|
+
```bash
|
|
232
|
+
pipx install mcp-vector-search
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Benefits with Claude MPM:**
|
|
236
|
+
- 🔍 **Semantic Discovery**: Find code by intent and functionality, not just keywords
|
|
237
|
+
- 🎯 **Context-Aware**: Understand code relationships and similarities automatically
|
|
238
|
+
- ⚡ **Fast Indexing**: Efficient vector embeddings for large codebases
|
|
239
|
+
- 🔄 **Live Updates**: Automatically tracks code changes and updates index
|
|
240
|
+
- 📊 **Pattern Recognition**: Discover similar code patterns and potential refactoring opportunities
|
|
241
|
+
|
|
242
|
+
**Use with**: `/mpm-search "authentication logic"` command in Claude Code sessions or `claude-mpm search` CLI command.
|
|
243
|
+
|
|
244
|
+
**Perfect for**: Large codebases, discovering existing functionality, finding similar implementations, architectural exploration.
|
|
245
|
+
|
|
246
|
+
**Learn more**: [mcp-vector-search on PyPI](https://pypi.org/project/mcp-vector-search/) | [GitHub Repository](https://github.com/bobmatnyc/mcp-vector-search)
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### Quick Setup - Both Tools
|
|
251
|
+
|
|
252
|
+
Install both recommended tools in one go:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
pipx install kuzu-memory
|
|
256
|
+
pipx install mcp-vector-search
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Then verify they're working:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
claude-mpm verify
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**That's it!** These tools integrate automatically with Claude MPM once installed. No additional configuration needed.
|
|
266
|
+
|
|
210
267
|
**That's it!** See [QUICKSTART.md](QUICKSTART.md) for immediate usage or [docs/user/installation.md](docs/user/installation.md) for advanced options.
|
|
211
268
|
|
|
212
269
|
## Quick Usage
|
|
@@ -262,8 +319,7 @@ See [QUICKSTART.md](QUICKSTART.md) for complete usage examples.
|
|
|
262
319
|
Following Phase 3 architectural simplification in v4.4.1, Claude MPM features:
|
|
263
320
|
|
|
264
321
|
- **Streamlined Rich Interface**: Removed complex TUI system (~2,500 lines) for cleaner user experience
|
|
265
|
-
- **
|
|
266
|
-
- **Persistent Knowledge System**: Project-specific kuzu-memory databases with intelligent prompt enrichment
|
|
322
|
+
- **MCP Integration**: Full support for Model Context Protocol services with automatic detection
|
|
267
323
|
- **Service-Oriented Architecture**: Simplified five specialized service domains
|
|
268
324
|
- **Interface-Based Contracts**: All services implement explicit interfaces
|
|
269
325
|
- **Enhanced Performance**: ~3,700 lines removed for better startup time and maintainability
|
|
@@ -279,11 +335,26 @@ Claude MPM includes 15 specialized agents:
|
|
|
279
335
|
|
|
280
336
|
#### Core Development
|
|
281
337
|
- **Engineer** - Software development and implementation
|
|
282
|
-
- **Research** - Code analysis and research
|
|
338
|
+
- **Research** - Code analysis and research
|
|
283
339
|
- **Documentation** - Documentation creation and maintenance
|
|
284
340
|
- **QA** - Testing and quality assurance
|
|
285
341
|
- **Security** - Security analysis and implementation
|
|
286
342
|
|
|
343
|
+
#### Language-Specific Engineers
|
|
344
|
+
- **Python Engineer (v2.3.0)** - Type-safe, async-first Python with SOA patterns for non-trivial applications
|
|
345
|
+
- Service-oriented architecture with ABC interfaces for applications
|
|
346
|
+
- Lightweight script patterns for automation and one-off tasks
|
|
347
|
+
- Clear decision criteria for when to use DI/SOA vs simple functions
|
|
348
|
+
- Dependency injection containers with auto-resolution
|
|
349
|
+
- Use for: Web applications, microservices, data pipelines (DI/SOA) or scripts, CLI tools, notebooks (simple functions)
|
|
350
|
+
|
|
351
|
+
- **Rust Engineer (v1.1.0)** - Memory-safe, high-performance systems with trait-based service architecture
|
|
352
|
+
- Dependency injection with traits (constructor injection, trait objects)
|
|
353
|
+
- Service-oriented architecture patterns (repository, builder)
|
|
354
|
+
- Decision criteria for when to use DI/SOA vs simple code
|
|
355
|
+
- Async programming with tokio and zero-cost abstractions
|
|
356
|
+
- Use for: Web services, microservices (DI/SOA) or CLI tools, scripts (simple code)
|
|
357
|
+
|
|
287
358
|
#### Operations & Infrastructure
|
|
288
359
|
- **Ops** - Operations and deployment with advanced git commit authority and security verification (v2.2.2+)
|
|
289
360
|
- **Version Control** - Git and version management
|
|
@@ -305,6 +376,41 @@ Claude MPM includes 15 specialized agents:
|
|
|
305
376
|
### Agent Memory System
|
|
306
377
|
Agents learn project-specific patterns using a simple list format and can update memories via JSON response fields (`remember` for incremental updates, `MEMORIES` for complete replacement). Initialize with `claude-mpm memory init`.
|
|
307
378
|
|
|
379
|
+
### Skills System
|
|
380
|
+
|
|
381
|
+
Claude MPM includes a powerful skills system that eliminates redundant agent guidance through reusable skill modules:
|
|
382
|
+
|
|
383
|
+
**20 Bundled Skills** covering essential development workflows (all versioned starting at 0.1.0):
|
|
384
|
+
- Git workflow, TDD, code review, systematic debugging
|
|
385
|
+
- API documentation, refactoring patterns, performance profiling
|
|
386
|
+
- Docker containerization, database migrations, security scanning
|
|
387
|
+
- JSON/PDF/XLSX handling, async testing, ImageMagick operations
|
|
388
|
+
- Local development servers: Next.js, FastAPI, Vite, Express
|
|
389
|
+
- Web performance: Lighthouse metrics, Core Web Vitals optimization
|
|
390
|
+
|
|
391
|
+
**Three-Tier Organization:**
|
|
392
|
+
- **Bundled**: Core skills included with Claude MPM (~15,000 lines of reusable guidance)
|
|
393
|
+
- **User**: Custom skills in `~/.config/claude-mpm/skills/`
|
|
394
|
+
- **Project**: Project-specific skills in `.claude-mpm/skills/`
|
|
395
|
+
|
|
396
|
+
**Version Tracking:**
|
|
397
|
+
- All skills support semantic versioning (MAJOR.MINOR.PATCH)
|
|
398
|
+
- Check versions with `/mpm-version` command in Claude Code
|
|
399
|
+
- See [Skills Versioning Guide](docs/user/skills-versioning.md) for details
|
|
400
|
+
|
|
401
|
+
**Quick Access:**
|
|
402
|
+
```bash
|
|
403
|
+
# Interactive skills management
|
|
404
|
+
claude-mpm configure
|
|
405
|
+
# Choose option 2: Skills Management
|
|
406
|
+
|
|
407
|
+
# Auto-link skills to agents based on their roles
|
|
408
|
+
# Configure custom skill assignments
|
|
409
|
+
# View current skill mappings
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
Skills are automatically injected into agent prompts, reducing template size by 85% while maintaining full capability coverage.
|
|
413
|
+
|
|
308
414
|
### MCP Gateway (Model Context Protocol)
|
|
309
415
|
|
|
310
416
|
Claude MPM includes a powerful MCP Gateway that enables:
|
|
@@ -327,6 +433,72 @@ claude-mpm cleanup-memory
|
|
|
327
433
|
claude-mpm cleanup-memory --days 7
|
|
328
434
|
```
|
|
329
435
|
|
|
436
|
+
### Resume Log System
|
|
437
|
+
|
|
438
|
+
**NEW in v4.17.2** - Proactive context management for seamless session continuity.
|
|
439
|
+
|
|
440
|
+
The Resume Log System automatically generates structured 10k-token logs when approaching Claude's context window limits, enabling you to resume work without losing important context.
|
|
441
|
+
|
|
442
|
+
**Key Features**:
|
|
443
|
+
- 🎯 **Graduated Thresholds**: Warnings at 70% (60k buffer), 85% (30k buffer), and 95% (10k buffer)
|
|
444
|
+
- 📋 **Structured Logs**: 10k-token budget intelligently distributed across 7 key sections
|
|
445
|
+
- 🔄 **Seamless Resumption**: Automatically loads previous session context on startup
|
|
446
|
+
- 📁 **Human-Readable**: Markdown format for both Claude and human review
|
|
447
|
+
- ⚙️ **Zero-Configuration**: Works automatically with sensible defaults
|
|
448
|
+
|
|
449
|
+
**How It Works**:
|
|
450
|
+
1. Monitor token usage continuously throughout session
|
|
451
|
+
2. Display proactive warnings at 70%, 85%, and 95% thresholds
|
|
452
|
+
3. Automatically generate resume log when approaching limits
|
|
453
|
+
4. Load previous resume log when starting new session
|
|
454
|
+
5. Continue work seamlessly with full context preservation
|
|
455
|
+
|
|
456
|
+
**Example Resume Log Structure**:
|
|
457
|
+
```markdown
|
|
458
|
+
# Session Resume Log: 20251101_115000
|
|
459
|
+
|
|
460
|
+
## Context Metrics (500 tokens)
|
|
461
|
+
- Token usage and percentage
|
|
462
|
+
|
|
463
|
+
## Mission Summary (1,000 tokens)
|
|
464
|
+
- Overall goal and purpose
|
|
465
|
+
|
|
466
|
+
## Accomplishments (2,000 tokens)
|
|
467
|
+
- What was completed
|
|
468
|
+
|
|
469
|
+
## Key Findings (2,500 tokens)
|
|
470
|
+
- Important discoveries
|
|
471
|
+
|
|
472
|
+
## Decisions & Rationale (1,500 tokens)
|
|
473
|
+
- Why choices were made
|
|
474
|
+
|
|
475
|
+
## Next Steps (1,500 tokens)
|
|
476
|
+
- What to do next
|
|
477
|
+
|
|
478
|
+
## Critical Context (1,000 tokens)
|
|
479
|
+
- Essential state, IDs, paths
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
**Configuration** (`.claude-mpm/configuration.yaml`):
|
|
483
|
+
```yaml
|
|
484
|
+
context_management:
|
|
485
|
+
enabled: true
|
|
486
|
+
budget_total: 200000
|
|
487
|
+
thresholds:
|
|
488
|
+
caution: 0.70 # First warning - plan transition
|
|
489
|
+
warning: 0.85 # Strong warning - wrap up
|
|
490
|
+
critical: 0.95 # Urgent - stop new work
|
|
491
|
+
resume_logs:
|
|
492
|
+
enabled: true
|
|
493
|
+
auto_generate: true
|
|
494
|
+
max_tokens: 10000
|
|
495
|
+
storage_dir: ".claude-mpm/resume-logs"
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**QA Status**: 40/41 tests passing (97.6% coverage), APPROVED FOR PRODUCTION ✅
|
|
499
|
+
|
|
500
|
+
See [docs/user/resume-logs.md](docs/user/resume-logs.md) for complete documentation.
|
|
501
|
+
|
|
330
502
|
### Real-Time Monitoring
|
|
331
503
|
The `--monitor` flag opens a web dashboard showing live agent activity, file operations, and session management.
|
|
332
504
|
|
|
@@ -365,19 +537,25 @@ See [docs/MEMORY.md](docs/MEMORY.md) and [docs/developer/11-dashboard/README.md]
|
|
|
365
537
|
- **Single Entry Point**: [docs/README.md](docs/README.md) is your navigation hub
|
|
366
538
|
- **Clear User Paths**: Organized by user type and experience level
|
|
367
539
|
- **Cross-Referenced**: Links between related topics and sections
|
|
368
|
-
- **Up-to-Date**: Version 4.
|
|
540
|
+
- **Up-to-Date**: Version 4.16.3 with web performance optimization skill
|
|
541
|
+
|
|
542
|
+
## Recent Updates (v4.16.3)
|
|
543
|
+
|
|
544
|
+
**Web Performance Optimization**: New `web-performance-optimization` skill for Lighthouse metrics, Core Web Vitals (LCP, INP, CLS), and framework-specific optimization patterns.
|
|
545
|
+
|
|
546
|
+
## Previous Updates (v4.16.1)
|
|
369
547
|
|
|
370
|
-
|
|
548
|
+
**Local Development Skills**: Added 4 new toolchain-specific skills: `nextjs-local-dev`, `fastapi-local-dev`, `vite-local-dev`, and `express-local-dev` for professional local server management with PM2, HMR, and production-grade patterns.
|
|
371
549
|
|
|
372
|
-
**
|
|
550
|
+
**Skills System Integration**: 20 bundled skills with auto-linking, three-tier organization, and interactive configuration. Eliminates 85% of redundant guidance across agent templates (~15,000 lines of reusable content).
|
|
373
551
|
|
|
374
|
-
**
|
|
552
|
+
**Enhanced Documentation**: Complete documentation suite with PDF guides, reorganized structure, and comprehensive design documents for skills integration.
|
|
375
553
|
|
|
376
|
-
**
|
|
554
|
+
**Agent Template Improvements**: Cleaned agent templates with skills integration, removing redundant guidance while maintaining full capability coverage.
|
|
377
555
|
|
|
378
|
-
**
|
|
556
|
+
**Interactive Skills Management**: New skills wizard accessible via `claude-mpm configure` for viewing, configuring, and auto-linking skills to agents.
|
|
379
557
|
|
|
380
|
-
**
|
|
558
|
+
**Bug Fixes**: Resolved agent template inconsistencies and improved configuration management.
|
|
381
559
|
|
|
382
560
|
See [CHANGELOG.md](CHANGELOG.md) for full history and [docs/user/MIGRATION.md](docs/user/MIGRATION.md) for upgrade instructions.
|
|
383
561
|
|