moai-adk 0.8.0__py3-none-any.whl → 0.34.0__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.
- 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 +118 -48
- moai_adk/cli/commands/language.py +248 -0
- moai_adk/cli/commands/status.py +8 -13
- moai_adk/cli/commands/update.py +1978 -149
- 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 +683 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +493 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +422 -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 +148 -17
- 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 +305 -0
- 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 +572 -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 +189 -22
- moai_adk/core/project/initializer.py +218 -27
- moai_adk/core/project/phase_executor.py +416 -44
- 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 +310 -0
- 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 +376 -0
- moai_adk/statusline/enhanced_output_style_detector.py +372 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +322 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +343 -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 +670 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
- moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +509 -0
- moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +1020 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1384 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -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/core → moai/lib}/checkpoint.py +10 -37
- 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 +1075 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
- moai_adk/templates/.claude/settings.json +78 -50
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +438 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -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-docs-generation/reference.md +328 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +313 -283
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +610 -1525
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +423 -619
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +295 -95
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +817 -16
- 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-database/reference.md +532 -17
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +470 -97
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +955 -16
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +651 -18
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -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 +492 -0
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -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-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -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-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -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 +359 -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-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -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-lang-cpp/SKILL.md +618 -93
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +446 -91
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +346 -94
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +906 -16
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +721 -15
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +352 -91
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +851 -16
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +278 -18
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +344 -86
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +993 -16
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +549 -18
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +617 -96
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +364 -314
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +849 -496
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +731 -243
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +545 -89
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +650 -87
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +341 -93
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +646 -16
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +491 -18
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +463 -89
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +620 -16
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +410 -17
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +486 -112
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +905 -16
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +659 -17
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +333 -92
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1076 -16
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +718 -21
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -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 +319 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -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-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -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-mcp-figma/SKILL.md +402 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +290 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -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 +175 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -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/reference.md +275 -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 +1462 -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 +92 -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-spec/SKILL.md +534 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -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-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -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/examples.md +672 -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/reference.md +440 -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 +411 -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 +365 -0
- 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 +206 -36
- moai_adk/templates/.gitignore +194 -13
- moai_adk/templates/.mcp.json +31 -0
- moai_adk/templates/.moai/config/config.yaml +58 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +151 -0
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +81 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +634 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +170 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +87 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -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 +17 -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 +92 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +571 -244
- moai_adk/utils/__init__.py +24 -2
- moai_adk/utils/banner.py +9 -13
- 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/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.34.0.dist-info/METADATA +2999 -0
- moai_adk-0.34.0.dist-info/RECORD +463 -0
- {moai_adk-0.8.0.dist-info → moai_adk-0.34.0.dist-info}/WHEEL +1 -1
- {moai_adk-0.8.0.dist-info → moai_adk-0.34.0.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -80
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -293
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -196
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -207
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -375
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -343
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -246
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -320
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -837
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -272
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -265
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -311
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -352
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1184
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -665
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -488
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -623
- moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -313
- moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -416
- moai_adk/templates/.claude/hooks/alfred/core/tags.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -161
- moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -90
- moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -42
- moai_adk/templates/.claude/hooks/alfred/test_hook_output.py +0 -175
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
- 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-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-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-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-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-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-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-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-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-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-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 -113
- 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/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- 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-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-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- 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/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- 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-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -218
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
- moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +0 -176
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -256
- moai_adk/templates/.moai/config.json +0 -96
- moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -208
- moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -369
- moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -539
- moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md +0 -444
- moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
- moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -220
- moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -218
- moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -356
- moai_adk/templates/.moai/memory/config-schema.md +0 -444
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
- moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
- moai_adk/templates/.moai/project/product.md +0 -161
- moai_adk/templates/.moai/project/structure.md +0 -156
- moai_adk/templates/.moai/project/tech.md +0 -227
- moai_adk/templates/__init__.py +0 -2
- moai_adk-0.8.0.dist-info/METADATA +0 -1722
- moai_adk-0.8.0.dist-info/RECORD +0 -282
- {moai_adk-0.8.0.dist-info → moai_adk-0.34.0.dist-info}/licenses/LICENSE +0 -0
moai_adk/cli/commands/init.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# @CODE:CLI-001 | @CODE:INIT-003:CLI
|
|
2
1
|
# SPEC: SPEC-CLI-001.md, SPEC-INIT-003.md
|
|
3
2
|
# TEST: tests/unit/test_cli_commands.py, tests/unit/test_init_reinit.py
|
|
4
3
|
"""MoAI-ADK init command
|
|
@@ -20,7 +19,7 @@ Project initialization command (interactive/non-interactive):
|
|
|
20
19
|
- Run `Skill("moai-foundation-langs")` to validate detected language stack
|
|
21
20
|
|
|
22
21
|
2. **Before first SPEC creation**:
|
|
23
|
-
- Use `Skill("moai-
|
|
22
|
+
- Use `Skill("moai-core-language-detection")` to confirm language selection
|
|
24
23
|
|
|
25
24
|
3. **Project reinitialization** (`--force`):
|
|
26
25
|
- Skills automatically adapt to new project structure
|
|
@@ -32,12 +31,17 @@ from pathlib import Path
|
|
|
32
31
|
from typing import Sequence
|
|
33
32
|
|
|
34
33
|
import click
|
|
34
|
+
import yaml
|
|
35
35
|
from rich.console import Console
|
|
36
36
|
from rich.progress import BarColumn, Progress, SpinnerColumn, TaskID, TextColumn
|
|
37
37
|
|
|
38
38
|
from moai_adk import __version__
|
|
39
39
|
from moai_adk.cli.prompts import prompt_project_setup
|
|
40
40
|
from moai_adk.core.project.initializer import ProjectInitializer
|
|
41
|
+
from moai_adk.statusline.version_reader import (
|
|
42
|
+
VersionConfig,
|
|
43
|
+
VersionReader,
|
|
44
|
+
)
|
|
41
45
|
from moai_adk.utils.banner import print_banner, print_welcome_message
|
|
42
46
|
|
|
43
47
|
console = Console()
|
|
@@ -85,9 +89,9 @@ def create_progress_callback(progress: Progress, task_ids: Sequence[TaskID]):
|
|
|
85
89
|
)
|
|
86
90
|
@click.option(
|
|
87
91
|
"--locale",
|
|
88
|
-
type=click.Choice(["ko", "en"]),
|
|
92
|
+
type=click.Choice(["ko", "en", "ja", "zh"]),
|
|
89
93
|
default=None,
|
|
90
|
-
help="Preferred language (default: en)",
|
|
94
|
+
help="Preferred language (ko/en/ja/zh, default: en)",
|
|
91
95
|
)
|
|
92
96
|
@click.option(
|
|
93
97
|
"--language",
|
|
@@ -114,26 +118,48 @@ def init(
|
|
|
114
118
|
path: Project directory path (default: current directory)
|
|
115
119
|
non_interactive: Skip prompts and use defaults
|
|
116
120
|
mode: Project mode (personal/team)
|
|
117
|
-
locale: Preferred language (ko/en).
|
|
121
|
+
locale: Preferred language (ko/en/ja/zh). Interactive mode supports additional languages.
|
|
118
122
|
language: Programming language
|
|
123
|
+
with_mcp: Install specific MCP servers (can be used multiple times)
|
|
124
|
+
mcp_auto: Auto-install all recommended MCP servers
|
|
119
125
|
force: Force reinitialize without confirmation
|
|
120
126
|
"""
|
|
121
127
|
try:
|
|
122
|
-
# 1. Print banner
|
|
128
|
+
# 1. Print banner with enhanced version info
|
|
123
129
|
print_banner(__version__)
|
|
124
130
|
|
|
125
|
-
# 2.
|
|
131
|
+
# 2. Enhanced version reading with error handling
|
|
132
|
+
try:
|
|
133
|
+
version_config = VersionConfig(
|
|
134
|
+
cache_ttl_seconds=10, # Very short cache for CLI
|
|
135
|
+
fallback_version=__version__,
|
|
136
|
+
debug_mode=False,
|
|
137
|
+
)
|
|
138
|
+
version_reader = VersionReader(version_config)
|
|
139
|
+
current_version = version_reader.get_version()
|
|
140
|
+
|
|
141
|
+
# Log version info for debugging
|
|
142
|
+
console.print(f"[dim]Current MoAI-ADK version: {current_version}[/dim]")
|
|
143
|
+
except Exception as e:
|
|
144
|
+
console.print(f"[yellow]⚠️ Version read error: {e}[/yellow]")
|
|
145
|
+
|
|
146
|
+
# 3. Check current directory mode
|
|
126
147
|
is_current_dir = path == "."
|
|
127
148
|
project_path = Path(path).resolve()
|
|
128
149
|
|
|
150
|
+
# Initialize variables
|
|
151
|
+
custom_language = None
|
|
152
|
+
|
|
129
153
|
# 3. Interactive vs Non-Interactive
|
|
130
154
|
if non_interactive:
|
|
131
155
|
# Non-Interactive Mode
|
|
132
|
-
console.print(
|
|
133
|
-
f"\n[cyan]🚀 Initializing project at {project_path}...[/cyan]\n"
|
|
134
|
-
)
|
|
156
|
+
console.print(f"\n[cyan]🚀 Initializing project at {project_path}...[/cyan]\n")
|
|
135
157
|
project_name = project_path.name if is_current_dir else path
|
|
136
158
|
locale = locale or "en"
|
|
159
|
+
# Language detection happens in /moai:0-project, so default to None here
|
|
160
|
+
# This will become "generic" internally, but Summary will show more helpful message
|
|
161
|
+
if not language:
|
|
162
|
+
language = None
|
|
137
163
|
else:
|
|
138
164
|
# Interactive Mode
|
|
139
165
|
print_welcome_message()
|
|
@@ -151,6 +177,7 @@ def init(
|
|
|
151
177
|
locale = answers["locale"]
|
|
152
178
|
language = answers["language"]
|
|
153
179
|
project_name = answers["project_name"]
|
|
180
|
+
custom_language = answers.get("custom_language")
|
|
154
181
|
|
|
155
182
|
console.print("\n[cyan]🚀 Starting installation...[/cyan]\n")
|
|
156
183
|
|
|
@@ -167,7 +194,7 @@ def init(
|
|
|
167
194
|
else:
|
|
168
195
|
# Interactive mode: Simple notification
|
|
169
196
|
console.print("\n[cyan]🔄 Reinitializing project...[/cyan]")
|
|
170
|
-
console.print(" Backup will be created at .moai-backups/
|
|
197
|
+
console.print(" Backup will be created at .moai-backups/backup/\n")
|
|
171
198
|
|
|
172
199
|
# 5. Initialize project (Progress Bar with 5 phases)
|
|
173
200
|
# Always allow reinit (force mode by default)
|
|
@@ -175,25 +202,64 @@ def init(
|
|
|
175
202
|
|
|
176
203
|
# Reinit mode: set config.json optimized to false (v0.3.1+)
|
|
177
204
|
if is_reinit:
|
|
178
|
-
|
|
205
|
+
# Migration: Remove old hook files (Issue #163)
|
|
206
|
+
old_hook_files = [
|
|
207
|
+
".claude/hooks/alfred/session_start__startup.py", # v0.8.0 deprecated
|
|
208
|
+
]
|
|
209
|
+
for old_file in old_hook_files:
|
|
210
|
+
old_path = project_path / old_file
|
|
211
|
+
if old_path.exists():
|
|
212
|
+
try:
|
|
213
|
+
old_path.unlink() # Remove old file
|
|
214
|
+
except Exception:
|
|
215
|
+
pass # Ignore removal failures
|
|
216
|
+
|
|
217
|
+
# Support both YAML (v0.32.5+) and JSON (legacy) config files
|
|
218
|
+
config_yaml_path = project_path / ".moai" / "config" / "config.yaml"
|
|
219
|
+
config_json_path = project_path / ".moai" / "config" / "config.json"
|
|
220
|
+
|
|
221
|
+
config_path = config_yaml_path if config_yaml_path.exists() else config_json_path
|
|
222
|
+
is_yaml = config_path.suffix in (".yaml", ".yml")
|
|
223
|
+
|
|
179
224
|
if config_path.exists():
|
|
180
225
|
try:
|
|
181
226
|
with open(config_path, "r", encoding="utf-8") as f:
|
|
182
|
-
|
|
227
|
+
if is_yaml:
|
|
228
|
+
config_data = yaml.safe_load(f) or {}
|
|
229
|
+
else:
|
|
230
|
+
config_data = json.load(f)
|
|
183
231
|
|
|
184
232
|
# Update version and optimization flags
|
|
185
233
|
if "moai" not in config_data:
|
|
186
234
|
config_data["moai"] = {}
|
|
187
|
-
|
|
235
|
+
|
|
236
|
+
# Use enhanced version reader for consistent version handling
|
|
237
|
+
try:
|
|
238
|
+
version_config = VersionConfig(
|
|
239
|
+
cache_ttl_seconds=5, # Very short cache for config update
|
|
240
|
+
fallback_version=__version__,
|
|
241
|
+
debug_mode=False,
|
|
242
|
+
)
|
|
243
|
+
version_reader = VersionReader(version_config)
|
|
244
|
+
current_version = version_reader.get_version()
|
|
245
|
+
config_data["moai"]["version"] = current_version
|
|
246
|
+
except Exception:
|
|
247
|
+
# Fallback to package version
|
|
248
|
+
config_data["moai"]["version"] = __version__
|
|
188
249
|
|
|
189
250
|
if "project" not in config_data:
|
|
190
251
|
config_data["project"] = {}
|
|
191
252
|
config_data["project"]["optimized"] = False
|
|
192
253
|
|
|
193
254
|
with open(config_path, "w", encoding="utf-8") as f:
|
|
194
|
-
|
|
255
|
+
if is_yaml:
|
|
256
|
+
yaml.safe_dump(
|
|
257
|
+
config_data, f, default_flow_style=False, allow_unicode=True, sort_keys=False
|
|
258
|
+
)
|
|
259
|
+
else:
|
|
260
|
+
json.dump(config_data, f, indent=2, ensure_ascii=False)
|
|
195
261
|
except Exception:
|
|
196
|
-
# Ignore read/write failures; config
|
|
262
|
+
# Ignore read/write failures; config is regenerated during initialization
|
|
197
263
|
pass
|
|
198
264
|
|
|
199
265
|
with Progress(
|
|
@@ -218,6 +284,7 @@ def init(
|
|
|
218
284
|
mode=mode,
|
|
219
285
|
locale=locale,
|
|
220
286
|
language=language,
|
|
287
|
+
custom_language=custom_language,
|
|
221
288
|
backup_enabled=True,
|
|
222
289
|
progress_callback=callback,
|
|
223
290
|
reinit=True, # Always allow reinit (force mode by default)
|
|
@@ -226,20 +293,17 @@ def init(
|
|
|
226
293
|
# 6. Output results
|
|
227
294
|
if result.success:
|
|
228
295
|
separator = "[dim]" + ("─" * 60) + "[/dim]"
|
|
229
|
-
console.print(
|
|
230
|
-
"\n[green bold]✅ Initialization Completed Successfully![/green bold]"
|
|
231
|
-
)
|
|
296
|
+
console.print("\n[green bold]✅ Initialization Completed Successfully![/green bold]")
|
|
232
297
|
console.print(separator)
|
|
233
298
|
console.print("\n[cyan]📊 Summary:[/cyan]")
|
|
234
299
|
console.print(f" [dim]📁 Location:[/dim] {result.project_path}")
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
console.print(
|
|
238
|
-
|
|
239
|
-
)
|
|
240
|
-
console.print(
|
|
241
|
-
|
|
242
|
-
)
|
|
300
|
+
# Show language more clearly - "generic" means auto-detect
|
|
301
|
+
language_display = "Auto-detect (use /moai:0-project)" if result.language == "generic" else result.language
|
|
302
|
+
console.print(f" [dim]🌐 Language:[/dim] {language_display}")
|
|
303
|
+
# Show Git Strategy (default: manual = local-only, no auto-branch)
|
|
304
|
+
console.print(" [dim]🔀 Git:[/dim] manual (github-flow, branch: manual)")
|
|
305
|
+
console.print(f" [dim]🌍 Locale:[/dim] {result.locale}")
|
|
306
|
+
console.print(f" [dim]📄 Files:[/dim] {len(result.created_files)} created")
|
|
243
307
|
console.print(f" [dim]⏱️ Duration:[/dim] {result.duration}ms")
|
|
244
308
|
|
|
245
309
|
# Show backup info if reinitialized
|
|
@@ -253,31 +317,37 @@ def init(
|
|
|
253
317
|
|
|
254
318
|
# Show config merge notice if reinitialized
|
|
255
319
|
if is_reinit:
|
|
256
|
-
console.print("\n[yellow]⚠️ Configuration
|
|
257
|
-
console.print(
|
|
258
|
-
console.print("
|
|
259
|
-
console.print("
|
|
260
|
-
console.print("
|
|
261
|
-
console.print("
|
|
320
|
+
console.print("\n[yellow]⚠️ Configuration Status: optimized=false (merge required)[/yellow]")
|
|
321
|
+
console.print()
|
|
322
|
+
console.print("[cyan]What Happened:[/cyan]")
|
|
323
|
+
console.print(" ✅ Template files updated to latest version")
|
|
324
|
+
console.print(" 💾 Your previous settings backed up in: [cyan].moai-backups/backup/[/cyan]")
|
|
325
|
+
console.print(" ⏳ Configuration merge required")
|
|
326
|
+
console.print()
|
|
327
|
+
console.print("[cyan]What is optimized=false?[/cyan]")
|
|
328
|
+
console.print(" • Template version changed (you get new features)")
|
|
329
|
+
console.print(" • Your previous settings are safe (backed up)")
|
|
330
|
+
console.print(" • Next: Run /moai:0-project to merge")
|
|
331
|
+
console.print()
|
|
332
|
+
console.print("[cyan]What Happens Next:[/cyan]")
|
|
333
|
+
console.print(" 1. Run [bold]/moai:0-project[/bold] in Claude Code")
|
|
334
|
+
console.print(" 2. System intelligently merges old settings + new template")
|
|
335
|
+
console.print(" 3. After successful merge → optimized becomes true")
|
|
336
|
+
console.print(" 4. You're ready to continue developing\n")
|
|
262
337
|
|
|
263
338
|
console.print("\n[cyan]🚀 Next Steps:[/cyan]")
|
|
264
339
|
if not is_current_dir:
|
|
265
|
-
console.print(
|
|
266
|
-
|
|
267
|
-
)
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
)
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
)
|
|
340
|
+
console.print(f" [blue]1.[/blue] Run [bold]cd {project_name}[/bold] to enter the project")
|
|
341
|
+
console.print(" [blue]2.[/blue] Run [bold]/moai:0-project[/bold] in Claude Code for full setup")
|
|
342
|
+
console.print(" (Configure: mode, language, report generation, etc.)")
|
|
343
|
+
else:
|
|
344
|
+
console.print(" [blue]1.[/blue] Run [bold]/moai:0-project[/bold] in Claude Code for full setup")
|
|
345
|
+
console.print(" (Configure: mode, language, report generation, etc.)")
|
|
346
|
+
|
|
347
|
+
if not is_current_dir:
|
|
348
|
+
console.print(" [blue]3.[/blue] Start developing with MoAI-ADK!\n")
|
|
274
349
|
else:
|
|
275
|
-
console.print(
|
|
276
|
-
" [blue]1.[/blue] Check [bold].moai/config.json[/bold] for configuration"
|
|
277
|
-
)
|
|
278
|
-
console.print(
|
|
279
|
-
" [blue]2.[/blue] Read [bold]CLAUDE.md[/bold] for development guide\n"
|
|
280
|
-
)
|
|
350
|
+
console.print(" [blue]2.[/blue] Start developing with MoAI-ADK!\n")
|
|
281
351
|
else:
|
|
282
352
|
console.print("\n[red bold]❌ Initialization Failed![/red bold]")
|
|
283
353
|
if result.errors:
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"""Language management commands for MoAI-ADK.
|
|
2
|
+
|
|
3
|
+
Provides commands for language configuration, template processing,
|
|
4
|
+
and multilingual content generation.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import json
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
|
|
10
|
+
import click
|
|
11
|
+
from rich.console import Console
|
|
12
|
+
from rich.table import Table
|
|
13
|
+
|
|
14
|
+
from ...core.claude_integration import ClaudeCLIIntegration
|
|
15
|
+
from ...core.language_config import (
|
|
16
|
+
LANGUAGE_CONFIG,
|
|
17
|
+
get_all_supported_codes,
|
|
18
|
+
get_native_name,
|
|
19
|
+
get_optimal_model,
|
|
20
|
+
)
|
|
21
|
+
from ...core.template_engine import TemplateEngine
|
|
22
|
+
|
|
23
|
+
console = Console()
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@click.group()
|
|
27
|
+
def language():
|
|
28
|
+
"""Language management and multilingual support."""
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@language.command()
|
|
33
|
+
@click.option("--json-output", is_flag=True, help="Output as JSON")
|
|
34
|
+
def list(json_output):
|
|
35
|
+
"""List all supported languages."""
|
|
36
|
+
if json_output:
|
|
37
|
+
console.print(json.dumps(LANGUAGE_CONFIG, indent=2, ensure_ascii=False))
|
|
38
|
+
return
|
|
39
|
+
|
|
40
|
+
table = Table(title="Supported Languages")
|
|
41
|
+
table.add_column("Code", style="cyan", no_wrap=True)
|
|
42
|
+
table.add_column("English Name", style="green")
|
|
43
|
+
table.add_column("Native Name", style="yellow")
|
|
44
|
+
table.add_column("Family", style="blue")
|
|
45
|
+
|
|
46
|
+
for code, info in LANGUAGE_CONFIG.items():
|
|
47
|
+
table.add_row(code, info["name"], info["native_name"], info["family"])
|
|
48
|
+
|
|
49
|
+
console.print(table)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@language.command()
|
|
53
|
+
@click.argument("language_code")
|
|
54
|
+
@click.option("--detail", is_flag=True, help="Show detailed information")
|
|
55
|
+
def info(language_code, detail):
|
|
56
|
+
"""Show information about a specific language."""
|
|
57
|
+
lang_info = LANGUAGE_CONFIG.get(language_code.lower())
|
|
58
|
+
|
|
59
|
+
if not lang_info:
|
|
60
|
+
console.print(f"[red]Language code '{language_code}' not found.[/red]")
|
|
61
|
+
console.print(f"Available codes: {', '.join(get_all_supported_codes())}")
|
|
62
|
+
return
|
|
63
|
+
|
|
64
|
+
console.print("[bold]Language Information:[/bold]")
|
|
65
|
+
console.print(f"Code: {language_code}")
|
|
66
|
+
console.print(f"English Name: {lang_info['name']}")
|
|
67
|
+
console.print(f"Native Name: {lang_info['native_name']}")
|
|
68
|
+
console.print(f"Family: {lang_info['family']}")
|
|
69
|
+
|
|
70
|
+
if detail:
|
|
71
|
+
optimal_model = get_optimal_model(language_code)
|
|
72
|
+
console.print(f"Optimal Claude Model: {optimal_model}")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@language.command()
|
|
76
|
+
@click.argument("template_path", type=click.Path(exists=True))
|
|
77
|
+
@click.argument("variables_file", type=click.Path(exists=True))
|
|
78
|
+
@click.option("--output", "-o", type=click.Path(), help="Output file path")
|
|
79
|
+
@click.option("--language", "-l", help="Target language code")
|
|
80
|
+
def render_template(template_path, variables_file, output, language):
|
|
81
|
+
"""Render template with variables and language support."""
|
|
82
|
+
try:
|
|
83
|
+
# Load variables
|
|
84
|
+
with open(variables_file, "r", encoding="utf-8") as f:
|
|
85
|
+
variables = json.load(f)
|
|
86
|
+
|
|
87
|
+
# Add language info if specified
|
|
88
|
+
if language:
|
|
89
|
+
variables["CONVERSATION_LANGUAGE"] = language
|
|
90
|
+
variables["CONVERSATION_LANGUAGE_NAME"] = get_native_name(language)
|
|
91
|
+
|
|
92
|
+
# Render template
|
|
93
|
+
template_engine = TemplateEngine()
|
|
94
|
+
template_path_obj = Path(template_path)
|
|
95
|
+
output_path_obj = Path(output) if output else None
|
|
96
|
+
|
|
97
|
+
rendered = template_engine.render_file(template_path_obj, variables, output_path_obj)
|
|
98
|
+
|
|
99
|
+
if not output:
|
|
100
|
+
console.print("[bold]Rendered Template:[/bold]")
|
|
101
|
+
console.print(rendered)
|
|
102
|
+
else:
|
|
103
|
+
console.print(f"[green]Template rendered to: {output}[/green]")
|
|
104
|
+
|
|
105
|
+
except Exception as e:
|
|
106
|
+
console.print(f"[red]Error rendering template: {e}[/red]")
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@language.command()
|
|
110
|
+
@click.argument("base_description")
|
|
111
|
+
@click.option("--target-languages", "-t", help="Comma-separated target language codes")
|
|
112
|
+
@click.option("--output", "-o", type=click.Path(), help="Output JSON file")
|
|
113
|
+
def translate_descriptions(base_description, target_languages, output):
|
|
114
|
+
"""Generate multilingual descriptions using Claude CLI."""
|
|
115
|
+
try:
|
|
116
|
+
if target_languages:
|
|
117
|
+
languages = [lang.strip() for lang in target_languages.split(",")]
|
|
118
|
+
else:
|
|
119
|
+
languages = ["en", "ko", "ja", "es", "fr", "de"]
|
|
120
|
+
|
|
121
|
+
claude_integration = ClaudeCLIIntegration()
|
|
122
|
+
descriptions = claude_integration.generate_multilingual_descriptions({"base": base_description}, languages)
|
|
123
|
+
|
|
124
|
+
if output:
|
|
125
|
+
with open(output, "w", encoding="utf-8") as f:
|
|
126
|
+
json.dump(descriptions, f, indent=2, ensure_ascii=False)
|
|
127
|
+
console.print(f"[green]Descriptions saved to: {output}[/green]")
|
|
128
|
+
else:
|
|
129
|
+
console.print("[bold]Multilingual Descriptions:[/bold]")
|
|
130
|
+
console.print(json.dumps(descriptions, indent=2, ensure_ascii=False))
|
|
131
|
+
|
|
132
|
+
except Exception as e:
|
|
133
|
+
console.print(f"[red]Error generating descriptions: {e}[/red]")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
@language.command()
|
|
137
|
+
@click.argument("prompt_template")
|
|
138
|
+
@click.option("--variables", "-v", type=click.Path(exists=True), help="Variables JSON file")
|
|
139
|
+
@click.option("--language", "-l", help="Target language code")
|
|
140
|
+
@click.option("--output-format", default="json", help="Output format (text, json, stream-json)")
|
|
141
|
+
@click.option("--dry-run", is_flag=True, help="Show command without executing")
|
|
142
|
+
def execute(prompt_template, variables, language, output_format, dry_run):
|
|
143
|
+
"""Execute Claude CLI with template variables and language support."""
|
|
144
|
+
try:
|
|
145
|
+
# Load or create variables
|
|
146
|
+
template_vars = {}
|
|
147
|
+
if variables:
|
|
148
|
+
with open(variables, "r", encoding="utf-8") as f:
|
|
149
|
+
template_vars = json.load(f)
|
|
150
|
+
|
|
151
|
+
if language:
|
|
152
|
+
template_vars["CONVERSATION_LANGUAGE"] = language
|
|
153
|
+
template_vars["CONVERSATION_LANGUAGE_NAME"] = get_native_name(language)
|
|
154
|
+
|
|
155
|
+
# Process template
|
|
156
|
+
template_engine = TemplateEngine()
|
|
157
|
+
processed_prompt = template_engine.render_string(prompt_template, template_vars)
|
|
158
|
+
|
|
159
|
+
if dry_run:
|
|
160
|
+
console.print("[bold]Dry Run - Command that would be executed:[/bold]")
|
|
161
|
+
console.print(f"claude --print --output-format {output_format} '{processed_prompt}'")
|
|
162
|
+
console.print("[bold]Variables used:[/bold]")
|
|
163
|
+
console.print(json.dumps(template_vars, indent=2, ensure_ascii=False))
|
|
164
|
+
return
|
|
165
|
+
|
|
166
|
+
# Execute with Claude integration
|
|
167
|
+
claude_integration = ClaudeCLIIntegration()
|
|
168
|
+
result = claude_integration.process_template_command(
|
|
169
|
+
prompt_template, template_vars, print_mode=True, output_format=output_format
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
if result["success"]:
|
|
173
|
+
console.print("[green]✓ Command executed successfully[/green]")
|
|
174
|
+
if output_format == "json" and result["stdout"]:
|
|
175
|
+
try:
|
|
176
|
+
output_data = json.loads(result["stdout"])
|
|
177
|
+
console.print(json.dumps(output_data, indent=2, ensure_ascii=False))
|
|
178
|
+
except json.JSONDecodeError:
|
|
179
|
+
console.print(result["stdout"])
|
|
180
|
+
else:
|
|
181
|
+
console.print(result["stdout"])
|
|
182
|
+
else:
|
|
183
|
+
console.print("[red]✗ Command execution failed[/red]")
|
|
184
|
+
if "error" in result:
|
|
185
|
+
console.print(f"Error: {result['error']}")
|
|
186
|
+
if result["stderr"]:
|
|
187
|
+
console.print(f"Stderr: {result['stderr']}")
|
|
188
|
+
|
|
189
|
+
except Exception as e:
|
|
190
|
+
console.print(f"[red]Error executing command: {e}[/red]")
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
@language.command()
|
|
194
|
+
@click.argument("config_file", type=click.Path(exists=True))
|
|
195
|
+
@click.option("--validate-languages", is_flag=True, help="Validate language codes in config")
|
|
196
|
+
def validate_config(config_file, validate_languages):
|
|
197
|
+
"""Validate language configuration in MoAI-ADK config file."""
|
|
198
|
+
try:
|
|
199
|
+
with open(config_file, "r", encoding="utf-8") as f:
|
|
200
|
+
config = json.load(f)
|
|
201
|
+
|
|
202
|
+
console.print(f"[bold]Validating config: {config_file}[/bold]")
|
|
203
|
+
|
|
204
|
+
# Basic structure validation
|
|
205
|
+
if "language" not in config:
|
|
206
|
+
console.print("[yellow]⚠ No 'language' section found in config[/yellow]")
|
|
207
|
+
else:
|
|
208
|
+
lang_config = config["language"]
|
|
209
|
+
if not isinstance(lang_config, dict):
|
|
210
|
+
console.print("[red]✗ 'language' section must be an object[/red]")
|
|
211
|
+
else:
|
|
212
|
+
console.print("[green]✓ Language section structure is valid[/green]")
|
|
213
|
+
|
|
214
|
+
# Check conversation_language
|
|
215
|
+
conv_lang = lang_config.get("conversation_language")
|
|
216
|
+
if conv_lang:
|
|
217
|
+
if conv_lang in get_all_supported_codes():
|
|
218
|
+
console.print(f"[green]✓ conversation_language '{conv_lang}' is supported[/green]")
|
|
219
|
+
else:
|
|
220
|
+
console.print(f"[red]✗ conversation_language '{conv_lang}' is not supported[/red]")
|
|
221
|
+
else:
|
|
222
|
+
console.print("[yellow]⚠ No conversation_language specified[/yellow]")
|
|
223
|
+
|
|
224
|
+
# Check conversation_language_name
|
|
225
|
+
conv_lang_name = lang_config.get("conversation_language_name")
|
|
226
|
+
if conv_lang_name and conv_lang:
|
|
227
|
+
expected_name = get_native_name(conv_lang)
|
|
228
|
+
if conv_lang_name == expected_name:
|
|
229
|
+
console.print("[green]✓ conversation_language_name matches[/green]")
|
|
230
|
+
else:
|
|
231
|
+
warning_msg = (
|
|
232
|
+
f"⚠ conversation_language_name '{conv_lang_name}' doesn't match expected '{expected_name}'"
|
|
233
|
+
)
|
|
234
|
+
console.print(f"[yellow]{warning_msg}[/yellow]")
|
|
235
|
+
|
|
236
|
+
if validate_languages:
|
|
237
|
+
# Scan entire config for language codes
|
|
238
|
+
config_str = json.dumps(config)
|
|
239
|
+
found_codes = []
|
|
240
|
+
for code in get_all_supported_codes():
|
|
241
|
+
if code in config_str:
|
|
242
|
+
found_codes.append(code)
|
|
243
|
+
|
|
244
|
+
if found_codes:
|
|
245
|
+
console.print(f"[blue]Found language codes in config: {', '.join(found_codes)}[/blue]")
|
|
246
|
+
|
|
247
|
+
except Exception as e:
|
|
248
|
+
console.print(f"[red]Error validating config: {e}[/red]")
|
moai_adk/cli/commands/status.py
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
# @CODE:CLI-001 | SPEC: SPEC-CLI-001/spec.md | TEST: tests/unit/test_cli_commands.py
|
|
2
1
|
"""MoAI-ADK status command
|
|
3
2
|
|
|
4
3
|
Project status display:
|
|
5
|
-
- Read project information from config.
|
|
4
|
+
- Read project information from config.yaml
|
|
6
5
|
- Show the number of SPEC documents
|
|
7
6
|
- Summarize the Git status
|
|
8
7
|
|
|
9
8
|
## Skill Invocation Guide (English-Only)
|
|
10
9
|
|
|
11
10
|
### Related Skills
|
|
12
|
-
- **moai-foundation-tags**: For detailed TAG inventory and orphan detection
|
|
13
|
-
- Trigger: When you need to verify TAG chain integrity beyond what status shows
|
|
14
|
-
- Invocation: `Skill("moai-foundation-tags")` to scan full project for orphan TAGs
|
|
15
11
|
|
|
16
|
-
- **moai-foundation-trust**: For comprehensive TRUST
|
|
12
|
+
- **moai-foundation-trust**: For comprehensive TRUST 4-principles verification
|
|
17
13
|
- Trigger: After status shows SPECs exist, to validate code quality
|
|
18
14
|
- Invocation: `Skill("moai-foundation-trust")` to verify all quality gates
|
|
19
15
|
|
|
@@ -23,7 +19,6 @@ Project status display:
|
|
|
23
19
|
|
|
24
20
|
### When to Invoke Skills in Related Workflows
|
|
25
21
|
1. **Before starting new SPEC creation**:
|
|
26
|
-
- Run `Skill("moai-foundation-tags")` to verify no orphan TAGs exist from previous work
|
|
27
22
|
- Check the SPEC count from status command
|
|
28
23
|
|
|
29
24
|
2. **After modifications to code/docs**:
|
|
@@ -32,13 +27,13 @@ Project status display:
|
|
|
32
27
|
|
|
33
28
|
3. **Periodic health checks**:
|
|
34
29
|
- Run status command regularly
|
|
35
|
-
- When SPEC count grows, verify with `Skill("moai-foundation-
|
|
30
|
+
- When SPEC count grows, verify with `Skill("moai-foundation-trust")`
|
|
36
31
|
"""
|
|
37
32
|
|
|
38
|
-
import json
|
|
39
33
|
from pathlib import Path
|
|
40
34
|
|
|
41
35
|
import click
|
|
36
|
+
import yaml
|
|
42
37
|
from rich.console import Console
|
|
43
38
|
from rich.panel import Panel
|
|
44
39
|
from rich.table import Table
|
|
@@ -57,15 +52,15 @@ def status() -> None:
|
|
|
57
52
|
- Git branch and status
|
|
58
53
|
"""
|
|
59
54
|
try:
|
|
60
|
-
# Read config.
|
|
61
|
-
config_path = Path.cwd() / ".moai" / "config.
|
|
55
|
+
# Read config.yaml
|
|
56
|
+
config_path = Path.cwd() / ".moai" / "config" / "config.yaml"
|
|
62
57
|
if not config_path.exists():
|
|
63
|
-
console.print("[yellow]⚠ No .moai/config.
|
|
58
|
+
console.print("[yellow]⚠ No .moai/config/config.yaml found[/yellow]")
|
|
64
59
|
console.print("[dim]Run [cyan]python -m moai_adk init .[/cyan] to initialize the project[/dim]")
|
|
65
60
|
raise click.Abort()
|
|
66
61
|
|
|
67
62
|
with open(config_path) as f:
|
|
68
|
-
config =
|
|
63
|
+
config = yaml.safe_load(f) or {}
|
|
69
64
|
|
|
70
65
|
# Count SPEC documents
|
|
71
66
|
specs_dir = Path.cwd() / ".moai" / "specs"
|