moai-adk 0.25.4__py3-none-any.whl → 0.32.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +2 -5
- moai_adk/__main__.py +114 -82
- moai_adk/cli/__init__.py +6 -1
- moai_adk/cli/commands/__init__.py +1 -3
- moai_adk/cli/commands/analyze.py +5 -16
- moai_adk/cli/commands/doctor.py +6 -18
- moai_adk/cli/commands/init.py +56 -125
- moai_adk/cli/commands/language.py +14 -35
- moai_adk/cli/commands/status.py +9 -15
- moai_adk/cli/commands/update.py +1555 -190
- moai_adk/cli/prompts/init_prompts.py +112 -56
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +672 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +490 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +128 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/analysis/session_analyzer.py +17 -56
- moai_adk/core/claude_integration.py +26 -54
- moai_adk/core/command_helpers.py +10 -10
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/auto_spec_config.py +5 -11
- moai_adk/core/config/migration.py +19 -9
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +6 -12
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +725 -112
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +8 -0
- moai_adk/core/git/branch_manager.py +3 -11
- moai_adk/core/git/checkpoint.py +1 -3
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/manager.py +91 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/engine.py +6 -18
- moai_adk/core/integration/integration_tester.py +10 -9
- moai_adk/core/integration/utils.py +1 -1
- moai_adk/core/issue_creator.py +10 -28
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config_resolver.py +485 -0
- moai_adk/core/language_validator.py +28 -41
- moai_adk/core/mcp/setup.py +15 -12
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +481 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +78 -9
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +8 -17
- moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +6 -10
- moai_adk/core/migration/version_migrator.py +3 -3
- moai_adk/core/performance/cache_system.py +8 -10
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +1 -3
- moai_adk/core/project/initializer.py +135 -23
- moai_adk/core/project/phase_executor.py +54 -81
- moai_adk/core/project/validator.py +6 -12
- moai_adk/core/quality/trust_checker.py +9 -27
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +73 -148
- moai_adk/core/session_manager.py +10 -26
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +31 -100
- moai_adk/core/spec/ears_template_engine.py +351 -286
- moai_adk/core/spec/quality_validator.py +35 -69
- moai_adk/core/spec_status_manager.py +64 -74
- moai_adk/core/template/backup.py +45 -20
- moai_adk/core/template/config.py +112 -39
- moai_adk/core/template/merger.py +11 -19
- moai_adk/core/template/processor.py +253 -149
- moai_adk/core/template_engine.py +73 -40
- moai_adk/core/template_variable_synchronizer.py +417 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +429 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +4 -12
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +23 -72
- moai_adk/foundation/trust/validation_checklist.py +57 -162
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/alfred_detector.py +1 -3
- moai_adk/statusline/config.py +13 -4
- moai_adk/statusline/enhanced_output_style_detector.py +23 -15
- moai_adk/statusline/main.py +51 -15
- moai_adk/statusline/renderer.py +104 -48
- moai_adk/statusline/update_checker.py +3 -9
- moai_adk/statusline/version_reader.py +140 -46
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +496 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +103 -41
- moai_adk/templates/.git-hooks/pre-push +116 -21
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.gitignore +184 -44
- moai_adk/templates/.mcp.json +7 -9
- moai_adk/templates/.moai/cache/personalization.json +10 -0
- moai_adk/templates/.moai/config/config.yaml +344 -0
- moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
- moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
- moai_adk/templates/.moai/config/presets/team.yaml +33 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
- moai_adk/templates/.moai/config/sections/system.yaml +14 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +382 -501
- moai_adk/utils/__init__.py +24 -1
- moai_adk/utils/banner.py +7 -10
- moai_adk/utils/common.py +16 -30
- moai_adk/utils/link_validator.py +4 -12
- moai_adk/utils/safe_file_reader.py +2 -6
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.32.8.dist-info/METADATA +2478 -0
- moai_adk-0.32.8.dist-info/RECORD +396 -0
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -82
- moai_adk/cli/commands/improve_user_experience.py +0 -348
- moai_adk/cli/commands/migrate.py +0 -158
- moai_adk/cli/commands/validate_links.py +0 -118
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/utils/user_experience.py +0 -531
- moai_adk-0.25.4.dist-info/METADATA +0 -2279
- moai_adk-0.25.4.dist-info/RECORD +0 -112
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,757 @@
|
|
|
1
|
+
# Delegation Patterns - Agent Orchestration
|
|
2
|
+
|
|
3
|
+
Purpose: Task delegation strategies to specialized agents, ensuring efficient workflow orchestration without direct execution.
|
|
4
|
+
|
|
5
|
+
Version: 1.0.0
|
|
6
|
+
Last Updated: 2025-11-25
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Quick Reference (30 seconds)
|
|
11
|
+
|
|
12
|
+
Core Principle: Alfred NEVER executes directly. All work via `Task()` delegation to specialized agents.
|
|
13
|
+
|
|
14
|
+
Three Primary Patterns:
|
|
15
|
+
1. Sequential - Dependencies between agents (Phase 1 → Phase 2 → Phase 3)
|
|
16
|
+
2. Parallel - Independent agents (Backend + Frontend + Docs simultaneously)
|
|
17
|
+
3. Conditional - Analysis-driven routing (Security issue → security-expert)
|
|
18
|
+
|
|
19
|
+
Base Syntax:
|
|
20
|
+
```python
|
|
21
|
+
result = await Task(
|
|
22
|
+
subagent_type="agent-name",
|
|
23
|
+
prompt="specific task description",
|
|
24
|
+
context={"necessary": "data"}
|
|
25
|
+
)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Agent Selection:
|
|
29
|
+
- Simple (1 file): 1-2 agents sequential
|
|
30
|
+
- Medium (3-5 files): 2-3 agents sequential
|
|
31
|
+
- Complex (10+ files): 5+ agents parallel/sequential mix
|
|
32
|
+
|
|
33
|
+
Context Size: 20-30K tokens target, 50K maximum
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Implementation Guide (5 minutes)
|
|
38
|
+
|
|
39
|
+
### Pattern 1: Sequential Delegation
|
|
40
|
+
|
|
41
|
+
Use Case: When agents have dependencies on each other.
|
|
42
|
+
|
|
43
|
+
Flow Diagram:
|
|
44
|
+
```
|
|
45
|
+
Phase 1: Design
|
|
46
|
+
↓ (design results)
|
|
47
|
+
Phase 2: Implementation
|
|
48
|
+
↓ (implementation + design)
|
|
49
|
+
Phase 3: Documentation
|
|
50
|
+
↓ (all results)
|
|
51
|
+
Phase 4: Quality Gate
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Implementation Example:
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
# Full sequential workflow
|
|
58
|
+
async def implement_feature_sequential(feature_description: str):
|
|
59
|
+
"""Sequential workflow with context passing."""
|
|
60
|
+
|
|
61
|
+
# Phase 1: SPEC Generation
|
|
62
|
+
spec_result = await Task(
|
|
63
|
+
subagent_type="workflow-spec",
|
|
64
|
+
prompt=f"Generate SPEC for: {feature_description}",
|
|
65
|
+
context={
|
|
66
|
+
"feature": feature_description,
|
|
67
|
+
"requirements": ["TRUST 5 compliance", "≥85% coverage"]
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Execute /clear to save tokens
|
|
72
|
+
execute_clear()
|
|
73
|
+
|
|
74
|
+
# Phase 2: API Design (depends on SPEC)
|
|
75
|
+
api_result = await Task(
|
|
76
|
+
subagent_type="api-designer",
|
|
77
|
+
prompt="Design REST API for feature",
|
|
78
|
+
context={
|
|
79
|
+
"spec_id": spec_result.spec_id,
|
|
80
|
+
"requirements": spec_result.requirements,
|
|
81
|
+
"constraints": ["RESTful", "JSON", "OpenAPI 3.1"]
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Phase 3: Backend Implementation (depends on API design + SPEC)
|
|
86
|
+
backend_result = await Task(
|
|
87
|
+
subagent_type="code-backend",
|
|
88
|
+
prompt="Implement backend with TDD",
|
|
89
|
+
context={
|
|
90
|
+
"spec_id": spec_result.spec_id,
|
|
91
|
+
"api_design": api_result.openapi_spec,
|
|
92
|
+
"database_schema": api_result.database_schema
|
|
93
|
+
}
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Phase 4: Frontend Implementation (depends on API design)
|
|
97
|
+
frontend_result = await Task(
|
|
98
|
+
subagent_type="code-frontend",
|
|
99
|
+
prompt="Implement UI components",
|
|
100
|
+
context={
|
|
101
|
+
"spec_id": spec_result.spec_id,
|
|
102
|
+
"api_endpoints": api_result.endpoints,
|
|
103
|
+
"ui_requirements": spec_result.ui_requirements
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# Phase 5: Integration Testing (depends on all implementations)
|
|
108
|
+
integration_result = await Task(
|
|
109
|
+
subagent_type="core-quality",
|
|
110
|
+
prompt="Run integration tests",
|
|
111
|
+
context={
|
|
112
|
+
"spec_id": spec_result.spec_id,
|
|
113
|
+
"backend_endpoints": backend_result.endpoints,
|
|
114
|
+
"frontend_components": frontend_result.components
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
# Phase 6: Documentation (depends on everything)
|
|
119
|
+
docs_result = await Task(
|
|
120
|
+
subagent_type="workflow-docs",
|
|
121
|
+
prompt="Generate comprehensive documentation",
|
|
122
|
+
context={
|
|
123
|
+
"spec_id": spec_result.spec_id,
|
|
124
|
+
"api_spec": api_result.openapi_spec,
|
|
125
|
+
"backend_code": backend_result.code_summary,
|
|
126
|
+
"frontend_code": frontend_result.code_summary,
|
|
127
|
+
"test_results": integration_result.test_report
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# Phase 7: Quality Gate (validates everything)
|
|
132
|
+
quality_result = await Task(
|
|
133
|
+
subagent_type="core-quality",
|
|
134
|
+
prompt="Validate TRUST 5 compliance",
|
|
135
|
+
context={
|
|
136
|
+
"spec_id": spec_result.spec_id,
|
|
137
|
+
"implementation": {
|
|
138
|
+
"backend": backend_result,
|
|
139
|
+
"frontend": frontend_result
|
|
140
|
+
},
|
|
141
|
+
"tests": integration_result,
|
|
142
|
+
"documentation": docs_result
|
|
143
|
+
}
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
return {
|
|
147
|
+
"spec": spec_result,
|
|
148
|
+
"api": api_result,
|
|
149
|
+
"backend": backend_result,
|
|
150
|
+
"frontend": frontend_result,
|
|
151
|
+
"tests": integration_result,
|
|
152
|
+
"docs": docs_result,
|
|
153
|
+
"quality": quality_result
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Token Management in Sequential Flow:
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
def sequential_with_token_management():
|
|
161
|
+
"""Sequential flow with strategic /clear execution."""
|
|
162
|
+
|
|
163
|
+
# Phase 1: Heavy context (SPEC generation)
|
|
164
|
+
spec = Task(subagent_type="workflow-spec", ...) # ~30K tokens
|
|
165
|
+
execute_clear() # Save 45-50K tokens
|
|
166
|
+
|
|
167
|
+
# Phase 2: Fresh context (implementation)
|
|
168
|
+
impl = Task(
|
|
169
|
+
subagent_type="workflow-tdd",
|
|
170
|
+
context={"spec_id": spec.id} # Minimal context
|
|
171
|
+
) # ~80K tokens
|
|
172
|
+
|
|
173
|
+
# Phase 3: Final phase
|
|
174
|
+
docs = Task(
|
|
175
|
+
subagent_type="workflow-docs",
|
|
176
|
+
context={"spec_id": spec.id, "summary": impl.summary}
|
|
177
|
+
) # ~25K tokens
|
|
178
|
+
|
|
179
|
+
# Total: ~135K (within 200K budget)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Pattern 2: Parallel Delegation
|
|
185
|
+
|
|
186
|
+
Use Case: When agents work on independent tasks simultaneously.
|
|
187
|
+
|
|
188
|
+
Flow Diagram:
|
|
189
|
+
```
|
|
190
|
+
Start
|
|
191
|
+
→ Backend Agent → Result 1
|
|
192
|
+
→ Frontend Agent → Result 2
|
|
193
|
+
→ Database Agent → Result 3
|
|
194
|
+
→ Docs Agent → Result 4
|
|
195
|
+
↓
|
|
196
|
+
All Complete → Integration
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Implementation Example:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
async def implement_feature_parallel(spec_id: str):
|
|
203
|
+
"""Parallel workflow for independent tasks."""
|
|
204
|
+
|
|
205
|
+
# Execute all independent tasks simultaneously
|
|
206
|
+
results = await Promise.all([
|
|
207
|
+
# Backend implementation
|
|
208
|
+
Task(
|
|
209
|
+
subagent_type="code-backend",
|
|
210
|
+
prompt=f"Implement backend for {spec_id}",
|
|
211
|
+
context={"spec_id": spec_id, "focus": "API endpoints"}
|
|
212
|
+
),
|
|
213
|
+
|
|
214
|
+
# Frontend implementation
|
|
215
|
+
Task(
|
|
216
|
+
subagent_type="code-frontend",
|
|
217
|
+
prompt=f"Implement UI for {spec_id}",
|
|
218
|
+
context={"spec_id": spec_id, "focus": "Components"}
|
|
219
|
+
),
|
|
220
|
+
|
|
221
|
+
# Database schema
|
|
222
|
+
Task(
|
|
223
|
+
subagent_type="data-database",
|
|
224
|
+
prompt=f"Design database for {spec_id}",
|
|
225
|
+
context={"spec_id": spec_id, "focus": "Schema"}
|
|
226
|
+
),
|
|
227
|
+
|
|
228
|
+
# Documentation
|
|
229
|
+
Task(
|
|
230
|
+
subagent_type="workflow-docs",
|
|
231
|
+
prompt=f"Generate docs for {spec_id}",
|
|
232
|
+
context={"spec_id": spec_id, "focus": "API docs"}
|
|
233
|
+
)
|
|
234
|
+
])
|
|
235
|
+
|
|
236
|
+
backend, frontend, database, docs = results
|
|
237
|
+
|
|
238
|
+
# Integration step (sequential, depends on parallel results)
|
|
239
|
+
integration = await Task(
|
|
240
|
+
subagent_type="core-quality",
|
|
241
|
+
prompt="Run integration tests",
|
|
242
|
+
context={
|
|
243
|
+
"spec_id": spec_id,
|
|
244
|
+
"backend": backend.summary,
|
|
245
|
+
"frontend": frontend.summary,
|
|
246
|
+
"database": database.schema,
|
|
247
|
+
"docs": docs.summary
|
|
248
|
+
}
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
return {
|
|
252
|
+
"backend": backend,
|
|
253
|
+
"frontend": frontend,
|
|
254
|
+
"database": database,
|
|
255
|
+
"docs": docs,
|
|
256
|
+
"integration": integration
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Parallel Execution Benefits:
|
|
261
|
+
|
|
262
|
+
| Aspect | Sequential | Parallel | Improvement |
|
|
263
|
+
|--------|-----------|----------|-------------|
|
|
264
|
+
| Execution Time | 45 min | 15 min | 3x faster |
|
|
265
|
+
| Token Sessions | Shared 200K | 4x 200K each | 4x capacity |
|
|
266
|
+
| Context Isolation | Shared context | Independent | Cleaner |
|
|
267
|
+
| Error Impact | Blocks all | Isolated | Resilient |
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
### Pattern 3: Conditional Delegation
|
|
272
|
+
|
|
273
|
+
Use Case: Route to different agents based on analysis results.
|
|
274
|
+
|
|
275
|
+
Flow Diagram:
|
|
276
|
+
```
|
|
277
|
+
Analysis Agent → Determines issue type
|
|
278
|
+
→ Security issue → security-expert
|
|
279
|
+
→ Performance issue → performance-engineer
|
|
280
|
+
→ Quality issue → core-quality
|
|
281
|
+
→ Bug → support-debug
|
|
282
|
+
→ Documentation → workflow-docs
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Implementation Example:
|
|
286
|
+
|
|
287
|
+
```python
|
|
288
|
+
async def handle_issue_conditional(issue_description: str):
|
|
289
|
+
"""Conditional routing based on issue analysis."""
|
|
290
|
+
|
|
291
|
+
# Phase 1: Analyze issue type
|
|
292
|
+
analysis = await Task(
|
|
293
|
+
subagent_type="support-debug",
|
|
294
|
+
prompt=f"Analyze issue: {issue_description}",
|
|
295
|
+
context={"focus": "classification"}
|
|
296
|
+
)
|
|
297
|
+
|
|
298
|
+
# Phase 2: Route to appropriate specialist
|
|
299
|
+
if analysis.category == "security":
|
|
300
|
+
return await Task(
|
|
301
|
+
subagent_type="security-expert",
|
|
302
|
+
prompt="Analyze and fix security issue",
|
|
303
|
+
context={
|
|
304
|
+
"issue": issue_description,
|
|
305
|
+
"analysis": analysis.details,
|
|
306
|
+
"owasp_category": analysis.owasp_match
|
|
307
|
+
}
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
elif analysis.category == "performance":
|
|
311
|
+
return await Task(
|
|
312
|
+
subagent_type="performance-engineer",
|
|
313
|
+
prompt="Optimize performance issue",
|
|
314
|
+
context={
|
|
315
|
+
"issue": issue_description,
|
|
316
|
+
"analysis": analysis.details,
|
|
317
|
+
"bottleneck": analysis.bottleneck_location
|
|
318
|
+
}
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
elif analysis.category == "quality":
|
|
322
|
+
return await Task(
|
|
323
|
+
subagent_type="core-quality",
|
|
324
|
+
prompt="Validate and improve quality",
|
|
325
|
+
context={
|
|
326
|
+
"issue": issue_description,
|
|
327
|
+
"analysis": analysis.details,
|
|
328
|
+
"trust5_violations": analysis.violations
|
|
329
|
+
}
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
elif analysis.category == "bug":
|
|
333
|
+
return await Task(
|
|
334
|
+
subagent_type="support-debug",
|
|
335
|
+
prompt="Debug and fix issue",
|
|
336
|
+
context={
|
|
337
|
+
"issue": issue_description,
|
|
338
|
+
"analysis": analysis.details,
|
|
339
|
+
"stack_trace": analysis.stack_trace
|
|
340
|
+
}
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
else: # documentation, feature request, etc.
|
|
344
|
+
return await Task(
|
|
345
|
+
subagent_type="workflow-docs",
|
|
346
|
+
prompt="Handle documentation request",
|
|
347
|
+
context={
|
|
348
|
+
"issue": issue_description,
|
|
349
|
+
"analysis": analysis.details
|
|
350
|
+
}
|
|
351
|
+
)
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
Complex Conditional Logic:
|
|
355
|
+
|
|
356
|
+
```python
|
|
357
|
+
async def advanced_conditional_routing(request: dict):
|
|
358
|
+
"""Multi-criteria conditional routing."""
|
|
359
|
+
|
|
360
|
+
# Phase 1: Multi-dimensional analysis
|
|
361
|
+
analysis = await Task(
|
|
362
|
+
subagent_type="plan",
|
|
363
|
+
prompt="Analyze request complexity",
|
|
364
|
+
context=request
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
# Phase 2: Route based on multiple factors
|
|
368
|
+
|
|
369
|
+
# High complexity + Security-critical
|
|
370
|
+
if analysis.complexity == "high" and analysis.security_critical:
|
|
371
|
+
return await sequential_secure_workflow(analysis)
|
|
372
|
+
|
|
373
|
+
# High complexity + Low security
|
|
374
|
+
elif analysis.complexity == "high":
|
|
375
|
+
return await parallel_workflow(analysis)
|
|
376
|
+
|
|
377
|
+
# Low complexity
|
|
378
|
+
elif analysis.complexity == "low":
|
|
379
|
+
return await single_agent_workflow(analysis)
|
|
380
|
+
|
|
381
|
+
# Medium complexity + Performance-critical
|
|
382
|
+
elif analysis.performance_critical:
|
|
383
|
+
return await performance_optimized_workflow(analysis)
|
|
384
|
+
|
|
385
|
+
# Default: Standard workflow
|
|
386
|
+
else:
|
|
387
|
+
return await standard_workflow(analysis)
|
|
388
|
+
|
|
389
|
+
async def sequential_secure_workflow(analysis):
|
|
390
|
+
"""High-complexity security workflow."""
|
|
391
|
+
security_review = await Task(
|
|
392
|
+
subagent_type="security-expert",
|
|
393
|
+
prompt="Security architecture review"
|
|
394
|
+
)
|
|
395
|
+
|
|
396
|
+
implementation = await Task(
|
|
397
|
+
subagent_type="code-backend",
|
|
398
|
+
prompt="Implement with security controls",
|
|
399
|
+
context={"security_requirements": security_review}
|
|
400
|
+
)
|
|
401
|
+
|
|
402
|
+
penetration_test = await Task(
|
|
403
|
+
subagent_type="security-expert",
|
|
404
|
+
prompt="Penetration testing",
|
|
405
|
+
context={"implementation": implementation}
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
return {
|
|
409
|
+
"security_review": security_review,
|
|
410
|
+
"implementation": implementation,
|
|
411
|
+
"penetration_test": penetration_test
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Advanced Implementation (10+ minutes)
|
|
418
|
+
|
|
419
|
+
### Context Passing Optimization
|
|
420
|
+
|
|
421
|
+
Efficient Context Structure:
|
|
422
|
+
|
|
423
|
+
```python
|
|
424
|
+
class ContextManager:
|
|
425
|
+
"""Optimize context passing between agents."""
|
|
426
|
+
|
|
427
|
+
def __init__(self):
|
|
428
|
+
self.max_context_size = 50_000 # 50K tokens
|
|
429
|
+
self.optimal_size = 30_000 # 30K tokens
|
|
430
|
+
|
|
431
|
+
def prepare_context(self, full_data: dict, agent_type: str) -> dict:
|
|
432
|
+
"""Prepare optimized context for specific agent."""
|
|
433
|
+
|
|
434
|
+
# Agent-specific context requirements
|
|
435
|
+
context_requirements = {
|
|
436
|
+
"code-backend": ["spec_id", "api_design", "database_schema"],
|
|
437
|
+
"code-frontend": ["spec_id", "api_endpoints", "ui_requirements"],
|
|
438
|
+
"security-expert": ["spec_id", "threat_model", "security_requirements"],
|
|
439
|
+
"core-quality": ["spec_id", "code_summary", "test_strategy"],
|
|
440
|
+
"workflow-docs": ["spec_id", "api_spec", "code_summary"]
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
# Extract only required fields
|
|
444
|
+
required_fields = context_requirements.get(agent_type, [])
|
|
445
|
+
optimized_context = {
|
|
446
|
+
field: full_data.get(field)
|
|
447
|
+
for field in required_fields
|
|
448
|
+
if field in full_data
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
# Add compressed summaries for large data
|
|
452
|
+
if "code_summary" in required_fields:
|
|
453
|
+
optimized_context["code_summary"] = self._compress_code_summary(
|
|
454
|
+
full_data.get("full_code", "")
|
|
455
|
+
)
|
|
456
|
+
|
|
457
|
+
# Validate size
|
|
458
|
+
estimated_tokens = self._estimate_tokens(optimized_context)
|
|
459
|
+
if estimated_tokens > self.optimal_size:
|
|
460
|
+
optimized_context = self._further_compress(optimized_context)
|
|
461
|
+
|
|
462
|
+
return optimized_context
|
|
463
|
+
|
|
464
|
+
def _compress_code_summary(self, full_code: str) -> str:
|
|
465
|
+
"""Compress code to summary (functions, classes, key logic)."""
|
|
466
|
+
summary = {
|
|
467
|
+
"functions": extract_function_signatures(full_code),
|
|
468
|
+
"classes": extract_class_definitions(full_code),
|
|
469
|
+
"key_logic": extract_main_flow(full_code)
|
|
470
|
+
}
|
|
471
|
+
return summary
|
|
472
|
+
|
|
473
|
+
def _estimate_tokens(self, context: dict) -> int:
|
|
474
|
+
"""Estimate token count of context."""
|
|
475
|
+
import json
|
|
476
|
+
json_str = json.dumps(context)
|
|
477
|
+
# Rough estimate: 1 token ≈ 4 characters
|
|
478
|
+
return len(json_str) // 4
|
|
479
|
+
|
|
480
|
+
# Usage
|
|
481
|
+
context_manager = ContextManager()
|
|
482
|
+
|
|
483
|
+
full_data = {
|
|
484
|
+
"spec_id": "SPEC-001",
|
|
485
|
+
"full_code": "... 50KB of code ...",
|
|
486
|
+
"api_design": {...},
|
|
487
|
+
"database_schema": {...}
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
# Prepare optimized context for code-backend
|
|
491
|
+
backend_context = context_manager.prepare_context(full_data, "code-backend")
|
|
492
|
+
# Result: Only spec_id, api_design, database_schema (no full_code)
|
|
493
|
+
|
|
494
|
+
backend_result = await Task(
|
|
495
|
+
subagent_type="code-backend",
|
|
496
|
+
prompt="Implement backend",
|
|
497
|
+
context=backend_context # Optimized to ~25K tokens
|
|
498
|
+
)
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Error Handling and Recovery
|
|
502
|
+
|
|
503
|
+
Resilient Delegation Pattern:
|
|
504
|
+
|
|
505
|
+
```python
|
|
506
|
+
from typing import Optional
|
|
507
|
+
import asyncio
|
|
508
|
+
|
|
509
|
+
class ResilientDelegation:
|
|
510
|
+
"""Handle delegation failures with retry and fallback."""
|
|
511
|
+
|
|
512
|
+
def __init__(self):
|
|
513
|
+
self.max_retries = 3
|
|
514
|
+
self.retry_delay = 5 # seconds
|
|
515
|
+
|
|
516
|
+
async def delegate_with_retry(
|
|
517
|
+
self,
|
|
518
|
+
agent_type: str,
|
|
519
|
+
prompt: str,
|
|
520
|
+
context: dict,
|
|
521
|
+
fallback_agent: Optional[str] = None
|
|
522
|
+
):
|
|
523
|
+
"""Delegate with automatic retry and fallback."""
|
|
524
|
+
|
|
525
|
+
for attempt in range(self.max_retries):
|
|
526
|
+
try:
|
|
527
|
+
result = await Task(
|
|
528
|
+
subagent_type=agent_type,
|
|
529
|
+
prompt=prompt,
|
|
530
|
+
context=context
|
|
531
|
+
)
|
|
532
|
+
return result
|
|
533
|
+
|
|
534
|
+
except AgentExecutionError as e:
|
|
535
|
+
if attempt < self.max_retries - 1:
|
|
536
|
+
# Retry with exponential backoff
|
|
537
|
+
delay = self.retry_delay * (2 attempt)
|
|
538
|
+
await asyncio.sleep(delay)
|
|
539
|
+
continue
|
|
540
|
+
|
|
541
|
+
# Final attempt failed
|
|
542
|
+
if fallback_agent:
|
|
543
|
+
# Try fallback agent
|
|
544
|
+
return await self._fallback_delegation(
|
|
545
|
+
fallback_agent,
|
|
546
|
+
prompt,
|
|
547
|
+
context,
|
|
548
|
+
original_error=e
|
|
549
|
+
)
|
|
550
|
+
|
|
551
|
+
# No fallback, raise error
|
|
552
|
+
raise
|
|
553
|
+
|
|
554
|
+
except ContextTooLargeError as e:
|
|
555
|
+
# Context exceeds limit, compress and retry
|
|
556
|
+
compressed_context = self._compress_context(context)
|
|
557
|
+
return await Task(
|
|
558
|
+
subagent_type=agent_type,
|
|
559
|
+
prompt=prompt,
|
|
560
|
+
context=compressed_context
|
|
561
|
+
)
|
|
562
|
+
|
|
563
|
+
async def _fallback_delegation(
|
|
564
|
+
self,
|
|
565
|
+
fallback_agent: str,
|
|
566
|
+
prompt: str,
|
|
567
|
+
context: dict,
|
|
568
|
+
original_error: Exception
|
|
569
|
+
):
|
|
570
|
+
"""Execute fallback delegation."""
|
|
571
|
+
|
|
572
|
+
# Add error context
|
|
573
|
+
fallback_context = {
|
|
574
|
+
context,
|
|
575
|
+
"original_error": str(original_error),
|
|
576
|
+
"fallback_mode": True
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
return await Task(
|
|
580
|
+
subagent_type=fallback_agent,
|
|
581
|
+
prompt=f"[FALLBACK] {prompt}",
|
|
582
|
+
context=fallback_context
|
|
583
|
+
)
|
|
584
|
+
|
|
585
|
+
# Usage
|
|
586
|
+
delegator = ResilientDelegation()
|
|
587
|
+
|
|
588
|
+
result = await delegator.delegate_with_retry(
|
|
589
|
+
agent_type="code-backend",
|
|
590
|
+
prompt="Implement complex feature",
|
|
591
|
+
context=large_context,
|
|
592
|
+
fallback_agent="support-debug" # Fallback if code-backend fails
|
|
593
|
+
)
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
### Hybrid Delegation Patterns
|
|
597
|
+
|
|
598
|
+
Sequential + Parallel Combination:
|
|
599
|
+
|
|
600
|
+
```python
|
|
601
|
+
async def hybrid_workflow(spec_id: str):
|
|
602
|
+
"""Combine sequential and parallel patterns."""
|
|
603
|
+
|
|
604
|
+
# Phase 1: Sequential (SPEC → Design)
|
|
605
|
+
spec = await Task(
|
|
606
|
+
subagent_type="workflow-spec",
|
|
607
|
+
prompt=f"Generate SPEC {spec_id}"
|
|
608
|
+
)
|
|
609
|
+
|
|
610
|
+
design = await Task(
|
|
611
|
+
subagent_type="api-designer",
|
|
612
|
+
prompt="Design API",
|
|
613
|
+
context={"spec_id": spec.id}
|
|
614
|
+
)
|
|
615
|
+
|
|
616
|
+
execute_clear()
|
|
617
|
+
|
|
618
|
+
# Phase 2: Parallel (Implementation)
|
|
619
|
+
impl_results = await Promise.all([
|
|
620
|
+
Task(
|
|
621
|
+
subagent_type="code-backend",
|
|
622
|
+
prompt="Backend",
|
|
623
|
+
context={"spec_id": spec.id, "api": design}
|
|
624
|
+
),
|
|
625
|
+
Task(
|
|
626
|
+
subagent_type="code-frontend",
|
|
627
|
+
prompt="Frontend",
|
|
628
|
+
context={"spec_id": spec.id, "api": design}
|
|
629
|
+
),
|
|
630
|
+
Task(
|
|
631
|
+
subagent_type="data-database",
|
|
632
|
+
prompt="Database",
|
|
633
|
+
context={"spec_id": spec.id, "api": design}
|
|
634
|
+
)
|
|
635
|
+
])
|
|
636
|
+
|
|
637
|
+
backend, frontend, database = impl_results
|
|
638
|
+
|
|
639
|
+
# Phase 3: Sequential (Testing → QA)
|
|
640
|
+
tests = await Task(
|
|
641
|
+
subagent_type="core-quality",
|
|
642
|
+
prompt="Integration tests",
|
|
643
|
+
context={
|
|
644
|
+
"spec_id": spec.id,
|
|
645
|
+
"backend": backend.summary,
|
|
646
|
+
"frontend": frontend.summary,
|
|
647
|
+
"database": database.summary
|
|
648
|
+
}
|
|
649
|
+
)
|
|
650
|
+
|
|
651
|
+
qa = await Task(
|
|
652
|
+
subagent_type="core-quality",
|
|
653
|
+
prompt="Quality validation",
|
|
654
|
+
context={
|
|
655
|
+
"spec_id": spec.id,
|
|
656
|
+
"tests": tests.results,
|
|
657
|
+
"coverage": tests.coverage
|
|
658
|
+
}
|
|
659
|
+
)
|
|
660
|
+
|
|
661
|
+
return {
|
|
662
|
+
"spec": spec,
|
|
663
|
+
"design": design,
|
|
664
|
+
"backend": backend,
|
|
665
|
+
"frontend": frontend,
|
|
666
|
+
"database": database,
|
|
667
|
+
"tests": tests,
|
|
668
|
+
"qa": qa
|
|
669
|
+
}
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
Conditional + Parallel Combination:
|
|
673
|
+
|
|
674
|
+
```python
|
|
675
|
+
async def conditional_parallel_workflow(requests: list):
|
|
676
|
+
"""Route multiple requests in parallel based on analysis."""
|
|
677
|
+
|
|
678
|
+
# Phase 1: Parallel analysis
|
|
679
|
+
analyses = await Promise.all([
|
|
680
|
+
Task(
|
|
681
|
+
subagent_type="plan",
|
|
682
|
+
prompt=f"Analyze request",
|
|
683
|
+
context={"request": req}
|
|
684
|
+
)
|
|
685
|
+
for req in requests
|
|
686
|
+
])
|
|
687
|
+
|
|
688
|
+
# Phase 2: Conditional routing (grouped by type)
|
|
689
|
+
security_tasks = []
|
|
690
|
+
feature_tasks = []
|
|
691
|
+
bug_tasks = []
|
|
692
|
+
|
|
693
|
+
for analysis in analyses:
|
|
694
|
+
if analysis.category == "security":
|
|
695
|
+
security_tasks.append(
|
|
696
|
+
Task(
|
|
697
|
+
subagent_type="security-expert",
|
|
698
|
+
prompt="Handle security issue",
|
|
699
|
+
context={"analysis": analysis}
|
|
700
|
+
)
|
|
701
|
+
)
|
|
702
|
+
elif analysis.category == "feature":
|
|
703
|
+
feature_tasks.append(
|
|
704
|
+
Task(
|
|
705
|
+
subagent_type="code-backend",
|
|
706
|
+
prompt="Implement feature",
|
|
707
|
+
context={"analysis": analysis}
|
|
708
|
+
)
|
|
709
|
+
)
|
|
710
|
+
elif analysis.category == "bug":
|
|
711
|
+
bug_tasks.append(
|
|
712
|
+
Task(
|
|
713
|
+
subagent_type="support-debug",
|
|
714
|
+
prompt="Debug issue",
|
|
715
|
+
context={"analysis": analysis}
|
|
716
|
+
)
|
|
717
|
+
)
|
|
718
|
+
|
|
719
|
+
# Phase 3: Parallel execution by category
|
|
720
|
+
results = await Promise.all([
|
|
721
|
+
*security_tasks,
|
|
722
|
+
*feature_tasks,
|
|
723
|
+
*bug_tasks
|
|
724
|
+
])
|
|
725
|
+
|
|
726
|
+
return results
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
---
|
|
730
|
+
|
|
731
|
+
## Works Well With
|
|
732
|
+
|
|
733
|
+
Agents (Delegation Targets):
|
|
734
|
+
- workflow-spec - SPEC generation
|
|
735
|
+
- workflow-tdd - TDD implementation
|
|
736
|
+
- code-backend - Backend development
|
|
737
|
+
- code-frontend - Frontend development
|
|
738
|
+
- security-expert - Security analysis
|
|
739
|
+
- core-quality - Quality validation
|
|
740
|
+
- workflow-docs - Documentation
|
|
741
|
+
- support-debug - Issue analysis
|
|
742
|
+
|
|
743
|
+
Skills:
|
|
744
|
+
- moai-foundation-token-optimization - Context management
|
|
745
|
+
- moai-core-agent-factory - Agent creation
|
|
746
|
+
- moai-cc-configuration - Config-based routing
|
|
747
|
+
|
|
748
|
+
Foundation Modules:
|
|
749
|
+
- [Agents Reference](agents-reference.md) - 26-agent catalog with delegation guidelines
|
|
750
|
+
- [Token Optimization](token-optimization.md) - Context passing strategies
|
|
751
|
+
- [Execution Rules](execution-rules.md) - Security constraints for delegation
|
|
752
|
+
|
|
753
|
+
---
|
|
754
|
+
|
|
755
|
+
Version: 1.0.0
|
|
756
|
+
Last Updated: 2025-11-25
|
|
757
|
+
Status: Production Ready
|