claude-mpm 4.25.10__py3-none-any.whl → 5.1.8__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_PM.md +12 -0
- claude_mpm/agents/PM_INSTRUCTIONS.md +1055 -2230
- claude_mpm/agents/PM_INSTRUCTIONS_TEACH.md +1322 -0
- claude_mpm/agents/WORKFLOW.md +4 -4
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +1 -4
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +576 -66
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
- claude_mpm/agents/templates/research-gate-examples.md +669 -0
- claude_mpm/agents/templates/structured-questions-examples.md +615 -0
- claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
- claude_mpm/agents/templates/ticketing-examples.md +277 -0
- claude_mpm/cli/__init__.py +28 -3
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/agent_source.py +774 -0
- claude_mpm/cli/commands/agent_state_manager.py +188 -30
- claude_mpm/cli/commands/agents.py +959 -36
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/auto_configure.py +537 -239
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +924 -45
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +1 -39
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +322 -19
- claude_mpm/cli/executor.py +22 -3
- claude_mpm/cli/interactive/agent_wizard.py +1028 -43
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +256 -4
- claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
- claude_mpm/cli/parsers/base_parser.py +25 -0
- claude_mpm/cli/parsers/config_parser.py +96 -43
- claude_mpm/cli/parsers/skill_source_parser.py +169 -0
- claude_mpm/cli/parsers/skills_parser.py +7 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +456 -103
- claude_mpm/cli/startup_display.py +4 -4
- claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
- claude_mpm/commands/mpm-agents-detect.md +9 -0
- claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
- claude_mpm/commands/mpm-agents-recommend.md +9 -0
- claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
- claude_mpm/commands/mpm-doctor.md +9 -0
- claude_mpm/commands/mpm-help.md +14 -2
- claude_mpm/commands/mpm-init.md +9 -0
- claude_mpm/commands/mpm-monitor.md +9 -0
- claude_mpm/commands/mpm-postmortem.md +123 -0
- claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
- claude_mpm/commands/mpm-status.md +9 -0
- claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
- claude_mpm/commands/mpm-ticket-view.md +552 -0
- claude_mpm/commands/mpm-version.md +9 -0
- claude_mpm/commands/mpm.md +10 -0
- claude_mpm/config/agent_presets.py +488 -0
- claude_mpm/config/agent_sources.py +325 -0
- claude_mpm/config/skill_presets.py +392 -0
- claude_mpm/config/skill_sources.py +590 -0
- claude_mpm/constants.py +1 -0
- claude_mpm/core/claude_runner.py +5 -34
- claude_mpm/core/config.py +16 -0
- claude_mpm/core/framework/__init__.py +3 -16
- claude_mpm/core/framework/loaders/file_loader.py +54 -101
- claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
- claude_mpm/core/interactive_session.py +83 -7
- claude_mpm/core/oneshot_session.py +71 -8
- claude_mpm/core/protocols/__init__.py +23 -0
- claude_mpm/core/protocols/runner_protocol.py +103 -0
- claude_mpm/core/protocols/session_protocol.py +131 -0
- claude_mpm/core/shared/singleton_manager.py +11 -4
- claude_mpm/core/system_context.py +38 -0
- claude_mpm/core/unified_config.py +22 -0
- claude_mpm/experimental/cli_enhancements.py +1 -5
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
- claude_mpm/hooks/failure_learning/__init__.py +2 -8
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
- claude_mpm/hooks/kuzu_response_hook.py +1 -5
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/services/agents/agent_builder.py +45 -9
- claude_mpm/services/agents/agent_preset_service.py +238 -0
- claude_mpm/services/agents/agent_selection_service.py +484 -0
- claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
- claude_mpm/services/agents/cache_git_manager.py +621 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
- claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
- claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
- claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
- claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
- claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
- claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
- claude_mpm/services/agents/git_source_manager.py +629 -0
- claude_mpm/services/agents/loading/framework_agent_loader.py +1 -4
- claude_mpm/services/agents/local_template_manager.py +47 -9
- claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
- claude_mpm/services/agents/sources/__init__.py +13 -0
- claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
- claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
- claude_mpm/services/agents/startup_sync.py +239 -0
- claude_mpm/services/agents/toolchain_detector.py +474 -0
- claude_mpm/services/analysis/__init__.py +25 -0
- claude_mpm/services/analysis/postmortem_reporter.py +474 -0
- claude_mpm/services/analysis/postmortem_service.py +765 -0
- claude_mpm/services/command_deployment_service.py +200 -6
- claude_mpm/services/core/base.py +7 -2
- claude_mpm/services/core/interfaces/__init__.py +1 -3
- claude_mpm/services/core/interfaces/health.py +1 -4
- claude_mpm/services/core/models/__init__.py +2 -11
- claude_mpm/services/diagnostics/checks/__init__.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
- claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +34 -6
- claude_mpm/services/git/__init__.py +21 -0
- claude_mpm/services/git/git_operations_service.py +494 -0
- claude_mpm/services/github/__init__.py +21 -0
- claude_mpm/services/github/github_cli_service.py +397 -0
- claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
- claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
- claude_mpm/services/instructions/__init__.py +9 -0
- claude_mpm/services/instructions/instruction_cache_service.py +374 -0
- claude_mpm/services/local_ops/__init__.py +3 -13
- claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
- claude_mpm/services/local_ops/health_manager.py +1 -4
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/monitor/daemon.py +28 -8
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/project_organizer.py +4 -0
- claude_mpm/services/runner_configuration_service.py +16 -3
- claude_mpm/services/session_management_service.py +16 -4
- claude_mpm/services/skills/__init__.py +18 -0
- claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
- claude_mpm/services/skills/skill_discovery_service.py +568 -0
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/templates/questions/__init__.py +2 -7
- claude_mpm/templates/questions/pr_strategy.py +1 -4
- claude_mpm/templates/questions/project_init.py +1 -4
- claude_mpm/templates/questions/ticket_mgmt.py +1 -4
- claude_mpm/utils/agent_dependency_loader.py +77 -10
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/gitignore.py +3 -0
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/METADATA +356 -112
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/RECORD +188 -439
- claude_mpm/agents/templates/agent-manager.json +0 -273
- claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
- claude_mpm/agents/templates/api_qa.json +0 -183
- claude_mpm/agents/templates/clerk-ops.json +0 -235
- claude_mpm/agents/templates/code_analyzer.json +0 -101
- claude_mpm/agents/templates/content-agent.json +0 -358
- claude_mpm/agents/templates/dart_engineer.json +0 -307
- claude_mpm/agents/templates/data_engineer.json +0 -225
- claude_mpm/agents/templates/documentation.json +0 -238
- claude_mpm/agents/templates/engineer.json +0 -210
- claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
- claude_mpm/agents/templates/golang_engineer.json +0 -270
- claude_mpm/agents/templates/imagemagick.json +0 -264
- claude_mpm/agents/templates/java_engineer.json +0 -346
- claude_mpm/agents/templates/javascript_engineer_agent.json +0 -380
- claude_mpm/agents/templates/local_ops_agent.json +0 -1840
- claude_mpm/agents/templates/memory_manager.json +0 -158
- claude_mpm/agents/templates/nextjs_engineer.json +0 -285
- claude_mpm/agents/templates/ops.json +0 -185
- claude_mpm/agents/templates/php-engineer.json +0 -287
- claude_mpm/agents/templates/product_owner.json +0 -338
- claude_mpm/agents/templates/project_organizer.json +0 -144
- claude_mpm/agents/templates/prompt-engineer.json +0 -737
- claude_mpm/agents/templates/python_engineer.json +0 -387
- claude_mpm/agents/templates/qa.json +0 -243
- claude_mpm/agents/templates/react_engineer.json +0 -239
- claude_mpm/agents/templates/refactoring_engineer.json +0 -276
- claude_mpm/agents/templates/research.json +0 -258
- claude_mpm/agents/templates/ruby-engineer.json +0 -280
- claude_mpm/agents/templates/rust_engineer.json +0 -275
- claude_mpm/agents/templates/security.json +0 -202
- claude_mpm/agents/templates/svelte-engineer.json +0 -225
- claude_mpm/agents/templates/tauri_engineer.json +0 -274
- claude_mpm/agents/templates/ticketing.json +0 -181
- claude_mpm/agents/templates/typescript_engineer.json +0 -285
- claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
- claude_mpm/agents/templates/version_control.json +0 -159
- claude_mpm/agents/templates/web_qa.json +0 -400
- claude_mpm/agents/templates/web_ui.json +0 -189
- claude_mpm/cli/README.md +0 -253
- claude_mpm/cli/commands/mcp_install_commands.py.backup +0 -284
- claude_mpm/cli/commands/mpm_init/README.md +0 -365
- claude_mpm/cli_module/refactoring_guide.md +0 -253
- claude_mpm/commands/mpm-tickets.md +0 -151
- claude_mpm/config/agent_capabilities.yaml +0 -658
- claude_mpm/config/async_logging_config.yaml +0 -145
- claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +0 -34
- claude_mpm/d2/.gitignore +0 -22
- claude_mpm/d2/ARCHITECTURE_COMPARISON.md +0 -273
- claude_mpm/d2/FLASK_INTEGRATION.md +0 -156
- claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +0 -452
- claude_mpm/d2/QUICKSTART.md +0 -186
- claude_mpm/d2/README.md +0 -232
- claude_mpm/d2/STORE_FIX_SUMMARY.md +0 -167
- claude_mpm/d2/SVELTE5_STORES_GUIDE.md +0 -180
- claude_mpm/d2/TESTING.md +0 -288
- claude_mpm/d2/index.html +0 -118
- claude_mpm/d2/package.json +0 -19
- claude_mpm/d2/src/App.svelte +0 -110
- claude_mpm/d2/src/components/Header.svelte +0 -153
- claude_mpm/d2/src/components/MainContent.svelte +0 -74
- claude_mpm/d2/src/components/Sidebar.svelte +0 -85
- claude_mpm/d2/src/components/tabs/EventsTab.svelte +0 -326
- claude_mpm/d2/src/lib/socketio.js +0 -144
- claude_mpm/d2/src/main.js +0 -7
- claude_mpm/d2/src/stores/events.js +0 -114
- claude_mpm/d2/src/stores/socket.js +0 -108
- claude_mpm/d2/src/stores/theme.js +0 -65
- claude_mpm/d2/svelte.config.js +0 -12
- claude_mpm/d2/vite.config.js +0 -15
- claude_mpm/dashboard/.claude-mpm/memories/README.md +0 -36
- claude_mpm/dashboard/BUILD_NUMBER +0 -1
- claude_mpm/dashboard/README.md +0 -121
- claude_mpm/dashboard/VERSION +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +0 -273
- claude_mpm/dashboard/react/components/ErrorBoundary.tsx +0 -75
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +0 -141
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +0 -36
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/react/components/shared/FilterBar.tsx +0 -89
- claude_mpm/dashboard/react/contexts/DashboardContext.tsx +0 -215
- claude_mpm/dashboard/react/entries/events.tsx +0 -165
- claude_mpm/dashboard/react/hooks/useEvents.ts +0 -191
- claude_mpm/dashboard/react/hooks/useSocket.ts +0 -225
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +0 -170
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/activity-tree.js.map +0 -1
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/built/components/agent-inference.js.map +0 -1
- claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
- claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/code-tree.js.map +0 -1
- claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/code-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
- claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
- claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/built/components/event-processor.js.map +0 -1
- claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/event-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +0 -1
- claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/file-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +0 -1
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
- claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
- claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/session-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/socket-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +0 -1
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +0 -1
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js.map +0 -1
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- claude_mpm/dashboard/static/built/dashboard.js.map +0 -1
- claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
- claude_mpm/dashboard/static/built/react/events.js +0 -30
- claude_mpm/dashboard/static/built/react/events.js.map +0 -1
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
- claude_mpm/dashboard/static/built/shared/logger.js +0 -385
- claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/built/socket-client.js +0 -2
- claude_mpm/dashboard/static/built/socket-client.js.map +0 -1
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +0 -170
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/js/shared/logger.js +0 -385
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
- claude_mpm/dashboard/static/legacy/activity.html +0 -736
- claude_mpm/dashboard/static/legacy/agents.html +0 -786
- claude_mpm/dashboard/static/legacy/files.html +0 -747
- claude_mpm/dashboard/static/legacy/tools.html +0 -831
- claude_mpm/dashboard/static/monitors.html +0 -431
- claude_mpm/dashboard/static/navigation-test-results.md +0 -118
- claude_mpm/dashboard/static/production/events.html +0 -659
- claude_mpm/dashboard/static/production/main.html +0 -698
- claude_mpm/dashboard/static/production/monitors.html +0 -483
- claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
- claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
- claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
- claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +0 -36
- claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +0 -39
- claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +0 -38
- claude_mpm/hooks/README.md +0 -143
- claude_mpm/hooks/templates/README.md +0 -180
- claude_mpm/hooks/templates/settings.json.example +0 -147
- claude_mpm/schemas/agent_schema.json +0 -596
- claude_mpm/schemas/frontmatter_schema.json +0 -165
- claude_mpm/services/event_bus/README.md +0 -244
- claude_mpm/services/events/README.md +0 -303
- claude_mpm/services/framework_claude_md_generator/README.md +0 -119
- claude_mpm/services/mcp_gateway/README.md +0 -185
- claude_mpm/services/socketio/handlers/connection.py.backup +0 -217
- claude_mpm/services/socketio/handlers/hook.py.backup +0 -154
- claude_mpm/services/static/.gitkeep +0 -2
- claude_mpm/services/version_control/VERSION +0 -1
- claude_mpm/skills/bundled/.gitkeep +0 -2
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
- claude_mpm/skills/bundled/collaboration/git-worktrees.md +0 -317
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
- claude_mpm/skills/bundled/collaboration/stacked-prs.md +0 -251
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
- claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +0 -63
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
- claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +0 -611
- claude_mpm/skills/bundled/infrastructure/env-manager/README.md +0 -596
- claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +0 -260
- claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +0 -315
- claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +0 -436
- claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +0 -433
- claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +0 -452
- claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +0 -404
- claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +0 -420
- claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +0 -54
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +0 -322
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
- claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
- claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +0 -22
- claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +0 -2
- claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
- claude_mpm/skills/bundled/react/flexlayout-react.md +0 -742
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
- claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +0 -495
- claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +0 -599
- claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +0 -535
- claude_mpm/skills/bundled/tauri/tauri-error-handling.md +0 -613
- claude_mpm/skills/bundled/tauri/tauri-event-system.md +0 -648
- claude_mpm/skills/bundled/tauri/tauri-file-system.md +0 -673
- claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +0 -767
- claude_mpm/skills/bundled/tauri/tauri-performance.md +0 -669
- claude_mpm/skills/bundled/tauri/tauri-state-management.md +0 -573
- claude_mpm/skills/bundled/tauri/tauri-testing.md +0 -384
- claude_mpm/skills/bundled/tauri/tauri-window-management.md +0 -628
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
- claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +0 -158
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
- claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +0 -458
- claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +0 -411
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +0 -317
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +0 -270
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +0 -436
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
- claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +0 -202
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
- claude_mpm/templates/questions/EXAMPLES.md +0 -501
- claude_mpm/tools/README_SOCKETIO_DEBUG.md +0 -224
- claude_mpm/tools/code_tree_analyzer/README.md +0 -64
- /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
- /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
- /claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +0 -0
- /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/WHEEL +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.25.10.dist-info → claude_mpm-5.1.8.dist-info}/top_level.txt +0 -0
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
# CLI Refactoring Guide
|
|
2
|
-
|
|
3
|
-
This guide shows how to refactor the main() function in `/src/claude_mpm/cli.py` to reduce complexity from 16 to under 10.
|
|
4
|
-
|
|
5
|
-
## Current Issues
|
|
6
|
-
|
|
7
|
-
1. **High Cyclomatic Complexity (16)**
|
|
8
|
-
- Multiple nested conditionals
|
|
9
|
-
- Duplicate argument definitions
|
|
10
|
-
- Mixed concerns in one function
|
|
11
|
-
|
|
12
|
-
2. **Code Duplication**
|
|
13
|
-
- Arguments defined twice (global level + run subcommand)
|
|
14
|
-
- Similar patterns repeated for each command
|
|
15
|
-
|
|
16
|
-
3. **Poor Maintainability**
|
|
17
|
-
- Adding new commands requires multiple changes
|
|
18
|
-
- Hard to test individual components
|
|
19
|
-
|
|
20
|
-
## Refactoring Steps
|
|
21
|
-
|
|
22
|
-
### Step 1: Update imports in cli.py
|
|
23
|
-
|
|
24
|
-
```python
|
|
25
|
-
# Add to imports
|
|
26
|
-
from .cli import ArgumentRegistry, CommandRegistry, register_standard_commands
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Step 2: Replace main() function
|
|
30
|
-
|
|
31
|
-
Replace the entire `main()` function with:
|
|
32
|
-
|
|
33
|
-
```python
|
|
34
|
-
def main(argv: Optional[list] = None):
|
|
35
|
-
"""Main CLI entry point with reduced complexity."""
|
|
36
|
-
# Initialize registries
|
|
37
|
-
arg_registry = ArgumentRegistry()
|
|
38
|
-
cmd_registry = CommandRegistry(arg_registry)
|
|
39
|
-
|
|
40
|
-
# Register standard commands
|
|
41
|
-
register_standard_commands(cmd_registry)
|
|
42
|
-
|
|
43
|
-
# Create parser
|
|
44
|
-
parser = argparse.ArgumentParser(
|
|
45
|
-
prog="claude-mpm",
|
|
46
|
-
description=f"Claude Multi-Agent Project Manager v{__version__}",
|
|
47
|
-
epilog="By default, runs an orchestrated Claude session."
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
# Store version for ArgumentRegistry
|
|
51
|
-
parser._version = f"claude-mpm {__version__}"
|
|
52
|
-
|
|
53
|
-
# Apply global arguments
|
|
54
|
-
arg_registry.apply_arguments(parser, groups=['global'])
|
|
55
|
-
|
|
56
|
-
# Apply run arguments at top level (for default behavior)
|
|
57
|
-
arg_registry.apply_arguments(parser, groups=['run'], exclude=['no_hooks'])
|
|
58
|
-
|
|
59
|
-
# Set up subcommands
|
|
60
|
-
cmd_registry.setup_subcommands(parser)
|
|
61
|
-
|
|
62
|
-
# Parse arguments
|
|
63
|
-
args = parser.parse_args(argv)
|
|
64
|
-
|
|
65
|
-
# Set up logging
|
|
66
|
-
_setup_logging(args)
|
|
67
|
-
|
|
68
|
-
# Initialize hook service
|
|
69
|
-
hook_manager = _initialize_hook_service(args)
|
|
70
|
-
|
|
71
|
-
try:
|
|
72
|
-
# Execute command
|
|
73
|
-
result = cmd_registry.execute_command(args, hook_manager=hook_manager)
|
|
74
|
-
if result is None and not args.command:
|
|
75
|
-
parser.print_help()
|
|
76
|
-
return 1
|
|
77
|
-
return result or 0
|
|
78
|
-
|
|
79
|
-
except KeyboardInterrupt:
|
|
80
|
-
get_logger("cli").info("Session interrupted by user")
|
|
81
|
-
return 0
|
|
82
|
-
except Exception as e:
|
|
83
|
-
logger = get_logger("cli")
|
|
84
|
-
logger.error(f"Error: {e}")
|
|
85
|
-
if args.debug:
|
|
86
|
-
import traceback
|
|
87
|
-
traceback.print_exc()
|
|
88
|
-
return 1
|
|
89
|
-
finally:
|
|
90
|
-
if hook_manager:
|
|
91
|
-
hook_manager.stop_service()
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Step 3: Extract helper functions
|
|
95
|
-
|
|
96
|
-
Add these helper functions after main():
|
|
97
|
-
|
|
98
|
-
```python
|
|
99
|
-
def _setup_logging(args):
|
|
100
|
-
"""Set up logging based on arguments."""
|
|
101
|
-
if args.debug and args.logging == "OFF":
|
|
102
|
-
args.logging = "DEBUG"
|
|
103
|
-
|
|
104
|
-
if args.logging != "OFF":
|
|
105
|
-
setup_logging(level=args.logging, log_dir=args.log_dir)
|
|
106
|
-
else:
|
|
107
|
-
import logging
|
|
108
|
-
logger = logging.getLogger("cli")
|
|
109
|
-
logger.setLevel(logging.WARNING)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
def _initialize_hook_service(args):
|
|
113
|
-
"""Initialize hook service if enabled."""
|
|
114
|
-
if getattr(args, 'no_hooks', False):
|
|
115
|
-
return None
|
|
116
|
-
|
|
117
|
-
try:
|
|
118
|
-
from .config.hook_config import HookConfig
|
|
119
|
-
|
|
120
|
-
if not HookConfig.is_hooks_enabled():
|
|
121
|
-
get_logger("cli").info("Hooks disabled via configuration")
|
|
122
|
-
return None
|
|
123
|
-
|
|
124
|
-
hook_manager = HookServiceManager(log_dir=args.log_dir)
|
|
125
|
-
if hook_manager.start_service():
|
|
126
|
-
logger = get_logger("cli")
|
|
127
|
-
logger.info(f"Hook service started on port {hook_manager.port}")
|
|
128
|
-
print(f"Hook service started on port {hook_manager.port}")
|
|
129
|
-
return hook_manager
|
|
130
|
-
else:
|
|
131
|
-
logger = get_logger("cli")
|
|
132
|
-
logger.warning("Failed to start hook service")
|
|
133
|
-
print("Failed to start hook service, continuing without hooks")
|
|
134
|
-
return None
|
|
135
|
-
|
|
136
|
-
except Exception as e:
|
|
137
|
-
get_logger("cli").warning(f"Hook service init failed: {e}")
|
|
138
|
-
return None
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Step 4: Update command handler signatures
|
|
142
|
-
|
|
143
|
-
Ensure all command handlers accept `**kwargs`:
|
|
144
|
-
|
|
145
|
-
```python
|
|
146
|
-
def run_session(args, hook_manager=None, **kwargs):
|
|
147
|
-
"""Run an orchestrated Claude session."""
|
|
148
|
-
# ... existing implementation
|
|
149
|
-
|
|
150
|
-
def list_tickets(args, **kwargs):
|
|
151
|
-
"""List recent tickets."""
|
|
152
|
-
# ... existing implementation
|
|
153
|
-
|
|
154
|
-
def show_info(args, hook_manager=None, **kwargs):
|
|
155
|
-
"""Show framework and configuration information."""
|
|
156
|
-
# ... existing implementation
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Benefits Achieved
|
|
160
|
-
|
|
161
|
-
### Complexity Reduction
|
|
162
|
-
- **Before**: Cyclomatic complexity of 16
|
|
163
|
-
- **After**: Cyclomatic complexity of ~8
|
|
164
|
-
|
|
165
|
-
### Code Organization
|
|
166
|
-
- Centralized argument definitions
|
|
167
|
-
- No duplicate argument definitions
|
|
168
|
-
- Clear separation of concerns
|
|
169
|
-
- Easier to add new commands
|
|
170
|
-
|
|
171
|
-
### Maintainability
|
|
172
|
-
- New commands can be added with a single `register()` call
|
|
173
|
-
- Arguments are defined once and reused
|
|
174
|
-
- Helper functions are testable in isolation
|
|
175
|
-
- Registry pattern allows for extension
|
|
176
|
-
|
|
177
|
-
## Adding New Commands
|
|
178
|
-
|
|
179
|
-
With the registry system, adding a new command is simple:
|
|
180
|
-
|
|
181
|
-
```python
|
|
182
|
-
# In your code or plugin
|
|
183
|
-
def my_command(args, **kwargs):
|
|
184
|
-
"""Implementation of your command."""
|
|
185
|
-
print(f"Running my command with args: {args}")
|
|
186
|
-
return 0
|
|
187
|
-
|
|
188
|
-
# Register it
|
|
189
|
-
cmd_registry.register(
|
|
190
|
-
name='mycommand',
|
|
191
|
-
help_text='Description of my command',
|
|
192
|
-
handler=my_command,
|
|
193
|
-
argument_groups=['framework'], # Reuse existing argument groups
|
|
194
|
-
extra_args={
|
|
195
|
-
'custom_arg': {
|
|
196
|
-
'flags': ['--custom'],
|
|
197
|
-
'type': str,
|
|
198
|
-
'help': 'A custom argument for this command'
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
)
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Testing
|
|
205
|
-
|
|
206
|
-
The refactored code is easier to test:
|
|
207
|
-
|
|
208
|
-
```python
|
|
209
|
-
# Test argument registry
|
|
210
|
-
def test_argument_registry():
|
|
211
|
-
registry = ArgumentRegistry()
|
|
212
|
-
parser = argparse.ArgumentParser()
|
|
213
|
-
registry.apply_arguments(parser, groups=['logging'])
|
|
214
|
-
|
|
215
|
-
# Verify logging arguments were added
|
|
216
|
-
args = parser.parse_args(['--logging', 'DEBUG'])
|
|
217
|
-
assert args.logging == 'DEBUG'
|
|
218
|
-
|
|
219
|
-
# Test command registry
|
|
220
|
-
def test_command_registry():
|
|
221
|
-
arg_reg = ArgumentRegistry()
|
|
222
|
-
cmd_reg = CommandRegistry(arg_reg)
|
|
223
|
-
|
|
224
|
-
called = False
|
|
225
|
-
def test_handler(args, **kwargs):
|
|
226
|
-
nonlocal called
|
|
227
|
-
called = True
|
|
228
|
-
return 0
|
|
229
|
-
|
|
230
|
-
cmd_reg.register('test', 'Test command', test_handler)
|
|
231
|
-
|
|
232
|
-
parser = argparse.ArgumentParser()
|
|
233
|
-
cmd_reg.setup_subcommands(parser)
|
|
234
|
-
|
|
235
|
-
args = parser.parse_args(['test'])
|
|
236
|
-
result = cmd_reg.execute_command(args)
|
|
237
|
-
|
|
238
|
-
assert called
|
|
239
|
-
assert result == 0
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Migration Checklist
|
|
243
|
-
|
|
244
|
-
- [ ] Create `/src/claude_mpm/cli/` directory
|
|
245
|
-
- [ ] Create `args.py` with ArgumentRegistry
|
|
246
|
-
- [ ] Create `commands.py` with CommandRegistry
|
|
247
|
-
- [ ] Create `__init__.py` to export classes
|
|
248
|
-
- [ ] Update imports in `cli.py`
|
|
249
|
-
- [ ] Replace main() function
|
|
250
|
-
- [ ] Add helper functions
|
|
251
|
-
- [ ] Update command handler signatures
|
|
252
|
-
- [ ] Test the refactored CLI
|
|
253
|
-
- [ ] Verify complexity is reduced to ≤10
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
# mpm-tickets
|
|
2
|
-
|
|
3
|
-
Create and manage tickets using mcp-ticketer MCP server (primary) or aitrackdown CLI (fallback)
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
Use this command to create and manage tickets (epics, issues, tasks) through intelligent MCP-first integration with automatic CLI fallback.
|
|
8
|
-
|
|
9
|
-
## Integration Methods
|
|
10
|
-
|
|
11
|
-
### PRIMARY: mcp-ticketer MCP Server (Preferred)
|
|
12
|
-
|
|
13
|
-
When available, ticketing operations use the mcp-ticketer MCP server for:
|
|
14
|
-
- Unified interface across ticketing backends (Jira, GitHub, Linear)
|
|
15
|
-
- Better error handling and validation
|
|
16
|
-
- Automatic backend detection
|
|
17
|
-
- Enhanced features and reliability
|
|
18
|
-
|
|
19
|
-
**MCP Tools**:
|
|
20
|
-
- `mcp__mcp-ticketer__create_ticket` - Create epics, issues, tasks
|
|
21
|
-
- `mcp__mcp-ticketer__list_tickets` - List tickets with filters
|
|
22
|
-
- `mcp__mcp-ticketer__get_ticket` - View ticket details
|
|
23
|
-
- `mcp__mcp-ticketer__update_ticket` - Update status, priority
|
|
24
|
-
- `mcp__mcp-ticketer__search_tickets` - Search by keywords
|
|
25
|
-
- `mcp__mcp-ticketer__add_comment` - Add comments
|
|
26
|
-
|
|
27
|
-
### SECONDARY: aitrackdown CLI (Fallback)
|
|
28
|
-
|
|
29
|
-
When mcp-ticketer is not available, operations fall back to aitrackdown CLI for direct ticket management.
|
|
30
|
-
|
|
31
|
-
## Commands
|
|
32
|
-
|
|
33
|
-
### Create tickets
|
|
34
|
-
```bash
|
|
35
|
-
# Create an epic
|
|
36
|
-
aitrackdown create epic "Title" --description "Description"
|
|
37
|
-
|
|
38
|
-
# Create an issue
|
|
39
|
-
aitrackdown create issue "Title" --description "Description"
|
|
40
|
-
|
|
41
|
-
# Create a task
|
|
42
|
-
aitrackdown create task "Title" --description "Description"
|
|
43
|
-
|
|
44
|
-
# Create task under an issue
|
|
45
|
-
aitrackdown create task "Title" --issue ISS-0001
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### View tickets
|
|
49
|
-
```bash
|
|
50
|
-
# Show all tasks
|
|
51
|
-
aitrackdown status tasks
|
|
52
|
-
|
|
53
|
-
# Show specific ticket
|
|
54
|
-
aitrackdown show ISS-0001
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Update tickets
|
|
58
|
-
```bash
|
|
59
|
-
# Change status
|
|
60
|
-
aitrackdown transition ISS-0001 in-progress
|
|
61
|
-
aitrackdown transition ISS-0001 done
|
|
62
|
-
|
|
63
|
-
# Add comment
|
|
64
|
-
aitrackdown comment ISS-0001 "Your comment"
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Search tickets
|
|
68
|
-
```bash
|
|
69
|
-
aitrackdown search tasks "keyword"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Ticket Types
|
|
73
|
-
|
|
74
|
-
- **EP-XXXX**: Epics (major initiatives)
|
|
75
|
-
- **ISS-XXXX**: Issues (bugs, features, user requests)
|
|
76
|
-
- **TSK-XXXX**: Tasks (individual work items)
|
|
77
|
-
|
|
78
|
-
## Workflow States
|
|
79
|
-
|
|
80
|
-
Valid transitions:
|
|
81
|
-
- `open` → `in-progress` → `ready` → `tested` → `done`
|
|
82
|
-
- Any state → `waiting` (when blocked)
|
|
83
|
-
- Any state → `closed` (to close)
|
|
84
|
-
|
|
85
|
-
## Examples
|
|
86
|
-
|
|
87
|
-
### Bug Report Flow
|
|
88
|
-
```bash
|
|
89
|
-
# Create issue for bug
|
|
90
|
-
aitrackdown create issue "Login bug" --description "Users can't login" --severity high
|
|
91
|
-
|
|
92
|
-
# Create investigation task
|
|
93
|
-
aitrackdown create task "Investigate login bug" --issue ISS-0001
|
|
94
|
-
|
|
95
|
-
# Update status
|
|
96
|
-
aitrackdown transition TSK-0001 in-progress
|
|
97
|
-
aitrackdown comment TSK-0001 "Found the issue"
|
|
98
|
-
|
|
99
|
-
# Complete
|
|
100
|
-
aitrackdown transition TSK-0001 done
|
|
101
|
-
aitrackdown transition ISS-0001 done
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Feature Implementation
|
|
105
|
-
```bash
|
|
106
|
-
# Create epic
|
|
107
|
-
aitrackdown create epic "OAuth2 Support"
|
|
108
|
-
|
|
109
|
-
# Create issues
|
|
110
|
-
aitrackdown create issue "Google OAuth2" --description "Add Google auth"
|
|
111
|
-
aitrackdown create issue "GitHub OAuth2" --description "Add GitHub auth"
|
|
112
|
-
|
|
113
|
-
# Create tasks
|
|
114
|
-
aitrackdown create task "Design OAuth flow" --issue ISS-0001
|
|
115
|
-
aitrackdown create task "Implement Google client" --issue ISS-0001
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## MCP vs CLI Usage
|
|
119
|
-
|
|
120
|
-
### Using MCP Tools (Preferred)
|
|
121
|
-
```
|
|
122
|
-
# Create issue with MCP
|
|
123
|
-
mcp__mcp-ticketer__create_ticket(
|
|
124
|
-
type="issue",
|
|
125
|
-
title="Fix login bug",
|
|
126
|
-
priority="high"
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
# List tickets
|
|
130
|
-
mcp__mcp-ticketer__list_tickets(status="open")
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Using CLI Fallback
|
|
134
|
-
```bash
|
|
135
|
-
# Create issue with CLI
|
|
136
|
-
aitrackdown create issue "Fix login bug" --priority high
|
|
137
|
-
|
|
138
|
-
# List tickets
|
|
139
|
-
aitrackdown status
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Tips
|
|
143
|
-
|
|
144
|
-
- **MCP-first**: Prefer mcp-ticketer MCP tools when available
|
|
145
|
-
- **Automatic fallback**: System gracefully falls back to aitrackdown CLI
|
|
146
|
-
- **Check availability**: Detection happens automatically
|
|
147
|
-
- **Always use aitrackdown directly** (not claude-mpm tickets) for CLI operations
|
|
148
|
-
- **Check ticket exists** with `get_ticket` (MCP) or `show` (CLI) before updating
|
|
149
|
-
- **Add comments** to document progress
|
|
150
|
-
- **Use `--severity`** for bugs, `--priority` for features
|
|
151
|
-
- **Associate tasks** with issues using `parent_id` (MCP) or `--issue` (CLI)
|