moai-adk 0.8.1__tar.gz → 0.8.2__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.2}/PKG-INFO +226 -1
- {moai_adk-0.8.1 → moai_adk-0.8.2}/README.md +225 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/pyproject.toml +1 -1
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/commands/update.py +15 -4
- moai_adk-0.8.2/src/moai_adk/core/tags/__init__.py +87 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/ci_validator.py +435 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/cli.py +283 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/generator.py +109 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/inserter.py +99 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/mapper.py +126 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/parser.py +76 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/pre_commit_validator.py +355 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/reporter.py +959 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/tags.py +149 -0
- moai_adk-0.8.2/src/moai_adk/core/tags/validator.py +897 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/cc-manager.md +25 -2
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/debug-helper.md +24 -12
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/doc-syncer.md +19 -12
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/git-manager.md +20 -12
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/implementation-planner.md +19 -12
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/project-manager.md +29 -2
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/quality-gate.md +25 -2
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/skill-factory.md +30 -2
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/spec-builder.md +26 -11
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/tag-agent.md +30 -8
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +27 -12
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/agents/alfred/trust-checker.md +25 -2
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/commands/alfred/0-project.md +5 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/commands/alfred/1-plan.md +17 -4
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/commands/alfred/2-run.md +7 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/commands/alfred/3-sync.md +6 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/.moai/cache/version-check.json +9 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/README.md +343 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/TROUBLESHOOTING.md +471 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +92 -57
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +102 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +102 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +108 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +102 -0
- moai_adk-0.8.2/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.2/src/moai_adk/templates/.claude/hooks/alfred/shared}/core/project.py +269 -13
- moai_adk-0.8.2/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.2/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/session.py +21 -7
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +102 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +102 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +120 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/settings.json +5 -5
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +9 -6
- moai_adk-0.8.2/src/moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +137 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +219 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +3 -3
- moai_adk-0.8.2/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +541 -0
- moai_adk-0.8.2/src/moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +622 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +9 -11
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +9 -21
- moai_adk-0.8.2/src/moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
- moai_adk-0.8.2/src/moai_adk/templates/.github/workflows/moai-release-pipeline.yml +182 -0
- moai_adk-0.8.2/src/moai_adk/templates/.github/workflows/release.yml +49 -0
- moai_adk-0.8.2/src/moai_adk/templates/.github/workflows/tag-report.yml +261 -0
- moai_adk-0.8.2/src/moai_adk/templates/.github/workflows/tag-validation.yml +176 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/config.json +6 -1
- moai_adk-0.8.2/src/moai_adk/templates/.moai/hooks/install.sh +79 -0
- moai_adk-0.8.2/src/moai_adk/templates/.moai/hooks/pre-commit.sh +66 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/CLAUDE.md +39 -40
- moai_adk-0.8.2/src/moai_adk/templates/src/moai_adk/core/__init__.py +5 -0
- moai_adk-0.8.2/src/moai_adk/templates/src/moai_adk/core/tags/__init__.py +87 -0
- moai_adk-0.8.2/src/moai_adk/templates/src/moai_adk/core/tags/ci_validator.py +435 -0
- moai_adk-0.8.2/src/moai_adk/templates/src/moai_adk/core/tags/cli.py +283 -0
- moai_adk-0.8.2/src/moai_adk/templates/src/moai_adk/core/tags/pre_commit_validator.py +355 -0
- moai_adk-0.8.2/src/moai_adk/templates/src/moai_adk/core/tags/reporter.py +959 -0
- moai_adk-0.8.2/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/src/moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
- moai_adk-0.8.1/src/moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
- {moai_adk-0.8.1 → moai_adk-0.8.2}/.gitignore +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/LICENSE +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/__main__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/commands/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/commands/backup.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/commands/doctor.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/commands/init.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/commands/status.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/main.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/prompts/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/cli/prompts/init_prompts.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/config/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/config/migration.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/diagnostics/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/diagnostics/slash_commands.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/branch.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/branch_manager.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/checkpoint.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/commit.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/event_detector.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/git/manager.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/issue_creator.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/backup_utils.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/checker.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/detector.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/initializer.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/phase_executor.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/project/validator.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/quality/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/quality/trust_checker.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/quality/validators/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/quality/validators/base_validator.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template/backup.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template/config.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template/languages.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template/merger.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template/processor.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/core/template_engine.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/src/moai_adk/templates/.claude/hooks/alfred/shared}/handlers/user.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.gitignore +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/docs/quick-issue-creation-guide.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2/src/moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/project/product.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/project/structure.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/.moai/project/tech.md +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/templates/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/utils/__init__.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/src/moai_adk/utils/banner.py +0 -0
- {moai_adk-0.8.1 → moai_adk-0.8.2}/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.2
|
|
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
|
|
@@ -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.
|
|
@@ -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.
|
|
@@ -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:
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# @CODE:DOC-TAG-004 | TAG validation core module (Components 1, 2, 3 & 4)
|
|
3
|
+
"""TAG validation and management for MoAI-ADK
|
|
4
|
+
|
|
5
|
+
This module provides TAG validation functionality for:
|
|
6
|
+
- Pre-commit hook validation (Component 1)
|
|
7
|
+
- CI/CD pipeline validation (Component 2)
|
|
8
|
+
- Central validation system (Component 3)
|
|
9
|
+
- Documentation & Reporting (Component 4)
|
|
10
|
+
- TAG format checking
|
|
11
|
+
- Duplicate detection
|
|
12
|
+
- Orphan detection
|
|
13
|
+
- Chain integrity validation
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
# Component 1: Pre-commit validator
|
|
17
|
+
from .pre_commit_validator import (
|
|
18
|
+
PreCommitValidator,
|
|
19
|
+
ValidationResult,
|
|
20
|
+
ValidationError,
|
|
21
|
+
ValidationWarning,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
# Component 2: CI/CD validator
|
|
25
|
+
from .ci_validator import CIValidator
|
|
26
|
+
|
|
27
|
+
# Component 3: Central validation system
|
|
28
|
+
from .validator import (
|
|
29
|
+
ValidationConfig,
|
|
30
|
+
TagValidator,
|
|
31
|
+
DuplicateValidator,
|
|
32
|
+
OrphanValidator,
|
|
33
|
+
ChainValidator,
|
|
34
|
+
FormatValidator,
|
|
35
|
+
CentralValidator,
|
|
36
|
+
CentralValidationResult,
|
|
37
|
+
ValidationIssue,
|
|
38
|
+
ValidationStatistics,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Component 4: Documentation & Reporting
|
|
42
|
+
from .reporter import (
|
|
43
|
+
TagInventory,
|
|
44
|
+
TagMatrix,
|
|
45
|
+
InventoryGenerator,
|
|
46
|
+
MatrixGenerator,
|
|
47
|
+
CoverageAnalyzer,
|
|
48
|
+
StatisticsGenerator,
|
|
49
|
+
ReportFormatter,
|
|
50
|
+
ReportGenerator,
|
|
51
|
+
CoverageMetrics,
|
|
52
|
+
StatisticsReport,
|
|
53
|
+
ReportResult,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
__all__ = [
|
|
57
|
+
# Component 1
|
|
58
|
+
"PreCommitValidator",
|
|
59
|
+
"ValidationResult",
|
|
60
|
+
"ValidationError",
|
|
61
|
+
"ValidationWarning",
|
|
62
|
+
# Component 2
|
|
63
|
+
"CIValidator",
|
|
64
|
+
# Component 3
|
|
65
|
+
"ValidationConfig",
|
|
66
|
+
"TagValidator",
|
|
67
|
+
"DuplicateValidator",
|
|
68
|
+
"OrphanValidator",
|
|
69
|
+
"ChainValidator",
|
|
70
|
+
"FormatValidator",
|
|
71
|
+
"CentralValidator",
|
|
72
|
+
"CentralValidationResult",
|
|
73
|
+
"ValidationIssue",
|
|
74
|
+
"ValidationStatistics",
|
|
75
|
+
# Component 4
|
|
76
|
+
"TagInventory",
|
|
77
|
+
"TagMatrix",
|
|
78
|
+
"InventoryGenerator",
|
|
79
|
+
"MatrixGenerator",
|
|
80
|
+
"CoverageAnalyzer",
|
|
81
|
+
"StatisticsGenerator",
|
|
82
|
+
"ReportFormatter",
|
|
83
|
+
"ReportGenerator",
|
|
84
|
+
"CoverageMetrics",
|
|
85
|
+
"StatisticsReport",
|
|
86
|
+
"ReportResult",
|
|
87
|
+
]
|