moai-adk 0.15.1__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 -6
- moai_adk/__main__.py +136 -21
- moai_adk/cli/__init__.py +6 -2
- moai_adk/cli/commands/__init__.py +1 -4
- moai_adk/cli/commands/analyze.py +116 -0
- moai_adk/cli/commands/doctor.py +17 -5
- moai_adk/cli/commands/init.py +105 -47
- moai_adk/cli/commands/language.py +248 -0
- moai_adk/cli/commands/status.py +8 -13
- moai_adk/cli/commands/update.py +1734 -65
- moai_adk/cli/main.py +3 -2
- moai_adk/cli/prompts/init_prompts.py +144 -91
- 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/__init__.py +0 -1
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +400 -0
- moai_adk/core/claude_integration.py +393 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/__init__.py +6 -0
- moai_adk/core/config/auto_spec_config.py +340 -0
- moai_adk/core/config/migration.py +147 -16
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +273 -0
- moai_adk/core/diagnostics/slash_commands.py +0 -1
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +1902 -0
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +8 -1
- moai_adk/core/git/branch.py +0 -1
- moai_adk/core/git/branch_manager.py +2 -10
- moai_adk/core/git/checkpoint.py +1 -7
- moai_adk/core/git/commit.py +0 -1
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/event_detector.py +3 -5
- moai_adk/core/git/manager.py +91 -2
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +157 -0
- moai_adk/core/integration/integration_tester.py +226 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +20 -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.py +202 -0
- moai_adk/core/language_config_resolver.py +485 -0
- moai_adk/core/language_validator.py +543 -0
- moai_adk/core/mcp/setup.py +116 -0
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +481 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +277 -0
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +209 -0
- 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 +139 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +316 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/__init__.py +0 -1
- moai_adk/core/project/backup_utils.py +2 -7
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +17 -39
- moai_adk/core/project/initializer.py +170 -33
- moai_adk/core/project/phase_executor.py +398 -68
- moai_adk/core/project/validator.py +7 -32
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +37 -101
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +918 -0
- moai_adk/core/session_manager.py +651 -0
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +680 -0
- moai_adk/core/spec/ears_template_engine.py +1247 -0
- moai_adk/core/spec/quality_validator.py +687 -0
- moai_adk/core/spec_status_manager.py +478 -0
- moai_adk/core/template/__init__.py +0 -1
- moai_adk/core/template/backup.py +82 -17
- moai_adk/core/template/config.py +112 -40
- moai_adk/core/template/languages.py +0 -1
- moai_adk/core/template/merger.py +75 -26
- moai_adk/core/template/processor.py +750 -72
- moai_adk/core/template_engine.py +90 -48
- 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 +557 -0
- 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 +676 -0
- moai_adk/foundation/trust/validation_checklist.py +1573 -0
- 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/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +105 -0
- moai_adk/statusline/config.py +373 -0
- moai_adk/statusline/enhanced_output_style_detector.py +372 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +264 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +383 -0
- moai_adk/statusline/update_checker.py +129 -0
- moai_adk/statusline/version_reader.py +741 -0
- 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/{alfred/shared/core → moai/lib}/checkpoint.py +9 -36
- 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/{alfred/shared/core → moai/lib}/project.py +63 -44
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/{alfred/core → moai/lib}/timeout.py +40 -16
- 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 +78 -50
- 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 +312 -283
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +291 -94
- 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 +469 -101
- 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 +128 -0
- moai_adk/templates/.git-hooks/pre-push +220 -13
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -1
- moai_adk/templates/.gitignore +197 -13
- moai_adk/templates/.mcp.json +20 -0
- 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 +310 -1050
- moai_adk/utils/__init__.py +24 -2
- moai_adk/utils/banner.py +7 -11
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +241 -0
- moai_adk/utils/logger.py +4 -9
- moai_adk/utils/safe_file_reader.py +206 -0
- moai_adk/{templates/.claude/hooks/alfred/utils → utils}/timeout.py +8 -9
- 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.15.1.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
- {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -80
- moai_adk/core/tags/__init__.py +0 -86
- moai_adk/core/tags/ci_validator.py +0 -463
- moai_adk/core/tags/cli.py +0 -283
- moai_adk/core/tags/generator.py +0 -109
- moai_adk/core/tags/inserter.py +0 -99
- moai_adk/core/tags/mapper.py +0 -126
- moai_adk/core/tags/parser.py +0 -76
- moai_adk/core/tags/pre_commit_validator.py +0 -393
- moai_adk/core/tags/reporter.py +0 -956
- moai_adk/core/tags/tags.py +0 -149
- moai_adk/core/tags/validator.py +0 -897
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -426
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1854
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -880
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -793
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1084
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
- moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
- moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
- moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
- moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
- moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -419
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
- moai_adk/templates/.github/workflows/release.yml +0 -118
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/tag-report.yml +0 -269
- moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
- moai_adk/templates/.moai/config.json +0 -115
- moai_adk/templates/workflows/go-tag-validation.yml +0 -30
- moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
- moai_adk/templates/workflows/python-tag-validation.yml +0 -42
- moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
- moai_adk-0.15.1.dist-info/METADATA +0 -3094
- moai_adk-0.15.1.dist-info/RECORD +0 -365
- {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1435 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai:1-plan
|
|
3
|
+
description: "Define specifications and create development branch or worktree"
|
|
4
|
+
argument-hint: Title 1 Title 2 ... | SPEC-ID modifications [--worktree | --branch]
|
|
5
|
+
allowed-tools: Read, Write, Edit, Grep, Glob, WebFetch, WebSearch, Bash, TodoWrite, AskUserQuestion, Task, Skill
|
|
6
|
+
model: inherit
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Pre-execution Context
|
|
10
|
+
|
|
11
|
+
!git status --porcelain
|
|
12
|
+
!git branch --show-current
|
|
13
|
+
!git log --oneline -10
|
|
14
|
+
!git diff --name-only HEAD
|
|
15
|
+
!find .moai/specs -name "\*.md" -type f 2>/dev/null
|
|
16
|
+
|
|
17
|
+
## Essential Files
|
|
18
|
+
|
|
19
|
+
@.moai/config/config.yaml
|
|
20
|
+
@.moai/project/product.md
|
|
21
|
+
@.moai/project/structure.md
|
|
22
|
+
@.moai/project/tech.md
|
|
23
|
+
.moai/specs/
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# MoAI-ADK Step 1: Establish a plan (Plan) - Always make a plan first and then proceed
|
|
28
|
+
|
|
29
|
+
User Interaction Architecture: AskUserQuestion must be used at COMMAND level only. Subagents invoked via Task() operate in isolated, stateless contexts and cannot interact with users. Collect all user input BEFORE delegating to agents.
|
|
30
|
+
|
|
31
|
+
Batched Design: All AskUserQuestion calls follow batched design principles (1-4 questions per call, max 4 options per question) to minimize user interaction turns. See CLAUDE.md section "User Interaction Architecture" for details.
|
|
32
|
+
|
|
33
|
+
4-Step Workflow Integration: This command implements Steps 1-2 of Alfred's workflow (Intent Understanding → Plan Creation). See CLAUDE.md for full workflow details.
|
|
34
|
+
|
|
35
|
+
## Command Purpose
|
|
36
|
+
|
|
37
|
+
"Plan → Run → Sync" As the first step in the workflow, it supports the entire planning process from ideation to plan creation.
|
|
38
|
+
|
|
39
|
+
Plan for: $ARGUMENTS
|
|
40
|
+
|
|
41
|
+
### Usage Scenarios (3 Execution Patterns)
|
|
42
|
+
|
|
43
|
+
Scenario 1: SPEC Only (Default)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
/moai:1-plan "User authentication system"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
- Creates SPEC documents only
|
|
50
|
+
- Follows existing branch creation logic
|
|
51
|
+
|
|
52
|
+
Scenario 2: SPEC + Branch (Legacy)
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
/moai:1-plan "User authentication system" --branch
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- Creates SPEC documents + Git branch
|
|
59
|
+
- Traditional feature branch workflow
|
|
60
|
+
|
|
61
|
+
Scenario 3: SPEC + Worktree (NEW)
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
/moai:1-plan "User authentication system" --worktree
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- Creates SPEC documents + Git worktree
|
|
68
|
+
- Isolated development environment for parallel SPEC work
|
|
69
|
+
- Displays guidance messages for worktree navigation
|
|
70
|
+
|
|
71
|
+
Flag Priority: `--worktree` > `--branch` > default (SPEC only)
|
|
72
|
+
|
|
73
|
+
## CodeRabbit AI Integration (Local Only)
|
|
74
|
+
|
|
75
|
+
This local environment includes CodeRabbit AI review integration for SPEC documents:
|
|
76
|
+
|
|
77
|
+
Automatic workflows:
|
|
78
|
+
|
|
79
|
+
- SPEC review: CodeRabbit analyzes SPEC metadata and EARS structure
|
|
80
|
+
- GitHub Issue sync: SPEC files automatically create/update GitHub Issues
|
|
81
|
+
- Auto-approval: Draft PRs are approved when quality meets standards (80%+)
|
|
82
|
+
- SPEC quality validation: Checklist for metadata, structure, and content
|
|
83
|
+
|
|
84
|
+
Scope:
|
|
85
|
+
|
|
86
|
+
- Local environment: Full CodeRabbit integration with auto-approval
|
|
87
|
+
- Published packages: Users get GitHub Issue sync only (no CodeRabbit)
|
|
88
|
+
|
|
89
|
+
> See `.coderabbit.yaml` for detailed review rules and SPEC validation checklist
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Associated Agents & Skills
|
|
94
|
+
|
|
95
|
+
Associated Agents for SPEC Planning and Creation:
|
|
96
|
+
|
|
97
|
+
- Explore: Codebase exploration and file system analysis
|
|
98
|
+
WHY: Fast, focused discovery without blocking agent
|
|
99
|
+
IMPACT: Reduces manual project discovery time
|
|
100
|
+
|
|
101
|
+
- manager-spec: SPEC generation in EARS format and planning
|
|
102
|
+
WHY: Specialized domain knowledge for structured requirements
|
|
103
|
+
IMPACT: Ensures consistent SPEC document quality
|
|
104
|
+
|
|
105
|
+
- manager-git: Git workflow and branch management
|
|
106
|
+
WHY: Encapsulates git operations with proper error handling
|
|
107
|
+
IMPACT: Prevents manual git errors and ensures consistency
|
|
108
|
+
|
|
109
|
+
- moai-spec-intelligent-workflow: SPEC workflow orchestration
|
|
110
|
+
WHY: Cross-phase workflow coordination
|
|
111
|
+
IMPACT: Ensures sequential phase execution and context continuity
|
|
112
|
+
|
|
113
|
+
- moai-alfred-ask-user-questions: User interaction patterns
|
|
114
|
+
WHY: Centralized user interaction management
|
|
115
|
+
IMPACT: Consistent question formatting and response handling
|
|
116
|
+
|
|
117
|
+
### Agent Delegation Strategy
|
|
118
|
+
|
|
119
|
+
Phase 1A: Research & Analysis
|
|
120
|
+
|
|
121
|
+
- Use built-in Explore agent for fast codebase analysis (read-only)
|
|
122
|
+
- Use Plan agent (auto-invoked in plan mode) for SPEC research
|
|
123
|
+
- Use MoAI manager-spec agent for SPEC generation
|
|
124
|
+
|
|
125
|
+
Phase 1B: Specialized Analysis
|
|
126
|
+
|
|
127
|
+
- Use MoAI domain agents (expert-backend, expert-database, etc.) for specialized decisions
|
|
128
|
+
- Use mcp-context7 for API documentation research
|
|
129
|
+
- Use mcp-sequential-thinking for complex architectural decisions
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Agent Invocation Patterns (CLAUDE.md Compliance)
|
|
134
|
+
|
|
135
|
+
This command uses agent execution patterns defined in CLAUDE.md (lines 96-120).
|
|
136
|
+
|
|
137
|
+
### Sequential Phase-Based Chaining ✅
|
|
138
|
+
|
|
139
|
+
Command implements sequential chaining through 4 distinct phases:
|
|
140
|
+
|
|
141
|
+
Phase Flow:
|
|
142
|
+
- Phase 1A (Optional): Project Exploration via Explore subagent
|
|
143
|
+
- Phase 1B (Required): SPEC Planning via manager-spec subagent
|
|
144
|
+
- Phase 2: SPEC Document Creation via manager-spec subagent
|
|
145
|
+
- Phase 3: Git Branch Setup via manager-git subagent (conditional)
|
|
146
|
+
|
|
147
|
+
Each phase receives context and outputs from previous phases.
|
|
148
|
+
|
|
149
|
+
WHY: Sequential execution ensures proper dependency management
|
|
150
|
+
- Phase 1B needs exploration results from 1A (if applicable)
|
|
151
|
+
- Phase 2 requires approved plan from Phase 1B
|
|
152
|
+
- Phase 3 depends on created SPEC files from Phase 2
|
|
153
|
+
|
|
154
|
+
IMPACT: Skipping phases or parallel execution would violate dependencies and create incomplete specifications
|
|
155
|
+
|
|
156
|
+
### Parallel Execution ❌
|
|
157
|
+
|
|
158
|
+
Not applicable - phases have explicit dependencies
|
|
159
|
+
|
|
160
|
+
WHY: Each phase depends on outputs from previous phase
|
|
161
|
+
- Cannot create SPEC documents before plan approval
|
|
162
|
+
- Cannot create git branch before SPEC files exist
|
|
163
|
+
|
|
164
|
+
IMPACT: Parallel execution would cause file system inconsistencies and incomplete workflows
|
|
165
|
+
|
|
166
|
+
### Resumable Agent Support ✅
|
|
167
|
+
|
|
168
|
+
Command supports resume pattern for draft SPECs:
|
|
169
|
+
|
|
170
|
+
Resume Command:
|
|
171
|
+
- `/moai:1-plan resume SPEC-XXX`
|
|
172
|
+
- Continues from last saved draft state
|
|
173
|
+
- Preserves user input and planning context
|
|
174
|
+
|
|
175
|
+
WHY: Complex planning sessions may require multiple iterations
|
|
176
|
+
IMPACT: Resume capability prevents loss of planning work and enables iterative refinement
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
Refer to CLAUDE.md "Agent Chaining Patterns" (lines 96-120) for complete pattern architecture.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Execution Philosophy: "Always make a plan first and then proceed."
|
|
185
|
+
|
|
186
|
+
`/moai:1-plan` performs SPEC planning through complete agent delegation:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
User Command: /moai:1-plan "description"
|
|
190
|
+
↓
|
|
191
|
+
/moai:1-plan Command
|
|
192
|
+
└─ Task(subagent_type="Explore" or "manager-spec")
|
|
193
|
+
├─ Phase 1A (Optional): Project Exploration
|
|
194
|
+
├─ Phase 1B (Required): SPEC Planning
|
|
195
|
+
├─ Phase 2: SPEC Document Creation
|
|
196
|
+
└─ Phase 3: Git Branch & PR Setup
|
|
197
|
+
↓
|
|
198
|
+
Output: SPEC documents + branch (conditional) + next steps
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Key Principle: Zero Direct Tool Usage
|
|
202
|
+
|
|
203
|
+
[HARD] Complete Delegation Model:
|
|
204
|
+
|
|
205
|
+
This command uses ONLY Task() and AskUserQuestion():
|
|
206
|
+
WHY: Specialized agents encapsulate domain logic and ensure quality control
|
|
207
|
+
IMPACT: Direct tool usage bypasses expert review and quality gates
|
|
208
|
+
|
|
209
|
+
[HARD] AskUserQuestion at Command Level Only:
|
|
210
|
+
WHY: Subagents via Task() are stateless and cannot interact with users
|
|
211
|
+
IMPACT: Expecting agents to use AskUserQuestion causes workflow failures
|
|
212
|
+
Correct Pattern: Command collects user input, passes choices to Task() as parameters
|
|
213
|
+
|
|
214
|
+
Requirement: All file operations delegated to agents
|
|
215
|
+
- No Read (file operations delegated)
|
|
216
|
+
WHY: Agents handle context-aware file discovery
|
|
217
|
+
IMPACT: Direct read loses architectural context
|
|
218
|
+
|
|
219
|
+
- No Write (file operations delegated)
|
|
220
|
+
WHY: Agents implement validation before file creation
|
|
221
|
+
IMPACT: Direct write skips quality checks
|
|
222
|
+
|
|
223
|
+
- No Edit (file operations delegated)
|
|
224
|
+
WHY: Agents coordinate multi-file updates atomically
|
|
225
|
+
IMPACT: Direct edit risks partial updates
|
|
226
|
+
|
|
227
|
+
- No Bash (all bash commands delegated)
|
|
228
|
+
WHY: Agents handle error recovery and state consistency
|
|
229
|
+
IMPACT: Direct bash loses error handling context
|
|
230
|
+
|
|
231
|
+
Required Tool Usage:
|
|
232
|
+
- Task() for agent orchestration
|
|
233
|
+
WHY: Task ensures structured agent coordination
|
|
234
|
+
IMPACT: Uncoordinated agent calls produce inconsistent results
|
|
235
|
+
|
|
236
|
+
- AskUserQuestion() for user interaction
|
|
237
|
+
WHY: Structured questions ensure consistent user experience
|
|
238
|
+
IMPACT: Informal interaction produces ambiguous responses
|
|
239
|
+
|
|
240
|
+
All complexity is handled by specialized agents, not by direct command execution.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## The 4-Step Agent-Based Workflow Command Logic (v5.0.0)
|
|
245
|
+
|
|
246
|
+
This command implements the first 2 steps of Alfred's 4-step workflow:
|
|
247
|
+
|
|
248
|
+
1. STEP 1: Intent Understanding (Clarify user requirements)
|
|
249
|
+
2. STEP 2: Plan Creation (Create execution strategy with agent delegation)
|
|
250
|
+
3. STEP 3: Task Execution (Execute via manager-tdd - NOT in this command)
|
|
251
|
+
4. STEP 4: Report & Commit (Documentation and git operations - NOT in this command)
|
|
252
|
+
|
|
253
|
+
Command Scope: Only executes Steps 1-2. Steps 3-4 are executed by `/moai:2-run` and `/moai:3-sync`.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## The Command Has THREE Execution Phases
|
|
258
|
+
|
|
259
|
+
1. PHASE 1: Project Analysis & SPEC Planning (STEP 1)
|
|
260
|
+
2. PHASE 2: SPEC Document Creation (STEP 2)
|
|
261
|
+
3. PHASE 3: Git Branch & PR Setup (STEP 2 continuation)
|
|
262
|
+
|
|
263
|
+
Each phase contains explicit step-by-step instructions.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## PHASE 1: Project Analysis & SPEC Planning (STEP 1)
|
|
268
|
+
|
|
269
|
+
PHASE 1 consists of two independent sub-phases to provide flexible workflow based on user request clarity:
|
|
270
|
+
|
|
271
|
+
### PHASE 1 Workflow Overview
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
275
|
+
│ PHASE 1: Project Analysis & SPEC Planning │
|
|
276
|
+
├─────────────────────────────────────────────────────────────┤
|
|
277
|
+
│ │
|
|
278
|
+
│ Phase A (OPTIONAL) │
|
|
279
|
+
│ ┌─────────────────────────────────────────┐ │
|
|
280
|
+
│ │ Explore Agent │ │
|
|
281
|
+
│ │ • Find relevant files by keywords │ │
|
|
282
|
+
│ │ • Locate existing SPEC documents │ │
|
|
283
|
+
│ │ • Identify implementation patterns │ │
|
|
284
|
+
│ └─────────────────────────────────────────┘ │
|
|
285
|
+
│ ↓ │
|
|
286
|
+
│ (exploration results) │
|
|
287
|
+
│ ↓ │
|
|
288
|
+
│ Phase B (REQUIRED) │
|
|
289
|
+
│ ┌─────────────────────────────────────────┐ │
|
|
290
|
+
│ │ ⚙ manager-spec Agent │ │
|
|
291
|
+
│ │ • Analyze project documents │ │
|
|
292
|
+
│ │ • Propose SPEC candidates │ │
|
|
293
|
+
│ │ • Design EARS structure │ │
|
|
294
|
+
│ │ • Request user approval │ │
|
|
295
|
+
│ └─────────────────────────────────────────┘ │
|
|
296
|
+
│ ↓ │
|
|
297
|
+
│ Progress Report & User Confirmation │
|
|
298
|
+
│ • Display analysis results and plan summary │
|
|
299
|
+
│ • Show next steps and deliverables │
|
|
300
|
+
│ • Request final user approval │
|
|
301
|
+
│ ↓ │
|
|
302
|
+
│ PROCEED TO PHASE 2 │
|
|
303
|
+
└─────────────────────────────────────────────────────────────┘
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Key Points:
|
|
307
|
+
|
|
308
|
+
- Phase A is optional - Skip if user provides clear SPEC title
|
|
309
|
+
- Phase B is required - Always runs to analyze project and create SPEC
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
### PHASE 1A: Project Exploration (Optional - if needed)
|
|
314
|
+
|
|
315
|
+
#### When to run Phase A
|
|
316
|
+
|
|
317
|
+
This phase executes conditionally based on request clarity:
|
|
318
|
+
|
|
319
|
+
- [SOFT] User provides only vague/unstructured request
|
|
320
|
+
WHY: Vague requests require exploration to identify relevant context
|
|
321
|
+
IMPACT: Skipping exploration for vague requests produces unfocused SPECs
|
|
322
|
+
|
|
323
|
+
- [SOFT] Need to find existing files and patterns
|
|
324
|
+
WHY: Discovery prevents duplicate work and informs architecture decisions
|
|
325
|
+
IMPACT: Missing patterns leads to inconsistent implementation approaches
|
|
326
|
+
|
|
327
|
+
- [SOFT] Unclear about current project state
|
|
328
|
+
WHY: Project context shapes technical constraints and dependencies
|
|
329
|
+
IMPACT: Uninformed SPECs fail to account for existing architecture
|
|
330
|
+
|
|
331
|
+
#### Step 1A.1: Invoke Explore Agent (Optional)
|
|
332
|
+
|
|
333
|
+
Conditional Execution: Run Phase A ONLY if user request lacks clarity
|
|
334
|
+
|
|
335
|
+
If user request is vague or needs exploration:
|
|
336
|
+
|
|
337
|
+
Use the Explore subagent to:
|
|
338
|
+
|
|
339
|
+
Analyze the current project directory structure and relevant files based on the user request: "$ARGUMENTS"
|
|
340
|
+
|
|
341
|
+
Tasks:
|
|
342
|
+
|
|
343
|
+
1. Find relevant files by keywords from the user request
|
|
344
|
+
2. Locate existing SPEC documents (.moai/specs/\*.md)
|
|
345
|
+
3. Identify implementation patterns and dependencies
|
|
346
|
+
4. Discover project configuration files
|
|
347
|
+
5. Analyze existing codebase structure
|
|
348
|
+
|
|
349
|
+
Report back:
|
|
350
|
+
|
|
351
|
+
- List of relevant files found
|
|
352
|
+
- Existing SPEC candidates discovered
|
|
353
|
+
- Implementation patterns identified
|
|
354
|
+
- Technical constraints and dependencies
|
|
355
|
+
- Recommendations for user clarification
|
|
356
|
+
|
|
357
|
+
Return comprehensive results to guide manager-spec agent.
|
|
358
|
+
|
|
359
|
+
Phase 1A Completion:
|
|
360
|
+
|
|
361
|
+
- Log exploration completion status
|
|
362
|
+
- Proceed to Phase 1B with exploration context
|
|
363
|
+
|
|
364
|
+
Else (user provided clear SPEC title):
|
|
365
|
+
|
|
366
|
+
- Skip Phase A
|
|
367
|
+
- Log Phase 1A as skipped
|
|
368
|
+
- Proceed directly to Phase 1B
|
|
369
|
+
|
|
370
|
+
Decision Logic: If user provided clear SPEC title (like "Add authentication module"), skip Phase A entirely and proceed directly to Phase B.
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
### PHASE 1B: SPEC Planning (Required)
|
|
375
|
+
|
|
376
|
+
#### Step 1B.1: Invoke manager-spec for project analysis
|
|
377
|
+
|
|
378
|
+
Use the manager-spec subagent to:
|
|
379
|
+
|
|
380
|
+
Analyze project and create SPEC plan for: $ARGUMENTS
|
|
381
|
+
|
|
382
|
+
Context Handling:
|
|
383
|
+
|
|
384
|
+
- If Phase 1A was executed: Continue from project exploration results
|
|
385
|
+
- If Phase 1A was skipped: Start fresh analysis based on user request: "$ARGUMENTS"
|
|
386
|
+
|
|
387
|
+
Language Configuration:
|
|
388
|
+
|
|
389
|
+
- conversation_language: {{CONVERSATION_LANGUAGE}}
|
|
390
|
+
- language_name: {{CONVERSATION_LANGUAGE_NAME}}
|
|
391
|
+
|
|
392
|
+
Critical Language Rules:
|
|
393
|
+
|
|
394
|
+
- Receive instructions in agent_prompt_language from config (default: English)
|
|
395
|
+
- Respond in conversation_language from config (user's preferred language)
|
|
396
|
+
- All SPEC documents content must be written in {{CONVERSATION_LANGUAGE}}
|
|
397
|
+
- Code examples and technical keywords remain in English (global standard)
|
|
398
|
+
|
|
399
|
+
Task Instructions:
|
|
400
|
+
|
|
401
|
+
PHASE 1B.1: Project Analysis and SPEC Discovery
|
|
402
|
+
|
|
403
|
+
1. Document Analysis: Scan for existing documentation and patterns
|
|
404
|
+
|
|
405
|
+
- Product document: Find relevant files
|
|
406
|
+
- Structure document: Identify architectural patterns
|
|
407
|
+
- Tech document: Discover technical constraints
|
|
408
|
+
|
|
409
|
+
2. SPEC Candidate Generation: Create 1-3 SPEC candidates
|
|
410
|
+
|
|
411
|
+
- Analyze existing SPECs in `.moai/specs/` for duplicates
|
|
412
|
+
- Check related GitHub issues via appropriate tools
|
|
413
|
+
- Generate unique SPEC candidates with proper naming
|
|
414
|
+
|
|
415
|
+
3. EARS Structure Design: For each SPEC candidate:
|
|
416
|
+
- Define clear requirements using EARS grammar
|
|
417
|
+
- Design acceptance criteria with Given/When/Then
|
|
418
|
+
- Identify technical dependencies and constraints
|
|
419
|
+
|
|
420
|
+
PHASE 1B.2: Implementation Plan Creation
|
|
421
|
+
For the selected SPEC candidate, create a comprehensive implementation plan:
|
|
422
|
+
|
|
423
|
+
Technical Constraints & Dependencies:
|
|
424
|
+
|
|
425
|
+
- Library versions: Find latest stable versions
|
|
426
|
+
- Specify exact versions (e.g., `fastapi>=0.118.3`)
|
|
427
|
+
- Exclude beta/alpha versions, select only production stable versions
|
|
428
|
+
- Note: Detailed versions finalized in `/moai:2-run` stage
|
|
429
|
+
|
|
430
|
+
Precautions:
|
|
431
|
+
|
|
432
|
+
- Technical constraints: [Restraints to consider]
|
|
433
|
+
- Dependency: [Relevance with other SPECs]
|
|
434
|
+
- Branch strategy: [Processing by Personal/Team mode]
|
|
435
|
+
|
|
436
|
+
Expected deliverables:
|
|
437
|
+
|
|
438
|
+
- spec.md: [Core specifications of the EARS structure]
|
|
439
|
+
- plan.md: [Implementation plan]
|
|
440
|
+
- acceptance.md: [Acceptance criteria]
|
|
441
|
+
- Branches/PR: [Git operations by mode]
|
|
442
|
+
|
|
443
|
+
Phase 1B Completion:
|
|
444
|
+
|
|
445
|
+
- Log planning completion status
|
|
446
|
+
- Store context for subsequent phases
|
|
447
|
+
|
|
448
|
+
#### Step 1B.2: Request user approval
|
|
449
|
+
|
|
450
|
+
After the manager-spec presents the implementation plan report, use AskUserQuestion tool for explicit approval:
|
|
451
|
+
|
|
452
|
+
Tool: AskUserQuestion
|
|
453
|
+
Parameters:
|
|
454
|
+
questions:
|
|
455
|
+
|
|
456
|
+
- question: "Planning is complete. Would you like to proceed with SPEC creation based on this plan?"
|
|
457
|
+
header: "SPEC Generation"
|
|
458
|
+
multiSelect: false
|
|
459
|
+
options:
|
|
460
|
+
- label: "Proceed with SPEC Creation"
|
|
461
|
+
description: "Create SPEC files in .moai/specs/SPEC-{ID}/ based on approved plan"
|
|
462
|
+
- label: "Request Plan Modification"
|
|
463
|
+
description: "Modify plan content before SPEC creation"
|
|
464
|
+
- label: "Save as Draft"
|
|
465
|
+
description: "Save plan as draft and continue later"
|
|
466
|
+
- label: "Cancel"
|
|
467
|
+
description: "Discard plan and return to planning stage"
|
|
468
|
+
|
|
469
|
+
After AskUserQuestion returns user selection, proceed to Step 3.5.
|
|
470
|
+
|
|
471
|
+
#### Step 3.5: Progress Report and User Confirmation
|
|
472
|
+
|
|
473
|
+
This step automatically executes after PHASE 1 completion.
|
|
474
|
+
|
|
475
|
+
Display detailed progress report to user and get final approval:
|
|
476
|
+
|
|
477
|
+
```
|
|
478
|
+
Progress Report for PHASE 1 Completion
|
|
479
|
+
|
|
480
|
+
Completed Items:
|
|
481
|
+
- Project document analysis completed
|
|
482
|
+
- Existing SPEC scan completed
|
|
483
|
+
- SPEC candidate generation completed
|
|
484
|
+
- Technical constraint analysis completed
|
|
485
|
+
|
|
486
|
+
Plan Summary:
|
|
487
|
+
- Selected SPEC: {SPEC ID} - {SPEC Title}
|
|
488
|
+
- Priority: {Priority}
|
|
489
|
+
- Estimated time: {Time Estimation}
|
|
490
|
+
- Main technology stack: {Technology Stack}
|
|
491
|
+
|
|
492
|
+
Next Phase Plan (PHASE 2):
|
|
493
|
+
- spec.md creation: Core specifications with EARS structure
|
|
494
|
+
- plan.md creation: Detailed implementation plan
|
|
495
|
+
- acceptance.md creation: Acceptance criteria and scenarios
|
|
496
|
+
- Directory: .moai/specs/SPEC-{ID}/
|
|
497
|
+
|
|
498
|
+
Important Notes:
|
|
499
|
+
- Existing files may be overwritten
|
|
500
|
+
- Dependencies: {Dependencies}
|
|
501
|
+
- Resource requirements: {Resource Requirements}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
Tool: AskUserQuestion
|
|
505
|
+
Parameters:
|
|
506
|
+
questions:
|
|
507
|
+
|
|
508
|
+
- question: "Plan completion and progress report\n\nAnalysis results:\n- SPEC candidates found: [Number]\n- Priority: [Priority]\n- Estimated work time: [Time Estimation]\n\nNext steps:\n1. PHASE 2: SPEC file creation\n - .moai/specs/SPEC-{ID}/\n - spec.md, plan.md, acceptance.md creation\n\nProceed with the plan?"
|
|
509
|
+
header: "Plan Confirmation"
|
|
510
|
+
multiSelect: false
|
|
511
|
+
options:
|
|
512
|
+
- label: "Proceed"
|
|
513
|
+
description: "Start SPEC creation according to plan"
|
|
514
|
+
- label: "Detailed Revision"
|
|
515
|
+
description: "Revise plan content then proceed"
|
|
516
|
+
- label: "Save as Draft"
|
|
517
|
+
description: "Save plan and continue later"
|
|
518
|
+
- label: "Cancel"
|
|
519
|
+
description: "Cancel operation and discard plan"
|
|
520
|
+
|
|
521
|
+
Process user response from AskUserQuestion in Step 4.
|
|
522
|
+
|
|
523
|
+
#### Step 4: Process user's answer
|
|
524
|
+
|
|
525
|
+
Based on the user's choice:
|
|
526
|
+
|
|
527
|
+
IF user selected "Proceed":
|
|
528
|
+
|
|
529
|
+
1. Store approval confirmation
|
|
530
|
+
2. Print: " Plan approved. Proceeding to PHASE 2."
|
|
531
|
+
3. Proceed to PHASE 2 (SPEC Document Creation)
|
|
532
|
+
|
|
533
|
+
IF user selected "Detailed Revision":
|
|
534
|
+
|
|
535
|
+
1. Ask the user: "What changes would you like to make to the plan?"
|
|
536
|
+
2. Collect user's feedback via AskUserQuestion
|
|
537
|
+
3. Pass feedback to manager-spec agent
|
|
538
|
+
4. manager-spec updates the plan
|
|
539
|
+
5. Return to Step 3.5 (request approval again with updated plan)
|
|
540
|
+
|
|
541
|
+
IF user selected "Save as Draft":
|
|
542
|
+
|
|
543
|
+
1. Create directory: `.moai/specs/SPEC-{ID}/`
|
|
544
|
+
2. Save plan to `.moai/specs/SPEC-{ID}/plan.md` with status: draft
|
|
545
|
+
3. Create commit: `draft(spec): WIP SPEC-{ID} - {title}`
|
|
546
|
+
4. Print to user: "Draft saved. Resume with: `/moai:1-plan resume SPEC-{ID}`"
|
|
547
|
+
5. End command execution (stop here)
|
|
548
|
+
|
|
549
|
+
IF user selected "Cancel":
|
|
550
|
+
|
|
551
|
+
1. Print to user: "Plan discarded. No files created."
|
|
552
|
+
2. End command execution (stop here)
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## PHASE 2: SPEC Document Creation (STEP 2 - After Approval)
|
|
557
|
+
|
|
558
|
+
This phase ONLY executes IF the user selected "Proceed" in Step 3.5.
|
|
559
|
+
|
|
560
|
+
Your task is to create the SPEC document files in the correct directory structure.
|
|
561
|
+
|
|
562
|
+
### Critical Rule: Directory Naming Convention
|
|
563
|
+
|
|
564
|
+
[HARD] SPEC Directory Structure Requirement:
|
|
565
|
+
|
|
566
|
+
Format requirement: `.moai/specs/SPEC-{ID}/`
|
|
567
|
+
WHY: Standardized directory structure enables automated discovery and tooling
|
|
568
|
+
IMPACT: Non-standard naming breaks automation and causes deployment failures
|
|
569
|
+
|
|
570
|
+
Correct Examples of Required Format:
|
|
571
|
+
|
|
572
|
+
- `SPEC-AUTH-001/` - Domain single, properly formatted
|
|
573
|
+
- `SPEC-REFACTOR-001/` - Domain single, properly formatted
|
|
574
|
+
- `SPEC-UPDATE-REFACTOR-001/` - Composite domains (2), properly formatted
|
|
575
|
+
|
|
576
|
+
Examples of Incorrect Formats to Avoid:
|
|
577
|
+
|
|
578
|
+
- `AUTH-001/` - Missing SPEC- prefix breaks automation
|
|
579
|
+
- `SPEC-001-auth/` - Additional text after ID violates convention
|
|
580
|
+
- `SPEC-AUTH-001-jwt/` - Additional text after ID violates convention
|
|
581
|
+
|
|
582
|
+
[HARD] ID Uniqueness Verification Requirement:
|
|
583
|
+
|
|
584
|
+
Verification scope: Search entire .moai/specs/ directory before creation
|
|
585
|
+
WHY: Duplicate IDs cause merge conflicts and implementation uncertainty
|
|
586
|
+
IMPACT: Duplicate IDs create version ambiguity and maintenance chaos
|
|
587
|
+
|
|
588
|
+
Verification output must include:
|
|
589
|
+
|
|
590
|
+
- exists: Boolean indicating whether ID already exists
|
|
591
|
+
- locations: Array of all conflicting file paths (empty if no conflicts)
|
|
592
|
+
- recommendation: Text assessment ("safe to create" or "duplicate found - use ID-XXX instead")
|
|
593
|
+
|
|
594
|
+
[SOFT] Composite Domain Naming Guidance:
|
|
595
|
+
|
|
596
|
+
- Allow: `UPDATE-REFACTOR-001` (2 domains maximum)
|
|
597
|
+
WHY: Two domains indicate coordinated work without excessive complexity
|
|
598
|
+
IMPACT: Two-domain SPECs maintain focus and scope
|
|
599
|
+
|
|
600
|
+
- Caution: `UPDATE-REFACTOR-FIX-001` (3+ domains not recommended)
|
|
601
|
+
WHY: Three or more domains indicate scope creep and mixed concerns
|
|
602
|
+
IMPACT: Complex domain names signal SPECs that should be split
|
|
603
|
+
|
|
604
|
+
### Step 1: Invoke manager-spec for SPEC creation
|
|
605
|
+
|
|
606
|
+
Use the manager-spec subagent to:
|
|
607
|
+
|
|
608
|
+
Create SPEC document files for approved plan
|
|
609
|
+
|
|
610
|
+
Context Continuity:
|
|
611
|
+
|
|
612
|
+
- Continue from the SPEC planning phase in Phase 1B
|
|
613
|
+
- Use full planning context (project analysis, SPEC candidates, implementation plan) to generate comprehensive SPEC document files
|
|
614
|
+
|
|
615
|
+
Language Configuration:
|
|
616
|
+
|
|
617
|
+
- conversation_language: {{CONVERSATION_LANGUAGE}}
|
|
618
|
+
- language_name: {{CONVERSATION_LANGUAGE_NAME}}
|
|
619
|
+
|
|
620
|
+
Critical Language Rules:
|
|
621
|
+
|
|
622
|
+
- Receive instructions in agent_prompt_language from config (default: English)
|
|
623
|
+
- Respond in conversation_language from config (user's preferred language)
|
|
624
|
+
- All SPEC documents content must be written in {{CONVERSATION_LANGUAGE}}
|
|
625
|
+
- Technical terms and function names remain in English (global standard)
|
|
626
|
+
|
|
627
|
+
SPEC File Generation Rules (MANDATORY):
|
|
628
|
+
|
|
629
|
+
[HARD] Create Directory Structure, Not Single Files:
|
|
630
|
+
|
|
631
|
+
Requirement: Always create folder structure for SPEC documents
|
|
632
|
+
WHY: Directory structure enables multi-file organization and metadata storage
|
|
633
|
+
IMPACT: Single .md files prevent future tool integration and violate structure assumptions
|
|
634
|
+
|
|
635
|
+
Correct approach: Create `.moai/specs/SPEC-AUTH-001/` as directory
|
|
636
|
+
Incorrect approach: Create `.moai/specs/SPEC-AUTH-001.md` as single file
|
|
637
|
+
|
|
638
|
+
[HARD] Verify Before Creation:
|
|
639
|
+
|
|
640
|
+
Requirement: Check directory name format and ID duplicates before writing files
|
|
641
|
+
WHY: Pre-flight verification prevents invalid states and merge conflicts
|
|
642
|
+
IMPACT: Writing invalid files creates cleanup burden and workflow disruption
|
|
643
|
+
|
|
644
|
+
[HARD] Quality Gate Compliance:
|
|
645
|
+
|
|
646
|
+
Requirement: Follow these rules exactly for quality gate to pass
|
|
647
|
+
WHY: Quality gates ensure system reliability and consistency
|
|
648
|
+
IMPACT: Non-compliance causes pipeline failures and deployment blocks
|
|
649
|
+
|
|
650
|
+
SPEC Document Creation (Step-by-Step):
|
|
651
|
+
|
|
652
|
+
Step 1: Verify SPEC ID Format
|
|
653
|
+
|
|
654
|
+
- Format: SPEC-{DOMAIN}-{NUMBER}
|
|
655
|
+
- Examples: SPEC-AUTH-001, SPEC-REFACTOR-001, SPEC-UPDATE-REFACTOR-001
|
|
656
|
+
- Wrong: AUTH-001, SPEC-001-auth, SPEC-AUTH-001-jwt
|
|
657
|
+
|
|
658
|
+
Step 2: Verify ID Uniqueness
|
|
659
|
+
|
|
660
|
+
- Search .moai/specs/ for existing SPEC files
|
|
661
|
+
- If duplicate ID found → Change ID or update existing SPEC
|
|
662
|
+
- If ID is unique → Proceed to Step 3
|
|
663
|
+
|
|
664
|
+
Step 3: Create Directory Structure
|
|
665
|
+
|
|
666
|
+
- Create directory: .moai/specs/SPEC-{SPEC_ID}/
|
|
667
|
+
- Directory creation completes synchronously before Step 4
|
|
668
|
+
|
|
669
|
+
Step 4: Generate 3 SPEC Files (SIMULTANEOUS - Required)
|
|
670
|
+
|
|
671
|
+
- Create all 3 files at once:
|
|
672
|
+
- .moai/specs/SPEC-{SPEC_ID}/spec.md
|
|
673
|
+
- .moai/specs/SPEC-{SPEC_ID}/plan.md
|
|
674
|
+
- .moai/specs/SPEC-{SPEC_ID}/acceptance.md
|
|
675
|
+
|
|
676
|
+
File Requirements:
|
|
677
|
+
|
|
678
|
+
spec.md Requirements:
|
|
679
|
+
|
|
680
|
+
- YAML frontmatter with all 7 required fields:
|
|
681
|
+
- id: SPEC-{SPEC_ID}
|
|
682
|
+
- version: "1.0.0"
|
|
683
|
+
- status: "draft"
|
|
684
|
+
- created: "{{YYYY-MM-DD}}"
|
|
685
|
+
- updated: "{{YYYY-MM-DD}}"
|
|
686
|
+
- author: "{{AUTHOR_NAME}}"
|
|
687
|
+
- priority: "{{HIGH|MEDIUM|LOW}}"
|
|
688
|
+
- HISTORY section immediately after frontmatter
|
|
689
|
+
- Complete EARS structure with all 5 requirement types
|
|
690
|
+
|
|
691
|
+
plan.md Requirements:
|
|
692
|
+
|
|
693
|
+
- Implementation plan with detailed steps
|
|
694
|
+
- Task decomposition and dependencies
|
|
695
|
+
- Resource requirements and timeline
|
|
696
|
+
- Technology stack specifications
|
|
697
|
+
- Risk analysis and mitigation strategies
|
|
698
|
+
|
|
699
|
+
acceptance.md Requirements:
|
|
700
|
+
|
|
701
|
+
- Minimum 2 Given/When/Then test scenarios
|
|
702
|
+
- Edge case testing scenarios
|
|
703
|
+
- Success criteria and validation methods
|
|
704
|
+
- Performance/quality gate criteria
|
|
705
|
+
|
|
706
|
+
Quality Assurance:
|
|
707
|
+
|
|
708
|
+
- Information not in product/structure/tech document supplemented by asking new questions
|
|
709
|
+
- Acceptance Criteria written at least 2 times in Given/When/Then format
|
|
710
|
+
- Number of requirement modules ≤ 5 (if exceeded, include justification in SPEC)
|
|
711
|
+
|
|
712
|
+
Git Integration:
|
|
713
|
+
|
|
714
|
+
- Generate commit messages following conventional commits
|
|
715
|
+
- Create appropriate branch names based on git strategy
|
|
716
|
+
- Include SPEC identifiers in commit messages
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
## PHASE 3: Git Branch & PR Setup (STEP 2 continuation)
|
|
721
|
+
|
|
722
|
+
### CRITICAL: PHASE 3 Execution is Conditional on Config AND Flags
|
|
723
|
+
|
|
724
|
+
PHASE 3 executes ONLY IF:
|
|
725
|
+
|
|
726
|
+
1. PHASE 2 completed successfully
|
|
727
|
+
2. One of these conditions is met:
|
|
728
|
+
- `--worktree` flag is provided (NEW: Worktree creation)
|
|
729
|
+
- `--branch` flag is provided OR user chose branch creation
|
|
730
|
+
- Configuration permits branch creation
|
|
731
|
+
- `github.spec_git_workflow` is explicitly configured
|
|
732
|
+
|
|
733
|
+
PHASE 3 Branch Logic:
|
|
734
|
+
|
|
735
|
+
- If `--worktree` flag: Skip traditional branch creation, create worktree instead
|
|
736
|
+
- If `--branch` flag: Follow traditional branch creation logic
|
|
737
|
+
- If no flags: Follow existing AskUserQuestion flow for branch choice
|
|
738
|
+
|
|
739
|
+
PHASE 3 is SKIPPED IF:
|
|
740
|
+
|
|
741
|
+
- `github.spec_git_workflow == "develop_direct"` (Direct commits, no branches)
|
|
742
|
+
- Configuration validation fails
|
|
743
|
+
- User permissions insufficient
|
|
744
|
+
- No branch/worktree creation flags provided AND user chooses "no branch"
|
|
745
|
+
|
|
746
|
+
---
|
|
747
|
+
|
|
748
|
+
### Step 1: Read and Validate Git Configuration
|
|
749
|
+
|
|
750
|
+
MANDATORY: Read configuration BEFORE any git operations
|
|
751
|
+
|
|
752
|
+
Execute the following config validation (this is pseudo-code representing the actual decision logic):
|
|
753
|
+
|
|
754
|
+
```python
|
|
755
|
+
# Step 1A: Read configuration from .moai/config/config.yaml
|
|
756
|
+
config = read_json(".moai/config/config.yaml")
|
|
757
|
+
git_mode = config.get("git_strategy", {}).get("mode") # "personal" or "team"
|
|
758
|
+
spec_workflow = config.get("github", {}).get("spec_git_workflow") # Required
|
|
759
|
+
|
|
760
|
+
# Step 1B: Validate spec_git_workflow value
|
|
761
|
+
valid_workflows = ["develop_direct", "feature_branch", "per_spec"]
|
|
762
|
+
if spec_workflow not in valid_workflows:
|
|
763
|
+
ERROR: f"Invalid spec_git_workflow: {spec_workflow}"
|
|
764
|
+
ERROR: f"Must be one of: {valid_workflows}"
|
|
765
|
+
SKIP_PHASE_3 = True
|
|
766
|
+
ABORT_GIT_OPERATIONS()
|
|
767
|
+
|
|
768
|
+
# Step 1C: Validate consistency
|
|
769
|
+
if git_mode == "personal" and spec_workflow == "develop_direct":
|
|
770
|
+
CONSISTENCY_OK = True # Consistent
|
|
771
|
+
elif git_mode == "personal" and spec_workflow in ["feature_branch", "per_spec"]:
|
|
772
|
+
WARN: "Personal mode with branch creation is non-standard but allowed"
|
|
773
|
+
CONSISTENCY_OK = True
|
|
774
|
+
elif git_mode == "team" and spec_workflow in ["feature_branch", "per_spec"]:
|
|
775
|
+
CONSISTENCY_OK = True
|
|
776
|
+
else:
|
|
777
|
+
ERROR: "Inconsistent git configuration"
|
|
778
|
+
ABORT_GIT_OPERATIONS()
|
|
779
|
+
|
|
780
|
+
# Step 1D: Determine PHASE 3 routing
|
|
781
|
+
log(f"Git Config: mode={git_mode}, spec_workflow={spec_workflow}")
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
Visual: Configuration validation checkpoint
|
|
785
|
+
|
|
786
|
+
```
|
|
787
|
+
git_mode = "personal" ?
|
|
788
|
+
├─ spec_workflow = "develop_direct" → PHASE 3 SKIPPED (ROUTE A)
|
|
789
|
+
├─ spec_workflow = "feature_branch" → PHASE 3 EXECUTES (ROUTE B)
|
|
790
|
+
└─ spec_workflow = "per_spec" → PHASE 3 WITH USER ASK (ROUTE C)
|
|
791
|
+
git_mode = "team" ?
|
|
792
|
+
└─ (spec_workflow value ignored) → PHASE 3 EXECUTES (ROUTE D - Team Mode)
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
---
|
|
796
|
+
|
|
797
|
+
### Step 2: Branch Creation Logic (All 3 Modes)
|
|
798
|
+
|
|
799
|
+
All modes use common `branch_creation.prompt_always` configuration
|
|
800
|
+
|
|
801
|
+
#### Step 2.1: Determine Branch Creation Behavior
|
|
802
|
+
|
|
803
|
+
Based on config `git_strategy.branch_creation.prompt_always`:
|
|
804
|
+
|
|
805
|
+
```python
|
|
806
|
+
# Step 2.1: Read branch creation configuration
|
|
807
|
+
prompt_always = config.get("git_strategy", {})
|
|
808
|
+
.get("branch_creation", {})
|
|
809
|
+
.get("prompt_always", True) # Default: true
|
|
810
|
+
|
|
811
|
+
if prompt_always == True:
|
|
812
|
+
ACTION = "ASK_USER_FOR_BRANCH_CREATION"
|
|
813
|
+
elif prompt_always == False:
|
|
814
|
+
if git_mode == "manual":
|
|
815
|
+
ACTION = "SKIP_BRANCH_CREATION"
|
|
816
|
+
else: # personal or team
|
|
817
|
+
ACTION = "AUTO_CREATE_BRANCH"
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
---
|
|
821
|
+
|
|
822
|
+
#### Step 2.2: Route A - Ask User (When `prompt_always: true`)
|
|
823
|
+
|
|
824
|
+
CONDITION: `branch_creation.prompt_always == true`
|
|
825
|
+
|
|
826
|
+
ACTION: Ask user for branch/worktree creation preference
|
|
827
|
+
|
|
828
|
+
**Step 1: Check auto_branch configuration**
|
|
829
|
+
|
|
830
|
+
Read configuration value from config.yaml:
|
|
831
|
+
- Path: git_strategy.automation.auto_branch
|
|
832
|
+
- Default: true
|
|
833
|
+
|
|
834
|
+
**Step 2: Early exit if auto_branch is disabled**
|
|
835
|
+
|
|
836
|
+
If auto_branch equals false:
|
|
837
|
+
- Set ROUTE to USE_CURRENT_BRANCH
|
|
838
|
+
- Skip to Step 2.4 immediately
|
|
839
|
+
- Do NOT ask user any questions
|
|
840
|
+
|
|
841
|
+
**Step 3: Ask user if auto_branch is enabled**
|
|
842
|
+
|
|
843
|
+
Use AskUserQuestion tool with the following parameters:
|
|
844
|
+
- Question: "Create a development environment for this SPEC?"
|
|
845
|
+
- Header: "Development Environment"
|
|
846
|
+
- MultiSelect: false
|
|
847
|
+
- Options:
|
|
848
|
+
1. "Create Worktree" - Create isolated worktree environment (recommended for parallel SPEC development)
|
|
849
|
+
2. "Create Branch" - Create feature/SPEC-{SPEC_ID} branch (traditional workflow)
|
|
850
|
+
3. "Use current branch" - Work directly on current branch
|
|
851
|
+
|
|
852
|
+
**Step 4: Determine route based on user choice**
|
|
853
|
+
|
|
854
|
+
Based on user selection:
|
|
855
|
+
- If "Create Worktree" selected: Set ROUTE to CREATE_WORKTREE
|
|
856
|
+
- If "Create Branch" selected: Set ROUTE to CREATE_BRANCH
|
|
857
|
+
- If "Use current branch" selected: Set ROUTE to USE_CURRENT_BRANCH
|
|
858
|
+
|
|
859
|
+
Next Step: Go to Step 2.5 (worktree), 2.3 (branch), or 2.4 (current) based on route
|
|
860
|
+
|
|
861
|
+
---
|
|
862
|
+
|
|
863
|
+
#### Step 2.3: Create Feature Branch (After User Choice OR Auto-Creation)
|
|
864
|
+
|
|
865
|
+
CONDITION:
|
|
866
|
+
- User selected "Create Branch"
|
|
867
|
+
- OR (`prompt_always: false` AND git_mode in [personal, team])
|
|
868
|
+
- AND `git_strategy.automation.auto_branch == true`
|
|
869
|
+
|
|
870
|
+
If `auto_branch: false`: Skip to Step 2.4 (Use current branch)
|
|
871
|
+
|
|
872
|
+
ACTION: Invoke manager-git to create feature branch
|
|
873
|
+
|
|
874
|
+
Use the manager-git subagent to:
|
|
875
|
+
|
|
876
|
+
Create feature branch for SPEC implementation
|
|
877
|
+
|
|
878
|
+
Instructions:
|
|
879
|
+
|
|
880
|
+
- MODE: {git_mode} (manual/personal/team)
|
|
881
|
+
- BRANCH_CREATION: prompt_always = {prompt_always}
|
|
882
|
+
|
|
883
|
+
Tasks:
|
|
884
|
+
|
|
885
|
+
1. Create branch: `feature/SPEC-{SPEC_ID}-{description}`
|
|
886
|
+
2. Set tracking upstream if remote exists
|
|
887
|
+
3. Switch to new branch
|
|
888
|
+
4. Create initial commit (if appropriate for mode)
|
|
889
|
+
|
|
890
|
+
Validation:
|
|
891
|
+
|
|
892
|
+
- Verify branch was created and checked out
|
|
893
|
+
- Verify current branch is feature/SPEC-{SPEC_ID}
|
|
894
|
+
- Return branch creation status
|
|
895
|
+
|
|
896
|
+
Note: PR creation is handled separately in /moai:2-run or /moai:3-sync (Team mode only)
|
|
897
|
+
|
|
898
|
+
Expected Outcome:
|
|
899
|
+
|
|
900
|
+
```
|
|
901
|
+
Feature branch created: feature/SPEC-{SPEC_ID}-description
|
|
902
|
+
Current branch switched to feature branch
|
|
903
|
+
Ready for implementation in /moai:2-run
|
|
904
|
+
```
|
|
905
|
+
|
|
906
|
+
---
|
|
907
|
+
|
|
908
|
+
#### Step 2.4: Skip Branch Creation (After User Choice OR Manual Mode)
|
|
909
|
+
|
|
910
|
+
CONDITION: User selected "Use current branch" OR (`prompt_always: false` AND git_mode == manual)
|
|
911
|
+
|
|
912
|
+
ACTION: Skip branch creation, continue with current branch
|
|
913
|
+
|
|
914
|
+
```
|
|
915
|
+
Branch creation skipped
|
|
916
|
+
|
|
917
|
+
Behavior:
|
|
918
|
+
- SPEC files created on current branch
|
|
919
|
+
- NO manager-git agent invoked
|
|
920
|
+
- Ready for /moai:2-run implementation
|
|
921
|
+
- Commits will be made directly to current branch during TDD cycle
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
---
|
|
925
|
+
|
|
926
|
+
#### Step 2.5: Worktree Creation (NEW - When --worktree flag provided)
|
|
927
|
+
|
|
928
|
+
CONDITION: `--worktree` flag is provided in user command
|
|
929
|
+
|
|
930
|
+
ACTION: Create Git worktree using WorktreeManager
|
|
931
|
+
|
|
932
|
+
```python
|
|
933
|
+
# Step 2.5: Create worktree (when --worktree flag provided)
|
|
934
|
+
# Parse command arguments to check for --worktree flag
|
|
935
|
+
import sys
|
|
936
|
+
import shlex
|
|
937
|
+
from pathlib import Path
|
|
938
|
+
|
|
939
|
+
# Parse command arguments to detect --worktree flag
|
|
940
|
+
command_args = shlex.split("$ARGUMENTS" if "$ARGUMENTS" else "")
|
|
941
|
+
has_worktree_flag = "--worktree" in command_args
|
|
942
|
+
has_branch_flag = "--branch" in command_args
|
|
943
|
+
|
|
944
|
+
if has_worktree_flag:
|
|
945
|
+
# Worktree creation logic
|
|
946
|
+
try:
|
|
947
|
+
# Import WorktreeManager from the implemented CLI module
|
|
948
|
+
from moai_adk.cli.worktree.manager import WorktreeManager
|
|
949
|
+
|
|
950
|
+
# Determine paths
|
|
951
|
+
project_root = Path.cwd() # Current working directory
|
|
952
|
+
worktree_root = Path.home() / "worktrees" / "MoAI-ADK" # Default worktree root
|
|
953
|
+
|
|
954
|
+
# Initialize worktree manager
|
|
955
|
+
worktree_manager = WorktreeManager(project_root, worktree_root)
|
|
956
|
+
|
|
957
|
+
# Create worktree for the SPEC
|
|
958
|
+
worktree_info = worktree_manager.create(
|
|
959
|
+
spec_id="SPEC-{SPEC_ID}",
|
|
960
|
+
branch_name=f"feature/SPEC-{SPEC_ID}",
|
|
961
|
+
base_branch="main"
|
|
962
|
+
)
|
|
963
|
+
|
|
964
|
+
# Display success messages
|
|
965
|
+
print(f"\n SPEC created: SPEC-{SPEC_ID}")
|
|
966
|
+
print(f" Worktree created: {worktree_info.path}")
|
|
967
|
+
print(f"\n Next steps:")
|
|
968
|
+
print(f" 1. Switch to worktree: moai-worktree switch SPEC-{SPEC_ID}")
|
|
969
|
+
print(f" 2. Or use shell eval: eval $(moai-worktree go SPEC-{SPEC_ID})")
|
|
970
|
+
print(f" 3. Then run: /moai:2-run SPEC-{SPEC_ID}")
|
|
971
|
+
|
|
972
|
+
except Exception as e:
|
|
973
|
+
# Handle worktree creation errors gracefully
|
|
974
|
+
print(f"\n Worktree creation failed: {e}")
|
|
975
|
+
print(f" SPEC created: SPEC-{SPEC_ID}")
|
|
976
|
+
print(f" You can manually create worktree later with:")
|
|
977
|
+
print(f" moai-worktree new SPEC-{SPEC_ID}")
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
Expected Success Outcome:
|
|
981
|
+
|
|
982
|
+
```
|
|
983
|
+
SPEC created: SPEC-AUTH-001
|
|
984
|
+
Worktree created: ~/worktrees/MoAI-ADK/SPEC-AUTH-001
|
|
985
|
+
|
|
986
|
+
Next steps:
|
|
987
|
+
1. Switch to worktree: moai-worktree switch SPEC-AUTH-001
|
|
988
|
+
2. Or use shell eval: eval $(moai-worktree go SPEC-AUTH-001)
|
|
989
|
+
3. Then run: /moai:2-run SPEC-AUTH-001
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
Error Handling:
|
|
993
|
+
|
|
994
|
+
- If worktree creation fails: SPEC is still created, show manual worktree creation instructions
|
|
995
|
+
- If worktree already exists: Show switch instructions
|
|
996
|
+
- If WorktreeManager not available: Show installation/dependency instructions
|
|
997
|
+
|
|
998
|
+
---
|
|
999
|
+
|
|
1000
|
+
#### Step 2.6: Team Mode - Create Draft PR (After Branch Creation)
|
|
1001
|
+
|
|
1002
|
+
CONDITION: `git_mode == "team"` AND branch was created (Step 2.3) AND NOT `--worktree` flag
|
|
1003
|
+
|
|
1004
|
+
ACTION: Create draft PR for team review
|
|
1005
|
+
|
|
1006
|
+
Use the manager-git subagent to:
|
|
1007
|
+
|
|
1008
|
+
Create draft pull request for SPEC implementation (Team mode only)
|
|
1009
|
+
|
|
1010
|
+
Critical Config: git_strategy.mode == "team"
|
|
1011
|
+
→ Team mode REQUIRES draft PRs for review coordination
|
|
1012
|
+
|
|
1013
|
+
Tasks:
|
|
1014
|
+
|
|
1015
|
+
1. Create draft PR: feature/SPEC-{SPEC_ID} → main/develop branch
|
|
1016
|
+
2. PR title: "feat(spec): Add SPEC-{SPEC_ID} [DRAFT]"
|
|
1017
|
+
3. PR body: Include SPEC ID, description, and checklist
|
|
1018
|
+
4. Add appropriate labels (spec, draft, etc.)
|
|
1019
|
+
5. Assign reviewers from team config (if configured)
|
|
1020
|
+
6. Set PR as DRAFT (do NOT auto-merge)
|
|
1021
|
+
|
|
1022
|
+
Validation:
|
|
1023
|
+
|
|
1024
|
+
- Verify PR was created in draft status
|
|
1025
|
+
- Return PR URL and status
|
|
1026
|
+
|
|
1027
|
+
Expected Outcome:
|
|
1028
|
+
|
|
1029
|
+
```
|
|
1030
|
+
Feature branch: feature/SPEC-{SPEC_ID}
|
|
1031
|
+
Draft PR created for team review
|
|
1032
|
+
Ready for /moai:2-run implementation
|
|
1033
|
+
```
|
|
1034
|
+
|
|
1035
|
+
---
|
|
1036
|
+
|
|
1037
|
+
### Step 3: Conditional Status Report
|
|
1038
|
+
|
|
1039
|
+
Display status based on configuration and execution result:
|
|
1040
|
+
|
|
1041
|
+
#### Case 1: Branch Creation Prompted (`prompt_always: true`) - User Selected "Auto create"
|
|
1042
|
+
|
|
1043
|
+
```
|
|
1044
|
+
Phase 3 Status: Feature Branch Created (User Choice)
|
|
1045
|
+
|
|
1046
|
+
Configuration: git_strategy.mode = "{git_mode}"
|
|
1047
|
+
Branch Creation: prompt_always = true → User chose "Auto create"
|
|
1048
|
+
|
|
1049
|
+
Feature Branch Created:
|
|
1050
|
+
- Branch: `feature/SPEC-{SPEC_ID}`
|
|
1051
|
+
- Current branch switched to feature branch
|
|
1052
|
+
- Ready for implementation on isolated branch
|
|
1053
|
+
|
|
1054
|
+
{IF TEAM MODE:
|
|
1055
|
+
Draft PR Created (Team Mode):
|
|
1056
|
+
- PR Title: "feat(spec): Add SPEC-{SPEC_ID} [DRAFT]"
|
|
1057
|
+
- Target Branch: develop/main
|
|
1058
|
+
- Status: DRAFT (awaiting review)
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
Next Steps:
|
|
1062
|
+
1. Review SPEC in `.moai/specs/SPEC-{SPEC_ID}/`
|
|
1063
|
+
2. Execute `/moai:2-run SPEC-{SPEC_ID}` to begin implementation
|
|
1064
|
+
3. 🌿 All commits will be made to feature branch
|
|
1065
|
+
{IF TEAM MODE:
|
|
1066
|
+
4. Share draft PR with team for early review (already created)
|
|
1067
|
+
5. Team can comment during development
|
|
1068
|
+
6. Finalize PR in `/moai:3-sync` when complete
|
|
1069
|
+
:ELSE:
|
|
1070
|
+
4. Create PR in `/moai:3-sync` when implementation complete
|
|
1071
|
+
}
|
|
1072
|
+
```
|
|
1073
|
+
|
|
1074
|
+
---
|
|
1075
|
+
|
|
1076
|
+
#### Case 2: Branch Creation Prompted (`prompt_always: true`) - User Selected "Use current branch"
|
|
1077
|
+
|
|
1078
|
+
```
|
|
1079
|
+
Phase 3 Status: Direct Commit Mode (User Choice)
|
|
1080
|
+
|
|
1081
|
+
Configuration: git_strategy.mode = "{git_mode}"
|
|
1082
|
+
Branch Creation: prompt_always = true → User chose "Use current branch"
|
|
1083
|
+
|
|
1084
|
+
No Branch Created:
|
|
1085
|
+
- SPEC files created on current branch
|
|
1086
|
+
- Ready for direct implementation
|
|
1087
|
+
- Commits will be made directly to current branch
|
|
1088
|
+
|
|
1089
|
+
Next Steps:
|
|
1090
|
+
1. Review SPEC in `.moai/specs/SPEC-{SPEC_ID}/`
|
|
1091
|
+
2. Execute `/moai:2-run SPEC-{SPEC_ID}` to begin implementation
|
|
1092
|
+
3. All commits will be made directly to current branch
|
|
1093
|
+
4. Follow TDD: RED → GREEN → REFACTOR cycles
|
|
1094
|
+
```
|
|
1095
|
+
|
|
1096
|
+
---
|
|
1097
|
+
|
|
1098
|
+
#### Case 3: Branch Creation Auto-Skipped (Manual Mode + `prompt_always: false`)
|
|
1099
|
+
|
|
1100
|
+
```
|
|
1101
|
+
Phase 3 Status: Direct Commit Mode (Configuration)
|
|
1102
|
+
|
|
1103
|
+
Configuration: git_strategy.mode = "manual"
|
|
1104
|
+
Branch Creation: prompt_always = false → Auto-skipped
|
|
1105
|
+
|
|
1106
|
+
No Branch Created (Manual Mode Default):
|
|
1107
|
+
- SPEC files created on current branch
|
|
1108
|
+
- NO manager-git invoked (as configured)
|
|
1109
|
+
- Ready for direct implementation
|
|
1110
|
+
- Commits will be made directly to current branch
|
|
1111
|
+
|
|
1112
|
+
Next Steps:
|
|
1113
|
+
1. Review SPEC in `.moai/specs/SPEC-{SPEC_ID}/`
|
|
1114
|
+
2. Execute `/moai:2-run SPEC-{SPEC_ID}` to begin implementation
|
|
1115
|
+
3. Make commits directly to current branch
|
|
1116
|
+
4. Follow TDD: RED → GREEN → REFACTOR cycles
|
|
1117
|
+
```
|
|
1118
|
+
|
|
1119
|
+
---
|
|
1120
|
+
|
|
1121
|
+
#### Case 4: Branch Creation Skipped with Auto-Enable Prompt (Personal/Team + `prompt_always: false` + `auto_enabled: false`)
|
|
1122
|
+
|
|
1123
|
+
```
|
|
1124
|
+
Phase 3 Status: Direct Commit Mode (Manual Default for Personal/Team)
|
|
1125
|
+
|
|
1126
|
+
Configuration: git_strategy.mode = "{git_mode}" (personal or team)
|
|
1127
|
+
Branch Creation: prompt_always = false, auto_enabled = false → Manual Default
|
|
1128
|
+
|
|
1129
|
+
Branch Creation: Not created yet (pending user approval)
|
|
1130
|
+
- SPEC files created on current branch
|
|
1131
|
+
- Ready for implementation
|
|
1132
|
+
- Commits will be made directly to current branch initially
|
|
1133
|
+
|
|
1134
|
+
Automation Approval Offered:
|
|
1135
|
+
─────────────────────────────────────────
|
|
1136
|
+
Would you like to enable automatic branch creation for future SPEC creations?
|
|
1137
|
+
(This will update your config.yaml)
|
|
1138
|
+
|
|
1139
|
+
Yes → Set branch_creation.auto_enabled = true
|
|
1140
|
+
→ Next SPEC will auto-create feature/SPEC-XXX branch
|
|
1141
|
+
|
|
1142
|
+
No → Keep manual mode
|
|
1143
|
+
→ Continue working on current branch for this SPEC
|
|
1144
|
+
→ No config changes made
|
|
1145
|
+
─────────────────────────────────────────
|
|
1146
|
+
|
|
1147
|
+
Next Steps:
|
|
1148
|
+
1. Review SPEC in `.moai/specs/SPEC-{SPEC_ID}/`
|
|
1149
|
+
2. Execute `/moai:2-run SPEC-{SPEC_ID}` to begin implementation
|
|
1150
|
+
3. Make commits directly to current branch
|
|
1151
|
+
4. Follow TDD: RED → GREEN → REFACTOR cycles
|
|
1152
|
+
5. Create PR in `/moai:3-sync` when implementation complete
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
---
|
|
1156
|
+
|
|
1157
|
+
#### Case 5: Branch Creation Auto-Enabled (Personal/Team + `prompt_always: false` + `auto_enabled: true`)
|
|
1158
|
+
|
|
1159
|
+
```
|
|
1160
|
+
Phase 3 Status: Feature Branch Created (Auto-Enabled)
|
|
1161
|
+
|
|
1162
|
+
Configuration: git_strategy.mode = "{git_mode}" (personal or team)
|
|
1163
|
+
Branch Creation: prompt_always = false, auto_enabled = true → Auto-enabled
|
|
1164
|
+
|
|
1165
|
+
Feature Branch Created:
|
|
1166
|
+
- Branch: `feature/SPEC-{SPEC_ID}`
|
|
1167
|
+
- Current branch switched to feature branch
|
|
1168
|
+
- Ready for implementation on isolated branch
|
|
1169
|
+
|
|
1170
|
+
{IF TEAM MODE:
|
|
1171
|
+
Draft PR Created (Team Mode):
|
|
1172
|
+
- PR Title: "feat(spec): Add SPEC-{SPEC_ID} [DRAFT]"
|
|
1173
|
+
- Target Branch: develop/main
|
|
1174
|
+
- Status: DRAFT (awaiting review)
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
Next Steps:
|
|
1178
|
+
1. Review SPEC in `.moai/specs/SPEC-{SPEC_ID}/`
|
|
1179
|
+
2. Execute `/moai:2-run SPEC-{SPEC_ID}` to begin implementation
|
|
1180
|
+
3. 🌿 All commits will be made to feature branch
|
|
1181
|
+
{IF TEAM MODE:
|
|
1182
|
+
4. Share draft PR with team for early review
|
|
1183
|
+
5. Team can comment on draft PR during development
|
|
1184
|
+
6. Finalize PR in `/moai:3-sync` when complete
|
|
1185
|
+
:ELSE:
|
|
1186
|
+
4. Create PR in `/moai:3-sync` when implementation complete
|
|
1187
|
+
}
|
|
1188
|
+
```
|
|
1189
|
+
|
|
1190
|
+
---
|
|
1191
|
+
|
|
1192
|
+
#### Case 6: Worktree Creation (--worktree flag or user choice)
|
|
1193
|
+
|
|
1194
|
+
```
|
|
1195
|
+
Phase 3 Status: Worktree Created (Isolated Development Environment)
|
|
1196
|
+
|
|
1197
|
+
Worktree Creation: --worktree flag provided OR user chose "Create Worktree"
|
|
1198
|
+
SPEC Created: SPEC-{SPEC_ID} documents generated successfully
|
|
1199
|
+
|
|
1200
|
+
Isolated Worktree Created:
|
|
1201
|
+
- Path: ~/worktrees/MoAI-ADK/SPEC-{SPEC_ID}/
|
|
1202
|
+
- Branch: feature/SPEC-{SPEC_ID}
|
|
1203
|
+
- Status: Ready for parallel development
|
|
1204
|
+
|
|
1205
|
+
Next Steps:
|
|
1206
|
+
1. Switch to worktree: `moai-worktree switch SPEC-{SPEC_ID}`
|
|
1207
|
+
2. Or use shell eval: `eval $(moai-worktree go SPEC-{SPEC_ID})`
|
|
1208
|
+
3. Review SPEC documents in worktree: `.moai/specs/SPEC-{SPEC_ID}/`
|
|
1209
|
+
4. Execute `/moai:2-run SPEC-{SPEC_ID}` to begin TDD implementation
|
|
1210
|
+
5. Work on isolated environment without affecting other SPECs
|
|
1211
|
+
|
|
1212
|
+
Benefits of Worktree Development:
|
|
1213
|
+
- Complete isolation from other SPEC work
|
|
1214
|
+
- 🔀 Easy switching between multiple SPECs
|
|
1215
|
+
- 🧹 Automatic cleanup when SPEC is completed
|
|
1216
|
+
- Lower memory usage than full repository clones
|
|
1217
|
+
```
|
|
1218
|
+
|
|
1219
|
+
---
|
|
1220
|
+
|
|
1221
|
+
## Output Format
|
|
1222
|
+
|
|
1223
|
+
All command execution phases must produce structured output with semantic XML sections:
|
|
1224
|
+
|
|
1225
|
+
Analysis Output Format:
|
|
1226
|
+
|
|
1227
|
+
Project analysis results structured as:
|
|
1228
|
+
- Context: Current project state and relevant files discovered
|
|
1229
|
+
- Findings: SPEC candidates identified with rationale
|
|
1230
|
+
- Assessment: Technical constraints and implementation feasibility
|
|
1231
|
+
- Recommendations: Next steps and decision options
|
|
1232
|
+
|
|
1233
|
+
Plan Output Format:
|
|
1234
|
+
|
|
1235
|
+
SPEC planning results structured as:
|
|
1236
|
+
- Requirements: Approved SPEC title, ID, priority, and scope
|
|
1237
|
+
- Architecture: Technical stack, dependencies, and integration points
|
|
1238
|
+
- Decomposition: Task breakdown and implementation sequence
|
|
1239
|
+
- Validation: Quality criteria and acceptance conditions
|
|
1240
|
+
|
|
1241
|
+
Implementation Output Format:
|
|
1242
|
+
|
|
1243
|
+
SPEC creation results structured as:
|
|
1244
|
+
- Status: Phase completion status and artifacts created
|
|
1245
|
+
- Artifacts: Location and format of created SPEC files
|
|
1246
|
+
- Validation: Quality gate results and compliance verification
|
|
1247
|
+
- NextSteps: User guidance for proceeding to implementation phase
|
|
1248
|
+
|
|
1249
|
+
WHY: Structured output enables parsing for automated workflows and tool integration
|
|
1250
|
+
IMPACT: Unstructured output prevents downstream automation and creates manual overhead
|
|
1251
|
+
|
|
1252
|
+
---
|
|
1253
|
+
|
|
1254
|
+
## Summary: Your Execution Checklist
|
|
1255
|
+
|
|
1256
|
+
Before you consider this command complete, verify:
|
|
1257
|
+
|
|
1258
|
+
- [ ] PHASE 1 executed: manager-spec analyzed project and proposed SPEC candidates
|
|
1259
|
+
- [ ] Progress report displayed: User shown detailed progress report with analysis results
|
|
1260
|
+
- [ ] User approval obtained: User explicitly approved SPEC creation (via enhanced AskUserQuestion)
|
|
1261
|
+
- [ ] PHASE 2 executed: manager-spec created all 3 SPEC files (spec.md, plan.md, acceptance.md)
|
|
1262
|
+
- [ ] Directory naming correct: `.moai/specs/SPEC-{ID}/` format followed
|
|
1263
|
+
- [ ] YAML frontmatter valid: All 7 required fields present
|
|
1264
|
+
- [ ] HISTORY section present: Immediately after YAML frontmatter
|
|
1265
|
+
- [ ] EARS structure complete: All 5 requirement types included
|
|
1266
|
+
- [ ] PHASE 3 executed: Appropriate action taken based on flags/user choice:
|
|
1267
|
+
- [ ] If --worktree: WorktreeManager created isolated worktree environment
|
|
1268
|
+
- [ ] If --branch: manager-git created feature branch
|
|
1269
|
+
- [ ] If prompt: User choice implemented (worktree/branch/current)
|
|
1270
|
+
- [ ] If Team mode: Draft PR created (when branch created, not worktree)
|
|
1271
|
+
- [ ] Branch/Worktree naming correct: `feature/SPEC-{ID}` format for branches, `SPEC-{ID}` for worktrees
|
|
1272
|
+
- [ ] Next steps presented: User shown appropriate guidance for worktree navigation or branch development
|
|
1273
|
+
- [ ] Worktree guidance displayed: Worktree switch/eval instructions shown (when applicable)
|
|
1274
|
+
|
|
1275
|
+
IF all checkboxes are checked → Command execution successful
|
|
1276
|
+
|
|
1277
|
+
IF any checkbox is unchecked → Identify missing step and complete it before ending
|
|
1278
|
+
|
|
1279
|
+
---
|
|
1280
|
+
|
|
1281
|
+
## Quick Reference
|
|
1282
|
+
|
|
1283
|
+
| Scenario | Mode | Entry Point | Key Phases | Expected Outcome |
|
|
1284
|
+
| ---------------------- | ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------- |
|
|
1285
|
+
| Clear feature request | Direct to Planning | `/moai:1-plan "feature description"` | Phase 1B → Phase 2 → Phase 3 | SPEC created + branch/worktree (conditional) |
|
|
1286
|
+
| Vague user request | Exploration First | `/moai:1-plan "vague request"` | Phase 1A → Phase 1B → Phase 2 → Phase 3 | Exploration → SPEC + branch/worktree |
|
|
1287
|
+
| Resume draft SPEC | Resume Existing | `/moai:1-plan resume SPEC-XXX` | Phase 1B → Phase 2 → Phase 3 | Complete existing SPEC |
|
|
1288
|
+
| Worktree creation | NEW | `/moai:1-plan "feature" --worktree` | Phase 1B → Phase 2 → Phase 3 (worktree) | SPEC + isolated worktree environment |
|
|
1289
|
+
| Branch creation prompt | User Choice | `/moai:1-plan "feature"` (prompt_always: true) | Phase 1-2 → User chooses (worktree/branch/current) → Phase 3 | SPEC + user-selected strategy |
|
|
1290
|
+
| Auto branch creation | Automated | `/moai:1-plan "feature"` (prompt_always: false, auto_enabled: true) | Phase 1-2 → Auto branch creation → Phase 3 | SPEC + auto branch (Personal/Team) |
|
|
1291
|
+
|
|
1292
|
+
### New Worktree Workflow Examples
|
|
1293
|
+
|
|
1294
|
+
Basic Worktree Creation:
|
|
1295
|
+
|
|
1296
|
+
```bash
|
|
1297
|
+
/moai:1-plan "User authentication system" --worktree
|
|
1298
|
+
# Output:
|
|
1299
|
+
# SPEC created: SPEC-AUTH-001
|
|
1300
|
+
# Worktree created: ~/worktrees/MoAI-ADK/SPEC-AUTH-001
|
|
1301
|
+
#
|
|
1302
|
+
# Next steps:
|
|
1303
|
+
# 1. Switch to worktree: moai-worktree switch SPEC-AUTH-001
|
|
1304
|
+
# 2. Or use shell eval: eval $(moai-worktree go SPEC-AUTH-001)
|
|
1305
|
+
```
|
|
1306
|
+
|
|
1307
|
+
Interactive Environment Selection:
|
|
1308
|
+
|
|
1309
|
+
```bash
|
|
1310
|
+
/moai:1-plan "Payment integration"
|
|
1311
|
+
# User prompted to choose:
|
|
1312
|
+
# - Create Worktree (recommended for parallel development)
|
|
1313
|
+
# - Create Branch (traditional workflow)
|
|
1314
|
+
# - Use current branch
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
Associated Agents & Components:
|
|
1318
|
+
|
|
1319
|
+
- `Explore` - Project exploration and file discovery (Phase 1A, optional)
|
|
1320
|
+
- `manager-spec` - SPEC planning and document creation (Phase 1B-2, required)
|
|
1321
|
+
- `manager-git` - Branch and PR creation (Phase 3, conditional)
|
|
1322
|
+
- WorktreeManager - Worktree creation and management (Phase 3, when --worktree flag used)
|
|
1323
|
+
|
|
1324
|
+
Key Integration Points:
|
|
1325
|
+
|
|
1326
|
+
- WorktreeManager Import: `from moai_adk.cli.worktree.manager import WorktreeManager`
|
|
1327
|
+
- Worktree Registry: Automatic registration in `~/worktrees/MoAI-ADK/.moai-worktree-registry.json`
|
|
1328
|
+
- Git Integration: Creates feature branch `feature/SPEC-{ID}` and associated worktree
|
|
1329
|
+
- Error Handling: Graceful fallback if worktree creation fails
|
|
1330
|
+
|
|
1331
|
+
SPEC Documents Directory:
|
|
1332
|
+
|
|
1333
|
+
- Location: `.moai/specs/SPEC-{ID}/` (directory format, NOT single .md file)
|
|
1334
|
+
- Files: `spec.md`, `plan.md`, `acceptance.md` (created simultaneously via MultiEdit)
|
|
1335
|
+
- Format: EARS structure with YAML frontmatter + HISTORY section
|
|
1336
|
+
- Language: All content in user's conversation_language
|
|
1337
|
+
|
|
1338
|
+
Version: 5.1.0 (4-Step Agent-Based Workflow + Worktree Integration)
|
|
1339
|
+
Last Updated: 2025-11-28
|
|
1340
|
+
Architecture: Commands → Agents → Skills (Complete delegation)
|
|
1341
|
+
NEW: WorktreeManager integration for parallel SPEC development
|
|
1342
|
+
|
|
1343
|
+
---
|
|
1344
|
+
|
|
1345
|
+
## SPEC-WORKTREE-001 Integration Status
|
|
1346
|
+
|
|
1347
|
+
Status: COMPLETE - Full integration achieved on 2025-11-28
|
|
1348
|
+
|
|
1349
|
+
### What Was Implemented
|
|
1350
|
+
|
|
1351
|
+
1. --worktree Flag Support: Added argument parsing for `--worktree` flag in `/moai:1-plan`
|
|
1352
|
+
2. WorktreeManager Integration: Automatic worktree creation using existing `src/moai_adk/cli/worktree/manager.py`
|
|
1353
|
+
3. Guidance Messages: Clear next-step instructions for worktree navigation
|
|
1354
|
+
4. Interactive Flow: AskUserQuestion integration for worktree/branch/current choice
|
|
1355
|
+
5. Error Handling: Graceful fallback when worktree creation fails
|
|
1356
|
+
|
|
1357
|
+
### Expected Behavior
|
|
1358
|
+
|
|
1359
|
+
```bash
|
|
1360
|
+
# Command execution:
|
|
1361
|
+
/moai:1-plan "User authentication" --worktree
|
|
1362
|
+
|
|
1363
|
+
# Expected output:
|
|
1364
|
+
SPEC created: SPEC-AUTH-001
|
|
1365
|
+
Worktree created: ~/worktrees/MoAI-ADK/SPEC-AUTH-001
|
|
1366
|
+
|
|
1367
|
+
Next steps:
|
|
1368
|
+
1. Switch to worktree: moai-worktree switch SPEC-AUTH-001
|
|
1369
|
+
2. Or use shell eval: eval $(moai-worktree go SPEC-AUTH-001)
|
|
1370
|
+
3. Then run: /moai:2-run SPEC-AUTH-001
|
|
1371
|
+
```
|
|
1372
|
+
|
|
1373
|
+
### Integration Points
|
|
1374
|
+
|
|
1375
|
+
- Import: `from moai_adk.cli.worktree.manager import WorktreeManager`
|
|
1376
|
+
- Worktree Registry: Automatic registration in `~/worktrees/MoAI-ADK/.moai-worktree-registry.json`
|
|
1377
|
+
- Branch Creation: Creates feature branch `feature/SPEC-{SPEC_ID}` automatically
|
|
1378
|
+
- Documentation: Updated all examples, checklists, and status reports
|
|
1379
|
+
|
|
1380
|
+
### Completion Criteria (All Met)
|
|
1381
|
+
|
|
1382
|
+
- Flag Parsing: `--worktree` flag detected and processed correctly
|
|
1383
|
+
- Worktree Creation: WorktreeManager.create() called with correct parameters
|
|
1384
|
+
- User Guidance: Next steps displayed in user-friendly format
|
|
1385
|
+
- Error Handling: Fallback messages when worktree creation fails
|
|
1386
|
+
- Documentation: All references updated with worktree scenarios
|
|
1387
|
+
- Backward Compatibility: Existing --branch and default behavior preserved
|
|
1388
|
+
|
|
1389
|
+
SPEC-WORKTREE-001: 100% Complete - All 85% existing implementation + 15% missing integration now complete
|
|
1390
|
+
|
|
1391
|
+
---
|
|
1392
|
+
|
|
1393
|
+
## End of command execution guide
|
|
1394
|
+
|
|
1395
|
+
## Final Step: Next Action Selection
|
|
1396
|
+
|
|
1397
|
+
After SPEC creation completes, use AskUserQuestion tool to guide user to next action:
|
|
1398
|
+
|
|
1399
|
+
```python
|
|
1400
|
+
AskUserQuestion({
|
|
1401
|
+
"questions": [{
|
|
1402
|
+
"question": "SPEC document creation is complete. What would you like to do next?",
|
|
1403
|
+
"header": "Next Steps",
|
|
1404
|
+
"multiSelect": false,
|
|
1405
|
+
"options": [
|
|
1406
|
+
{
|
|
1407
|
+
"label": "Start Implementation",
|
|
1408
|
+
"description": "Execute /moai:2-run to begin TDD development"
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"label": "Modify Plan",
|
|
1412
|
+
"description": "Modify and enhance SPEC content"
|
|
1413
|
+
},
|
|
1414
|
+
{
|
|
1415
|
+
"label": "Add New Feature",
|
|
1416
|
+
"description": "Create additional SPEC document"
|
|
1417
|
+
}
|
|
1418
|
+
]
|
|
1419
|
+
}]
|
|
1420
|
+
})
|
|
1421
|
+
```
|
|
1422
|
+
|
|
1423
|
+
Important:
|
|
1424
|
+
|
|
1425
|
+
- Use conversation language from config
|
|
1426
|
+
- No emojis in any AskUserQuestion fields
|
|
1427
|
+
- Always provide clear next step options
|
|
1428
|
+
|
|
1429
|
+
## EXECUTION DIRECTIVE
|
|
1430
|
+
|
|
1431
|
+
You must NOW execute the command following the "The 4-Step Agent-Based Workflow Command Logic" described above.
|
|
1432
|
+
|
|
1433
|
+
1. Start PHASE 1: Project Analysis & SPEC Planning immediately.
|
|
1434
|
+
2. Use the manager-spec subagent (or Explore subagent as appropriate).
|
|
1435
|
+
3. Do NOT just describe what you will do. DO IT.
|