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,514 @@
|
|
|
1
|
+
# Project Configuration Manager - Reference Documentation
|
|
2
|
+
|
|
3
|
+
## Core API Reference
|
|
4
|
+
|
|
5
|
+
### Skill Invocation
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
Skill("moai-project-config-manager")
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Parameters**:
|
|
12
|
+
- `action` (optional): Operation type
|
|
13
|
+
- `"interactive"` (default): Full interactive configuration workflow
|
|
14
|
+
- `"update"`: Programmatic configuration update
|
|
15
|
+
- `"validate"`: Validate existing configuration
|
|
16
|
+
- `"backup"`: Create configuration backup
|
|
17
|
+
- `"restore"`: Restore from backup
|
|
18
|
+
- `"diff"`: Show changes before applying
|
|
19
|
+
|
|
20
|
+
- `changes` (optional): Dictionary of configuration changes for non-interactive updates
|
|
21
|
+
- `backup_path` (optional): Specific backup file to restore from
|
|
22
|
+
- `debug` (optional): Enable detailed logging (boolean)
|
|
23
|
+
|
|
24
|
+
### Configuration File Path
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
.moai/config.json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Backup File Pattern
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
.moai/config.backup.YYYYMMDD_HHMMSS.json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Configuration Schema
|
|
39
|
+
|
|
40
|
+
### Complete Schema Definition
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
45
|
+
"type": "object",
|
|
46
|
+
"properties": {
|
|
47
|
+
"language": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"description": "Language settings for conversation and agent prompts",
|
|
50
|
+
"properties": {
|
|
51
|
+
"conversation_language": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": ["en", "ko", "ja", "zh"],
|
|
54
|
+
"description": "ISO language code for user conversations"
|
|
55
|
+
},
|
|
56
|
+
"conversation_language_name": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"enum": ["English", "ķźµģ“", "ę„ę¬čŖ", "äøę"],
|
|
59
|
+
"description": "Display name for conversation language"
|
|
60
|
+
},
|
|
61
|
+
"agent_prompt_language": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": ["english", "localized"],
|
|
64
|
+
"description": "Language for Alfred agent prompts"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"required": ["conversation_language", "conversation_language_name", "agent_prompt_language"]
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
"user": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"description": "User-specific settings",
|
|
73
|
+
"properties": {
|
|
74
|
+
"nickname": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"maxLength": 20,
|
|
77
|
+
"pattern": "^[a-zA-Z0-9ź°-ķ£ć-ćäø-龯\\s]+$",
|
|
78
|
+
"description": "User nickname for display in reports and interactions"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
"github": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"description": "GitHub integration settings",
|
|
86
|
+
"properties": {
|
|
87
|
+
"auto_delete_branches": {
|
|
88
|
+
"type": "boolean",
|
|
89
|
+
"description": "Automatically delete feature branches after PR merge"
|
|
90
|
+
},
|
|
91
|
+
"spec_git_workflow": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"enum": ["feature_branch", "develop_direct", "per_spec"],
|
|
94
|
+
"description": "Git workflow strategy for SPEC development"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
"report_generation": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"description": "Automatic report generation settings",
|
|
102
|
+
"properties": {
|
|
103
|
+
"enabled": {
|
|
104
|
+
"type": "boolean",
|
|
105
|
+
"description": "Enable/disable automatic report generation"
|
|
106
|
+
},
|
|
107
|
+
"auto_create": {
|
|
108
|
+
"type": "boolean",
|
|
109
|
+
"description": "Create full (true) or minimal (false) reports"
|
|
110
|
+
},
|
|
111
|
+
"user_choice": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"enum": ["Enable", "Minimal", "Disable"],
|
|
114
|
+
"description": "User's preferred report generation level"
|
|
115
|
+
},
|
|
116
|
+
"updated_at": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"format": "date-time",
|
|
119
|
+
"description": "Timestamp of last report setting update"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
"stack": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"description": "Technology stack and domain settings",
|
|
127
|
+
"properties": {
|
|
128
|
+
"selected_domains": {
|
|
129
|
+
"type": "array",
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"enum": ["frontend", "backend", "data", "devops", "security"]
|
|
133
|
+
},
|
|
134
|
+
"description": "Selected project domains for specialization"
|
|
135
|
+
},
|
|
136
|
+
"domain_selection_date": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"format": "date-time",
|
|
139
|
+
"description": "Timestamp of last domain selection update"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"required": ["language", "github", "report_generation"]
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Field Value Mappings
|
|
149
|
+
|
|
150
|
+
#### Language Code Mapping
|
|
151
|
+
| Display Name | Code | Description |
|
|
152
|
+
|--------------|------|-------------|
|
|
153
|
+
| English | en | Global standard language |
|
|
154
|
+
| ķźµģ“ | ko | Korean language |
|
|
155
|
+
| ę„ę¬čŖ | ja | Japanese language |
|
|
156
|
+
| äøę | zh | Chinese language |
|
|
157
|
+
|
|
158
|
+
#### Agent Prompt Language Mapping
|
|
159
|
+
| Display Name | Code | Description |
|
|
160
|
+
|--------------|------|-------------|
|
|
161
|
+
| English (Global Standard) | english | All prompts in English for stability |
|
|
162
|
+
| Selected Language (Localized) | localized | Prompts in user's conversation language |
|
|
163
|
+
|
|
164
|
+
#### Git Workflow Mapping
|
|
165
|
+
| Display Name | Code | Description |
|
|
166
|
+
|--------------|------|-------------|
|
|
167
|
+
| Feature Branch + PR | feature_branch | Create feature branch ā PR ā develop merge |
|
|
168
|
+
| Direct Commit to Develop | develop_direct | Commit directly to develop branch |
|
|
169
|
+
| Decide per SPEC | per_spec | Choose workflow per SPEC |
|
|
170
|
+
|
|
171
|
+
#### Report Generation Mapping
|
|
172
|
+
| Display Name | Settings | Description |
|
|
173
|
+
|--------------|----------|-------------|
|
|
174
|
+
| š Enable | enabled=true, auto_create=true | Full reports with 50-60 tokens |
|
|
175
|
+
| ā” Minimal | enabled=true, auto_create=false | Essential reports with 20-30 tokens |
|
|
176
|
+
| š« Disable | enabled=false, auto_create=false | No automatic reports, 0 tokens |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Error Codes and Handling
|
|
181
|
+
|
|
182
|
+
### Error Types
|
|
183
|
+
|
|
184
|
+
| Error Code | Description | Recovery Action |
|
|
185
|
+
|------------|-------------|-----------------|
|
|
186
|
+
| CONFIG_NOT_FOUND | `.moai/config.json` doesn't exist | Create default config |
|
|
187
|
+
| INVALID_JSON | Configuration file has invalid JSON syntax | Attempt JSON repair or recreate |
|
|
188
|
+
| VALIDATION_FAILED | Configuration fails schema validation | Fix validation errors |
|
|
189
|
+
| PERMISSION_DENIED | Cannot write to configuration file | Fix file permissions |
|
|
190
|
+
| BACKUP_FAILED | Cannot create backup file | Check disk space and permissions |
|
|
191
|
+
| RESTORE_FAILED | Cannot restore from backup | Verify backup file integrity |
|
|
192
|
+
|
|
193
|
+
### Validation Error Details
|
|
194
|
+
|
|
195
|
+
#### Language Validation Errors
|
|
196
|
+
- `INVALID_LANGUAGE_CODE`: conversation_language not in allowed values
|
|
197
|
+
- `MISMATCHED_LANGUAGE_NAME`: conversation_language_name doesn't match code
|
|
198
|
+
- `INVALID_AGENT_LANGUAGE`: agent_prompt_language not in allowed values
|
|
199
|
+
|
|
200
|
+
#### User Validation Errors
|
|
201
|
+
- `NICKNAME_TOO_LONG`: nickname exceeds 20 characters
|
|
202
|
+
- `INVALID_NICKNAME_CHARS`: nickname contains invalid characters
|
|
203
|
+
|
|
204
|
+
#### GitHub Validation Errors
|
|
205
|
+
- `INVALID_WORKFLOW`: spec_git_workflow not in allowed values
|
|
206
|
+
- `INVALID_BOOLEAN_SETTING`: auto_delete_branches not boolean
|
|
207
|
+
|
|
208
|
+
#### Report Validation Errors
|
|
209
|
+
- `INVALID_REPORT_CHOICE`: user_choice not in allowed values
|
|
210
|
+
- `INCONSISTENT_REPORT_SETTINGS`: enabled/auto_create don't match user_choice
|
|
211
|
+
|
|
212
|
+
#### Domain Validation Errors
|
|
213
|
+
- `INVALID_DOMAIN`: selected_domains contains invalid domain name
|
|
214
|
+
- `INVALID_DOMAIN_TYPE`: selected_domains is not an array
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Operation Details
|
|
219
|
+
|
|
220
|
+
### Interactive Mode Workflow
|
|
221
|
+
|
|
222
|
+
1. **Configuration Loading**
|
|
223
|
+
- Load existing `.moai/config.json`
|
|
224
|
+
- Validate JSON structure and schema
|
|
225
|
+
- Display current settings
|
|
226
|
+
|
|
227
|
+
2. **Setting Selection**
|
|
228
|
+
- Present 5 setting groups for modification
|
|
229
|
+
- User selects one or more groups (multi-select)
|
|
230
|
+
- Proceed only if at least one group selected
|
|
231
|
+
|
|
232
|
+
3. **Value Collection**
|
|
233
|
+
- Ask questions only for selected groups
|
|
234
|
+
- Batch related questions together
|
|
235
|
+
- Map user responses to configuration values
|
|
236
|
+
|
|
237
|
+
4. **Merge and Validation**
|
|
238
|
+
- Merge new values with existing configuration
|
|
239
|
+
- Validate updated configuration
|
|
240
|
+
- Create automatic backup
|
|
241
|
+
|
|
242
|
+
5. **Save Operation**
|
|
243
|
+
- Atomic write with temporary file
|
|
244
|
+
- Replace original file on success
|
|
245
|
+
- Restore from backup on failure
|
|
246
|
+
|
|
247
|
+
### Programmatic Update Mode
|
|
248
|
+
|
|
249
|
+
```python
|
|
250
|
+
# Example: Update language settings
|
|
251
|
+
updates = {
|
|
252
|
+
"language": {
|
|
253
|
+
"conversation_language": "en",
|
|
254
|
+
"conversation_language_name": "English",
|
|
255
|
+
"agent_prompt_language": "english"
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
result = Skill(
|
|
260
|
+
"moai-project-config-manager",
|
|
261
|
+
action="update",
|
|
262
|
+
changes=updates
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
# Returns:
|
|
266
|
+
# {
|
|
267
|
+
# "success": True,
|
|
268
|
+
# "changes_applied": ["language.conversation_language", ...],
|
|
269
|
+
# "backup_path": ".moai/config.backup.20251105_123456.json",
|
|
270
|
+
# "validation_errors": []
|
|
271
|
+
# }
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Validation Mode
|
|
275
|
+
|
|
276
|
+
```python
|
|
277
|
+
result = Skill("moai-project-config-manager", action="validate")
|
|
278
|
+
|
|
279
|
+
# Returns:
|
|
280
|
+
# {
|
|
281
|
+
# "valid": False,
|
|
282
|
+
# "errors": [
|
|
283
|
+
# {
|
|
284
|
+
# "field": "language.conversation_language",
|
|
285
|
+
# "message": "Invalid language code: 'fr'",
|
|
286
|
+
# "allowed_values": ["en", "ko", "ja", "zh"]
|
|
287
|
+
# }
|
|
288
|
+
# ],
|
|
289
|
+
# "warnings": [
|
|
290
|
+
# {
|
|
291
|
+
# "field": "user.nickname",
|
|
292
|
+
# "message": "Nickname is empty"
|
|
293
|
+
# }
|
|
294
|
+
# ]
|
|
295
|
+
# }
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Backup and Restore
|
|
299
|
+
|
|
300
|
+
```python
|
|
301
|
+
# Create backup
|
|
302
|
+
backup_result = Skill("moai-project-config-manager", action="backup")
|
|
303
|
+
# Returns: {"backup_path": ".moai/config.backup.20251105_123456.json"}
|
|
304
|
+
|
|
305
|
+
# List available backups
|
|
306
|
+
backups = Skill("moai-project-config-manager", action="list_backups")
|
|
307
|
+
# Returns: {".moai/config.backup.20251105_123456.json": "2025-11-05 12:34:56", ...}
|
|
308
|
+
|
|
309
|
+
# Restore from backup
|
|
310
|
+
restore_result = Skill(
|
|
311
|
+
"moai-project-config-manager",
|
|
312
|
+
action="restore",
|
|
313
|
+
backup_path=".moai/config.backup.20251105_123456.json"
|
|
314
|
+
)
|
|
315
|
+
# Returns: {"success": True, "restored_from": "..."}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Diff Mode
|
|
319
|
+
|
|
320
|
+
```python
|
|
321
|
+
diff_result = Skill(
|
|
322
|
+
"moai-project-config-manager",
|
|
323
|
+
action="diff",
|
|
324
|
+
changes={"language": {"conversation_language": "en"}}
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
# Returns:
|
|
328
|
+
# {
|
|
329
|
+
# "changes": [
|
|
330
|
+
# {
|
|
331
|
+
# "path": "language.conversation_language",
|
|
332
|
+
# "old": "ko",
|
|
333
|
+
# "new": "en",
|
|
334
|
+
# "type": "value_change"
|
|
335
|
+
# }
|
|
336
|
+
# ],
|
|
337
|
+
# "summary": "1 field will be updated"
|
|
338
|
+
# }
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Integration Examples
|
|
344
|
+
|
|
345
|
+
### With Alfred Commands
|
|
346
|
+
|
|
347
|
+
**Project Initialization**:
|
|
348
|
+
```python
|
|
349
|
+
# In /alfred:0-project command
|
|
350
|
+
if not Path(".moai/config.json").exists():
|
|
351
|
+
Skill("moai-project-config-manager", action="create_default")
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**Setting Modification**:
|
|
355
|
+
```python
|
|
356
|
+
# In /alfred:0-project setting subcommand
|
|
357
|
+
Skill("moai-project-config-manager") # Interactive mode
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**Configuration Validation**:
|
|
361
|
+
```python
|
|
362
|
+
# In any Alfred command before using config
|
|
363
|
+
validation = Skill("moai-project-config-manager", action="validate")
|
|
364
|
+
if not validation["valid"]:
|
|
365
|
+
print(f"Configuration errors: {validation['errors']}")
|
|
366
|
+
return
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### With Other Skills
|
|
370
|
+
|
|
371
|
+
**Language-Aware Skills**:
|
|
372
|
+
```python
|
|
373
|
+
config = load_config(".moai/config.json")
|
|
374
|
+
language = config["language"]["conversation_language"]
|
|
375
|
+
|
|
376
|
+
if language == "ko":
|
|
377
|
+
# Use Korean responses
|
|
378
|
+
response = generate_korean_response(prompt)
|
|
379
|
+
else:
|
|
380
|
+
# Use English responses
|
|
381
|
+
response = generate_english_response(prompt)
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**Report Generation Skills**:
|
|
385
|
+
```python
|
|
386
|
+
config = load_config(".moai/config.json")
|
|
387
|
+
report_settings = config["report_generation"]
|
|
388
|
+
|
|
389
|
+
if report_settings["enabled"]:
|
|
390
|
+
if report_settings["auto_create"]:
|
|
391
|
+
generate_full_report()
|
|
392
|
+
else:
|
|
393
|
+
generate_minimal_report()
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## Debug and Troubleshooting
|
|
399
|
+
|
|
400
|
+
### Debug Mode Usage
|
|
401
|
+
|
|
402
|
+
```python
|
|
403
|
+
# Enable debug logging
|
|
404
|
+
result = Skill("moai-project-config-manager", debug=True)
|
|
405
|
+
|
|
406
|
+
# Debug output includes:
|
|
407
|
+
# - Configuration loading steps
|
|
408
|
+
# - Validation process details
|
|
409
|
+
# - Merge operation results
|
|
410
|
+
# - File operation details
|
|
411
|
+
# - Error stack traces
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Common Debug Scenarios
|
|
415
|
+
|
|
416
|
+
**Configuration Loading Issues**:
|
|
417
|
+
```debug
|
|
418
|
+
DEBUG: Loading configuration from .moai/config.json
|
|
419
|
+
DEBUG: File size: 2048 bytes
|
|
420
|
+
DEBUG: JSON parsing successful
|
|
421
|
+
DEBUG: Schema validation passed
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Validation Failures**:
|
|
425
|
+
```debug
|
|
426
|
+
DEBUG: Validating configuration
|
|
427
|
+
ERROR: Field 'language.conversation_language' has invalid value 'fr'
|
|
428
|
+
ERROR: Allowed values: ['en', 'ko', 'ja', 'zh']
|
|
429
|
+
DEBUG: Validation failed with 1 errors
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
**File Operation Issues**:
|
|
433
|
+
```debug
|
|
434
|
+
DEBUG: Creating backup .moai/config.backup.20251105_123456.json
|
|
435
|
+
DEBUG: Writing temporary file .moai/config.json.tmp
|
|
436
|
+
DEBUG: Atomic replace operation
|
|
437
|
+
ERROR: Permission denied when writing .moai/config.json
|
|
438
|
+
DEBUG: Attempting to restore from backup
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### Manual Configuration Repair
|
|
442
|
+
|
|
443
|
+
If the skill cannot automatically repair issues:
|
|
444
|
+
|
|
445
|
+
1. **JSON Syntax Errors**:
|
|
446
|
+
```bash
|
|
447
|
+
# Validate JSON syntax
|
|
448
|
+
python3 -m json.tool .moai/config.json
|
|
449
|
+
|
|
450
|
+
# If valid, backup and manually edit
|
|
451
|
+
cp .moai/config.json .moai/config.backup.manual.json
|
|
452
|
+
# Edit .moai/config.json with proper JSON
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
2. **Schema Validation**:
|
|
456
|
+
```bash
|
|
457
|
+
# Use online JSON schema validator
|
|
458
|
+
# Upload .moai/config.json and the schema from reference.md
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
3. **Permission Issues**:
|
|
462
|
+
```bash
|
|
463
|
+
# Fix directory permissions
|
|
464
|
+
chmod 755 .moai/
|
|
465
|
+
chmod 644 .moai/config.json
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## Performance Considerations
|
|
471
|
+
|
|
472
|
+
### Configuration Loading
|
|
473
|
+
- Average time: < 10ms for typical configuration files
|
|
474
|
+
- Memory usage: < 1MB for configuration in memory
|
|
475
|
+
- File I/O: Optimized with single read/write operations
|
|
476
|
+
|
|
477
|
+
### Validation Performance
|
|
478
|
+
- Schema validation: < 5ms for typical configurations
|
|
479
|
+
- Custom validation rules: < 2ms per rule
|
|
480
|
+
- Batch validation: Validated all sections in parallel
|
|
481
|
+
|
|
482
|
+
### Backup Operations
|
|
483
|
+
- Backup creation: < 50ms for typical configurations
|
|
484
|
+
- Backup storage: Uses copy-on-write for efficiency
|
|
485
|
+
- Cleanup: Automatic cleanup of backups older than 30 days
|
|
486
|
+
|
|
487
|
+
### Recommended Limits
|
|
488
|
+
- Configuration file size: < 100KB recommended
|
|
489
|
+
- Number of backup files: < 50 recommended
|
|
490
|
+
- Concurrent operations: 1 at a time (file locking)
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Security Considerations
|
|
495
|
+
|
|
496
|
+
### File Access Security
|
|
497
|
+
- Configuration files should have restrictive permissions (644)
|
|
498
|
+
- Backup files inherit same permissions as original
|
|
499
|
+
- Temporary files are created with secure permissions
|
|
500
|
+
|
|
501
|
+
### Input Validation
|
|
502
|
+
- All user inputs are validated against schema
|
|
503
|
+
- Special characters are sanitized in text inputs
|
|
504
|
+
- File paths are validated to prevent directory traversal
|
|
505
|
+
|
|
506
|
+
### Backup Security
|
|
507
|
+
- Backup files contain sensitive configuration data
|
|
508
|
+
- Backups should be included in .gitignore
|
|
509
|
+
- Consider encryption for highly sensitive configurations
|
|
510
|
+
|
|
511
|
+
### Audit Trail
|
|
512
|
+
- All configuration changes are logged with timestamps
|
|
513
|
+
- Backup files provide change history
|
|
514
|
+
- Operation logs include user context when available
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Validate the moai-project-config-manager skill structure and metadata
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import yaml
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def validate_skill():
|
|
12
|
+
"""Validate skill structure and metadata"""
|
|
13
|
+
|
|
14
|
+
print("š Validating moai-project-config-manager skill...")
|
|
15
|
+
|
|
16
|
+
skill_dir = Path(__file__).parent
|
|
17
|
+
skill_file = skill_dir / "SKILL.md"
|
|
18
|
+
|
|
19
|
+
if not skill_file.exists():
|
|
20
|
+
print("ā SKILL.md not found")
|
|
21
|
+
return False
|
|
22
|
+
|
|
23
|
+
# Read and parse frontmatter
|
|
24
|
+
with open(skill_file, 'r') as f:
|
|
25
|
+
content = f.read()
|
|
26
|
+
|
|
27
|
+
# Extract frontmatter
|
|
28
|
+
if content.startswith('---'):
|
|
29
|
+
try:
|
|
30
|
+
end_index = content.find('---', 3)
|
|
31
|
+
frontmatter_str = content[3:end_index].strip()
|
|
32
|
+
frontmatter = yaml.safe_load(frontmatter_str)
|
|
33
|
+
|
|
34
|
+
print("ā
Frontmatter parsed successfully")
|
|
35
|
+
|
|
36
|
+
# Validate required fields
|
|
37
|
+
required_fields = ['name', 'version', 'description', 'freedom', 'type', 'tags']
|
|
38
|
+
missing_fields = [field for field in required_fields if field not in frontmatter]
|
|
39
|
+
|
|
40
|
+
if missing_fields:
|
|
41
|
+
print(f"ā Missing required fields: {missing_fields}")
|
|
42
|
+
return False
|
|
43
|
+
|
|
44
|
+
print("ā
All required fields present")
|
|
45
|
+
|
|
46
|
+
# Validate field values
|
|
47
|
+
if frontmatter['name'] != 'moai-project-config-manager':
|
|
48
|
+
print(f"ā Incorrect skill name: {frontmatter['name']}")
|
|
49
|
+
return False
|
|
50
|
+
|
|
51
|
+
if frontmatter['type'] != 'project':
|
|
52
|
+
print(f"ā Incorrect skill type: {frontmatter['type']}")
|
|
53
|
+
return False
|
|
54
|
+
|
|
55
|
+
if frontmatter['freedom'] not in ['low', 'medium', 'high']:
|
|
56
|
+
print(f"ā Invalid freedom level: {frontmatter['freedom']}")
|
|
57
|
+
return False
|
|
58
|
+
|
|
59
|
+
if not isinstance(frontmatter['tags'], list):
|
|
60
|
+
print(f"ā Tags must be a list: {frontmatter['tags']}")
|
|
61
|
+
return False
|
|
62
|
+
|
|
63
|
+
print("ā
Field values validated")
|
|
64
|
+
|
|
65
|
+
# Check expected tags
|
|
66
|
+
expected_tags = ['project', 'configuration', 'management']
|
|
67
|
+
has_expected_tags = any(tag in frontmatter['tags'] for tag in expected_tags)
|
|
68
|
+
|
|
69
|
+
if not has_expected_tags:
|
|
70
|
+
print(f"ā ļø Missing expected tags: {expected_tags}")
|
|
71
|
+
else:
|
|
72
|
+
print("ā
Expected tags present")
|
|
73
|
+
|
|
74
|
+
except yaml.YAMLError as e:
|
|
75
|
+
print(f"ā Failed to parse frontmatter: {e}")
|
|
76
|
+
return False
|
|
77
|
+
|
|
78
|
+
# Check for required files
|
|
79
|
+
required_files = ['SKILL.md', 'reference.md', 'examples.md']
|
|
80
|
+
missing_files = [f for f in required_files if not (skill_dir / f).exists()]
|
|
81
|
+
|
|
82
|
+
if missing_files:
|
|
83
|
+
print(f"ā Missing required files: {missing_files}")
|
|
84
|
+
return False
|
|
85
|
+
|
|
86
|
+
print("ā
All required files present")
|
|
87
|
+
|
|
88
|
+
# Validate file sizes
|
|
89
|
+
for file_name in required_files:
|
|
90
|
+
file_path = skill_dir / file_name
|
|
91
|
+
size_kb = file_path.stat().st_size / 1024
|
|
92
|
+
|
|
93
|
+
if file_name == 'SKILL.md' and size_kb < 10:
|
|
94
|
+
print(f"ā ļø {file_name} seems small: {size_kb:.1f}KB")
|
|
95
|
+
elif file_name == 'reference.md' and size_kb < 5:
|
|
96
|
+
print(f"ā ļø {file_name} seems small: {size_kb:.1f}KB")
|
|
97
|
+
elif file_name == 'examples.md' and size_kb < 5:
|
|
98
|
+
print(f"ā ļø {file_name} seems small: {size_kb:.1f}KB")
|
|
99
|
+
else:
|
|
100
|
+
print(f"ā
{file_name}: {size_kb:.1f}KB")
|
|
101
|
+
|
|
102
|
+
print("\nš Skill validation completed successfully!")
|
|
103
|
+
return True
|
|
104
|
+
|
|
105
|
+
if __name__ == "__main__":
|
|
106
|
+
validate_skill()
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Project Documentation
|
|
2
|
+
|
|
3
|
+
Comprehensive guidelines for creating and maintaining project documentation with proper structure and standards.
|
|
4
|
+
|
|
5
|
+
## Essential Documentation
|
|
6
|
+
|
|
7
|
+
Every project should have:
|
|
8
|
+
1. README.md - Project overview and getting started
|
|
9
|
+
2. CHANGELOG.md - Version history and changes
|
|
10
|
+
3. CONTRIBUTING.md - Development guidelines
|
|
11
|
+
4. LICENSE - License information
|