claude-mpm 5.4.97__py3-none-any.whl → 5.4.98__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.
Files changed (23) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  3. claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc +0 -0
  4. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  5. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  6. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  7. claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
  8. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  9. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  10. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  11. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  12. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  13. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  14. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  15. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  16. claude_mpm/services/skills/skill_discovery_service.py +57 -3
  17. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/METADATA +1 -1
  18. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/RECORD +23 -9
  19. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/WHEEL +0 -0
  20. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/entry_points.txt +0 -0
  21. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/licenses/LICENSE +0 -0
  22. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  23. {claude_mpm-5.4.97.dist-info → claude_mpm-5.4.98.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 5.4.97
1
+ 5.4.98
@@ -163,10 +163,22 @@ class SkillDiscoveryService:
163
163
  skill_md_files = list(self.skills_dir.rglob("SKILL.md"))
164
164
 
165
165
  # Also find legacy *.md files in top-level directory for backward compatibility
166
+ # Exclude common non-skill documentation files
167
+ excluded_filenames = {
168
+ "skill.md", # Case variations of SKILL.md
169
+ "readme.md",
170
+ "claude.md",
171
+ "contributing.md",
172
+ "changelog.md",
173
+ "license.md",
174
+ "authors.md",
175
+ "code_of_conduct.md",
176
+ }
177
+
166
178
  legacy_md_files = [
167
179
  f
168
180
  for f in self.skills_dir.glob("*.md")
169
- if f.name != "SKILL.md" and f.name.lower() != "readme.md"
181
+ if f.name.lower() not in excluded_filenames
170
182
  ]
171
183
 
172
184
  all_skill_files = skill_md_files + legacy_md_files
@@ -255,7 +267,35 @@ class SkillDiscoveryService:
255
267
  try:
256
268
  frontmatter, body = self._extract_frontmatter(content)
257
269
  except Exception as e:
258
- self.logger.warning(f"No valid frontmatter in {skill_file.name}: {e}")
270
+ # Only log as debug for documentation files to reduce noise
271
+ # Common documentation files (CLAUDE.md, README.md) are expected to lack skill frontmatter
272
+ relative_path = (
273
+ skill_file.relative_to(self.skills_dir)
274
+ if skill_file.is_relative_to(self.skills_dir)
275
+ else skill_file
276
+ )
277
+
278
+ # Check if this looks like a documentation file
279
+ is_documentation = any(
280
+ doc_pattern in skill_file.name.lower()
281
+ for doc_pattern in [
282
+ "readme",
283
+ "claude",
284
+ "contributing",
285
+ "changelog",
286
+ "license",
287
+ ]
288
+ )
289
+
290
+ if is_documentation:
291
+ self.logger.debug(
292
+ f"Skipping documentation file {relative_path} (no skill frontmatter): {e}"
293
+ )
294
+ else:
295
+ # For actual skill files with invalid YAML, use warning level
296
+ self.logger.warning(
297
+ f"Failed to parse skill frontmatter in {relative_path}: {e}"
298
+ )
259
299
  return None
260
300
 
261
301
  # Validate required fields
@@ -354,10 +394,24 @@ class SkillDiscoveryService:
354
394
  frontmatter_text = match.group(1)
355
395
  body = match.group(2)
356
396
 
357
- # Parse YAML
397
+ # Parse YAML with improved error handling
358
398
  try:
359
399
  frontmatter = yaml.safe_load(frontmatter_text)
360
400
  except yaml.YAMLError as e:
401
+ # Provide more specific error message with context
402
+ error_line = getattr(e, "problem_mark", None)
403
+ if error_line:
404
+ line_num = error_line.line + 1
405
+ col_num = error_line.column + 1
406
+ # Extract problematic line for context
407
+ lines = frontmatter_text.split("\n")
408
+ problem_line = (
409
+ lines[error_line.line] if error_line.line < len(lines) else ""
410
+ )
411
+ raise ValueError(
412
+ f"Invalid YAML in frontmatter at line {line_num}, column {col_num}: {e.problem}\n"
413
+ f" Problematic line: {problem_line.strip()}"
414
+ ) from e
361
415
  raise ValueError(f"Invalid YAML in frontmatter: {e}") from e
362
416
 
363
417
  if not isinstance(frontmatter, dict):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 5.4.97
3
+ Version: 5.4.98
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
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
2
- claude_mpm/VERSION,sha256=BdiMNKt3O_zm2CNWcenla-qyFB2MItaHAgpbSdn2wrk,7
2
+ claude_mpm/VERSION,sha256=z19R3si2Jp-yEU6HDQz48V2xNInMNgau-vPD8A98zac,7
3
3
  claude_mpm/__init__.py,sha256=AGfh00BHKvLYD-UVFw7qbKtl7NMRIzRXOWw7vEuZ-h4,2214
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=pz3lTrZZR5HhV3eZzYtIbtBwWo7iM6pkBHP_ixxmI6Y,6827
@@ -343,12 +343,26 @@ claude_mpm/hooks/claude_hooks/installer.py,sha256=VbvVGMcrmCXQB3Pf9zOdjeGET2AFqb
343
343
  claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=73w7A5-3s5i1oYdkbEgw7qhgalQvSuJjfx6OFqfaw64,9963
344
344
  claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=bgX4iVQqmX0L3_GHyKs1q4CSIjnavdxYnJZT0GaT4gs,17148
345
345
  claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=3_o2PP9D7wEMwLriCtIBOw0cj2fSZfepN7lI4P1meSQ,7862
346
+ claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc,sha256=EGpgXqhPM0iRRZtCqHaLVQ6wDH42OH_M7Gt5GiFLyro,346
347
+ claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc,sha256=X7A8O4KPXkuDaLDFbF7Izi1qVDyS0tQjHVo1xy_HzNQ,21172
348
+ claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc,sha256=SQX5iiP9bQZkLL-cj_2tlGH7lpAzarO0mYal7btj3tc,3521
349
+ claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc,sha256=YXRFrqgSXTixzi59oYYwFi0dd_EMQ5yeFnsOPaW-F90,44311
350
+ claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc,sha256=ehLm68zhDmqOwzr1Di6xYjGuE9SRg0mvKePQfepuuQ4,30577
351
+ claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc,sha256=9mpAKY4gNcbU5VvZ5tGbf2UM0uIEWdreKSUvVr_BKcM,33917
352
+ claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc,sha256=YbwauQDKSGvXkT1972faalJLuxwyvq328DYQhkCnel0,10513
353
+ claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc,sha256=-L-n4xvi1eHY48MdZ-7v249UaNfkuiIwfwxdPgxwd80,16730
354
+ claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc,sha256=ZjcNfNY5Ht6FhalPeh7M7OzMffcey5iF4AVjDDg9kak,10694
346
355
  claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=OIYOKsUNw1BHYawOCp-KFK5kmQKuj92cCqCEPO0nwo0,585
347
356
  claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=6MhoPiSQSkG5Xsb9KjPk_eu60h6-v5uNXjn6ry255aA,10452
348
357
  claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=7YKEsD45us5SNnj-jpSyFBYbU0KrZ8FWoIdZDUeU2gI,7795
349
358
  claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM9t0U1v2l_fuBwvNpVkl_0EF8Wu5KLHQ,3882
350
359
  claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=QB0JPJQThTVg0TGRO3Dc_3y3bac-hkulgMqqzo_71ng,11189
351
360
  claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=nJw1ERCMxq23ioZ5DKwprmwO0fuvuqpdFHJ03XaMiDo,16052
361
+ claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc,sha256=xBfLBSqnpcKfcQBWfh7xUm454g1lq1LvbO7SxGvcOPc,644
362
+ claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc,sha256=xN6QYqLTQ9I9qPDKsSikhAhncXrxYemjfQp4wLiiq9M,9774
363
+ claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc,sha256=Yy_REAUhJCiFjOhxeDb4v0qyEvEbUtCmXD9PAz40dhw,5321
364
+ claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc,sha256=TPkEc-Zi3oNS5dCXBpGbSZwg_8RQvzNzd4pVx9B3WeM,12364
365
+ claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc,sha256=WffRFbZrgwiOypPUMgcm_LT18AtyGckgDny5IXhkogg,15554
352
366
  claude_mpm/hooks/failure_learning/__init__.py,sha256=iJ80AKFHiT8DjIH2a72DQVJvL6nAFrizNA2yTKwZ4rw,1805
353
367
  claude_mpm/hooks/failure_learning/failure_detection_hook.py,sha256=KENoB5N-dBm5hb0SxeIZtCvNKbmG2BKHOJSrSO-3Z_I,7500
354
368
  claude_mpm/hooks/failure_learning/fix_detection_hook.py,sha256=XUk1bnBVLdfhQ9AMQSvGsTSeFQsKsVud2wbWX-Jjor8,7164
@@ -704,7 +718,7 @@ claude_mpm/services/shared/service_factory.py,sha256=9yvnD62urrNQCGmtk_3OcR5tVUC
704
718
  claude_mpm/services/skills/__init__.py,sha256=X1fPRCGZjteLd35HlhWv2M6tAJ_WbYrEv84kbaqBAiU,742
705
719
  claude_mpm/services/skills/git_skill_source_manager.py,sha256=q8pKRLBza7Uh3vEpCXuQKdp1pF0b9P1CTUzUkL5VBJA,51623
706
720
  claude_mpm/services/skills/selective_skill_deployer.py,sha256=yUiciVynJ3WDTO-l7Oz6_y9NaqeQS4xwNVp3KXDOtgA,29565
707
- claude_mpm/services/skills/skill_discovery_service.py,sha256=riy0PTnJS8e5R2ai8y1KPhBIR7SxlYIa9bnI9YccRMQ,20247
721
+ claude_mpm/services/skills/skill_discovery_service.py,sha256=guul1xME46hzHqTRIJeTDIKQz55AQlOX1CRALWvfnoI,22403
708
722
  claude_mpm/services/skills/skill_to_agent_mapper.py,sha256=4PRwcSDSNGS55lg4t-VmBK2ottE_cGFq1zsvjiumAlI,14847
709
723
  claude_mpm/services/socketio/__init__.py,sha256=PS-2twllga-2mhSfKdu4MgpikfKp_730gMLAqU_9YX4,556
710
724
  claude_mpm/services/socketio/client_proxy.py,sha256=DFPO5OIl-cHusldHPYWKSbnL0dxSLz8h07D9307FfzY,8853
@@ -983,10 +997,10 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
983
997
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
984
998
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
985
999
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
986
- claude_mpm-5.4.97.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
987
- claude_mpm-5.4.97.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
988
- claude_mpm-5.4.97.dist-info/METADATA,sha256=hlWS-oaVXxxH2ac2RGflbYhcb3ohULWQYotGwtsqTSc,14349
989
- claude_mpm-5.4.97.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
990
- claude_mpm-5.4.97.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
991
- claude_mpm-5.4.97.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
992
- claude_mpm-5.4.97.dist-info/RECORD,,
1000
+ claude_mpm-5.4.98.dist-info/licenses/LICENSE,sha256=ca3y_Rk4aPrbF6f62z8Ht5MJM9OAvbGlHvEDcj9vUQ4,3867
1001
+ claude_mpm-5.4.98.dist-info/licenses/LICENSE-FAQ.md,sha256=TxfEkXVCK98RzDOer09puc7JVCP_q_bN4dHtZKHCMcM,5104
1002
+ claude_mpm-5.4.98.dist-info/METADATA,sha256=jE_K6msFV1hDsphBCY0z60AJDyA0sIilYQei0HDiLig,14349
1003
+ claude_mpm-5.4.98.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1004
+ claude_mpm-5.4.98.dist-info/entry_points.txt,sha256=n-Uk4vwHPpuvu-g_I7-GHORzTnN_m6iyOsoLveKKD0E,228
1005
+ claude_mpm-5.4.98.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
1006
+ claude_mpm-5.4.98.dist-info/RECORD,,