moai-adk 0.8.1__tar.gz → 0.8.3__tar.gz
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-0.8.1 → moai_adk-0.8.3}/PKG-INFO +240 -14
- {moai_adk-0.8.1 → moai_adk-0.8.3}/README.md +239 -13
- {moai_adk-0.8.1 → moai_adk-0.8.3}/pyproject.toml +1 -1
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/commands/update.py +15 -4
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/config/migration.py +1 -1
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/issue_creator.py +7 -3
- moai_adk-0.8.3/src/moai_adk/core/tags/__init__.py +86 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/ci_validator.py +433 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/cli.py +283 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/generator.py +109 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/inserter.py +99 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/mapper.py +126 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/parser.py +76 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/pre_commit_validator.py +355 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/reporter.py +957 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/tags.py +149 -0
- moai_adk-0.8.3/src/moai_adk/core/tags/validator.py +897 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/cc-manager.md +25 -2
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/debug-helper.md +24 -12
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/doc-syncer.md +19 -12
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/git-manager.md +20 -12
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/implementation-planner.md +19 -12
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/project-manager.md +29 -2
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/quality-gate.md +25 -2
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/skill-factory.md +30 -2
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/spec-builder.md +26 -11
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/tag-agent.md +30 -8
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +27 -12
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/agents/alfred/trust-checker.md +25 -2
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/commands/alfred/0-project.md +5 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/commands/alfred/1-plan.md +82 -19
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/commands/alfred/2-run.md +72 -15
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/commands/alfred/3-sync.md +74 -14
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/.moai/cache/version-check.json +9 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/README.md +343 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/TROUBLESHOOTING.md +471 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +92 -57
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +102 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +102 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +108 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +102 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +102 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/core/project.py +286 -19
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/session.py +21 -7
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +102 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +102 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +120 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/settings.json +5 -5
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +9 -6
- moai_adk-0.8.3/src/moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +137 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +219 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +3 -3
- moai_adk-0.8.3/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +541 -0
- moai_adk-0.8.3/src/moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +622 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +9 -11
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +9 -21
- moai_adk-0.8.3/src/moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
- moai_adk-0.8.3/src/moai_adk/templates/.github/workflows/moai-release-pipeline.yml +182 -0
- moai_adk-0.8.3/src/moai_adk/templates/.github/workflows/release.yml +49 -0
- moai_adk-0.8.3/src/moai_adk/templates/.github/workflows/tag-report.yml +261 -0
- moai_adk-0.8.3/src/moai_adk/templates/.github/workflows/tag-validation.yml +176 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/config.json +6 -1
- moai_adk-0.8.3/src/moai_adk/templates/.moai/hooks/install.sh +79 -0
- moai_adk-0.8.3/src/moai_adk/templates/.moai/hooks/pre-commit.sh +66 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/CLAUDE.md +39 -40
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/__init__.py +5 -0
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/tags/__init__.py +86 -0
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/tags/ci_validator.py +433 -0
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/tags/cli.py +283 -0
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/tags/pre_commit_validator.py +355 -0
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/tags/reporter.py +957 -0
- moai_adk-0.8.3/src/moai_adk/templates/src/moai_adk/core/tags/validator.py +897 -0
- moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -313
- moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
- moai_adk-0.8.1/src/moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
- moai_adk-0.8.1/src/moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -218
- moai_adk-0.8.1/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
- moai_adk-0.8.1/src/moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
- moai_adk-0.8.1/src/moai_adk/templates/.moai/memory/config-schema.md +0 -444
- {moai_adk-0.8.1 → moai_adk-0.8.3}/.gitignore +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/LICENSE +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/__main__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/commands/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/commands/backup.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/commands/doctor.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/commands/init.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/commands/status.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/main.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/prompts/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/cli/prompts/init_prompts.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/config/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/diagnostics/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/diagnostics/slash_commands.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/branch.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/branch_manager.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/checkpoint.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/commit.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/event_detector.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/git/manager.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/backup_utils.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/checker.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/detector.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/initializer.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/phase_executor.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/project/validator.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/quality/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/quality/trust_checker.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/quality/validators/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/quality/validators/base_validator.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template/backup.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template/config.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template/languages.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template/merger.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template/processor.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/core/template_engine.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/core/__init__.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/core/checkpoint.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/core/context.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/core/tags.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/__init__.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/notification.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/tool.py +0 -0
- {moai_adk-0.8.1/src/moai_adk/templates/.claude/hooks/alfred → moai_adk-0.8.3/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/user.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.gitignore +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/docs/quick-issue-creation-guide.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -0
- /moai_adk-0.8.1/src/moai_adk/templates/.moai/memory/issue-label-mapping.md → /moai_adk-0.8.3/src/moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/memory/spec-metadata.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/project/product.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/project/structure.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/.moai/project/tech.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/templates/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/utils/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/utils/banner.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.3}/src/moai_adk/utils/logger.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: moai-adk
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.3
|
|
4
4
|
Summary: MoAI Agentic Development Kit - SPEC-First TDD with Alfred SuperAgent & Complete Skills v2.0
|
|
5
5
|
Project-URL: Homepage, https://github.com/modu-ai/moai-adk
|
|
6
6
|
Project-URL: Repository, https://github.com/modu-ai/moai-adk
|
|
@@ -255,7 +255,7 @@ my-project/
|
|
|
255
255
|
│ │ ├── 1-plan.md # SPEC authoring
|
|
256
256
|
│ │ ├── 2-run.md # TDD implementation
|
|
257
257
|
│ │ └── 3-sync.md # Documentation sync
|
|
258
|
-
│ ├── skills/ #
|
|
258
|
+
│ ├── skills/ # 55+ Claude Skills
|
|
259
259
|
│ │ ├── moai-foundation-* # 6 Foundation tier
|
|
260
260
|
│ │ ├── moai-essentials-* # 4 Essentials tier
|
|
261
261
|
│ │ ├── moai-alfred-* # 7 Alfred tier
|
|
@@ -617,7 +617,7 @@ uv tool update
|
|
|
617
617
|
|
|
618
618
|
```bash
|
|
619
619
|
# Reinstall specific version (e.g., 0.4.2)
|
|
620
|
-
uv tool install moai-adk
|
|
620
|
+
uv tool install moai-adk
|
|
621
621
|
```
|
|
622
622
|
|
|
623
623
|
### Verify After Update
|
|
@@ -646,6 +646,231 @@ claude
|
|
|
646
646
|
|
|
647
647
|
---
|
|
648
648
|
|
|
649
|
+
## Development Setup for Contributors
|
|
650
|
+
|
|
651
|
+
If you're developing **MoAI-ADK itself**, follow these steps to set up your development environment.
|
|
652
|
+
|
|
653
|
+
### Prerequisites
|
|
654
|
+
|
|
655
|
+
- Python 3.13+
|
|
656
|
+
- `uv` package manager
|
|
657
|
+
- Git
|
|
658
|
+
|
|
659
|
+
### Setup Steps
|
|
660
|
+
|
|
661
|
+
#### Step 1: Clone and Install in Editable Mode
|
|
662
|
+
|
|
663
|
+
```bash
|
|
664
|
+
# Clone the repository
|
|
665
|
+
git clone https://github.com/modu-ai/moai-adk.git
|
|
666
|
+
cd moai-adk
|
|
667
|
+
|
|
668
|
+
# Install in editable mode (creates symlink, not a copy)
|
|
669
|
+
uv pip install -e .
|
|
670
|
+
|
|
671
|
+
# Or with pip (also works)
|
|
672
|
+
pip install -e .
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
The editable install allows your local changes to be immediately reflected when using `moai-adk` command.
|
|
676
|
+
|
|
677
|
+
#### Step 2: Initialize Development Configuration
|
|
678
|
+
|
|
679
|
+
After the editable install, initialize the development repository's configuration:
|
|
680
|
+
|
|
681
|
+
```bash
|
|
682
|
+
# Run the initialization script
|
|
683
|
+
bash .moai/scripts/init-dev-config.sh
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
**What this script does:**
|
|
687
|
+
- Extracts the actual version from `pyproject.toml`
|
|
688
|
+
- Replaces template placeholders (`{{MOAI_VERSION}}`) with actual version values in `.moai/config.json`
|
|
689
|
+
- Sets up `project.template_version` field
|
|
690
|
+
- Ensures the `moai-adk update` command works correctly on first run
|
|
691
|
+
|
|
692
|
+
**Why is this necessary?**
|
|
693
|
+
|
|
694
|
+
When you install MoAI-ADK in editable mode, the `.moai/config.json` file contains unsubstituted template placeholders. This causes the first `moai-adk update` command to fail with version comparison errors. The init script resolves these placeholders so everything works seamlessly.
|
|
695
|
+
|
|
696
|
+
#### Step 3: Verify Setup
|
|
697
|
+
|
|
698
|
+
```bash
|
|
699
|
+
# Check that moai-adk works
|
|
700
|
+
moai-adk --version
|
|
701
|
+
|
|
702
|
+
# Run the health check
|
|
703
|
+
moai-adk doctor
|
|
704
|
+
|
|
705
|
+
# Expected output:
|
|
706
|
+
# ✅ Python version: 3.13+
|
|
707
|
+
# ✅ UV installed
|
|
708
|
+
# ✅ Project structure: Valid
|
|
709
|
+
# ✅ Configuration: Ready
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
#### Step 4: Run Tests
|
|
713
|
+
|
|
714
|
+
```bash
|
|
715
|
+
# Run all tests with coverage
|
|
716
|
+
pytest tests/
|
|
717
|
+
|
|
718
|
+
# Run specific test module
|
|
719
|
+
pytest tests/unit/test_update.py -v
|
|
720
|
+
|
|
721
|
+
# Run with coverage report
|
|
722
|
+
pytest tests/ --cov=src/moai_adk --cov-report=html
|
|
723
|
+
|
|
724
|
+
# Check coverage thresholds
|
|
725
|
+
pytest tests/ --cov=src/moai_adk --cov-report=term-missing
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
### Common Development Workflow
|
|
729
|
+
|
|
730
|
+
#### After Making Code Changes
|
|
731
|
+
|
|
732
|
+
```bash
|
|
733
|
+
# 1. Run tests to ensure nothing broke
|
|
734
|
+
pytest tests/ -v
|
|
735
|
+
|
|
736
|
+
# 2. Check code style
|
|
737
|
+
ruff check src/
|
|
738
|
+
ruff format src/
|
|
739
|
+
|
|
740
|
+
# 3. Type checking
|
|
741
|
+
mypy src/
|
|
742
|
+
|
|
743
|
+
# 4. If you modified update.py, test the update command
|
|
744
|
+
moai-adk update --check
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
#### Testing the Update Command
|
|
748
|
+
|
|
749
|
+
The update command has been fixed to handle invalid version strings gracefully. To test it in development:
|
|
750
|
+
|
|
751
|
+
```bash
|
|
752
|
+
# Test update without applying it
|
|
753
|
+
moai-adk update --check
|
|
754
|
+
|
|
755
|
+
# Test with force mode (skips backup)
|
|
756
|
+
moai-adk update --force
|
|
757
|
+
|
|
758
|
+
# Test with specific version
|
|
759
|
+
moai-adk update --templates-only
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
### Understanding the Init Script
|
|
763
|
+
|
|
764
|
+
The `.moai/scripts/init-dev-config.sh` script performs these operations:
|
|
765
|
+
|
|
766
|
+
1. **Extracts Version**: Reads `pyproject.toml` to get the current version
|
|
767
|
+
2. **Updates Config**: Modifies `.moai/config.json` to set:
|
|
768
|
+
- `moai.version` → actual version value
|
|
769
|
+
- `project.template_version` → actual version value
|
|
770
|
+
3. **Validates**: Ensures the JSON structure is preserved correctly
|
|
771
|
+
4. **Provides Feedback**: Shows what was updated and verifies the changes
|
|
772
|
+
|
|
773
|
+
### Troubleshooting Development Setup
|
|
774
|
+
|
|
775
|
+
#### Problem: `moai-adk` command not found
|
|
776
|
+
|
|
777
|
+
```bash
|
|
778
|
+
# Solution 1: Reinstall in editable mode
|
|
779
|
+
uv pip install -e .
|
|
780
|
+
|
|
781
|
+
# Solution 2: Verify uv environment
|
|
782
|
+
uv pip list | grep moai-adk
|
|
783
|
+
|
|
784
|
+
# Solution 3: Use full path
|
|
785
|
+
python -m moai_adk --version
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
#### Problem: `.moai/config.json` still has placeholders after running init script
|
|
789
|
+
|
|
790
|
+
```bash
|
|
791
|
+
# Manually check the config
|
|
792
|
+
cat .moai/config.json | grep -i moai_version
|
|
793
|
+
|
|
794
|
+
# If still showing {{MOAI_VERSION}}, rerun the script:
|
|
795
|
+
bash .moai/scripts/init-dev-config.sh
|
|
796
|
+
|
|
797
|
+
# Or manually update using Python:
|
|
798
|
+
python3 << 'EOF'
|
|
799
|
+
import json
|
|
800
|
+
from pathlib import Path
|
|
801
|
+
|
|
802
|
+
config_path = Path(".moai/config.json")
|
|
803
|
+
config = json.loads(config_path.read_text())
|
|
804
|
+
|
|
805
|
+
# Update manually
|
|
806
|
+
config['moai']['version'] = "0.8.1"
|
|
807
|
+
config['project']['template_version'] = "0.8.1"
|
|
808
|
+
|
|
809
|
+
config_path.write_text(json.dumps(config, indent=2) + '\n')
|
|
810
|
+
print("✅ Config updated manually")
|
|
811
|
+
EOF
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
#### Problem: `moai-adk update` requires running twice
|
|
815
|
+
|
|
816
|
+
This issue has been **fixed** in v0.8.1+. If you're experiencing this:
|
|
817
|
+
|
|
818
|
+
1. Ensure you've run the init script: `bash .moai/scripts/init-dev-config.sh`
|
|
819
|
+
2. Update to the latest version: `pip install -e --upgrade .`
|
|
820
|
+
3. Verify the config has actual versions: `cat .moai/config.json | grep version`
|
|
821
|
+
|
|
822
|
+
**What was the issue?**
|
|
823
|
+
- Development installations had unsubstituted `{{MOAI_VERSION}}` placeholders in config
|
|
824
|
+
- First `moai-adk update` would fail comparing "0.8.1" vs "{{MOAI_VERSION}}"
|
|
825
|
+
- Second run might partially work after partial sync
|
|
826
|
+
|
|
827
|
+
**How it's fixed:**
|
|
828
|
+
- `init-dev-config.sh` replaces placeholders with actual versions
|
|
829
|
+
- Code now gracefully handles InvalidVersion exceptions
|
|
830
|
+
- Added comprehensive unit tests for placeholder detection
|
|
831
|
+
|
|
832
|
+
### Contributing Tests
|
|
833
|
+
|
|
834
|
+
When adding new features, always include tests:
|
|
835
|
+
|
|
836
|
+
```bash
|
|
837
|
+
# Add tests to tests/unit/ or tests/integration/
|
|
838
|
+
# Follow existing test patterns in test_update.py
|
|
839
|
+
|
|
840
|
+
# Run your new tests
|
|
841
|
+
pytest tests/unit/test_*.py -v
|
|
842
|
+
|
|
843
|
+
# Ensure coverage remains ≥ 85%
|
|
844
|
+
pytest tests/ --cov=src/moai_adk --cov-report=term-missing
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
### Making a Pull Request
|
|
848
|
+
|
|
849
|
+
Before opening a PR, ensure:
|
|
850
|
+
|
|
851
|
+
```bash
|
|
852
|
+
# 1. All tests pass
|
|
853
|
+
pytest tests/ -v
|
|
854
|
+
|
|
855
|
+
# 2. Coverage is adequate
|
|
856
|
+
pytest tests/ --cov=src/moai_adk --cov-report=term-missing
|
|
857
|
+
|
|
858
|
+
# 3. Code is formatted
|
|
859
|
+
ruff format src/
|
|
860
|
+
ruff check src/
|
|
861
|
+
|
|
862
|
+
# 4. Types are valid
|
|
863
|
+
mypy src/
|
|
864
|
+
|
|
865
|
+
# 5. Init script works
|
|
866
|
+
bash .moai/scripts/init-dev-config.sh
|
|
867
|
+
|
|
868
|
+
# 6. Update command works
|
|
869
|
+
moai-adk update --check
|
|
870
|
+
```
|
|
871
|
+
|
|
872
|
+
---
|
|
873
|
+
|
|
649
874
|
## Core Workflow (0 → 3)
|
|
650
875
|
|
|
651
876
|
Alfred iteratively develops projects with four commands.
|
|
@@ -1643,7 +1868,7 @@ Hooks are **event-driven** scripts that trigger automatically at specific points
|
|
|
1643
1868
|
- Editing critical files (`CLAUDE.md`, `config.json`)
|
|
1644
1869
|
- Mass edits (10+ files at once via MultiEdit)
|
|
1645
1870
|
|
|
1646
|
-
**TAG Guard
|
|
1871
|
+
**TAG Guard**:
|
|
1647
1872
|
Automatically detects missing @TAG annotations in changed files:
|
|
1648
1873
|
|
|
1649
1874
|
- Scans staged, modified, and untracked files
|
|
@@ -1774,15 +1999,16 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1774
1999
|
|
|
1775
2000
|
| Version | Key Features | Date |
|
|
1776
2001
|
| ----------- | ------------------------------------------------------------------------------------------------ | ---------- |
|
|
2002
|
+
| **v0.8.2** | 📖 EARS terminology update: "Constraints" → "Unwanted Behaviors" for clarity | 2025-10-29 |
|
|
2003
|
+
| **v0.8.1** | 🔄 Command rename: `/alfred:9-help` → `/alfred:9-feedback` + User feedback workflow improvements | 2025-10-28 |
|
|
2004
|
+
| **v0.8.0** | 🏷️ @DOC TAG auto-generation system + SessionStart version check enhancement | 2025-10-27 |
|
|
2005
|
+
| **v0.7.0** | 🌍 Complete language localization system (English, Korean, Japanese, Chinese, Spanish) | 2025-10-26 |
|
|
2006
|
+
| **v0.6.3** | ⚡ 3-Stage update workflow: 70-80% performance improvement via parallel operations | 2025-10-25 |
|
|
2007
|
+
| **v0.6.0** | 🏗️ Major architecture refactor + Enhanced SPEC metadata structure (7 required + 9 optional) | 2025-10-24 |
|
|
1777
2008
|
| **v0.5.7** | 🎯 SPEC → GitHub Issue automation + CodeRabbit integration + Auto PR comments | 2025-10-27 |
|
|
1778
2009
|
| **v0.4.11** | ✨ TAG Guard system + CLAUDE.md formatting improvements + Code cleanup | 2025-10-23 |
|
|
1779
|
-
| **v0.4.10** | 🔧 Hook robustness improvements + Bilingual documentation + Template language config | 2025-10-23 |
|
|
1780
|
-
| **v0.4.9** | 🎯 Hook JSON schema validation fixes + Comprehensive tests (468/468 passing) | 2025-10-23 |
|
|
1781
|
-
| **v0.4.8** | 🚀 Release automation + PyPI deployment + Skills refinement | 2025-10-23 |
|
|
1782
|
-
| **v0.4.7** | 📖 Korean language optimization + SPEC-First principle documentation | 2025-10-22 |
|
|
1783
|
-
| **v0.4.6** | 🎉 Complete Skills v2.0 (100% Production-Ready) + 85,000 lines official docs + 300+ TDD examples | 2025-10-22 |
|
|
1784
2010
|
|
|
1785
|
-
> 📦 **Install Now**: `uv tool install moai-adk
|
|
2011
|
+
> 📦 **Install Now**: `uv tool install moai-adk` or `pip install moai-adk`
|
|
1786
2012
|
|
|
1787
2013
|
---
|
|
1788
2014
|
|
|
@@ -1790,7 +2016,7 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1790
2016
|
|
|
1791
2017
|
| Purpose | Resource |
|
|
1792
2018
|
| ------------------------- | --------------------------------------------------------------- |
|
|
1793
|
-
| Skills detailed structure | `.claude/skills/` directory (
|
|
2019
|
+
| Skills detailed structure | `.claude/skills/` directory (55+ Skills) |
|
|
1794
2020
|
| Sub-agent details | `.claude/agents/alfred/` directory (12 agents) |
|
|
1795
2021
|
| Workflow guide | `.claude/commands/alfred/` (4 commands: 0-project ~ 3-sync) |
|
|
1796
2022
|
| Documentation | Coming soon (see `.moai/`, `.claude/`, `docs/` in your project) |
|
|
@@ -1804,8 +2030,8 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1804
2030
|
| ------------------------ | -------------------------------------------------------- |
|
|
1805
2031
|
| **GitHub Repository** | https://github.com/modu-ai/moai-adk |
|
|
1806
2032
|
| **Issues & Discussions** | https://github.com/modu-ai/moai-adk/issues |
|
|
1807
|
-
| **PyPI Package** | https://pypi.org/project/moai-adk/
|
|
1808
|
-
| **Latest Release** | https://github.com/modu-ai/moai-adk/releases
|
|
2033
|
+
| **PyPI Package** | https://pypi.org/project/moai-adk/ |
|
|
2034
|
+
| **Latest Release** | https://github.com/modu-ai/moai-adk/releases |
|
|
1809
2035
|
| **Documentation** | See `.moai/`, `.claude/`, `docs/` within project |
|
|
1810
2036
|
|
|
1811
2037
|
---
|
|
@@ -1814,7 +2040,7 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1814
2040
|
|
|
1815
2041
|
> **"No CODE without SPEC"**
|
|
1816
2042
|
|
|
1817
|
-
MoAI-ADK is not simply a code generation tool. Alfred SuperAgent with its 19-member team and
|
|
2043
|
+
MoAI-ADK is not simply a code generation tool. Alfred SuperAgent with its 19-member team and 55+ Claude Skills together guarantee:
|
|
1818
2044
|
|
|
1819
2045
|
- ✅ **SPEC → TEST (TDD) → CODE → DOCS consistency**
|
|
1820
2046
|
- ✅ **Complete history tracking with @TAG system**
|
|
@@ -215,7 +215,7 @@ my-project/
|
|
|
215
215
|
│ │ ├── 1-plan.md # SPEC authoring
|
|
216
216
|
│ │ ├── 2-run.md # TDD implementation
|
|
217
217
|
│ │ └── 3-sync.md # Documentation sync
|
|
218
|
-
│ ├── skills/ #
|
|
218
|
+
│ ├── skills/ # 55+ Claude Skills
|
|
219
219
|
│ │ ├── moai-foundation-* # 6 Foundation tier
|
|
220
220
|
│ │ ├── moai-essentials-* # 4 Essentials tier
|
|
221
221
|
│ │ ├── moai-alfred-* # 7 Alfred tier
|
|
@@ -577,7 +577,7 @@ uv tool update
|
|
|
577
577
|
|
|
578
578
|
```bash
|
|
579
579
|
# Reinstall specific version (e.g., 0.4.2)
|
|
580
|
-
uv tool install moai-adk
|
|
580
|
+
uv tool install moai-adk
|
|
581
581
|
```
|
|
582
582
|
|
|
583
583
|
### Verify After Update
|
|
@@ -606,6 +606,231 @@ claude
|
|
|
606
606
|
|
|
607
607
|
---
|
|
608
608
|
|
|
609
|
+
## Development Setup for Contributors
|
|
610
|
+
|
|
611
|
+
If you're developing **MoAI-ADK itself**, follow these steps to set up your development environment.
|
|
612
|
+
|
|
613
|
+
### Prerequisites
|
|
614
|
+
|
|
615
|
+
- Python 3.13+
|
|
616
|
+
- `uv` package manager
|
|
617
|
+
- Git
|
|
618
|
+
|
|
619
|
+
### Setup Steps
|
|
620
|
+
|
|
621
|
+
#### Step 1: Clone and Install in Editable Mode
|
|
622
|
+
|
|
623
|
+
```bash
|
|
624
|
+
# Clone the repository
|
|
625
|
+
git clone https://github.com/modu-ai/moai-adk.git
|
|
626
|
+
cd moai-adk
|
|
627
|
+
|
|
628
|
+
# Install in editable mode (creates symlink, not a copy)
|
|
629
|
+
uv pip install -e .
|
|
630
|
+
|
|
631
|
+
# Or with pip (also works)
|
|
632
|
+
pip install -e .
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
The editable install allows your local changes to be immediately reflected when using `moai-adk` command.
|
|
636
|
+
|
|
637
|
+
#### Step 2: Initialize Development Configuration
|
|
638
|
+
|
|
639
|
+
After the editable install, initialize the development repository's configuration:
|
|
640
|
+
|
|
641
|
+
```bash
|
|
642
|
+
# Run the initialization script
|
|
643
|
+
bash .moai/scripts/init-dev-config.sh
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
**What this script does:**
|
|
647
|
+
- Extracts the actual version from `pyproject.toml`
|
|
648
|
+
- Replaces template placeholders (`{{MOAI_VERSION}}`) with actual version values in `.moai/config.json`
|
|
649
|
+
- Sets up `project.template_version` field
|
|
650
|
+
- Ensures the `moai-adk update` command works correctly on first run
|
|
651
|
+
|
|
652
|
+
**Why is this necessary?**
|
|
653
|
+
|
|
654
|
+
When you install MoAI-ADK in editable mode, the `.moai/config.json` file contains unsubstituted template placeholders. This causes the first `moai-adk update` command to fail with version comparison errors. The init script resolves these placeholders so everything works seamlessly.
|
|
655
|
+
|
|
656
|
+
#### Step 3: Verify Setup
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
# Check that moai-adk works
|
|
660
|
+
moai-adk --version
|
|
661
|
+
|
|
662
|
+
# Run the health check
|
|
663
|
+
moai-adk doctor
|
|
664
|
+
|
|
665
|
+
# Expected output:
|
|
666
|
+
# ✅ Python version: 3.13+
|
|
667
|
+
# ✅ UV installed
|
|
668
|
+
# ✅ Project structure: Valid
|
|
669
|
+
# ✅ Configuration: Ready
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
#### Step 4: Run Tests
|
|
673
|
+
|
|
674
|
+
```bash
|
|
675
|
+
# Run all tests with coverage
|
|
676
|
+
pytest tests/
|
|
677
|
+
|
|
678
|
+
# Run specific test module
|
|
679
|
+
pytest tests/unit/test_update.py -v
|
|
680
|
+
|
|
681
|
+
# Run with coverage report
|
|
682
|
+
pytest tests/ --cov=src/moai_adk --cov-report=html
|
|
683
|
+
|
|
684
|
+
# Check coverage thresholds
|
|
685
|
+
pytest tests/ --cov=src/moai_adk --cov-report=term-missing
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
### Common Development Workflow
|
|
689
|
+
|
|
690
|
+
#### After Making Code Changes
|
|
691
|
+
|
|
692
|
+
```bash
|
|
693
|
+
# 1. Run tests to ensure nothing broke
|
|
694
|
+
pytest tests/ -v
|
|
695
|
+
|
|
696
|
+
# 2. Check code style
|
|
697
|
+
ruff check src/
|
|
698
|
+
ruff format src/
|
|
699
|
+
|
|
700
|
+
# 3. Type checking
|
|
701
|
+
mypy src/
|
|
702
|
+
|
|
703
|
+
# 4. If you modified update.py, test the update command
|
|
704
|
+
moai-adk update --check
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
#### Testing the Update Command
|
|
708
|
+
|
|
709
|
+
The update command has been fixed to handle invalid version strings gracefully. To test it in development:
|
|
710
|
+
|
|
711
|
+
```bash
|
|
712
|
+
# Test update without applying it
|
|
713
|
+
moai-adk update --check
|
|
714
|
+
|
|
715
|
+
# Test with force mode (skips backup)
|
|
716
|
+
moai-adk update --force
|
|
717
|
+
|
|
718
|
+
# Test with specific version
|
|
719
|
+
moai-adk update --templates-only
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
### Understanding the Init Script
|
|
723
|
+
|
|
724
|
+
The `.moai/scripts/init-dev-config.sh` script performs these operations:
|
|
725
|
+
|
|
726
|
+
1. **Extracts Version**: Reads `pyproject.toml` to get the current version
|
|
727
|
+
2. **Updates Config**: Modifies `.moai/config.json` to set:
|
|
728
|
+
- `moai.version` → actual version value
|
|
729
|
+
- `project.template_version` → actual version value
|
|
730
|
+
3. **Validates**: Ensures the JSON structure is preserved correctly
|
|
731
|
+
4. **Provides Feedback**: Shows what was updated and verifies the changes
|
|
732
|
+
|
|
733
|
+
### Troubleshooting Development Setup
|
|
734
|
+
|
|
735
|
+
#### Problem: `moai-adk` command not found
|
|
736
|
+
|
|
737
|
+
```bash
|
|
738
|
+
# Solution 1: Reinstall in editable mode
|
|
739
|
+
uv pip install -e .
|
|
740
|
+
|
|
741
|
+
# Solution 2: Verify uv environment
|
|
742
|
+
uv pip list | grep moai-adk
|
|
743
|
+
|
|
744
|
+
# Solution 3: Use full path
|
|
745
|
+
python -m moai_adk --version
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
#### Problem: `.moai/config.json` still has placeholders after running init script
|
|
749
|
+
|
|
750
|
+
```bash
|
|
751
|
+
# Manually check the config
|
|
752
|
+
cat .moai/config.json | grep -i moai_version
|
|
753
|
+
|
|
754
|
+
# If still showing {{MOAI_VERSION}}, rerun the script:
|
|
755
|
+
bash .moai/scripts/init-dev-config.sh
|
|
756
|
+
|
|
757
|
+
# Or manually update using Python:
|
|
758
|
+
python3 << 'EOF'
|
|
759
|
+
import json
|
|
760
|
+
from pathlib import Path
|
|
761
|
+
|
|
762
|
+
config_path = Path(".moai/config.json")
|
|
763
|
+
config = json.loads(config_path.read_text())
|
|
764
|
+
|
|
765
|
+
# Update manually
|
|
766
|
+
config['moai']['version'] = "0.8.1"
|
|
767
|
+
config['project']['template_version'] = "0.8.1"
|
|
768
|
+
|
|
769
|
+
config_path.write_text(json.dumps(config, indent=2) + '\n')
|
|
770
|
+
print("✅ Config updated manually")
|
|
771
|
+
EOF
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
#### Problem: `moai-adk update` requires running twice
|
|
775
|
+
|
|
776
|
+
This issue has been **fixed** in v0.8.1+. If you're experiencing this:
|
|
777
|
+
|
|
778
|
+
1. Ensure you've run the init script: `bash .moai/scripts/init-dev-config.sh`
|
|
779
|
+
2. Update to the latest version: `pip install -e --upgrade .`
|
|
780
|
+
3. Verify the config has actual versions: `cat .moai/config.json | grep version`
|
|
781
|
+
|
|
782
|
+
**What was the issue?**
|
|
783
|
+
- Development installations had unsubstituted `{{MOAI_VERSION}}` placeholders in config
|
|
784
|
+
- First `moai-adk update` would fail comparing "0.8.1" vs "{{MOAI_VERSION}}"
|
|
785
|
+
- Second run might partially work after partial sync
|
|
786
|
+
|
|
787
|
+
**How it's fixed:**
|
|
788
|
+
- `init-dev-config.sh` replaces placeholders with actual versions
|
|
789
|
+
- Code now gracefully handles InvalidVersion exceptions
|
|
790
|
+
- Added comprehensive unit tests for placeholder detection
|
|
791
|
+
|
|
792
|
+
### Contributing Tests
|
|
793
|
+
|
|
794
|
+
When adding new features, always include tests:
|
|
795
|
+
|
|
796
|
+
```bash
|
|
797
|
+
# Add tests to tests/unit/ or tests/integration/
|
|
798
|
+
# Follow existing test patterns in test_update.py
|
|
799
|
+
|
|
800
|
+
# Run your new tests
|
|
801
|
+
pytest tests/unit/test_*.py -v
|
|
802
|
+
|
|
803
|
+
# Ensure coverage remains ≥ 85%
|
|
804
|
+
pytest tests/ --cov=src/moai_adk --cov-report=term-missing
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
### Making a Pull Request
|
|
808
|
+
|
|
809
|
+
Before opening a PR, ensure:
|
|
810
|
+
|
|
811
|
+
```bash
|
|
812
|
+
# 1. All tests pass
|
|
813
|
+
pytest tests/ -v
|
|
814
|
+
|
|
815
|
+
# 2. Coverage is adequate
|
|
816
|
+
pytest tests/ --cov=src/moai_adk --cov-report=term-missing
|
|
817
|
+
|
|
818
|
+
# 3. Code is formatted
|
|
819
|
+
ruff format src/
|
|
820
|
+
ruff check src/
|
|
821
|
+
|
|
822
|
+
# 4. Types are valid
|
|
823
|
+
mypy src/
|
|
824
|
+
|
|
825
|
+
# 5. Init script works
|
|
826
|
+
bash .moai/scripts/init-dev-config.sh
|
|
827
|
+
|
|
828
|
+
# 6. Update command works
|
|
829
|
+
moai-adk update --check
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
---
|
|
833
|
+
|
|
609
834
|
## Core Workflow (0 → 3)
|
|
610
835
|
|
|
611
836
|
Alfred iteratively develops projects with four commands.
|
|
@@ -1603,7 +1828,7 @@ Hooks are **event-driven** scripts that trigger automatically at specific points
|
|
|
1603
1828
|
- Editing critical files (`CLAUDE.md`, `config.json`)
|
|
1604
1829
|
- Mass edits (10+ files at once via MultiEdit)
|
|
1605
1830
|
|
|
1606
|
-
**TAG Guard
|
|
1831
|
+
**TAG Guard**:
|
|
1607
1832
|
Automatically detects missing @TAG annotations in changed files:
|
|
1608
1833
|
|
|
1609
1834
|
- Scans staged, modified, and untracked files
|
|
@@ -1734,15 +1959,16 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1734
1959
|
|
|
1735
1960
|
| Version | Key Features | Date |
|
|
1736
1961
|
| ----------- | ------------------------------------------------------------------------------------------------ | ---------- |
|
|
1962
|
+
| **v0.8.2** | 📖 EARS terminology update: "Constraints" → "Unwanted Behaviors" for clarity | 2025-10-29 |
|
|
1963
|
+
| **v0.8.1** | 🔄 Command rename: `/alfred:9-help` → `/alfred:9-feedback` + User feedback workflow improvements | 2025-10-28 |
|
|
1964
|
+
| **v0.8.0** | 🏷️ @DOC TAG auto-generation system + SessionStart version check enhancement | 2025-10-27 |
|
|
1965
|
+
| **v0.7.0** | 🌍 Complete language localization system (English, Korean, Japanese, Chinese, Spanish) | 2025-10-26 |
|
|
1966
|
+
| **v0.6.3** | ⚡ 3-Stage update workflow: 70-80% performance improvement via parallel operations | 2025-10-25 |
|
|
1967
|
+
| **v0.6.0** | 🏗️ Major architecture refactor + Enhanced SPEC metadata structure (7 required + 9 optional) | 2025-10-24 |
|
|
1737
1968
|
| **v0.5.7** | 🎯 SPEC → GitHub Issue automation + CodeRabbit integration + Auto PR comments | 2025-10-27 |
|
|
1738
1969
|
| **v0.4.11** | ✨ TAG Guard system + CLAUDE.md formatting improvements + Code cleanup | 2025-10-23 |
|
|
1739
|
-
| **v0.4.10** | 🔧 Hook robustness improvements + Bilingual documentation + Template language config | 2025-10-23 |
|
|
1740
|
-
| **v0.4.9** | 🎯 Hook JSON schema validation fixes + Comprehensive tests (468/468 passing) | 2025-10-23 |
|
|
1741
|
-
| **v0.4.8** | 🚀 Release automation + PyPI deployment + Skills refinement | 2025-10-23 |
|
|
1742
|
-
| **v0.4.7** | 📖 Korean language optimization + SPEC-First principle documentation | 2025-10-22 |
|
|
1743
|
-
| **v0.4.6** | 🎉 Complete Skills v2.0 (100% Production-Ready) + 85,000 lines official docs + 300+ TDD examples | 2025-10-22 |
|
|
1744
1970
|
|
|
1745
|
-
> 📦 **Install Now**: `uv tool install moai-adk
|
|
1971
|
+
> 📦 **Install Now**: `uv tool install moai-adk` or `pip install moai-adk`
|
|
1746
1972
|
|
|
1747
1973
|
---
|
|
1748
1974
|
|
|
@@ -1750,7 +1976,7 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1750
1976
|
|
|
1751
1977
|
| Purpose | Resource |
|
|
1752
1978
|
| ------------------------- | --------------------------------------------------------------- |
|
|
1753
|
-
| Skills detailed structure | `.claude/skills/` directory (
|
|
1979
|
+
| Skills detailed structure | `.claude/skills/` directory (55+ Skills) |
|
|
1754
1980
|
| Sub-agent details | `.claude/agents/alfred/` directory (12 agents) |
|
|
1755
1981
|
| Workflow guide | `.claude/commands/alfred/` (4 commands: 0-project ~ 3-sync) |
|
|
1756
1982
|
| Documentation | Coming soon (see `.moai/`, `.claude/`, `docs/` in your project) |
|
|
@@ -1764,8 +1990,8 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1764
1990
|
| ------------------------ | -------------------------------------------------------- |
|
|
1765
1991
|
| **GitHub Repository** | https://github.com/modu-ai/moai-adk |
|
|
1766
1992
|
| **Issues & Discussions** | https://github.com/modu-ai/moai-adk/issues |
|
|
1767
|
-
| **PyPI Package** | https://pypi.org/project/moai-adk/
|
|
1768
|
-
| **Latest Release** | https://github.com/modu-ai/moai-adk/releases
|
|
1993
|
+
| **PyPI Package** | https://pypi.org/project/moai-adk/ |
|
|
1994
|
+
| **Latest Release** | https://github.com/modu-ai/moai-adk/releases |
|
|
1769
1995
|
| **Documentation** | See `.moai/`, `.claude/`, `docs/` within project |
|
|
1770
1996
|
|
|
1771
1997
|
---
|
|
@@ -1774,7 +2000,7 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1774
2000
|
|
|
1775
2001
|
> **"No CODE without SPEC"**
|
|
1776
2002
|
|
|
1777
|
-
MoAI-ADK is not simply a code generation tool. Alfred SuperAgent with its 19-member team and
|
|
2003
|
+
MoAI-ADK is not simply a code generation tool. Alfred SuperAgent with its 19-member team and 55+ Claude Skills together guarantee:
|
|
1778
2004
|
|
|
1779
2005
|
- ✅ **SPEC → TEST (TDD) → CODE → DOCS consistency**
|
|
1780
2006
|
- ✅ **Complete history tracking with @TAG system**
|
|
@@ -274,6 +274,10 @@ def _get_project_config_version(project_path: Path) -> str:
|
|
|
274
274
|
Raises:
|
|
275
275
|
ValueError: If config.json exists but cannot be parsed
|
|
276
276
|
"""
|
|
277
|
+
def _is_placeholder(value: str) -> bool:
|
|
278
|
+
"""Check if value contains unsubstituted template placeholders."""
|
|
279
|
+
return isinstance(value, str) and value.startswith("{{") and value.endswith("}}")
|
|
280
|
+
|
|
277
281
|
config_path = project_path / ".moai" / "config.json"
|
|
278
282
|
|
|
279
283
|
if not config_path.exists():
|
|
@@ -284,15 +288,15 @@ def _get_project_config_version(project_path: Path) -> str:
|
|
|
284
288
|
config_data = json.loads(config_path.read_text(encoding="utf-8"))
|
|
285
289
|
# Check for template_version in project section
|
|
286
290
|
template_version = config_data.get("project", {}).get("template_version")
|
|
287
|
-
if template_version:
|
|
291
|
+
if template_version and not _is_placeholder(template_version):
|
|
288
292
|
return template_version
|
|
289
293
|
|
|
290
294
|
# Fallback to moai version if no template_version exists
|
|
291
295
|
moai_version = config_data.get("moai", {}).get("version")
|
|
292
|
-
if moai_version:
|
|
296
|
+
if moai_version and not _is_placeholder(moai_version):
|
|
293
297
|
return moai_version
|
|
294
298
|
|
|
295
|
-
# If
|
|
299
|
+
# If values are placeholders or don't exist, treat as uninitialized (0.0.0 triggers sync)
|
|
296
300
|
return "0.0.0"
|
|
297
301
|
except json.JSONDecodeError as e:
|
|
298
302
|
raise ValueError(f"Failed to parse project config.json: {e}") from e
|
|
@@ -796,7 +800,14 @@ def update(path: str, force: bool, check: bool, templates_only: bool, yes: bool)
|
|
|
796
800
|
console.print(f" Package template: {package_config_version}")
|
|
797
801
|
console.print(f" Project config: {project_config_version}")
|
|
798
802
|
|
|
799
|
-
|
|
803
|
+
try:
|
|
804
|
+
config_comparison = _compare_versions(package_config_version, project_config_version)
|
|
805
|
+
except version.InvalidVersion as e:
|
|
806
|
+
# Handle invalid version strings (e.g., unsubstituted template placeholders, corrupted configs)
|
|
807
|
+
console.print(f"[yellow]⚠ Invalid version format in config: {e}[/yellow]")
|
|
808
|
+
console.print("[cyan]ℹ️ Forcing template sync to repair configuration...[/cyan]")
|
|
809
|
+
# Force template sync by treating project version as outdated
|
|
810
|
+
config_comparison = 1 # package_config_version > project_config_version
|
|
800
811
|
|
|
801
812
|
# If versions are equal, no sync needed
|
|
802
813
|
if config_comparison <= 0:
|
|
@@ -34,7 +34,7 @@ def migrate_config_to_nested_structure(config: dict[str, Any]) -> dict[str, Any]
|
|
|
34
34
|
if "conversation_language" in config and "language" not in config:
|
|
35
35
|
# Extract conversation language from legacy location
|
|
36
36
|
conversation_language = config.pop("conversation_language", "en")
|
|
37
|
-
|
|
37
|
+
config.pop("locale", None) # Remove legacy locale field
|
|
38
38
|
|
|
39
39
|
# Map language codes to language names
|
|
40
40
|
language_names = {
|