claude-mpm 4.7.4__py3-none-any.whl → 4.18.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_AGENT_TEMPLATE.md +118 -0
- claude_mpm/agents/BASE_ENGINEER.md +286 -0
- claude_mpm/agents/BASE_PM.md +106 -1
- claude_mpm/agents/OUTPUT_STYLE.md +329 -11
- claude_mpm/agents/PM_INSTRUCTIONS.md +397 -459
- claude_mpm/agents/agent_loader.py +17 -5
- claude_mpm/agents/frontmatter_validator.py +284 -253
- claude_mpm/agents/templates/README.md +465 -0
- claude_mpm/agents/templates/agent-manager.json +4 -1
- claude_mpm/agents/templates/agentic-coder-optimizer.json +13 -3
- claude_mpm/agents/templates/api_qa.json +11 -2
- claude_mpm/agents/templates/circuit_breakers.md +638 -0
- claude_mpm/agents/templates/clerk-ops.json +12 -2
- claude_mpm/agents/templates/code_analyzer.json +8 -2
- claude_mpm/agents/templates/content-agent.json +358 -0
- claude_mpm/agents/templates/dart_engineer.json +15 -2
- claude_mpm/agents/templates/data_engineer.json +15 -2
- claude_mpm/agents/templates/documentation.json +10 -2
- claude_mpm/agents/templates/engineer.json +21 -1
- claude_mpm/agents/templates/gcp_ops_agent.json +12 -2
- claude_mpm/agents/templates/git_file_tracking.md +584 -0
- claude_mpm/agents/templates/golang_engineer.json +270 -0
- claude_mpm/agents/templates/imagemagick.json +4 -1
- claude_mpm/agents/templates/java_engineer.json +346 -0
- claude_mpm/agents/templates/local_ops_agent.json +1227 -6
- claude_mpm/agents/templates/memory_manager.json +4 -1
- claude_mpm/agents/templates/nextjs_engineer.json +141 -133
- claude_mpm/agents/templates/ops.json +12 -2
- claude_mpm/agents/templates/php-engineer.json +270 -174
- claude_mpm/agents/templates/pm_examples.md +474 -0
- claude_mpm/agents/templates/pm_red_flags.md +240 -0
- claude_mpm/agents/templates/product_owner.json +338 -0
- claude_mpm/agents/templates/project_organizer.json +14 -4
- claude_mpm/agents/templates/prompt-engineer.json +13 -2
- claude_mpm/agents/templates/python_engineer.json +174 -81
- claude_mpm/agents/templates/qa.json +11 -2
- claude_mpm/agents/templates/react_engineer.json +16 -3
- claude_mpm/agents/templates/refactoring_engineer.json +12 -2
- claude_mpm/agents/templates/research.json +34 -21
- claude_mpm/agents/templates/response_format.md +583 -0
- claude_mpm/agents/templates/ruby-engineer.json +129 -192
- claude_mpm/agents/templates/rust_engineer.json +270 -0
- claude_mpm/agents/templates/security.json +10 -2
- claude_mpm/agents/templates/svelte-engineer.json +225 -0
- claude_mpm/agents/templates/ticketing.json +10 -2
- claude_mpm/agents/templates/typescript_engineer.json +116 -125
- claude_mpm/agents/templates/validation_templates.md +312 -0
- claude_mpm/agents/templates/vercel_ops_agent.json +12 -2
- claude_mpm/agents/templates/version_control.json +12 -2
- claude_mpm/agents/templates/web_qa.json +11 -2
- claude_mpm/agents/templates/web_ui.json +15 -2
- claude_mpm/cli/__init__.py +34 -614
- claude_mpm/cli/commands/agent_manager.py +25 -12
- claude_mpm/cli/commands/agent_state_manager.py +186 -0
- claude_mpm/cli/commands/agents.py +235 -148
- claude_mpm/cli/commands/agents_detect.py +380 -0
- claude_mpm/cli/commands/agents_recommend.py +309 -0
- claude_mpm/cli/commands/aggregate.py +7 -3
- claude_mpm/cli/commands/analyze.py +9 -4
- claude_mpm/cli/commands/analyze_code.py +7 -2
- claude_mpm/cli/commands/auto_configure.py +570 -0
- claude_mpm/cli/commands/config.py +47 -13
- claude_mpm/cli/commands/configure.py +419 -1571
- claude_mpm/cli/commands/configure_agent_display.py +261 -0
- claude_mpm/cli/commands/configure_behavior_manager.py +204 -0
- claude_mpm/cli/commands/configure_hook_manager.py +225 -0
- claude_mpm/cli/commands/configure_models.py +18 -0
- claude_mpm/cli/commands/configure_navigation.py +167 -0
- claude_mpm/cli/commands/configure_paths.py +104 -0
- claude_mpm/cli/commands/configure_persistence.py +254 -0
- claude_mpm/cli/commands/configure_startup_manager.py +646 -0
- claude_mpm/cli/commands/configure_template_editor.py +497 -0
- claude_mpm/cli/commands/configure_validators.py +73 -0
- claude_mpm/cli/commands/local_deploy.py +537 -0
- claude_mpm/cli/commands/memory.py +54 -20
- claude_mpm/cli/commands/mpm_init.py +585 -196
- claude_mpm/cli/commands/mpm_init_handler.py +37 -3
- claude_mpm/cli/commands/search.py +170 -4
- claude_mpm/cli/commands/upgrade.py +152 -0
- claude_mpm/cli/executor.py +202 -0
- claude_mpm/cli/helpers.py +105 -0
- claude_mpm/cli/interactive/__init__.py +3 -0
- claude_mpm/cli/interactive/skills_wizard.py +491 -0
- claude_mpm/cli/parsers/__init__.py +7 -1
- claude_mpm/cli/parsers/agents_parser.py +9 -0
- claude_mpm/cli/parsers/auto_configure_parser.py +245 -0
- claude_mpm/cli/parsers/base_parser.py +110 -3
- claude_mpm/cli/parsers/local_deploy_parser.py +227 -0
- claude_mpm/cli/parsers/mpm_init_parser.py +65 -5
- claude_mpm/cli/shared/output_formatters.py +28 -19
- claude_mpm/cli/startup.py +481 -0
- claude_mpm/cli/utils.py +52 -1
- claude_mpm/commands/mpm-agents-detect.md +168 -0
- claude_mpm/commands/mpm-agents-recommend.md +214 -0
- claude_mpm/commands/mpm-agents.md +75 -1
- claude_mpm/commands/mpm-auto-configure.md +217 -0
- claude_mpm/commands/mpm-help.md +163 -0
- claude_mpm/commands/mpm-init.md +148 -3
- claude_mpm/commands/mpm-version.md +113 -0
- claude_mpm/commands/mpm.md +1 -0
- claude_mpm/config/agent_config.py +2 -2
- claude_mpm/config/model_config.py +428 -0
- claude_mpm/constants.py +1 -0
- claude_mpm/core/base_service.py +13 -12
- claude_mpm/core/enums.py +452 -0
- claude_mpm/core/factories.py +1 -1
- claude_mpm/core/instruction_reinforcement_hook.py +2 -1
- claude_mpm/core/interactive_session.py +9 -3
- claude_mpm/core/log_manager.py +2 -0
- claude_mpm/core/logging_config.py +6 -2
- claude_mpm/core/oneshot_session.py +8 -4
- claude_mpm/core/optimized_agent_loader.py +3 -3
- claude_mpm/core/output_style_manager.py +12 -192
- claude_mpm/core/service_registry.py +5 -1
- claude_mpm/core/types.py +2 -9
- claude_mpm/core/typing_utils.py +7 -6
- claude_mpm/dashboard/static/js/dashboard.js +0 -14
- claude_mpm/dashboard/templates/index.html +3 -41
- claude_mpm/hooks/__init__.py +20 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +4 -2
- claude_mpm/hooks/claude_hooks/response_tracking.py +35 -1
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +23 -2
- claude_mpm/hooks/failure_learning/__init__.py +60 -0
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +235 -0
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +217 -0
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +286 -0
- claude_mpm/hooks/instruction_reinforcement.py +7 -2
- claude_mpm/hooks/kuzu_enrichment_hook.py +263 -0
- claude_mpm/hooks/kuzu_memory_hook.py +37 -12
- claude_mpm/hooks/kuzu_response_hook.py +183 -0
- claude_mpm/models/resume_log.py +340 -0
- claude_mpm/services/agents/__init__.py +18 -5
- claude_mpm/services/agents/auto_config_manager.py +796 -0
- claude_mpm/services/agents/deployment/agent_configuration_manager.py +1 -1
- claude_mpm/services/agents/deployment/agent_record_service.py +1 -1
- claude_mpm/services/agents/deployment/agent_validator.py +17 -1
- claude_mpm/services/agents/deployment/async_agent_deployment.py +1 -1
- claude_mpm/services/agents/deployment/interface_adapter.py +3 -2
- claude_mpm/services/agents/deployment/local_template_deployment.py +1 -1
- claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +7 -6
- claude_mpm/services/agents/deployment/pipeline/steps/base_step.py +7 -16
- claude_mpm/services/agents/deployment/pipeline/steps/configuration_step.py +4 -3
- claude_mpm/services/agents/deployment/pipeline/steps/target_directory_step.py +5 -3
- claude_mpm/services/agents/deployment/pipeline/steps/validation_step.py +6 -5
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +9 -6
- claude_mpm/services/agents/deployment/validation/__init__.py +3 -1
- claude_mpm/services/agents/deployment/validation/validation_result.py +1 -9
- claude_mpm/services/agents/local_template_manager.py +1 -1
- claude_mpm/services/agents/memory/agent_memory_manager.py +5 -2
- claude_mpm/services/agents/observers.py +547 -0
- claude_mpm/services/agents/recommender.py +568 -0
- claude_mpm/services/agents/registry/modification_tracker.py +5 -2
- claude_mpm/services/command_handler_service.py +11 -5
- claude_mpm/services/core/__init__.py +33 -1
- claude_mpm/services/core/interfaces/__init__.py +90 -3
- claude_mpm/services/core/interfaces/agent.py +184 -0
- claude_mpm/services/core/interfaces/health.py +172 -0
- claude_mpm/services/core/interfaces/model.py +281 -0
- claude_mpm/services/core/interfaces/process.py +372 -0
- claude_mpm/services/core/interfaces/project.py +121 -0
- claude_mpm/services/core/interfaces/restart.py +307 -0
- claude_mpm/services/core/interfaces/stability.py +260 -0
- claude_mpm/services/core/memory_manager.py +11 -24
- claude_mpm/services/core/models/__init__.py +79 -0
- claude_mpm/services/core/models/agent_config.py +381 -0
- claude_mpm/services/core/models/health.py +162 -0
- claude_mpm/services/core/models/process.py +235 -0
- claude_mpm/services/core/models/restart.py +302 -0
- claude_mpm/services/core/models/stability.py +264 -0
- claude_mpm/services/core/models/toolchain.py +306 -0
- claude_mpm/services/core/path_resolver.py +23 -7
- claude_mpm/services/diagnostics/__init__.py +2 -2
- claude_mpm/services/diagnostics/checks/agent_check.py +25 -24
- claude_mpm/services/diagnostics/checks/claude_code_check.py +24 -23
- claude_mpm/services/diagnostics/checks/common_issues_check.py +25 -24
- claude_mpm/services/diagnostics/checks/configuration_check.py +24 -23
- claude_mpm/services/diagnostics/checks/filesystem_check.py +18 -17
- claude_mpm/services/diagnostics/checks/installation_check.py +30 -29
- claude_mpm/services/diagnostics/checks/instructions_check.py +20 -19
- claude_mpm/services/diagnostics/checks/mcp_check.py +50 -36
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +38 -33
- claude_mpm/services/diagnostics/checks/monitor_check.py +23 -22
- claude_mpm/services/diagnostics/checks/startup_log_check.py +9 -8
- claude_mpm/services/diagnostics/diagnostic_runner.py +6 -5
- claude_mpm/services/diagnostics/doctor_reporter.py +28 -25
- claude_mpm/services/diagnostics/models.py +19 -24
- claude_mpm/services/infrastructure/monitoring/__init__.py +1 -1
- claude_mpm/services/infrastructure/monitoring/aggregator.py +12 -12
- claude_mpm/services/infrastructure/monitoring/base.py +5 -13
- claude_mpm/services/infrastructure/monitoring/network.py +7 -6
- claude_mpm/services/infrastructure/monitoring/process.py +13 -12
- claude_mpm/services/infrastructure/monitoring/resources.py +7 -6
- claude_mpm/services/infrastructure/monitoring/service.py +16 -15
- claude_mpm/services/infrastructure/resume_log_generator.py +439 -0
- claude_mpm/services/local_ops/__init__.py +163 -0
- claude_mpm/services/local_ops/crash_detector.py +257 -0
- claude_mpm/services/local_ops/health_checks/__init__.py +28 -0
- claude_mpm/services/local_ops/health_checks/http_check.py +224 -0
- claude_mpm/services/local_ops/health_checks/process_check.py +236 -0
- claude_mpm/services/local_ops/health_checks/resource_check.py +255 -0
- claude_mpm/services/local_ops/health_manager.py +430 -0
- claude_mpm/services/local_ops/log_monitor.py +396 -0
- claude_mpm/services/local_ops/memory_leak_detector.py +294 -0
- claude_mpm/services/local_ops/process_manager.py +595 -0
- claude_mpm/services/local_ops/resource_monitor.py +331 -0
- claude_mpm/services/local_ops/restart_manager.py +401 -0
- claude_mpm/services/local_ops/restart_policy.py +387 -0
- claude_mpm/services/local_ops/state_manager.py +372 -0
- claude_mpm/services/local_ops/unified_manager.py +600 -0
- claude_mpm/services/mcp_config_manager.py +9 -4
- claude_mpm/services/mcp_gateway/core/__init__.py +1 -2
- claude_mpm/services/mcp_gateway/core/base.py +18 -31
- claude_mpm/services/mcp_gateway/main.py +30 -0
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +206 -32
- claude_mpm/services/mcp_gateway/tools/health_check_tool.py +30 -28
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +25 -5
- claude_mpm/services/mcp_service_verifier.py +1 -1
- claude_mpm/services/memory/failure_tracker.py +563 -0
- claude_mpm/services/memory_hook_service.py +165 -4
- claude_mpm/services/model/__init__.py +147 -0
- claude_mpm/services/model/base_provider.py +365 -0
- claude_mpm/services/model/claude_provider.py +412 -0
- claude_mpm/services/model/model_router.py +453 -0
- claude_mpm/services/model/ollama_provider.py +415 -0
- claude_mpm/services/monitor/daemon_manager.py +3 -2
- claude_mpm/services/monitor/handlers/dashboard.py +2 -1
- claude_mpm/services/monitor/handlers/hooks.py +2 -1
- claude_mpm/services/monitor/management/lifecycle.py +3 -2
- claude_mpm/services/monitor/server.py +2 -1
- claude_mpm/services/project/__init__.py +23 -0
- claude_mpm/services/project/detection_strategies.py +719 -0
- claude_mpm/services/project/toolchain_analyzer.py +581 -0
- claude_mpm/services/self_upgrade_service.py +342 -0
- claude_mpm/services/session_management_service.py +3 -2
- claude_mpm/services/session_manager.py +205 -1
- claude_mpm/services/shared/async_service_base.py +16 -27
- claude_mpm/services/shared/lifecycle_service_base.py +1 -14
- claude_mpm/services/socketio/handlers/__init__.py +5 -2
- claude_mpm/services/socketio/handlers/hook.py +13 -2
- claude_mpm/services/socketio/handlers/registry.py +4 -2
- claude_mpm/services/socketio/server/main.py +10 -8
- claude_mpm/services/subprocess_launcher_service.py +14 -5
- claude_mpm/services/unified/analyzer_strategies/code_analyzer.py +8 -7
- claude_mpm/services/unified/analyzer_strategies/dependency_analyzer.py +6 -5
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +8 -7
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +7 -6
- claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +5 -4
- claude_mpm/services/unified/config_strategies/validation_strategy.py +13 -9
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +10 -3
- claude_mpm/services/unified/deployment_strategies/local.py +6 -5
- claude_mpm/services/unified/deployment_strategies/utils.py +6 -5
- claude_mpm/services/unified/deployment_strategies/vercel.py +7 -6
- claude_mpm/services/unified/interfaces.py +3 -1
- claude_mpm/services/unified/unified_analyzer.py +14 -10
- claude_mpm/services/unified/unified_config.py +2 -1
- claude_mpm/services/unified/unified_deployment.py +9 -4
- claude_mpm/services/version_service.py +104 -1
- claude_mpm/skills/__init__.py +21 -0
- claude_mpm/skills/bundled/__init__.py +6 -0
- claude_mpm/skills/bundled/api-documentation.md +393 -0
- claude_mpm/skills/bundled/async-testing.md +571 -0
- claude_mpm/skills/bundled/code-review.md +143 -0
- claude_mpm/skills/bundled/database-migration.md +199 -0
- claude_mpm/skills/bundled/docker-containerization.md +194 -0
- claude_mpm/skills/bundled/express-local-dev.md +1429 -0
- claude_mpm/skills/bundled/fastapi-local-dev.md +1199 -0
- claude_mpm/skills/bundled/git-workflow.md +414 -0
- claude_mpm/skills/bundled/imagemagick.md +204 -0
- claude_mpm/skills/bundled/json-data-handling.md +223 -0
- claude_mpm/skills/bundled/nextjs-local-dev.md +807 -0
- claude_mpm/skills/bundled/pdf.md +141 -0
- claude_mpm/skills/bundled/performance-profiling.md +567 -0
- claude_mpm/skills/bundled/refactoring-patterns.md +180 -0
- claude_mpm/skills/bundled/security-scanning.md +327 -0
- claude_mpm/skills/bundled/systematic-debugging.md +473 -0
- claude_mpm/skills/bundled/test-driven-development.md +378 -0
- claude_mpm/skills/bundled/vite-local-dev.md +1061 -0
- claude_mpm/skills/bundled/web-performance-optimization.md +2305 -0
- claude_mpm/skills/bundled/xlsx.md +157 -0
- claude_mpm/skills/registry.py +286 -0
- claude_mpm/skills/skill_manager.py +310 -0
- claude_mpm/storage/state_storage.py +15 -15
- claude_mpm/tools/code_tree_analyzer.py +177 -141
- claude_mpm/tools/code_tree_events.py +4 -2
- claude_mpm/utils/agent_dependency_loader.py +40 -20
- claude_mpm/utils/display_helper.py +260 -0
- claude_mpm/utils/git_analyzer.py +407 -0
- claude_mpm/utils/robust_installer.py +73 -19
- {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/METADATA +129 -12
- {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/RECORD +295 -193
- claude_mpm/dashboard/static/css/code-tree.css +0 -1639
- claude_mpm/dashboard/static/index-hub-backup.html +0 -713
- claude_mpm/dashboard/static/js/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/js/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/js/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/js/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/js/components/code-tree.js +0 -5869
- claude_mpm/dashboard/static/js/components/code-viewer.js +0 -1386
- claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +0 -425
- claude_mpm/hooks/claude_hooks/hook_handler_original.py +0 -1041
- claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +0 -347
- claude_mpm/services/agents/deployment/agent_lifecycle_manager_refactored.py +0 -575
- claude_mpm/services/project/analyzer_refactored.py +0 -450
- {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/WHEEL +0 -0
- {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.7.4.dist-info → claude_mpm-4.18.2.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.
|
|
1
|
+
4.18.2
|
|
@@ -139,6 +139,124 @@ End every response with this structured data:
|
|
|
139
139
|
❌ Never read files >1MB or process in parallel
|
|
140
140
|
❌ Never retain content after extraction
|
|
141
141
|
|
|
142
|
+
## Git Commit Protocol
|
|
143
|
+
|
|
144
|
+
### Pre-Modification Review (MANDATORY)
|
|
145
|
+
|
|
146
|
+
**Before modifying any file, you MUST**:
|
|
147
|
+
1. **Review recent commit history**: `git log --oneline -5 <file_path>`
|
|
148
|
+
2. **Understand context**: What was changed and why
|
|
149
|
+
3. **Check for patterns**: Ongoing work or related changes
|
|
150
|
+
4. **Identify dependencies**: Related commits or issues
|
|
151
|
+
|
|
152
|
+
**Example**:
|
|
153
|
+
```bash
|
|
154
|
+
# Before editing src/services/auth.py
|
|
155
|
+
git log --oneline -5 src/services/auth.py
|
|
156
|
+
# Output shows: Recent security updates, refactoring, bug fixes
|
|
157
|
+
# Context: Understand recent changes before modifying
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Commit Message Standards (MANDATORY)
|
|
161
|
+
|
|
162
|
+
**Every commit MUST include**:
|
|
163
|
+
1. **WHAT**: Succinct summary of changes (50 characters or less)
|
|
164
|
+
2. **WHY**: Explanation of rationale and problem solved
|
|
165
|
+
3. **FORMAT**: Conventional commits (feat/fix/docs/refactor/perf/test/chore)
|
|
166
|
+
|
|
167
|
+
**Commit Message Structure**:
|
|
168
|
+
```
|
|
169
|
+
type(scope): brief description
|
|
170
|
+
|
|
171
|
+
- Detail 1: What changed
|
|
172
|
+
- Detail 2: Why it changed
|
|
173
|
+
- Detail 3: Impact or considerations
|
|
174
|
+
|
|
175
|
+
🤖👥 Generated with [Claude MPM](https://github.com/bobmatnyc/claude-mpm)
|
|
176
|
+
|
|
177
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Commit Types**:
|
|
181
|
+
- `feat:` New features or capabilities
|
|
182
|
+
- `fix:` Bug fixes
|
|
183
|
+
- `docs:` Documentation changes
|
|
184
|
+
- `refactor:` Code restructuring without behavior change
|
|
185
|
+
- `perf:` Performance improvements
|
|
186
|
+
- `test:` Test additions or modifications
|
|
187
|
+
- `chore:` Maintenance tasks (dependencies, config, build)
|
|
188
|
+
|
|
189
|
+
### Commit Quality Examples
|
|
190
|
+
|
|
191
|
+
**✅ GOOD Commit Messages**:
|
|
192
|
+
```
|
|
193
|
+
feat: enhance sliding window pattern with edge cases
|
|
194
|
+
|
|
195
|
+
- Added if not s: return 0 edge case handling
|
|
196
|
+
- Step-by-step comments explaining window expansion/contraction
|
|
197
|
+
- Improves pattern clarity for Longest Substring test
|
|
198
|
+
|
|
199
|
+
Fixes: python_medium_03 test failure (score 4.63 → 7.5+)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
fix: resolve race condition in log cleanup test
|
|
204
|
+
|
|
205
|
+
- Added asyncio.sleep(0.1) to allow cleanup completion
|
|
206
|
+
- Prevents intermittent test failures
|
|
207
|
+
- Affects test_directory_structure_verification
|
|
208
|
+
|
|
209
|
+
Related: Issue #42 - Intermittent test failures
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**❌ BAD Commit Messages**:
|
|
213
|
+
```
|
|
214
|
+
update file # No context - what file? what update? why?
|
|
215
|
+
fix # What was fixed? How? Why?
|
|
216
|
+
changes # What changes? Why needed?
|
|
217
|
+
wip # Work in progress - commit when complete
|
|
218
|
+
minor tweaks # Not descriptive - be specific
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Pre-Commit Checklist
|
|
222
|
+
|
|
223
|
+
**Never commit without**:
|
|
224
|
+
- [ ] Reviewed recent file history (`git log --oneline -5 <file>`)
|
|
225
|
+
- [ ] Understood context of changes and recent work
|
|
226
|
+
- [ ] Written explanatory commit message (WHAT + WHY)
|
|
227
|
+
- [ ] Followed conventional commits format
|
|
228
|
+
- [ ] Verified changes don't conflict with recent commits
|
|
229
|
+
|
|
230
|
+
### Git History as Context
|
|
231
|
+
|
|
232
|
+
**Use commit history to**:
|
|
233
|
+
- Understand file evolution and design decisions
|
|
234
|
+
- Identify related changes across multiple commits
|
|
235
|
+
- Recognize ongoing refactoring or feature development
|
|
236
|
+
- Avoid conflicting changes or undoing recent work
|
|
237
|
+
- Learn from previous commit message patterns
|
|
238
|
+
- Discover why certain approaches were chosen or avoided
|
|
239
|
+
|
|
240
|
+
**Example Workflow**:
|
|
241
|
+
```bash
|
|
242
|
+
# 1. Review file history before changes
|
|
243
|
+
git log --oneline -10 src/agents/engineer.py
|
|
244
|
+
|
|
245
|
+
# 2. Understand recent work
|
|
246
|
+
# Output: "feat: add async patterns", "fix: handle edge cases", etc.
|
|
247
|
+
|
|
248
|
+
# 3. Make your changes with context
|
|
249
|
+
|
|
250
|
+
# 4. Write commit message explaining WHAT and WHY
|
|
251
|
+
git commit -m "refactor: extract validation logic to helper function
|
|
252
|
+
|
|
253
|
+
- Moved duplicate validation code to _validate_input()
|
|
254
|
+
- Improves code reusability and testing
|
|
255
|
+
- Follows pattern established in commit abc123f
|
|
256
|
+
|
|
257
|
+
Builds on: Recent validation improvements (last 3 commits)"
|
|
258
|
+
```
|
|
259
|
+
|
|
142
260
|
## TodoWrite Protocol
|
|
143
261
|
|
|
144
262
|
### Required Prefix Format
|
|
@@ -262,6 +262,292 @@ Before writing ANY fix or optimization, you MUST:
|
|
|
262
262
|
- **Test Coverage**: Minimum 80% for new code
|
|
263
263
|
- **Documentation**: All public APIs must have docstrings
|
|
264
264
|
|
|
265
|
+
## Engineering Quality Documentation Standards
|
|
266
|
+
|
|
267
|
+
All engineers must provide comprehensive documentation for implementations. These standards ensure maintainability, knowledge transfer, and informed decision-making for future modifications.
|
|
268
|
+
|
|
269
|
+
### Design Decision Documentation (MANDATORY)
|
|
270
|
+
|
|
271
|
+
Every significant implementation must document:
|
|
272
|
+
|
|
273
|
+
**Architectural Choices and Reasoning**
|
|
274
|
+
- Explain WHY you chose this approach over alternatives
|
|
275
|
+
- Document the problem context that influenced the decision
|
|
276
|
+
- Link design to business requirements or technical constraints
|
|
277
|
+
|
|
278
|
+
**Alternatives Considered**
|
|
279
|
+
- List other approaches evaluated during design
|
|
280
|
+
- Explain why each alternative was rejected
|
|
281
|
+
- Note any assumptions that might invalidate the current choice
|
|
282
|
+
|
|
283
|
+
**Trade-offs Analysis**
|
|
284
|
+
- **Performance vs. Maintainability**: Document speed vs. readability choices
|
|
285
|
+
- **Complexity vs. Flexibility**: Note when simplicity was chosen over extensibility
|
|
286
|
+
- **Memory vs. Speed**: Explain resource allocation decisions
|
|
287
|
+
- **Time vs. Quality**: Acknowledge technical debt taken for deadlines
|
|
288
|
+
|
|
289
|
+
**Future Extensibility**
|
|
290
|
+
- Identify extension points for anticipated changes
|
|
291
|
+
- Document which parts are designed to be stable vs. flexible
|
|
292
|
+
- Note refactoring opportunities for future consideration
|
|
293
|
+
|
|
294
|
+
**Example**:
|
|
295
|
+
```python
|
|
296
|
+
class CacheManager:
|
|
297
|
+
"""
|
|
298
|
+
Design Decision: In-memory LRU cache with TTL
|
|
299
|
+
|
|
300
|
+
Rationale: Selected in-memory caching for sub-millisecond access times
|
|
301
|
+
required by API SLA (<50ms p99 latency). Rejected Redis to avoid
|
|
302
|
+
network latency and operational complexity for this use case.
|
|
303
|
+
|
|
304
|
+
Trade-offs:
|
|
305
|
+
- Performance: O(1) access vs. Redis ~1-2ms network round-trip
|
|
306
|
+
- Scalability: Limited to single-node memory vs. distributed cache
|
|
307
|
+
- Persistence: Loses cache on restart vs. Redis durability
|
|
308
|
+
|
|
309
|
+
Alternatives Considered:
|
|
310
|
+
1. Redis: Rejected due to network latency and ops overhead
|
|
311
|
+
2. SQLite: Rejected due to disk I/O bottleneck on writes
|
|
312
|
+
3. No caching: Rejected due to database query load (2000+ QPS)
|
|
313
|
+
|
|
314
|
+
Extension Points: Cache backend interface allows future Redis migration
|
|
315
|
+
if horizontal scaling becomes necessary (>10K QPS threshold).
|
|
316
|
+
"""
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Performance Analysis (RECOMMENDED)
|
|
320
|
+
|
|
321
|
+
For algorithms and critical paths, provide:
|
|
322
|
+
|
|
323
|
+
**Complexity Analysis**
|
|
324
|
+
- **Time Complexity**: Big-O notation for all operations
|
|
325
|
+
- Best case, average case, worst case
|
|
326
|
+
- Explain what factors influence complexity
|
|
327
|
+
- **Space Complexity**: Memory usage characteristics
|
|
328
|
+
- Auxiliary space requirements
|
|
329
|
+
- Scalability limits based on input size
|
|
330
|
+
|
|
331
|
+
**Performance Metrics**
|
|
332
|
+
- Expected performance for typical workloads
|
|
333
|
+
- Benchmarks for critical operations
|
|
334
|
+
- Comparison to previous implementation (if refactoring)
|
|
335
|
+
|
|
336
|
+
**Bottleneck Identification**
|
|
337
|
+
- Known performance limitations
|
|
338
|
+
- Conditions that trigger worst-case behavior
|
|
339
|
+
- Scalability ceilings and their causes
|
|
340
|
+
|
|
341
|
+
**Example**:
|
|
342
|
+
```python
|
|
343
|
+
def binary_search(arr: list, target: int) -> int:
|
|
344
|
+
"""
|
|
345
|
+
Find target in sorted array using binary search.
|
|
346
|
+
|
|
347
|
+
Performance:
|
|
348
|
+
- Time Complexity: O(log n) average/worst case, O(1) best case
|
|
349
|
+
- Space Complexity: O(1) iterative implementation
|
|
350
|
+
|
|
351
|
+
Expected Performance:
|
|
352
|
+
- 1M elements: ~20 comparisons maximum
|
|
353
|
+
- 1B elements: ~30 comparisons maximum
|
|
354
|
+
|
|
355
|
+
Bottleneck: Array must be pre-sorted. If frequent insertions/deletions,
|
|
356
|
+
consider balanced tree structure (O(log n) insert vs. O(n) array insert).
|
|
357
|
+
"""
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Optimization Suggestions (RECOMMENDED)
|
|
361
|
+
|
|
362
|
+
Document future improvement opportunities:
|
|
363
|
+
|
|
364
|
+
**Potential Performance Improvements**
|
|
365
|
+
- Specific optimizations not yet implemented
|
|
366
|
+
- Conditions under which optimization becomes worthwhile
|
|
367
|
+
- Estimated performance gains if implemented
|
|
368
|
+
|
|
369
|
+
**Refactoring Opportunities**
|
|
370
|
+
- Code structure improvements identified during implementation
|
|
371
|
+
- Dependencies that could be reduced or eliminated
|
|
372
|
+
- Patterns that could be extracted for reuse
|
|
373
|
+
|
|
374
|
+
**Technical Debt Documentation**
|
|
375
|
+
- Shortcuts taken with explanation and remediation plan
|
|
376
|
+
- Areas needing cleanup or modernization
|
|
377
|
+
- Test coverage gaps and plan to address
|
|
378
|
+
|
|
379
|
+
**Scalability Considerations**
|
|
380
|
+
- Current capacity limits and how to exceed them
|
|
381
|
+
- Architectural changes needed for 10x/100x scale
|
|
382
|
+
- Resource utilization projections
|
|
383
|
+
|
|
384
|
+
**Example**:
|
|
385
|
+
```python
|
|
386
|
+
class ReportGenerator:
|
|
387
|
+
"""
|
|
388
|
+
Current Implementation: Synchronous PDF generation
|
|
389
|
+
|
|
390
|
+
Optimization Opportunities:
|
|
391
|
+
1. Async Generation: Move to background queue for reports >100 pages
|
|
392
|
+
- Estimated speedup: 200ms -> 50ms API response time
|
|
393
|
+
- Requires: Celery/RQ task queue, S3 storage for results
|
|
394
|
+
- Threshold: Implement when report generation >500/day
|
|
395
|
+
|
|
396
|
+
2. Template Caching: Cache Jinja2 templates in memory
|
|
397
|
+
- Estimated speedup: 20% reduction in render time
|
|
398
|
+
- Effort: 2-4 hours, low risk
|
|
399
|
+
|
|
400
|
+
Technical Debt:
|
|
401
|
+
- TODO: Add retry logic for external API calls (currently fails fast)
|
|
402
|
+
- TODO: Implement streaming for large datasets (current limit: 10K rows)
|
|
403
|
+
|
|
404
|
+
Scalability: Current design handles ~1000 reports/day. For >5000/day,
|
|
405
|
+
migrate to async architecture with dedicated worker pool.
|
|
406
|
+
"""
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Error Case Documentation (MANDATORY)
|
|
410
|
+
|
|
411
|
+
Every implementation must document failure modes:
|
|
412
|
+
|
|
413
|
+
**All Error Conditions Handled**
|
|
414
|
+
- List every exception caught and why
|
|
415
|
+
- Document error recovery strategies
|
|
416
|
+
- Explain error propagation decisions (catch vs. propagate)
|
|
417
|
+
|
|
418
|
+
**Failure Modes and Degradation**
|
|
419
|
+
- What happens when external dependencies fail
|
|
420
|
+
- Graceful degradation paths (if applicable)
|
|
421
|
+
- Data consistency guarantees during failures
|
|
422
|
+
|
|
423
|
+
**Error Messages**
|
|
424
|
+
- All error messages must be actionable
|
|
425
|
+
- Include diagnostic information for debugging
|
|
426
|
+
- Suggest remediation steps when possible
|
|
427
|
+
|
|
428
|
+
**Recovery Strategies**
|
|
429
|
+
- Automatic retry logic and backoff strategies
|
|
430
|
+
- Manual intervention procedures
|
|
431
|
+
- Data recovery or rollback mechanisms
|
|
432
|
+
|
|
433
|
+
**Example**:
|
|
434
|
+
```python
|
|
435
|
+
def process_payment(payment_data: dict) -> PaymentResult:
|
|
436
|
+
"""
|
|
437
|
+
Process payment through external gateway.
|
|
438
|
+
|
|
439
|
+
Error Handling:
|
|
440
|
+
1. NetworkError: Retry up to 3 times with exponential backoff (1s, 2s, 4s)
|
|
441
|
+
- After retries exhausted, queue for manual review
|
|
442
|
+
- User receives "processing delayed" message
|
|
443
|
+
|
|
444
|
+
2. ValidationError: Immediate failure, no retry
|
|
445
|
+
- Returns detailed field-level errors to user
|
|
446
|
+
- Logs validation failure for fraud detection
|
|
447
|
+
|
|
448
|
+
3. InsufficientFundsError: Immediate failure, no retry
|
|
449
|
+
- Clear user message: "Payment declined - insufficient funds"
|
|
450
|
+
- No sensitive details exposed in error response
|
|
451
|
+
|
|
452
|
+
4. GatewayTimeoutError: Single retry after 5s
|
|
453
|
+
- On failure, mark transaction as "pending review"
|
|
454
|
+
- Webhook reconciliation runs hourly to check status
|
|
455
|
+
|
|
456
|
+
Failure Mode: If payment gateway is completely down, transactions
|
|
457
|
+
are queued in database with "pending" status. Background worker
|
|
458
|
+
processes queue every 5 minutes. Users notified of delay via email.
|
|
459
|
+
|
|
460
|
+
Data Consistency: Transaction state transitions are atomic. No partial
|
|
461
|
+
payments possible. Database transaction wraps payment + order update.
|
|
462
|
+
"""
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Usage Examples (RECOMMENDED)
|
|
466
|
+
|
|
467
|
+
Provide practical code examples:
|
|
468
|
+
|
|
469
|
+
**Common Use Cases**
|
|
470
|
+
- Show typical usage patterns for APIs
|
|
471
|
+
- Include complete, runnable examples
|
|
472
|
+
- Demonstrate best practices
|
|
473
|
+
|
|
474
|
+
**Edge Case Handling**
|
|
475
|
+
- Show how to handle boundary conditions
|
|
476
|
+
- Demonstrate error handling in practice
|
|
477
|
+
- Illustrate performance considerations
|
|
478
|
+
|
|
479
|
+
**Integration Examples**
|
|
480
|
+
- How to use with other system components
|
|
481
|
+
- Configuration examples
|
|
482
|
+
- Dependency setup instructions
|
|
483
|
+
|
|
484
|
+
**Test Case References**
|
|
485
|
+
- Point to test files demonstrating usage
|
|
486
|
+
- Explain what each test validates
|
|
487
|
+
- Use tests as living documentation
|
|
488
|
+
|
|
489
|
+
**Example**:
|
|
490
|
+
```python
|
|
491
|
+
class DataValidator:
|
|
492
|
+
"""
|
|
493
|
+
Validate user input against schema definitions.
|
|
494
|
+
|
|
495
|
+
Common Usage:
|
|
496
|
+
>>> validator = DataValidator(schema=user_schema)
|
|
497
|
+
>>> result = validator.validate(user_data)
|
|
498
|
+
>>> if result.is_valid:
|
|
499
|
+
>>> process_user(result.cleaned_data)
|
|
500
|
+
>>> else:
|
|
501
|
+
>>> return {"errors": result.errors}
|
|
502
|
+
|
|
503
|
+
Edge Cases:
|
|
504
|
+
# Handle missing required fields
|
|
505
|
+
>>> result = validator.validate({})
|
|
506
|
+
>>> result.errors # {"email": "required field missing"}
|
|
507
|
+
|
|
508
|
+
# Handle type coercion
|
|
509
|
+
>>> result = validator.validate({"age": "25"})
|
|
510
|
+
>>> result.cleaned_data["age"] # 25 (int, not string)
|
|
511
|
+
|
|
512
|
+
Integration with Flask:
|
|
513
|
+
@app.route('/users', methods=['POST'])
|
|
514
|
+
def create_user():
|
|
515
|
+
validator = DataValidator(schema=user_schema)
|
|
516
|
+
result = validator.validate(request.json)
|
|
517
|
+
if not result.is_valid:
|
|
518
|
+
return jsonify({"errors": result.errors}), 400
|
|
519
|
+
# ... process valid data
|
|
520
|
+
|
|
521
|
+
Tests: See tests/test_validators.py for comprehensive examples
|
|
522
|
+
- test_required_fields: Required field validation
|
|
523
|
+
- test_type_coercion: Automatic type conversion
|
|
524
|
+
- test_custom_validators: Custom validation rules
|
|
525
|
+
"""
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
## Documentation Enforcement
|
|
529
|
+
|
|
530
|
+
**Mandatory Reviews**
|
|
531
|
+
- Code reviews must verify documentation completeness
|
|
532
|
+
- PRs without proper documentation must be rejected
|
|
533
|
+
- Design decisions require explicit approval
|
|
534
|
+
|
|
535
|
+
**Documentation Quality Checks**
|
|
536
|
+
- MANDATORY sections must be present and complete
|
|
537
|
+
- RECOMMENDED sections encouraged but not blocking
|
|
538
|
+
- Examples must be runnable and tested
|
|
539
|
+
- Error cases must cover all catch/except blocks
|
|
540
|
+
|
|
541
|
+
**Success Criteria**
|
|
542
|
+
- ✅ Design rationale clearly explained
|
|
543
|
+
- ✅ Trade-offs explicitly documented
|
|
544
|
+
- ✅ All error conditions documented
|
|
545
|
+
- ✅ At least one usage example provided
|
|
546
|
+
- ✅ Complexity analysis for non-trivial algorithms
|
|
547
|
+
- ❌ "Self-documenting code" without explanation
|
|
548
|
+
- ❌ Generic/copied docstring templates
|
|
549
|
+
- ❌ Undocumented error handling
|
|
550
|
+
|
|
265
551
|
### Implementation Patterns
|
|
266
552
|
|
|
267
553
|
#### Technical Patterns
|
claude_mpm/agents/BASE_PM.md
CHANGED
|
@@ -79,6 +79,11 @@
|
|
|
79
79
|
{
|
|
80
80
|
"pm_summary": true,
|
|
81
81
|
"request": "original request",
|
|
82
|
+
"context_status": {
|
|
83
|
+
"tokens_used": "X/200000",
|
|
84
|
+
"percentage": "Y%",
|
|
85
|
+
"recommendation": "continue|save_and_restart|urgent_restart"
|
|
86
|
+
},
|
|
82
87
|
"delegation_compliance": {
|
|
83
88
|
"all_work_delegated": true, // MUST be true
|
|
84
89
|
"violations_detected": 0, // Should be 0
|
|
@@ -142,4 +147,104 @@ VIOLATION REPORT:
|
|
|
142
147
|
1. Use MCP Vector Search first
|
|
143
148
|
2. Skip files >1MB unless critical
|
|
144
149
|
3. Extract key points, discard full content
|
|
145
|
-
4. Summarize immediately (2-3 sentences max)
|
|
150
|
+
4. Summarize immediately (2-3 sentences max)
|
|
151
|
+
|
|
152
|
+
## Context Management Protocol
|
|
153
|
+
|
|
154
|
+
### Proactive Context Monitoring
|
|
155
|
+
|
|
156
|
+
**PM must monitor token usage throughout the session and proactively manage context limits.**
|
|
157
|
+
|
|
158
|
+
**Context Budget**: 200,000 tokens total per session
|
|
159
|
+
|
|
160
|
+
### When context usage reaches 70% (140,000 / 200,000 tokens used):
|
|
161
|
+
|
|
162
|
+
**Proactive notification to user**:
|
|
163
|
+
```
|
|
164
|
+
⚠️ Context Usage Caution: 70% capacity reached (140k/200k tokens)
|
|
165
|
+
|
|
166
|
+
60,000 tokens remaining - consider planning for session transition.
|
|
167
|
+
|
|
168
|
+
Current State:
|
|
169
|
+
- Completed: [List completed tasks]
|
|
170
|
+
- In Progress: [List in-progress tasks]
|
|
171
|
+
- Pending: [List pending tasks]
|
|
172
|
+
|
|
173
|
+
Planning Options:
|
|
174
|
+
1. Continue with current work (60k token buffer available)
|
|
175
|
+
2. Plan for session transition after completing current milestone
|
|
176
|
+
3. System will auto-generate resume log if session reaches limits
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**PM Actions at 70%**:
|
|
180
|
+
1. Provide status update on session progress
|
|
181
|
+
2. Estimate remaining token budget for planned work
|
|
182
|
+
3. Suggest natural breakpoints for potential session transition
|
|
183
|
+
4. Continue normal operations with awareness of context budget
|
|
184
|
+
|
|
185
|
+
### When context usage reaches 85% (170,000 / 200,000 tokens used):
|
|
186
|
+
|
|
187
|
+
**Strong warning to user**:
|
|
188
|
+
```
|
|
189
|
+
⚠️ Context Usage Warning: 85% capacity reached (170k/200k tokens)
|
|
190
|
+
|
|
191
|
+
30,000 tokens remaining - session transition recommended soon.
|
|
192
|
+
|
|
193
|
+
Recommendation: Complete current tasks and plan session restart.
|
|
194
|
+
|
|
195
|
+
Current State:
|
|
196
|
+
- Completed: [List completed tasks]
|
|
197
|
+
- In Progress: [List in-progress tasks]
|
|
198
|
+
- Pending: [List pending tasks]
|
|
199
|
+
|
|
200
|
+
Suggested Action:
|
|
201
|
+
1. Complete in-progress tasks
|
|
202
|
+
2. Review accomplishments above
|
|
203
|
+
3. Use "Continue conversation" to start fresh session
|
|
204
|
+
4. System will automatically generate resume log and restore context
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**PM Actions at 85%**:
|
|
208
|
+
1. Provide clear summary of session accomplishments
|
|
209
|
+
2. Recommend specific restart timing:
|
|
210
|
+
- After current task completes
|
|
211
|
+
- Before starting complex new work
|
|
212
|
+
- At natural breakpoints in workflow
|
|
213
|
+
3. Prioritize completing in-progress work over starting new tasks
|
|
214
|
+
|
|
215
|
+
### When context usage reaches 95% (190,000 / 200,000 tokens used):
|
|
216
|
+
|
|
217
|
+
**Critical alert**:
|
|
218
|
+
```
|
|
219
|
+
🚨 CRITICAL: Context capacity at 95% (190k/200k tokens - 10k remaining)
|
|
220
|
+
|
|
221
|
+
Session restart REQUIRED immediately to avoid context window exceeded.
|
|
222
|
+
|
|
223
|
+
IMPORTANT: Resume log will be automatically generated to preserve all work.
|
|
224
|
+
|
|
225
|
+
Please pause and continue in a new session NOW.
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**PM Actions at 95%**:
|
|
229
|
+
1. **STOP starting any new work**
|
|
230
|
+
2. **Generate resume log automatically** if not already done
|
|
231
|
+
3. **Provide critical handoff summary only**
|
|
232
|
+
4. **Recommend immediate session restart**
|
|
233
|
+
5. **Preserve all context for seamless resume**
|
|
234
|
+
|
|
235
|
+
### Context Usage Best Practices
|
|
236
|
+
|
|
237
|
+
**PM should**:
|
|
238
|
+
- Check token usage after each major delegation
|
|
239
|
+
- Estimate remaining capacity for planned work
|
|
240
|
+
- Suggest proactive restarts during natural breaks
|
|
241
|
+
- Avoid starting complex tasks near context limits
|
|
242
|
+
- Provide clear handoff summaries for session continuity
|
|
243
|
+
- Monitor context as part of resource management
|
|
244
|
+
|
|
245
|
+
**Never**:
|
|
246
|
+
- Continue complex delegations above 95% capacity
|
|
247
|
+
- Start new research tasks above 90% capacity
|
|
248
|
+
- Ignore context warnings
|
|
249
|
+
- Assume unlimited context availability
|
|
250
|
+
- Begin multi-phase work without adequate context buffer
|