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.
- 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
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
6. [Circuit Breaker #4: Implementation Before Delegation Detection](#circuit-breaker-4-implementation-before-delegation-detection)
|
|
19
19
|
7. [Circuit Breaker #5: File Tracking Detection](#circuit-breaker-5-file-tracking-detection)
|
|
20
20
|
8. [Circuit Breaker #6: Ticketing Tool Misuse Detection](#circuit-breaker-6-ticketing-tool-misuse-detection)
|
|
21
|
-
9. [Violation
|
|
22
|
-
10. [
|
|
21
|
+
9. [Circuit Breaker #7: Research Gate Violation Detection](#circuit-breaker-7-research-gate-violation-detection)
|
|
22
|
+
10. [Violation Tracking Format](#violation-tracking-format)
|
|
23
|
+
11. [Escalation Levels](#escalation-levels)
|
|
23
24
|
|
|
24
25
|
---
|
|
25
26
|
|
|
@@ -58,7 +59,8 @@ Circuit breakers enforce strict delegation discipline by detecting violations BE
|
|
|
58
59
|
| **#3 Unverified Assertion** | PM making claims without evidence | Any assertion without agent verification | Delegate verification to appropriate agent |
|
|
59
60
|
| **#4 Implementation Before Delegation** | PM working without delegating first | Any implementation attempt without Task use | Use Task tool to delegate |
|
|
60
61
|
| **#5 File Tracking** | PM not tracking new files in git | Session ending with untracked files | Track files with proper context commits |
|
|
61
|
-
| **#6 Ticketing Tool Misuse** | PM using ticketing tools directly | PM calls mcp-ticketer tools or aitrackdown CLI | ALWAYS delegate to ticketing
|
|
62
|
+
| **#6 Ticketing Tool Misuse** | PM using ticketing tools directly | PM calls mcp-ticketer tools or aitrackdown CLI | ALWAYS delegate to ticketing |
|
|
63
|
+
| **#7 Research Gate Violation** | PM skipping research for ambiguous tasks | Delegates to implementation without research validation | Delegate to Research agent FIRST |
|
|
62
64
|
|
|
63
65
|
---
|
|
64
66
|
|
|
@@ -132,73 +134,265 @@ PM: Task(agent="engineer", task="Add express dependency to package.json")
|
|
|
132
134
|
|
|
133
135
|
## Circuit Breaker #2: Investigation Detection
|
|
134
136
|
|
|
135
|
-
**Purpose**:
|
|
137
|
+
**Purpose**: Block PM from investigation work through pre-action enforcement
|
|
136
138
|
|
|
137
|
-
|
|
139
|
+
**Effectiveness Target**: 95% compliance (upgraded from 40% reactive detection)
|
|
140
|
+
**Model**: Pre-action blocking pattern (Circuit Breaker #6 architecture)
|
|
141
|
+
**Related Tests**: `tests/one-shot/pm-investigation-violations/test_001.md` through `test_005.md`
|
|
142
|
+
**Research Analysis**: `docs/research/pm-investigation-violation-analysis.md`
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
### Core Principle
|
|
140
145
|
|
|
141
|
-
|
|
142
|
-
- Reading more than 1 file per session
|
|
143
|
-
- Using `Read` tool for code exploration
|
|
144
|
-
- Checking file contents for investigation
|
|
145
|
-
- Reading documentation for understanding
|
|
146
|
+
PM must detect investigation intent BEFORE using investigation tools. This circuit breaker enforces mandatory Research delegation for any task requiring code analysis, multi-file reading, or solution exploration.
|
|
146
147
|
|
|
147
|
-
|
|
148
|
-
- Using `Grep` tool for code search
|
|
149
|
-
- Using `Glob` tool for file discovery
|
|
150
|
-
- Using `WebSearch` or `WebFetch` for research
|
|
151
|
-
- Analyzing code patterns or architecture
|
|
148
|
+
### Pre-Action Blocking Protocol
|
|
152
149
|
|
|
153
|
-
|
|
154
|
-
- Searching for solutions or approaches
|
|
155
|
-
- Examining dependencies or imports
|
|
156
|
-
- Checking logs for debugging
|
|
157
|
-
- Running git commands for history (`git log`, `git blame`)
|
|
150
|
+
**MANDATORY: PM checks for investigation signals before tool execution**
|
|
158
151
|
|
|
159
|
-
|
|
152
|
+
#### Step 1: User Request Analysis (BLOCKING)
|
|
160
153
|
|
|
161
|
-
|
|
154
|
+
Before any tool use, PM analyzes user request for investigation triggers:
|
|
162
155
|
|
|
163
|
-
|
|
156
|
+
**Investigation Trigger Keywords**:
|
|
164
157
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
158
|
+
| Category | Keywords | Action |
|
|
159
|
+
|----------|----------|--------|
|
|
160
|
+
| **Investigation Verbs** | "investigate", "check", "look at", "explore", "examine" | Block → Delegate to Research |
|
|
161
|
+
| **Analysis Requests** | "analyze", "review", "inspect", "understand", "figure out" | Block → Delegate to Research |
|
|
162
|
+
| **Problem Diagnosis** | "debug", "find out", "what's wrong", "why is", "how does" | Block → Delegate to Research |
|
|
163
|
+
| **Code Exploration** | "see what", "show me", "where is", "find the code" | Block → Delegate to Research |
|
|
170
164
|
|
|
171
|
-
|
|
165
|
+
**Detection Rule**: If user request contains ANY trigger keyword → PM MUST delegate to Research BEFORE using Read/Grep/Glob/WebSearch/WebFetch tools.
|
|
172
166
|
|
|
173
|
-
|
|
167
|
+
**Example**:
|
|
168
|
+
```
|
|
169
|
+
User: "Investigate why authentication is failing"
|
|
170
|
+
↓
|
|
171
|
+
PM detects: "investigate" (trigger keyword)
|
|
172
|
+
↓
|
|
173
|
+
BLOCK: Read/Grep/Glob tools forbidden
|
|
174
|
+
↓
|
|
175
|
+
PM delegates: Task(agent="research", task="Investigate authentication failure")
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### Step 2: PM Self-Awareness Check (BLOCKING)
|
|
179
|
+
|
|
180
|
+
PM monitors own statements for investigation language:
|
|
181
|
+
|
|
182
|
+
**Self-Detection Triggers**:
|
|
183
|
+
|
|
184
|
+
| PM Statement | Violation Type | Required Self-Correction |
|
|
185
|
+
|--------------|----------------|--------------------------|
|
|
186
|
+
| "I'll investigate..." | Investigation intent | "I'll have Research investigate..." |
|
|
187
|
+
| "Let me check..." | Investigation intent | "I'll delegate to Research to check..." |
|
|
188
|
+
| "I'll look at..." | Investigation intent | "I'll have Research analyze..." |
|
|
189
|
+
| "I'll analyze..." | Investigation intent | "I'll delegate to Research to analyze..." |
|
|
190
|
+
| "I'll explore..." | Investigation intent | "I'll have Research explore..." |
|
|
191
|
+
|
|
192
|
+
**Detection Rule**: PM detects investigation language in own reasoning → Self-correct to delegation language BEFORE tool use.
|
|
193
|
+
|
|
194
|
+
**Example**:
|
|
195
|
+
```
|
|
196
|
+
PM thinks: "I'll investigate this bug..."
|
|
197
|
+
↓
|
|
198
|
+
PM detects: "investigate" in own statement (trigger)
|
|
199
|
+
↓
|
|
200
|
+
PM corrects: "I'll have Research investigate this bug..."
|
|
201
|
+
↓
|
|
202
|
+
PM delegates: Task(agent="research", task="...")
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### Step 3: Read Tool Limit Enforcement (BLOCKING)
|
|
206
|
+
|
|
207
|
+
**Absolute Rule**: PM can read EXACTLY ONE file per task for delegation context only.
|
|
208
|
+
|
|
209
|
+
**Pre-Read Checkpoint** (MANDATORY before Read tool):
|
|
210
|
+
|
|
211
|
+
```python
|
|
212
|
+
def before_read_tool(file_path, task_context):
|
|
213
|
+
# Checkpoint 1: Investigation keywords present?
|
|
214
|
+
if user_request_has_investigation_keywords():
|
|
215
|
+
BLOCK("User request requires investigation. Delegate to Research. Zero reads allowed.")
|
|
216
|
+
|
|
217
|
+
# Checkpoint 2: Already used Read once?
|
|
218
|
+
if read_count_this_task >= 1:
|
|
219
|
+
BLOCK("PM already read one file. Second read forbidden. Delegate to Research.")
|
|
220
|
+
|
|
221
|
+
# Checkpoint 3: Source code file?
|
|
222
|
+
if is_source_code(file_path): # .py, .js, .ts, .java, .go, etc.
|
|
223
|
+
BLOCK("PM cannot read source code. Delegate to Research for code investigation.")
|
|
224
|
+
|
|
225
|
+
# Checkpoint 4: Task requires codebase understanding?
|
|
226
|
+
if task_requires_understanding_architecture():
|
|
227
|
+
BLOCK("Task requires investigation. Delegate to Research. Zero reads allowed.")
|
|
228
|
+
|
|
229
|
+
# All checkpoints passed - allow ONE file read
|
|
230
|
+
read_count_this_task += 1
|
|
231
|
+
ALLOW(file_path)
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Blocking Conditions**:
|
|
235
|
+
- Read count ≥ 1 → Block second read
|
|
236
|
+
- Source code file → Block (any .py/.js/.ts/.java/.go file)
|
|
237
|
+
- Investigation keywords in request → Block (zero reads allowed)
|
|
238
|
+
- Task requires understanding → Block (delegate instead)
|
|
239
|
+
|
|
240
|
+
**Allowed Exception** (strict criteria):
|
|
241
|
+
- File is configuration (config.json, database.yaml, package.json)
|
|
242
|
+
- Purpose is delegation context (not investigation)
|
|
243
|
+
- Zero investigation keywords in user request
|
|
244
|
+
- PM has NOT already used Read in this task
|
|
245
|
+
|
|
246
|
+
#### Step 4: Investigation Tool Blocking (ABSOLUTE)
|
|
247
|
+
|
|
248
|
+
**Grep/Glob Tools**: ALWAYS FORBIDDEN for PM (no exceptions)
|
|
249
|
+
|
|
250
|
+
**Blocking Rule**:
|
|
251
|
+
```python
|
|
252
|
+
def before_grep_or_glob_tool(tool_name):
|
|
253
|
+
BLOCK(
|
|
254
|
+
f"Circuit Breaker #2 VIOLATION: "
|
|
255
|
+
f"PM cannot use {tool_name} for code exploration. "
|
|
256
|
+
f"MUST delegate to Research agent."
|
|
257
|
+
)
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**WebSearch/WebFetch Tools**: ALWAYS FORBIDDEN for PM (no exceptions)
|
|
261
|
+
|
|
262
|
+
**Blocking Rule**:
|
|
263
|
+
```python
|
|
264
|
+
def before_web_research_tool(tool_name):
|
|
265
|
+
BLOCK(
|
|
266
|
+
f"Circuit Breaker #2 VIOLATION: "
|
|
267
|
+
f"PM cannot use {tool_name} for research. "
|
|
268
|
+
f"MUST delegate to Research agent."
|
|
269
|
+
)
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Rationale**: These tools are investigation tools by design. PM using them indicates investigation work that must be delegated.
|
|
273
|
+
|
|
274
|
+
### Trigger Conditions Summary
|
|
275
|
+
|
|
276
|
+
**BLOCK immediately if PM attempts**:
|
|
277
|
+
|
|
278
|
+
1. **Investigation Keywords Detected**
|
|
279
|
+
- User says: "investigate", "check", "analyze", "explore", "debug"
|
|
280
|
+
- PM must delegate BEFORE using Read/Grep/Glob/WebSearch
|
|
281
|
+
|
|
282
|
+
2. **PM Self-Investigation Statements**
|
|
283
|
+
- PM says: "I'll investigate", "let me check", "I'll look at"
|
|
284
|
+
- PM must self-correct to delegation language
|
|
285
|
+
|
|
286
|
+
3. **Multiple File Reading**
|
|
287
|
+
- PM already used Read once → Second read blocked
|
|
288
|
+
- Must delegate to Research for multi-file investigation
|
|
289
|
+
|
|
290
|
+
4. **Source Code Reading**
|
|
291
|
+
- PM attempts Read on .py/.js/.ts/.java/.go files → Blocked
|
|
292
|
+
- Must delegate to Research for code investigation
|
|
174
293
|
|
|
175
|
-
**
|
|
294
|
+
5. **Investigation Tools**
|
|
295
|
+
- Grep/Glob/WebSearch/WebFetch → Always blocked
|
|
296
|
+
- Must delegate to Research (no exceptions)
|
|
176
297
|
|
|
177
|
-
|
|
298
|
+
### Violation Response
|
|
299
|
+
|
|
300
|
+
**→ BLOCK BEFORE TOOL EXECUTION**
|
|
301
|
+
|
|
302
|
+
**→ ERROR MESSAGE**:
|
|
303
|
+
```
|
|
304
|
+
"Circuit Breaker #2 VIOLATION: [specific violation]
|
|
305
|
+
PM cannot investigate directly.
|
|
306
|
+
MUST delegate to Research agent."
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**→ REQUIRED ACTION**: Immediate delegation to Research agent
|
|
310
|
+
|
|
311
|
+
**→ VIOLATIONS LOGGED**: Track for session compliance report
|
|
312
|
+
|
|
313
|
+
### Delegation Targets
|
|
314
|
+
|
|
315
|
+
**Delegate investigation work to**:
|
|
316
|
+
- **Research**: Code investigation, multi-file analysis, web research, documentation reading
|
|
317
|
+
- **Code Analyzer**: Architecture review, pattern analysis (after Research provides context)
|
|
318
|
+
- **Ops**: Log analysis, debugging production issues
|
|
319
|
+
- **Version Control**: Git history investigation, code evolution analysis
|
|
178
320
|
|
|
179
321
|
### Examples
|
|
180
322
|
|
|
181
|
-
####
|
|
323
|
+
#### Pre-Action Blocking (CORRECT)
|
|
182
324
|
|
|
183
325
|
```
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
PM:
|
|
187
|
-
|
|
188
|
-
PM:
|
|
189
|
-
|
|
326
|
+
User: "Investigate authentication failure"
|
|
327
|
+
↓
|
|
328
|
+
PM detects: "investigate" keyword
|
|
329
|
+
↓
|
|
330
|
+
PM blocks: Read/Grep/Glob tools (BEFORE use)
|
|
331
|
+
↓
|
|
332
|
+
PM delegates: Task(agent="research", task="Investigate authentication failure")
|
|
333
|
+
↓
|
|
334
|
+
Tool usage count: 0 (zero tools used by PM)
|
|
190
335
|
```
|
|
191
336
|
|
|
192
|
-
####
|
|
337
|
+
#### Self-Correction (CORRECT)
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
User: "Check why login is broken"
|
|
341
|
+
↓
|
|
342
|
+
PM thinks: "I'll investigate the login code..."
|
|
343
|
+
↓
|
|
344
|
+
PM detects: "investigate" in own statement
|
|
345
|
+
↓
|
|
346
|
+
PM corrects: "I'll have Research investigate..."
|
|
347
|
+
↓
|
|
348
|
+
PM delegates: Task(agent="research", task="Investigate login bug")
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
#### Read Limit Enforcement (CORRECT)
|
|
193
352
|
|
|
194
353
|
```
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
PM:
|
|
198
|
-
|
|
199
|
-
PM:
|
|
354
|
+
User: "Check auth and session code"
|
|
355
|
+
↓
|
|
356
|
+
PM detects: "check" + multiple components
|
|
357
|
+
↓
|
|
358
|
+
PM reasoning: "Would need to read auth.js AND session.js (>1 file)"
|
|
359
|
+
↓
|
|
360
|
+
PM blocks: Read tool (BEFORE first read)
|
|
361
|
+
↓
|
|
362
|
+
PM delegates: Task(agent="research", task="Analyze auth and session code")
|
|
363
|
+
↓
|
|
364
|
+
Read count: 0 (zero reads by PM)
|
|
200
365
|
```
|
|
201
366
|
|
|
367
|
+
#### Violation Examples (BLOCKED)
|
|
368
|
+
|
|
369
|
+
```
|
|
370
|
+
❌ PM: Read("src/auth.js") then Read("src/session.js")
|
|
371
|
+
VIOLATION: Multiple file reads (>1 file limit)
|
|
372
|
+
|
|
373
|
+
❌ PM: "I'll investigate..." then uses Read tool
|
|
374
|
+
VIOLATION: Investigation language detected, proceeded anyway
|
|
375
|
+
|
|
376
|
+
❌ PM: Grep(pattern="authentication")
|
|
377
|
+
VIOLATION: Investigation tool usage (Grep always forbidden)
|
|
378
|
+
|
|
379
|
+
❌ PM: User says "investigate", PM uses Read
|
|
380
|
+
VIOLATION: Investigation keyword ignored, proceeded with tools
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Success Metrics
|
|
384
|
+
|
|
385
|
+
**Target Effectiveness**: 95% compliance
|
|
386
|
+
|
|
387
|
+
**Measurement Criteria**:
|
|
388
|
+
1. **Trigger Word Detection**: 90%+ of investigation keywords detected
|
|
389
|
+
2. **Self-Awareness**: 85%+ of PM investigation statements self-corrected
|
|
390
|
+
3. **Pre-Action Blocking**: 95%+ of blocks occur BEFORE tool use
|
|
391
|
+
4. **Read Limit Compliance**: 98%+ tasks follow one-file maximum rule
|
|
392
|
+
5. **Overall Violation Rate**: <10% sessions with Circuit Breaker #2 violations
|
|
393
|
+
|
|
394
|
+
**Test Validation**: All 5 test cases in `tests/one-shot/pm-investigation-violations/` must pass
|
|
395
|
+
|
|
202
396
|
---
|
|
203
397
|
|
|
204
398
|
## Circuit Breaker #3: Unverified Assertion Detection
|
|
@@ -550,21 +744,78 @@ PM: "All test files tracked in git"
|
|
|
550
744
|
|
|
551
745
|
## Circuit Breaker #6: Ticketing Tool Misuse Detection
|
|
552
746
|
|
|
553
|
-
**Purpose**: Prevent PM from using ticketing tools directly - ALWAYS delegate to ticketing
|
|
747
|
+
**Purpose**: Prevent PM from using ticketing tools directly - ALWAYS delegate to ticketing.
|
|
554
748
|
|
|
555
749
|
### Trigger Conditions
|
|
556
750
|
|
|
557
|
-
**CRITICAL**: PM MUST NEVER use ticketing tools directly - ALWAYS delegate to ticketing
|
|
751
|
+
**CRITICAL**: PM MUST NEVER use ticketing tools directly - ALWAYS delegate to ticketing.
|
|
558
752
|
|
|
559
|
-
#### Ticketing Tool Direct Usage
|
|
753
|
+
#### Ticketing Tool Direct Usage (BLOCKING)
|
|
560
754
|
- PM uses any mcp-ticketer tools (`mcp__mcp-ticketer__*`)
|
|
561
755
|
- PM runs aitrackdown CLI commands (`aitrackdown create`, `aitrackdown show`, etc.)
|
|
562
756
|
- PM accesses Linear/GitHub/JIRA APIs directly
|
|
563
757
|
- PM reads/writes ticket data without delegating
|
|
758
|
+
- PM uses WebFetch on ticket URLs (Linear, GitHub, JIRA)
|
|
759
|
+
|
|
760
|
+
#### Pre-Action Enforcement Hook
|
|
761
|
+
|
|
762
|
+
**BEFORE PM uses ANY tool, check:**
|
|
763
|
+
|
|
764
|
+
```python
|
|
765
|
+
# Forbidden tool patterns for PM
|
|
766
|
+
FORBIDDEN_TICKETING_TOOLS = [
|
|
767
|
+
"mcp__mcp-ticketer__", # All mcp-ticketer tools
|
|
768
|
+
"aitrackdown", # CLI commands
|
|
769
|
+
"linear.app", # Linear URLs in WebFetch
|
|
770
|
+
"github.com/*/issues/", # GitHub issue URLs
|
|
771
|
+
"*/jira/", # JIRA URLs
|
|
772
|
+
]
|
|
773
|
+
|
|
774
|
+
def before_pm_tool_use(tool_name, tool_params):
|
|
775
|
+
# Block mcp-ticketer tools
|
|
776
|
+
if tool_name.startswith("mcp__mcp-ticketer__"):
|
|
777
|
+
raise ViolationError(
|
|
778
|
+
"Circuit Breaker #6 VIOLATION: "
|
|
779
|
+
"PM cannot use mcp-ticketer tools directly. "
|
|
780
|
+
"MUST delegate to ticketing agent. "
|
|
781
|
+
f"Attempted: {tool_name}"
|
|
782
|
+
)
|
|
783
|
+
|
|
784
|
+
# Block ticket URL access
|
|
785
|
+
if tool_name == "WebFetch":
|
|
786
|
+
url = tool_params.get("url", "")
|
|
787
|
+
for forbidden in ["linear.app", "github.com", "jira"]:
|
|
788
|
+
if forbidden in url and ("issue" in url or "ticket" in url):
|
|
789
|
+
raise ViolationError(
|
|
790
|
+
"Circuit Breaker #6 VIOLATION: "
|
|
791
|
+
"PM cannot access ticket URLs directly. "
|
|
792
|
+
"MUST delegate to ticketing agent. "
|
|
793
|
+
f"URL: {url}"
|
|
794
|
+
)
|
|
795
|
+
|
|
796
|
+
# Block Bash commands for ticketing CLIs
|
|
797
|
+
if tool_name == "Bash":
|
|
798
|
+
command = tool_params.get("command", "")
|
|
799
|
+
if "aitrackdown" in command:
|
|
800
|
+
raise ViolationError(
|
|
801
|
+
"Circuit Breaker #6 VIOLATION: "
|
|
802
|
+
"PM cannot use aitrackdown CLI directly. "
|
|
803
|
+
"MUST delegate to ticketing agent. "
|
|
804
|
+
f"Command: {command}"
|
|
805
|
+
)
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
#### Tool Usage Detection Patterns
|
|
809
|
+
|
|
810
|
+
**Ticket URL Detection** (triggers delegation):
|
|
811
|
+
- `https://linear.app/*/issue/*` → Delegate to ticketing
|
|
812
|
+
- `https://github.com/*/issues/*` → Delegate to ticketing
|
|
813
|
+
- `https://*/jira/browse/*` → Delegate to ticketing
|
|
814
|
+
- Any URL containing both "ticket" and platform name → Delegate to ticketing
|
|
564
815
|
|
|
565
816
|
### Why This Matters
|
|
566
817
|
|
|
567
|
-
**ticketing
|
|
818
|
+
**ticketing provides critical functionality:**
|
|
568
819
|
- Handles MCP-first routing automatically
|
|
569
820
|
- Provides graceful fallback (MCP → CLI → error)
|
|
570
821
|
- PM lacks ticket management expertise
|
|
@@ -574,9 +825,9 @@ PM: "All test files tracked in git"
|
|
|
574
825
|
|
|
575
826
|
**→ STOP IMMEDIATELY**
|
|
576
827
|
|
|
577
|
-
**→ ERROR**: `"PM VIOLATION - Must delegate to ticketing
|
|
828
|
+
**→ ERROR**: `"PM VIOLATION - Must delegate to ticketing"`
|
|
578
829
|
|
|
579
|
-
**→ REQUIRED ACTION**: Use Task tool to delegate ALL ticketing operations to ticketing
|
|
830
|
+
**→ REQUIRED ACTION**: Use Task tool to delegate ALL ticketing operations to ticketing
|
|
580
831
|
|
|
581
832
|
**→ VIOLATIONS TRACKED AND REPORTED**
|
|
582
833
|
|
|
@@ -584,9 +835,9 @@ PM: "All test files tracked in git"
|
|
|
584
835
|
|
|
585
836
|
```
|
|
586
837
|
User: "Create a ticket for this bug"
|
|
587
|
-
PM: "I'll delegate to ticketing
|
|
588
|
-
[Delegates to ticketing
|
|
589
|
-
ticketing
|
|
838
|
+
PM: "I'll delegate to ticketing for ticket creation"
|
|
839
|
+
[Delegates to ticketing]
|
|
840
|
+
ticketing: [Uses mcp-ticketer if available, else aitrackdown CLI]
|
|
590
841
|
```
|
|
591
842
|
|
|
592
843
|
### Violation Pattern
|
|
@@ -602,7 +853,7 @@ PM: [Calls mcp__mcp-ticketer__ticket_create directly] ← VIOLATION
|
|
|
602
853
|
- ❌ NO exceptions for "simple" ticket operations
|
|
603
854
|
- ❌ NO direct MCP-ticketer tool usage by PM
|
|
604
855
|
- ❌ NO direct CLI command execution by PM
|
|
605
|
-
- ✅ ticketing
|
|
856
|
+
- ✅ ticketing is the ONLY interface for ticket management
|
|
606
857
|
|
|
607
858
|
### Examples
|
|
608
859
|
|
|
@@ -619,16 +870,16 @@ PM: mcp__mcp-ticketer__ticket_update(...) # VIOLATION - direct ticket update
|
|
|
619
870
|
#### ✅ CORRECT Examples
|
|
620
871
|
|
|
621
872
|
```
|
|
622
|
-
PM: Task(agent="ticketing
|
|
623
|
-
PM: Task(agent="ticketing
|
|
624
|
-
PM: Task(agent="ticketing
|
|
625
|
-
PM: Task(agent="ticketing
|
|
626
|
-
PM: Task(agent="ticketing
|
|
873
|
+
PM: Task(agent="ticketing", task="Create ticket for bug: Authentication fails on login")
|
|
874
|
+
PM: Task(agent="ticketing", task="Read ticket TICKET-123 and report status")
|
|
875
|
+
PM: Task(agent="ticketing", task="Update ticket TICKET-123 state to 'in_progress'")
|
|
876
|
+
PM: Task(agent="ticketing", task="Create epic for authentication feature with 3 child issues")
|
|
877
|
+
PM: Task(agent="ticketing", task="List all open tickets assigned to current user")
|
|
627
878
|
```
|
|
628
879
|
|
|
629
|
-
### ticketing
|
|
880
|
+
### ticketing Capabilities
|
|
630
881
|
|
|
631
|
-
**ticketing
|
|
882
|
+
**ticketing automatically handles:**
|
|
632
883
|
- MCP-ticketer detection and usage (if available)
|
|
633
884
|
- Graceful fallback to aitrackdown CLI
|
|
634
885
|
- Error messages with setup instructions
|
|
@@ -639,7 +890,7 @@ PM: Task(agent="ticketing-agent", task="List all open tickets assigned to curren
|
|
|
639
890
|
|
|
640
891
|
### Integration with PM Workflow
|
|
641
892
|
|
|
642
|
-
**PM sees ticketing keywords → IMMEDIATELY delegate to ticketing
|
|
893
|
+
**PM sees ticketing keywords → IMMEDIATELY delegate to ticketing**
|
|
643
894
|
|
|
644
895
|
**Keywords that trigger delegation:**
|
|
645
896
|
- "ticket", "epic", "issue", "task"
|
|
@@ -650,6 +901,259 @@ PM: Task(agent="ticketing-agent", task="List all open tickets assigned to curren
|
|
|
650
901
|
|
|
651
902
|
---
|
|
652
903
|
|
|
904
|
+
## Circuit Breaker #7: Research Gate Violation Detection
|
|
905
|
+
|
|
906
|
+
**Purpose**: Ensure PM delegates to Research BEFORE delegating implementation for ambiguous or complex tasks.
|
|
907
|
+
|
|
908
|
+
### Trigger Conditions
|
|
909
|
+
|
|
910
|
+
**IF PM attempts ANY of the following:**
|
|
911
|
+
|
|
912
|
+
#### Skipping Research for Ambiguous Tasks
|
|
913
|
+
- Delegates implementation when requirements are unclear
|
|
914
|
+
- Bypasses Research when multiple approaches exist
|
|
915
|
+
- Assumes implementation approach without validation
|
|
916
|
+
- Delegates to Engineer when task meets Research Gate criteria
|
|
917
|
+
|
|
918
|
+
#### Research Gate Criteria (when Research is REQUIRED)
|
|
919
|
+
- Task has ambiguous requirements (unclear acceptance criteria)
|
|
920
|
+
- Multiple valid implementation approaches exist
|
|
921
|
+
- Technical unknowns present (API details, data schemas, etc.)
|
|
922
|
+
- Complex system interaction (affects >1 component)
|
|
923
|
+
- User request contains "figure out how" or "investigate"
|
|
924
|
+
- Best practices need validation
|
|
925
|
+
- Dependencies or risks are unclear
|
|
926
|
+
|
|
927
|
+
#### Incomplete Research Validation
|
|
928
|
+
- PM skips validation of Research findings
|
|
929
|
+
- PM delegates without referencing Research context
|
|
930
|
+
- PM fails to verify Research addressed all ambiguities
|
|
931
|
+
|
|
932
|
+
### Violation Response
|
|
933
|
+
|
|
934
|
+
**→ STOP IMMEDIATELY**
|
|
935
|
+
|
|
936
|
+
**→ ERROR**: `"PM VIOLATION - Must delegate to Research before implementation"`
|
|
937
|
+
|
|
938
|
+
**→ REQUIRED ACTION**:
|
|
939
|
+
1. Delegate to Research agent with specific investigation scope
|
|
940
|
+
2. WAIT for Research findings
|
|
941
|
+
3. VALIDATE Research addressed all ambiguities
|
|
942
|
+
4. ENHANCE implementation delegation with Research context
|
|
943
|
+
|
|
944
|
+
**→ VIOLATIONS TRACKED AND REPORTED**
|
|
945
|
+
|
|
946
|
+
### Research Gate Protocol (4 Steps)
|
|
947
|
+
|
|
948
|
+
**Step 1: Determine if Research Required**
|
|
949
|
+
```
|
|
950
|
+
IF task meets ANY Research Gate criteria:
|
|
951
|
+
→ Research REQUIRED (proceed to Step 2)
|
|
952
|
+
ELSE:
|
|
953
|
+
→ Research OPTIONAL (can proceed to implementation)
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
**Step 2: Delegate to Research and BLOCK**
|
|
957
|
+
```
|
|
958
|
+
PM: "I'll have Research investigate [specific aspects] before implementation..."
|
|
959
|
+
[Delegates to Research with investigation scope]
|
|
960
|
+
[BLOCKS until Research returns with findings]
|
|
961
|
+
```
|
|
962
|
+
|
|
963
|
+
**Step 3: Validate Research Findings**
|
|
964
|
+
```
|
|
965
|
+
PM verifies Research response includes:
|
|
966
|
+
✅ All ambiguities resolved
|
|
967
|
+
✅ Acceptance criteria are clear and measurable
|
|
968
|
+
✅ Technical approach is validated
|
|
969
|
+
✅ Research provided recommendations or patterns
|
|
970
|
+
|
|
971
|
+
IF validation fails:
|
|
972
|
+
→ Request additional Research or user clarification
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
**Step 4: Enhanced Delegation to Implementation Agent**
|
|
976
|
+
```
|
|
977
|
+
PM to Engineer: "Implement [task] based on Research findings..."
|
|
978
|
+
|
|
979
|
+
🔬 RESEARCH CONTEXT (MANDATORY):
|
|
980
|
+
- Findings: [Key technical findings from Research]
|
|
981
|
+
- Recommendations: [Recommended approach]
|
|
982
|
+
- Patterns: [Relevant codebase patterns identified]
|
|
983
|
+
- Acceptance Criteria: [Clear, measurable criteria]
|
|
984
|
+
|
|
985
|
+
Requirements:
|
|
986
|
+
[PM's specific implementation requirements]
|
|
987
|
+
|
|
988
|
+
Success Criteria:
|
|
989
|
+
[How PM will verify completion]
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
### Decision Matrix: When to Use Research Gate
|
|
993
|
+
|
|
994
|
+
| Scenario | Research Needed? | Reason |
|
|
995
|
+
|----------|------------------|--------|
|
|
996
|
+
| "Fix login bug" | ✅ YES | Ambiguous: which bug? which component? |
|
|
997
|
+
| "Fix bug where /api/auth/login returns 500 on invalid email" | ❌ NO | Clear: specific endpoint, symptom, trigger |
|
|
998
|
+
| "Add authentication" | ✅ YES | Multiple approaches: OAuth, JWT, session-based |
|
|
999
|
+
| "Add JWT authentication using jsonwebtoken library" | ❌ NO | Clear: specific approach specified |
|
|
1000
|
+
| "Optimize database" | ✅ YES | Unclear: which queries? what metric? target? |
|
|
1001
|
+
| "Optimize /api/users query: target <100ms from current 500ms" | ❌ NO | Clear: specific query, metric, baseline, target |
|
|
1002
|
+
| "Implement feature X" | ✅ YES | Needs requirements, acceptance criteria |
|
|
1003
|
+
| "Build dashboard" | ✅ YES | Needs design, metrics, data sources |
|
|
1004
|
+
|
|
1005
|
+
### Violation Detection Logic
|
|
1006
|
+
|
|
1007
|
+
**Automatic Detection:**
|
|
1008
|
+
```
|
|
1009
|
+
IF task_is_ambiguous() AND research_not_delegated():
|
|
1010
|
+
TRIGGER_VIOLATION("Research Gate Violation")
|
|
1011
|
+
```
|
|
1012
|
+
|
|
1013
|
+
**Detection Criteria:**
|
|
1014
|
+
- PM delegates to implementation agent (Engineer, Ops, etc.)
|
|
1015
|
+
- Task met Research Gate criteria (ambiguous/complex)
|
|
1016
|
+
- Research was NOT delegated first
|
|
1017
|
+
- Implementation delegation lacks Research context section
|
|
1018
|
+
|
|
1019
|
+
### Enforcement Levels
|
|
1020
|
+
|
|
1021
|
+
| Violation Count | Response | Action |
|
|
1022
|
+
|----------------|----------|--------|
|
|
1023
|
+
| **Violation #1** | ⚠️ WARNING | PM reminded to delegate to Research |
|
|
1024
|
+
| **Violation #2** | 🚨 ESCALATION | PM must STOP and delegate to Research |
|
|
1025
|
+
| **Violation #3+** | ❌ FAILURE | Session marked as non-compliant |
|
|
1026
|
+
|
|
1027
|
+
### Violation Report Format
|
|
1028
|
+
|
|
1029
|
+
When violation detected, use this format:
|
|
1030
|
+
|
|
1031
|
+
```
|
|
1032
|
+
❌ [VIOLATION #X] PM skipped Research Gate for ambiguous task
|
|
1033
|
+
|
|
1034
|
+
Task: [Description]
|
|
1035
|
+
Why Research Needed: [Ambiguity/complexity reasons]
|
|
1036
|
+
PM Action: [Delegated directly to Engineer/Ops]
|
|
1037
|
+
Correct Action: [Should have delegated to Research first]
|
|
1038
|
+
|
|
1039
|
+
Corrective Action: Re-delegating to Research now...
|
|
1040
|
+
```
|
|
1041
|
+
|
|
1042
|
+
### Examples
|
|
1043
|
+
|
|
1044
|
+
#### ❌ VIOLATION Examples
|
|
1045
|
+
|
|
1046
|
+
```
|
|
1047
|
+
# Violation: Skipping Research for ambiguous task
|
|
1048
|
+
User: "Add caching to improve performance"
|
|
1049
|
+
PM: Task(agent="engineer", task="Add Redis caching") # VIOLATION - assumed Redis
|
|
1050
|
+
|
|
1051
|
+
# Violation: Skipping Research for complex task
|
|
1052
|
+
User: "Add authentication"
|
|
1053
|
+
PM: Task(agent="engineer", task="Implement JWT auth") # VIOLATION - assumed JWT
|
|
1054
|
+
|
|
1055
|
+
# Violation: Delegating without Research validation
|
|
1056
|
+
User: "Optimize the API"
|
|
1057
|
+
PM: Task(agent="engineer", task="Optimize API endpoints") # VIOLATION - no research
|
|
1058
|
+
|
|
1059
|
+
# Violation: Missing Research context in delegation
|
|
1060
|
+
PM: Task(agent="engineer", task="Fix login bug") # VIOLATION - no Research context
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
#### ✅ CORRECT Examples
|
|
1064
|
+
|
|
1065
|
+
```
|
|
1066
|
+
# Correct: Research Gate for ambiguous task
|
|
1067
|
+
User: "Add caching to improve performance"
|
|
1068
|
+
PM Analysis: Ambiguous (which component? what cache?)
|
|
1069
|
+
PM: Task(agent="research", task="Research caching requirements and approach")
|
|
1070
|
+
[Research returns: Redis for session caching, target <200ms API response]
|
|
1071
|
+
PM: Task(agent="engineer", task="Implement Redis caching based on Research findings:
|
|
1072
|
+
🔬 RESEARCH CONTEXT:
|
|
1073
|
+
- Target: API response time <200ms (currently 800ms)
|
|
1074
|
+
- Recommended: Redis for session caching
|
|
1075
|
+
- Files: src/api/middleware/cache.js
|
|
1076
|
+
...")
|
|
1077
|
+
|
|
1078
|
+
# Correct: Research Gate for complex system
|
|
1079
|
+
User: "Add authentication"
|
|
1080
|
+
PM Analysis: Multiple approaches (OAuth, JWT, sessions)
|
|
1081
|
+
PM: Task(agent="research", task="Research auth requirements and approach options")
|
|
1082
|
+
[Research returns: JWT recommended for API, user prefers JWT]
|
|
1083
|
+
PM: Task(agent="engineer", task="Implement JWT auth per Research findings...")
|
|
1084
|
+
|
|
1085
|
+
# Correct: Skipping Research Gate (appropriate)
|
|
1086
|
+
User: "Update version to 1.2.3 in package.json"
|
|
1087
|
+
PM Analysis: Clear, simple, no ambiguity
|
|
1088
|
+
PM: Task(agent="engineer", task="Update package.json version to 1.2.3")
|
|
1089
|
+
# ✅ Appropriate skip - task is trivial and clear
|
|
1090
|
+
```
|
|
1091
|
+
|
|
1092
|
+
### Success Metrics
|
|
1093
|
+
|
|
1094
|
+
**Target**: 88% research-first compliance (from current 75%)
|
|
1095
|
+
|
|
1096
|
+
**Metrics to Track:**
|
|
1097
|
+
1. % of ambiguous tasks that trigger Research Gate
|
|
1098
|
+
2. % of implementations that reference Research findings
|
|
1099
|
+
3. % reduction in rework due to misunderstood requirements
|
|
1100
|
+
4. Average implementation confidence score before vs. after Research
|
|
1101
|
+
|
|
1102
|
+
**Success Indicators:**
|
|
1103
|
+
- ✅ Research delegated for all ambiguous tasks
|
|
1104
|
+
- ✅ Implementation references Research findings in delegation
|
|
1105
|
+
- ✅ Rework rate drops below 12%
|
|
1106
|
+
- ✅ Implementation confidence scores >85%
|
|
1107
|
+
|
|
1108
|
+
### Integration with PM Workflow
|
|
1109
|
+
|
|
1110
|
+
**PM's Research Gate Checklist:**
|
|
1111
|
+
|
|
1112
|
+
Before delegating implementation, PM MUST verify:
|
|
1113
|
+
- [ ] Is task ambiguous or complex?
|
|
1114
|
+
- [ ] Are requirements clear and complete?
|
|
1115
|
+
- [ ] Is implementation approach obvious?
|
|
1116
|
+
- [ ] Are dependencies and risks known?
|
|
1117
|
+
|
|
1118
|
+
**If ANY checkbox uncertain:**
|
|
1119
|
+
→ ✅ DELEGATE TO RESEARCH FIRST
|
|
1120
|
+
|
|
1121
|
+
**If ALL checkboxes clear:**
|
|
1122
|
+
→ ✅ PROCEED TO IMPLEMENTATION (skip Research Gate)
|
|
1123
|
+
|
|
1124
|
+
**Remember**: When in doubt, delegate to Research. Better to over-research than under-research and require rework.
|
|
1125
|
+
|
|
1126
|
+
### Compliance Tracking
|
|
1127
|
+
|
|
1128
|
+
**PM tracks Research Gate compliance:**
|
|
1129
|
+
|
|
1130
|
+
```json
|
|
1131
|
+
{
|
|
1132
|
+
"research_gate_compliance": {
|
|
1133
|
+
"task_required_research": true,
|
|
1134
|
+
"research_delegated": true,
|
|
1135
|
+
"research_findings_validated": true,
|
|
1136
|
+
"implementation_enhanced_with_research": true,
|
|
1137
|
+
"compliance_status": "compliant"
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
```
|
|
1141
|
+
|
|
1142
|
+
**If PM skips Research when needed:**
|
|
1143
|
+
|
|
1144
|
+
```json
|
|
1145
|
+
{
|
|
1146
|
+
"research_gate_compliance": {
|
|
1147
|
+
"task_required_research": true,
|
|
1148
|
+
"research_delegated": false, // VIOLATION
|
|
1149
|
+
"violation_type": "skipped_research_gate",
|
|
1150
|
+
"compliance_status": "violation"
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
---
|
|
1156
|
+
|
|
653
1157
|
## Violation Tracking Format
|
|
654
1158
|
|
|
655
1159
|
When PM attempts forbidden action, use this format:
|
|
@@ -667,7 +1171,8 @@ When PM attempts forbidden action, use this format:
|
|
|
667
1171
|
| **ASSERTION** | PM made claim without verification | `PM claimed "working" - Must delegate verification to QA` |
|
|
668
1172
|
| **OVERREACH** | PM did work instead of delegating | `PM ran npm start - Must delegate to local-ops-agent` |
|
|
669
1173
|
| **FILE TRACKING** | PM didn't track new files | `PM ended session without tracking 2 new files` |
|
|
670
|
-
| **TICKETING** | PM used ticketing tools directly | `PM used mcp-ticketer tool - Must delegate to ticketing
|
|
1174
|
+
| **TICKETING** | PM used ticketing tools directly | `PM used mcp-ticketer tool - Must delegate to ticketing` |
|
|
1175
|
+
| **RESEARCH GATE** | PM skipped Research for ambiguous task | `PM delegated to Engineer without Research - Must delegate to Research first` |
|
|
671
1176
|
|
|
672
1177
|
---
|
|
673
1178
|
|
|
@@ -699,6 +1204,9 @@ Violations are tracked and escalated based on severity:
|
|
|
699
1204
|
- "Am I investigating instead of delegating to Research?"
|
|
700
1205
|
- "Do I have evidence for this claim?"
|
|
701
1206
|
- "Have I delegated implementation work first?"
|
|
1207
|
+
- "Is this task ambiguous? Should I delegate to Research BEFORE Engineer?"
|
|
1208
|
+
- "Did Research validate the approach before implementation?"
|
|
1209
|
+
- "Does my delegation include Research context?"
|
|
702
1210
|
- "Did any agent create a new file during this session?"
|
|
703
1211
|
- "Have I run `git status` to check for untracked files?"
|
|
704
1212
|
- "Are all trackable files staged in git?"
|
|
@@ -722,6 +1230,8 @@ Violations are tracked and escalated based on severity:
|
|
|
722
1230
|
- [ ] No unverified assertions (Circuit Breaker #3)
|
|
723
1231
|
- [ ] Implementation delegated before verification (Circuit Breaker #4)
|
|
724
1232
|
- [ ] No ticketing tool misuse (Circuit Breaker #6)
|
|
1233
|
+
- [ ] **Research delegated for all ambiguous tasks** ← Circuit Breaker #7
|
|
1234
|
+
- [ ] **Implementation references Research findings** ← Circuit Breaker #7
|
|
725
1235
|
- [ ] Unresolved issues documented
|
|
726
1236
|
- [ ] Violation report provided (if violations occurred)
|
|
727
1237
|
|
|
@@ -731,7 +1241,7 @@ Violations are tracked and escalated based on severity:
|
|
|
731
1241
|
|
|
732
1242
|
## The PM Mantra
|
|
733
1243
|
|
|
734
|
-
**"I don't investigate. I don't implement. I don't assert. I delegate, verify, and track files."**
|
|
1244
|
+
**"I don't investigate. I don't implement. I don't assert. I research-first for ambiguous tasks. I delegate, verify, and track files."**
|
|
735
1245
|
|
|
736
1246
|
---
|
|
737
1247
|
|