claude-mpm 4.24.0__py3-none-any.whl → 5.0.9__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/OUTPUT_STYLE.md +3 -48
- claude_mpm/agents/PM_INSTRUCTIONS.md +721 -911
- 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.json +6 -3
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/frontmatter_validator.py +1 -1
- claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +370 -3
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +48 -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 +38 -2
- 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/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/auto_configure.py +2 -6
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +769 -45
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mpm_init/core.py +49 -1
- claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
- claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +123 -165
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +757 -20
- claude_mpm/cli/executor.py +78 -3
- claude_mpm/cli/interactive/agent_wizard.py +955 -45
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +256 -4
- claude_mpm/cli/parsers/base_parser.py +53 -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 +145 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +538 -106
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/cli_module/commands.py +1 -1
- 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 +27 -2
- 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 +13 -0
- claude_mpm/core/claude_runner.py +5 -34
- claude_mpm/core/config.py +16 -0
- claude_mpm/core/constants.py +1 -1
- 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/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +91 -10
- claude_mpm/core/logger.py +3 -1
- 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/dashboard/static/css/activity.css +69 -69
- claude_mpm/dashboard/static/css/connection-status.css +10 -10
- claude_mpm/dashboard/static/css/dashboard.css +15 -15
- claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
- claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
- claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
- claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +76 -58
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- 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/event_handlers.py +3 -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/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- 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_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- 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/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- 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 +9 -12
- claude_mpm/services/agents/local_template_manager.py +50 -10
- 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/cli/session_pause_manager.py +1 -1
- 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_check.py +0 -2
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
- claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
- 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 +40 -10
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/events/consumers/logging.py +1 -2
- 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/local_ops/resource_monitor.py +1 -1
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- 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_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/model/model_router.py +1 -2
- claude_mpm/services/monitor/daemon.py +29 -9
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/port_manager.py +1 -1
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/documentation_manager.py +2 -1
- claude_mpm/services/project/toolchain_analyzer.py +3 -1
- 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/skills_config.py +547 -0
- claude_mpm/services/skills_deployer.py +955 -0
- claude_mpm/services/socketio/handlers/connection.py +1 -1
- claude_mpm/services/socketio/handlers/git.py +1 -1
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/system_instructions_service.py +1 -3
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
- claude_mpm/skills/skills_registry.py +0 -1
- claude_mpm/templates/questions/__init__.py +38 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +311 -0
- claude_mpm/templates/questions/project_init.py +385 -0
- claude_mpm/templates/questions/ticket_mgmt.py +394 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/utils/agent_dependency_loader.py +77 -10
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +241 -0
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +2 -4
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/METADATA +396 -43
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/RECORD +268 -422
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
- 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/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
- 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 -188
- 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 -178
- 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/commands/mpm-tickets.md +0 -151
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
- claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
- claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
- claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
- claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
- claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
- claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
- 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/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- 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-viewer.js +0 -2
- 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-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- 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-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- 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/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- 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/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/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm/dashboard/static/dist/react/events.js +0 -30
- claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- 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/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/static/test-archive/test_debug.html +0 -25
- 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/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/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/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/main/artifacts-builder/SKILL.md +0 -86
- 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/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/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/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/testing/condition-based-waiting/SKILL.md +0 -119
- 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/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/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/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/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
# PR Workflow Examples
|
|
2
|
+
|
|
3
|
+
**Purpose**: Comprehensive examples of PR creation workflows and strategy selection
|
|
4
|
+
**Usage**: Reference for PM when coordinating PR creation across multiple tickets
|
|
5
|
+
**Related**: version-control.md, validation-templates.md
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Main-Based PR Examples
|
|
10
|
+
|
|
11
|
+
### Single Ticket PR
|
|
12
|
+
|
|
13
|
+
**Scenario**: User requests PR for single independent ticket
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
User: "Create PR for PROJ-123"
|
|
17
|
+
|
|
18
|
+
PM Analysis:
|
|
19
|
+
- Single ticket (1)
|
|
20
|
+
- Independent feature (not blocking other work)
|
|
21
|
+
- CI configured: Yes
|
|
22
|
+
- Strategy: Main-based (default for single ticket)
|
|
23
|
+
|
|
24
|
+
PM Workflow:
|
|
25
|
+
1. Check ticket status
|
|
26
|
+
PM → Ticketing: "Check PROJ-123 status"
|
|
27
|
+
Ticketing: "PROJ-123 is complete, all tests passing"
|
|
28
|
+
|
|
29
|
+
2. Delegate to version-control
|
|
30
|
+
PM → version-control: "Create PR for PROJ-123
|
|
31
|
+
- Base branch: main
|
|
32
|
+
- PR title: feat: Add OAuth2 authentication (PROJ-123)
|
|
33
|
+
- Draft mode: false
|
|
34
|
+
- Auto-merge: disabled (requires review)"
|
|
35
|
+
|
|
36
|
+
3. version-control executes
|
|
37
|
+
version-control: "PR created: #42
|
|
38
|
+
- Branch: feature/oauth2
|
|
39
|
+
- Target: main
|
|
40
|
+
- Status: Ready for review
|
|
41
|
+
- CI: Passing ✅
|
|
42
|
+
- URL: https://github.com/org/repo/pull/42"
|
|
43
|
+
|
|
44
|
+
4. PM reports to user
|
|
45
|
+
PM: "PR #42 created for PROJ-123 and ready for review"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**When to use Main-Based**:
|
|
49
|
+
- ✅ Single ticket
|
|
50
|
+
- ✅ Independent features
|
|
51
|
+
- ✅ No dependencies between tickets
|
|
52
|
+
- ✅ Parallel development (multiple developers)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Stacked PR Examples
|
|
57
|
+
|
|
58
|
+
### Dependent Ticket Chain
|
|
59
|
+
|
|
60
|
+
**Scenario**: User requests PRs for 3 dependent tickets
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
User: "Create PRs for PROJ-101, PROJ-102, PROJ-103"
|
|
64
|
+
|
|
65
|
+
PM Analysis:
|
|
66
|
+
- Multiple tickets (3)
|
|
67
|
+
- Dependency chain: PROJ-101 → PROJ-102 → PROJ-103
|
|
68
|
+
- CI configured: Yes
|
|
69
|
+
- Strategy: Stacked (sequential dependencies)
|
|
70
|
+
|
|
71
|
+
PM Workflow:
|
|
72
|
+
1. Check dependencies
|
|
73
|
+
PM → Ticketing: "Check dependencies for PROJ-101, PROJ-102, PROJ-103"
|
|
74
|
+
Ticketing: "PROJ-102 depends on PROJ-101, PROJ-103 depends on PROJ-102"
|
|
75
|
+
|
|
76
|
+
2. Use PRWorkflowTemplate
|
|
77
|
+
PM → User: "Detected 3 dependent tickets. Recommend stacked PRs.
|
|
78
|
+
|
|
79
|
+
Option A: Main-based PRs (independent, parallel review)
|
|
80
|
+
Option B: Stacked PRs (sequential, preserves dependencies)
|
|
81
|
+
|
|
82
|
+
Your tickets have dependencies, recommending Option B."
|
|
83
|
+
|
|
84
|
+
3. User confirms stacked approach
|
|
85
|
+
User: "Option B - stacked PRs"
|
|
86
|
+
|
|
87
|
+
4. Delegate to version-control
|
|
88
|
+
PM → version-control: "Create stacked PRs for PROJ-101, PROJ-102, PROJ-103
|
|
89
|
+
|
|
90
|
+
PR Strategy: Stacked
|
|
91
|
+
- PR #1: PROJ-101 → main
|
|
92
|
+
- PR #2: PROJ-102 → feature/PROJ-101
|
|
93
|
+
- PR #3: PROJ-103 → feature/PROJ-102
|
|
94
|
+
|
|
95
|
+
Merge Order: PR #1 first, then #2, then #3
|
|
96
|
+
Draft mode: false
|
|
97
|
+
Auto-merge: disabled"
|
|
98
|
+
|
|
99
|
+
5. version-control executes
|
|
100
|
+
version-control: "Stacked PRs created:
|
|
101
|
+
- PR #43: PROJ-101 → main (ready for review)
|
|
102
|
+
- PR #44: PROJ-102 → feature/PROJ-101 (draft, blocked by #43)
|
|
103
|
+
- PR #45: PROJ-103 → feature/PROJ-102 (draft, blocked by #44)
|
|
104
|
+
|
|
105
|
+
Merge order enforced via branch targeting"
|
|
106
|
+
|
|
107
|
+
6. PM reports to user
|
|
108
|
+
PM: "3 stacked PRs created:
|
|
109
|
+
- PR #43 ready for review (merge first)
|
|
110
|
+
- PR #44, #45 waiting on #43 merge
|
|
111
|
+
|
|
112
|
+
After #43 merges, version-control will rebase #44 onto main automatically"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**When to use Stacked PRs**:
|
|
116
|
+
- ✅ Multiple dependent tickets
|
|
117
|
+
- ✅ Sequential feature development
|
|
118
|
+
- ✅ Phased rollout (stage 1 → stage 2 → stage 3)
|
|
119
|
+
- ✅ Large features broken into reviewable chunks
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## PR Strategy Selection Examples
|
|
124
|
+
|
|
125
|
+
### 3-Ticket Scenario with CI
|
|
126
|
+
|
|
127
|
+
**Complete Workflow Example**
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
User: "Create PRs for tickets MPM-101, MPM-102, MPM-103"
|
|
131
|
+
|
|
132
|
+
Step 1: PM Analyzes Context
|
|
133
|
+
PM checks:
|
|
134
|
+
- Ticket count: 3 tickets
|
|
135
|
+
- CI configuration: .github/workflows/ci.yml exists ✅
|
|
136
|
+
- Dependencies: None detected (independent features)
|
|
137
|
+
|
|
138
|
+
Step 2: PM Uses PRWorkflowTemplate
|
|
139
|
+
```python
|
|
140
|
+
PRWorkflowTemplate(
|
|
141
|
+
num_tickets=3,
|
|
142
|
+
has_ci=True,
|
|
143
|
+
dependencies_detected=False
|
|
144
|
+
)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Step 3: PM Asks User with AskUserQuestion
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"questions": [
|
|
151
|
+
{
|
|
152
|
+
"question": "How should we create PRs for these 3 tickets?",
|
|
153
|
+
"header": "PR Strategy",
|
|
154
|
+
"multiSelect": false,
|
|
155
|
+
"options": [
|
|
156
|
+
{
|
|
157
|
+
"label": "Main-based PRs (independent)",
|
|
158
|
+
"description": "Each ticket gets its own PR to main. Good for parallel review and independent features."
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"label": "Stacked PRs (sequential)",
|
|
162
|
+
"description": "PRs build on each other (PR2 → PR1 → main). Good for dependent features."
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"question": "Should PRs be created as drafts?",
|
|
168
|
+
"header": "Draft Mode",
|
|
169
|
+
"multiSelect": false,
|
|
170
|
+
"options": [
|
|
171
|
+
{
|
|
172
|
+
"label": "Draft PRs",
|
|
173
|
+
"description": "Create as drafts for early feedback before formal review"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"label": "Ready for Review",
|
|
177
|
+
"description": "Create as ready-to-review (recommended if all tests passing)"
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"question": "Enable auto-merge after CI passes and approvals met?",
|
|
183
|
+
"header": "Auto-merge",
|
|
184
|
+
"multiSelect": false,
|
|
185
|
+
"options": [
|
|
186
|
+
{
|
|
187
|
+
"label": "Enable auto-merge",
|
|
188
|
+
"description": "PRs merge automatically when CI passes and required approvals obtained"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"label": "Manual merge",
|
|
192
|
+
"description": "Require manual merge click (more control)"
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Step 4: User Responds
|
|
201
|
+
```
|
|
202
|
+
User selections:
|
|
203
|
+
- PR Strategy: "Main-based PRs (independent)"
|
|
204
|
+
- Draft Mode: "Ready for Review"
|
|
205
|
+
- Auto-merge: "Manual merge"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Step 5: PM Parses Responses
|
|
209
|
+
```python
|
|
210
|
+
pr_strategy = "main-based" # from PR Strategy response
|
|
211
|
+
draft_mode = False # from "Ready for Review"
|
|
212
|
+
auto_merge = False # from "Manual merge"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Step 6: PM Delegates to version-control
|
|
216
|
+
```
|
|
217
|
+
PM → version-control: "Create main-based PRs for MPM-101, MPM-102, MPM-103
|
|
218
|
+
|
|
219
|
+
Configuration:
|
|
220
|
+
- Base branch: main (for all 3)
|
|
221
|
+
- Draft mode: false (ready for review)
|
|
222
|
+
- Auto-merge: disabled (manual merge required)
|
|
223
|
+
- CI checks: Required (must pass before merge)
|
|
224
|
+
|
|
225
|
+
Tickets:
|
|
226
|
+
1. MPM-101: Add user authentication
|
|
227
|
+
2. MPM-102: Implement caching layer
|
|
228
|
+
3. MPM-103: Optimize database queries
|
|
229
|
+
|
|
230
|
+
All features are independent, parallel review recommended."
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Step 7: version-control Executes
|
|
234
|
+
```
|
|
235
|
+
version-control → PM: "3 main-based PRs created:
|
|
236
|
+
|
|
237
|
+
PR #50: feat: Add user authentication (MPM-101)
|
|
238
|
+
- Branch: feature/auth → main
|
|
239
|
+
- Status: Ready for review
|
|
240
|
+
- CI: Running... ✓ Passed
|
|
241
|
+
- URL: https://github.com/org/repo/pull/50
|
|
242
|
+
|
|
243
|
+
PR #51: feat: Implement caching layer (MPM-102)
|
|
244
|
+
- Branch: feature/caching → main
|
|
245
|
+
- Status: Ready for review
|
|
246
|
+
- CI: Running... ✓ Passed
|
|
247
|
+
- URL: https://github.com/org/repo/pull/51
|
|
248
|
+
|
|
249
|
+
PR #52: perf: Optimize database queries (MPM-103)
|
|
250
|
+
- Branch: feature/db-optimization → main
|
|
251
|
+
- Status: Ready for review
|
|
252
|
+
- CI: Running... ✓ Passed
|
|
253
|
+
- URL: https://github.com/org/repo/pull/52
|
|
254
|
+
|
|
255
|
+
All PRs ready for review. Manual merge required after approval."
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Step 8: PM Reports to User
|
|
259
|
+
```
|
|
260
|
+
PM → User: "3 PRs created and ready for review:
|
|
261
|
+
- PR #50 (MPM-101): User authentication
|
|
262
|
+
- PR #51 (MPM-102): Caching layer
|
|
263
|
+
- PR #52 (MPM-103): Database optimization
|
|
264
|
+
|
|
265
|
+
All CI checks passing ✅
|
|
266
|
+
Review these PRs in any order (independent features)
|
|
267
|
+
Manual merge after approval"
|
|
268
|
+
```
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Key Decisions**:
|
|
272
|
+
1. **Strategy**: Main-based chosen (independent features, parallel review)
|
|
273
|
+
2. **Draft**: Disabled (tests passing, ready for formal review)
|
|
274
|
+
3. **Auto-merge**: Disabled (user wants manual control)
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Conflict Resolution Examples
|
|
279
|
+
|
|
280
|
+
### Handling Merge Conflicts in Stacked PRs
|
|
281
|
+
|
|
282
|
+
**Scenario**: Stacked PR #2 has conflicts after PR #1 merges
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
Initial State:
|
|
286
|
+
- PR #43: PROJ-101 → main (merged ✅)
|
|
287
|
+
- PR #44: PROJ-102 → feature/PROJ-101 (conflicts ⚠️)
|
|
288
|
+
- PR #45: PROJ-103 → feature/PROJ-102 (waiting)
|
|
289
|
+
|
|
290
|
+
Conflict Detected:
|
|
291
|
+
version-control: "PR #44 has merge conflicts with main after #43 merge
|
|
292
|
+
Conflicts in: src/auth/login.js, src/api/routes.js"
|
|
293
|
+
|
|
294
|
+
PM Workflow:
|
|
295
|
+
1. Notify user
|
|
296
|
+
PM → User: "PR #44 has merge conflicts after #43 merge
|
|
297
|
+
Conflicts in 2 files. Need to resolve before continuing."
|
|
298
|
+
|
|
299
|
+
2. Delegate to engineer
|
|
300
|
+
PM → Engineer: "Resolve merge conflicts in PR #44
|
|
301
|
+
|
|
302
|
+
Conflicts:
|
|
303
|
+
- src/auth/login.js (both modified)
|
|
304
|
+
- src/api/routes.js (both modified)
|
|
305
|
+
|
|
306
|
+
Context: PROJ-101 added new auth flow, PROJ-102 modifying same files
|
|
307
|
+
|
|
308
|
+
Steps:
|
|
309
|
+
1. git checkout feature/PROJ-102
|
|
310
|
+
2. git rebase main
|
|
311
|
+
3. Resolve conflicts (preserve both changes)
|
|
312
|
+
4. Run tests: npm test
|
|
313
|
+
5. Force push: git push -f origin feature/PROJ-102"
|
|
314
|
+
|
|
315
|
+
3. Engineer resolves conflicts
|
|
316
|
+
Engineer: "Conflicts resolved in PR #44
|
|
317
|
+
- Combined auth changes from both PRs
|
|
318
|
+
- Tests passing: 15/15 ✅
|
|
319
|
+
- Force pushed to feature/PROJ-102"
|
|
320
|
+
|
|
321
|
+
4. PM verifies and continues
|
|
322
|
+
PM → version-control: "Rebase PR #45 onto updated PR #44"
|
|
323
|
+
version-control: "PR #45 rebased successfully, no conflicts"
|
|
324
|
+
|
|
325
|
+
PM → User: "Conflicts resolved. PR #44 ready for review, PR #45 updated"
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Conflict Prevention**:
|
|
329
|
+
- Encourage smaller PRs (less conflict surface)
|
|
330
|
+
- Frequent rebases in stacked PRs
|
|
331
|
+
- Clear ownership boundaries (different files)
|
|
332
|
+
- Early integration testing
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## CI/CD Integration Examples
|
|
337
|
+
|
|
338
|
+
### CI Requirement Enforcement
|
|
339
|
+
|
|
340
|
+
**Scenario**: PR created with CI checks required
|
|
341
|
+
|
|
342
|
+
```
|
|
343
|
+
PM → version-control: "Create PR for PROJ-123 with CI enforcement"
|
|
344
|
+
|
|
345
|
+
version-control workflow:
|
|
346
|
+
1. Create PR: #46 (PROJ-123 → main)
|
|
347
|
+
2. Trigger CI checks:
|
|
348
|
+
- Linting: eslint ✅
|
|
349
|
+
- Type checking: tsc ✅
|
|
350
|
+
- Unit tests: jest ✅
|
|
351
|
+
- Integration tests: playwright ✅
|
|
352
|
+
- Build: npm run build ✅
|
|
353
|
+
|
|
354
|
+
3. Set branch protection:
|
|
355
|
+
- Require CI passing before merge
|
|
356
|
+
- Require 1 approval
|
|
357
|
+
- Require branch up-to-date
|
|
358
|
+
- Block force pushes to main
|
|
359
|
+
|
|
360
|
+
4. Report status:
|
|
361
|
+
version-control → PM: "PR #46 created with CI enforcement
|
|
362
|
+
- All checks passing ✅
|
|
363
|
+
- Branch protection enabled
|
|
364
|
+
- Ready for review (1 approval required)"
|
|
365
|
+
|
|
366
|
+
PM → User: "PR #46 ready for review
|
|
367
|
+
CI checks: 5/5 passing ✅
|
|
368
|
+
Requires 1 approval before merge"
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
**CI Failure Handling**:
|
|
372
|
+
```
|
|
373
|
+
Scenario: CI check fails
|
|
374
|
+
|
|
375
|
+
version-control: "PR #46 CI check failed: Unit tests (3 failing)"
|
|
376
|
+
|
|
377
|
+
PM → User: "PR #46 has failing tests (3/15 failing)
|
|
378
|
+
Blocking merge until tests pass"
|
|
379
|
+
|
|
380
|
+
PM → Engineer: "Fix failing tests in PR #46
|
|
381
|
+
Failed tests:
|
|
382
|
+
- auth.test.js: Login with invalid email
|
|
383
|
+
- auth.test.js: Token refresh expired
|
|
384
|
+
- auth.test.js: Logout clears session
|
|
385
|
+
|
|
386
|
+
Review test output and fix implementation or test expectations"
|
|
387
|
+
|
|
388
|
+
Engineer fixes tests:
|
|
389
|
+
Engineer: "Tests fixed, all 15/15 passing ✅"
|
|
390
|
+
|
|
391
|
+
version-control: "PR #46 CI checks now passing
|
|
392
|
+
Ready for review"
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Success Criteria
|
|
398
|
+
|
|
399
|
+
**PR workflow is working if**:
|
|
400
|
+
- ✅ PM asks user about PR strategy (main-based vs stacked)
|
|
401
|
+
- ✅ PM detects dependencies and recommends stacked PRs
|
|
402
|
+
- ✅ Draft mode matches user preference
|
|
403
|
+
- ✅ Auto-merge configured per user choice
|
|
404
|
+
- ✅ CI enforcement is enabled and respected
|
|
405
|
+
- ✅ Conflicts detected and resolved promptly
|
|
406
|
+
- ✅ PR status clearly communicated to user
|
|
407
|
+
|
|
408
|
+
**Red Flags**:
|
|
409
|
+
- ❌ PM creates PRs without asking user about strategy
|
|
410
|
+
- ❌ Stacked PRs created for independent features
|
|
411
|
+
- ❌ Main-based PRs created for dependent features
|
|
412
|
+
- ❌ Auto-merge enabled without user confirmation
|
|
413
|
+
- ❌ CI checks bypassed or ignored
|
|
414
|
+
- ❌ Conflicts not detected or left unresolved
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## Related References
|
|
419
|
+
|
|
420
|
+
- **Version Control Agent**: See [version-control.md](version-control.md)
|
|
421
|
+
- **Validation Templates**: See [validation-templates.md](validation-templates.md#prworkflowtemplate)
|
|
422
|
+
- **Structured Questions**: See [structured-questions-examples.md](structured-questions-examples.md)
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
**Last Updated**: 2025-12-01
|
|
427
|
+
**Phase**: Phase 3 Optimization - Example Extraction
|