moai-adk 0.25.4__py3-none-any.whl → 0.32.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +2 -5
- moai_adk/__main__.py +114 -82
- moai_adk/cli/__init__.py +6 -1
- moai_adk/cli/commands/__init__.py +1 -3
- moai_adk/cli/commands/analyze.py +5 -16
- moai_adk/cli/commands/doctor.py +6 -18
- moai_adk/cli/commands/init.py +56 -125
- moai_adk/cli/commands/language.py +14 -35
- moai_adk/cli/commands/status.py +9 -15
- moai_adk/cli/commands/update.py +1555 -190
- moai_adk/cli/prompts/init_prompts.py +112 -56
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +672 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +490 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +128 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/analysis/session_analyzer.py +17 -56
- moai_adk/core/claude_integration.py +26 -54
- moai_adk/core/command_helpers.py +10 -10
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/auto_spec_config.py +5 -11
- moai_adk/core/config/migration.py +19 -9
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +6 -12
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +725 -112
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +8 -0
- moai_adk/core/git/branch_manager.py +3 -11
- moai_adk/core/git/checkpoint.py +1 -3
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/manager.py +91 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/engine.py +6 -18
- moai_adk/core/integration/integration_tester.py +10 -9
- moai_adk/core/integration/utils.py +1 -1
- moai_adk/core/issue_creator.py +10 -28
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config_resolver.py +485 -0
- moai_adk/core/language_validator.py +28 -41
- moai_adk/core/mcp/setup.py +15 -12
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +481 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +78 -9
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +8 -17
- moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +6 -10
- moai_adk/core/migration/version_migrator.py +3 -3
- moai_adk/core/performance/cache_system.py +8 -10
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +1 -3
- moai_adk/core/project/initializer.py +135 -23
- moai_adk/core/project/phase_executor.py +54 -81
- moai_adk/core/project/validator.py +6 -12
- moai_adk/core/quality/trust_checker.py +9 -27
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +73 -148
- moai_adk/core/session_manager.py +10 -26
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +31 -100
- moai_adk/core/spec/ears_template_engine.py +351 -286
- moai_adk/core/spec/quality_validator.py +35 -69
- moai_adk/core/spec_status_manager.py +64 -74
- moai_adk/core/template/backup.py +45 -20
- moai_adk/core/template/config.py +112 -39
- moai_adk/core/template/merger.py +11 -19
- moai_adk/core/template/processor.py +253 -149
- moai_adk/core/template_engine.py +73 -40
- moai_adk/core/template_variable_synchronizer.py +417 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +429 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +4 -12
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +23 -72
- moai_adk/foundation/trust/validation_checklist.py +57 -162
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/alfred_detector.py +1 -3
- moai_adk/statusline/config.py +13 -4
- moai_adk/statusline/enhanced_output_style_detector.py +23 -15
- moai_adk/statusline/main.py +51 -15
- moai_adk/statusline/renderer.py +104 -48
- moai_adk/statusline/update_checker.py +3 -9
- moai_adk/statusline/version_reader.py +140 -46
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +496 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +103 -41
- moai_adk/templates/.git-hooks/pre-push +116 -21
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.gitignore +184 -44
- moai_adk/templates/.mcp.json +7 -9
- moai_adk/templates/.moai/cache/personalization.json +10 -0
- moai_adk/templates/.moai/config/config.yaml +344 -0
- moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
- moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
- moai_adk/templates/.moai/config/presets/team.yaml +33 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
- moai_adk/templates/.moai/config/sections/system.yaml +14 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +382 -501
- moai_adk/utils/__init__.py +24 -1
- moai_adk/utils/banner.py +7 -10
- moai_adk/utils/common.py +16 -30
- moai_adk/utils/link_validator.py +4 -12
- moai_adk/utils/safe_file_reader.py +2 -6
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.32.8.dist-info/METADATA +2478 -0
- moai_adk-0.32.8.dist-info/RECORD +396 -0
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -82
- moai_adk/cli/commands/improve_user_experience.py +0 -348
- moai_adk/cli/commands/migrate.py +0 -158
- moai_adk/cli/commands/validate_links.py +0 -118
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/utils/user_experience.py +0 -531
- moai_adk-0.25.4.dist-info/METADATA +0 -2279
- moai_adk-0.25.4.dist-info/RECORD +0 -112
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1143 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai:0-project
|
|
3
|
+
description: "Initialize project metadata and documentation"
|
|
4
|
+
argument-hint: "[<empty>|setting|update|--glm-on <token>]"
|
|
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 config --get user.name
|
|
13
|
+
!git config --get user.email
|
|
14
|
+
!git branch --show-current
|
|
15
|
+
|
|
16
|
+
## Essential Files
|
|
17
|
+
|
|
18
|
+
@.moai/config/config.yaml
|
|
19
|
+
@.moai/project/product.md
|
|
20
|
+
@.moai/project/structure.md
|
|
21
|
+
@.moai/project/tech.md
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# MoAI-ADK Step 0: Initialize/Update Project (Project Setup)
|
|
26
|
+
|
|
27
|
+
User Interaction Architecture: AskUserQuestion tool must be used at COMMAND level only, not within subagents. Subagents invoked via Task() operate in isolated, stateless contexts and cannot interact with users directly.
|
|
28
|
+
|
|
29
|
+
Correct Pattern: Command collects user input via AskUserQuestion BEFORE delegating to agents. Pass collected choices as parameters to Task() calls.
|
|
30
|
+
|
|
31
|
+
Architecture: Commands delegate to Agents, which coordinate Skills. This command orchestrates exclusively through Task() tool.
|
|
32
|
+
|
|
33
|
+
Delegation Model: Complete agent-first pattern. All execution delegated to manager-project agent. Agents receive pre-collected user choices and execute without further user interaction.
|
|
34
|
+
|
|
35
|
+
Workflow Integration: This command implements Step 0 of Alfred's three-step execution model (Understand-Plan-Execute). See CLAUDE.md for complete workflow details.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Command Purpose
|
|
40
|
+
|
|
41
|
+
Initialize or update project metadata using language-first architecture. The system supports five execution modes:
|
|
42
|
+
|
|
43
|
+
INITIALIZATION Mode: First-time project setup and configuration
|
|
44
|
+
AUTO-DETECT Mode: Existing projects with optional modification or re-initialization
|
|
45
|
+
SETTINGS Mode: Interactive tab-based configuration management with validation
|
|
46
|
+
UPDATE Mode: Template optimization after moai-adk package update
|
|
47
|
+
GLM Configuration Mode: GLM API integration setup via --glm-on parameter
|
|
48
|
+
|
|
49
|
+
WHY: Multi-mode design accommodates diverse user scenarios from fresh installs to updates.
|
|
50
|
+
|
|
51
|
+
IMPACT: Users can navigate project lifecycle without manual intervention.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Associated Agents and Skills
|
|
56
|
+
|
|
57
|
+
The following agents and skills support this command:
|
|
58
|
+
|
|
59
|
+
manager-project agent orchestrates language-first initialization and configuration workflows.
|
|
60
|
+
|
|
61
|
+
moai-workflow-project skill provides unified project management including language initialization, atomic config operations, template merging, and tab-based batch question execution.
|
|
62
|
+
|
|
63
|
+
moai-workflow-templates skill manages template generation and customization.
|
|
64
|
+
|
|
65
|
+
WHY: Distributed responsibility enables specialized expertise and focused tool access.
|
|
66
|
+
|
|
67
|
+
IMPACT: Each agent optimizes its domain while maintaining system coherence.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Language Configuration
|
|
72
|
+
|
|
73
|
+
Core Principle: Language configuration originates from moai-adk CLI initialization or update commands.
|
|
74
|
+
|
|
75
|
+
[HARD] Read language from .moai/config/config.yaml before starting any mode.
|
|
76
|
+
|
|
77
|
+
WHY: Preserving existing language settings prevents disruption to user experience.
|
|
78
|
+
|
|
79
|
+
IMPACT: Missing language context causes mode selection ambiguity.
|
|
80
|
+
|
|
81
|
+
Language is preserved across modes except when:
|
|
82
|
+
|
|
83
|
+
- [SOFT] User explicitly requests language change via SETTINGS mode, Tab 1
|
|
84
|
+
- [SOFT] Update mode detects language-compatible improvements
|
|
85
|
+
|
|
86
|
+
Execution sequence varies by mode:
|
|
87
|
+
|
|
88
|
+
Initialization mode: Read language from config if present, conduct project interview, generate documentation.
|
|
89
|
+
|
|
90
|
+
Auto-Detect mode: Display current language, offer settings modification with language change shortcut.
|
|
91
|
+
|
|
92
|
+
Settings mode: Display current language in Tab 1, allow optional language modification.
|
|
93
|
+
|
|
94
|
+
Update mode: Preserve language from backup, perform template optimization.
|
|
95
|
+
|
|
96
|
+
WHY: Mode-specific language handling respects existing configuration while enabling user choice.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## YAML-Based Question System
|
|
101
|
+
|
|
102
|
+
### Question Definition Files
|
|
103
|
+
|
|
104
|
+
All configuration questions are defined in YAML files under .moai/config/questions/:
|
|
105
|
+
|
|
106
|
+
- _schema.yaml: Schema definition and constraints
|
|
107
|
+
- tab1-user.yaml: User and language settings (3 questions)
|
|
108
|
+
- tab2-project.yaml: Project metadata (4 questions)
|
|
109
|
+
- tab3-git.yaml: Git strategy and workflow (25 conditional questions)
|
|
110
|
+
- tab4-quality.yaml: Quality principles and reports (7 questions)
|
|
111
|
+
- tab5-system.yaml: System and GitHub integration (7 questions)
|
|
112
|
+
|
|
113
|
+
WHY: YAML-based questions enable consistent structure and easy maintenance.
|
|
114
|
+
|
|
115
|
+
IMPACT: Question changes require only YAML updates, not code modifications.
|
|
116
|
+
|
|
117
|
+
### Language-Aware Question Execution
|
|
118
|
+
|
|
119
|
+
[HARD] When executing questions from .moai/config/questions/*.yaml, translate to user's conversation_language at runtime.
|
|
120
|
+
|
|
121
|
+
Question files are written in English (source of truth). At execution time:
|
|
122
|
+
- Read user's conversation_language from sections/language.yaml
|
|
123
|
+
- Translate question text, options, and descriptions to user's language
|
|
124
|
+
- Present AskUserQuestion in user's language
|
|
125
|
+
- Store answer values in English (field values remain English)
|
|
126
|
+
|
|
127
|
+
Example Translation Flow:
|
|
128
|
+
- Question YAML (English): "What is your name?"
|
|
129
|
+
- User Language: Korean (ko)
|
|
130
|
+
- AskUserQuestion presented: Korean translation of question
|
|
131
|
+
- Answer stored: user.name = "GOOS" (value unchanged)
|
|
132
|
+
|
|
133
|
+
WHY: Single-source English questions with runtime translation reduces maintenance burden.
|
|
134
|
+
|
|
135
|
+
IMPACT: Adding new languages requires only translation logic, not question file duplication.
|
|
136
|
+
|
|
137
|
+
### Question Loading Priority
|
|
138
|
+
|
|
139
|
+
1. Load question definitions from .moai/config/questions/tab*.yaml
|
|
140
|
+
2. Read current values from .moai/config/sections/*.yaml
|
|
141
|
+
3. Present questions with current values as defaults
|
|
142
|
+
4. Store updated values back to sections/*.yaml
|
|
143
|
+
|
|
144
|
+
### Section File Updates
|
|
145
|
+
|
|
146
|
+
Configuration values are stored in modular section files:
|
|
147
|
+
- sections/user.yaml: User name (loaded by CLAUDE.md)
|
|
148
|
+
- sections/language.yaml: All language settings (loaded by CLAUDE.md)
|
|
149
|
+
- sections/project.yaml: Project metadata
|
|
150
|
+
- sections/git-strategy.yaml: Git workflow configuration
|
|
151
|
+
- sections/quality.yaml: TDD and quality settings
|
|
152
|
+
- sections/system.yaml: MoAI system settings
|
|
153
|
+
|
|
154
|
+
WHY: Modular sections enable token-efficient CLAUDE.md loading.
|
|
155
|
+
|
|
156
|
+
IMPACT: CLAUDE.md loads only user.yaml and language.yaml (~17 lines vs 400+ full config).
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Agent Invocation Patterns (CLAUDE.md Compliance)
|
|
161
|
+
|
|
162
|
+
This command uses agent execution patterns defined in CLAUDE.md (lines 96-120).
|
|
163
|
+
|
|
164
|
+
### Sequential Phase-Based Chaining ✅
|
|
165
|
+
|
|
166
|
+
Command implements sequential chaining through 3 main phases:
|
|
167
|
+
|
|
168
|
+
Phase Flow:
|
|
169
|
+
- Phase 1: Mode Detection & Language Configuration (determines operation mode and loads language)
|
|
170
|
+
- Phase 2: User Intent Collection (gathers project metadata and preferences via AskUserQuestion)
|
|
171
|
+
- Phase 3: Configuration & Documentation Generation (manager-project generates all project files)
|
|
172
|
+
|
|
173
|
+
Each phase receives outputs from previous phases as context.
|
|
174
|
+
|
|
175
|
+
WHY: Sequential execution ensures proper configuration and file generation
|
|
176
|
+
- Phase 2 requires mode and language from Phase 1 to display appropriate questions
|
|
177
|
+
- Phase 3 requires user responses from Phase 2 to generate correct configuration
|
|
178
|
+
- File generation requires complete configuration before creating documentation
|
|
179
|
+
|
|
180
|
+
IMPACT: Skipping phases would create incomplete or misconfigured project setup
|
|
181
|
+
|
|
182
|
+
### Parallel Execution ❌
|
|
183
|
+
|
|
184
|
+
Not applicable - configuration requires sequential processing
|
|
185
|
+
|
|
186
|
+
WHY: Project initialization has strict ordering requirements
|
|
187
|
+
- Language must be determined before asking questions
|
|
188
|
+
- User responses must be collected before generating files
|
|
189
|
+
- Configuration must be validated before documentation generation
|
|
190
|
+
|
|
191
|
+
IMPACT: Parallel execution would create configuration conflicts and invalid project state
|
|
192
|
+
|
|
193
|
+
### Resumable Agent Support ❌
|
|
194
|
+
|
|
195
|
+
Not applicable - command completes in single execution
|
|
196
|
+
|
|
197
|
+
WHY: Project setup is fast atomic operation
|
|
198
|
+
- Most setups complete in under 1 minute
|
|
199
|
+
- Configuration operations are atomic and transactional
|
|
200
|
+
- No long-running processes requiring checkpoints
|
|
201
|
+
|
|
202
|
+
IMPACT: Resume pattern unnecessary for typical project initialization
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
Refer to CLAUDE.md "Agent Chaining Patterns" (lines 96-120) for complete pattern architecture.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Execution Philosophy
|
|
211
|
+
|
|
212
|
+
The project setup follows explicit delegation pattern: Understand the user intent, Plan the execution, Execute through specialized agents.
|
|
213
|
+
|
|
214
|
+
The command delegates all functional work to manager-project agent through Task() invocation.
|
|
215
|
+
|
|
216
|
+
The command maintains zero direct tool usage except for Task() orchestration and AskUserQuestion() user interaction.
|
|
217
|
+
|
|
218
|
+
[HARD] Tool Usage Restrictions:
|
|
219
|
+
|
|
220
|
+
- DO NOT use Read for file operations (delegated to manager-project)
|
|
221
|
+
- DO NOT use Write for file operations (delegated to manager-project)
|
|
222
|
+
- DO NOT use Edit for file modifications (delegated to manager-project)
|
|
223
|
+
- DO NOT use Bash for command execution (delegated to manager-project)
|
|
224
|
+
- DO NOT use TodoWrite for task management (delegated to manager-project)
|
|
225
|
+
- DO use Task() for agent orchestration
|
|
226
|
+
- DO use AskUserQuestion() for user interaction
|
|
227
|
+
|
|
228
|
+
WHY: Delegation enables specialized agent tool access and consistent execution context.
|
|
229
|
+
|
|
230
|
+
IMPACT: Direct tool usage would bypass agent expertise and validation layers.
|
|
231
|
+
|
|
232
|
+
Manager-project agent handles all implementation complexity including file operations, configuration management, and validation logic.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## PHASE 1: Command Routing and Analysis
|
|
237
|
+
|
|
238
|
+
Goal: Detect subcommand intent and prepare execution context for delegation.
|
|
239
|
+
|
|
240
|
+
### Step 1: Analyze User Command Arguments
|
|
241
|
+
|
|
242
|
+
[HARD] Parse user command to determine execution mode.
|
|
243
|
+
|
|
244
|
+
WHY: Correct mode detection ensures appropriate workflow execution.
|
|
245
|
+
|
|
246
|
+
IMPACT: Incorrect routing causes wrong execution flow.
|
|
247
|
+
|
|
248
|
+
The system routes based on provided arguments:
|
|
249
|
+
|
|
250
|
+
GLM Configuration: Command includes --glm-on with optional API token
|
|
251
|
+
- Detect token in --glm-on parameter
|
|
252
|
+
- If token missing: Attempt auto-load from .env.glm file
|
|
253
|
+
- If token missing: Attempt auto-load from ANTHROPIC_AUTH_TOKEN environment variable
|
|
254
|
+
- If all sources missing: Request token from user via AskUserQuestion
|
|
255
|
+
|
|
256
|
+
SETTINGS Mode: Command includes setting argument
|
|
257
|
+
- Always use interactive tab selection via AskUserQuestion
|
|
258
|
+
- User selects specific tab or "Modify All Tabs" option
|
|
259
|
+
|
|
260
|
+
UPDATE Mode: Command includes update argument
|
|
261
|
+
- No additional argument parsing required
|
|
262
|
+
|
|
263
|
+
INITIALIZATION or AUTO-DETECT: Command has no arguments
|
|
264
|
+
- [HARD] Check if .moai/config/config.yaml exists
|
|
265
|
+
- File exists: Route to AUTO-DETECT MODE
|
|
266
|
+
- File missing: Route to INITIALIZATION MODE
|
|
267
|
+
|
|
268
|
+
Invalid Arguments: Unrecognized command format
|
|
269
|
+
- Display error message explaining valid command syntax
|
|
270
|
+
- Exit with error state
|
|
271
|
+
|
|
272
|
+
WHY: Argument-driven routing prevents mode confusion.
|
|
273
|
+
|
|
274
|
+
IMPACT: Ambiguous routing leads to wrong workflow execution.
|
|
275
|
+
|
|
276
|
+
### Step 2: Delegate to Manager-Project Agent
|
|
277
|
+
|
|
278
|
+
[HARD] Invoke manager-project subagent with detected mode and context.
|
|
279
|
+
|
|
280
|
+
WHY: Specialized agent handles mode-specific complexity.
|
|
281
|
+
|
|
282
|
+
IMPACT: Direct execution would bypass validation and expertise layers.
|
|
283
|
+
|
|
284
|
+
Pass the following context to manager-project agent:
|
|
285
|
+
|
|
286
|
+
- Detected Mode value (INITIALIZATION, AUTO-DETECT, SETTINGS, UPDATE, or GLM_CONFIGURATION)
|
|
287
|
+
- Language Context read from .moai/config/config.yaml if present
|
|
288
|
+
- GLM Token value if GLM_CONFIGURATION mode selected
|
|
289
|
+
- User command arguments for reference
|
|
290
|
+
|
|
291
|
+
For INITIALIZATION:
|
|
292
|
+
|
|
293
|
+
- Check .moai/config.yaml for language setting
|
|
294
|
+
- If missing: Use moai-workflow-project skill for language detection
|
|
295
|
+
- If present: Use existing language, skip language selection
|
|
296
|
+
- Conduct language-aware user interview
|
|
297
|
+
- Generate project documentation
|
|
298
|
+
- Use moai-workflow-project skill for config creation
|
|
299
|
+
|
|
300
|
+
For AUTO-DETECT:
|
|
301
|
+
|
|
302
|
+
- Read current language from .moai/config.yaml
|
|
303
|
+
- Check if project documentation exists (.moai/project/product.md, structure.md, tech.md)
|
|
304
|
+
- If docs missing → PARTIAL INITIALIZATION state detected
|
|
305
|
+
- Use AskUserQuestion to ask user: "Your configuration exists but project documentation is missing. Would you like to complete the initialization now?"
|
|
306
|
+
- Options: "Yes, complete initialization" / "No, review configuration" / "Cancel"
|
|
307
|
+
- If user selects "Yes" → Switch to INITIALIZATION workflow
|
|
308
|
+
- Otherwise → Continue with regular AUTO-DETECT options
|
|
309
|
+
- Display current configuration (including language)
|
|
310
|
+
- Offer: Modify Settings / Change Language Only / Review Configuration / Re-initialize / Cancel
|
|
311
|
+
- If "Change Language Only" → Go to Tab 1 in SETTINGS mode
|
|
312
|
+
- Otherwise route to selected sub-action
|
|
313
|
+
|
|
314
|
+
For SETTINGS:
|
|
315
|
+
|
|
316
|
+
- Load current language from .moai/config.yaml
|
|
317
|
+
- Load tab schema from appropriate skill schema
|
|
318
|
+
- Execute batch questions via moai-workflow-project skill
|
|
319
|
+
- Process responses and update config.yaml atomically via moai-workflow-project skill
|
|
320
|
+
- Report changes and validation results
|
|
321
|
+
|
|
322
|
+
For UPDATE:
|
|
323
|
+
|
|
324
|
+
- Read language from config backup (preserve existing setting)
|
|
325
|
+
- Use moai-workflow-project skill for smart merging
|
|
326
|
+
- Update templates and configuration
|
|
327
|
+
- Auto-translate announcements to current language if needed
|
|
328
|
+
|
|
329
|
+
For GLM_CONFIGURATION:
|
|
330
|
+
|
|
331
|
+
- Receive GLM API token from parameter (or detect from environment)
|
|
332
|
+
- Check token resolution sequence:
|
|
333
|
+
1. Use provided token from `--glm-on <token>` argument (if not empty)
|
|
334
|
+
2. Auto-load from existing `.env.glm` file (if exists and token missing)
|
|
335
|
+
3. Auto-load from `ANTHROPIC_AUTH_TOKEN` environment variable (if set)
|
|
336
|
+
4. Request from user via AskUserQuestion (if all above missing)
|
|
337
|
+
- Execute GLM setup script: `uv run .moai/scripts/setup-glm.py <GLM_TOKEN>`
|
|
338
|
+
- Verify configuration in .claude/settings.local.json with proper keys
|
|
339
|
+
- Verify .env.glm created with secure permissions (0o600)
|
|
340
|
+
- Verify .gitignore includes .env.glm entry
|
|
341
|
+
- Report GLM configuration success to user with all configured keys
|
|
342
|
+
- Remind user: "Restart Claude Code to automatically load the new settings"
|
|
343
|
+
|
|
344
|
+
Output: Mode-specific completion report with next steps
|
|
345
|
+
|
|
346
|
+
Store: Response in `$MODE_EXECUTION_RESULT`
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## PHASE 2: Execute Mode
|
|
351
|
+
|
|
352
|
+
Goal: Execute the appropriate mode based on routing decision.
|
|
353
|
+
|
|
354
|
+
### Mode Handler: manager-project Agent
|
|
355
|
+
|
|
356
|
+
The manager-project agent handles all mode-specific workflows:
|
|
357
|
+
|
|
358
|
+
INITIALIZATION MODE:
|
|
359
|
+
|
|
360
|
+
- Read language from config.yaml (or use CLI default if missing)
|
|
361
|
+
- Conduct language-aware user interview (via Skill)
|
|
362
|
+
- Project type detection and configuration
|
|
363
|
+
- Documentation generation
|
|
364
|
+
- Auto-translate announcements to selected language
|
|
365
|
+
|
|
366
|
+
AUTO-DETECT MODE:
|
|
367
|
+
|
|
368
|
+
- Read current language from config.yaml
|
|
369
|
+
- CRITICAL CHECK: Detect partial initialization state
|
|
370
|
+
- Check if project documentation exists in `.moai/project/`:
|
|
371
|
+
- product.md, structure.md, tech.md
|
|
372
|
+
- If ANY doc missing → Use AskUserQuestion (in user's language)
|
|
373
|
+
- Question: "Your configuration exists but project documentation is missing. Would you like to complete the initialization?"
|
|
374
|
+
- Options: "Yes, complete initialization" / "No, review configuration" / "Cancel"
|
|
375
|
+
- If "Yes" → Switch to INITIALIZATION workflow
|
|
376
|
+
- Display current configuration (including language, initialization status)
|
|
377
|
+
- Offer: Modify Settings / Change Language Only / Review Configuration / Re-initialize / Cancel
|
|
378
|
+
- "Change Language Only" shortcut → SETTINGS mode, Tab 1 only
|
|
379
|
+
- Route to selected sub-action
|
|
380
|
+
- Language-Aware: All AskUserQuestion calls in user's conversation_language (NO EMOJIS)
|
|
381
|
+
|
|
382
|
+
SETTINGS MODE (NEW):
|
|
383
|
+
|
|
384
|
+
- Read current language from config.yaml
|
|
385
|
+
- Load tab schema for batch-based questions
|
|
386
|
+
- Execute batch questions with AskUserQuestion
|
|
387
|
+
- Process user responses
|
|
388
|
+
- Validate settings at critical checkpoints
|
|
389
|
+
- Delegate config update to UnifiedConfigManager from moai-workflow-project
|
|
390
|
+
- Report changes
|
|
391
|
+
|
|
392
|
+
UPDATE MODE:
|
|
393
|
+
|
|
394
|
+
- Preserve language from config backup
|
|
395
|
+
- **Config Format Migration (v0.32.0+):**
|
|
396
|
+
- Check if `.moai/config/config.yaml` exists (legacy format)
|
|
397
|
+
- If exists: Convert to `config.yaml` with intelligent optimization:
|
|
398
|
+
- Preserve all user settings and customizations
|
|
399
|
+
- Add meaningful comments explaining each section
|
|
400
|
+
- Optimize structure (remove dead fields, consolidate duplicates)
|
|
401
|
+
- Convert preset files (presets/*.json → presets/*.yaml)
|
|
402
|
+
- Remove old JSON files after successful migration
|
|
403
|
+
- Use YAML's native features:
|
|
404
|
+
- Multi-line strings for long descriptions
|
|
405
|
+
- Inline comments for field explanations
|
|
406
|
+
- Better readability with proper indentation
|
|
407
|
+
- Report migration success to user
|
|
408
|
+
- Analyze backup and compare templates
|
|
409
|
+
- Perform smart template merging
|
|
410
|
+
- Update `.moai/` files with new features
|
|
411
|
+
- Auto-translate announcements to current language if needed
|
|
412
|
+
|
|
413
|
+
### Language-Aware Announcements
|
|
414
|
+
|
|
415
|
+
After any language selection or change, auto-translate company announcements:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
uv run $CLAUDE_PROJECT_DIR/.claude/hooks/moai/shared/utils/announcement_translator.py
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
This ensures `.claude/settings.json` contains announcements in the user's selected language.
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## SETTINGS MODE: Tab-Based Configuration (NEW)
|
|
426
|
+
|
|
427
|
+
> Version: v2.0.0 | Last Updated: 2025-11-19 | Changes: Removed [tab_ID] arg, added git_strategy.mode selection, expanded Tab 3 with conditional batches, fixed 26 field name errors, +16 settings
|
|
428
|
+
|
|
429
|
+
### Overview
|
|
430
|
+
|
|
431
|
+
The SETTINGS MODE uses a tab-based batch question system to provide organized, user-friendly configuration management:
|
|
432
|
+
|
|
433
|
+
- 5 tabs: Organized by configuration domain
|
|
434
|
+
- 17 batches: Grouped questions within tabs (added 5 batches: Batch 3.0, 3.3, 3.5, 3.6, improved organization)
|
|
435
|
+
- 57 settings: Complete config.yaml v0.28.0 coverage (+39% from v1.0.0)
|
|
436
|
+
- 54 questions: User-facing questions (+14 from v1.0.0)
|
|
437
|
+
- Conditional batches: Tab 3 shows Personal/Team/Hybrid batches based on mode selection
|
|
438
|
+
- Atomic updates: Safe deep merge with backup/rollback
|
|
439
|
+
|
|
440
|
+
### Initial Entry Point: Tab Selection Screen
|
|
441
|
+
|
|
442
|
+
When user runs `/moai:0-project setting` (without tab_ID), present tab selection:
|
|
443
|
+
|
|
444
|
+
```markdown
|
|
445
|
+
Which settings tab would you like to modify?
|
|
446
|
+
|
|
447
|
+
Options:
|
|
448
|
+
|
|
449
|
+
1. Tab 1: User & Language
|
|
450
|
+
|
|
451
|
+
- Configure user name, conversation language, agent prompt language
|
|
452
|
+
|
|
453
|
+
2. Tab 2: Project & GitHub Settings
|
|
454
|
+
|
|
455
|
+
- Configure project name, description, mode, GitHub Profile Name
|
|
456
|
+
|
|
457
|
+
3. Tab 3: Git Strategy & Workflow
|
|
458
|
+
|
|
459
|
+
- Configure Personal/Team Git settings, commit/branch strategy
|
|
460
|
+
|
|
461
|
+
4. Tab 4: Quality Principles & Reports
|
|
462
|
+
|
|
463
|
+
- Configure TRUST 5, report generation, storage location
|
|
464
|
+
|
|
465
|
+
5. Tab 5: System & GitHub Integration
|
|
466
|
+
|
|
467
|
+
- Configure MoAI system, GitHub automation
|
|
468
|
+
|
|
469
|
+
6. Modify All Tabs
|
|
470
|
+
- Recommended: Tab 1 → Tab 2 → Tab 3 → Others
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
After Tab Completion:
|
|
474
|
+
|
|
475
|
+
```markdown
|
|
476
|
+
Would you like to modify another settings tab?
|
|
477
|
+
|
|
478
|
+
1. No, finish settings
|
|
479
|
+
2. Select another tab
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### Tab Schema Reference
|
|
483
|
+
|
|
484
|
+
Location: `.claude/skills/moai-workflow-project/schemas/tab_schema.json`
|
|
485
|
+
|
|
486
|
+
Tab 1: User & Language (Required Foundation)
|
|
487
|
+
|
|
488
|
+
- Batch 1.1: Basic settings (3 questions - UPDATED: removed conversation_language_name)
|
|
489
|
+
- User name, conversation language, agent prompt language
|
|
490
|
+
- NOTE: conversation_language_name is auto-updated when conversation_language changes
|
|
491
|
+
- Setting count: 3 | Critical checkpoint
|
|
492
|
+
|
|
493
|
+
Tab 2: Project & GitHub Settings (Recommended)
|
|
494
|
+
|
|
495
|
+
- Batch 2.1: Project metadata (4 questions)
|
|
496
|
+
- Project name, description, mode, GitHub Profile Name (e.g., @GoosLab)
|
|
497
|
+
- Batch 2.2: Auto-processed locale settings (0 questions - UPDATED: internal analysis only)
|
|
498
|
+
- project.locale, default_language, optimized_for_language (auto-determined from conversation_language)
|
|
499
|
+
- NOTE: No user input needed. These 3 fields update automatically when conversation_language changes
|
|
500
|
+
- Auto-Processing Delegation: Command does NOT perform auto-processing. manager-project agent receives user selections, determines derived fields, then delegates atomic update to UnifiedConfigManager skill.
|
|
501
|
+
- Setting count: 4
|
|
502
|
+
|
|
503
|
+
Tab 3: Git Strategy & Workflow (Recommended with Validation - REDESIGNED v2.0.0)
|
|
504
|
+
|
|
505
|
+
- Batch 3.0: Workflow mode selection (1 question - Personal/Team/Hybrid) → Controls visibility of subsequent batches
|
|
506
|
+
- Batch 3.1: Personal core settings (4 questions) - CONDITIONAL (Personal/Hybrid only)
|
|
507
|
+
- Batch 3.2: Personal branch & cleanup (4 questions) - CONDITIONAL (Personal/Hybrid only)
|
|
508
|
+
- Batch 3.3: Personal protection & merge (4 questions) - CONDITIONAL (Personal/Hybrid only)
|
|
509
|
+
- Batch 3.4: Team core settings (4 questions) - CONDITIONAL (Team/Hybrid only)
|
|
510
|
+
- Batch 3.5: Team branch & protection (4 questions) - CONDITIONAL (Team/Hybrid only)
|
|
511
|
+
- Batch 3.6: Team safety & merge (2 questions) - CONDITIONAL (Team/Hybrid only)
|
|
512
|
+
- Setting count: 29 (+13 from v1.0.0) | Critical checkpoint for Git conflicts & mode consistency
|
|
513
|
+
|
|
514
|
+
Tab 4: Quality Principles & Reports (Optional - UPDATED v2.0.0)
|
|
515
|
+
|
|
516
|
+
- Batch 4.1: Constitution settings (3 questions - reduced from 4, renamed minimum_test_coverage→test_coverage_target)
|
|
517
|
+
- Batch 4.2: Report generation policy (4 questions - expanded, added warn_user & user_choice)
|
|
518
|
+
- Setting count: 9 (same count, better fields)
|
|
519
|
+
|
|
520
|
+
Tab 5: System & GitHub Integration (Optional - UPDATED v2.0.0)
|
|
521
|
+
|
|
522
|
+
- Batch 5.1: MoAI system settings (3 questions - updated, aligned with config.yaml v0.28.0)
|
|
523
|
+
- Batch 5.2: GitHub automation settings (5 questions - expanded from 3, added templates & spec_workflow fields)
|
|
524
|
+
- Setting count: 11 (+3 from v1.0.0)
|
|
525
|
+
|
|
526
|
+
### Batch Execution Flow
|
|
527
|
+
|
|
528
|
+
#### Step 1: Load Tab Schema
|
|
529
|
+
|
|
530
|
+
```markdown
|
|
531
|
+
Load: .claude/skills/moai-workflow-project/schemas/tab_schema.json
|
|
532
|
+
Extract:
|
|
533
|
+
|
|
534
|
+
- Tab definition (label, batches)
|
|
535
|
+
- Batch questions (max 4 per batch)
|
|
536
|
+
- Field mappings to config.yaml paths
|
|
537
|
+
- Current values from existing config
|
|
538
|
+
- Validation rules
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
#### Step 2: Execute Batch via AskUserQuestion
|
|
542
|
+
|
|
543
|
+
Single Batch Execution Example (Tab 1, Batch 1.1):
|
|
544
|
+
|
|
545
|
+
```markdown
|
|
546
|
+
Call: AskUserQuestion(
|
|
547
|
+
questions: [
|
|
548
|
+
{
|
|
549
|
+
question: "How would you like to configure the user name? (current: GoosLab)",
|
|
550
|
+
header: "User Name",
|
|
551
|
+
multiSelect: false,
|
|
552
|
+
options: [
|
|
553
|
+
{label: "Keep Current Value", description: "Continue using GoosLab"},
|
|
554
|
+
{label: "Change", description: "Select Other to enter a new name"}
|
|
555
|
+
]
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
question: "What language should Alfred use in conversations? (current: Korean/ko)",
|
|
559
|
+
header: "Conversation Language",
|
|
560
|
+
multiSelect: false,
|
|
561
|
+
options: [
|
|
562
|
+
{label: "Korean (한국어)", description: "모든 콘텐츠를 한국어로 생성"},
|
|
563
|
+
{label: "English (English)", description: "All content will be generated in English"},
|
|
564
|
+
{label: "Japanese (日本語)", description: "日本語で全てのコンテンツを生成"},
|
|
565
|
+
{label: "Chinese (中文)", description: "中文内容生成"},
|
|
566
|
+
{label: "Custom (기타)", description: "직접 언어 코드 입력 (예: th, ar, vi, nl)"}
|
|
567
|
+
]
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
question: "What is the display name for the selected language? (current: Korean)",
|
|
571
|
+
header: "Language Display Name",
|
|
572
|
+
multiSelect: false,
|
|
573
|
+
options: [...]
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
question: "What language should agent prompts use? (current: same as conversation)",
|
|
577
|
+
header: "Agent Prompt Language",
|
|
578
|
+
multiSelect: false,
|
|
579
|
+
options: [...]
|
|
580
|
+
}
|
|
581
|
+
]
|
|
582
|
+
)
|
|
583
|
+
|
|
584
|
+
Process user responses from AskUserQuestion into config update:
|
|
585
|
+
user.name → user_input_or_keep_current
|
|
586
|
+
language.conversation_language → selected_value
|
|
587
|
+
language.conversation_language_name → user_input_or_keep_current
|
|
588
|
+
language.agent_prompt_language → selected_value
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
#### Step 3: Process Responses
|
|
592
|
+
|
|
593
|
+
Mapping Logic:
|
|
594
|
+
|
|
595
|
+
```markdown
|
|
596
|
+
For each question in batch:
|
|
597
|
+
|
|
598
|
+
1. Get field path from schema (e.g., "user.name")
|
|
599
|
+
2. Get user's response (selected option or custom input)
|
|
600
|
+
3. Convert to config.yaml value:
|
|
601
|
+
- "Other" option → Use custom input from user
|
|
602
|
+
- Selected option → Use option's mapped value
|
|
603
|
+
- "Keep current" → Use existing value
|
|
604
|
+
4. Build update object: {field_path: new_value}
|
|
605
|
+
5. Collect all updates from batch
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
#### Step 4: Validate at Checkpoints
|
|
609
|
+
|
|
610
|
+
Checkpoint Locations (from tab_schema navigation_flow):
|
|
611
|
+
|
|
612
|
+
1. After Tab 1 (Language settings):
|
|
613
|
+
|
|
614
|
+
- Verify conversation_language is valid (ko, en, ja, es, etc)
|
|
615
|
+
- Verify agent_prompt_language consistency
|
|
616
|
+
- Error recovery: Re-ask Tab 1 if validation fails
|
|
617
|
+
|
|
618
|
+
2. After Tab 3 (Git strategy):
|
|
619
|
+
|
|
620
|
+
- Validate Personal/Team mode conflicts
|
|
621
|
+
- If Personal: main_branch should not be "develop"
|
|
622
|
+
- If Team: PR base must be develop or main (never direct to main)
|
|
623
|
+
- Validate branch naming consistency
|
|
624
|
+
- Error recovery: Highlight conflicts, offer fix suggestions
|
|
625
|
+
|
|
626
|
+
3. Before Config Update (Final validation):
|
|
627
|
+
- Check all required fields are set (marked required: true in schema)
|
|
628
|
+
- Verify no conflicting settings
|
|
629
|
+
- Validate field value types (string, bool, number, array)
|
|
630
|
+
- Report validation results to user
|
|
631
|
+
|
|
632
|
+
#### Step 5: Delegate Atomic Config Update to Skill
|
|
633
|
+
|
|
634
|
+
Update Pattern (Skill-delegated):
|
|
635
|
+
|
|
636
|
+
```markdown
|
|
637
|
+
Delegate ALL config update operations to UnifiedConfigManager from moai-workflow-project:
|
|
638
|
+
|
|
639
|
+
- Manager handles backup/rollback logic internally
|
|
640
|
+
- Manager performs deep merge with validation
|
|
641
|
+
- Manager writes atomically to config.yaml
|
|
642
|
+
- Manager reports success/failure
|
|
643
|
+
|
|
644
|
+
Agent responsibilities:
|
|
645
|
+
|
|
646
|
+
- Collect user responses from AskUserQuestion
|
|
647
|
+
- Map responses to config field paths
|
|
648
|
+
- Pass update map to Skill
|
|
649
|
+
- Report results to user
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
UnifiedConfigManager Responsibilities:
|
|
653
|
+
|
|
654
|
+
- UnifiedConfigManager from moai-workflow-project handles ALL file operations
|
|
655
|
+
- Internal backup/rollback if needed
|
|
656
|
+
- Atomic write and validation
|
|
657
|
+
- Error reporting
|
|
658
|
+
|
|
659
|
+
### Implementation Details
|
|
660
|
+
|
|
661
|
+
#### Tab 1 Execution Example
|
|
662
|
+
|
|
663
|
+
User runs: `/moai:0-project setting tab_1_user_language`
|
|
664
|
+
|
|
665
|
+
```
|
|
666
|
+
Step 1: Project-manager loads tab schema
|
|
667
|
+
Step 2: Extracts Tab 1 (tab_1_user_language)
|
|
668
|
+
Step 3: Gets Batch 1.1 (基本設定)
|
|
669
|
+
Step 4: Loads current values from config.yaml including extended language settings:
|
|
670
|
+
- User configuration: user.name value
|
|
671
|
+
- Conversation language: language.conversation_language (ko, en, ja, zh, etc.)
|
|
672
|
+
- Agent prompt language: language.agent_prompt_language
|
|
673
|
+
- Additional language settings: git_commit_messages, code_comments, documentation, error_messages
|
|
674
|
+
Step 5: Calls AskUserQuestion with 3 questions for core language settings
|
|
675
|
+
- Question 1: "The user name is currently set to [current value]. Is this correct?"
|
|
676
|
+
- Question 2: "What language should Alfred use in conversations? (current: [language display name]/[code])"
|
|
677
|
+
- Question 3: "The agent internal prompt language is currently set to [display name]/[code]. How would you like to configure this?"
|
|
678
|
+
Step 6: Receives user responses and maps them to configuration fields
|
|
679
|
+
Step 7: Processes each response (map to config fields)
|
|
680
|
+
- user.name response → user.name
|
|
681
|
+
- conversation_language response → language.conversation_language
|
|
682
|
+
- Auto-update: conversation_language_name (ko → Korean, en → English, ja → Japanese, es → Spanish)
|
|
683
|
+
- agent_prompt_language response → language.agent_prompt_language
|
|
684
|
+
Step 8: Runs Tab 1 validation checkpoint
|
|
685
|
+
- Check language is valid
|
|
686
|
+
- Verify consistency
|
|
687
|
+
Step 9: Delegates atomic update to UnifiedConfigManager from moai-workflow-project
|
|
688
|
+
- Manager handles backup/rollback internally
|
|
689
|
+
- Manager performs deep merge (including auto-updated conversation_language_name)
|
|
690
|
+
- Manager verifies final structure
|
|
691
|
+
Step 10: Receives result from Manager
|
|
692
|
+
- Success: Report changes made (4 fields: user.name, conversation_language, conversation_language_name [auto], agent_prompt_language)
|
|
693
|
+
- Failure: Report error from Skill with recovery suggestions
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
#### Tab 3 Validation Example (Complex - NEW v2.0.0)
|
|
697
|
+
|
|
698
|
+
User runs: `/moai:0-project setting` (or `/moai:0-project setting tab_3_git_strategy`)
|
|
699
|
+
|
|
700
|
+
```
|
|
701
|
+
Step 1: Load Tab 3 (tab_3_git_strategy) - 6 batches total
|
|
702
|
+
Step 2: Execute Batch 3.0 (Workflow Mode Selection)
|
|
703
|
+
- User selects: Personal, Team, or Hybrid
|
|
704
|
+
- Validation: Confirm mode selection
|
|
705
|
+
Step 3: CONDITIONAL LOGIC - Based on mode:
|
|
706
|
+
|
|
707
|
+
IF mode = Personal:
|
|
708
|
+
- Execute Batch 3.1 (Personal core settings)
|
|
709
|
+
- Execute Batch 3.2 (Personal branch & cleanup)
|
|
710
|
+
- Execute Batch 3.3 (Personal protection & merge)
|
|
711
|
+
- Skip Batches 3.4, 3.5, 3.6 (Team batches)
|
|
712
|
+
|
|
713
|
+
ELSE IF mode = Team:
|
|
714
|
+
- Skip Batches 3.1, 3.2, 3.3 (Personal batches)
|
|
715
|
+
- Execute Batch 3.4 (Team core settings)
|
|
716
|
+
- Execute Batch 3.5 (Team branch & protection)
|
|
717
|
+
- Execute Batch 3.6 (Team safety & merge)
|
|
718
|
+
|
|
719
|
+
ELSE IF mode = Hybrid:
|
|
720
|
+
- Execute ALL batches (3.1-3.6) for full flexibility
|
|
721
|
+
|
|
722
|
+
Step 4: Run Tab 3 validation checkpoint
|
|
723
|
+
- Validate mode selection consistency
|
|
724
|
+
- Check Personal/Team conflicts
|
|
725
|
+
- Example: If Personal: base_branch should be "main" (not "develop")
|
|
726
|
+
- Example: If Team: prevent_main_direct_merge should be true
|
|
727
|
+
- Example: If Team: default_pr_base must be "develop" or "main"
|
|
728
|
+
- Branch naming consistency
|
|
729
|
+
- Let user confirm or retry if conflicts found
|
|
730
|
+
|
|
731
|
+
Step 5: Merge all executed batches into single update object
|
|
732
|
+
Step 6: Delegate atomic update to UnifiedConfigManager from moai-workflow-project
|
|
733
|
+
- Manager handles backup/rollback internally
|
|
734
|
+
- Manager performs deep merge with final validation
|
|
735
|
+
|
|
736
|
+
Step 7: Report all 29 settings changes (or 16-20 depending on mode)
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
#### Multi-Tab Workflow Example
|
|
740
|
+
|
|
741
|
+
User runs: `/moai:0-project setting` (always interactive, no tab_ID) → Tab Selection Screen
|
|
742
|
+
|
|
743
|
+
```
|
|
744
|
+
Flow:
|
|
745
|
+
1. Show Tab Selection Screen (Which settings tab would you like to modify?)
|
|
746
|
+
2. User selects tab or "Modify All Tabs"
|
|
747
|
+
3. Execute selected tab
|
|
748
|
+
- Tab 1 (REQUIRED): User & Language (1 batch, 3 questions)
|
|
749
|
+
- Tab 2 (RECOMMENDED): Project Info (2 batches, 4 questions in batch 2.1 + 0 questions auto-processing in batch 2.2)
|
|
750
|
+
- Tab 3 (RECOMMENDED): Git Strategy (6 batches, 23 questions total, conditional by mode)
|
|
751
|
+
* Batch 3.0: Mode selection (1 question)
|
|
752
|
+
* Personal mode: Batches 3.1-3.3 (12 questions)
|
|
753
|
+
* Team mode: Batches 3.4-3.6 (10 questions)
|
|
754
|
+
* Hybrid mode: All batches (22 questions)
|
|
755
|
+
- Tab 4 (OPTIONAL): Quality & Reports (2 batches, 7 questions)
|
|
756
|
+
- Tab 5 (OPTIONAL): System & GitHub (2 batches, 8 questions)
|
|
757
|
+
4. After tab completion, ask: "Would you like to modify another settings tab?"
|
|
758
|
+
- No, finish settings (exit)
|
|
759
|
+
- Select another tab (return to step 1)
|
|
760
|
+
5. Final atomic update after user finishes all selected tabs
|
|
761
|
+
|
|
762
|
+
Tab-level behavior:
|
|
763
|
+
- If user cancels mid-tab, changes NOT saved
|
|
764
|
+
- If tab validation fails, user can retry or skip tab
|
|
765
|
+
- After ALL selected tabs complete successfully, perform final atomic update
|
|
766
|
+
- Auto-processing happens during atomic update (e.g., conversation_language_name, locale)
|
|
767
|
+
- Tab 3 conditional batches respect mode selection (shown/hidden based on git_strategy.mode)
|
|
768
|
+
|
|
769
|
+
Tab completion order (recommended):
|
|
770
|
+
- Tab 1 (REQUIRED): Foundation language settings
|
|
771
|
+
- Tab 2: Project metadata
|
|
772
|
+
- Tab 3: Git workflow strategy
|
|
773
|
+
- Tab 4: Quality principles
|
|
774
|
+
- Tab 5: System integration
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
### Tab Schema Structure
|
|
778
|
+
|
|
779
|
+
```json
|
|
780
|
+
{
|
|
781
|
+
"version": "1.0.0",
|
|
782
|
+
"tabs": [
|
|
783
|
+
{
|
|
784
|
+
"id": "tab_1_user_language",
|
|
785
|
+
"label": "Tab 1: User & Language",
|
|
786
|
+
"batches": [
|
|
787
|
+
{
|
|
788
|
+
"batch_id": "1.1",
|
|
789
|
+
"questions": [
|
|
790
|
+
{
|
|
791
|
+
"question": "...",
|
|
792
|
+
"header": "...",
|
|
793
|
+
"field": "user.name",
|
|
794
|
+
"type": "text_input|select_single|select_multiple|number_input",
|
|
795
|
+
"multiSelect": false,
|
|
796
|
+
"options": [...],
|
|
797
|
+
"current_value": "...",
|
|
798
|
+
"required": true
|
|
799
|
+
}
|
|
800
|
+
]
|
|
801
|
+
}
|
|
802
|
+
]
|
|
803
|
+
}
|
|
804
|
+
],
|
|
805
|
+
"navigation_flow": {
|
|
806
|
+
"completion_order": ["tab_1", "tab_2", "tab_3", "tab_4", "tab_5"],
|
|
807
|
+
"validation_sequence": [
|
|
808
|
+
"Tab 1 checkpoint",
|
|
809
|
+
"Tab 3 checkpoint",
|
|
810
|
+
"Final validation"
|
|
811
|
+
]
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
### Critical Rules
|
|
817
|
+
|
|
818
|
+
MANDATORY:
|
|
819
|
+
|
|
820
|
+
- Execute ONLY ONE tab per command invocation (unless user specifies "all tabs")
|
|
821
|
+
- READ language context from config.yaml before starting SETTINGS MODE
|
|
822
|
+
- Run validation at Tab 1, Tab 3, and before final update
|
|
823
|
+
- Delegate config update to UnifiedConfigManager from moai-workflow-project (no direct backup in command)
|
|
824
|
+
- Report all changes made
|
|
825
|
+
- Use AskUserQuestion for ALL user interaction
|
|
826
|
+
|
|
827
|
+
Configuration Priority:
|
|
828
|
+
|
|
829
|
+
- `.moai/config/config.yaml` settings ALWAYS take priority
|
|
830
|
+
- Existing language settings respected unless user explicitly requests change in Tab 1
|
|
831
|
+
- Fresh installs: Language already set by moai-adk CLI, skip language selection
|
|
832
|
+
|
|
833
|
+
Language:
|
|
834
|
+
|
|
835
|
+
- Tab schema stored in English (technical field names)
|
|
836
|
+
- All user-facing questions in user's conversation_language
|
|
837
|
+
- AskUserQuestion must use user's conversation_language for ALL fields
|
|
838
|
+
|
|
839
|
+
---
|
|
840
|
+
|
|
841
|
+
## PHASE 2.5: Save Phase Context
|
|
842
|
+
|
|
843
|
+
Goal: Persist phase execution results for explicit context passing to subsequent commands.
|
|
844
|
+
|
|
845
|
+
### Step 1: Extract Context from Agent Response
|
|
846
|
+
|
|
847
|
+
After manager-project agent completes, extract the following information:
|
|
848
|
+
|
|
849
|
+
- Project metadata: name, mode, language, GitHub Profile Name
|
|
850
|
+
- Files created: List of generated files with absolute paths
|
|
851
|
+
- Tech stack: Primary codebase language
|
|
852
|
+
- Next phase: Recommended next command (1-plan)
|
|
853
|
+
|
|
854
|
+
### Step 2: Delegate Context Saving to manager-project
|
|
855
|
+
|
|
856
|
+
The manager-project agent handles all context saving:
|
|
857
|
+
|
|
858
|
+
```markdown
|
|
859
|
+
Context data to persist:
|
|
860
|
+
|
|
861
|
+
- Phase: "0-project"
|
|
862
|
+
- Mode: INITIALIZATION|AUTO-DETECT|SETTINGS|UPDATE
|
|
863
|
+
- Timestamp: ISO8601 UTC
|
|
864
|
+
- Status: completed|failed
|
|
865
|
+
- Outputs:
|
|
866
|
+
- project_name
|
|
867
|
+
- mode (personal|team)
|
|
868
|
+
- language (conversation_language)
|
|
869
|
+
- tech_stack (detected primary language)
|
|
870
|
+
- Files created: [list of absolute paths]
|
|
871
|
+
- Next phase: "1-plan"
|
|
872
|
+
|
|
873
|
+
Agent delegates to UnifiedConfigManager from moai-workflow-project:
|
|
874
|
+
|
|
875
|
+
- Save context via ContextManager
|
|
876
|
+
- Handle file path validation
|
|
877
|
+
- Implement error recovery (non-blocking)
|
|
878
|
+
- Report success/failure
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
Error Handling Strategy:
|
|
882
|
+
|
|
883
|
+
- Context save failures should NOT block command completion
|
|
884
|
+
- Log clear warning messages for debugging
|
|
885
|
+
- Allow user to retry manually if needed
|
|
886
|
+
|
|
887
|
+
---
|
|
888
|
+
|
|
889
|
+
## PHASE 3: Completion & Next Steps
|
|
890
|
+
|
|
891
|
+
Goal: Guide user to next action in their selected language.
|
|
892
|
+
|
|
893
|
+
### Step 1: Display Completion Status
|
|
894
|
+
|
|
895
|
+
Show mode-specific completion message in user's language:
|
|
896
|
+
|
|
897
|
+
- INITIALIZATION: "Project initialization complete"
|
|
898
|
+
- AUTO-DETECT: Configuration review/modification complete
|
|
899
|
+
- SETTINGS: "Settings updated successfully"
|
|
900
|
+
- UPDATE: "Templates optimized and updated"
|
|
901
|
+
|
|
902
|
+
### Step 2: Offer Next Steps
|
|
903
|
+
|
|
904
|
+
Use AskUserQuestion in user's language:
|
|
905
|
+
|
|
906
|
+
- From Initialization: Write SPEC / Review Structure / New Session
|
|
907
|
+
- From Settings: Continue Settings / Sync Documentation / Exit
|
|
908
|
+
- From Update: Review Changes / Modify Settings / Exit
|
|
909
|
+
|
|
910
|
+
Critical: NO EMOJIS in AskUserQuestion fields. Use clear text only.
|
|
911
|
+
|
|
912
|
+
---
|
|
913
|
+
|
|
914
|
+
## Critical Rules
|
|
915
|
+
|
|
916
|
+
### Mode Execution
|
|
917
|
+
|
|
918
|
+
[HARD] Execute exactly ONE mode per command invocation.
|
|
919
|
+
|
|
920
|
+
WHY: Multi-mode execution causes state inconsistency.
|
|
921
|
+
|
|
922
|
+
IMPACT: Executing multiple modes corrupts configuration state.
|
|
923
|
+
|
|
924
|
+
Exception: [SOFT] Allow mode switching only when user explicitly selects different mode in SETTINGS tab selection screen.
|
|
925
|
+
|
|
926
|
+
### Language Handling
|
|
927
|
+
|
|
928
|
+
[HARD] Always use user's conversation_language for all output and prompts.
|
|
929
|
+
|
|
930
|
+
WHY: User comprehension requires language consistency.
|
|
931
|
+
|
|
932
|
+
IMPACT: Using wrong language reduces accessibility.
|
|
933
|
+
|
|
934
|
+
[HARD] Never skip language confirmation in INITIALIZATION mode.
|
|
935
|
+
|
|
936
|
+
WHY: Language choice determines all subsequent output.
|
|
937
|
+
|
|
938
|
+
IMPACT: Missing language selection blocks localized experience.
|
|
939
|
+
|
|
940
|
+
[SOFT] Auto-translate announcements after language changes using announcement_translator.py.
|
|
941
|
+
|
|
942
|
+
WHY: Announcements should reflect user's selected language.
|
|
943
|
+
|
|
944
|
+
### Agent Delegation
|
|
945
|
+
|
|
946
|
+
[HARD] Delegate ALL execution to manager-project agent.
|
|
947
|
+
|
|
948
|
+
WHY: Agent provides specialized expertise and validation.
|
|
949
|
+
|
|
950
|
+
IMPACT: Direct execution bypasses error recovery and consistency checks.
|
|
951
|
+
|
|
952
|
+
[HARD] Route to correct mode based on command argument analysis.
|
|
953
|
+
|
|
954
|
+
WHY: Correct routing enables appropriate workflow.
|
|
955
|
+
|
|
956
|
+
IMPACT: Wrong routing causes unexpected behavior.
|
|
957
|
+
|
|
958
|
+
### User Interaction
|
|
959
|
+
|
|
960
|
+
[HARD] Use AskUserQuestion for ALL user interaction at COMMAND level only.
|
|
961
|
+
|
|
962
|
+
WHY: Subagents invoked via Task() operate in isolated, stateless contexts and cannot interact with users. AskUserQuestion requires real-time user response which subagents cannot receive.
|
|
963
|
+
|
|
964
|
+
IMPACT: Attempting AskUserQuestion in subagents causes workflow failures or silent failures.
|
|
965
|
+
|
|
966
|
+
[HARD] Collect all user choices via AskUserQuestion BEFORE delegating to agents.
|
|
967
|
+
|
|
968
|
+
WHY: Subagents need pre-collected user decisions to execute without interaction.
|
|
969
|
+
|
|
970
|
+
IMPACT: Missing parameters force subagents to make assumptions or fail.
|
|
971
|
+
|
|
972
|
+
[HARD] Pass user choices as parameters when invoking Task().
|
|
973
|
+
|
|
974
|
+
WHY: Agents must receive all necessary context at invocation time since they cannot request more.
|
|
975
|
+
|
|
976
|
+
IMPACT: Incomplete context causes agents to fail or produce incorrect results.
|
|
977
|
+
|
|
978
|
+
[HARD] Never include EMOJI characters in AskUserQuestion fields.
|
|
979
|
+
|
|
980
|
+
WHY: Emoji parsing varies across platforms and may cause display issues.
|
|
981
|
+
|
|
982
|
+
IMPACT: Platform inconsistencies create confusing user experience.
|
|
983
|
+
|
|
984
|
+
[HARD] Maximum 4 options per AskUserQuestion question.
|
|
985
|
+
|
|
986
|
+
WHY: Tool constraint limits options to 4 per question.
|
|
987
|
+
|
|
988
|
+
IMPACT: Exceeding 4 options causes tool execution failure. Use multi-step questions for more choices.
|
|
989
|
+
|
|
990
|
+
### Tool Usage Constraints
|
|
991
|
+
|
|
992
|
+
[HARD] Use ONLY Task() for agent orchestration and AskUserQuestion() for interaction.
|
|
993
|
+
|
|
994
|
+
WHY: Direct tool usage bypasses agent expertise.
|
|
995
|
+
|
|
996
|
+
IMPACT: Tool misuse causes validation and consistency failures.
|
|
997
|
+
|
|
998
|
+
Prohibited Direct Tools:
|
|
999
|
+
|
|
1000
|
+
- NO Read for file operations
|
|
1001
|
+
- NO Write for file creation or modification
|
|
1002
|
+
- NO Edit for configuration changes
|
|
1003
|
+
- NO Bash for command execution
|
|
1004
|
+
- NO TodoWrite for task management
|
|
1005
|
+
|
|
1006
|
+
All tool-based operations delegate to manager-project agent.
|
|
1007
|
+
|
|
1008
|
+
### Configuration Management
|
|
1009
|
+
|
|
1010
|
+
[HARD] .moai/config/config.yaml settings ALWAYS take priority over defaults.
|
|
1011
|
+
|
|
1012
|
+
WHY: Existing configuration represents user intent.
|
|
1013
|
+
|
|
1014
|
+
IMPACT: Ignoring existing config causes destructive overwrites.
|
|
1015
|
+
|
|
1016
|
+
[SOFT] Respect existing language settings unless user explicitly requests change via SETTINGS Tab 1.
|
|
1017
|
+
|
|
1018
|
+
WHY: Unexpected language changes disrupt user workflow.
|
|
1019
|
+
|
|
1020
|
+
IMPACT: Automatic changes without user consent reduce trust.
|
|
1021
|
+
|
|
1022
|
+
[SOFT] For fresh installs: language selection occurs FIRST before other configuration.
|
|
1023
|
+
|
|
1024
|
+
WHY: Language choice affects all subsequent interactions.
|
|
1025
|
+
|
|
1026
|
+
IMPACT: Deferred language selection complicates initial setup.
|
|
1027
|
+
|
|
1028
|
+
---
|
|
1029
|
+
|
|
1030
|
+
## Output Format
|
|
1031
|
+
|
|
1032
|
+
Responses and status reports must follow structured XML format for clarity and automated processing:
|
|
1033
|
+
|
|
1034
|
+
<analysis>
|
|
1035
|
+
Context assessment including detected mode, language context, and user command arguments.
|
|
1036
|
+
Example: "Detected AUTO-DETECT mode, user language is Korean (ko), existing config found at .moai/config/config.yaml"
|
|
1037
|
+
</analysis>
|
|
1038
|
+
|
|
1039
|
+
<approach>
|
|
1040
|
+
Execution strategy selected based on analysis, including manager-project agent invocation parameters.
|
|
1041
|
+
Example: "Delegating to manager-project agent with AUTO-DETECT mode context, language: ko, requesting settings review"
|
|
1042
|
+
</approach>
|
|
1043
|
+
|
|
1044
|
+
<phase>
|
|
1045
|
+
Current execution phase (Phase 1, Phase 2, Phase 2.5, or Phase 3) with step-by-step progress.
|
|
1046
|
+
Example: "Phase 2: Execute AUTO-DETECT Mode - Displaying current configuration and offering modification options"
|
|
1047
|
+
</phase>
|
|
1048
|
+
|
|
1049
|
+
<verification>
|
|
1050
|
+
Quality checks and validation results at checkpoints, including language validation and configuration consistency checks.
|
|
1051
|
+
Example: "Language validation passed (ko is valid), configuration loaded successfully, ready for user interaction"
|
|
1052
|
+
</verification>
|
|
1053
|
+
|
|
1054
|
+
<completion>
|
|
1055
|
+
Mode-specific completion summary with files created, settings modified, and next recommended action.
|
|
1056
|
+
Example: "Settings updated successfully. Modified 4 fields: user.name, conversation_language, language_name [auto], agent_prompt_language. Recommend next step: /moai:1-plan"
|
|
1057
|
+
</completion>
|
|
1058
|
+
|
|
1059
|
+
WHY: Structured output enables automated parsing and consistent status tracking across command executions.
|
|
1060
|
+
|
|
1061
|
+
IMPACT: Unstructured output reduces ability to track execution state and causes user confusion about command progress.
|
|
1062
|
+
|
|
1063
|
+
---
|
|
1064
|
+
|
|
1065
|
+
## Quick Reference
|
|
1066
|
+
|
|
1067
|
+
| Scenario | Mode | Entry Point | Key Phases |
|
|
1068
|
+
| -------------------- | -------------- | --------------------------------- | -------------------------------------------------------------- |
|
|
1069
|
+
| First-time setup | INITIALIZATION | `/moai:0-project` (no config) | Read language → Interview → Docs |
|
|
1070
|
+
| Existing project | AUTO-DETECT | `/moai:0-project` (config exists) | Read language → Display → Options |
|
|
1071
|
+
| Modify config | SETTINGS | `/moai:0-project setting` | Interactive tab selection → Conditional batches → Skill update |
|
|
1072
|
+
| After package update | UPDATE | `/moai:0-project update` | Preserve language → Template merge → Announce |
|
|
1073
|
+
|
|
1074
|
+
Associated Skills:
|
|
1075
|
+
|
|
1076
|
+
- moai-workflow-project - Unified project management skill providing:
|
|
1077
|
+
- Language selection/change
|
|
1078
|
+
- Config operations (atomic updates, backup/rollback)
|
|
1079
|
+
- Template merging
|
|
1080
|
+
- Tab-based batch questions
|
|
1081
|
+
|
|
1082
|
+
Project Documentation Directory:
|
|
1083
|
+
|
|
1084
|
+
- Location: `.moai/project/` (singular, NOT `.moai/projects/`)
|
|
1085
|
+
- Files: `product.md`, `structure.md`, `tech.md` (auto-generated or interactive)
|
|
1086
|
+
- Language: Auto-translated to user's conversation_language
|
|
1087
|
+
|
|
1088
|
+
Version: 2.0.0 (Tab-based Configuration with Conditional Batches & Fixed Field Alignment)
|
|
1089
|
+
Last Updated: 2025-11-19
|
|
1090
|
+
Architecture: Commands → Agents → Skills (Complete delegation, no direct backup in command)
|
|
1091
|
+
Tab Schema: Available in moai-workflow-project skill (v2.0.0)
|
|
1092
|
+
Improvements in v2.0.0:
|
|
1093
|
+
|
|
1094
|
+
- Removed `[tab_ID]` argument → Always use interactive tab selection
|
|
1095
|
+
- Added git_strategy.mode selection (Batch 3.0) with Personal/Team/Hybrid conditional logic
|
|
1096
|
+
- Expanded Tab 3: 16 → 29 settings (+81%)
|
|
1097
|
+
- Fixed 26 outdated/incorrect field names (checkpoint_enabled→auto_checkpoint, etc)
|
|
1098
|
+
- Enhanced validation checkpoints: 3 → 6 rules
|
|
1099
|
+
- Total coverage: 41 → 57 settings (+39%)
|
|
1100
|
+
|
|
1101
|
+
---
|
|
1102
|
+
|
|
1103
|
+
## Final Step: Next Action Selection
|
|
1104
|
+
|
|
1105
|
+
After command execution completes, use AskUserQuestion tool to guide user to next action:
|
|
1106
|
+
|
|
1107
|
+
```python
|
|
1108
|
+
AskUserQuestion({
|
|
1109
|
+
"questions": [{
|
|
1110
|
+
"question": "Project setup is complete. What would you like to do next?",
|
|
1111
|
+
"header": "Next Steps",
|
|
1112
|
+
"multiSelect": false,
|
|
1113
|
+
"options": [
|
|
1114
|
+
{
|
|
1115
|
+
"label": "Write Specification",
|
|
1116
|
+
"description": "Execute /moai:1-plan to define feature specifications"
|
|
1117
|
+
},
|
|
1118
|
+
{
|
|
1119
|
+
"label": "Review Project Structure",
|
|
1120
|
+
"description": "Check current project status and settings"
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"label": "Start New Session",
|
|
1124
|
+
"description": "Initialize workspace and start fresh"
|
|
1125
|
+
}
|
|
1126
|
+
]
|
|
1127
|
+
}]
|
|
1128
|
+
})
|
|
1129
|
+
```
|
|
1130
|
+
|
|
1131
|
+
Important:
|
|
1132
|
+
|
|
1133
|
+
- Use conversation language from config
|
|
1134
|
+
- No emojis in any AskUserQuestion fields
|
|
1135
|
+
- Always provide clear next step options
|
|
1136
|
+
|
|
1137
|
+
## EXECUTION DIRECTIVE
|
|
1138
|
+
|
|
1139
|
+
You must NOW execute the command following the "Execution Philosophy" described above.
|
|
1140
|
+
|
|
1141
|
+
1. Analyze the subcommand/context.
|
|
1142
|
+
2. Use the manager-project subagent to handle project setup.
|
|
1143
|
+
3. Do NOT just describe what you will do. DO IT.
|