moai-adk 0.4.5__tar.gz → 0.4.8__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.4.8/PKG-INFO +1553 -0
- moai_adk-0.4.8/README.md +1514 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/pyproject.toml +2 -2
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/__init__.py +1 -1
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/initializer.py +12 -5
- moai_adk-0.4.8/src/moai_adk/templates/.claude/agents/alfred/cc-manager.md +285 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/debug-helper.md +4 -5
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/doc-syncer.md +2 -2
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/git-manager.md +2 -2
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/implementation-planner.md +3 -3
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/project-manager.md +6 -6
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/quality-gate.md +4 -6
- moai_adk-0.4.8/src/moai_adk/templates/.claude/agents/alfred/skill-factory.md +829 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/spec-builder.md +2 -2
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/tag-agent.md +2 -2
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +3 -3
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/agents/alfred/trust-checker.md +5 -5
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/commands/alfred/0-project.md +98 -42
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/commands/alfred/1-plan.md +7 -7
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/commands/alfred/2-run.md +36 -36
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/commands/alfred/3-sync.md +10 -10
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +14 -1
- moai_adk-0.4.8/src/moai_adk/templates/.claude/hooks/alfred/core/__init__.py +167 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/handlers/session.py +8 -9
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +6 -6
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/handlers/user.py +5 -4
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +1 -1
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +1 -1
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +1 -1
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/settings.json +42 -2
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +122 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +480 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +257 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +120 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +249 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +278 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +287 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +232 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +179 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +296 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +243 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +271 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +290 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +698 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1107 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1533 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +122 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +113 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +307 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +125 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +431 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +124 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +123 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +127 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +482 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +278 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +477 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +560 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +583 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +526 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +465 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +328 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +312 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +285 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +278 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +303 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +129 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +1300 -0
- moai_adk-0.4.8/src/moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +161 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/CLAUDE.md +121 -81
- moai_adk-0.4.5/PKG-INFO +0 -369
- moai_adk-0.4.5/README.md +0 -330
- moai_adk-0.4.5/src/moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -1051
- moai_adk-0.4.5/src/moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -85
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +0 -112
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -103
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -95
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -97
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -90
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -95
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -93
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -105
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -97
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -102
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -104
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -96
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -112
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -90
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -94
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -93
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -86
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -86
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -102
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -96
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -98
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -96
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -100
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -99
- moai_adk-0.4.5/src/moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -96
- {moai_adk-0.4.5 → moai_adk-0.4.8}/.gitignore +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/LICENSE +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/__main__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/commands/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/commands/backup.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/commands/doctor.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/commands/init.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/commands/status.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/commands/update.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/main.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/prompts/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/cli/prompts/init_prompts.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/diagnostics/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/diagnostics/slash_commands.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/branch.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/branch_manager.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/checkpoint.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/commit.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/event_detector.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/git/manager.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/backup_utils.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/checker.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/detector.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/phase_executor.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/project/validator.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/quality/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/quality/trust_checker.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/quality/validators/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/quality/validators/base_validator.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/template/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/template/backup.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/template/config.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/template/languages.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/template/merger.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/core/template/processor.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/README.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/core/context.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.gitignore +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/config.json +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/memory/development-guide.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/memory/spec-metadata.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/project/product.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/project/structure.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/.moai/project/tech.md +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/templates/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/utils/__init__.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/utils/banner.py +0 -0
- {moai_adk-0.4.5 → moai_adk-0.4.8}/src/moai_adk/utils/logger.py +0 -0
moai_adk-0.4.8/PKG-INFO
ADDED
|
@@ -0,0 +1,1553 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: moai-adk
|
|
3
|
+
Version: 0.4.8
|
|
4
|
+
Summary: MoAI Agentic Development Kit - SPEC-First TDD with Alfred SuperAgent & Complete Skills v2.0
|
|
5
|
+
Project-URL: Homepage, https://github.com/modu-ai/moai-adk
|
|
6
|
+
Project-URL: Repository, https://github.com/modu-ai/moai-adk
|
|
7
|
+
Project-URL: Issues, https://github.com/modu-ai/moai-adk/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/modu-ai/moai-adk/releases
|
|
9
|
+
Author-email: MoAI Team <support@moduai.kr>
|
|
10
|
+
License: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: agentic,ai,alfred,claude,development,spec-first,tdd,toolkit
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
|
+
Classifier: Topic :: Software Development :: Testing
|
|
21
|
+
Requires-Python: >=3.13
|
|
22
|
+
Requires-Dist: click>=8.1.0
|
|
23
|
+
Requires-Dist: gitpython>=3.1.45
|
|
24
|
+
Requires-Dist: packaging>=21.0
|
|
25
|
+
Requires-Dist: pyfiglet>=1.0.2
|
|
26
|
+
Requires-Dist: questionary>=2.0.0
|
|
27
|
+
Requires-Dist: rich>=13.0.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: mypy>=1.7.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest>=8.4.2; extra == 'dev'
|
|
33
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
35
|
+
Provides-Extra: security
|
|
36
|
+
Requires-Dist: bandit>=1.8.0; extra == 'security'
|
|
37
|
+
Requires-Dist: pip-audit>=2.7.0; extra == 'security'
|
|
38
|
+
Description-Content-Type: text/markdown
|
|
39
|
+
|
|
40
|
+
# MoAI-ADK (Agentic Development Kit)
|
|
41
|
+
|
|
42
|
+
[English](README.md) | [한국어](README.ko.md) | [ไทย](README.th.md) | [日本語](README.ja.md) | [中文](README.zh.md) | [हिन्दी](README.hi.md)
|
|
43
|
+
|
|
44
|
+
[](https://pypi.org/project/moai-adk/)
|
|
45
|
+
[](https://opensource.org/licenses/MIT)
|
|
46
|
+
[](https://www.python.org/)
|
|
47
|
+
[](https://github.com/modu-ai/moai-adk/actions/workflows/moai-gitflow.yml)
|
|
48
|
+
[](https://codecov.io/gh/modu-ai/moai-adk)
|
|
49
|
+
[](https://github.com/modu-ai/moai-adk)
|
|
50
|
+
|
|
51
|
+
> **MoAI-ADK delivers a seamless development workflow that naturally connects SPEC → TEST (TDD) → CODE → DOCUMENTATION with AI.**
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 1. MoAI-ADK at a Glance
|
|
56
|
+
|
|
57
|
+
MoAI-ADK transforms AI-powered development with three core principles. Use the navigation below to jump to the section that matches your needs.
|
|
58
|
+
|
|
59
|
+
If you're **new to MoAI-ADK**, start with "What is MoAI-ADK?".
|
|
60
|
+
If you want to **get started quickly**, jump straight to "5-Minute Quick Start".
|
|
61
|
+
If you've **already installed it and want to understand the concepts**, we recommend "5 Key Concepts".
|
|
62
|
+
|
|
63
|
+
| Question | Jump To |
|
|
64
|
+
| ---------------------------------- | ------------------------------------------------------------ |
|
|
65
|
+
| First time here—what is it? | [What is MoAI-ADK?](#what-is-moai-adk) |
|
|
66
|
+
| How do I get started? | [5-Minute Quick Start](#5-minute-quick-start) |
|
|
67
|
+
| What's the basic flow? | [Core Workflow (0 → 3)](#core-workflow-0--3) |
|
|
68
|
+
| What do Plan/Run/Sync commands do? | [Command Cheat Sheet](#command-cheat-sheet) |
|
|
69
|
+
| What are SPEC, TDD, TAG? | [5 Key Concepts](#5-key-concepts) |
|
|
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
|
+
| Want to dive deeper? | [Additional Resources](#additional-resources) |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## What is MoAI-ADK?
|
|
77
|
+
|
|
78
|
+
### The Problem: Trust Crisis in AI Development
|
|
79
|
+
|
|
80
|
+
Today, countless developers want help from Claude or ChatGPT, but can't shake one fundamental doubt: **"Can I really trust the code this AI generates?"**
|
|
81
|
+
|
|
82
|
+
The reality looks like this. Ask an AI to "build a login feature" and you'll get syntactically perfect code. But these problems keep repeating:
|
|
83
|
+
|
|
84
|
+
- **Unclear Requirements**: The basic question "What exactly should we build?" remains unanswered. Email/password login? OAuth? 2FA? Everything relies on guessing.
|
|
85
|
+
- **Missing Tests**: Most AIs only test the "happy path". Wrong password? Network error? Three months later, bugs explode in production.
|
|
86
|
+
- **Documentation Drift**: Code gets modified but docs stay the same. The question "Why is this code here?" keeps repeating.
|
|
87
|
+
- **Context Loss**: Even within the same project, you have to explain everything from scratch each time. Project structure, decision rationale, previous attempts—nothing gets recorded.
|
|
88
|
+
- **Impact Tracking Impossible**: When requirements change, you can't track which code is affected.
|
|
89
|
+
|
|
90
|
+
### The Solution: SPEC-First TDD with Alfred SuperAgent
|
|
91
|
+
|
|
92
|
+
**MoAI-ADK** (MoAI Agentic Development Kit) is an open-source framework designed to **systematically solve** these problems.
|
|
93
|
+
|
|
94
|
+
The core principle is simple yet powerful:
|
|
95
|
+
|
|
96
|
+
> **"No tests without code, no SPEC without tests"**
|
|
97
|
+
|
|
98
|
+
More precisely, it's the reverse order:
|
|
99
|
+
|
|
100
|
+
> **"SPEC comes first. No tests without SPEC. No complete documentation without tests and code."**
|
|
101
|
+
|
|
102
|
+
When you follow this order, magical things happen:
|
|
103
|
+
|
|
104
|
+
**1️⃣ Clear Requirements**
|
|
105
|
+
Write SPECs first with the `/alfred:1-plan` command. A vague request like "login feature" transforms into **clear requirements** like "WHEN valid credentials are provided, the system SHALL issue a JWT token". Alfred's spec-builder uses EARS syntax to create professional SPECs in just 3 minutes.
|
|
106
|
+
|
|
107
|
+
**2️⃣ Test Guarantee**
|
|
108
|
+
`/alfred:2-run` automatically performs Test-Driven Development (TDD). It proceeds in RED (failing test) → GREEN (minimal implementation) → REFACTOR (cleanup) order, **guaranteeing 85%+ test coverage**. No more "testing later". Tests drive code creation.
|
|
109
|
+
|
|
110
|
+
**3️⃣ Automatic Documentation Sync**
|
|
111
|
+
A single `/alfred:3-sync` command **synchronizes** all code, tests, and documentation. README, CHANGELOG, API docs, and Living Documents all update automatically. Six months later, code and docs still match.
|
|
112
|
+
|
|
113
|
+
**4️⃣ Tracking with @TAG System**
|
|
114
|
+
Every piece of code, test, and documentation gets a `@TAG:ID`. When requirements change later, one command—`rg "@SPEC:AUTH-001"`—**finds all related tests, implementations, and docs**. You gain confidence during refactoring.
|
|
115
|
+
|
|
116
|
+
**5️⃣ Alfred Remembers Context**
|
|
117
|
+
A team of AI agents collaborate to **remember** your project's structure, decision rationale, and work history. No need to repeat the same questions.
|
|
118
|
+
|
|
119
|
+
### MoAI-ADK's 3 Core Promises
|
|
120
|
+
|
|
121
|
+
For beginners to remember easily, MoAI-ADK's value simplifies to three things:
|
|
122
|
+
|
|
123
|
+
**First, SPEC comes before code**
|
|
124
|
+
Start by clearly defining what to build. Writing SPEC helps discover problems before implementation. Communication costs with teammates drop dramatically.
|
|
125
|
+
|
|
126
|
+
**Second, tests drive code (TDD)**
|
|
127
|
+
Write tests before implementation (RED). Implement minimally to pass tests (GREEN). Then clean up the code (REFACTOR). Result: fewer bugs, confidence in refactoring, code anyone can understand.
|
|
128
|
+
|
|
129
|
+
**Third, documentation and code always match**
|
|
130
|
+
One `/alfred:3-sync` command auto-updates all documentation. README, CHANGELOG, API docs, and Living Documents always sync with code. No more despair when modifying six-month-old code.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Why Do You Need It?
|
|
135
|
+
|
|
136
|
+
### Real Challenges in AI Development
|
|
137
|
+
|
|
138
|
+
Modern AI-powered development faces various challenges. MoAI-ADK **systematically solves** all these problems:
|
|
139
|
+
|
|
140
|
+
| Concern | Traditional Approach Problem | MoAI-ADK Solution |
|
|
141
|
+
| ------------------------------- | -------------------------------------------------- | ------------------------------------------------------------- |
|
|
142
|
+
| "Can't trust AI code" | Implementation without tests, unclear verification | Enforces SPEC → TEST → CODE order, guarantees 85%+ coverage |
|
|
143
|
+
| "Repeating same explanations" | Context loss, unrecorded project history | Alfred remembers everything, 19 AI team members collaborate |
|
|
144
|
+
| "Hard to write prompts" | Don't know how to write good prompts | `/alfred` commands provide standardized prompts automatically |
|
|
145
|
+
| "Documentation always outdated" | Forget to update docs after code changes | `/alfred:3-sync` auto-syncs with one command |
|
|
146
|
+
| "Don't know what changed where" | Hard to search code, unclear intent | @TAG chain connects SPEC → TEST → CODE → DOC |
|
|
147
|
+
| "Team onboarding takes forever" | New members can't grasp code context | Reading SPEC makes intent immediately clear |
|
|
148
|
+
|
|
149
|
+
### Benefits You Can Experience Right Now
|
|
150
|
+
|
|
151
|
+
From the moment you adopt MoAI-ADK, you'll feel:
|
|
152
|
+
|
|
153
|
+
- **Faster Development**: Clear SPEC reduces round-trip explanation time
|
|
154
|
+
- **Fewer Bugs**: SPEC-based tests catch issues early
|
|
155
|
+
- **Better Code Understanding**: @TAG and SPEC make intent immediately clear
|
|
156
|
+
- **Lower Maintenance Costs**: Code and docs always match
|
|
157
|
+
- **Efficient Team Collaboration**: Clear communication through SPEC and TAG
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 5-Minute Quick Start
|
|
162
|
+
|
|
163
|
+
Now let's start your first project with MoAI-ADK. Follow these 5 steps and in just **5 minutes** you'll have a project with SPEC, TDD, and documentation all connected.
|
|
164
|
+
|
|
165
|
+
### Step 1: Install uv (about 30 seconds)
|
|
166
|
+
|
|
167
|
+
First, install `uv`. `uv` is an ultra-fast Python package manager written in Rust. It's **10+ times faster** than traditional `pip` and works perfectly with MoAI-ADK.
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# macOS/Linux
|
|
171
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
172
|
+
|
|
173
|
+
# Windows (PowerShell)
|
|
174
|
+
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
175
|
+
|
|
176
|
+
# Verify installation
|
|
177
|
+
uv --version
|
|
178
|
+
# Output: uv 0.x.x
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Why uv?** MoAI-ADK is optimized to leverage uv's fast installation speed and stability. Perfect project isolation means no impact on other Python environments.
|
|
182
|
+
|
|
183
|
+
### Step 2: Install MoAI-ADK (about 1 minute)
|
|
184
|
+
|
|
185
|
+
Install MoAI-ADK as a global tool. This won't affect your project dependencies.
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Install in tool mode (recommended: runs in isolated environment)
|
|
189
|
+
uv tool install moai-adk
|
|
190
|
+
|
|
191
|
+
# Verify installation
|
|
192
|
+
moai-adk --version
|
|
193
|
+
# Output: MoAI-ADK v0.4.6
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Once installed, you can use the `moai-adk` command anywhere.
|
|
197
|
+
|
|
198
|
+
### Step 3: Create Project (about 1 minute)
|
|
199
|
+
|
|
200
|
+
**To start a new project:**
|
|
201
|
+
```bash
|
|
202
|
+
moai-adk init my-project
|
|
203
|
+
cd my-project
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**To add to an existing project:**
|
|
207
|
+
```bash
|
|
208
|
+
cd your-existing-project
|
|
209
|
+
moai-adk init .
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
This one command automatically generates:
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
my-project/
|
|
216
|
+
├── .moai/ # MoAI-ADK project configuration
|
|
217
|
+
│ ├── config.json
|
|
218
|
+
│ ├── project/ # Project information
|
|
219
|
+
│ ├── specs/ # SPEC files
|
|
220
|
+
│ └── reports/ # Analysis reports
|
|
221
|
+
├── .claude/ # Claude Code automation
|
|
222
|
+
│ ├── agents/ # AI team
|
|
223
|
+
│ ├── commands/ # /alfred commands
|
|
224
|
+
│ ├── skills/ # Claude Skills
|
|
225
|
+
│ └── settings.json
|
|
226
|
+
├── src/ # Implementation code
|
|
227
|
+
├── tests/ # Test code
|
|
228
|
+
├── docs/ # Auto-generated documentation
|
|
229
|
+
└── README.md
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Step 4: Start Alfred in Claude Code (about 2 minutes)
|
|
233
|
+
|
|
234
|
+
Run Claude Code and invoke the Alfred SuperAgent:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Run Claude Code
|
|
238
|
+
claude
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Then enter this in Claude Code's command input:
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
/alfred:0-project
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
This command performs:
|
|
248
|
+
|
|
249
|
+
1. **Collect Project Info**: "Project name?", "Goals?", "Main language?"
|
|
250
|
+
2. **Auto-detect Tech Stack**: Automatically recognizes Python/JavaScript/Go, etc.
|
|
251
|
+
3. **Deploy Skill Packs**: Prepares necessary Skills for your project
|
|
252
|
+
4. **Generate Initial Report**: Project structure, suggested next steps
|
|
253
|
+
|
|
254
|
+
### Step 5: Write First SPEC (about 1 minute)
|
|
255
|
+
|
|
256
|
+
After project initialization completes, write your first feature as a SPEC:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
/alfred:1-plan "User registration feature"
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Automatically generated:
|
|
263
|
+
- `@SPEC:USER-001` - Unique ID assigned
|
|
264
|
+
- `.moai/specs/SPEC-USER-001/spec.md` - Professional SPEC in EARS format
|
|
265
|
+
- `feature/spec-user-001` - Git branch auto-created
|
|
266
|
+
|
|
267
|
+
### Step 6: TDD Implementation (about 3 minutes)
|
|
268
|
+
|
|
269
|
+
Once SPEC is written, implement using TDD:
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
/alfred:2-run USER-001
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
This command handles:
|
|
276
|
+
- 🔴 **RED**: Automatically write failing test (`@TEST:USER-001`)
|
|
277
|
+
- 🟢 **GREEN**: Minimal implementation to pass test (`@CODE:USER-001`)
|
|
278
|
+
- ♻️ **REFACTOR**: Improve code quality
|
|
279
|
+
|
|
280
|
+
### Step 7: Documentation Sync (about 1 minute)
|
|
281
|
+
|
|
282
|
+
Finally, auto-sync all documentation:
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
/alfred:3-sync
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Automatically generated/updated:
|
|
289
|
+
- Living Document (API documentation)
|
|
290
|
+
- README updates
|
|
291
|
+
- CHANGELOG generation
|
|
292
|
+
- @TAG chain validation
|
|
293
|
+
|
|
294
|
+
### Complete!
|
|
295
|
+
|
|
296
|
+
After these 7 steps, everything is ready:
|
|
297
|
+
|
|
298
|
+
✅ Requirements specification (SPEC)
|
|
299
|
+
✅ Test code (85%+ coverage)
|
|
300
|
+
✅ Implementation code (tracked with @TAG)
|
|
301
|
+
✅ API documentation (auto-generated)
|
|
302
|
+
✅ Change history (CHANGELOG)
|
|
303
|
+
✅ Git commit history (RED/GREEN/REFACTOR)
|
|
304
|
+
|
|
305
|
+
**Everything completes in 15 minutes!**
|
|
306
|
+
|
|
307
|
+
### Verify Generated Results
|
|
308
|
+
|
|
309
|
+
Check if the generated results were properly created:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
# 1. Check TAG chain (SPEC → TEST → CODE → DOC)
|
|
313
|
+
rg '@(SPEC|TEST|CODE):USER-001' -n
|
|
314
|
+
|
|
315
|
+
# 2. Run tests
|
|
316
|
+
pytest tests/ -v
|
|
317
|
+
|
|
318
|
+
# 3. Check generated documentation
|
|
319
|
+
cat docs/api/user.md
|
|
320
|
+
cat README.md
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
> 🔍 **Verification Command**: `moai-adk doctor` — Checks if Python/uv versions, `.moai/` structure, and agent/Skills configuration are all ready.
|
|
324
|
+
> ```bash
|
|
325
|
+
> moai-adk doctor
|
|
326
|
+
> ```
|
|
327
|
+
> All green checkmarks mean perfect readiness!
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Keeping MoAI-ADK Up-to-Date
|
|
332
|
+
|
|
333
|
+
### Check Version
|
|
334
|
+
```bash
|
|
335
|
+
# Check currently installed version
|
|
336
|
+
moai-adk --version
|
|
337
|
+
|
|
338
|
+
# Check latest version on PyPI
|
|
339
|
+
uv tool list # Check current version of moai-adk
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Upgrading
|
|
343
|
+
|
|
344
|
+
#### Method 1: MoAI-ADK Built-in Update Command (Simplest)
|
|
345
|
+
```bash
|
|
346
|
+
# MoAI-ADK's own update command - also updates agent/Skills templates
|
|
347
|
+
moai-adk update
|
|
348
|
+
|
|
349
|
+
# Apply new templates to project after update (optional)
|
|
350
|
+
moai-adk init .
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
#### Method 2: Upgrade with uv tool command
|
|
354
|
+
|
|
355
|
+
**Upgrade specific tool (recommended)**
|
|
356
|
+
```bash
|
|
357
|
+
# Upgrade only moai-adk to latest version
|
|
358
|
+
uv tool upgrade moai-adk
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Upgrade all installed tools**
|
|
362
|
+
```bash
|
|
363
|
+
# Upgrade all uv tool installations to latest versions
|
|
364
|
+
uv tool update
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
**Install specific version**
|
|
368
|
+
```bash
|
|
369
|
+
# Reinstall specific version (e.g., 0.4.2)
|
|
370
|
+
uv tool install moai-adk==0.4.2
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
### Verify After Update
|
|
374
|
+
```bash
|
|
375
|
+
# 1. Check installed version
|
|
376
|
+
moai-adk --version
|
|
377
|
+
|
|
378
|
+
# 2. Verify project works correctly
|
|
379
|
+
moai-adk doctor
|
|
380
|
+
|
|
381
|
+
# 3. Apply new templates to existing project (if needed)
|
|
382
|
+
cd your-project
|
|
383
|
+
moai-adk init . # Keeps existing code, updates only .moai/ structure and templates
|
|
384
|
+
|
|
385
|
+
# 4. Check updated features in Alfred
|
|
386
|
+
cd your-project
|
|
387
|
+
claude
|
|
388
|
+
/alfred:0-project # Verify new features like language selection
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
> 💡 **Tip**:
|
|
392
|
+
> - `moai-adk update`: Updates MoAI-ADK package version + syncs agent/Skills templates
|
|
393
|
+
> - `moai-adk init .`: Applies new templates to existing project (keeps code safe)
|
|
394
|
+
> - Running both commands completes a full update
|
|
395
|
+
> - When major updates (minor/major) release, run these procedures to utilize new agents/Skills
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Core Workflow (0 → 3)
|
|
400
|
+
|
|
401
|
+
Alfred iteratively develops projects with four commands.
|
|
402
|
+
|
|
403
|
+
```mermaid
|
|
404
|
+
%%{init: {'theme':'neutral'}}%%
|
|
405
|
+
graph TD
|
|
406
|
+
Start([User Request]) --> Init[0. Init<br/>/alfred:0-project]
|
|
407
|
+
Init --> Plan[1. Plan & SPEC<br/>/alfred:1-plan]
|
|
408
|
+
Plan --> Run[2. Run & TDD<br/>/alfred:2-run]
|
|
409
|
+
Run --> Sync[3. Sync & Docs<br/>/alfred:3-sync]
|
|
410
|
+
Sync --> Plan
|
|
411
|
+
Sync -.-> End([Release])
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### 0. INIT — Project Preparation
|
|
415
|
+
- Questions about project introduction, target, language, mode (locale)
|
|
416
|
+
- Auto-generates `.moai/config.json`, `.moai/project/*` 5 documents
|
|
417
|
+
- Language detection and recommended Skill Pack deployment (Foundation + Essentials + Domain/Language)
|
|
418
|
+
- Template cleanup, initial Git/backup checks
|
|
419
|
+
|
|
420
|
+
### 1. PLAN — Agree on What to Build
|
|
421
|
+
- Write SPEC with EARS template (includes `@SPEC:ID`)
|
|
422
|
+
- Organize Plan Board, implementation ideas, risk factors
|
|
423
|
+
- Auto-create branch/initial Draft PR in Team mode
|
|
424
|
+
|
|
425
|
+
### 2. RUN — Test-Driven Development (TDD)
|
|
426
|
+
- Phase 1 `implementation-planner`: Design libraries, folders, TAG layout
|
|
427
|
+
- Phase 2 `tdd-implementer`: RED (failing test) → GREEN (minimal implementation) → REFACTOR (cleanup)
|
|
428
|
+
- quality-gate verifies TRUST 5 principles, coverage changes
|
|
429
|
+
|
|
430
|
+
### 3. SYNC — Documentation & PR Organization
|
|
431
|
+
- Sync Living Document, README, CHANGELOG, etc.
|
|
432
|
+
- Validate TAG chain and recover orphan TAGs
|
|
433
|
+
- Generate Sync Report, transition Draft → Ready for Review, support `--auto-merge` option
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Command Cheat Sheet
|
|
438
|
+
|
|
439
|
+
| Command | What it does | Key Outputs |
|
|
440
|
+
| ------------------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
441
|
+
| `/alfred:0-project` | Collect project description, create config/docs, recommend Skills | `.moai/config.json`, `.moai/project/*`, initial report |
|
|
442
|
+
| `/alfred:1-plan <description>` | Analyze requirements, draft SPEC, write Plan Board | `.moai/specs/SPEC-*/spec.md`, plan/acceptance docs, feature branch |
|
|
443
|
+
| `/alfred:2-run <SPEC-ID>` | Execute TDD, test/implement/refactor, verify quality | `tests/`, `src/` implementation, quality report, TAG connection |
|
|
444
|
+
| `/alfred:3-sync` | Sync docs/README/CHANGELOG, organize TAG/PR status | `docs/`, `.moai/reports/sync-report.md`, Ready PR |
|
|
445
|
+
|
|
446
|
+
> ❗ All commands maintain **Phase 0 (optional) → Phase 1 → Phase 2 → Phase 3** cycle structure. Alfred automatically reports execution status and next-step suggestions.
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## 5 Key Concepts
|
|
451
|
+
|
|
452
|
+
MoAI-ADK consists of 5 key concepts. Each concept connects to the others, and together they create a powerful development system.
|
|
453
|
+
|
|
454
|
+
### Key Concept 1: SPEC-First (Requirements First)
|
|
455
|
+
|
|
456
|
+
**Metaphor**: Like building a house without an architect, you shouldn't code without a blueprint.
|
|
457
|
+
|
|
458
|
+
**Core Idea**: Before implementation, **clearly define "what to build"**. This isn't just documentation—it's an **executable spec** that both teams and AI can understand.
|
|
459
|
+
|
|
460
|
+
**EARS Syntax 5 Patterns**:
|
|
461
|
+
|
|
462
|
+
1. **Ubiquitous** (basic function): "The system SHALL provide JWT-based authentication"
|
|
463
|
+
2. **Event-driven** (conditional): "WHEN valid credentials are provided, the system SHALL issue a token"
|
|
464
|
+
3. **State-driven** (during state): "WHILE the user is authenticated, the system SHALL allow access to protected resources"
|
|
465
|
+
4. **Optional** (optional): "WHERE a refresh token exists, the system MAY issue a new token"
|
|
466
|
+
5. **Constraints** (constraints): "Token expiration time SHALL NOT exceed 15 minutes"
|
|
467
|
+
|
|
468
|
+
**How?** The `/alfred:1-plan` command automatically creates professional SPECs in EARS format.
|
|
469
|
+
|
|
470
|
+
**What You Get**:
|
|
471
|
+
- ✅ Clear requirements everyone on the team understands
|
|
472
|
+
- ✅ SPEC-based test cases (what to test is already defined)
|
|
473
|
+
- ✅ When requirements change, track all affected code with `@SPEC:ID` TAG
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
### Key Concept 2: TDD (Test-Driven Development)
|
|
478
|
+
|
|
479
|
+
**Metaphor**: Like finding the route after setting a destination, you set goals with tests, then write code.
|
|
480
|
+
|
|
481
|
+
**Core Idea**: Write tests **before** implementation. Like checking ingredients before cooking, this clarifies requirements before implementation.
|
|
482
|
+
|
|
483
|
+
**3-Step Cycle**:
|
|
484
|
+
|
|
485
|
+
1. **🔴 RED**: Write a failing test first
|
|
486
|
+
- Each SPEC requirement becomes a test case
|
|
487
|
+
- Must fail because implementation doesn't exist yet
|
|
488
|
+
- Git commit: `test(AUTH-001): add failing test`
|
|
489
|
+
|
|
490
|
+
2. **🟢 GREEN**: Minimal implementation to pass the test
|
|
491
|
+
- Make it pass using the simplest approach
|
|
492
|
+
- Passing comes before perfection
|
|
493
|
+
- Git commit: `feat(AUTH-001): implement minimal solution`
|
|
494
|
+
|
|
495
|
+
3. **♻️ REFACTOR**: Clean up and improve code
|
|
496
|
+
- Apply TRUST 5 principles
|
|
497
|
+
- Remove duplication, improve readability
|
|
498
|
+
- Tests must still pass
|
|
499
|
+
- Git commit: `refactor(AUTH-001): improve code quality`
|
|
500
|
+
|
|
501
|
+
**How?** The `/alfred:2-run` command automatically executes these 3 steps.
|
|
502
|
+
|
|
503
|
+
**What You Get**:
|
|
504
|
+
- ✅ Guaranteed 85%+ coverage (no code without tests)
|
|
505
|
+
- ✅ Refactoring confidence (always verifiable with tests)
|
|
506
|
+
- ✅ Clear Git history (trace RED → GREEN → REFACTOR process)
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
### Key Concept 3: @TAG System
|
|
511
|
+
|
|
512
|
+
**Metaphor**: Like package tracking numbers, you should be able to trace code's journey.
|
|
513
|
+
|
|
514
|
+
**Core Idea**: Add `@TAG:ID` to all SPECs, tests, code, and documentation to create **one-to-one correspondence**.
|
|
515
|
+
|
|
516
|
+
**TAG Chain**:
|
|
517
|
+
```
|
|
518
|
+
@SPEC:AUTH-001 (requirements)
|
|
519
|
+
↓
|
|
520
|
+
@TEST:AUTH-001 (test)
|
|
521
|
+
↓
|
|
522
|
+
@CODE:AUTH-001 (implementation)
|
|
523
|
+
↓
|
|
524
|
+
@DOC:AUTH-001 (documentation)
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
**TAG ID Rules**: `<Domain>-<3 digits>`
|
|
528
|
+
- AUTH-001, AUTH-002, AUTH-003...
|
|
529
|
+
- USER-001, USER-002...
|
|
530
|
+
- Once assigned, **never change**
|
|
531
|
+
|
|
532
|
+
**How to Use?** When requirements change:
|
|
533
|
+
```bash
|
|
534
|
+
# Find everything related to AUTH-001
|
|
535
|
+
rg '@TAG:AUTH-001' -n
|
|
536
|
+
|
|
537
|
+
# Result: Shows all SPEC, TEST, CODE, DOC at once
|
|
538
|
+
# → Clear what needs modification
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
**How?** The `/alfred:3-sync` command validates TAG chains and detects orphan TAGs (TAGs without correspondence).
|
|
542
|
+
|
|
543
|
+
**What You Get**:
|
|
544
|
+
- ✅ Clear intent for all code (reading SPEC explains why this code exists)
|
|
545
|
+
- ✅ Instantly identify all affected code during refactoring
|
|
546
|
+
- ✅ Code remains understandable 3 months later (trace TAG → SPEC)
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
### Key Concept 4: TRUST 5 Principles
|
|
551
|
+
|
|
552
|
+
**Metaphor**: Like a healthy body, good code must satisfy all 5 elements.
|
|
553
|
+
|
|
554
|
+
**Core Idea**: All code must follow these 5 principles. `/alfred:3-sync` automatically verifies them.
|
|
555
|
+
|
|
556
|
+
1. **🧪 Test First** (tests come first)
|
|
557
|
+
- Test coverage ≥ 85%
|
|
558
|
+
- All code protected by tests
|
|
559
|
+
- Adding feature = adding test
|
|
560
|
+
|
|
561
|
+
2. **📖 Readable** (easy-to-read code)
|
|
562
|
+
- Functions ≤ 50 lines, files ≤ 300 lines
|
|
563
|
+
- Variable names reveal intent
|
|
564
|
+
- Pass linters (ESLint/ruff/clippy)
|
|
565
|
+
|
|
566
|
+
3. **🎯 Unified** (consistent structure)
|
|
567
|
+
- Maintain SPEC-based architecture
|
|
568
|
+
- Same patterns repeat (reduces learning curve)
|
|
569
|
+
- Type safety or runtime validation
|
|
570
|
+
|
|
571
|
+
4. **🔒 Secured** (security)
|
|
572
|
+
- Input validation (defend against XSS, SQL Injection)
|
|
573
|
+
- Password hashing (bcrypt, Argon2)
|
|
574
|
+
- Protect sensitive information (environment variables)
|
|
575
|
+
|
|
576
|
+
5. **🔗 Trackable** (traceability)
|
|
577
|
+
- Use @TAG system
|
|
578
|
+
- Include TAG in Git commits
|
|
579
|
+
- Document all decisions
|
|
580
|
+
|
|
581
|
+
**How?** The `/alfred:3-sync` command automatically performs TRUST verification.
|
|
582
|
+
|
|
583
|
+
**What You Get**:
|
|
584
|
+
- ✅ Production-quality code guaranteed
|
|
585
|
+
- ✅ Entire team develops with same standards
|
|
586
|
+
- ✅ Fewer bugs, prevent security vulnerabilities in advance
|
|
587
|
+
|
|
588
|
+
---
|
|
589
|
+
|
|
590
|
+
### Key Concept 5: Alfred SuperAgent
|
|
591
|
+
|
|
592
|
+
**Metaphor**: Like a personal assistant, Alfred handles all the complex work.
|
|
593
|
+
|
|
594
|
+
**Core Idea**: **19 AI agents** collaborate to automate the entire development process:
|
|
595
|
+
|
|
596
|
+
**Agent Composition**:
|
|
597
|
+
- **Alfred SuperAgent**: Overall orchestration (1)
|
|
598
|
+
- **Core Sub-agents**: Specialized tasks like SPEC writing, TDD implementation, documentation sync (10)
|
|
599
|
+
- **Zero-project Specialists**: Project initialization, language detection, etc. (6)
|
|
600
|
+
- **Built-in Agents**: General questions, codebase exploration (2)
|
|
601
|
+
|
|
602
|
+
**55 Claude Skills**:
|
|
603
|
+
- **Foundation** (6): TRUST/TAG/SPEC/Git/EARS principles
|
|
604
|
+
- **Essentials** (4): Debugging, performance, refactoring, code review
|
|
605
|
+
- **Alfred** (7): Workflow automation
|
|
606
|
+
- **Domain** (10): Backend, frontend, security, etc.
|
|
607
|
+
- **Language** (18): Python, JavaScript, Go, Rust, Java, Kotlin, Swift, Dart, C/C#, Ruby, PHP, SQL, Shell, and more
|
|
608
|
+
- **Ops** (1): Claude Code session management
|
|
609
|
+
- **Other** (2): Skill factory, Spec authoring
|
|
610
|
+
|
|
611
|
+
**How?** `/alfred:*` commands automatically activate the right expert team.
|
|
612
|
+
|
|
613
|
+
**What You Get**:
|
|
614
|
+
- ✅ No prompt writing needed (use standardized commands)
|
|
615
|
+
- ✅ Automatically remember project context (no repeating same questions)
|
|
616
|
+
- ✅ Auto-assemble optimal expert team (activate appropriate Sub-agents)
|
|
617
|
+
|
|
618
|
+
> **Want to learn more?** Check detailed rules in `.moai/memory/development-guide.md`.
|
|
619
|
+
|
|
620
|
+
---
|
|
621
|
+
|
|
622
|
+
## First Hands-on: Todo API Example
|
|
623
|
+
|
|
624
|
+
Let's now **experience MoAI-ADK's complete workflow** firsthand. We'll build a simple "Todo Management API" and see how SPEC, TDD, and documentation connect.
|
|
625
|
+
|
|
626
|
+
### Step 1: PLAN - Write SPEC (about 3 minutes)
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
/alfred:1-plan "Todo add, view, update, delete API"
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
**Execution Result**:
|
|
633
|
+
|
|
634
|
+
Alfred's **spec-builder** automatically generates:
|
|
635
|
+
|
|
636
|
+
```yaml
|
|
637
|
+
# .moai/specs/SPEC-TODO-001/spec.md
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
id: TODO-001
|
|
641
|
+
version: 0.0.1
|
|
642
|
+
status: draft
|
|
643
|
+
created: 2025-10-22
|
|
644
|
+
updated: 2025-10-22
|
|
645
|
+
author: @user
|
|
646
|
+
priority: high
|
|
647
|
+
---
|
|
648
|
+
|
|
649
|
+
# @SPEC:TODO-001: Todo Management API
|
|
650
|
+
|
|
651
|
+
## Ubiquitous Requirements
|
|
652
|
+
- The system SHALL be able to add todos
|
|
653
|
+
- The system SHALL be able to view all todos
|
|
654
|
+
- The system SHALL be able to update specific todos
|
|
655
|
+
- The system SHALL be able to delete todos
|
|
656
|
+
|
|
657
|
+
## Event-driven Requirements
|
|
658
|
+
- WHEN a new todo is requested via POST /todos, the system SHALL save the todo and return a 201 response
|
|
659
|
+
- WHEN GET /todos/{id} is requested with an existing todo ID, the system SHALL return that todo
|
|
660
|
+
- WHEN GET is requested with a non-existent todo ID, the system SHALL return a 404 error
|
|
661
|
+
|
|
662
|
+
## Constraints
|
|
663
|
+
- Todo title SHALL be minimum 1 character, maximum 200 characters
|
|
664
|
+
- Each todo SHALL automatically record creation time
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
**Also auto-generated**:
|
|
668
|
+
- 📋 `Plan Board`: Implementation ideas, risk factors, solution strategies
|
|
669
|
+
- ✅ `Acceptance Criteria`: Verification standards
|
|
670
|
+
- 🌿 `feature/spec-todo-001` Git branch
|
|
671
|
+
|
|
672
|
+
### Step 2: RUN - TDD Implementation (about 5 minutes)
|
|
673
|
+
|
|
674
|
+
```bash
|
|
675
|
+
/alfred:2-run TODO-001
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
**Phase 1: Establish Implementation Strategy**
|
|
679
|
+
|
|
680
|
+
The **implementation-planner** Sub-agent decides:
|
|
681
|
+
- 📚 Libraries: FastAPI + SQLAlchemy
|
|
682
|
+
- 📁 Folder structure: `src/todo/`, `tests/todo/`
|
|
683
|
+
- 🏷️ TAG design: `@CODE:TODO-001:API`, `@CODE:TODO-001:MODEL`, `@CODE:TODO-001:REPO`
|
|
684
|
+
|
|
685
|
+
**Phase 2: RED → GREEN → REFACTOR**
|
|
686
|
+
|
|
687
|
+
**🔴 RED: Write Tests First**
|
|
688
|
+
|
|
689
|
+
```python
|
|
690
|
+
# tests/test_todo_api.py
|
|
691
|
+
# @TEST:TODO-001 | SPEC: SPEC-TODO-001.md
|
|
692
|
+
|
|
693
|
+
import pytest
|
|
694
|
+
from src.todo.api import create_todo, get_todos
|
|
695
|
+
|
|
696
|
+
def test_create_todo_should_return_201_with_todo_id():
|
|
697
|
+
"""WHEN a new todo is requested via POST /todos,
|
|
698
|
+
the system SHALL save the todo and return a 201 response"""
|
|
699
|
+
response = create_todo({"title": "Buy groceries"})
|
|
700
|
+
assert response.status_code == 201
|
|
701
|
+
assert "id" in response.json()
|
|
702
|
+
assert response.json()["title"] == "Buy groceries"
|
|
703
|
+
|
|
704
|
+
def test_get_todos_should_return_all_todos():
|
|
705
|
+
"""The system SHALL be able to view all todos"""
|
|
706
|
+
create_todo({"title": "Task 1"})
|
|
707
|
+
create_todo({"title": "Task 2"})
|
|
708
|
+
|
|
709
|
+
response = get_todos()
|
|
710
|
+
assert response.status_code == 200
|
|
711
|
+
assert len(response.json()) >= 2
|
|
712
|
+
|
|
713
|
+
def test_get_todo_with_invalid_id_should_return_404():
|
|
714
|
+
"""WHEN GET is requested with a non-existent todo ID,
|
|
715
|
+
the system SHALL return a 404 error"""
|
|
716
|
+
response = get_todo(999)
|
|
717
|
+
assert response.status_code == 404
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
**Execute**: `pytest tests/test_todo_api.py -v`
|
|
721
|
+
**Result**: ❌ All fail (create_todo not defined)
|
|
722
|
+
|
|
723
|
+
**Git Commit**:
|
|
724
|
+
```bash
|
|
725
|
+
git commit -m "🔴 test(TODO-001): add failing API tests"
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
**🟢 GREEN: Minimal Implementation**
|
|
729
|
+
|
|
730
|
+
```python
|
|
731
|
+
# src/todo/api.py
|
|
732
|
+
# @CODE:TODO-001:API | SPEC: SPEC-TODO-001.md | TEST: tests/test_todo_api.py
|
|
733
|
+
|
|
734
|
+
from fastapi import FastAPI, HTTPException
|
|
735
|
+
from pydantic import BaseModel
|
|
736
|
+
import uuid
|
|
737
|
+
|
|
738
|
+
app = FastAPI()
|
|
739
|
+
todos_db = {}
|
|
740
|
+
|
|
741
|
+
class TodoRequest(BaseModel):
|
|
742
|
+
title: str
|
|
743
|
+
|
|
744
|
+
@app.post("/todos", status_code=201)
|
|
745
|
+
def create_todo(todo: TodoRequest):
|
|
746
|
+
"""@CODE:TODO-001:API - POST endpoint"""
|
|
747
|
+
todo_id = str(uuid.uuid4())
|
|
748
|
+
todos_db[todo_id] = {"id": todo_id, "title": todo.title}
|
|
749
|
+
return todos_db[todo_id]
|
|
750
|
+
|
|
751
|
+
@app.get("/todos")
|
|
752
|
+
def get_todos():
|
|
753
|
+
"""@CODE:TODO-001:API - GET all endpoint"""
|
|
754
|
+
return list(todos_db.values())
|
|
755
|
+
|
|
756
|
+
@app.get("/todos/{todo_id}")
|
|
757
|
+
def get_todo(todo_id: str):
|
|
758
|
+
"""@CODE:TODO-001:API - GET by ID endpoint"""
|
|
759
|
+
if todo_id not in todos_db:
|
|
760
|
+
raise HTTPException(status_code=404, detail="Todo not found")
|
|
761
|
+
return todos_db[todo_id]
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
**Execute**: `pytest tests/test_todo_api.py -v`
|
|
765
|
+
**Result**: ✅ All pass!
|
|
766
|
+
|
|
767
|
+
**Git Commit**:
|
|
768
|
+
```bash
|
|
769
|
+
git commit -m "🟢 feat(TODO-001): implement minimal Todo API"
|
|
770
|
+
```
|
|
771
|
+
|
|
772
|
+
**♻️ REFACTOR: Code Improvement**
|
|
773
|
+
|
|
774
|
+
```python
|
|
775
|
+
# src/todo/models.py
|
|
776
|
+
# @CODE:TODO-001:MODEL | SPEC: SPEC-TODO-001.md
|
|
777
|
+
|
|
778
|
+
from datetime import datetime
|
|
779
|
+
from sqlalchemy import Column, String, DateTime
|
|
780
|
+
from sqlalchemy.ext.declarative import declarative_base
|
|
781
|
+
|
|
782
|
+
Base = declarative_base()
|
|
783
|
+
|
|
784
|
+
class Todo(Base):
|
|
785
|
+
"""@CODE:TODO-001:MODEL - Todo data model"""
|
|
786
|
+
__tablename__ = "todos"
|
|
787
|
+
|
|
788
|
+
id = Column(String, primary_key=True)
|
|
789
|
+
title = Column(String(200), nullable=False, index=True) # Constraint: max 200 chars
|
|
790
|
+
created_at = Column(DateTime, default=datetime.utcnow) # Auto creation time
|
|
791
|
+
|
|
792
|
+
def validate(self):
|
|
793
|
+
"""@CODE:TODO-001:MODEL - Validation"""
|
|
794
|
+
if not self.title or len(self.title) > 200:
|
|
795
|
+
raise ValueError("Title must be 1-200 characters")
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
**Execute**: `pytest tests/test_todo_api.py -v`
|
|
799
|
+
**Result**: ✅ Still all pass!
|
|
800
|
+
|
|
801
|
+
**Git Commit**:
|
|
802
|
+
```bash
|
|
803
|
+
git commit -m "♻️ refactor(TODO-001): add database models and validation"
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
**Phase 3: Quality Verification**
|
|
807
|
+
|
|
808
|
+
```bash
|
|
809
|
+
# TRUST verification
|
|
810
|
+
✅ Test First: 87% coverage
|
|
811
|
+
✅ Readable: All functions < 50 lines
|
|
812
|
+
✅ Unified: Consistent API patterns
|
|
813
|
+
✅ Secured: Input validation complete
|
|
814
|
+
✅ Trackable: All code has @TAG:TODO-001
|
|
815
|
+
```
|
|
816
|
+
|
|
817
|
+
### Step 3: SYNC - Documentation Sync (about 1 minute)
|
|
818
|
+
|
|
819
|
+
```bash
|
|
820
|
+
/alfred:3-sync
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
**Automatically Performed**:
|
|
824
|
+
|
|
825
|
+
1. **TAG Chain Validation**
|
|
826
|
+
```bash
|
|
827
|
+
✅ @SPEC:TODO-001 → .moai/specs/SPEC-TODO-001/spec.md
|
|
828
|
+
✅ @TEST:TODO-001 → tests/test_todo_api.py
|
|
829
|
+
✅ @CODE:TODO-001 → src/todo/ (3 files)
|
|
830
|
+
✅ @DOC:TODO-001 → docs/api/todo.md (auto-generated)
|
|
831
|
+
|
|
832
|
+
TAG Chain Integrity: 100%
|
|
833
|
+
Orphan TAGs: None
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
2. **Living Document Generation**
|
|
837
|
+
```markdown
|
|
838
|
+
# @DOC:TODO-001: Todo Management API
|
|
839
|
+
|
|
840
|
+
## Overview
|
|
841
|
+
REST API for managing tasks with CRUD operations.
|
|
842
|
+
|
|
843
|
+
## Endpoints
|
|
844
|
+
|
|
845
|
+
### Create Todo
|
|
846
|
+
- Method: POST
|
|
847
|
+
- URL: /todos
|
|
848
|
+
- Request: {"title": "string (1-200 chars)"}
|
|
849
|
+
- Response: 201 Created with todo object
|
|
850
|
+
- Implemented in: @CODE:TODO-001:API
|
|
851
|
+
- Tested in: @TEST:TODO-001
|
|
852
|
+
|
|
853
|
+
### Get All Todos
|
|
854
|
+
- Method: GET
|
|
855
|
+
- URL: /todos
|
|
856
|
+
- Response: 200 OK with array of todos
|
|
857
|
+
|
|
858
|
+
[... etc ...]
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
3. **README Update**
|
|
862
|
+
```markdown
|
|
863
|
+
## Features
|
|
864
|
+
|
|
865
|
+
- ✅ Todo Management API (TODO-001)
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
4. **CHANGELOG Generation**
|
|
869
|
+
```markdown
|
|
870
|
+
# Changelog
|
|
871
|
+
|
|
872
|
+
## [0.1.0] - 2025-10-22
|
|
873
|
+
|
|
874
|
+
### Added
|
|
875
|
+
- Todo Management API with CRUD operations (@SPEC:TODO-001)
|
|
876
|
+
- Create new todos
|
|
877
|
+
- List all todos
|
|
878
|
+
- Update existing todos
|
|
879
|
+
- Delete todos
|
|
880
|
+
|
|
881
|
+
### Implementation Details
|
|
882
|
+
- SPEC: .moai/specs/SPEC-TODO-001/spec.md
|
|
883
|
+
- Tests: tests/test_todo_api.py (87% coverage)
|
|
884
|
+
- Code: src/todo/ with models, API, repository layers
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
### Step 4: Verification (about 1 minute)
|
|
888
|
+
|
|
889
|
+
Let's verify everything generated is properly connected:
|
|
890
|
+
|
|
891
|
+
```bash
|
|
892
|
+
# 1️⃣ Check TAG chain
|
|
893
|
+
rg '@(SPEC|TEST|CODE|DOC):TODO-001' -n
|
|
894
|
+
|
|
895
|
+
# Output:
|
|
896
|
+
# .moai/specs/SPEC-TODO-001/spec.md:1: # @SPEC:TODO-001: Todo Management API
|
|
897
|
+
# tests/test_todo_api.py:2: # @TEST:TODO-001 | SPEC: SPEC-TODO-001.md
|
|
898
|
+
# src/todo/api.py:5: # @CODE:TODO-001:API | SPEC: SPEC-TODO-001.md
|
|
899
|
+
# src/todo/models.py:5: # @CODE:TODO-001:MODEL | SPEC: SPEC-TODO-001.md
|
|
900
|
+
# docs/api/todo.md:1: # @DOC:TODO-001: Todo Management API
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
# 2️⃣ Run tests
|
|
904
|
+
pytest tests/test_todo_api.py -v
|
|
905
|
+
# ✅ test_create_todo_should_return_201_with_todo_id PASSED
|
|
906
|
+
# ✅ test_get_todos_should_return_all_todos PASSED
|
|
907
|
+
# ✅ test_get_todo_with_invalid_id_should_return_404 PASSED
|
|
908
|
+
# ✅ 3 passed in 0.05s
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
# 3️⃣ Check generated documentation
|
|
912
|
+
cat docs/api/todo.md # API documentation auto-generated
|
|
913
|
+
cat README.md # Todo API added
|
|
914
|
+
cat CHANGELOG.md # Change history recorded
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
# 4️⃣ Check Git history
|
|
918
|
+
git log --oneline | head -5
|
|
919
|
+
# a1b2c3d ✅ sync(TODO-001): update docs and changelog
|
|
920
|
+
# f4e5d6c ♻️ refactor(TODO-001): add database models
|
|
921
|
+
# 7g8h9i0 🟢 feat(TODO-001): implement minimal API
|
|
922
|
+
# 1j2k3l4 🔴 test(TODO-001): add failing tests
|
|
923
|
+
# 5m6n7o8 🌿 Create feature/spec-todo-001 branch
|
|
924
|
+
```
|
|
925
|
+
|
|
926
|
+
### After 15 Minutes: Complete System
|
|
927
|
+
|
|
928
|
+
```
|
|
929
|
+
✅ SPEC written (3 minutes)
|
|
930
|
+
└─ @SPEC:TODO-001 TAG assigned
|
|
931
|
+
└─ Clear requirements in EARS format
|
|
932
|
+
|
|
933
|
+
✅ TDD implementation (5 minutes)
|
|
934
|
+
└─ 🔴 RED: Tests written first
|
|
935
|
+
└─ 🟢 GREEN: Minimal implementation
|
|
936
|
+
└─ ♻️ REFACTOR: Quality improvement
|
|
937
|
+
└─ @TEST:TODO-001, @CODE:TODO-001 TAGs assigned
|
|
938
|
+
└─ 87% coverage, TRUST 5 principles verified
|
|
939
|
+
|
|
940
|
+
✅ Documentation sync (1 minute)
|
|
941
|
+
└─ Living Document auto-generated
|
|
942
|
+
└─ README, CHANGELOG updated
|
|
943
|
+
└─ TAG chain validation complete
|
|
944
|
+
└─ @DOC:TODO-001 TAG assigned
|
|
945
|
+
└─ PR status: Draft → Ready for Review
|
|
946
|
+
|
|
947
|
+
Result:
|
|
948
|
+
- 📋 Clear SPEC (SPEC-TODO-001.md)
|
|
949
|
+
- 🧪 85%+ test coverage (test_todo_api.py)
|
|
950
|
+
- 💎 Production-quality code (src/todo/)
|
|
951
|
+
- 📖 Auto-generated API documentation (docs/api/todo.md)
|
|
952
|
+
- 📝 Change history tracking (CHANGELOG.md)
|
|
953
|
+
- 🔗 Everything connected with TAGs
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
> **This is MoAI-ADK's true power.** Not just a simple API implementation,
|
|
957
|
+
> but a **complete development artifact** with everything from SPEC through tests, code, and documentation consistently connected!
|
|
958
|
+
|
|
959
|
+
---
|
|
960
|
+
|
|
961
|
+
## Sub-agents & Skills Overview
|
|
962
|
+
|
|
963
|
+
Alfred works by combining multiple specialized agents with Claude Skills.
|
|
964
|
+
|
|
965
|
+
### Core Sub-agents (Plan → Run → Sync)
|
|
966
|
+
|
|
967
|
+
| Sub-agent | Model | Role |
|
|
968
|
+
| ----------------- | ------ | ----------------------------------------------------------------------- |
|
|
969
|
+
| project-manager 📋 | Sonnet | Project initialization, metadata interviews |
|
|
970
|
+
| spec-builder 🏗️ | Sonnet | Plan board, EARS SPEC authoring |
|
|
971
|
+
| code-builder 💎 | Sonnet | Performs complete TDD with `implementation-planner` + `tdd-implementer` |
|
|
972
|
+
| doc-syncer 📖 | Haiku | Living Doc, README, CHANGELOG sync |
|
|
973
|
+
| tag-agent 🏷️ | Haiku | TAG inventory, orphan detection |
|
|
974
|
+
| git-manager 🚀 | Haiku | GitFlow, Draft/Ready, Auto Merge |
|
|
975
|
+
| debug-helper 🔍 | Sonnet | Failure analysis, fix-forward strategy |
|
|
976
|
+
| trust-checker ✅ | Haiku | TRUST 5 quality gate |
|
|
977
|
+
| quality-gate 🛡️ | Haiku | Coverage change and release blocker review |
|
|
978
|
+
| cc-manager 🛠️ | Sonnet | Claude Code session optimization, Skill deployment |
|
|
979
|
+
|
|
980
|
+
### Skills (Progressive Disclosure - v0.4 New!)
|
|
981
|
+
|
|
982
|
+
Alfred organizes Claude Skills in a 4-tier architecture using **Progressive Disclosure** to load Just-In-Time only when needed. Each Skill is a production-grade guide stored in `.claude/skills/` directory.
|
|
983
|
+
|
|
984
|
+
#### Foundation Tier
|
|
985
|
+
Core skills containing fundamental TRUST/TAG/SPEC/Git/EARS/Language principles
|
|
986
|
+
|
|
987
|
+
| Skill | Description |
|
|
988
|
+
| ----------------------- | ---------------------------------------------------------------------------------- |
|
|
989
|
+
| `moai-foundation-trust` | TRUST 5-principles (Test 85%+, Readable, Unified, Secured, Trackable) verification |
|
|
990
|
+
| `moai-foundation-tags` | @TAG markers scan and inventory generation (CODE-FIRST principle) |
|
|
991
|
+
| `moai-foundation-specs` | SPEC YAML frontmatter validation and HISTORY section management |
|
|
992
|
+
| `moai-foundation-ears` | EARS (Easy Approach to Requirements Syntax) requirements writing guide |
|
|
993
|
+
| `moai-foundation-git` | Git workflow automation (branching, TDD commits, PR management) |
|
|
994
|
+
| `moai-foundation-langs` | Project language/framework auto-detection (package.json, pyproject.toml, etc.) |
|
|
995
|
+
|
|
996
|
+
#### Essentials Tier
|
|
997
|
+
Core tools needed for daily development work
|
|
998
|
+
|
|
999
|
+
| Skill | Description |
|
|
1000
|
+
| -------------------------- | ---------------------------------------------------------------------- |
|
|
1001
|
+
| `moai-essentials-debug` | Stack trace analysis, error pattern detection, quick diagnosis support |
|
|
1002
|
+
| `moai-essentials-perf` | Performance profiling, bottleneck detection, tuning strategies |
|
|
1003
|
+
| `moai-essentials-refactor` | Refactoring guide, design patterns, code improvement strategies |
|
|
1004
|
+
| `moai-essentials-review` | Automated code review, SOLID principles, code smell detection |
|
|
1005
|
+
|
|
1006
|
+
#### Alfred Tier
|
|
1007
|
+
MoAI-ADK internal workflow orchestration skills
|
|
1008
|
+
|
|
1009
|
+
| Skill | Description |
|
|
1010
|
+
| -------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
1011
|
+
| `moai-alfred-ears-authoring` | EARS syntax validation and requirement pattern guidance |
|
|
1012
|
+
| `moai-alfred-git-workflow` | MoAI-ADK conventions (feature branch, TDD commits, Draft PR) automation |
|
|
1013
|
+
| `moai-alfred-language-detection` | Project language/runtime detection and test tool recommendations |
|
|
1014
|
+
| `moai-alfred-spec-metadata-validation` | SPEC YAML frontmatter and HISTORY section consistency validation |
|
|
1015
|
+
| `moai-alfred-tag-scanning` | Complete @TAG marker scan and inventory generation (CODE-FIRST principle) |
|
|
1016
|
+
| `moai-alfred-trust-validation` | TRUST 5-principles compliance verification |
|
|
1017
|
+
| `moai-alfred-interactive-questions` | Claude Code Tools AskUserQuestion TUI menu standardization |
|
|
1018
|
+
|
|
1019
|
+
#### Domain Tier
|
|
1020
|
+
Specialized domain expertise
|
|
1021
|
+
|
|
1022
|
+
| Skill | Description |
|
|
1023
|
+
| -------------------------- | ---------------------------------------------------------------------------------------- |
|
|
1024
|
+
| `moai-domain-backend` | Backend architecture, API design, scaling guide |
|
|
1025
|
+
| `moai-domain-cli-tool` | CLI tool development, argument parsing, POSIX compliance, user-friendly help messages |
|
|
1026
|
+
| `moai-domain-data-science` | Data analysis, visualization, statistical modeling, reproducible research workflows |
|
|
1027
|
+
| `moai-domain-database` | Database design, schema optimization, indexing strategies, migration management |
|
|
1028
|
+
| `moai-domain-devops` | CI/CD pipelines, Docker containerization, Kubernetes orchestration, IaC |
|
|
1029
|
+
| `moai-domain-frontend` | React/Vue/Angular development, state management, performance optimization, accessibility |
|
|
1030
|
+
| `moai-domain-ml` | Machine learning model training, evaluation, deployment, MLOps workflows |
|
|
1031
|
+
| `moai-domain-mobile-app` | Flutter/React Native development, state management, native integration |
|
|
1032
|
+
| `moai-domain-security` | OWASP Top 10, static analysis (SAST), dependency security, secrets management |
|
|
1033
|
+
| `moai-domain-web-api` | REST API, GraphQL design patterns, authentication, versioning, OpenAPI documentation |
|
|
1034
|
+
|
|
1035
|
+
#### Language Tier
|
|
1036
|
+
Programming language-specific best practices
|
|
1037
|
+
|
|
1038
|
+
| Skill | Description |
|
|
1039
|
+
| ---------------------- | --------------------------------------------------------- |
|
|
1040
|
+
| `moai-lang-python` | pytest, mypy, ruff, black, uv package management |
|
|
1041
|
+
| `moai-lang-typescript` | Vitest, Biome, strict typing, npm/pnpm |
|
|
1042
|
+
| `moai-lang-javascript` | Jest, ESLint, Prettier, npm package management |
|
|
1043
|
+
| `moai-lang-go` | go test, golint, gofmt, standard library |
|
|
1044
|
+
| `moai-lang-rust` | cargo test, clippy, rustfmt, ownership/borrow checker |
|
|
1045
|
+
| `moai-lang-java` | JUnit, Maven/Gradle, Checkstyle, Spring Boot patterns |
|
|
1046
|
+
| `moai-lang-kotlin` | JUnit, Gradle, ktlint, coroutines, extension functions |
|
|
1047
|
+
| `moai-lang-swift` | XCTest, SwiftLint, iOS/macOS development patterns |
|
|
1048
|
+
| `moai-lang-dart` | flutter test, dart analyze, Flutter widget patterns |
|
|
1049
|
+
| `moai-lang-csharp` | xUnit, .NET tooling, LINQ, async/await patterns |
|
|
1050
|
+
| `moai-lang-cpp` | Google Test, clang-format, modern C++ (C++17/20) |
|
|
1051
|
+
| `moai-lang-c` | Unity test framework, cppcheck, Make build system |
|
|
1052
|
+
| `moai-lang-scala` | ScalaTest, sbt, functional programming patterns |
|
|
1053
|
+
| `moai-lang-ruby` | RSpec, RuboCop, Bundler, Rails patterns |
|
|
1054
|
+
| `moai-lang-php` | PHPUnit, Composer, PSR standards |
|
|
1055
|
+
| `moai-lang-sql` | Test frameworks, query optimization, migration management |
|
|
1056
|
+
| `moai-lang-shell` | bats, shellcheck, POSIX compliance |
|
|
1057
|
+
| `moai-lang-r` | testthat, lintr, data analysis patterns |
|
|
1058
|
+
|
|
1059
|
+
#### Claude Code Ops
|
|
1060
|
+
Claude Code session management
|
|
1061
|
+
|
|
1062
|
+
| Skill | Description |
|
|
1063
|
+
| ------------------ | ---------------------------------------------------------------------------------- |
|
|
1064
|
+
| `moai-claude-code` | Claude Code agents, commands, skills, plugins, settings scaffolding and monitoring |
|
|
1065
|
+
|
|
1066
|
+
> **v0.4.6 New Feature**: Claude Skills organized in 4-tier architecture (100% complete in v0.4.6). Each Skill loads via Progressive Disclosure only when needed to minimize context cost. Organized in Foundation → Essentials → Alfred → Domain/Language/Ops tiers, with all skills including production-grade documentation and executable TDD examples.
|
|
1067
|
+
|
|
1068
|
+
---
|
|
1069
|
+
|
|
1070
|
+
## AI Model Selection Guide
|
|
1071
|
+
|
|
1072
|
+
| Scenario | Default Model | Why |
|
|
1073
|
+
| ---------------------------------------------------- | --------------------- | ----------------------------------------------- |
|
|
1074
|
+
| Specifications, design, refactoring, problem solving | **Claude 4.5 Sonnet** | Strong in deep reasoning and structured writing |
|
|
1075
|
+
| Document sync, TAG checks, Git automation | **Claude 4.5 Haiku** | Strong in rapid iteration, string processing |
|
|
1076
|
+
|
|
1077
|
+
- Start with Haiku for patterned tasks; switch to Sonnet when complex judgment is needed.
|
|
1078
|
+
- If you manually change models, noting "why switched" in logs helps collaboration.
|
|
1079
|
+
|
|
1080
|
+
---
|
|
1081
|
+
|
|
1082
|
+
## Claude Code Hooks Guide
|
|
1083
|
+
|
|
1084
|
+
MoAI-ADK provides 4 main **Claude Code Hooks** that seamlessly integrate with your development workflow. These hooks enable automatic checkpoints, JIT context loading, and session monitoring—all happening transparently in the background.
|
|
1085
|
+
|
|
1086
|
+
### What Are Hooks?
|
|
1087
|
+
|
|
1088
|
+
Hooks are **event-driven** scripts that trigger automatically at specific points in your Claude Code session. Think of them as safety guardrails and productivity boosters that work behind the scenes without interrupting your flow.
|
|
1089
|
+
|
|
1090
|
+
### Installed Hooks
|
|
1091
|
+
|
|
1092
|
+
#### 1. SessionStart (Session Initialization)
|
|
1093
|
+
|
|
1094
|
+
**Triggers**: When you start a Claude Code session in your project
|
|
1095
|
+
**Purpose**: Display project status at a glance
|
|
1096
|
+
|
|
1097
|
+
**What You See**:
|
|
1098
|
+
```
|
|
1099
|
+
🚀 MoAI-ADK Session Started
|
|
1100
|
+
Language: Python
|
|
1101
|
+
Branch: develop
|
|
1102
|
+
Changes: 2 files
|
|
1103
|
+
SPEC Progress: 12/25 (48%)
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
**Why It Matters**: Instantly understand your project's current state without running multiple commands.
|
|
1107
|
+
|
|
1108
|
+
#### 2. PreToolUse (Before Tool Execution)
|
|
1109
|
+
|
|
1110
|
+
**Triggers**: Before executing file edits, Bash commands, or MultiEdit operations
|
|
1111
|
+
**Purpose**: Detect risky operations and automatically create safety checkpoints
|
|
1112
|
+
|
|
1113
|
+
**Protection Against**:
|
|
1114
|
+
- `rm -rf` (file deletion)
|
|
1115
|
+
- `git merge`, `git reset --hard` (Git dangerous operations)
|
|
1116
|
+
- Editing critical files (`CLAUDE.md`, `config.json`)
|
|
1117
|
+
- Mass edits (10+ files at once via MultiEdit)
|
|
1118
|
+
|
|
1119
|
+
**What You See**:
|
|
1120
|
+
```
|
|
1121
|
+
🛡️ Checkpoint created: before-delete-20251023-143000
|
|
1122
|
+
Operation: delete
|
|
1123
|
+
```
|
|
1124
|
+
|
|
1125
|
+
**Why It Matters**: Prevents data loss from mistakes. You can always restore from the checkpoint if something goes wrong.
|
|
1126
|
+
|
|
1127
|
+
#### 3. UserPromptSubmit (Prompt Input)
|
|
1128
|
+
|
|
1129
|
+
**Triggers**: When you submit a prompt to Claude
|
|
1130
|
+
**Purpose**: JIT (Just-In-Time) context loading—automatically add relevant files
|
|
1131
|
+
|
|
1132
|
+
**How It Works**:
|
|
1133
|
+
- You type: "Fix AUTH bug"
|
|
1134
|
+
- Hook scans for AUTH-related files
|
|
1135
|
+
- Auto-loads: SPEC, tests, implementation, docs related to AUTH
|
|
1136
|
+
- Claude receives full context without you manually specifying files
|
|
1137
|
+
|
|
1138
|
+
**Why It Matters**: Saves time and ensures Claude has all the relevant context for your request.
|
|
1139
|
+
|
|
1140
|
+
#### 4. SessionEnd (Session Cleanup)
|
|
1141
|
+
|
|
1142
|
+
**Triggers**: When you close your Claude Code session
|
|
1143
|
+
**Purpose**: Cleanup tasks and state preservation
|
|
1144
|
+
|
|
1145
|
+
**Why It Matters**: Ensures clean session transitions and proper state management.
|
|
1146
|
+
|
|
1147
|
+
### Technical Details
|
|
1148
|
+
|
|
1149
|
+
- **Location**: `.claude/hooks/alfred/`
|
|
1150
|
+
- **Environment Variable**: `$CLAUDE_PROJECT_DIR` (dynamically references project root)
|
|
1151
|
+
- **Performance**: Each hook executes in <100ms
|
|
1152
|
+
- **Logging**: Errors output to stderr (stdout reserved for JSON payloads)
|
|
1153
|
+
|
|
1154
|
+
### How to Disable Hooks
|
|
1155
|
+
|
|
1156
|
+
If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
1157
|
+
|
|
1158
|
+
```json
|
|
1159
|
+
{
|
|
1160
|
+
"hooks": {
|
|
1161
|
+
"SessionStart": [], // Disabled
|
|
1162
|
+
"PreToolUse": [...] // Still active
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1167
|
+
### Troubleshooting
|
|
1168
|
+
|
|
1169
|
+
**Problem: Hook doesn't execute**
|
|
1170
|
+
- ✅ Verify `.claude/settings.json` is properly configured
|
|
1171
|
+
- ✅ Check `uv` is installed: `which uv`
|
|
1172
|
+
- ✅ Ensure hook script has execute permissions: `chmod +x .claude/hooks/alfred/alfred_hooks.py`
|
|
1173
|
+
|
|
1174
|
+
**Problem: Performance degradation**
|
|
1175
|
+
- ✅ Check if any hook exceeds 100ms execution time
|
|
1176
|
+
- ✅ Disable unnecessary hooks
|
|
1177
|
+
- ✅ Review error messages in stderr output
|
|
1178
|
+
|
|
1179
|
+
**Problem: Too many checkpoints created**
|
|
1180
|
+
- ✅ Review PreToolUse trigger conditions
|
|
1181
|
+
- ✅ Adjust detection thresholds in `core/checkpoint.py` if needed
|
|
1182
|
+
|
|
1183
|
+
### Installed Hooks (5 total)
|
|
1184
|
+
|
|
1185
|
+
| Hook | Status | Feature |
|
|
1186
|
+
|------|--------|---------|
|
|
1187
|
+
| **SessionStart** | ✅ Active | Project status summary (language, Git, SPEC progress, checkpoints) |
|
|
1188
|
+
| **PreToolUse** | ✅ Active | Risk detection + auto checkpoint (critical-delete, delete, merge, script) |
|
|
1189
|
+
| **UserPromptSubmit** | ✅ Active | JIT context loading (auto-load related SPEC, tests, code, docs) |
|
|
1190
|
+
| **PostToolUse** | ✅ Active | Auto-run tests after code changes (9 languages: Python, TS, JS, Go, Rust, Java, Kotlin, Swift, Dart) |
|
|
1191
|
+
| **SessionEnd** | ✅ Active | Session cleanup and state saving |
|
|
1192
|
+
|
|
1193
|
+
### Future Enhancements
|
|
1194
|
+
|
|
1195
|
+
- **Notification**: Important event alerts (logging, notifications)
|
|
1196
|
+
- **Stop/SubagentStop**: Cleanup when agents terminate
|
|
1197
|
+
- Advanced security: `dd` commands, supply chain checks
|
|
1198
|
+
|
|
1199
|
+
### Learn More
|
|
1200
|
+
|
|
1201
|
+
- Comprehensive analysis: `.moai/reports/hooks-analysis-and-implementation.md`
|
|
1202
|
+
- PostToolUse implementation: `.moai/reports/phase3-posttool-implementation-complete.md`
|
|
1203
|
+
- Security enhancements: `.moai/reports/security-enhancement-critical-delete.md`
|
|
1204
|
+
- Hook implementation: `.claude/hooks/alfred/`
|
|
1205
|
+
- Hook tests: `tests/hooks/`
|
|
1206
|
+
|
|
1207
|
+
---
|
|
1208
|
+
|
|
1209
|
+
## Frequently Asked Questions (FAQ)
|
|
1210
|
+
|
|
1211
|
+
- **Q. Can I install on an existing project?**
|
|
1212
|
+
- A. Yes. Run `moai-adk init .` to add only the `.moai/` structure without touching existing code.
|
|
1213
|
+
- **Q. How do I run tests?**
|
|
1214
|
+
- A. `/alfred:2-run` runs them first; rerun `pytest`, `pnpm test`, etc. per language as needed.
|
|
1215
|
+
- **Q. How do I ensure documentation stays current?**
|
|
1216
|
+
- A. `/alfred:3-sync` generates a Sync Report. Check the report in Pull Requests.
|
|
1217
|
+
- **Q. Can I work manually?**
|
|
1218
|
+
- A. Yes, but keep the SPEC → TEST → CODE → DOC order and always leave TAGs.
|
|
1219
|
+
|
|
1220
|
+
---
|
|
1221
|
+
|
|
1222
|
+
## v0.4 Series Updates (New!)
|
|
1223
|
+
|
|
1224
|
+
| Version | Key Features | Date |
|
|
1225
|
+
| ---------- | ------------------------------------------------------------------------------------ | ---------- |
|
|
1226
|
+
| **v0.4.6** | 🎉 Complete Skills v2.0 (100% Production-Ready) + 85,000 lines official docs + 300+ TDD examples | 2025-10-22 |
|
|
1227
|
+
| **v0.4.5** | ✅ CI/CD fixes + Multi-language README + Deployment cleanup | 2025-10-22 |
|
|
1228
|
+
| **v0.4.4** | Korean language support | 2025-10-21 |
|
|
1229
|
+
| **v0.4.3** | Interactive question tool (TUI menu) | 2025-10-21 |
|
|
1230
|
+
| **v0.4.1** | Skills localization | 2025-10-21 |
|
|
1231
|
+
| **v0.4.0** | Claude Skills + AI team + 4-stage workflow | 2025-10-21 |
|
|
1232
|
+
|
|
1233
|
+
> 📦 **Install Now**: `pip install moai-adk==0.4.6` or `uv tool install moai-adk==0.4.6`
|
|
1234
|
+
|
|
1235
|
+
---
|
|
1236
|
+
|
|
1237
|
+
##
|
|
1238
|
+
|
|
1239
|
+
## Second Practice: Mini Kanban Board
|
|
1240
|
+
|
|
1241
|
+
This section goes beyond the first Todo API example and outlines a full 4-week full‑stack project.
|
|
1242
|
+
|
|
1243
|
+
Let’s build a Mini Kanban Board web application designed to help you master MoAI‑ADK end‑to‑end. This project lets you experience every step of SPEC‑First TDD.
|
|
1244
|
+
|
|
1245
|
+
### Project Overview
|
|
1246
|
+
|
|
1247
|
+
- Backend: FastAPI + Pydantic v2 + uv + WebSocket (Python)
|
|
1248
|
+
- Frontend: React 19 + TypeScript 5.9 + Vite + Zustand + TanStack Query
|
|
1249
|
+
- Real-time: Multi‑client sync over WebSocket
|
|
1250
|
+
- Storage: Local filesystem (.moai/specs/)
|
|
1251
|
+
- DevOps: Docker Compose + GitHub Actions CI/CD + Playwright E2E
|
|
1252
|
+
|
|
1253
|
+
### 4‑Week Timeline
|
|
1254
|
+
|
|
1255
|
+
```mermaid
|
|
1256
|
+
gantt
|
|
1257
|
+
title Mini Kanban Board — 4‑week plan
|
|
1258
|
+
dateFormat YYYY-MM-DD
|
|
1259
|
+
|
|
1260
|
+
section Phase 1: Backend Basics
|
|
1261
|
+
CH07: Define SPEC-001~004 :active, ch07-spec, 2025-11-03, 1d
|
|
1262
|
+
CH07: Implement SpecScanner (TDD) :active, ch07-impl, 2025-11-04, 1d
|
|
1263
|
+
|
|
1264
|
+
section Phase 2: Backend Advanced
|
|
1265
|
+
CH08: Implement REST API :active, ch08-api, 2025-11-05, 1d
|
|
1266
|
+
CH08: WebSocket + File Watch :active, ch08-ws, 2025-11-06, 1d
|
|
1267
|
+
|
|
1268
|
+
section Phase 3: Frontend Basics
|
|
1269
|
+
CH09: React init + SPEC-009~012 :active, ch09-spec, 2025-11-10, 1d
|
|
1270
|
+
CH09: Kanban Board (TDD) :active, ch09-impl, 2025-11-11, 1d
|
|
1271
|
+
|
|
1272
|
+
section Phase 4: Advanced + Deploy
|
|
1273
|
+
CH10: E2E + CI/CD :active, ch10-e2e, 2025-11-12, 1d
|
|
1274
|
+
CH10: Docker Compose + Optimize :active, ch10-deploy, 2025-11-13, 1d
|
|
1275
|
+
```
|
|
1276
|
+
|
|
1277
|
+
### 16‑SPEC Roadmap
|
|
1278
|
+
|
|
1279
|
+
| Phase | SPEC ID | Title | Stack | Est. | Status |
|
|
1280
|
+
|------|---------|-------|-------|------|--------|
|
|
1281
|
+
| Backend Basics | SPEC-001 | SPEC file scanner | FastAPI + pathlib + YAML | 1h | 📋 |
|
|
1282
|
+
| | SPEC-002 | YAML metadata parser | Pydantic v2 validation | 1h | 📋 |
|
|
1283
|
+
| | SPEC-003 | GET /api/specs (list) | FastAPI router | 0.5h | 📋 |
|
|
1284
|
+
| | SPEC-004 | GET /api/specs/{id} (detail) | FastAPI router | 0.5h | 📋 |
|
|
1285
|
+
| Backend Advanced | SPEC-005 | PATCH /api/specs/{id}/status | FastAPI + update | 1h | 📋 |
|
|
1286
|
+
| | SPEC-006 | GET /api/specs/summary | Aggregation | 0.5h | 📋 |
|
|
1287
|
+
| | SPEC-007 | File watcher | watchdog + async | 1h | 📋 |
|
|
1288
|
+
| | SPEC-008 | WebSocket events | FastAPI WebSocket | 1.5h | 📋 |
|
|
1289
|
+
| Frontend Basics | SPEC-009 | Kanban layout | React + CSS Grid | 1.5h | 📋 |
|
|
1290
|
+
| | SPEC-010 | SPEC card component | React + TypeScript | 1h | 📋 |
|
|
1291
|
+
| | SPEC-011 | TanStack Query integration | useQuery + useMutation | 1.5h | 📋 |
|
|
1292
|
+
| | SPEC-012 | Drag & Drop | React Beautiful DnD | 1.5h | 📋 |
|
|
1293
|
+
| Advanced + Deploy | SPEC-013 | E2E automated tests | Playwright | 1.5h | 📋 |
|
|
1294
|
+
| | SPEC-014 | GitHub Actions CI/CD | Test + Release | 1h | 📋 |
|
|
1295
|
+
| | SPEC-015 | Docker Compose deploy | Multi‑container | 1h | 📋 |
|
|
1296
|
+
| | SPEC-016 | Performance + extensions | Caching + WS tuning | 1.5h | 📋 |
|
|
1297
|
+
| | | Overall | | 20h | |
|
|
1298
|
+
|
|
1299
|
+
### System Architecture
|
|
1300
|
+
|
|
1301
|
+
```
|
|
1302
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
1303
|
+
│ Mini Kanban Board — Architecture │
|
|
1304
|
+
└─────────────────────────────────────────────────────────────┘
|
|
1305
|
+
|
|
1306
|
+
┌──────────────────────┐ ┌────────────────────────┐
|
|
1307
|
+
│ 📱 Frontend │ │ 🖥️ Backend Server │
|
|
1308
|
+
│ (React 19 + Vite) │◄───────►│ (FastAPI + Pydantic) │
|
|
1309
|
+
│ │ REST │ │
|
|
1310
|
+
│ ┌──────────────────┐ │ API + │ ┌──────────────────┐ │
|
|
1311
|
+
│ │ DashboardHeader │ │WebSocket│ │ GET /api/specs │ │
|
|
1312
|
+
│ ├──────────────────┤ │ │ ├──────────────────┤ │
|
|
1313
|
+
│ │ KanbanBoard │ │ │ │ PATCH /api/specs/{id}││
|
|
1314
|
+
│ │ ┌──────────────┐ │ │ │ │ /status │ │
|
|
1315
|
+
│ │ │ Column: Draft│ │ │ │ ├──────────────────┤ │
|
|
1316
|
+
│ │ │ Column: Active││ │ │ │ WebSocket │ │
|
|
1317
|
+
│ │ │ Column: Done │ │ │ │ │ /ws │ │
|
|
1318
|
+
│ │ └──────────────┘ │ │ │ │ │ │
|
|
1319
|
+
│ ├──────────────────┤ │ │ ├──────────────────┤ │
|
|
1320
|
+
│ │ SpecCard (DnD) │ │ │ │ SpecScanner │ │
|
|
1321
|
+
│ ├──────────────────┤ │ │ │ (.moai/specs/) │ │
|
|
1322
|
+
│ │ SearchBar │ │ │ ├──────────────────┤ │
|
|
1323
|
+
│ └──────────────────┘ │ │ │ YAML Parser │ │
|
|
1324
|
+
│ │ │ │ (Pydantic v2) │ │
|
|
1325
|
+
│ Zustand Store: │ │ └──────────────────┘ │
|
|
1326
|
+
│ • filterStore │ │ │
|
|
1327
|
+
│ • uiStore │ │ File System: │
|
|
1328
|
+
│ │ │ .moai/specs/ │
|
|
1329
|
+
│ TanStack Query: │ │ SPEC-001/ │
|
|
1330
|
+
│ • useQuery │ │ SPEC-002/ │
|
|
1331
|
+
│ • useMutation │ │ ... │
|
|
1332
|
+
└──────────────────────┘ └────────────────────────┘
|
|
1333
|
+
│ │
|
|
1334
|
+
│ WebSocket │
|
|
1335
|
+
└────────────────────────────────────┘
|
|
1336
|
+
(Real-time Sync)
|
|
1337
|
+
```
|
|
1338
|
+
|
|
1339
|
+
### Phase Details
|
|
1340
|
+
|
|
1341
|
+
#### Phase 1: Backend Basics (SPEC-001~004)
|
|
1342
|
+
|
|
1343
|
+
Goal: Build the core data scanning service with FastAPI + Pydantic v2 + uv
|
|
1344
|
+
|
|
1345
|
+
```bash
|
|
1346
|
+
# 1) Initialize project
|
|
1347
|
+
/alfred:0-project
|
|
1348
|
+
# → creates .moai/, backend/, frontend/
|
|
1349
|
+
# → configures .moai/config.json
|
|
1350
|
+
|
|
1351
|
+
# 2) Write SPECs (SPEC-001~004)
|
|
1352
|
+
/alfred:1-plan
|
|
1353
|
+
# → SPEC-001: SPEC file scanner
|
|
1354
|
+
# → SPEC-002: YAML metadata parser
|
|
1355
|
+
# → SPEC-003: GET /api/specs endpoint
|
|
1356
|
+
# → SPEC-004: GET /api/specs/{id} endpoint
|
|
1357
|
+
|
|
1358
|
+
# 3) TDD (RED → GREEN → REFACTOR)
|
|
1359
|
+
/alfred:2-run SPEC-001
|
|
1360
|
+
/alfred:2-run SPEC-002
|
|
1361
|
+
/alfred:2-run SPEC-003
|
|
1362
|
+
/alfred:2-run SPEC-004
|
|
1363
|
+
```
|
|
1364
|
+
|
|
1365
|
+
Key Concepts:
|
|
1366
|
+
- FastAPI project structure
|
|
1367
|
+
- Pydantic v2 validation
|
|
1368
|
+
- YAML front matter parsing
|
|
1369
|
+
- Dependency Injection
|
|
1370
|
+
- First TDD cycle completed
|
|
1371
|
+
|
|
1372
|
+
#### Phase 2: Backend Advanced (SPEC-005~008)
|
|
1373
|
+
|
|
1374
|
+
Goal: Implement file watching and WebSocket real-time events
|
|
1375
|
+
|
|
1376
|
+
```bash
|
|
1377
|
+
# REST endpoints
|
|
1378
|
+
/alfred:2-run SPEC-005 # PATCH /api/specs/{id}/status
|
|
1379
|
+
/alfred:2-run SPEC-006 # GET /api/specs/summary
|
|
1380
|
+
|
|
1381
|
+
# WebSocket + File Watcher
|
|
1382
|
+
/alfred:2-run SPEC-007 # File watching (watchdog)
|
|
1383
|
+
/alfred:2-run SPEC-008 # WebSocket broadcast
|
|
1384
|
+
|
|
1385
|
+
# TRUST 5 verification
|
|
1386
|
+
/alfred:3-sync # verify all principles
|
|
1387
|
+
```
|
|
1388
|
+
|
|
1389
|
+
Key Concepts:
|
|
1390
|
+
- File system monitoring (watchdog)
|
|
1391
|
+
- FastAPI WebSocket endpoint
|
|
1392
|
+
- Async event broadcast
|
|
1393
|
+
- Automated TRUST 5 verification
|
|
1394
|
+
|
|
1395
|
+
#### Phase 3: Frontend Basics (SPEC-009~012)
|
|
1396
|
+
|
|
1397
|
+
Goal: Build Kanban UI with React 19 + TypeScript + Vite
|
|
1398
|
+
|
|
1399
|
+
```bash
|
|
1400
|
+
# Initialize React + Vite
|
|
1401
|
+
cd frontend
|
|
1402
|
+
npm create vite@latest . -- --template react-ts
|
|
1403
|
+
|
|
1404
|
+
# TanStack Query + Zustand
|
|
1405
|
+
npm install @tanstack/react-query zustand
|
|
1406
|
+
|
|
1407
|
+
# SPECs
|
|
1408
|
+
/alfred:1-plan SPEC-009 # layout
|
|
1409
|
+
/alfred:1-plan SPEC-010 # card component
|
|
1410
|
+
/alfred:1-plan SPEC-011 # TanStack Query integration
|
|
1411
|
+
/alfred:1-plan SPEC-012 # drag & drop
|
|
1412
|
+
|
|
1413
|
+
# TDD
|
|
1414
|
+
/alfred:2-run SPEC-009
|
|
1415
|
+
/alfred:2-run SPEC-010
|
|
1416
|
+
/alfred:2-run SPEC-011
|
|
1417
|
+
/alfred:2-run SPEC-012
|
|
1418
|
+
```
|
|
1419
|
+
|
|
1420
|
+
Key Concepts:
|
|
1421
|
+
- React 19 Hooks (useState, useEffect, useContext)
|
|
1422
|
+
- TypeScript 5.9 strict typing
|
|
1423
|
+
- TanStack Query (useQuery, useMutation)
|
|
1424
|
+
- Zustand state management
|
|
1425
|
+
- React Beautiful DnD drag & drop
|
|
1426
|
+
|
|
1427
|
+
#### Phase 4: Advanced + Deploy (SPEC-013~016)
|
|
1428
|
+
|
|
1429
|
+
Goal: E2E tests, CI/CD, Docker deployment, performance optimization
|
|
1430
|
+
|
|
1431
|
+
```bash
|
|
1432
|
+
# E2E tests (Playwright)
|
|
1433
|
+
/alfred:2-run SPEC-013
|
|
1434
|
+
|
|
1435
|
+
# GitHub Actions CI/CD
|
|
1436
|
+
/alfred:2-run SPEC-014
|
|
1437
|
+
|
|
1438
|
+
# Docker Compose deploy
|
|
1439
|
+
/alfred:2-run SPEC-015
|
|
1440
|
+
|
|
1441
|
+
# Performance optimization
|
|
1442
|
+
/alfred:2-run SPEC-016
|
|
1443
|
+
```
|
|
1444
|
+
|
|
1445
|
+
Key Concepts:
|
|
1446
|
+
- Playwright E2E automation
|
|
1447
|
+
- GitHub Actions workflows
|
|
1448
|
+
- Docker multi-stage builds
|
|
1449
|
+
- Production performance tuning
|
|
1450
|
+
|
|
1451
|
+
### Quick Start Guide
|
|
1452
|
+
|
|
1453
|
+
#### Step 1: Initialize project
|
|
1454
|
+
|
|
1455
|
+
```bash
|
|
1456
|
+
# Install MoAI-ADK
|
|
1457
|
+
pip install moai-adk==0.4.6
|
|
1458
|
+
|
|
1459
|
+
# Create project
|
|
1460
|
+
mkdir mini-kanban-board && cd mini-kanban-board
|
|
1461
|
+
git init
|
|
1462
|
+
|
|
1463
|
+
# Initialize with Alfred
|
|
1464
|
+
/alfred:0-project
|
|
1465
|
+
```
|
|
1466
|
+
|
|
1467
|
+
#### Step 2: Write SPECs
|
|
1468
|
+
|
|
1469
|
+
```bash
|
|
1470
|
+
# Start planning
|
|
1471
|
+
/alfred:1-plan
|
|
1472
|
+
|
|
1473
|
+
# Answer prompts:
|
|
1474
|
+
# - Project name: Mini Kanban Board
|
|
1475
|
+
# - Tech stack: FastAPI + React 19
|
|
1476
|
+
# - Duration: 4-week practice project
|
|
1477
|
+
```
|
|
1478
|
+
|
|
1479
|
+
#### Step 3: Start TDD
|
|
1480
|
+
|
|
1481
|
+
```bash
|
|
1482
|
+
# Phase 1 (Backend basics)
|
|
1483
|
+
/alfred:2-run SPEC-001 # first TDD cycle
|
|
1484
|
+
|
|
1485
|
+
# Phase 2 (Backend advanced)
|
|
1486
|
+
/alfred:2-run SPEC-005
|
|
1487
|
+
/alfred:2-run SPEC-006
|
|
1488
|
+
/alfred:2-run SPEC-007
|
|
1489
|
+
/alfred:2-run SPEC-008
|
|
1490
|
+
|
|
1491
|
+
# Phase 3 (Frontend basics)
|
|
1492
|
+
cd frontend
|
|
1493
|
+
/alfred:2-run SPEC-009
|
|
1494
|
+
/alfred:2-run SPEC-010
|
|
1495
|
+
/alfred:2-run SPEC-011
|
|
1496
|
+
/alfred:2-run SPEC-012
|
|
1497
|
+
|
|
1498
|
+
# Phase 4 (Advanced + deploy)
|
|
1499
|
+
/alfred:2-run SPEC-013
|
|
1500
|
+
/alfred:2-run SPEC-014
|
|
1501
|
+
/alfred:2-run SPEC-015
|
|
1502
|
+
/alfred:2-run SPEC-016
|
|
1503
|
+
```
|
|
1504
|
+
|
|
1505
|
+
---
|
|
1506
|
+
|
|
1507
|
+
## Additional Resources
|
|
1508
|
+
|
|
1509
|
+
| Purpose | Resource |
|
|
1510
|
+
| ------------------------- | -------------------------------------------------------------------- |
|
|
1511
|
+
| Skills detailed structure | `.claude/skills/` directory (56 Skills) |
|
|
1512
|
+
| Sub-agent details | `.claude/agents/alfred/` directory |
|
|
1513
|
+
| Workflow guide | `.claude/commands/alfred/` (0-3 commands) |
|
|
1514
|
+
| Development guidelines | `.moai/memory/development-guide.md`, `.moai/memory/spec-metadata.md` |
|
|
1515
|
+
| Release notes | GitHub Releases: https://github.com/modu-ai/moai-adk/releases |
|
|
1516
|
+
|
|
1517
|
+
---
|
|
1518
|
+
|
|
1519
|
+
## Community & Support
|
|
1520
|
+
|
|
1521
|
+
| Channel | Link |
|
|
1522
|
+
| ------------------------ | ------------------------------------------------------- |
|
|
1523
|
+
| **GitHub Repository** | https://github.com/modu-ai/moai-adk |
|
|
1524
|
+
| **Issues & Discussions** | https://github.com/modu-ai/moai-adk/issues |
|
|
1525
|
+
| **PyPI Package** | https://pypi.org/project/moai-adk/ (Latest: v0.4.6) |
|
|
1526
|
+
| **Latest Release** | https://github.com/modu-ai/moai-adk/releases/tag/v0.4.6 |
|
|
1527
|
+
| **Documentation** | See `.moai/`, `.claude/`, `docs/` within project |
|
|
1528
|
+
|
|
1529
|
+
---
|
|
1530
|
+
|
|
1531
|
+
## 🚀 MoAI-ADK Philosophy
|
|
1532
|
+
|
|
1533
|
+
> **"No CODE without SPEC"**
|
|
1534
|
+
|
|
1535
|
+
MoAI-ADK is not simply a code generation tool. Alfred SuperAgent with its 19-member team and 56 Claude Skills together guarantee:
|
|
1536
|
+
|
|
1537
|
+
- ✅ **SPEC → TEST (TDD) → CODE → DOCS consistency**
|
|
1538
|
+
- ✅ **Complete history tracking with @TAG system**
|
|
1539
|
+
- ✅ **Guaranteed 87.84%+ coverage**
|
|
1540
|
+
- ✅ **Iterative development with 4-stage workflow (0-project → 1-plan → 2-run → 3-sync)**
|
|
1541
|
+
- ✅ **Collaborate with AI transparently and traceably**
|
|
1542
|
+
|
|
1543
|
+
Start a new experience of **trustworthy AI development** with Alfred! 🤖
|
|
1544
|
+
|
|
1545
|
+
---
|
|
1546
|
+
|
|
1547
|
+
**MoAI-ADK v0.4.6** — SPEC-First TDD with AI SuperAgent & Complete Skills v2.0
|
|
1548
|
+
- 📦 PyPI: https://pypi.org/project/moai-adk/
|
|
1549
|
+
- 🏠 GitHub: https://github.com/modu-ai/moai-adk
|
|
1550
|
+
- 📝 License: MIT
|
|
1551
|
+
- ⭐ Skills: 56/56 Complete (100% Production-Ready)
|
|
1552
|
+
|
|
1553
|
+
---
|