moai-adk 0.4.5__py3-none-any.whl → 0.20.1__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 +1 -1
- moai_adk/__main__.py +74 -1
- moai_adk/cli/commands/__init__.py +1 -1
- moai_adk/cli/commands/analyze.py +119 -0
- moai_adk/cli/commands/backup.py +25 -1
- moai_adk/cli/commands/doctor.py +31 -5
- moai_adk/cli/commands/improve_user_experience.py +307 -0
- moai_adk/cli/commands/init.py +111 -10
- moai_adk/cli/commands/status.py +33 -3
- moai_adk/cli/commands/update.py +921 -130
- moai_adk/cli/commands/validate_links.py +120 -0
- moai_adk/cli/prompts/init_prompts.py +22 -87
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +388 -0
- moai_adk/core/analysis/tag_chain_analyzer.py +344 -0
- moai_adk/core/analysis/tag_chain_repair.py +879 -0
- moai_adk/core/config/__init__.py +19 -0
- moai_adk/core/config/migration.py +235 -0
- moai_adk/core/git/__init__.py +1 -1
- moai_adk/core/git/branch.py +1 -1
- moai_adk/core/git/commit.py +1 -1
- moai_adk/core/git/manager.py +1 -1
- moai_adk/core/issue_creator.py +313 -0
- moai_adk/core/mcp/setup.py +56 -0
- moai_adk/core/mcp/setup_old.py +296 -0
- moai_adk/core/project/backup_utils.py +1 -1
- moai_adk/core/project/checker.py +2 -2
- moai_adk/core/project/detector.py +211 -12
- moai_adk/core/project/initializer.py +85 -15
- moai_adk/core/project/phase_executor.py +76 -13
- moai_adk/core/project/validator.py +13 -13
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +1 -1
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/tags/__init__.py +86 -0
- moai_adk/core/tags/auto_corrector.py +693 -0
- moai_adk/core/tags/ci_validator.py +463 -0
- moai_adk/core/tags/cli.py +283 -0
- moai_adk/core/tags/generator.py +109 -0
- moai_adk/core/tags/inserter.py +99 -0
- moai_adk/core/tags/mapper.py +126 -0
- moai_adk/core/tags/parser.py +76 -0
- moai_adk/core/tags/policy_validator.py +580 -0
- moai_adk/core/tags/pre_commit_validator.py +421 -0
- moai_adk/core/tags/reporter.py +956 -0
- moai_adk/core/tags/rollback_manager.py +525 -0
- moai_adk/core/tags/tags.py +149 -0
- moai_adk/core/tags/validator.py +897 -0
- moai_adk/core/template/__init__.py +1 -1
- moai_adk/core/template/backup.py +1 -1
- moai_adk/core/template/merger.py +50 -1
- moai_adk/core/template/processor.py +119 -13
- moai_adk/core/template_engine.py +268 -0
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +348 -0
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +209 -944
- moai_adk/templates/.claude/agents/alfred/database-expert.md +352 -0
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +34 -5
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +38 -8
- moai_adk/templates/.claude/agents/alfred/format-expert.md +469 -0
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
- moai_adk/templates/.claude/agents/alfred/git-manager.md +128 -9
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +104 -6
- moai_adk/templates/.claude/agents/alfred/project-manager.md +88 -16
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +36 -9
- moai_adk/templates/.claude/agents/alfred/security-expert.md +270 -0
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +865 -0
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +214 -43
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +111 -9
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +309 -160
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +36 -7
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +605 -0
- moai_adk/templates/.claude/commands/alfred/0-project.md +393 -966
- moai_adk/templates/.claude/commands/alfred/1-plan.md +651 -367
- moai_adk/templates/.claude/commands/alfred/2-run.md +388 -241
- moai_adk/templates/.claude/commands/alfred/3-sync.md +1921 -410
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +153 -0
- moai_adk/templates/.claude/commands/alfred/release-new.md +3604 -0
- moai_adk/templates/.claude/hooks/alfred/core/project.py +484 -20
- moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
- moai_adk/templates/.claude/hooks/alfred/post_tool__enable_streaming_ui.py +50 -0
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +93 -0
- moai_adk/templates/.claude/hooks/alfred/post_tool__tag_auto_corrector.py +407 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +99 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__realtime_tag_monitor.py +335 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__tag_policy_validator.py +325 -0
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +93 -0
- moai_adk/templates/.claude/hooks/alfred/session_start__auto_cleanup.py +580 -0
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +298 -0
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +170 -0
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +230 -0
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/daily_analysis.py +351 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +174 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +87 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +61 -0
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +111 -0
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
- moai_adk/templates/.claude/hooks/alfred/utils/hook_config.py +94 -0
- moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
- moai_adk/templates/.claude/output-styles/alfred/alfred-moai-adk-beginner.md +267 -0
- moai_adk/templates/.claude/output-styles/alfred/keating-personal-tutor.md +440 -0
- moai_adk/templates/.claude/output-styles/alfred/r2d2-agentic-coding.md +583 -0
- moai_adk/templates/.claude/settings.json +96 -14
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +242 -0
- moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/SKILL.md +237 -0
- moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/examples.md +871 -0
- moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/reference.md +653 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/README.md +162 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/SKILL.md +227 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/examples.md +354 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/reference.md +158 -0
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +179 -79
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/examples.md +117 -0
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/scripts/pre-review-check.sh +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +132 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +444 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +229 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +87 -73
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/README.md +42 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/SKILL.md +429 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/examples.md +520 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/reference.md +405 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +369 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +539 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +161 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +269 -0
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +298 -0
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +252 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +199 -0
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +316 -0
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +263 -0
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +482 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +303 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +477 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +273 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +583 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +526 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +608 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +328 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +312 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +285 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +278 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +303 -0
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +291 -0
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
- moai_adk/templates/.claude/skills/moai-change-logger/SKILL.md +563 -0
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +234 -43
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +97 -69
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +97 -72
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +102 -73
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +97 -67
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +97 -79
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -71
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +265 -64
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1064 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1047 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +87 -78
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +87 -70
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +87 -86
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +80 -62
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +207 -50
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +90 -71
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +78 -58
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +78 -51
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/.!11330!examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +253 -32
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
- moai_adk/templates/.claude/skills/moai-jit-docs-enhanced/SKILL.md +460 -0
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +98 -76
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +2358 -70
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +2962 -68
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +1898 -70
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +1465 -68
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +2364 -66
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +1630 -69
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +89 -61
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +735 -66
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +98 -73
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +1834 -70
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +99 -74
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +1959 -69
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-template/SKILL.md +348 -0
- moai_adk/templates/.claude/skills/moai-lang-template/VARIABLES.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +1230 -66
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
- moai_adk/templates/.claude/skills/moai-learning-optimizer/SKILL.md +575 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/README.md +50 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/SKILL.md +304 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/examples.md +417 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/README.md +87 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/SKILL.md +552 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/examples.md +1109 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/reference.md +514 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/validate.py +106 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/README.md +11 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/SKILL.md +622 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/examples.md +20 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/reference.md +12 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/README.md +152 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/SKILL.md +285 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/examples.md +333 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/reference.md +386 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/README.md +49 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/examples.md +58 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/reference.md +123 -0
- moai_adk/templates/.claude/skills/moai-session-info/SKILL.md +314 -0
- moai_adk/templates/.claude/skills/moai-streaming-ui/SKILL.md +552 -0
- moai_adk/templates/.claude/skills/moai-tag-policy-validator/SKILL.md +570 -0
- moai_adk/templates/.git-hooks/pre-commit +66 -0
- moai_adk/templates/.git-hooks/pre-push +255 -0
- moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
- moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
- moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
- moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
- moai_adk/templates/.github/workflows/release.yml +118 -0
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +338 -0
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/tag-report.yml +269 -0
- moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
- moai_adk/templates/.mcp.json +31 -0
- moai_adk/templates/.moai/config.json +80 -7
- moai_adk/templates/CLAUDE.md +562 -546
- moai_adk/utils/banner.py +5 -5
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +235 -0
- moai_adk/utils/logger.py +8 -8
- moai_adk/utils/user_experience.py +451 -0
- moai_adk-0.20.1.dist-info/METADATA +233 -0
- moai_adk-0.20.1.dist-info/RECORD +404 -0
- moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -156
- moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -85
- moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -92
- moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -70
- moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -41
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -636
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -692
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -470
- moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -103
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -95
- moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
- moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -97
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -90
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -99
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
- moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
- moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
- moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
- 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/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.4.5.dist-info/METADATA +0 -369
- moai_adk-0.4.5.dist-info/RECORD +0 -152
- {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/WHEEL +0 -0
- {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
# Examples for moai-project-language-initializer
|
|
2
|
+
|
|
3
|
+
## Basic Usage Examples
|
|
4
|
+
|
|
5
|
+
### 1. Complete Project Initialization
|
|
6
|
+
```python
|
|
7
|
+
# First-time setup with all workflows
|
|
8
|
+
Skill("moai-project-language-initializer")
|
|
9
|
+
|
|
10
|
+
# This will execute:
|
|
11
|
+
# 1. Basic batch (language, prompt language, nickname)
|
|
12
|
+
# 2. Team mode batch (if mode="team" detected)
|
|
13
|
+
# 3. Report generation configuration
|
|
14
|
+
# 4. Domain selection for expert agents
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 2. Settings Update Only
|
|
18
|
+
```python
|
|
19
|
+
# Update existing configuration without full initialization
|
|
20
|
+
Skill("moai-project-language-initializer", mode="settings")
|
|
21
|
+
|
|
22
|
+
# Use when changing:
|
|
23
|
+
# - Language preferences
|
|
24
|
+
# - User nickname
|
|
25
|
+
# - Report generation settings
|
|
26
|
+
# - Domain selections
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 3. Team Mode Configuration
|
|
30
|
+
```python
|
|
31
|
+
# Configure or update team-specific settings
|
|
32
|
+
Skill("moai-project-language-initializer", mode="team_setup")
|
|
33
|
+
|
|
34
|
+
# Handles:
|
|
35
|
+
# - GitHub auto-delete branches
|
|
36
|
+
# - Git workflow selection (feature_branch/develop_direct/per_spec)
|
|
37
|
+
# - Team collaboration settings
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Configuration Examples
|
|
41
|
+
|
|
42
|
+
### Language Selection Result
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"language": {
|
|
46
|
+
"conversation_language": "ko",
|
|
47
|
+
"conversation_language_name": "한국어",
|
|
48
|
+
"agent_prompt_language": "english"
|
|
49
|
+
},
|
|
50
|
+
"user": {
|
|
51
|
+
"nickname": "개발자",
|
|
52
|
+
"selected_at": "2025-11-05T12:30:00Z"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Team Mode Configuration Result
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"github": {
|
|
61
|
+
"auto_delete_branches": true,
|
|
62
|
+
"spec_git_workflow": "feature_branch",
|
|
63
|
+
"auto_delete_branches_rationale": "PR 병합 후 원격 브랜치 자동 정리",
|
|
64
|
+
"spec_git_workflow_rationale": "SPEC마다 feature 브랜치 생성으로 팀 리뷰 가능"
|
|
65
|
+
},
|
|
66
|
+
"mode": "team"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Report Generation Configuration Result
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"report_generation": {
|
|
74
|
+
"enabled": true,
|
|
75
|
+
"auto_create": false,
|
|
76
|
+
"user_choice": "Minimal",
|
|
77
|
+
"warn_user": true,
|
|
78
|
+
"configured_at": "2025-11-05T12:30:00Z"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Domain Selection Result
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"stack": {
|
|
87
|
+
"selected_domains": ["frontend", "backend", "devops"],
|
|
88
|
+
"domain_selection_date": "2025-11-05T12:30:00Z"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Workflow Examples
|
|
94
|
+
|
|
95
|
+
### English-speaking User Setup
|
|
96
|
+
```python
|
|
97
|
+
# User selects English and team mode
|
|
98
|
+
Skill("moai-project-language-initializer")
|
|
99
|
+
|
|
100
|
+
# Resulting config.json:
|
|
101
|
+
{
|
|
102
|
+
"language": {
|
|
103
|
+
"conversation_language": "en",
|
|
104
|
+
"conversation_language_name": "English",
|
|
105
|
+
"agent_prompt_language": "english"
|
|
106
|
+
},
|
|
107
|
+
"user": {
|
|
108
|
+
"nickname": "Alex",
|
|
109
|
+
"selected_at": "2025-11-05T12:30:00Z"
|
|
110
|
+
},
|
|
111
|
+
"github": {
|
|
112
|
+
"auto_delete_branches": true,
|
|
113
|
+
"spec_git_workflow": "feature_branch"
|
|
114
|
+
},
|
|
115
|
+
"mode": "team",
|
|
116
|
+
"report_generation": {
|
|
117
|
+
"enabled": true,
|
|
118
|
+
"auto_create": false,
|
|
119
|
+
"user_choice": "Minimal",
|
|
120
|
+
"warn_user": true
|
|
121
|
+
},
|
|
122
|
+
"stack": {
|
|
123
|
+
"selected_domains": ["frontend", "backend"]
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Korean-speaking User Setup (Cost-conscious)
|
|
129
|
+
```python
|
|
130
|
+
# Korean user who wants to minimize token costs
|
|
131
|
+
Skill("moai-project-language-initializer")
|
|
132
|
+
|
|
133
|
+
# User selects:
|
|
134
|
+
# - Korean for conversation
|
|
135
|
+
# - English for agent prompts (cost saving)
|
|
136
|
+
# - Minimal report generation
|
|
137
|
+
# - Individual mode (not team)
|
|
138
|
+
|
|
139
|
+
# Resulting config.json:
|
|
140
|
+
{
|
|
141
|
+
"language": {
|
|
142
|
+
"conversation_language": "ko",
|
|
143
|
+
"conversation_language_name": "한국어",
|
|
144
|
+
"agent_prompt_language": "english"
|
|
145
|
+
},
|
|
146
|
+
"user": {
|
|
147
|
+
"nickname": "김개발",
|
|
148
|
+
"selected_at": "2025-11-05T12:30:00Z"
|
|
149
|
+
},
|
|
150
|
+
"mode": "individual",
|
|
151
|
+
"report_generation": {
|
|
152
|
+
"enabled": true,
|
|
153
|
+
"auto_create": true,
|
|
154
|
+
"user_choice": "Minimal",
|
|
155
|
+
"warn_user": false
|
|
156
|
+
},
|
|
157
|
+
"stack": {
|
|
158
|
+
"selected_domains": ["backend", "database"]
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Multi-language Team Setup
|
|
164
|
+
```python
|
|
165
|
+
# Japanese user in an international team
|
|
166
|
+
Skill("moai-project-language-initializer")
|
|
167
|
+
|
|
168
|
+
# Resulting config.json:
|
|
169
|
+
{
|
|
170
|
+
"language": {
|
|
171
|
+
"conversation_language": "ja",
|
|
172
|
+
"conversation_language_name": "日本語",
|
|
173
|
+
"agent_prompt_language": "english"
|
|
174
|
+
},
|
|
175
|
+
"user": {
|
|
176
|
+
"nickname": "田中",
|
|
177
|
+
"selected_at": "2025-11-05T12:30:00Z"
|
|
178
|
+
},
|
|
179
|
+
"github": {
|
|
180
|
+
"auto_delete_branches": true,
|
|
181
|
+
"spec_git_workflow": "per_spec"
|
|
182
|
+
},
|
|
183
|
+
"mode": "team",
|
|
184
|
+
"report_generation": {
|
|
185
|
+
"enabled": true,
|
|
186
|
+
"auto_create": false,
|
|
187
|
+
"user_choice": "Enable",
|
|
188
|
+
"warn_user": true
|
|
189
|
+
},
|
|
190
|
+
"stack": {
|
|
191
|
+
"selected_domains": ["frontend", "backend", "devops", "security"]
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Error Handling Examples
|
|
197
|
+
|
|
198
|
+
### Invalid Nickname Recovery
|
|
199
|
+
```python
|
|
200
|
+
# User enters nickname longer than 20 characters
|
|
201
|
+
Skill("moai-project-language-initializer")
|
|
202
|
+
|
|
203
|
+
# Skill will:
|
|
204
|
+
# 1. Detect invalid nickname length
|
|
205
|
+
# 2. Show validation error
|
|
206
|
+
# 3. Re-prompt for nickname with character limit
|
|
207
|
+
# 4. Continue with valid nickname
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Missing Configuration Recovery
|
|
211
|
+
```python
|
|
212
|
+
# Config.json is missing or corrupted
|
|
213
|
+
Skill("moai-project-language-initializer")
|
|
214
|
+
|
|
215
|
+
# Skill will:
|
|
216
|
+
# 1. Detect missing configuration
|
|
217
|
+
# 2. Initialize with default values
|
|
218
|
+
# 3. Ask user to confirm or modify defaults
|
|
219
|
+
# 4. Create new configuration file
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Incompatible Settings Recovery
|
|
223
|
+
```python
|
|
224
|
+
# User selects conflicting settings
|
|
225
|
+
Skill("moai-project-language-initializer")
|
|
226
|
+
|
|
227
|
+
# Example conflict: Team mode without GitHub settings
|
|
228
|
+
# Skill will:
|
|
229
|
+
# 1. Detect inconsistency
|
|
230
|
+
# 2. Explain the conflict
|
|
231
|
+
# 3. Offer resolution options
|
|
232
|
+
# 4. Apply consistent configuration
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Integration Examples
|
|
236
|
+
|
|
237
|
+
### With Alfred Commands
|
|
238
|
+
```bash
|
|
239
|
+
# In /alfred:0-project command
|
|
240
|
+
/alfred:0-project
|
|
241
|
+
# -> Calls Skill("moai-project-language-initializer") internally
|
|
242
|
+
# -> Results stored in .moai/config.json
|
|
243
|
+
# -> Continues with project setup based on configuration
|
|
244
|
+
|
|
245
|
+
# In /alfred:1-plan command
|
|
246
|
+
/alfred:1-plan "new feature"
|
|
247
|
+
# -> Reads domain selection from config.json
|
|
248
|
+
# -> Activates relevant expert agents based on selected domains
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### With Other Skills
|
|
252
|
+
```python
|
|
253
|
+
# After language initialization, use domain-specific skills
|
|
254
|
+
Skill("moai-project-language-initializer") # Setup language and domains
|
|
255
|
+
# -> User selects "frontend" and "backend" domains
|
|
256
|
+
|
|
257
|
+
# Later commands automatically use expert agents:
|
|
258
|
+
Skill("ui-ux-expert") # For frontend tasks
|
|
259
|
+
Skill("backend-expert") # For backend tasks
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Performance Examples
|
|
263
|
+
|
|
264
|
+
### Token Cost Comparison
|
|
265
|
+
```python
|
|
266
|
+
# Expensive setup (Localized prompts + Full reports)
|
|
267
|
+
Skill("moai-project-language-initializer")
|
|
268
|
+
# User selects: Korean + Localized prompts + Enable reports
|
|
269
|
+
# Session tokens: ~300-350
|
|
270
|
+
# Cost impact: High
|
|
271
|
+
|
|
272
|
+
# Cost-effective setup (English prompts + Minimal reports)
|
|
273
|
+
Skill("moai-project-language-initializer")
|
|
274
|
+
# User selects: Korean + English prompts + Minimal reports
|
|
275
|
+
# Session tokens: ~80-120
|
|
276
|
+
# Cost impact: Low (65% savings)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Interaction Efficiency
|
|
280
|
+
```python
|
|
281
|
+
# Traditional approach (separate questions)
|
|
282
|
+
AskUserQuestion(language_question) # Turn 1
|
|
283
|
+
AskUserQuestion(prompt_language_question) # Turn 2
|
|
284
|
+
AskUserQuestion(nickname_question) # Turn 3
|
|
285
|
+
# Total: 3 user interactions
|
|
286
|
+
|
|
287
|
+
# Batch approach (this skill)
|
|
288
|
+
Skill("moai-project-language-initializer")
|
|
289
|
+
# Combines 3 questions into 1 interaction
|
|
290
|
+
# Total: 1 user interaction (67% reduction)
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## Testing Examples
|
|
294
|
+
|
|
295
|
+
### Mock Configuration for Testing
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"language": {
|
|
299
|
+
"conversation_language": "ko",
|
|
300
|
+
"conversation_language_name": "한국어",
|
|
301
|
+
"agent_prompt_language": "english"
|
|
302
|
+
},
|
|
303
|
+
"user": {
|
|
304
|
+
"nickname": "테스트유저",
|
|
305
|
+
"selected_at": "2025-11-05T12:30:00Z"
|
|
306
|
+
},
|
|
307
|
+
"mode": "team",
|
|
308
|
+
"github": {
|
|
309
|
+
"auto_delete_branches": true,
|
|
310
|
+
"spec_git_workflow": "feature_branch"
|
|
311
|
+
},
|
|
312
|
+
"report_generation": {
|
|
313
|
+
"enabled": true,
|
|
314
|
+
"auto_create": true,
|
|
315
|
+
"user_choice": "Minimal",
|
|
316
|
+
"warn_user": true
|
|
317
|
+
},
|
|
318
|
+
"stack": {
|
|
319
|
+
"selected_domains": ["frontend", "backend", "devops"]
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Validation Test Cases
|
|
325
|
+
```python
|
|
326
|
+
# Test edge cases:
|
|
327
|
+
Skill("moai-project-language-initializer", test_case="empty_nickname")
|
|
328
|
+
Skill("moai-project-language-initializer", test_case="invalid_language")
|
|
329
|
+
Skill("moai-project-language-initializer", test_case="missing_config")
|
|
330
|
+
Skill("moai-project-language-initializer", test_case="corrupted_json")
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
These examples demonstrate the skill's flexibility, error handling, cost management features, and integration capabilities with the broader MoAI-ADK ecosystem.
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
# Technical Reference for moai-project-language-initializer
|
|
2
|
+
|
|
3
|
+
## API Reference
|
|
4
|
+
|
|
5
|
+
### Skill Invocation
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
Skill("moai-project-language-initializer", mode="full")
|
|
9
|
+
Skill("moai-project-language-initializer", mode="settings")
|
|
10
|
+
Skill("moai-project-language-initializer", mode="team_setup")
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### Parameters
|
|
14
|
+
|
|
15
|
+
- `mode` (optional): Execution mode
|
|
16
|
+
- `"full"`: Complete initialization (default)
|
|
17
|
+
- `"settings"`: Update existing settings only
|
|
18
|
+
- `"team_setup"`: Configure team-specific settings
|
|
19
|
+
|
|
20
|
+
### Return Values
|
|
21
|
+
|
|
22
|
+
The skill returns a dictionary with the configuration results:
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
{
|
|
26
|
+
"success": True,
|
|
27
|
+
"configuration": {
|
|
28
|
+
"language": {...},
|
|
29
|
+
"user": {...},
|
|
30
|
+
"github": {...},
|
|
31
|
+
"report_generation": {...},
|
|
32
|
+
"stack": {...}
|
|
33
|
+
},
|
|
34
|
+
"changes_made": ["list", "of", "updated", "sections"],
|
|
35
|
+
"warnings": ["any", "configuration", "warnings"]
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Configuration Schema
|
|
40
|
+
|
|
41
|
+
### Language Configuration
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"language": {
|
|
45
|
+
"conversation_language": "string", // "en", "ko", "ja", "zh"
|
|
46
|
+
"conversation_language_name": "string", // "English", "한국어", "日本語", "中文"
|
|
47
|
+
"agent_prompt_language": "string" // "english", "localized"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### User Configuration
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"user": {
|
|
56
|
+
"nickname": "string", // Max 20 characters
|
|
57
|
+
"selected_at": "string" // ISO 8601 timestamp
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### GitHub Configuration
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"github": {
|
|
66
|
+
"auto_delete_branches": "boolean",
|
|
67
|
+
"spec_git_workflow": "string", // "feature_branch", "develop_direct", "per_spec"
|
|
68
|
+
"auto_delete_branches_rationale": "string",
|
|
69
|
+
"spec_git_workflow_rationale": "string"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Report Generation Configuration
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"report_generation": {
|
|
78
|
+
"enabled": "boolean",
|
|
79
|
+
"auto_create": "boolean",
|
|
80
|
+
"user_choice": "string", // "Enable", "Minimal", "Disable"
|
|
81
|
+
"warn_user": "boolean",
|
|
82
|
+
"configured_at": "string" // ISO 8601 timestamp
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Stack Configuration
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"stack": {
|
|
91
|
+
"selected_domains": ["string"], // Array of domain names
|
|
92
|
+
"domain_selection_date": "string" // ISO 8601 timestamp
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Supported Languages
|
|
98
|
+
|
|
99
|
+
| Code | Language | Conversation | Agent Prompts | Documentation |
|
|
100
|
+
|------|----------|--------------|---------------|---------------|
|
|
101
|
+
| en | English | English | English | English |
|
|
102
|
+
| ko | Korean | 한국어 | English/한국어 | 한국어 |
|
|
103
|
+
| ja | Japanese | 日本語 | English/日本語 | 日本語 |
|
|
104
|
+
| zh | Chinese | 中文 | English/中文 | 中文 |
|
|
105
|
+
|
|
106
|
+
## Domain Options
|
|
107
|
+
|
|
108
|
+
The skill supports the following domains for expert agent activation:
|
|
109
|
+
|
|
110
|
+
- **frontend**: UI/UX development, React, Vue, CSS, etc.
|
|
111
|
+
- **backend**: API development, server architecture, etc.
|
|
112
|
+
- **database**: Database design, SQL, migrations, etc.
|
|
113
|
+
- **devops**: Infrastructure, CI/CD, deployment, etc.
|
|
114
|
+
- **security**: Security analysis, authentication, etc.
|
|
115
|
+
- **testing**: Test automation, QA, etc.
|
|
116
|
+
- **ml**: Machine learning, data science, etc.
|
|
117
|
+
- **mobile**: iOS, Android, React Native, etc.
|
|
118
|
+
|
|
119
|
+
## Git Workflow Options
|
|
120
|
+
|
|
121
|
+
### Feature Branch Workflow (`feature_branch`)
|
|
122
|
+
- Creates feature branch for each SPEC
|
|
123
|
+
- Requires PR review before merging
|
|
124
|
+
- Best for team collaboration
|
|
125
|
+
- Branch naming: `feature/SPEC-{ID}`
|
|
126
|
+
|
|
127
|
+
### Direct Commit Workflow (`develop_direct`)
|
|
128
|
+
- Commits directly to develop branch
|
|
129
|
+
- No PR process
|
|
130
|
+
- Best for individual projects
|
|
131
|
+
- Faster iteration cycle
|
|
132
|
+
|
|
133
|
+
### Per-SPEC Decision Workflow (`per_spec`)
|
|
134
|
+
- Asks user to choose workflow for each SPEC
|
|
135
|
+
- Maximum flexibility
|
|
136
|
+
- Good for mixed project types
|
|
137
|
+
- Decision recorded per SPEC
|
|
138
|
+
|
|
139
|
+
## Error Codes and Messages
|
|
140
|
+
|
|
141
|
+
### Validation Errors
|
|
142
|
+
|
|
143
|
+
| Error Code | Message | Cause | Resolution |
|
|
144
|
+
|------------|---------|-------|------------|
|
|
145
|
+
| `INV_NICKNAME_LENGTH` | "Nickname exceeds 20 character limit" | User input longer than 20 chars | Re-prompt with character limit |
|
|
146
|
+
| `INV_LANGUAGE_CODE` | "Unsupported language code" | Invalid language selection | Re-prompt with valid options |
|
|
147
|
+
| `INV_DOMAIN_SELECTION` | "Invalid domain selection" | User selected unsupported domain | Re-prompt with domain list |
|
|
148
|
+
| `INV_WORKFLOW_TYPE` | "Invalid Git workflow type" | Invalid workflow selection | Re-prompt with workflow options |
|
|
149
|
+
|
|
150
|
+
### Configuration Errors
|
|
151
|
+
|
|
152
|
+
| Error Code | Message | Cause | Resolution |
|
|
153
|
+
|------------|---------|-------|------------|
|
|
154
|
+
| `CONFIG_NOT_FOUND` | "Configuration file not found" | .moai/config.json missing | Create new configuration |
|
|
155
|
+
| `CONFIG_CORRUPTED` | "Configuration file corrupted" | Invalid JSON format | Restore from backup or recreate |
|
|
156
|
+
| `MISSING_REQUIRED_FIELD` | "Required configuration field missing" | Incomplete configuration | Add missing field with default |
|
|
157
|
+
| `INCONSISTENT_CONFIG` | "Inconsistent configuration detected" | Conflicting settings | Prompt for resolution |
|
|
158
|
+
|
|
159
|
+
### System Errors
|
|
160
|
+
|
|
161
|
+
| Error Code | Message | Cause | Resolution |
|
|
162
|
+
|------------|---------|-------|------------|
|
|
163
|
+
| `PERMISSION_DENIED` | "Cannot write configuration file" | File system permissions | Check directory permissions |
|
|
164
|
+
| `DISK_SPACE_EXHAUSTED` | "Insufficient disk space" | Disk full | Free up disk space |
|
|
165
|
+
| `TOOL_UNAVAILABLE` | "Required tool not available" | AskUserQuestion unavailable | Use fallback interaction method |
|
|
166
|
+
|
|
167
|
+
## Batch Question Patterns
|
|
168
|
+
|
|
169
|
+
### Basic Batch Question
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"type": "batch",
|
|
173
|
+
"questions": [
|
|
174
|
+
{
|
|
175
|
+
"id": "language",
|
|
176
|
+
"question": "Select your preferred conversation language",
|
|
177
|
+
"type": "single_choice",
|
|
178
|
+
"options": ["English", "한국어", "日本어", "中文"]
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"id": "prompt_language",
|
|
182
|
+
"question": "Choose agent prompt language (English saves 15-20% tokens)",
|
|
183
|
+
"type": "single_choice",
|
|
184
|
+
"options": ["English (Recommended)", "Same as conversation language"]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"id": "nickname",
|
|
188
|
+
"question": "Enter your nickname (max 20 characters)",
|
|
189
|
+
"type": "text_input",
|
|
190
|
+
"validation": {
|
|
191
|
+
"max_length": 20,
|
|
192
|
+
"required": true
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Team Mode Batch Question
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"type": "batch",
|
|
203
|
+
"trigger": "mode === 'team'",
|
|
204
|
+
"questions": [
|
|
205
|
+
{
|
|
206
|
+
"id": "auto_delete_branches",
|
|
207
|
+
"question": "Automatically delete branches after PR merge?",
|
|
208
|
+
"type": "boolean",
|
|
209
|
+
"default": true
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "git_workflow",
|
|
213
|
+
"question": "Select Git workflow for SPEC development",
|
|
214
|
+
"type": "single_choice",
|
|
215
|
+
"options": [
|
|
216
|
+
"Feature Branch + PR (Recommended for teams)",
|
|
217
|
+
"Direct Commit to Develop (Fast iteration)",
|
|
218
|
+
"Ask me for each SPEC (Flexible)"
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Report Generation Batch Question
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"type": "batch",
|
|
229
|
+
"questions": [
|
|
230
|
+
{
|
|
231
|
+
"id": "report_generation",
|
|
232
|
+
"question": "Configure report generation (affects token costs)",
|
|
233
|
+
"type": "single_choice",
|
|
234
|
+
"options": [
|
|
235
|
+
"Enable (50-60 tokens/report, Full analysis)",
|
|
236
|
+
"Minimal (20-30 tokens/report, Essential only)",
|
|
237
|
+
"Disable (0 tokens, No reports)"
|
|
238
|
+
],
|
|
239
|
+
"warning": "Report generation affects Claude API costs"
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Token Cost Analysis
|
|
246
|
+
|
|
247
|
+
### Report Generation Costs
|
|
248
|
+
|
|
249
|
+
| Setting | Base Cost | Multiplier | Examples per Session | Total Tokens |
|
|
250
|
+
|---------|-----------|------------|---------------------|--------------|
|
|
251
|
+
| Enable | 50-60 | 3-5x | product.md, structure.md, tech.md | 150-300 |
|
|
252
|
+
| Minimal | 20-30 | 1-2x | Essential reports only | 20-60 |
|
|
253
|
+
| Disable | 0 | 0x | No reports | 0 |
|
|
254
|
+
|
|
255
|
+
### Agent Prompt Language Costs
|
|
256
|
+
|
|
257
|
+
| Language | Base Multiplier | Additional Cost | Example Session | Total Impact |
|
|
258
|
+
|----------|-----------------|-----------------|-----------------|--------------|
|
|
259
|
+
| English | 1.0x | 0% | 1000 tokens | Baseline |
|
|
260
|
+
| Korean | 1.15x | +15% | 1150 tokens | +150 tokens |
|
|
261
|
+
| Japanese | 1.20x | +20% | 1200 tokens | +200 tokens |
|
|
262
|
+
| Chinese | 1.18x | +18% | 1180 tokens | +180 tokens |
|
|
263
|
+
|
|
264
|
+
## Performance Metrics
|
|
265
|
+
|
|
266
|
+
### Interaction Efficiency
|
|
267
|
+
- **Traditional approach**: 6-8 separate questions
|
|
268
|
+
- **Batch approach**: 3-4 batched questions
|
|
269
|
+
- **Efficiency gain**: 50-60% reduction in user interactions
|
|
270
|
+
|
|
271
|
+
### Configuration Persistence
|
|
272
|
+
- **Write operations**: 1 atomic write per skill execution
|
|
273
|
+
- **Read operations**: 1 read on skill load, 1 read on save
|
|
274
|
+
- **Backup strategy**: Automatic backup before major changes
|
|
275
|
+
|
|
276
|
+
### Error Recovery Time
|
|
277
|
+
- **Validation errors**: < 1 second recovery
|
|
278
|
+
- **Configuration errors**: < 2 seconds recovery
|
|
279
|
+
- **System errors**: Fallback to manual configuration
|
|
280
|
+
|
|
281
|
+
## Integration Hooks
|
|
282
|
+
|
|
283
|
+
### Pre-Configuration Hook
|
|
284
|
+
```python
|
|
285
|
+
def pre_config_hook(existing_config):
|
|
286
|
+
# Called before loading configuration
|
|
287
|
+
# Can modify or validate existing config
|
|
288
|
+
return modified_config
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Post-Configuration Hook
|
|
292
|
+
```python
|
|
293
|
+
def post_config_hook(new_config, changes):
|
|
294
|
+
# Called after configuration is saved
|
|
295
|
+
# Can trigger additional setup steps
|
|
296
|
+
trigger_additional_setup(changes)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Validation Hook
|
|
300
|
+
```python
|
|
301
|
+
def validation_hook(config_section, value):
|
|
302
|
+
# Called during configuration validation
|
|
303
|
+
# Can implement custom validation rules
|
|
304
|
+
return is_valid, error_message
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Testing Framework
|
|
308
|
+
|
|
309
|
+
### Unit Tests
|
|
310
|
+
```python
|
|
311
|
+
def test_language_validation():
|
|
312
|
+
assert validate_language("en") == True
|
|
313
|
+
assert validate_language("invalid") == False
|
|
314
|
+
|
|
315
|
+
def test_nickname_validation():
|
|
316
|
+
assert validate_nickname("ValidName") == True
|
|
317
|
+
assert validate_nickname("VeryLongNameThatExceedsLimit") == False
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Integration Tests
|
|
321
|
+
```python
|
|
322
|
+
def test_full_initialization():
|
|
323
|
+
config = run_skill_initialization()
|
|
324
|
+
assert config["language"]["conversation_language"] in SUPPORTED_LANGUAGES
|
|
325
|
+
assert config["user"]["nickname"] is not None
|
|
326
|
+
assert len(config["user"]["nickname"]) <= 20
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Performance Tests
|
|
330
|
+
```python
|
|
331
|
+
def test_interaction_efficiency():
|
|
332
|
+
interactions = count_interactions_for_full_setup()
|
|
333
|
+
assert interactions <= 4 # Should not exceed 4 interactions
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## Security Considerations
|
|
337
|
+
|
|
338
|
+
### Input Sanitization
|
|
339
|
+
- All user inputs sanitized before storage
|
|
340
|
+
- JSON injection prevention
|
|
341
|
+
- Cross-site scripting (XSS) prevention in web contexts
|
|
342
|
+
|
|
343
|
+
### File Permissions
|
|
344
|
+
- Configuration files created with secure permissions (600)
|
|
345
|
+
- Backup files limited to owner access
|
|
346
|
+
- No sensitive information in logs
|
|
347
|
+
|
|
348
|
+
### Data Privacy
|
|
349
|
+
- Nicknames are the only personal data stored
|
|
350
|
+
- No API keys or credentials stored in configuration
|
|
351
|
+
- Configuration can be easily reviewed and modified
|
|
352
|
+
|
|
353
|
+
## Migration Guide
|
|
354
|
+
|
|
355
|
+
### From Previous Version
|
|
356
|
+
```python
|
|
357
|
+
# Old configuration format
|
|
358
|
+
{
|
|
359
|
+
"language": "ko",
|
|
360
|
+
"nickname": "User"
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
# New configuration format (auto-migrated)
|
|
364
|
+
{
|
|
365
|
+
"language": {
|
|
366
|
+
"conversation_language": "ko",
|
|
367
|
+
"conversation_language_name": "한국어",
|
|
368
|
+
"agent_prompt_language": "english"
|
|
369
|
+
},
|
|
370
|
+
"user": {
|
|
371
|
+
"nickname": "User",
|
|
372
|
+
"selected_at": "2025-11-05T12:30:00Z"
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### Backup and Restore
|
|
378
|
+
```bash
|
|
379
|
+
# Create backup
|
|
380
|
+
cp .moai/config.json .moai/config.json.backup
|
|
381
|
+
|
|
382
|
+
# Restore from backup
|
|
383
|
+
cp .moai/config.json.backup .moai/config.json
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
This reference provides comprehensive technical details for developers working with the moai-project-language-initializer skill.
|