claude-mpm 4.20.3__py3-none-any.whl → 4.25.10__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 +23 -6
- claude_mpm/agents/OUTPUT_STYLE.md +3 -48
- claude_mpm/agents/PM_INSTRUCTIONS.md +1783 -34
- claude_mpm/agents/WORKFLOW.md +75 -2
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/frontmatter_validator.py +1 -1
- claude_mpm/agents/templates/api_qa.json +5 -2
- claude_mpm/agents/templates/circuit_breakers.md +108 -2
- claude_mpm/agents/templates/documentation.json +33 -6
- claude_mpm/agents/templates/javascript_engineer_agent.json +380 -0
- claude_mpm/agents/templates/php-engineer.json +10 -4
- claude_mpm/agents/templates/pm_red_flags.md +89 -19
- claude_mpm/agents/templates/project_organizer.json +7 -3
- claude_mpm/agents/templates/qa.json +2 -1
- claude_mpm/agents/templates/react_engineer.json +1 -0
- claude_mpm/agents/templates/research.json +82 -12
- claude_mpm/agents/templates/security.json +4 -4
- claude_mpm/agents/templates/tauri_engineer.json +274 -0
- claude_mpm/agents/templates/ticketing.json +10 -6
- claude_mpm/agents/templates/version_control.json +4 -2
- claude_mpm/agents/templates/web_qa.json +2 -1
- claude_mpm/cli/README.md +253 -0
- claude_mpm/cli/__init__.py +11 -1
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/cleanup.py +1 -1
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mcp_install_commands.py.backup +284 -0
- claude_mpm/cli/commands/mpm_init/README.md +365 -0
- claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
- claude_mpm/cli/commands/mpm_init/core.py +573 -0
- claude_mpm/cli/commands/mpm_init/display.py +341 -0
- claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
- claude_mpm/cli/commands/mpm_init/modes.py +397 -0
- claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
- claude_mpm/cli/commands/mpm_init_cli.py +396 -0
- claude_mpm/cli/commands/mpm_init_handler.py +67 -1
- claude_mpm/cli/commands/run.py +124 -128
- claude_mpm/cli/commands/skills.py +522 -34
- claude_mpm/cli/executor.py +56 -0
- claude_mpm/cli/interactive/agent_wizard.py +5 -5
- claude_mpm/cli/parsers/base_parser.py +28 -0
- claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
- claude_mpm/cli/parsers/skills_parser.py +138 -0
- claude_mpm/cli/startup.py +111 -8
- 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/cli_module/refactoring_guide.md +253 -0
- claude_mpm/commands/mpm-help.md +3 -0
- claude_mpm/commands/mpm-init.md +19 -3
- claude_mpm/commands/mpm-resume.md +372 -0
- claude_mpm/commands/mpm-tickets.md +56 -7
- claude_mpm/commands/mpm.md +1 -0
- claude_mpm/config/agent_capabilities.yaml +658 -0
- claude_mpm/config/async_logging_config.yaml +145 -0
- claude_mpm/constants.py +12 -0
- claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +34 -0
- claude_mpm/core/api_validator.py +1 -1
- claude_mpm/core/claude_runner.py +14 -1
- claude_mpm/core/config.py +8 -0
- claude_mpm/core/constants.py +1 -1
- claude_mpm/core/framework/processors/metadata_processor.py +1 -1
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +48 -3
- claude_mpm/core/interfaces.py +56 -1
- claude_mpm/core/logger.py +3 -1
- claude_mpm/core/oneshot_session.py +39 -0
- claude_mpm/d2/.gitignore +22 -0
- claude_mpm/d2/ARCHITECTURE_COMPARISON.md +273 -0
- claude_mpm/d2/FLASK_INTEGRATION.md +156 -0
- claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +452 -0
- claude_mpm/d2/QUICKSTART.md +186 -0
- claude_mpm/d2/README.md +232 -0
- claude_mpm/d2/STORE_FIX_SUMMARY.md +167 -0
- claude_mpm/d2/SVELTE5_STORES_GUIDE.md +180 -0
- claude_mpm/d2/TESTING.md +288 -0
- claude_mpm/d2/index.html +118 -0
- claude_mpm/d2/package.json +19 -0
- claude_mpm/d2/src/App.svelte +110 -0
- claude_mpm/d2/src/components/Header.svelte +153 -0
- claude_mpm/d2/src/components/MainContent.svelte +74 -0
- claude_mpm/d2/src/components/Sidebar.svelte +85 -0
- claude_mpm/d2/src/components/tabs/EventsTab.svelte +326 -0
- claude_mpm/d2/src/lib/socketio.js +144 -0
- claude_mpm/d2/src/main.js +7 -0
- claude_mpm/d2/src/stores/events.js +114 -0
- claude_mpm/d2/src/stores/socket.js +108 -0
- claude_mpm/d2/src/stores/theme.js +65 -0
- claude_mpm/d2/svelte.config.js +12 -0
- claude_mpm/d2/vite.config.js +15 -0
- claude_mpm/dashboard/.claude-mpm/memories/README.md +36 -0
- claude_mpm/dashboard/BUILD_NUMBER +1 -0
- claude_mpm/dashboard/README.md +121 -0
- claude_mpm/dashboard/VERSION +1 -0
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +273 -0
- claude_mpm/dashboard/react/components/ErrorBoundary.tsx +75 -0
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +141 -0
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +36 -0
- claude_mpm/dashboard/react/components/shared/FilterBar.tsx +89 -0
- claude_mpm/dashboard/react/contexts/DashboardContext.tsx +215 -0
- claude_mpm/dashboard/react/entries/events.tsx +165 -0
- claude_mpm/dashboard/react/hooks/useEvents.ts +191 -0
- claude_mpm/dashboard/react/hooks/useSocket.ts +225 -0
- claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +170 -0
- claude_mpm/dashboard/static/built/components/activity-tree.js.map +1 -0
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/built/components/agent-inference.js.map +1 -0
- claude_mpm/dashboard/static/built/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/built/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +29 -29
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +24 -24
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +27 -27
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +25 -25
- claude_mpm/dashboard/static/built/components/code-tree.js.map +1 -0
- claude_mpm/dashboard/static/built/components/code-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/built/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/built/components/event-processor.js.map +1 -0
- claude_mpm/dashboard/static/built/components/event-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/export-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +1 -0
- claude_mpm/dashboard/static/built/components/file-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +1 -0
- claude_mpm/dashboard/static/built/components/hud-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/module-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/session-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/socket-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/working-directory.js.map +1 -0
- claude_mpm/dashboard/static/built/connection-manager.js +76 -76
- claude_mpm/dashboard/static/built/dashboard.js.map +1 -0
- claude_mpm/dashboard/static/built/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/built/react/events.js.map +1 -0
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +9 -9
- claude_mpm/dashboard/static/built/shared/event-bus.js +5 -5
- claude_mpm/dashboard/static/built/shared/logger.js +16 -16
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +6 -6
- claude_mpm/dashboard/static/built/socket-client.js.map +1 -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/index.html +22 -22
- claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +170 -0
- 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/shared/dom-helpers.js +9 -9
- claude_mpm/dashboard/static/js/shared/event-bus.js +5 -5
- claude_mpm/dashboard/static/js/shared/logger.js +16 -16
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +6 -6
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/static/navigation-test-results.md +118 -0
- claude_mpm/dashboard/static/production/main.html +21 -21
- claude_mpm/dashboard/static/test-archive/dashboard.html +22 -22
- claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +36 -0
- claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +39 -0
- claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +38 -0
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- claude_mpm/hooks/README.md +143 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
- claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
- claude_mpm/hooks/claude_hooks/installer.py +45 -0
- claude_mpm/hooks/templates/README.md +180 -0
- claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
- claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
- claude_mpm/hooks/templates/settings.json.example +147 -0
- claude_mpm/schemas/agent_schema.json +596 -0
- claude_mpm/schemas/frontmatter_schema.json +165 -0
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/loading/framework_agent_loader.py +8 -8
- claude_mpm/services/agents/local_template_manager.py +3 -1
- claude_mpm/services/cli/session_pause_manager.py +504 -0
- claude_mpm/services/cli/session_resume_helper.py +36 -16
- claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
- claude_mpm/services/core/base.py +26 -11
- claude_mpm/services/core/interfaces.py +56 -1
- claude_mpm/services/core/models/agent_config.py +3 -0
- claude_mpm/services/core/models/process.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
- 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/monitor_check.py +0 -1
- claude_mpm/services/diagnostics/doctor_reporter.py +6 -4
- claude_mpm/services/diagnostics/models.py +21 -0
- claude_mpm/services/event_bus/README.md +244 -0
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/event_bus/event_bus.py +36 -3
- claude_mpm/services/event_bus/relay.py +23 -7
- claude_mpm/services/events/README.md +303 -0
- claude_mpm/services/events/consumers/logging.py +1 -2
- claude_mpm/services/framework_claude_md_generator/README.md +119 -0
- claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
- claude_mpm/services/local_ops/__init__.py +2 -0
- claude_mpm/services/local_ops/process_manager.py +1 -1
- claude_mpm/services/local_ops/resource_monitor.py +2 -2
- claude_mpm/services/mcp_gateway/README.md +185 -0
- claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
- claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +26 -21
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/memory/failure_tracker.py +19 -4
- claude_mpm/services/memory/optimizer.py +1 -1
- claude_mpm/services/model/model_router.py +8 -9
- claude_mpm/services/monitor/daemon.py +1 -1
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/native_agent_converter.py +356 -0
- claude_mpm/services/port_manager.py +1 -1
- 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 +1 -0
- claude_mpm/services/self_upgrade_service.py +165 -7
- 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/connection.py.backup +217 -0
- claude_mpm/services/socketio/handlers/git.py +2 -2
- claude_mpm/services/socketio/handlers/hook.py.backup +154 -0
- claude_mpm/services/static/.gitkeep +2 -0
- 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/cloud_strategies.py +1 -1
- claude_mpm/services/version_control/VERSION +1 -0
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/__init__.py +3 -3
- claude_mpm/skills/agent_skills_injector.py +42 -49
- claude_mpm/skills/bundled/.gitkeep +2 -0
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +4 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +108 -114
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
- claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +46 -41
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
- claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +36 -73
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +100 -125
- claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +63 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +28 -72
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +11 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +272 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
- claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +13 -1
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +322 -0
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +11 -0
- claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +109 -277
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +17 -10
- claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +92 -39
- claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +22 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +2 -0
- claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +135 -155
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +13 -12
- claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +5 -3
- claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +19 -12
- claude_mpm/skills/bundled/performance-profiling.md +6 -0
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
- claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
- claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
- claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
- claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
- claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
- claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
- claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
- claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
- claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
- claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
- claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
- claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +21 -25
- claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +158 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +86 -250
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
- claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +145 -57
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +6 -6
- claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +13 -9
- claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +8 -8
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +37 -15
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
- claude_mpm/skills/skills_registry.py +44 -48
- claude_mpm/skills/skills_service.py +117 -108
- claude_mpm/templates/questions/EXAMPLES.md +501 -0
- claude_mpm/templates/questions/__init__.py +43 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +314 -0
- claude_mpm/templates/questions/project_init.py +388 -0
- claude_mpm/templates/questions/ticket_mgmt.py +397 -0
- claude_mpm/tools/README_SOCKETIO_DEBUG.md +224 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/tools/code_tree_analyzer/README.md +64 -0
- claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
- claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
- claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
- claude_mpm/tools/code_tree_analyzer/core.py +380 -0
- claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
- claude_mpm/tools/code_tree_analyzer/events.py +168 -0
- claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
- claude_mpm/tools/code_tree_analyzer/models.py +39 -0
- claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
- claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
- claude_mpm/utils/agent_dependency_loader.py +3 -3
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +241 -0
- claude_mpm/utils/log_cleanup.py +3 -3
- claude_mpm/utils/robust_installer.py +3 -5
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/METADATA +218 -31
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/RECORD +409 -246
- 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/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/cli/commands/mpm_init.py +0 -2093
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- 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/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/test-archive/test_debug.html +0 -25
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/common-failures.md +0 -213
- claude_mpm/tools/code_tree_analyzer.py +0 -1825
- /claude_mpm/skills/bundled/collaboration/requesting-code-review/{code-reviewer.md → references/code-reviewer-template.md} +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/WHEEL +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
# Tracing Techniques
|
|
2
|
+
|
|
3
|
+
Complete methodology for tracing bugs backward through call chains to find original triggers.
|
|
4
|
+
|
|
5
|
+
## The Tracing Methodology
|
|
6
|
+
|
|
7
|
+
### Overview
|
|
8
|
+
|
|
9
|
+
Root cause tracing follows a systematic approach to walk backward through code execution until you find where bad data or invalid state originated.
|
|
10
|
+
|
|
11
|
+
**Key insight:** The place where an error manifests is rarely where the bug actually lives.
|
|
12
|
+
|
|
13
|
+
## Manual Tracing Process
|
|
14
|
+
|
|
15
|
+
### Step 1: Observe the Symptom
|
|
16
|
+
|
|
17
|
+
**What to capture:**
|
|
18
|
+
- Exact error message
|
|
19
|
+
- Stack trace (if available)
|
|
20
|
+
- Failed operation
|
|
21
|
+
- Wrong value/state
|
|
22
|
+
- Location where error occurred
|
|
23
|
+
|
|
24
|
+
**Example:**
|
|
25
|
+
```
|
|
26
|
+
Error: git init failed in /Users/jesse/project/packages/core
|
|
27
|
+
at WorktreeManager.createSessionWorktree (worktree-manager.ts:45)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Questions to ask:**
|
|
31
|
+
- What operation failed?
|
|
32
|
+
- What was the expected behavior?
|
|
33
|
+
- What value/state is wrong?
|
|
34
|
+
- Where did the error manifest?
|
|
35
|
+
|
|
36
|
+
### Step 2: Find Immediate Cause
|
|
37
|
+
|
|
38
|
+
Look at the code where the error occurs.
|
|
39
|
+
|
|
40
|
+
**Example:**
|
|
41
|
+
```typescript
|
|
42
|
+
async function createSessionWorktree(projectDir: string, sessionId: string) {
|
|
43
|
+
// This is where it fails
|
|
44
|
+
await execFileAsync('git', ['init'], { cwd: projectDir });
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Questions to ask:**
|
|
49
|
+
- What code directly causes this error?
|
|
50
|
+
- What parameters does it receive?
|
|
51
|
+
- What assumptions does it make?
|
|
52
|
+
- Are the parameters valid?
|
|
53
|
+
|
|
54
|
+
### Step 3: Identify the Caller
|
|
55
|
+
|
|
56
|
+
Trace one level up the call stack.
|
|
57
|
+
|
|
58
|
+
**From stack trace:**
|
|
59
|
+
```
|
|
60
|
+
at WorktreeManager.createSessionWorktree (worktree-manager.ts:45)
|
|
61
|
+
at Session.initializeWorkspace (session.ts:78)
|
|
62
|
+
at Session.create (session.ts:34)
|
|
63
|
+
at Test.<anonymous> (project.test.ts:12)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Manual code inspection:**
|
|
67
|
+
```typescript
|
|
68
|
+
// In session.ts
|
|
69
|
+
static async create(name: string, projectDir: string) {
|
|
70
|
+
const session = new Session(name);
|
|
71
|
+
await session.initializeWorkspace(projectDir); // ← Caller
|
|
72
|
+
return session;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Questions to ask:**
|
|
77
|
+
- What function called this?
|
|
78
|
+
- What value did it pass?
|
|
79
|
+
- Where did that value come from?
|
|
80
|
+
|
|
81
|
+
### Step 4: Continue Tracing Up
|
|
82
|
+
|
|
83
|
+
Repeat step 3 for each caller until you find the source.
|
|
84
|
+
|
|
85
|
+
**Trace chain example:**
|
|
86
|
+
```
|
|
87
|
+
Test code (project.test.ts:12)
|
|
88
|
+
→ Project.create(name, context.tempDir)
|
|
89
|
+
→ Session.create(name, projectDir)
|
|
90
|
+
→ Session.initializeWorkspace(projectDir)
|
|
91
|
+
→ WorktreeManager.createSessionWorktree(projectDir, sessionId)
|
|
92
|
+
→ execFileAsync('git', ['init'], { cwd: projectDir })
|
|
93
|
+
→ ERROR: projectDir is empty string
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Working backward:**
|
|
97
|
+
- Where did `projectDir = ''` come from? → Session.create()
|
|
98
|
+
- Where did Session.create() get it? → Project.create()
|
|
99
|
+
- Where did Project.create() get it? → Test code
|
|
100
|
+
- Where did test code get it? → `context.tempDir`
|
|
101
|
+
- Where did `context.tempDir = ''` come from? → **ROOT CAUSE FOUND**
|
|
102
|
+
|
|
103
|
+
### Step 5: Identify Root Cause
|
|
104
|
+
|
|
105
|
+
The root cause is where bad data/state originates.
|
|
106
|
+
|
|
107
|
+
**Common root causes:**
|
|
108
|
+
- Uninitialized variables accessed too early
|
|
109
|
+
- Configuration not loaded
|
|
110
|
+
- Null/undefined not handled
|
|
111
|
+
- Wrong default value
|
|
112
|
+
- Timing issue (race condition)
|
|
113
|
+
- Environment-specific behavior
|
|
114
|
+
|
|
115
|
+
**In our example:**
|
|
116
|
+
```typescript
|
|
117
|
+
// Root cause: Getter returns empty string before initialization
|
|
118
|
+
function setupCoreTest() {
|
|
119
|
+
let _tempDir = ''; // ← BAD: Empty string default
|
|
120
|
+
|
|
121
|
+
beforeEach(() => {
|
|
122
|
+
_tempDir = createTempDir(); // ← Set later
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
return { tempDir: _tempDir }; // ← Returns '' initially!
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Test code runs at module load time
|
|
129
|
+
const context = setupCoreTest();
|
|
130
|
+
const PROJECT_DIR = context.tempDir; // ← '' before beforeEach runs!
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Tracing Patterns
|
|
134
|
+
|
|
135
|
+
### Pattern 1: Data Flow Tracing
|
|
136
|
+
|
|
137
|
+
**When to use:** Invalid data appears somewhere in execution
|
|
138
|
+
|
|
139
|
+
**Process:**
|
|
140
|
+
1. Identify the invalid data at error point
|
|
141
|
+
2. Trace backward to find where it was set
|
|
142
|
+
3. Continue to where it originated
|
|
143
|
+
4. Fix at origin
|
|
144
|
+
|
|
145
|
+
**Example:**
|
|
146
|
+
```
|
|
147
|
+
userId = 0 (invalid) at database query
|
|
148
|
+
← from request.userId
|
|
149
|
+
← from parseRequest(req)
|
|
150
|
+
← from req.headers['user-id']
|
|
151
|
+
← ROOT: Header not validated/defaulted
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Pattern 2: Call Chain Tracing
|
|
155
|
+
|
|
156
|
+
**When to use:** Error happens deep in call stack
|
|
157
|
+
|
|
158
|
+
**Process:**
|
|
159
|
+
1. Start at error location
|
|
160
|
+
2. Examine immediate caller
|
|
161
|
+
3. Move up one level
|
|
162
|
+
4. Repeat until finding where invalid call originates
|
|
163
|
+
|
|
164
|
+
**Example:**
|
|
165
|
+
```
|
|
166
|
+
Error in database.execute(query)
|
|
167
|
+
← from UserService.findUser(id)
|
|
168
|
+
← from AuthMiddleware.authenticate()
|
|
169
|
+
← from Router.handleRequest()
|
|
170
|
+
← ROOT: No authentication check before calling
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Pattern 3: State Mutation Tracing
|
|
174
|
+
|
|
175
|
+
**When to use:** Object/variable has wrong value at some point
|
|
176
|
+
|
|
177
|
+
**Process:**
|
|
178
|
+
1. Identify when state is wrong
|
|
179
|
+
2. Find all places that mutate state
|
|
180
|
+
3. Trace backward to find which mutation caused it
|
|
181
|
+
4. Find why that mutation happened
|
|
182
|
+
|
|
183
|
+
**Example:**
|
|
184
|
+
```
|
|
185
|
+
config.database = undefined at startup
|
|
186
|
+
← config.database set to undefined in validateConfig()
|
|
187
|
+
← because env.DATABASE_URL is undefined
|
|
188
|
+
← ROOT: Environment variable not set
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Pattern 4: Timing/Ordering Tracing
|
|
192
|
+
|
|
193
|
+
**When to use:** Issue involves race conditions or execution order
|
|
194
|
+
|
|
195
|
+
**Process:**
|
|
196
|
+
1. Identify operations that ran in wrong order
|
|
197
|
+
2. Trace why the order is wrong
|
|
198
|
+
3. Find what controls the ordering
|
|
199
|
+
4. Fix ordering logic
|
|
200
|
+
|
|
201
|
+
**Example:**
|
|
202
|
+
```
|
|
203
|
+
Database query before connection established
|
|
204
|
+
← query() called in constructor
|
|
205
|
+
← constructor runs immediately
|
|
206
|
+
← connection.connect() called async in initialize()
|
|
207
|
+
← ROOT: Constructor doesn't wait for async initialization
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Decision Trees
|
|
211
|
+
|
|
212
|
+
### When Manual Tracing is Sufficient
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
Can you see the code path?
|
|
216
|
+
→ Yes: Use manual tracing
|
|
217
|
+
→ Stack trace available?
|
|
218
|
+
→ Yes: Follow stack trace
|
|
219
|
+
→ No: Inspect caller manually
|
|
220
|
+
→ No: Add instrumentation (see advanced-techniques.md)
|
|
221
|
+
|
|
222
|
+
Is error reproducible?
|
|
223
|
+
→ Yes: Can trace reliably
|
|
224
|
+
→ No: Must make reproducible first
|
|
225
|
+
→ Add logging to capture when it happens
|
|
226
|
+
→ Use instrumentation to understand timing
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### How Deep to Trace
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Found where bad value originates?
|
|
233
|
+
→ Yes: Root cause found
|
|
234
|
+
→ No: Continue tracing
|
|
235
|
+
→ At system boundary (entry point)?
|
|
236
|
+
→ Yes: Root cause is at boundary
|
|
237
|
+
→ No: Keep tracing backward
|
|
238
|
+
|
|
239
|
+
Multiple callers with same issue?
|
|
240
|
+
→ Yes: Root cause is in shared caller
|
|
241
|
+
→ No: Root cause is in specific caller path
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Fixing vs Adding Defense
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
Found root cause?
|
|
248
|
+
→ Yes:
|
|
249
|
+
→ Fix at source: YES
|
|
250
|
+
→ Add validation at intermediate layers: YES
|
|
251
|
+
→ Fix only at error point: NO
|
|
252
|
+
→ No:
|
|
253
|
+
→ Add defense at error point: TEMPORARY
|
|
254
|
+
→ Continue tracing: YES
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Common Tracing Challenges
|
|
258
|
+
|
|
259
|
+
### Challenge 1: Long Call Chains
|
|
260
|
+
|
|
261
|
+
**Problem:** 10+ levels in call stack
|
|
262
|
+
**Solution:**
|
|
263
|
+
- Use binary search: check middle of chain first
|
|
264
|
+
- Skip obviously correct intermediate calls
|
|
265
|
+
- Focus on where data changes
|
|
266
|
+
|
|
267
|
+
### Challenge 2: Async/Callback Hell
|
|
268
|
+
|
|
269
|
+
**Problem:** Callbacks and promises obscure call chain
|
|
270
|
+
**Solution:**
|
|
271
|
+
- Use async stack traces (Node.js: `--async-stack-traces`)
|
|
272
|
+
- Add trace IDs to log all operations
|
|
273
|
+
- Use debugger to step through promises
|
|
274
|
+
|
|
275
|
+
### Challenge 3: Multiple Code Paths
|
|
276
|
+
|
|
277
|
+
**Problem:** Error could come from multiple callers
|
|
278
|
+
**Solution:**
|
|
279
|
+
- Add conditional logging at error point
|
|
280
|
+
- Use instrumentation to capture caller info
|
|
281
|
+
- Reproduce with minimal test case
|
|
282
|
+
|
|
283
|
+
### Challenge 4: External Dependencies
|
|
284
|
+
|
|
285
|
+
**Problem:** Issue might be in third-party library
|
|
286
|
+
**Solution:**
|
|
287
|
+
- Verify inputs to library are correct
|
|
288
|
+
- Check library version/compatibility
|
|
289
|
+
- Read library source if needed
|
|
290
|
+
- Consider if misusing library API
|
|
291
|
+
|
|
292
|
+
### Challenge 5: No Stack Trace
|
|
293
|
+
|
|
294
|
+
**Problem:** Error doesn't produce stack trace
|
|
295
|
+
**Solution:**
|
|
296
|
+
- Add stack capture: `new Error().stack`
|
|
297
|
+
- Use debugger to pause at error point
|
|
298
|
+
- Add logging at suspected callers
|
|
299
|
+
- Use process of elimination
|
|
300
|
+
|
|
301
|
+
## Tips for Effective Tracing
|
|
302
|
+
|
|
303
|
+
### Use Your Tools
|
|
304
|
+
|
|
305
|
+
**IDE navigation:**
|
|
306
|
+
- "Find References" to see all callers
|
|
307
|
+
- "Go to Definition" to jump to implementation
|
|
308
|
+
- Call hierarchy view
|
|
309
|
+
- Type hierarchy for inheritance
|
|
310
|
+
|
|
311
|
+
**Debugger:**
|
|
312
|
+
- Set breakpoint at error point
|
|
313
|
+
- Step out to see caller
|
|
314
|
+
- Examine call stack panel
|
|
315
|
+
- Watch variables as they change
|
|
316
|
+
|
|
317
|
+
**Version control:**
|
|
318
|
+
- `git blame` to see when code changed
|
|
319
|
+
- `git log` to see recent changes
|
|
320
|
+
- `git bisect` to find when bug was introduced
|
|
321
|
+
|
|
322
|
+
### Document Your Trace
|
|
323
|
+
|
|
324
|
+
As you trace, write down the call chain:
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
ERROR: git init in wrong directory
|
|
328
|
+
← execFileAsync('git', ['init'], { cwd: '' })
|
|
329
|
+
← WorktreeManager.createSessionWorktree(projectDir='')
|
|
330
|
+
← Session.initializeWorkspace(projectDir='')
|
|
331
|
+
← Session.create(name, projectDir='')
|
|
332
|
+
← Project.create(name, context.tempDir='')
|
|
333
|
+
← Test: const PROJECT_DIR = context.tempDir
|
|
334
|
+
← ROOT: setupCoreTest() returns { tempDir: '' } before beforeEach
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
This helps you:
|
|
338
|
+
- Remember where you are in the trace
|
|
339
|
+
- Communicate findings to others
|
|
340
|
+
- Verify your understanding
|
|
341
|
+
- Identify patterns
|
|
342
|
+
|
|
343
|
+
### Know When to Stop Tracing
|
|
344
|
+
|
|
345
|
+
**Stop when you find:**
|
|
346
|
+
- The origin of bad data
|
|
347
|
+
- The first place where invariant is violated
|
|
348
|
+
- The entry point where validation should happen
|
|
349
|
+
- The configuration/initialization that sets wrong value
|
|
350
|
+
|
|
351
|
+
**Don't stop at:**
|
|
352
|
+
- Where error manifests
|
|
353
|
+
- Where symptom is visible
|
|
354
|
+
- Intermediate validation that fails
|
|
355
|
+
- Defensive checks that catch the issue
|
|
356
|
+
|
|
357
|
+
## Verification After Tracing
|
|
358
|
+
|
|
359
|
+
Once you think you've found the root cause:
|
|
360
|
+
|
|
361
|
+
1. **Verify understanding:**
|
|
362
|
+
- Can you explain how the bug happens?
|
|
363
|
+
- Does your explanation match all symptoms?
|
|
364
|
+
- Can you predict what will happen if you fix it?
|
|
365
|
+
|
|
366
|
+
2. **Test your hypothesis:**
|
|
367
|
+
- Add temporary fix at suspected root cause
|
|
368
|
+
- Does it resolve the issue?
|
|
369
|
+
- Does it resolve ALL instances of the issue?
|
|
370
|
+
|
|
371
|
+
3. **Implement proper fix:**
|
|
372
|
+
- Fix at root cause
|
|
373
|
+
- Add tests for root cause
|
|
374
|
+
- Add defense-in-depth at intermediate layers
|
|
375
|
+
- Verify no regressions
|
|
376
|
+
|
|
377
|
+
## Summary
|
|
378
|
+
|
|
379
|
+
**Manual tracing process:**
|
|
380
|
+
1. Observe symptom → 2. Find immediate cause → 3. Identify caller → 4. Trace up → 5. Find root cause
|
|
381
|
+
|
|
382
|
+
**Key principles:**
|
|
383
|
+
- Trace backward from symptom to source
|
|
384
|
+
- Don't stop at first "cause" - find original trigger
|
|
385
|
+
- Fix at source, add defense at layers
|
|
386
|
+
- Document your trace for clarity
|
|
387
|
+
|
|
388
|
+
**When to use advanced techniques:**
|
|
389
|
+
- Can't manually trace (see advanced-techniques.md)
|
|
390
|
+
- Need to identify which test pollutes (see advanced-techniques.md)
|
|
391
|
+
- Multiple async operations involved (see advanced-techniques.md)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: verification-before-completion
|
|
3
3
|
description: Run verification commands and confirm output before claiming success
|
|
4
4
|
version: 2.0.0
|
|
5
5
|
category: debugging
|
|
@@ -14,7 +14,8 @@ progressive_disclosure:
|
|
|
14
14
|
references:
|
|
15
15
|
- gate-function.md
|
|
16
16
|
- verification-patterns.md
|
|
17
|
-
-
|
|
17
|
+
- red-flags-and-failures.md
|
|
18
|
+
- integration-and-workflows.md
|
|
18
19
|
context_limit: 800
|
|
19
20
|
tags:
|
|
20
21
|
- verification
|
|
@@ -38,23 +39,16 @@ This skill enforces mandatory verification before ANY completion claim, preventi
|
|
|
38
39
|
|
|
39
40
|
## When to Use This Skill
|
|
40
41
|
|
|
41
|
-
Activate ALWAYS before:
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
- ANY positive statement about work state
|
|
42
|
+
Activate ALWAYS before claiming:
|
|
43
|
+
- Success, completion, or satisfaction ("Done!", "Fixed!", "Great!")
|
|
44
|
+
- Tests pass, linter clean, build succeeds
|
|
45
45
|
- Committing, pushing, creating PRs
|
|
46
|
-
-
|
|
47
|
-
- Marking tasks complete
|
|
48
|
-
- Delegating to agents
|
|
49
|
-
- Reporting status to users
|
|
46
|
+
- Marking tasks complete or delegating to agents
|
|
50
47
|
|
|
51
48
|
**Use this ESPECIALLY when:**
|
|
52
|
-
- Under time pressure
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
- Confident in the solution
|
|
56
|
-
- Agent reports success
|
|
57
|
-
- Tests "should" pass
|
|
49
|
+
- Under time pressure or tired
|
|
50
|
+
- "Quick fix" seems obvious or you're confident
|
|
51
|
+
- Agent reports success or tests "should" pass
|
|
58
52
|
|
|
59
53
|
## The Iron Law
|
|
60
54
|
|
|
@@ -85,29 +79,6 @@ The five-step gate function:
|
|
|
85
79
|
|
|
86
80
|
Skip any step = lying, not verifying.
|
|
87
81
|
|
|
88
|
-
## Common Failure Modes
|
|
89
|
-
|
|
90
|
-
| Claim | Requires | Not Sufficient |
|
|
91
|
-
|-------|----------|----------------|
|
|
92
|
-
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
|
|
93
|
-
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
|
|
94
|
-
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
|
|
95
|
-
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
|
|
96
|
-
| Requirements met | Line-by-line checklist | Tests passing |
|
|
97
|
-
|
|
98
|
-
## Red Flags - STOP Immediately
|
|
99
|
-
|
|
100
|
-
If you catch yourself:
|
|
101
|
-
- Using "should", "probably", "seems to"
|
|
102
|
-
- Expressing satisfaction before verification
|
|
103
|
-
- About to commit/push/PR without verification
|
|
104
|
-
- Trusting agent success reports
|
|
105
|
-
- Relying on partial verification
|
|
106
|
-
- Thinking "just this once"
|
|
107
|
-
- Tired and wanting work over
|
|
108
|
-
|
|
109
|
-
**ALL of these mean: STOP. Run verification first.**
|
|
110
|
-
|
|
111
82
|
## Key Patterns
|
|
112
83
|
|
|
113
84
|
**Correct Pattern:**
|
|
@@ -123,48 +94,33 @@ If you catch yourself:
|
|
|
123
94
|
❌ "I'm confident it works"
|
|
124
95
|
```
|
|
125
96
|
|
|
126
|
-
##
|
|
97
|
+
## Red Flags - STOP Immediately
|
|
127
98
|
|
|
128
|
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
99
|
+
If you catch yourself:
|
|
100
|
+
- Using "should", "probably", "seems to"
|
|
101
|
+
- Expressing satisfaction before verification
|
|
102
|
+
- About to commit/push/PR without verification
|
|
103
|
+
- Trusting agent success reports
|
|
104
|
+
- Relying on partial verification
|
|
132
105
|
|
|
133
|
-
|
|
106
|
+
**ALL of these mean: STOP. Run verification first.**
|
|
134
107
|
|
|
135
|
-
|
|
136
|
-
- "I don't believe you" - trust broken with user
|
|
137
|
-
- Undefined functions shipped - would crash in production
|
|
138
|
-
- Missing requirements - incomplete features delivered
|
|
139
|
-
- Time wasted on false completion → redirect → rework
|
|
140
|
-
- Violates core value: "If you lie, you'll be replaced"
|
|
108
|
+
## Why This Matters
|
|
141
109
|
|
|
142
|
-
**Statistics from
|
|
143
|
-
- Systematic verification: 15-30 minutes to confirm
|
|
144
|
-
- Skipped verification: 2-3 hours debugging afterwards
|
|
110
|
+
**Statistics from real-world failures:**
|
|
145
111
|
- Verification cost: 2 minutes
|
|
146
112
|
- Recovery cost: 120+ minutes (60x more expensive)
|
|
113
|
+
- 40% of unverified "complete" claims required rework
|
|
147
114
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
- **systematic-debugging**: Verify fix works before claiming bug fixed
|
|
151
|
-
- **test-driven-development**: Verify red-green cycle before claiming test complete
|
|
152
|
-
- **condition-based-waiting**: Verify conditions met before claiming ready
|
|
153
|
-
- **root-cause-tracing**: Verify root cause identified before proposing fixes
|
|
154
|
-
|
|
155
|
-
## Real-World Impact
|
|
115
|
+
**Core violation:** "If you lie, you'll be replaced"
|
|
156
116
|
|
|
157
|
-
|
|
158
|
-
- 40% of "complete" claims required rework
|
|
159
|
-
- Average 2-3 hours debugging false completions
|
|
160
|
-
- Trust issues with stakeholders
|
|
161
|
-
- Broken CI/CD pipelines
|
|
117
|
+
## Navigation
|
|
162
118
|
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
119
|
+
For detailed information:
|
|
120
|
+
- **[Gate Function](references/gate-function.md)**: Complete five-step verification process with decision trees
|
|
121
|
+
- **[Verification Patterns](references/verification-patterns.md)**: Correct verification patterns for tests, builds, deployments, and more
|
|
122
|
+
- **[Red Flags and Failures](references/red-flags-and-failures.md)**: Common failure modes, red flags, and real-world examples with time/cost data
|
|
123
|
+
- **[Integration and Workflows](references/integration-and-workflows.md)**: Integration with other skills, CI/CD patterns, and agent delegation workflows
|
|
168
124
|
|
|
169
125
|
## The Bottom Line
|
|
170
126
|
|
claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md
CHANGED
|
@@ -273,6 +273,17 @@ GATE CHECK:
|
|
|
273
273
|
5. CLAIM: "Agent completed X, verified by diff" OR "Agent attempted but Y issue found"
|
|
274
274
|
```
|
|
275
275
|
|
|
276
|
+
### Before Deployment
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
GATE CHECK:
|
|
280
|
+
1. IDENTIFY: Build, tests, smoke tests, health checks
|
|
281
|
+
2. RUN: Full build + test suite
|
|
282
|
+
3. READ: All outputs
|
|
283
|
+
4. VERIFY: All pass, ready to deploy
|
|
284
|
+
5. CLAIM: "Ready for deployment" OR report blockers
|
|
285
|
+
```
|
|
286
|
+
|
|
276
287
|
## The Iron Law Explained
|
|
277
288
|
|
|
278
289
|
```
|