moai-adk 0.5.6__tar.gz → 0.6.0__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.5.6 → moai_adk-0.6.0}/PKG-INFO +115 -2
- {moai_adk-0.5.6 → moai_adk-0.6.0}/README.md +114 -1
- {moai_adk-0.5.6 → moai_adk-0.6.0}/pyproject.toml +1 -1
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/__main__.py +1 -1
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/phase_executor.py +4 -1
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/commands/alfred/1-plan.md +13 -13
- moai_adk-0.6.0/src/moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +176 -0
- moai_adk-0.6.0/src/moai_adk/templates/.github/workflows/spec-issue-sync.yml +167 -0
- moai_adk-0.6.0/src/moai_adk/templates/.moai/memory/config-schema.md +444 -0
- moai_adk-0.6.0/src/moai_adk/templates/.moai/memory/gitflow-protection-policy.md +220 -0
- moai_adk-0.6.0/src/moai_adk/templates/.moai/memory/spec-metadata.md +356 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/.gitignore +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/LICENSE +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/commands/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/commands/backup.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/commands/doctor.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/commands/init.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/commands/status.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/commands/update.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/main.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/prompts/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/cli/prompts/init_prompts.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/diagnostics/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/diagnostics/slash_commands.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/branch.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/branch_manager.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/checkpoint.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/commit.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/event_detector.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/git/manager.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/backup_utils.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/checker.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/detector.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/initializer.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/project/validator.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/quality/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/quality/trust_checker.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/quality/validators/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/quality/validators/base_validator.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/template/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/template/backup.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/template/config.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/template/languages.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/template/merger.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/core/template/processor.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/commands/alfred/0-project.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/commands/alfred/2-run.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/README.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/core/context.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/core/tags.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/hooks/alfred/test_hook_output.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/settings.json +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.gitignore +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/config.json +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -0
- /moai_adk-0.5.6/src/moai_adk/templates/.moai/memory/config-schema.md → /moai_adk-0.6.0/src/moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/project/product.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/project/structure.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/.moai/project/tech.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/CLAUDE.md +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/templates/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/utils/__init__.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/src/moai_adk/utils/banner.py +0 -0
- {moai_adk-0.5.6 → moai_adk-0.6.0}/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.
|
|
3
|
+
Version: 0.6.0
|
|
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
|
|
@@ -68,7 +68,6 @@ If you've **already installed it and want to understand the concepts**, we recom
|
|
|
68
68
|
| What do Plan/Run/Sync commands do? | [Command Cheat Sheet](#command-cheat-sheet) |
|
|
69
69
|
| What are SPEC, TDD, TAG? | [5 Key Concepts](#5-key-concepts) |
|
|
70
70
|
| Tell me about agents/Skills | [Sub-agents & Skills Overview](#sub-agents--skills-overview) |
|
|
71
|
-
| I want a 4-week hands-on project | [Second Practice: Mini Kanban Board](#second-practice-mini-kanban-board) |
|
|
72
71
|
| Want to dive deeper? | [Additional Resources](#additional-resources) |
|
|
73
72
|
|
|
74
73
|
---
|
|
@@ -629,6 +628,119 @@ graph TD
|
|
|
629
628
|
|
|
630
629
|
---
|
|
631
630
|
|
|
631
|
+
## SPEC GitHub Issue Automation
|
|
632
|
+
|
|
633
|
+
MoAI-ADK now provides **automatic GitHub Issue synchronization** from SPEC documents, seamlessly integrating requirements with issue tracking in team mode.
|
|
634
|
+
|
|
635
|
+
### How It Works
|
|
636
|
+
|
|
637
|
+
When you create a SPEC document using `/alfred:1-plan` and push it to a feature branch:
|
|
638
|
+
|
|
639
|
+
1. **GitHub Actions Workflow** automatically triggers on PR events
|
|
640
|
+
2. **SPEC Metadata** (ID, version, status, priority) is extracted from YAML frontmatter
|
|
641
|
+
3. **GitHub Issue** is created with full SPEC content and metadata table
|
|
642
|
+
4. **PR Comment** is added with a link to the created issue
|
|
643
|
+
5. **Labels** are automatically applied based on priority (critical, high, medium, low)
|
|
644
|
+
|
|
645
|
+
### What Gets Synchronized
|
|
646
|
+
|
|
647
|
+
**From SPEC to GitHub Issue:**
|
|
648
|
+
- **SPEC ID**: Unique identifier (e.g., AUTH-001, USER-001)
|
|
649
|
+
- **Version**: Semantic versioning (v0.1.0, v1.0.0)
|
|
650
|
+
- **Status**: draft, in-review, in-progress, completed, stable
|
|
651
|
+
- **Priority**: critical, high, medium, low (becomes GitHub label)
|
|
652
|
+
- **Full Content**: EARS requirements, acceptance criteria, dependencies
|
|
653
|
+
|
|
654
|
+
**GitHub Issue Format:**
|
|
655
|
+
```markdown
|
|
656
|
+
# [SPEC-AUTH-001] User Authentication (v1.0.0)
|
|
657
|
+
|
|
658
|
+
## SPEC Metadata
|
|
659
|
+
|
|
660
|
+
| Field | Value |
|
|
661
|
+
|-------|-------|
|
|
662
|
+
| **ID** | AUTH-001 |
|
|
663
|
+
| **Version** | v1.0.0 |
|
|
664
|
+
| **Status** | in-progress |
|
|
665
|
+
| **Priority** | high |
|
|
666
|
+
|
|
667
|
+
## SPEC Document
|
|
668
|
+
|
|
669
|
+
[Full SPEC content from .moai/specs/SPEC-AUTH-001/spec.md]
|
|
670
|
+
|
|
671
|
+
---
|
|
672
|
+
|
|
673
|
+
📎 **Branch**: `feature/AUTH-001`
|
|
674
|
+
🔗 **PR**: #123
|
|
675
|
+
📝 **Auto-synced**: This issue is automatically synchronized from the SPEC document
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### Features
|
|
679
|
+
|
|
680
|
+
✅ **Automatic Issue Creation**: GitHub Issue created on every PR with SPEC file changes
|
|
681
|
+
✅ **Metadata Extraction**: ID, version, status, priority automatically parsed from YAML frontmatter
|
|
682
|
+
✅ **PR Integration**: Issue linked to PR via automatic comment
|
|
683
|
+
✅ **Label Management**: Priority-based labels (critical, high, medium, low) auto-applied
|
|
684
|
+
✅ **CodeRabbit Review** (local only): AI-powered SPEC quality validation in local development
|
|
685
|
+
|
|
686
|
+
### Setup Requirements
|
|
687
|
+
|
|
688
|
+
**GitHub Actions Workflow**: `.github/workflows/spec-issue-sync.yml`
|
|
689
|
+
**GitHub Issue Template**: `.github/ISSUE_TEMPLATE/spec.yml`
|
|
690
|
+
**GitHub Labels**: `spec`, `planning`, `critical`, `high`, `medium`, `low`
|
|
691
|
+
|
|
692
|
+
All templates are automatically installed with MoAI-ADK and synced during `moai-adk init`.
|
|
693
|
+
|
|
694
|
+
### CodeRabbit Integration (Local Only)
|
|
695
|
+
|
|
696
|
+
When working in your **local development environment**, CodeRabbit provides automatic SPEC quality review:
|
|
697
|
+
|
|
698
|
+
**What CodeRabbit Reviews:**
|
|
699
|
+
- ✅ All 7 required metadata fields (id, version, status, created, updated, author, priority)
|
|
700
|
+
- ✅ HISTORY section formatting and chronological order
|
|
701
|
+
- ✅ EARS requirements structure (Ubiquitous, Event-driven, State-driven, Constraints, Optional)
|
|
702
|
+
- ✅ Acceptance criteria in Given-When-Then format
|
|
703
|
+
- ✅ @TAG system compliance for traceability
|
|
704
|
+
|
|
705
|
+
**CodeRabbit Configuration**: `.coderabbit.yaml` (local only, not distributed in packages)
|
|
706
|
+
|
|
707
|
+
> **Note**: CodeRabbit integration is available only in local development environments. Package users receive core GitHub Issue automation without CodeRabbit review.
|
|
708
|
+
|
|
709
|
+
### Workflow Example
|
|
710
|
+
|
|
711
|
+
```bash
|
|
712
|
+
# 1. Create SPEC
|
|
713
|
+
/alfred:1-plan "User authentication feature"
|
|
714
|
+
|
|
715
|
+
# 2. SPEC file created at .moai/specs/SPEC-AUTH-001/spec.md
|
|
716
|
+
# 3. Feature branch created: feature/SPEC-AUTH-001
|
|
717
|
+
# 4. Draft PR created (team mode)
|
|
718
|
+
|
|
719
|
+
# 5. GitHub Actions automatically:
|
|
720
|
+
# - Parses SPEC metadata
|
|
721
|
+
# - Creates GitHub Issue #45
|
|
722
|
+
# - Adds PR comment: "✅ SPEC GitHub Issue Created - Issue: #45"
|
|
723
|
+
# - Applies labels: spec, planning, high
|
|
724
|
+
|
|
725
|
+
# 6. CodeRabbit reviews SPEC (local only):
|
|
726
|
+
# - Validates metadata
|
|
727
|
+
# - Checks EARS requirements
|
|
728
|
+
# - Provides quality score
|
|
729
|
+
|
|
730
|
+
# 7. Continue with TDD implementation
|
|
731
|
+
/alfred:2-run AUTH-001
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
### Benefits
|
|
735
|
+
|
|
736
|
+
1. **Centralized Tracking**: All SPEC requirements tracked as GitHub Issues
|
|
737
|
+
2. **Team Visibility**: Non-technical stakeholders can follow progress via Issues
|
|
738
|
+
3. **Automated Workflow**: No manual issue creation—fully automated from SPEC to Issue
|
|
739
|
+
4. **Traceability**: Direct link between SPEC files, Issues, PRs, and implementation
|
|
740
|
+
5. **Quality Assurance**: CodeRabbit validates SPEC quality before implementation (local only)
|
|
741
|
+
|
|
742
|
+
---
|
|
743
|
+
|
|
632
744
|
## 5 Key Concepts
|
|
633
745
|
|
|
634
746
|
MoAI-ADK consists of 5 key concepts. Each concept connects to the others, and together they create a powerful development system.
|
|
@@ -1467,6 +1579,7 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1467
1579
|
|
|
1468
1580
|
| Version | Key Features | Date |
|
|
1469
1581
|
| ----------- | ------------------------------------------------------------------------------------------------ | ---------- |
|
|
1582
|
+
| **v0.5.7** | 🎯 SPEC → GitHub Issue automation + CodeRabbit integration + Auto PR comments | 2025-10-27 |
|
|
1470
1583
|
| **v0.4.11** | ✨ TAG Guard system + CLAUDE.md formatting improvements + Code cleanup | 2025-10-23 |
|
|
1471
1584
|
| **v0.4.10** | 🔧 Hook robustness improvements + Bilingual documentation + Template language config | 2025-10-23 |
|
|
1472
1585
|
| **v0.4.9** | 🎯 Hook JSON schema validation fixes + Comprehensive tests (468/468 passing) | 2025-10-23 |
|
|
@@ -29,7 +29,6 @@ If you've **already installed it and want to understand the concepts**, we recom
|
|
|
29
29
|
| What do Plan/Run/Sync commands do? | [Command Cheat Sheet](#command-cheat-sheet) |
|
|
30
30
|
| What are SPEC, TDD, TAG? | [5 Key Concepts](#5-key-concepts) |
|
|
31
31
|
| Tell me about agents/Skills | [Sub-agents & Skills Overview](#sub-agents--skills-overview) |
|
|
32
|
-
| I want a 4-week hands-on project | [Second Practice: Mini Kanban Board](#second-practice-mini-kanban-board) |
|
|
33
32
|
| Want to dive deeper? | [Additional Resources](#additional-resources) |
|
|
34
33
|
|
|
35
34
|
---
|
|
@@ -590,6 +589,119 @@ graph TD
|
|
|
590
589
|
|
|
591
590
|
---
|
|
592
591
|
|
|
592
|
+
## SPEC GitHub Issue Automation
|
|
593
|
+
|
|
594
|
+
MoAI-ADK now provides **automatic GitHub Issue synchronization** from SPEC documents, seamlessly integrating requirements with issue tracking in team mode.
|
|
595
|
+
|
|
596
|
+
### How It Works
|
|
597
|
+
|
|
598
|
+
When you create a SPEC document using `/alfred:1-plan` and push it to a feature branch:
|
|
599
|
+
|
|
600
|
+
1. **GitHub Actions Workflow** automatically triggers on PR events
|
|
601
|
+
2. **SPEC Metadata** (ID, version, status, priority) is extracted from YAML frontmatter
|
|
602
|
+
3. **GitHub Issue** is created with full SPEC content and metadata table
|
|
603
|
+
4. **PR Comment** is added with a link to the created issue
|
|
604
|
+
5. **Labels** are automatically applied based on priority (critical, high, medium, low)
|
|
605
|
+
|
|
606
|
+
### What Gets Synchronized
|
|
607
|
+
|
|
608
|
+
**From SPEC to GitHub Issue:**
|
|
609
|
+
- **SPEC ID**: Unique identifier (e.g., AUTH-001, USER-001)
|
|
610
|
+
- **Version**: Semantic versioning (v0.1.0, v1.0.0)
|
|
611
|
+
- **Status**: draft, in-review, in-progress, completed, stable
|
|
612
|
+
- **Priority**: critical, high, medium, low (becomes GitHub label)
|
|
613
|
+
- **Full Content**: EARS requirements, acceptance criteria, dependencies
|
|
614
|
+
|
|
615
|
+
**GitHub Issue Format:**
|
|
616
|
+
```markdown
|
|
617
|
+
# [SPEC-AUTH-001] User Authentication (v1.0.0)
|
|
618
|
+
|
|
619
|
+
## SPEC Metadata
|
|
620
|
+
|
|
621
|
+
| Field | Value |
|
|
622
|
+
|-------|-------|
|
|
623
|
+
| **ID** | AUTH-001 |
|
|
624
|
+
| **Version** | v1.0.0 |
|
|
625
|
+
| **Status** | in-progress |
|
|
626
|
+
| **Priority** | high |
|
|
627
|
+
|
|
628
|
+
## SPEC Document
|
|
629
|
+
|
|
630
|
+
[Full SPEC content from .moai/specs/SPEC-AUTH-001/spec.md]
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
634
|
+
📎 **Branch**: `feature/AUTH-001`
|
|
635
|
+
🔗 **PR**: #123
|
|
636
|
+
📝 **Auto-synced**: This issue is automatically synchronized from the SPEC document
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
### Features
|
|
640
|
+
|
|
641
|
+
✅ **Automatic Issue Creation**: GitHub Issue created on every PR with SPEC file changes
|
|
642
|
+
✅ **Metadata Extraction**: ID, version, status, priority automatically parsed from YAML frontmatter
|
|
643
|
+
✅ **PR Integration**: Issue linked to PR via automatic comment
|
|
644
|
+
✅ **Label Management**: Priority-based labels (critical, high, medium, low) auto-applied
|
|
645
|
+
✅ **CodeRabbit Review** (local only): AI-powered SPEC quality validation in local development
|
|
646
|
+
|
|
647
|
+
### Setup Requirements
|
|
648
|
+
|
|
649
|
+
**GitHub Actions Workflow**: `.github/workflows/spec-issue-sync.yml`
|
|
650
|
+
**GitHub Issue Template**: `.github/ISSUE_TEMPLATE/spec.yml`
|
|
651
|
+
**GitHub Labels**: `spec`, `planning`, `critical`, `high`, `medium`, `low`
|
|
652
|
+
|
|
653
|
+
All templates are automatically installed with MoAI-ADK and synced during `moai-adk init`.
|
|
654
|
+
|
|
655
|
+
### CodeRabbit Integration (Local Only)
|
|
656
|
+
|
|
657
|
+
When working in your **local development environment**, CodeRabbit provides automatic SPEC quality review:
|
|
658
|
+
|
|
659
|
+
**What CodeRabbit Reviews:**
|
|
660
|
+
- ✅ All 7 required metadata fields (id, version, status, created, updated, author, priority)
|
|
661
|
+
- ✅ HISTORY section formatting and chronological order
|
|
662
|
+
- ✅ EARS requirements structure (Ubiquitous, Event-driven, State-driven, Constraints, Optional)
|
|
663
|
+
- ✅ Acceptance criteria in Given-When-Then format
|
|
664
|
+
- ✅ @TAG system compliance for traceability
|
|
665
|
+
|
|
666
|
+
**CodeRabbit Configuration**: `.coderabbit.yaml` (local only, not distributed in packages)
|
|
667
|
+
|
|
668
|
+
> **Note**: CodeRabbit integration is available only in local development environments. Package users receive core GitHub Issue automation without CodeRabbit review.
|
|
669
|
+
|
|
670
|
+
### Workflow Example
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
# 1. Create SPEC
|
|
674
|
+
/alfred:1-plan "User authentication feature"
|
|
675
|
+
|
|
676
|
+
# 2. SPEC file created at .moai/specs/SPEC-AUTH-001/spec.md
|
|
677
|
+
# 3. Feature branch created: feature/SPEC-AUTH-001
|
|
678
|
+
# 4. Draft PR created (team mode)
|
|
679
|
+
|
|
680
|
+
# 5. GitHub Actions automatically:
|
|
681
|
+
# - Parses SPEC metadata
|
|
682
|
+
# - Creates GitHub Issue #45
|
|
683
|
+
# - Adds PR comment: "✅ SPEC GitHub Issue Created - Issue: #45"
|
|
684
|
+
# - Applies labels: spec, planning, high
|
|
685
|
+
|
|
686
|
+
# 6. CodeRabbit reviews SPEC (local only):
|
|
687
|
+
# - Validates metadata
|
|
688
|
+
# - Checks EARS requirements
|
|
689
|
+
# - Provides quality score
|
|
690
|
+
|
|
691
|
+
# 7. Continue with TDD implementation
|
|
692
|
+
/alfred:2-run AUTH-001
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
### Benefits
|
|
696
|
+
|
|
697
|
+
1. **Centralized Tracking**: All SPEC requirements tracked as GitHub Issues
|
|
698
|
+
2. **Team Visibility**: Non-technical stakeholders can follow progress via Issues
|
|
699
|
+
3. **Automated Workflow**: No manual issue creation—fully automated from SPEC to Issue
|
|
700
|
+
4. **Traceability**: Direct link between SPEC files, Issues, PRs, and implementation
|
|
701
|
+
5. **Quality Assurance**: CodeRabbit validates SPEC quality before implementation (local only)
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
593
705
|
## 5 Key Concepts
|
|
594
706
|
|
|
595
707
|
MoAI-ADK consists of 5 key concepts. Each concept connects to the others, and together they create a powerful development system.
|
|
@@ -1428,6 +1540,7 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
1428
1540
|
|
|
1429
1541
|
| Version | Key Features | Date |
|
|
1430
1542
|
| ----------- | ------------------------------------------------------------------------------------------------ | ---------- |
|
|
1543
|
+
| **v0.5.7** | 🎯 SPEC → GitHub Issue automation + CodeRabbit integration + Auto PR comments | 2025-10-27 |
|
|
1431
1544
|
| **v0.4.11** | ✨ TAG Guard system + CLAUDE.md formatting improvements + Code cleanup | 2025-10-23 |
|
|
1432
1545
|
| **v0.4.10** | 🔧 Hook robustness improvements + Bilingual documentation + Template language config | 2025-10-23 |
|
|
1433
1546
|
| **v0.4.9** | 🎯 Hook JSON schema validation fixes + Comprehensive tests (468/468 passing) | 2025-10-23 |
|
|
@@ -38,7 +38,7 @@ def show_logo() -> None:
|
|
|
38
38
|
console.print(__version__, style="cyan bold")
|
|
39
39
|
console.print()
|
|
40
40
|
console.print(" Tip: Run ", style="yellow", end="")
|
|
41
|
-
console.print("
|
|
41
|
+
console.print("uv run moai-adk --help", style="cyan", end="")
|
|
42
42
|
console.print(" to see available commands", style="yellow")
|
|
43
43
|
|
|
44
44
|
|
|
@@ -191,7 +191,10 @@ class PhaseExecutor:
|
|
|
191
191
|
# Ensure project section exists and set defaults
|
|
192
192
|
if "project" not in config:
|
|
193
193
|
config["project"] = {}
|
|
194
|
-
|
|
194
|
+
# Type guard for mypy
|
|
195
|
+
project_config = config["project"]
|
|
196
|
+
if isinstance(project_config, dict):
|
|
197
|
+
project_config["optimized"] = False # Default value
|
|
195
198
|
|
|
196
199
|
# Write config.json
|
|
197
200
|
config_path = project_path / ".moai" / "config.json"
|
|
@@ -5,19 +5,19 @@ description: "Planning (brainstorming, plan writing, design discussion) + Branch
|
|
|
5
5
|
# - ko: "계획 수립 (브레인스토밍, 설계 논의) + 브랜치/PR 생성"
|
|
6
6
|
# - ja: "計画策定(ブレインストーミング、設計議論)+ ブランチ/PR作成"
|
|
7
7
|
# - zh: "规划(头脑风暴、设计讨论)+ 分支/PR创建"
|
|
8
|
-
argument-hint:
|
|
8
|
+
argument-hint: Title 1 Title 2 ... | SPEC-ID modifications
|
|
9
9
|
allowed-tools:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
- Read
|
|
11
|
+
- Write
|
|
12
|
+
- Edit
|
|
13
|
+
- MultiEdit
|
|
14
|
+
- Grep
|
|
15
|
+
- Glob
|
|
16
|
+
- TodoWrite
|
|
17
|
+
- Bash(git:*)
|
|
18
|
+
- Bash(gh:*)
|
|
19
|
+
- Bash(rg:*)
|
|
20
|
+
- Bash(mkdir:*)
|
|
21
21
|
---
|
|
22
22
|
|
|
23
23
|
# 🏗️ MoAI-ADK Step 1: Establish a plan (Plan) - Always make a plan first and then proceed.
|
|
@@ -29,7 +29,7 @@ allowed-tools:
|
|
|
29
29
|
|
|
30
30
|
**Plan for**: $ARGUMENTS
|
|
31
31
|
|
|
32
|
-
## 💡 Planning philosophy:
|
|
32
|
+
## 💡 Planning philosophy: "Always make a plan first and then proceed."
|
|
33
33
|
|
|
34
34
|
`/alfred:1-plan` is a general-purpose command that **creates a plan**, rather than simply “creating” a SPEC document.
|
|
35
35
|
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
name: 📋 SPEC Document
|
|
2
|
+
description: Create a new SPEC document for feature planning
|
|
3
|
+
title: "[SPEC-] "
|
|
4
|
+
labels: ["spec", "planning"]
|
|
5
|
+
assignees: []
|
|
6
|
+
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
## 📋 SPEC Metadata
|
|
12
|
+
|
|
13
|
+
Fill out the SPEC details below. This will be synchronized with the SPEC document and GitHub Issue.
|
|
14
|
+
|
|
15
|
+
- type: input
|
|
16
|
+
id: spec-id
|
|
17
|
+
attributes:
|
|
18
|
+
label: SPEC ID
|
|
19
|
+
description: "Format: DOMAIN-###. Example: AUTH-001, API-DESIGN-001"
|
|
20
|
+
placeholder: "AUTH-001"
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- type: input
|
|
25
|
+
id: spec-title
|
|
26
|
+
attributes:
|
|
27
|
+
label: SPEC Title
|
|
28
|
+
description: "Brief description of the specification"
|
|
29
|
+
placeholder: "JWT-based authentication system"
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
- type: dropdown
|
|
34
|
+
id: priority
|
|
35
|
+
attributes:
|
|
36
|
+
label: Priority
|
|
37
|
+
description: "Feature priority level"
|
|
38
|
+
options:
|
|
39
|
+
- "critical"
|
|
40
|
+
- "high"
|
|
41
|
+
- "medium"
|
|
42
|
+
- "low"
|
|
43
|
+
validations:
|
|
44
|
+
required: true
|
|
45
|
+
|
|
46
|
+
- type: dropdown
|
|
47
|
+
id: category
|
|
48
|
+
attributes:
|
|
49
|
+
label: Category
|
|
50
|
+
description: "SPEC category"
|
|
51
|
+
options:
|
|
52
|
+
- "API"
|
|
53
|
+
- "Backend"
|
|
54
|
+
- "Frontend"
|
|
55
|
+
- "Infrastructure"
|
|
56
|
+
- "Security"
|
|
57
|
+
- "Testing"
|
|
58
|
+
- "DevOps"
|
|
59
|
+
- "Documentation"
|
|
60
|
+
- "Performance"
|
|
61
|
+
- "Other"
|
|
62
|
+
validations:
|
|
63
|
+
required: true
|
|
64
|
+
|
|
65
|
+
- type: textarea
|
|
66
|
+
id: ubiquitous-requirements
|
|
67
|
+
attributes:
|
|
68
|
+
label: "Ubiquitous Requirements"
|
|
69
|
+
description: "Statements that apply universally to the system"
|
|
70
|
+
placeholder: |
|
|
71
|
+
- The system must provide JWT-based authentication
|
|
72
|
+
- The system must support token expiration
|
|
73
|
+
value: "### Ubiquitous\n"
|
|
74
|
+
validations:
|
|
75
|
+
required: true
|
|
76
|
+
|
|
77
|
+
- type: textarea
|
|
78
|
+
id: event-requirements
|
|
79
|
+
attributes:
|
|
80
|
+
label: "Event-driven Requirements (WHEN)"
|
|
81
|
+
description: "Event-triggered requirements in EARS format"
|
|
82
|
+
placeholder: |
|
|
83
|
+
- WHEN the user submits login credentials, the system must validate them against the database
|
|
84
|
+
- WHEN credentials are valid, the system must issue a JWT token with expiration
|
|
85
|
+
value: "### Event-driven (WHEN)\n"
|
|
86
|
+
validations:
|
|
87
|
+
required: false
|
|
88
|
+
|
|
89
|
+
- type: textarea
|
|
90
|
+
id: state-requirements
|
|
91
|
+
attributes:
|
|
92
|
+
label: "State-driven Requirements (WHILE)"
|
|
93
|
+
description: "State-based requirements in EARS format"
|
|
94
|
+
placeholder: |
|
|
95
|
+
- WHILE the token is unexpired, the system must allow access to protected resources
|
|
96
|
+
- WHILE the user is logged in, the system must track the session
|
|
97
|
+
value: "### State-driven (WHILE)\n"
|
|
98
|
+
validations:
|
|
99
|
+
required: false
|
|
100
|
+
|
|
101
|
+
- type: textarea
|
|
102
|
+
id: optional-requirements
|
|
103
|
+
attributes:
|
|
104
|
+
label: "Optional Requirements (WHERE)"
|
|
105
|
+
description: "Optional features and capabilities"
|
|
106
|
+
placeholder: |
|
|
107
|
+
- WHERE the user requests token refresh, the system can issue a new token
|
|
108
|
+
- WHERE OAuth2 is available, the system can support social login
|
|
109
|
+
value: "### Optional (WHERE)\n"
|
|
110
|
+
validations:
|
|
111
|
+
required: false
|
|
112
|
+
|
|
113
|
+
- type: textarea
|
|
114
|
+
id: constraints
|
|
115
|
+
attributes:
|
|
116
|
+
label: "Constraints (IF)"
|
|
117
|
+
description: "System constraints and conditions"
|
|
118
|
+
placeholder: |
|
|
119
|
+
- IF the token has expired, the system must return 401 Unauthorized
|
|
120
|
+
- IF the password is incorrect, the system must reject the login attempt
|
|
121
|
+
value: "### Constraints (IF)\n"
|
|
122
|
+
validations:
|
|
123
|
+
required: false
|
|
124
|
+
|
|
125
|
+
- type: textarea
|
|
126
|
+
id: acceptance-criteria
|
|
127
|
+
attributes:
|
|
128
|
+
label: "Acceptance Criteria (Given-When-Then)"
|
|
129
|
+
description: "At least 2-3 test scenarios"
|
|
130
|
+
placeholder: |
|
|
131
|
+
**Scenario 1: Successful Login**
|
|
132
|
+
- Given a user with valid credentials exists
|
|
133
|
+
- When the user submits their credentials
|
|
134
|
+
- Then the system returns a valid JWT token
|
|
135
|
+
|
|
136
|
+
**Scenario 2: Token Expiration**
|
|
137
|
+
- Given a user with an expired token
|
|
138
|
+
- When the user tries to access a protected resource
|
|
139
|
+
- Then the system returns a 401 Unauthorized response
|
|
140
|
+
value: "## Acceptance Criteria\n\n"
|
|
141
|
+
validations:
|
|
142
|
+
required: true
|
|
143
|
+
|
|
144
|
+
- type: textarea
|
|
145
|
+
id: dependencies
|
|
146
|
+
attributes:
|
|
147
|
+
label: "Dependencies"
|
|
148
|
+
description: "Related SPECs, tasks, or blockers"
|
|
149
|
+
placeholder: |
|
|
150
|
+
- Related: SPEC-SECURITY-001
|
|
151
|
+
- Blocks: SPEC-API-DESIGN-001
|
|
152
|
+
- Depends on: SPEC-DATABASE-001
|
|
153
|
+
validations:
|
|
154
|
+
required: false
|
|
155
|
+
|
|
156
|
+
- type: textarea
|
|
157
|
+
id: notes
|
|
158
|
+
attributes:
|
|
159
|
+
label: "Additional Notes"
|
|
160
|
+
description: "Technical notes, assumptions, or context"
|
|
161
|
+
placeholder: |
|
|
162
|
+
- Consider token refresh token rotation
|
|
163
|
+
- JWT payload should be minimal for performance
|
|
164
|
+
- Consider rate limiting on login attempts
|
|
165
|
+
validations:
|
|
166
|
+
required: false
|
|
167
|
+
|
|
168
|
+
- type: markdown
|
|
169
|
+
attributes:
|
|
170
|
+
value: |
|
|
171
|
+
## 📚 Reference
|
|
172
|
+
|
|
173
|
+
- **SPEC Metadata Guide**: See `.moai/memory/spec-metadata.md`
|
|
174
|
+
- **EARS Syntax Guide**: See `.moai/memory/development-guide.md`
|
|
175
|
+
- **Acceptance Criteria**: Use Given-When-Then (Gherkin) format
|
|
176
|
+
- **@TAG System**: @SPEC, @TEST, @CODE, @DOC traceability
|