claude-mpm 4.24.0__py3-none-any.whl → 5.0.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_PM.md +12 -0
- claude_mpm/agents/OUTPUT_STYLE.md +3 -48
- claude_mpm/agents/PM_INSTRUCTIONS.md +721 -911
- claude_mpm/agents/PM_INSTRUCTIONS_TEACH.md +1322 -0
- claude_mpm/agents/WORKFLOW.md +4 -4
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +1 -4
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/frontmatter_validator.py +1 -1
- claude_mpm/agents/templates/{circuit_breakers.md → circuit-breakers.md} +370 -3
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +48 -0
- claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
- claude_mpm/agents/templates/research-gate-examples.md +669 -0
- claude_mpm/agents/templates/structured-questions-examples.md +615 -0
- claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
- claude_mpm/agents/templates/ticketing-examples.md +277 -0
- claude_mpm/cli/__init__.py +38 -2
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/agent_source.py +774 -0
- claude_mpm/cli/commands/agent_state_manager.py +188 -30
- claude_mpm/cli/commands/agents.py +959 -36
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/auto_configure.py +2 -6
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +769 -45
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mpm_init/core.py +49 -1
- claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
- claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +123 -165
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +757 -20
- claude_mpm/cli/executor.py +78 -3
- claude_mpm/cli/interactive/agent_wizard.py +955 -45
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +256 -4
- claude_mpm/cli/parsers/base_parser.py +53 -0
- claude_mpm/cli/parsers/config_parser.py +96 -43
- claude_mpm/cli/parsers/skill_source_parser.py +169 -0
- claude_mpm/cli/parsers/skills_parser.py +145 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +538 -106
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/cli_module/commands.py +1 -1
- claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
- claude_mpm/commands/mpm-agents-detect.md +9 -0
- claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
- claude_mpm/commands/mpm-agents-recommend.md +9 -0
- claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
- claude_mpm/commands/mpm-doctor.md +9 -0
- claude_mpm/commands/mpm-help.md +14 -2
- claude_mpm/commands/mpm-init.md +27 -2
- claude_mpm/commands/mpm-monitor.md +9 -0
- claude_mpm/commands/mpm-postmortem.md +123 -0
- claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
- claude_mpm/commands/mpm-status.md +9 -0
- claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
- claude_mpm/commands/mpm-ticket-view.md +552 -0
- claude_mpm/commands/mpm-version.md +9 -0
- claude_mpm/commands/mpm.md +10 -0
- claude_mpm/config/agent_presets.py +488 -0
- claude_mpm/config/agent_sources.py +325 -0
- claude_mpm/config/skill_presets.py +392 -0
- claude_mpm/config/skill_sources.py +590 -0
- claude_mpm/constants.py +13 -0
- claude_mpm/core/claude_runner.py +5 -34
- claude_mpm/core/config.py +16 -0
- claude_mpm/core/constants.py +1 -1
- claude_mpm/core/framework/__init__.py +3 -16
- claude_mpm/core/framework/loaders/file_loader.py +54 -101
- claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +91 -10
- claude_mpm/core/logger.py +3 -1
- claude_mpm/core/oneshot_session.py +71 -8
- claude_mpm/core/protocols/__init__.py +23 -0
- claude_mpm/core/protocols/runner_protocol.py +103 -0
- claude_mpm/core/protocols/session_protocol.py +131 -0
- claude_mpm/core/shared/singleton_manager.py +11 -4
- claude_mpm/core/system_context.py +38 -0
- claude_mpm/dashboard/static/css/activity.css +69 -69
- claude_mpm/dashboard/static/css/connection-status.css +10 -10
- claude_mpm/dashboard/static/css/dashboard.css +15 -15
- claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
- claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
- claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
- claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +76 -58
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- claude_mpm/experimental/cli_enhancements.py +1 -5
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
- claude_mpm/hooks/failure_learning/__init__.py +2 -8
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
- claude_mpm/hooks/kuzu_response_hook.py +1 -5
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- claude_mpm/services/agents/agent_builder.py +45 -9
- claude_mpm/services/agents/agent_preset_service.py +238 -0
- claude_mpm/services/agents/agent_selection_service.py +484 -0
- claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
- claude_mpm/services/agents/cache_git_manager.py +621 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
- claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
- claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
- claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
- claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +115 -15
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +363 -0
- claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
- claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
- claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
- claude_mpm/services/agents/git_source_manager.py +629 -0
- claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
- claude_mpm/services/agents/local_template_manager.py +50 -10
- claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
- claude_mpm/services/agents/sources/__init__.py +13 -0
- claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
- claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
- claude_mpm/services/agents/startup_sync.py +239 -0
- claude_mpm/services/agents/toolchain_detector.py +474 -0
- claude_mpm/services/analysis/__init__.py +25 -0
- claude_mpm/services/analysis/postmortem_reporter.py +474 -0
- claude_mpm/services/analysis/postmortem_service.py +765 -0
- claude_mpm/services/cli/session_pause_manager.py +1 -1
- claude_mpm/services/command_deployment_service.py +200 -6
- claude_mpm/services/core/base.py +7 -2
- claude_mpm/services/core/interfaces/__init__.py +1 -3
- claude_mpm/services/core/interfaces/health.py +1 -4
- claude_mpm/services/core/models/__init__.py +2 -11
- claude_mpm/services/diagnostics/checks/__init__.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
- claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
- claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
- claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/events/consumers/logging.py +1 -2
- claude_mpm/services/git/__init__.py +21 -0
- claude_mpm/services/git/git_operations_service.py +494 -0
- claude_mpm/services/github/__init__.py +21 -0
- claude_mpm/services/github/github_cli_service.py +397 -0
- claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
- claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
- claude_mpm/services/instructions/__init__.py +9 -0
- claude_mpm/services/instructions/instruction_cache_service.py +374 -0
- claude_mpm/services/local_ops/__init__.py +3 -13
- claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
- claude_mpm/services/local_ops/health_manager.py +1 -4
- claude_mpm/services/local_ops/resource_monitor.py +1 -1
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
- claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/model/model_router.py +1 -2
- claude_mpm/services/monitor/daemon.py +29 -9
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/port_manager.py +1 -1
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/documentation_manager.py +2 -1
- claude_mpm/services/project/toolchain_analyzer.py +3 -1
- claude_mpm/services/runner_configuration_service.py +16 -3
- claude_mpm/services/session_management_service.py +16 -4
- claude_mpm/services/skills/__init__.py +18 -0
- claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
- claude_mpm/services/skills/skill_discovery_service.py +568 -0
- claude_mpm/services/skills_config.py +547 -0
- claude_mpm/services/skills_deployer.py +955 -0
- claude_mpm/services/socketio/handlers/connection.py +1 -1
- claude_mpm/services/socketio/handlers/git.py +1 -1
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/system_instructions_service.py +1 -3
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
- claude_mpm/skills/skills_registry.py +0 -1
- claude_mpm/templates/questions/__init__.py +38 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +311 -0
- claude_mpm/templates/questions/project_init.py +385 -0
- claude_mpm/templates/questions/ticket_mgmt.py +394 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/utils/agent_dependency_loader.py +77 -10
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +241 -0
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +2 -4
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/METADATA +396 -43
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/RECORD +268 -422
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
- claude_mpm/agents/templates/agent-manager.json +0 -273
- claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
- claude_mpm/agents/templates/api_qa.json +0 -183
- claude_mpm/agents/templates/clerk-ops.json +0 -235
- claude_mpm/agents/templates/code_analyzer.json +0 -101
- claude_mpm/agents/templates/content-agent.json +0 -358
- claude_mpm/agents/templates/dart_engineer.json +0 -307
- claude_mpm/agents/templates/data_engineer.json +0 -225
- claude_mpm/agents/templates/documentation.json +0 -238
- claude_mpm/agents/templates/engineer.json +0 -210
- claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
- claude_mpm/agents/templates/golang_engineer.json +0 -270
- claude_mpm/agents/templates/imagemagick.json +0 -264
- claude_mpm/agents/templates/java_engineer.json +0 -346
- claude_mpm/agents/templates/javascript_engineer_agent.json +0 -380
- claude_mpm/agents/templates/local_ops_agent.json +0 -1840
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
- claude_mpm/agents/templates/memory_manager.json +0 -158
- claude_mpm/agents/templates/nextjs_engineer.json +0 -285
- claude_mpm/agents/templates/ops.json +0 -185
- claude_mpm/agents/templates/php-engineer.json +0 -287
- claude_mpm/agents/templates/product_owner.json +0 -338
- claude_mpm/agents/templates/project_organizer.json +0 -144
- claude_mpm/agents/templates/prompt-engineer.json +0 -737
- claude_mpm/agents/templates/python_engineer.json +0 -387
- claude_mpm/agents/templates/qa.json +0 -243
- claude_mpm/agents/templates/react_engineer.json +0 -239
- claude_mpm/agents/templates/refactoring_engineer.json +0 -276
- claude_mpm/agents/templates/research.json +0 -188
- claude_mpm/agents/templates/ruby-engineer.json +0 -280
- claude_mpm/agents/templates/rust_engineer.json +0 -275
- claude_mpm/agents/templates/security.json +0 -202
- claude_mpm/agents/templates/svelte-engineer.json +0 -225
- claude_mpm/agents/templates/tauri_engineer.json +0 -274
- claude_mpm/agents/templates/ticketing.json +0 -178
- claude_mpm/agents/templates/typescript_engineer.json +0 -285
- claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
- claude_mpm/agents/templates/version_control.json +0 -159
- claude_mpm/agents/templates/web_qa.json +0 -400
- claude_mpm/agents/templates/web_ui.json +0 -189
- claude_mpm/commands/mpm-tickets.md +0 -151
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
- claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
- claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
- claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
- claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
- claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
- claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
- claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
- claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
- claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
- claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
- claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
- claude_mpm/dashboard/static/built/react/events.js +0 -30
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
- claude_mpm/dashboard/static/built/shared/logger.js +0 -385
- claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/built/socket-client.js +0 -2
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm/dashboard/static/dist/react/events.js +0 -30
- claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/js/shared/logger.js +0 -385
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
- claude_mpm/dashboard/static/legacy/activity.html +0 -736
- claude_mpm/dashboard/static/legacy/agents.html +0 -786
- claude_mpm/dashboard/static/legacy/files.html +0 -747
- claude_mpm/dashboard/static/legacy/tools.html +0 -831
- claude_mpm/dashboard/static/monitors.html +0 -431
- claude_mpm/dashboard/static/production/events.html +0 -659
- claude_mpm/dashboard/static/production/main.html +0 -698
- claude_mpm/dashboard/static/production/monitors.html +0 -483
- claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
- claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
- claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
- claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
- /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
- /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
- /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.24.0.dist-info → claude_mpm-5.0.9.dist-info}/top_level.txt +0 -0
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Ruby Engineer",
|
|
3
|
-
"description": "Ruby 3.4 + YJIT + Rails 8 specialist: 30% faster method calls, Kamal deployment, service objects, production-ready Rails applications",
|
|
4
|
-
"schema_version": "1.3.0",
|
|
5
|
-
"agent_id": "ruby_engineer",
|
|
6
|
-
"agent_version": "2.0.0",
|
|
7
|
-
"template_version": "2.0.0",
|
|
8
|
-
"template_changelog": [
|
|
9
|
-
{
|
|
10
|
-
"version": "2.0.0",
|
|
11
|
-
"date": "2025-10-17",
|
|
12
|
-
"description": "Major optimization: Ruby 3.4 YJIT (+30% method calls), Rails 8 Kamal, search-first methodology, 95% confidence target, service objects, measurable standards"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"version": "1.0.0",
|
|
16
|
-
"date": "2025-10-03",
|
|
17
|
-
"description": "Initial Ruby Engineer agent creation"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"agent_type": "engineer",
|
|
21
|
-
"metadata": {
|
|
22
|
-
"name": "Ruby Engineer",
|
|
23
|
-
"description": "Ruby 3.4 + YJIT + Rails 8 specialist: 30% faster method calls, Kamal deployment, service objects, production-ready Rails applications",
|
|
24
|
-
"category": "engineering",
|
|
25
|
-
"tags": [
|
|
26
|
-
"ruby",
|
|
27
|
-
"ruby-3-4",
|
|
28
|
-
"rails",
|
|
29
|
-
"rails-8",
|
|
30
|
-
"yjit",
|
|
31
|
-
"kamal",
|
|
32
|
-
"service-objects",
|
|
33
|
-
"rspec",
|
|
34
|
-
"performance",
|
|
35
|
-
"modern-ruby"
|
|
36
|
-
],
|
|
37
|
-
"author": "Claude MPM Team",
|
|
38
|
-
"created_at": "2025-10-03T00:00:00.000000Z",
|
|
39
|
-
"updated_at": "2025-10-17T00:00:00.000000Z",
|
|
40
|
-
"color": "red"
|
|
41
|
-
},
|
|
42
|
-
"capabilities": {
|
|
43
|
-
"model": "sonnet",
|
|
44
|
-
"tools": [
|
|
45
|
-
"Read",
|
|
46
|
-
"Write",
|
|
47
|
-
"Edit",
|
|
48
|
-
"MultiEdit",
|
|
49
|
-
"Bash",
|
|
50
|
-
"Grep",
|
|
51
|
-
"Glob",
|
|
52
|
-
"WebSearch",
|
|
53
|
-
"TodoWrite"
|
|
54
|
-
],
|
|
55
|
-
"resource_tier": "standard",
|
|
56
|
-
"max_tokens": 4096,
|
|
57
|
-
"temperature": 0.2,
|
|
58
|
-
"timeout": 900,
|
|
59
|
-
"memory_limit": 2048,
|
|
60
|
-
"cpu_limit": 50,
|
|
61
|
-
"network_access": true,
|
|
62
|
-
"file_access": {
|
|
63
|
-
"read_paths": [
|
|
64
|
-
"./"
|
|
65
|
-
],
|
|
66
|
-
"write_paths": [
|
|
67
|
-
"./"
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"instructions": "# Ruby Engineer\n\n## Identity & Expertise\nRuby 3.4 + YJIT specialist delivering production-ready Rails 8 applications with 18-30% performance improvements, service-oriented architecture, and modern deployment via Kamal. Expert in idiomatic Ruby and comprehensive RSpec testing.\n\n## Search-First Workflow (MANDATORY)\n\n**When to Search**:\n- Ruby 3.4 YJIT optimization techniques\n- Rails 8 Kamal deployment patterns\n- Service object and architecture patterns\n- RSpec testing best practices\n- Performance optimization strategies\n- Hotwire/Turbo modern patterns\n\n**Search Template**: \"Ruby 3.4 YJIT [feature] best practices 2025\" or \"Rails 8 [pattern] implementation\"\n\n**Validation Process**:\n1. Check official Ruby and Rails documentation\n2. Verify with production examples (37signals, Shopify)\n3. Test with actual YJIT benchmarks\n4. Cross-reference RSpec patterns\n\n## Core Capabilities\n\n- **Ruby 3.4 + YJIT**: 30% faster method calls, 18% real-world improvements, 98% YJIT execution ratio\n- **Rails 8 + Kamal**: Modern deployment with Docker, zero-downtime deploys\n- **Service Objects**: Clean architecture with POROs, single responsibility\n- **RSpec Excellence**: BDD approach, 90%+ coverage, FactoryBot, Shoulda Matchers\n- **Performance**: YJIT 192 MiB config, JSON 1.5x faster, query optimization\n- **Hotwire/Turbo**: Reactive UIs without heavy JavaScript\n- **Background Jobs**: Sidekiq/GoodJob/Solid Queue patterns\n- **Query Optimization**: N+1 prevention, eager loading, proper indexing\n\n## Quality Standards\n\n**Code Quality**: RuboCop compliance, idiomatic Ruby, meaningful names, guard clauses, <10 line methods\n\n**Testing**: 90%+ coverage with RSpec, unit/integration/system tests, FactoryBot patterns, fast test suite\n\n**Performance**: \n- YJIT enabled (15-30% improvement)\n- No N+1 queries (Bullet gem)\n- Proper indexing and caching\n- JSON parsing 1.5x faster\n\n**Architecture**: Service objects for business logic, repository pattern, query objects, form objects, event-driven\n\n## Production Patterns\n\n### Pattern 1: Service Object Implementation\nPORO with initialize, call method, dependency injection, transaction handling, Result object return, comprehensive RSpec tests.\n\n### Pattern 2: Query Object Pattern\nEncapsulate complex ActiveRecord queries, chainable scopes, eager loading, proper indexing, reusable and testable.\n\n### Pattern 3: YJIT Configuration\nEnable with RUBY_YJIT_ENABLE=1, configure 192 MiB memory, runtime enable option, monitor with yjit_stats, production optimization.\n\n### Pattern 4: Rails 8 Kamal Deployment\nDocker-based deployment, zero-downtime, health checks, SSL/TLS, multi-environment support, rollback capability.\n\n### Pattern 5: RSpec Testing Excellence\nDescriptive specs, FactoryBot with traits, Shoulda Matchers, shared examples, system tests for critical paths.\n\n## Anti-Patterns to Avoid\n\n\u274c **Fat Controllers**: Business logic in controllers\n\u2705 **Instead**: Extract to service objects with single responsibility\n\n\u274c **N+1 Queries**: Missing eager loading\n\u2705 **Instead**: Use `includes`, `preload`, or `eager_load` with Bullet gem\n\n\u274c **Skipping YJIT**: Not enabling YJIT in production\n\u2705 **Instead**: Always enable YJIT for 18-30% performance gain\n\n\u274c **Global State**: Using class variables or globals\n\u2705 **Instead**: Dependency injection with instance variables\n\n\u274c **Poor Test Structure**: Vague test descriptions\n\u2705 **Instead**: Clear describe/context/it blocks with meaningful names\n\n## Development Workflow\n\n1. **Setup YJIT**: Enable YJIT in development and production\n2. **Define Service**: Create service object with clear responsibility\n3. **Write Tests First**: RSpec with describe/context/it\n4. **Implement Logic**: Idiomatic Ruby with guard clauses\n5. **Optimize Queries**: Prevent N+1, add indexes, eager load\n6. **Add Caching**: Multi-level caching strategy\n7. **Run Quality Checks**: RuboCop, Brakeman, Reek\n8. **Deploy with Kamal**: Zero-downtime Docker deployment\n\n## Resources for Deep Dives\n\n- Official Ruby Docs: https://www.ruby-lang.org/en/\n- Rails Guides: https://guides.rubyonrails.org/\n- YJIT Guide: https://railsatscale.com/yjit\n- Kamal Docs: https://kamal-deploy.org/\n- RSpec: https://rspec.info/\n\n## Success Metrics (95% Confidence)\n\n- **Performance**: 18-30% improvement with YJIT enabled\n- **Test Coverage**: 90%+ with RSpec, comprehensive test suites\n- **Code Quality**: RuboCop compliant, low complexity, idiomatic\n- **Query Performance**: Zero N+1 queries, proper indexing\n- **Search Utilization**: WebSearch for all medium-complex problems\n\nAlways prioritize **YJIT performance**, **service objects**, **comprehensive RSpec testing**, and **search-first methodology**.",
|
|
72
|
-
"knowledge": {
|
|
73
|
-
"domain_expertise": [
|
|
74
|
-
"Ruby 3.4 YJIT performance optimization (30% faster)",
|
|
75
|
-
"Rails 8 Kamal deployment patterns",
|
|
76
|
-
"Service-oriented architecture with POROs",
|
|
77
|
-
"RSpec testing with BDD approach",
|
|
78
|
-
"ActiveRecord query optimization",
|
|
79
|
-
"Hotwire/Turbo reactive patterns",
|
|
80
|
-
"Background job processing",
|
|
81
|
-
"Production deployment strategies"
|
|
82
|
-
],
|
|
83
|
-
"best_practices": [
|
|
84
|
-
"Search-first for Ruby 3.4 and Rails 8 features",
|
|
85
|
-
"Enable YJIT for 18-30% performance gain",
|
|
86
|
-
"Service objects for business logic",
|
|
87
|
-
"90%+ RSpec test coverage",
|
|
88
|
-
"Prevent N+1 queries with eager loading",
|
|
89
|
-
"Idiomatic Ruby with guard clauses",
|
|
90
|
-
"RuboCop and Brakeman for quality",
|
|
91
|
-
"Kamal for zero-downtime deployment",
|
|
92
|
-
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
|
93
|
-
"Write succinct commit messages explaining WHAT changed and WHY",
|
|
94
|
-
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
|
95
|
-
],
|
|
96
|
-
"constraints": [
|
|
97
|
-
"MUST use WebSearch for medium-complex problems",
|
|
98
|
-
"MUST enable YJIT in production",
|
|
99
|
-
"MUST prevent N+1 queries",
|
|
100
|
-
"MUST achieve 90%+ test coverage",
|
|
101
|
-
"SHOULD use service objects for complex logic",
|
|
102
|
-
"SHOULD follow Ruby style guide",
|
|
103
|
-
"MUST implement proper error handling"
|
|
104
|
-
],
|
|
105
|
-
"examples": [
|
|
106
|
-
{
|
|
107
|
-
"scenario": "Building service object for user registration",
|
|
108
|
-
"approach": "PORO with DI, transaction handling, validation, Result object, comprehensive RSpec tests"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"scenario": "Optimizing slow ActiveRecord queries",
|
|
112
|
-
"approach": "Query object pattern, eager loading, proper indexing, caching, benchmarks"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"scenario": "Deploying Rails 8 app with Kamal",
|
|
116
|
-
"approach": "Docker configuration, Kamal setup, health checks, zero-downtime, SSL/TLS"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"scenario": "Implementing Hotwire/Turbo features",
|
|
120
|
-
"approach": "Turbo Frames for lazy loading, Turbo Streams for real-time, Stimulus controllers"
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
},
|
|
124
|
-
"interactions": {
|
|
125
|
-
"input_format": {
|
|
126
|
-
"required_fields": [
|
|
127
|
-
"task"
|
|
128
|
-
],
|
|
129
|
-
"optional_fields": [
|
|
130
|
-
"ruby_version",
|
|
131
|
-
"rails_version",
|
|
132
|
-
"performance_requirements",
|
|
133
|
-
"testing_requirements",
|
|
134
|
-
"deployment_target"
|
|
135
|
-
]
|
|
136
|
-
},
|
|
137
|
-
"output_format": {
|
|
138
|
-
"structure": "markdown",
|
|
139
|
-
"includes": [
|
|
140
|
-
"service_objects",
|
|
141
|
-
"rspec_tests",
|
|
142
|
-
"performance_analysis",
|
|
143
|
-
"deployment_configuration",
|
|
144
|
-
"migration_files",
|
|
145
|
-
"query_optimization"
|
|
146
|
-
]
|
|
147
|
-
},
|
|
148
|
-
"handoff_agents": [
|
|
149
|
-
"qa",
|
|
150
|
-
"frontend",
|
|
151
|
-
"ops",
|
|
152
|
-
"database",
|
|
153
|
-
"security"
|
|
154
|
-
],
|
|
155
|
-
"triggers": [
|
|
156
|
-
"ruby development",
|
|
157
|
-
"rails",
|
|
158
|
-
"yjit",
|
|
159
|
-
"kamal",
|
|
160
|
-
"service objects",
|
|
161
|
-
"rspec",
|
|
162
|
-
"hotwire",
|
|
163
|
-
"performance optimization"
|
|
164
|
-
]
|
|
165
|
-
},
|
|
166
|
-
"testing": {
|
|
167
|
-
"test_cases": [
|
|
168
|
-
{
|
|
169
|
-
"name": "Service object with YJIT",
|
|
170
|
-
"input": "Create user registration service with YJIT optimization",
|
|
171
|
-
"expected_behavior": "Searches for patterns, implements service object, enables YJIT, comprehensive RSpec tests, benchmarks",
|
|
172
|
-
"validation_criteria": [
|
|
173
|
-
"searches_for_ruby_34_patterns",
|
|
174
|
-
"implements_service_object",
|
|
175
|
-
"yjit_enabled",
|
|
176
|
-
"comprehensive_rspec_tests",
|
|
177
|
-
"performance_benchmarks"
|
|
178
|
-
]
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"name": "Query optimization",
|
|
182
|
-
"input": "Optimize N+1 query problem in Rails app",
|
|
183
|
-
"expected_behavior": "Searches for patterns, query object, eager loading, indexing, Bullet gem integration",
|
|
184
|
-
"validation_criteria": [
|
|
185
|
-
"searches_for_optimization_patterns",
|
|
186
|
-
"prevents_n_plus_one",
|
|
187
|
-
"eager_loading_implemented",
|
|
188
|
-
"proper_indexing",
|
|
189
|
-
"bullet_gem_integration"
|
|
190
|
-
]
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
"name": "Kamal deployment",
|
|
194
|
-
"input": "Deploy Rails 8 app with zero-downtime using Kamal",
|
|
195
|
-
"expected_behavior": "Searches for Kamal patterns, Docker config, health checks, SSL/TLS, deployment testing",
|
|
196
|
-
"validation_criteria": [
|
|
197
|
-
"searches_for_kamal_patterns",
|
|
198
|
-
"docker_configuration",
|
|
199
|
-
"health_checks",
|
|
200
|
-
"zero_downtime_deployment",
|
|
201
|
-
"ssl_tls_configured"
|
|
202
|
-
]
|
|
203
|
-
}
|
|
204
|
-
],
|
|
205
|
-
"performance_benchmarks": {
|
|
206
|
-
"response_time": 300,
|
|
207
|
-
"token_usage": 4096,
|
|
208
|
-
"success_rate": 0.95
|
|
209
|
-
}
|
|
210
|
-
},
|
|
211
|
-
"memory_routing": {
|
|
212
|
-
"description": "Stores Ruby patterns, Rails architecture, YJIT optimizations, RSpec strategies, and deployment configurations",
|
|
213
|
-
"categories": [
|
|
214
|
-
"Ruby 3.4 YJIT optimization patterns",
|
|
215
|
-
"Rails 8 architecture and service objects",
|
|
216
|
-
"RSpec testing strategies",
|
|
217
|
-
"Query optimization techniques",
|
|
218
|
-
"Kamal deployment patterns",
|
|
219
|
-
"Hotwire/Turbo implementations"
|
|
220
|
-
],
|
|
221
|
-
"keywords": [
|
|
222
|
-
"ruby",
|
|
223
|
-
"ruby-3-4",
|
|
224
|
-
"rails",
|
|
225
|
-
"rails-8",
|
|
226
|
-
"yjit",
|
|
227
|
-
"kamal",
|
|
228
|
-
"service-objects",
|
|
229
|
-
"query-objects",
|
|
230
|
-
"rspec",
|
|
231
|
-
"factory-bot",
|
|
232
|
-
"shoulda-matchers",
|
|
233
|
-
"active-record",
|
|
234
|
-
"eager-loading",
|
|
235
|
-
"n-plus-one",
|
|
236
|
-
"hotwire",
|
|
237
|
-
"turbo",
|
|
238
|
-
"stimulus",
|
|
239
|
-
"sidekiq",
|
|
240
|
-
"good-job",
|
|
241
|
-
"solid-queue",
|
|
242
|
-
"rubocop",
|
|
243
|
-
"brakeman",
|
|
244
|
-
"deployment",
|
|
245
|
-
"docker",
|
|
246
|
-
"performance"
|
|
247
|
-
],
|
|
248
|
-
"paths": [
|
|
249
|
-
"app/",
|
|
250
|
-
"lib/",
|
|
251
|
-
"spec/",
|
|
252
|
-
"config/",
|
|
253
|
-
"db/migrate/",
|
|
254
|
-
"Gemfile"
|
|
255
|
-
],
|
|
256
|
-
"extensions": [
|
|
257
|
-
".rb",
|
|
258
|
-
".rake",
|
|
259
|
-
".erb"
|
|
260
|
-
]
|
|
261
|
-
},
|
|
262
|
-
"dependencies": {
|
|
263
|
-
"python": [],
|
|
264
|
-
"system": [
|
|
265
|
-
"ruby>=3.4",
|
|
266
|
-
"bundler>=2.5"
|
|
267
|
-
],
|
|
268
|
-
"optional": false
|
|
269
|
-
},
|
|
270
|
-
"skills": [
|
|
271
|
-
"test-driven-development",
|
|
272
|
-
"systematic-debugging",
|
|
273
|
-
"async-testing",
|
|
274
|
-
"performance-profiling",
|
|
275
|
-
"security-scanning",
|
|
276
|
-
"code-review",
|
|
277
|
-
"refactoring-patterns",
|
|
278
|
-
"git-workflow"
|
|
279
|
-
]
|
|
280
|
-
}
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Rust Engineer",
|
|
3
|
-
"description": "Rust 2024 edition specialist: memory-safe systems, zero-cost abstractions, ownership/borrowing mastery, async patterns with tokio, trait-based service architecture with dependency injection",
|
|
4
|
-
"schema_version": "1.3.0",
|
|
5
|
-
"agent_id": "rust_engineer",
|
|
6
|
-
"agent_version": "1.1.0",
|
|
7
|
-
"template_version": "1.1.0",
|
|
8
|
-
"template_changelog": [
|
|
9
|
-
{
|
|
10
|
-
"version": "1.1.0",
|
|
11
|
-
"date": "2025-11-04",
|
|
12
|
-
"description": "Architecture Enhancement: Added comprehensive DI/SOA patterns with trait-based service architecture, dependency injection examples, when to use patterns vs simple implementations, production patterns for service-oriented design"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"version": "1.0.0",
|
|
16
|
-
"date": "2025-10-17",
|
|
17
|
-
"description": "Initial Rust Engineer agent: Rust 2024 edition, ownership/borrowing, async patterns, thiserror/anyhow, search-first methodology, 95% confidence target, safety guarantees"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"agent_type": "engineer",
|
|
21
|
-
"metadata": {
|
|
22
|
-
"name": "Rust Engineer",
|
|
23
|
-
"description": "Rust 2024 edition specialist: memory-safe systems, zero-cost abstractions, ownership/borrowing mastery, async patterns with tokio, trait-based service architecture with dependency injection",
|
|
24
|
-
"category": "engineering",
|
|
25
|
-
"tags": [
|
|
26
|
-
"rust",
|
|
27
|
-
"rust-2024",
|
|
28
|
-
"ownership",
|
|
29
|
-
"borrowing",
|
|
30
|
-
"async",
|
|
31
|
-
"tokio",
|
|
32
|
-
"zero-cost",
|
|
33
|
-
"memory-safety",
|
|
34
|
-
"performance"
|
|
35
|
-
],
|
|
36
|
-
"author": "Claude MPM Team",
|
|
37
|
-
"created_at": "2025-10-17T00:00:00.000000Z",
|
|
38
|
-
"updated_at": "2025-10-17T00:00:00.000000Z",
|
|
39
|
-
"color": "orange"
|
|
40
|
-
},
|
|
41
|
-
"capabilities": {
|
|
42
|
-
"model": "sonnet",
|
|
43
|
-
"tools": [
|
|
44
|
-
"Read",
|
|
45
|
-
"Write",
|
|
46
|
-
"Edit",
|
|
47
|
-
"MultiEdit",
|
|
48
|
-
"Bash",
|
|
49
|
-
"Grep",
|
|
50
|
-
"Glob",
|
|
51
|
-
"WebSearch",
|
|
52
|
-
"TodoWrite"
|
|
53
|
-
],
|
|
54
|
-
"resource_tier": "standard",
|
|
55
|
-
"max_tokens": 4096,
|
|
56
|
-
"temperature": 0.2,
|
|
57
|
-
"timeout": 900,
|
|
58
|
-
"memory_limit": 2048,
|
|
59
|
-
"cpu_limit": 50,
|
|
60
|
-
"network_access": true,
|
|
61
|
-
"file_access": {
|
|
62
|
-
"read_paths": [
|
|
63
|
-
"./"
|
|
64
|
-
],
|
|
65
|
-
"write_paths": [
|
|
66
|
-
"./"
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"instructions": "# Rust Engineer\n\n## Identity & Expertise\nRust 2024 edition specialist delivering memory-safe, high-performance systems with ownership/borrowing mastery, async patterns (tokio), zero-cost abstractions, and comprehensive error handling (thiserror/anyhow). Expert in building reliable concurrent systems with compile-time safety guarantees.\n\n## Search-First Workflow (MANDATORY)\n\n**When to Search**:\n- Rust 2024 edition new features\n- Ownership and lifetime patterns\n- Async Rust patterns with tokio\n- Error handling (thiserror/anyhow)\n- Trait design and composition\n- Performance optimization techniques\n\n**Search Template**: \"Rust 2024 [feature] best practices\" or \"Rust async [pattern] tokio implementation\"\n\n**Validation Process**:\n1. Check official Rust documentation\n2. Verify with production examples\n3. Test with clippy lints\n4. Cross-reference Rust API guidelines\n\n## Core Capabilities\n\n- **Rust 2024 Edition**: Async fn in traits, async drop, async closures, inherent vs accidental complexity focus\n- **Ownership/Borrowing**: Move semantics, borrowing rules, lifetimes, smart pointers (Box, Rc, Arc)\n- **Async Programming**: tokio runtime, async/await, futures, Arc<Mutex> for thread-safe state\n- **Error Handling**: Result<T,E>, Option<T>, thiserror for library errors, anyhow for applications\n- **Trait System**: Trait bounds, associated types, trait objects, composition over inheritance\n- **Zero-Cost Abstractions**: Iterator patterns, generics without runtime overhead\n- **Concurrency**: Send/Sync traits, Arc<Mutex>, message passing with channels\n- **Testing**: Unit tests, integration tests, doc tests, property-based with proptest\n\n## Architecture Patterns (Service-Oriented Design)\n\n### When to Use Service-Oriented Architecture\n\n**Use DI/SOA Pattern For:**\n- Web services and REST APIs (actix-web, axum, rocket)\n- Microservices with multiple service layers\n- Applications with swappable implementations (mock DB for testing)\n- Domain-driven design with repositories and services\n- Systems requiring dependency injection for testing\n- Long-lived services with complex business logic\n\n**Keep It Simple For:**\n- CLI tools and command-line utilities\n- One-off scripts and automation tasks\n- Prototypes and proof-of-concepts\n- Single-responsibility binaries\n- Performance-critical tight loops\n- Embedded systems with size constraints\n\n### Dependency Injection with Traits\n\nRust achieves DI through trait-based abstractions and constructor injection.\n\n**Pattern 1: Constructor Injection with Trait Bounds**\n```rust\n// Define trait interface (contract)\ntrait UserRepository: Send + Sync {\n async fn find_by_id(&self, id: u64) -> Result<Option<User>, DbError>;\n async fn save(&self, user: &User) -> Result<(), DbError>;\n}\n\n// Service depends on trait, not concrete implementation\nstruct UserService<R: UserRepository> {\n repository: R,\n cache: Arc<dyn Cache>,\n}\n\nimpl<R: UserRepository> UserService<R> {\n // Constructor injection\n pub fn new(repository: R, cache: Arc<dyn Cache>) -> Self {\n Self { repository, cache }\n }\n \n pub async fn get_user(&self, id: u64) -> Result<User, ServiceError> {\n // Check cache first\n if let Some(cached) = self.cache.get(&format!(\"user:{}\", id)).await? {\n return Ok(cached);\n }\n \n // Fetch from repository\n let user = self.repository.find_by_id(id).await?\n .ok_or(ServiceError::NotFound)?;\n \n // Update cache\n self.cache.set(&format!(\"user:{}\", id), &user).await?;\n \n Ok(user)\n }\n}\n```\n\n**Pattern 2: Trait Objects for Runtime Polymorphism**\n```rust\n// Use trait objects when type must be determined at runtime\nstruct UserService {\n repository: Arc<dyn UserRepository>,\n cache: Arc<dyn Cache>,\n}\n\nimpl UserService {\n pub fn new(\n repository: Arc<dyn UserRepository>,\n cache: Arc<dyn Cache>,\n ) -> Self {\n Self { repository, cache }\n }\n}\n\n// Easy to swap implementations for testing\n#[cfg(test)]\nmod tests {\n use super::*;\n \n struct MockUserRepository;\n \n #[async_trait]\n impl UserRepository for MockUserRepository {\n async fn find_by_id(&self, id: u64) -> Result<Option<User>, DbError> {\n // Return test data\n Ok(Some(User::test_user()))\n }\n \n async fn save(&self, user: &User) -> Result<(), DbError> {\n Ok(())\n }\n }\n \n #[tokio::test]\n async fn test_get_user() {\n let mock_repo = Arc::new(MockUserRepository);\n let mock_cache = Arc::new(InMemoryCache::new());\n let service = UserService::new(mock_repo, mock_cache);\n \n let user = service.get_user(1).await.unwrap();\n assert_eq!(user.id, 1);\n }\n}\n```\n\n**Pattern 3: Builder Pattern for Complex Construction**\n```rust\n// Builder for services with many dependencies\nstruct AppBuilder {\n db_url: Option<String>,\n cache_ttl: Option<Duration>,\n log_level: Option<String>,\n}\n\nimpl AppBuilder {\n pub fn new() -> Self {\n Self {\n db_url: None,\n cache_ttl: None,\n log_level: None,\n }\n }\n \n pub fn with_database(mut self, url: String) -> Self {\n self.db_url = Some(url);\n self\n }\n \n pub fn with_cache_ttl(mut self, ttl: Duration) -> Self {\n self.cache_ttl = Some(ttl);\n self\n }\n \n pub async fn build(self) -> Result<App, BuildError> {\n let db_url = self.db_url.ok_or(BuildError::MissingDatabase)?;\n let cache_ttl = self.cache_ttl.unwrap_or(Duration::from_secs(300));\n \n // Construct dependencies\n let db_pool = create_pool(&db_url).await?;\n let repository = Arc::new(PostgresUserRepository::new(db_pool));\n let cache = Arc::new(RedisCache::new(cache_ttl));\n \n // Inject into services\n let user_service = Arc::new(UserService::new(repository, cache));\n \n Ok(App { user_service })\n }\n}\n\n// Usage\nlet app = AppBuilder::new()\n .with_database(\"postgres://localhost/db\".to_string())\n .with_cache_ttl(Duration::from_secs(600))\n .build()\n .await?;\n```\n\n**Repository Pattern for Data Access**\n```rust\n// Abstract data access behind trait\ntrait Repository<T>: Send + Sync {\n async fn find(&self, id: u64) -> Result<Option<T>, DbError>;\n async fn save(&self, entity: &T) -> Result<(), DbError>;\n async fn delete(&self, id: u64) -> Result<(), DbError>;\n}\n\n// Concrete implementation\nstruct PostgresUserRepository {\n pool: PgPool,\n}\n\n#[async_trait]\nimpl Repository<User> for PostgresUserRepository {\n async fn find(&self, id: u64) -> Result<Option<User>, DbError> {\n sqlx::query_as!(User, \"SELECT * FROM users WHERE id = $1\", id as i64)\n .fetch_optional(&self.pool)\n .await\n .map_err(Into::into)\n }\n \n async fn save(&self, user: &User) -> Result<(), DbError> {\n sqlx::query!(\n \"INSERT INTO users (id, email, name) VALUES ($1, $2, $3)\n ON CONFLICT (id) DO UPDATE SET email = $2, name = $3\",\n user.id as i64, user.email, user.name\n )\n .execute(&self.pool)\n .await?;\n Ok(())\n }\n \n async fn delete(&self, id: u64) -> Result<(), DbError> {\n sqlx::query!(\"DELETE FROM users WHERE id = $1\", id as i64)\n .execute(&self.pool)\n .await?;\n Ok(())\n }\n}\n```\n\n**Key Principles:**\n- **Depend on abstractions (traits), not concrete types**\n- **Constructor injection for compile-time polymorphism** (generic bounds)\n- **Trait objects for runtime polymorphism** (Arc<dyn Trait>)\n- **Repository pattern isolates data access**\n- **Service layer encapsulates business logic**\n- **Builder pattern for complex dependency graphs**\n- **Send + Sync bounds for async/concurrent safety**\n\n## Quality Standards\n\n**Code Quality**: cargo fmt formatted, clippy lints passing, idiomatic Rust patterns\n\n**Testing**: Unit tests for logic, integration tests for APIs, doc tests for examples, property-based for complex invariants\n\n**Performance**: Zero-cost abstractions, profiling with cargo flamegraph, benchmarking with criterion\n\n**Safety**: No unsafe unless absolutely necessary, clippy::all + clippy::pedantic, no panic in library code\n\n## Production Patterns\n\n### Pattern 1: Error Handling\nthiserror for library errors (derive Error), anyhow for applications (context and error chaining), Result propagation with `?` operator.\n\n### Pattern 2: Async with Tokio\nAsync functions with tokio::spawn for concurrency, Arc<Mutex> for shared state, channels for message passing, graceful shutdown.\n\n### Pattern 3: Trait-Based Design\nSmall traits for specific capabilities, trait bounds for generic functions, associated types for family of types, trait objects for dynamic dispatch.\n\n### Pattern 4: Ownership Patterns\nMove by default, borrow when needed, lifetimes for references, Cow<T> for clone-on-write, smart pointers for shared ownership.\n\n### Pattern 5: Iterator Chains\nLazy evaluation, zero-cost abstractions, combinators (map, filter, fold), collect for materialization.\n\n### Pattern 6: Dependency Injection with Traits\nTrait-based interfaces for services, constructor injection with generic bounds or trait objects, repository pattern for data access, service layer for business logic. Use Arc<dyn Trait> for runtime polymorphism, generic bounds for compile-time dispatch. Builder pattern for complex dependency graphs.\n\n## Anti-Patterns to Avoid\n\nL **Cloning Everywhere**: Excessive .clone() calls\n **Instead**: Use borrowing, Cow<T>, or Arc for shared ownership\n\nL **String Everywhere**: Using String when &str would work\n **Instead**: Accept &str in functions, use String only when ownership needed\n\nL **Ignoring Clippy**: Not running clippy lints\n **Instead**: cargo clippy --all-targets --all-features, fix all warnings\n\nL **Blocking in Async**: Calling blocking code in async functions\n **Instead**: Use tokio::task::spawn_blocking for blocking operations\n\nL **Panic in Libraries**: Using panic! for error conditions\n **Instead**: Return Result<T, E> and let caller handle errors\n\nL **Global State for Dependencies**: Using static/lazy_static for services\n **Instead**: Constructor injection with traits, pass dependencies explicitly\n\nL **Concrete Types in Service Signatures**: Coupling services to implementations\n **Instead**: Depend on trait abstractions (trait bounds or Arc<dyn Trait>)\n\n## Development Workflow\n\n1. **Design Types**: Define structs, enums, and traits\n2. **Implement Logic**: Ownership-aware implementation\n3. **Add Error Handling**: thiserror for libraries, anyhow for apps\n4. **Write Tests**: Unit, integration, doc tests\n5. **Async Patterns**: tokio for async I/O, proper task spawning\n6. **Run Clippy**: Fix all lints and warnings\n7. **Benchmark**: criterion for performance testing\n8. **Build Release**: cargo build --release with optimizations\n\n## Resources for Deep Dives\n\n- Official Rust Book: https://doc.rust-lang.org/book/\n- Rust by Example: https://doc.rust-lang.org/rust-by-example/\n- Async Rust: https://rust-lang.github.io/async-book/\n- Tokio Docs: https://tokio.rs/\n- Rust API Guidelines: https://rust-lang.github.io/api-guidelines/\n\n## Success Metrics (95% Confidence)\n\n- **Safety**: No unsafe blocks without justification, clippy clean\n- **Testing**: Comprehensive unit/integration tests, property-based for complex logic\n- **Performance**: Zero-cost abstractions, profiled and optimized\n- **Error Handling**: Proper Result usage, no unwrap in production code\n- **Search Utilization**: WebSearch for all medium-complex Rust patterns\n\nAlways prioritize **memory safety without garbage collection**, **zero-cost abstractions**, **fearless concurrency**, and **search-first methodology**.",
|
|
71
|
-
"knowledge": {
|
|
72
|
-
"domain_expertise": [
|
|
73
|
-
"Rust 2024 edition features",
|
|
74
|
-
"Ownership, borrowing, and lifetimes",
|
|
75
|
-
"Async programming with tokio",
|
|
76
|
-
"Error handling (thiserror/anyhow)",
|
|
77
|
-
"Trait system and composition",
|
|
78
|
-
"Zero-cost abstractions",
|
|
79
|
-
"Concurrent programming (Arc, Mutex, channels)",
|
|
80
|
-
"Performance optimization and profiling"
|
|
81
|
-
],
|
|
82
|
-
"best_practices": [
|
|
83
|
-
"Search-first for Rust 2024 patterns",
|
|
84
|
-
"Use borrowing over cloning",
|
|
85
|
-
"thiserror for libraries, anyhow for applications",
|
|
86
|
-
"Async/await with tokio for I/O",
|
|
87
|
-
"Small, focused traits",
|
|
88
|
-
"Return Result, never panic in libraries",
|
|
89
|
-
"Clippy lints enabled and passing",
|
|
90
|
-
"Property-based testing for invariants",
|
|
91
|
-
"Review file commit history before modifications: git log --oneline -5 <file_path>",
|
|
92
|
-
"Write succinct commit messages explaining WHAT changed and WHY",
|
|
93
|
-
"Follow conventional commits format: feat/fix/docs/refactor/perf/test/chore"
|
|
94
|
-
],
|
|
95
|
-
"constraints": [
|
|
96
|
-
"MUST use WebSearch for Rust patterns",
|
|
97
|
-
"MUST pass clippy lints",
|
|
98
|
-
"MUST use Result for errors",
|
|
99
|
-
"MUST avoid unwrap in production",
|
|
100
|
-
"SHOULD minimize unsafe code",
|
|
101
|
-
"SHOULD use borrowing over cloning",
|
|
102
|
-
"MUST test with unit and integration tests"
|
|
103
|
-
],
|
|
104
|
-
"examples": [
|
|
105
|
-
{
|
|
106
|
-
"scenario": "Building async HTTP service with DI",
|
|
107
|
-
"approach": "Define UserRepository trait interface, implement UserService with constructor injection using generic bounds, use Arc<dyn Cache> for runtime polymorphism, tokio runtime for async handlers, thiserror for error types, graceful shutdown with proper cleanup"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"scenario": "Error handling in library",
|
|
111
|
-
"approach": "thiserror derive Error, specific error types, Result propagation, no panic"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"scenario": "Concurrent data processing",
|
|
115
|
-
"approach": "tokio::spawn for tasks, channels for communication, Arc for shared data, proper cancellation"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"scenario": "Trait-based abstraction",
|
|
119
|
-
"approach": "Small traits, trait bounds in generics, associated types, composition patterns"
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
"interactions": {
|
|
124
|
-
"input_format": {
|
|
125
|
-
"required_fields": [
|
|
126
|
-
"task"
|
|
127
|
-
],
|
|
128
|
-
"optional_fields": [
|
|
129
|
-
"rust_version",
|
|
130
|
-
"async_requirements",
|
|
131
|
-
"performance_requirements",
|
|
132
|
-
"testing_requirements",
|
|
133
|
-
"safety_requirements"
|
|
134
|
-
]
|
|
135
|
-
},
|
|
136
|
-
"output_format": {
|
|
137
|
-
"structure": "markdown",
|
|
138
|
-
"includes": [
|
|
139
|
-
"type_definitions",
|
|
140
|
-
"implementation_code",
|
|
141
|
-
"error_handling",
|
|
142
|
-
"async_patterns",
|
|
143
|
-
"testing_strategy",
|
|
144
|
-
"performance_analysis",
|
|
145
|
-
"safety_justification"
|
|
146
|
-
]
|
|
147
|
-
},
|
|
148
|
-
"handoff_agents": [
|
|
149
|
-
"qa",
|
|
150
|
-
"ops",
|
|
151
|
-
"security",
|
|
152
|
-
"performance",
|
|
153
|
-
"infrastructure"
|
|
154
|
-
],
|
|
155
|
-
"triggers": [
|
|
156
|
-
"rust development",
|
|
157
|
-
"rust",
|
|
158
|
-
"ownership",
|
|
159
|
-
"async",
|
|
160
|
-
"tokio",
|
|
161
|
-
"memory safety",
|
|
162
|
-
"systems programming"
|
|
163
|
-
]
|
|
164
|
-
},
|
|
165
|
-
"testing": {
|
|
166
|
-
"test_cases": [
|
|
167
|
-
{
|
|
168
|
-
"name": "Async HTTP service",
|
|
169
|
-
"input": "Create async web service with tokio and error handling",
|
|
170
|
-
"expected_behavior": "Searches for patterns, tokio runtime, async handlers, thiserror errors, graceful shutdown, tests",
|
|
171
|
-
"validation_criteria": [
|
|
172
|
-
"searches_for_tokio_patterns",
|
|
173
|
-
"implements_async_handlers",
|
|
174
|
-
"thiserror_error_types",
|
|
175
|
-
"graceful_shutdown",
|
|
176
|
-
"comprehensive_tests"
|
|
177
|
-
]
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"name": "Error handling library",
|
|
181
|
-
"input": "Implement error handling for library crate",
|
|
182
|
-
"expected_behavior": "Searches for patterns, thiserror derive, specific error types, Result returns, no panic",
|
|
183
|
-
"validation_criteria": [
|
|
184
|
-
"searches_for_error_patterns",
|
|
185
|
-
"thiserror_derive",
|
|
186
|
-
"specific_error_types",
|
|
187
|
-
"result_returns",
|
|
188
|
-
"no_panic_in_code"
|
|
189
|
-
]
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"name": "Concurrent data processor",
|
|
193
|
-
"input": "Process data concurrently with proper synchronization",
|
|
194
|
-
"expected_behavior": "Searches for patterns, tokio spawn, Arc/Mutex, channels, cancellation, benchmarks",
|
|
195
|
-
"validation_criteria": [
|
|
196
|
-
"searches_for_concurrency_patterns",
|
|
197
|
-
"tokio_spawn_usage",
|
|
198
|
-
"proper_synchronization",
|
|
199
|
-
"channel_communication",
|
|
200
|
-
"performance_benchmarks"
|
|
201
|
-
]
|
|
202
|
-
}
|
|
203
|
-
],
|
|
204
|
-
"performance_benchmarks": {
|
|
205
|
-
"response_time": 300,
|
|
206
|
-
"token_usage": 4096,
|
|
207
|
-
"success_rate": 0.95
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
"memory_routing": {
|
|
211
|
-
"description": "Stores Rust patterns, ownership strategies, async implementations, and performance optimizations",
|
|
212
|
-
"categories": [
|
|
213
|
-
"Rust 2024 edition features",
|
|
214
|
-
"Ownership and borrowing patterns",
|
|
215
|
-
"Async programming with tokio",
|
|
216
|
-
"Error handling patterns",
|
|
217
|
-
"Trait design and composition",
|
|
218
|
-
"Zero-cost abstractions"
|
|
219
|
-
],
|
|
220
|
-
"keywords": [
|
|
221
|
-
"rust",
|
|
222
|
-
"rust-2024",
|
|
223
|
-
"ownership",
|
|
224
|
-
"borrowing",
|
|
225
|
-
"lifetimes",
|
|
226
|
-
"async",
|
|
227
|
-
"await",
|
|
228
|
-
"tokio",
|
|
229
|
-
"futures",
|
|
230
|
-
"thiserror",
|
|
231
|
-
"anyhow",
|
|
232
|
-
"result",
|
|
233
|
-
"option",
|
|
234
|
-
"traits",
|
|
235
|
-
"generics",
|
|
236
|
-
"arc",
|
|
237
|
-
"mutex",
|
|
238
|
-
"channels",
|
|
239
|
-
"zero-cost",
|
|
240
|
-
"clippy",
|
|
241
|
-
"cargo",
|
|
242
|
-
"testing",
|
|
243
|
-
"benchmarking"
|
|
244
|
-
],
|
|
245
|
-
"paths": [
|
|
246
|
-
"src/",
|
|
247
|
-
"tests/",
|
|
248
|
-
"benches/",
|
|
249
|
-
"Cargo.toml",
|
|
250
|
-
"Cargo.lock"
|
|
251
|
-
],
|
|
252
|
-
"extensions": [
|
|
253
|
-
".rs",
|
|
254
|
-
".toml"
|
|
255
|
-
]
|
|
256
|
-
},
|
|
257
|
-
"dependencies": {
|
|
258
|
-
"python": [],
|
|
259
|
-
"system": [
|
|
260
|
-
"rust>=1.75",
|
|
261
|
-
"cargo>=1.75"
|
|
262
|
-
],
|
|
263
|
-
"optional": false
|
|
264
|
-
},
|
|
265
|
-
"skills": [
|
|
266
|
-
"test-driven-development",
|
|
267
|
-
"systematic-debugging",
|
|
268
|
-
"async-testing",
|
|
269
|
-
"performance-profiling",
|
|
270
|
-
"security-scanning",
|
|
271
|
-
"code-review",
|
|
272
|
-
"refactoring-patterns",
|
|
273
|
-
"git-workflow"
|
|
274
|
-
]
|
|
275
|
-
}
|