moai-adk 0.9.1__py3-none-any.whl → 0.11.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/core/project/phase_executor.py +4 -0
- moai_adk/core/tags/ci_validator.py +33 -3
- moai_adk/core/template_engine.py +6 -2
- moai_adk/templates/.git-hooks/pre-push +143 -0
- moai_adk/templates/.github/workflows/moai-gitflow.yml +6 -1
- moai_adk/templates/.github/workflows/release.yml +6 -2
- moai_adk/templates/.github/workflows/tag-validation.yml +57 -8
- moai_adk/templates/CLAUDE.md +477 -28
- moai_adk/templates/README.md +256 -0
- {moai_adk-0.9.1.dist-info → moai_adk-0.11.0.dist-info}/METADATA +740 -90
- moai_adk-0.11.0.dist-info/RECORD +77 -0
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -350
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -273
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -287
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -287
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -326
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1189
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -728
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -545
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -683
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
- moai_adk/templates/.claude/hooks/alfred/.moai/cache/version-check.json +0 -9
- moai_adk/templates/.claude/hooks/alfred/README.md +0 -343
- moai_adk/templates/.claude/hooks/alfred/TROUBLESHOOTING.md +0 -471
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -209
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +0 -102
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -102
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -108
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -102
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -102
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
- moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -683
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -25
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -175
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -90
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
- moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +0 -102
- moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +0 -102
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -120
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
- moai_adk/templates/.claude/settings.json +0 -144
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -431
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
- moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -219
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
- moai_adk/templates/.github/workflows/tag-report.yml +0 -261
- moai_adk/templates/.moai/config.json +0 -113
- moai_adk/templates/.moai/docs/quick-issue-creation-guide.md +0 -219
- moai_adk/templates/.moai/hooks/install.sh +0 -79
- moai_adk/templates/.moai/hooks/pre-commit.sh +0 -66
- moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -208
- moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -369
- moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -539
- moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
- moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -220
- moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md +0 -150
- moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -218
- moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -356
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
- moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
- moai_adk/templates/.moai/project/product.md +0 -161
- moai_adk/templates/.moai/project/structure.md +0 -156
- moai_adk/templates/.moai/project/tech.md +0 -227
- moai_adk/templates/src/moai_adk/core/__init__.py +0 -5
- moai_adk/templates/src/moai_adk/core/tags/__init__.py +0 -86
- moai_adk/templates/src/moai_adk/core/tags/ci_validator.py +0 -433
- moai_adk/templates/src/moai_adk/core/tags/cli.py +0 -283
- moai_adk/templates/src/moai_adk/core/tags/validator.py +0 -897
- moai_adk-0.9.1.dist-info/RECORD +0 -320
- {moai_adk-0.9.1.dist-info → moai_adk-0.11.0.dist-info}/WHEEL +0 -0
- {moai_adk-0.9.1.dist-info → moai_adk-0.11.0.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.9.1.dist-info → moai_adk-0.11.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: moai-adk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: MoAI Agentic Development Kit - SPEC-First TDD with Alfred SuperAgent & Complete Skills v2.0
|
|
5
5
|
Project-URL: Homepage, https://github.com/modu-ai/moai-adk
|
|
6
6
|
Project-URL: Repository, https://github.com/modu-ai/moai-adk
|
|
@@ -14,17 +14,21 @@ Classifier: Development Status :: 4 - Beta
|
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: License :: OSI Approved :: MIT License
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
21
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
22
|
Classifier: Topic :: Software Development :: Testing
|
|
21
|
-
Requires-Python: >=3.
|
|
23
|
+
Requires-Python: >=3.11
|
|
22
24
|
Requires-Dist: click>=8.1.0
|
|
23
25
|
Requires-Dist: gitpython>=3.1.45
|
|
26
|
+
Requires-Dist: jinja2>=3.0.0
|
|
24
27
|
Requires-Dist: packaging>=21.0
|
|
25
28
|
Requires-Dist: pyfiglet>=1.0.2
|
|
26
29
|
Requires-Dist: pyyaml>=6.0
|
|
27
30
|
Requires-Dist: questionary>=2.0.0
|
|
31
|
+
Requires-Dist: requests>=2.28.0
|
|
28
32
|
Requires-Dist: rich>=13.0.0
|
|
29
33
|
Provides-Extra: dev
|
|
30
34
|
Requires-Dist: mypy>=1.7.0; extra == 'dev'
|
|
@@ -158,13 +162,29 @@ From the moment you adopt MoAI-ADK, you'll feel:
|
|
|
158
162
|
|
|
159
163
|
---
|
|
160
164
|
|
|
161
|
-
##
|
|
165
|
+
## 🖥️ Platform Support
|
|
162
166
|
|
|
163
|
-
|
|
167
|
+
### Supported Platforms
|
|
168
|
+
- ✅ **macOS** (11.0+)
|
|
169
|
+
- ✅ **Linux** (Ubuntu 20.04+, Debian 11+, etc.)
|
|
170
|
+
- ✅ **Windows** (10/11) - Full support as of v0.11.0
|
|
171
|
+
- Note: Hooks system requires Python 3.11+
|
|
172
|
+
- All hook features work seamlessly on Windows with cross-platform timeout handling
|
|
164
173
|
|
|
165
|
-
###
|
|
174
|
+
### System Requirements
|
|
175
|
+
- **Python**: 3.11 or higher
|
|
176
|
+
- **Git**: 2.30+
|
|
177
|
+
- **GitHub CLI** (`gh`): Optional, required for PR automation in team mode
|
|
166
178
|
|
|
167
|
-
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## ⚡ 3-Minute Lightning Start
|
|
182
|
+
|
|
183
|
+
Get your first MoAI-ADK project running in **3 simple steps**. Beginners can finish in under 5 minutes.
|
|
184
|
+
|
|
185
|
+
### Step 1: Install uv (about 1 minute)
|
|
186
|
+
|
|
187
|
+
#### Command
|
|
168
188
|
|
|
169
189
|
```bash
|
|
170
190
|
# macOS/Linux
|
|
@@ -173,46 +193,169 @@ curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
|
173
193
|
# Windows (PowerShell)
|
|
174
194
|
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
175
195
|
|
|
176
|
-
# Verify
|
|
196
|
+
# Verify
|
|
177
197
|
uv --version
|
|
178
|
-
# Output: uv 0.x.x
|
|
179
198
|
```
|
|
180
199
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
200
|
+
#### Expected Output
|
|
201
|
+
```
|
|
202
|
+
✓ uv 0.5.1 is already installed
|
|
203
|
+
$ uv --version
|
|
204
|
+
uv 0.5.1
|
|
205
|
+
```
|
|
184
206
|
|
|
185
|
-
Install MoAI-ADK
|
|
207
|
+
#### Next: Install MoAI-ADK
|
|
186
208
|
|
|
187
209
|
```bash
|
|
188
|
-
# Install in tool mode (recommended: runs in isolated environment)
|
|
189
210
|
uv tool install moai-adk
|
|
190
211
|
|
|
191
|
-
#
|
|
212
|
+
# Result: ✅ Installed moai-adk v0.9.0
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Verification**:
|
|
216
|
+
```bash
|
|
192
217
|
moai-adk --version
|
|
193
|
-
# Output: MoAI-ADK
|
|
218
|
+
# Output: MoAI-ADK v0.9.0
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### Step 2: Create Your First Project (about 1 minute)
|
|
224
|
+
|
|
225
|
+
#### Command
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
moai-adk init hello-world
|
|
229
|
+
cd hello-world
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
#### What Gets Created
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
hello-world/
|
|
236
|
+
├── .moai/ ✅ Alfred configuration
|
|
237
|
+
├── .claude/ ✅ Claude Code automation
|
|
238
|
+
├── CLAUDE.md ✅ Project guide
|
|
239
|
+
└── README.md ✅ Project documentation
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
#### Verification: Check Core Files
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
# Verify core config file exists
|
|
246
|
+
ls -la .moai/config.json # ✅ Should exist
|
|
247
|
+
ls -la .claude/commands/ # ✅ Should have commands
|
|
248
|
+
|
|
249
|
+
# Or all at once
|
|
250
|
+
moai-adk doctor
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Expected Output**:
|
|
254
|
+
```
|
|
255
|
+
✅ Python 3.13.0
|
|
256
|
+
✅ uv 0.5.1
|
|
257
|
+
✅ .moai/ directory initialized
|
|
258
|
+
✅ .claude/ directory ready
|
|
259
|
+
✅ 12 agents configured
|
|
260
|
+
✅ 55 skills loaded
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### Step 3: Start Alfred (about 1 minute)
|
|
266
|
+
|
|
267
|
+
#### Run Claude Code
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
claude
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
#### Enter in Claude Code
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
/alfred:0-project
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
#### Alfred Will Ask
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
Q1: Project name?
|
|
283
|
+
A: hello-world
|
|
284
|
+
|
|
285
|
+
Q2: Project goal?
|
|
286
|
+
A: Learning MoAI-ADK
|
|
287
|
+
|
|
288
|
+
Q3: Main development language?
|
|
289
|
+
A: python
|
|
290
|
+
|
|
291
|
+
Q4: Mode?
|
|
292
|
+
A: personal (for local development)
|
|
194
293
|
```
|
|
195
294
|
|
|
196
|
-
|
|
295
|
+
#### Result: Project Ready! ✅
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
✅ Project initialized
|
|
299
|
+
✅ Config saved to .moai/config.json
|
|
300
|
+
✅ Documents created in .moai/project/
|
|
301
|
+
✅ Alfred recommends skills
|
|
302
|
+
|
|
303
|
+
Next: Run /alfred:1-plan "your feature description"
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
197
307
|
|
|
198
|
-
|
|
308
|
+
## Next: Complete Your First Feature in 10 Minutes
|
|
199
309
|
|
|
200
|
-
|
|
310
|
+
You're now ready to build your first complete feature with SPEC, TDD, and auto-generated docs!
|
|
201
311
|
|
|
312
|
+
> **→ Continue to: ["First 10-Minute Hands-On: Hello World API"](#-first-10-minute-hands-on-hello-world-api)**
|
|
313
|
+
|
|
314
|
+
In this section you'll experience:
|
|
315
|
+
- ✅ Define an API using SPEC
|
|
316
|
+
- ✅ Complete TDD cycle (RED → GREEN → REFACTOR)
|
|
317
|
+
- ✅ Auto-generate documentation
|
|
318
|
+
- ✅ Understand @TAG system
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Earlier Detailed Guide (Optional Reading)
|
|
323
|
+
|
|
324
|
+
Need more explanations? See detailed guides below.
|
|
325
|
+
|
|
326
|
+
### Detailed Installation Guide
|
|
327
|
+
|
|
328
|
+
**After installing uv, verify PATH is set**:
|
|
329
|
+
```bash
|
|
330
|
+
# If uv command not found, set PATH manually (macOS/Linux)
|
|
331
|
+
export PATH="$HOME/.cargo/bin:$PATH"
|
|
332
|
+
|
|
333
|
+
# Verify again
|
|
334
|
+
uv --version
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Available moai-adk commands**:
|
|
338
|
+
```bash
|
|
339
|
+
moai-adk init # Initialize new project
|
|
340
|
+
moai-adk doctor # System diagnostics
|
|
341
|
+
moai-adk update # Update to latest version
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Detailed Project Creation
|
|
345
|
+
|
|
346
|
+
**Create a new project**:
|
|
202
347
|
```bash
|
|
203
348
|
moai-adk init my-project
|
|
204
349
|
cd my-project
|
|
205
350
|
```
|
|
206
351
|
|
|
207
|
-
**
|
|
208
|
-
|
|
352
|
+
**Add to existing project**:
|
|
209
353
|
```bash
|
|
210
354
|
cd your-existing-project
|
|
211
355
|
moai-adk init .
|
|
212
356
|
```
|
|
213
357
|
|
|
214
|
-
|
|
215
|
-
|
|
358
|
+
Complete directory structure created:
|
|
216
359
|
```
|
|
217
360
|
my-project/
|
|
218
361
|
├── .moai/ # MoAI-ADK project configuration
|
|
@@ -267,11 +410,6 @@ my-project/
|
|
|
267
410
|
│ ├── hooks/ # Event-driven automation
|
|
268
411
|
│ │ └── alfred/
|
|
269
412
|
│ │ └── alfred_hooks.py # 5 hooks (Session, PreTool, etc.)
|
|
270
|
-
│ ├── output-styles/ # Response styles
|
|
271
|
-
│ │ └── alfred/
|
|
272
|
-
│ │ ├── agentic-coding.md # Professional development mode
|
|
273
|
-
│ │ ├── moai-adk-learning.md # Educational explanations mode
|
|
274
|
-
│ │ └── study-with-alfred.md # Interactive learning mode
|
|
275
413
|
│ └── settings.json # Claude Code settings
|
|
276
414
|
├── src/ # Implementation code
|
|
277
415
|
├── tests/ # Test code
|
|
@@ -280,107 +418,300 @@ my-project/
|
|
|
280
418
|
└── README.md
|
|
281
419
|
```
|
|
282
420
|
|
|
283
|
-
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## Core Concept: 3-Step Repeating Cycle
|
|
424
|
+
|
|
425
|
+
After initial setup, every feature follows this cycle:
|
|
426
|
+
|
|
427
|
+
| Step | Command | What It Does | Output |
|
|
428
|
+
|------|---------|-------------|--------|
|
|
429
|
+
| 🚀 **INIT** | `/alfred:0-project` | Collect project description, create config/docs, recommend Skills | `.moai/config.json`, `.moai/project/*`, initial report |
|
|
430
|
+
| 📋 **PLAN** | `/alfred:1-plan "feature description"` | Analyze requirements, draft SPEC, create Plan Board | `.moai/specs/SPEC-*/spec.md`, plan/acceptance docs, feature branch |
|
|
431
|
+
| 💻 **RUN** | `/alfred:2-run SPEC-ID` | Execute TDD, run tests/implementation/refactor, verify quality | `tests/`, `src/` implementation, quality report, TAG links |
|
|
432
|
+
| 📚 **SYNC** | `/alfred:3-sync` | Auto-sync docs/README/CHANGELOG, organize TAG/PR status | `docs/`, `.moai/reports/sync-report.md`, Ready PR |
|
|
433
|
+
| 💬 **FEEDBACK** | `/alfred:9-feedback` | Interactive GitHub Issue creation (type → title → description → priority) | GitHub Issue + auto labels + priority + URL |
|
|
434
|
+
|
|
435
|
+
> ✅ All commands follow the **Phase 0(optional) → Phase 1 → Phase 2 → Phase 3** cycle. Alfred automatically reports status and suggests next steps.
|
|
436
|
+
>
|
|
437
|
+
> 💡 **New in v0.7.0+**: Use `/alfred:9-feedback` to create GitHub Issues on-the-fly during development. Keep your team in sync without interrupting your workflow.
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## Original Detailed Guide (Complete 7-Step Analysis)
|
|
442
|
+
|
|
443
|
+
For comprehensive explanation, see the previous version in [GitHub History](https://github.com/modu-ai/moai-adk/blob/main/README.md).
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
---
|
|
284
448
|
|
|
285
|
-
|
|
449
|
+
## 🚀 First 10-Minute Hands-On: Hello World API
|
|
286
450
|
|
|
451
|
+
**Goal**: Experience the complete MoAI-ADK workflow in 10 minutes
|
|
452
|
+
**Learn**: SPEC writing, TDD implementation, documentation automation, @TAG system
|
|
453
|
+
|
|
454
|
+
> Already completed the 3-minute quick start? Start here!
|
|
455
|
+
|
|
456
|
+
### Prerequisites
|
|
457
|
+
- ✅ MoAI-ADK installed
|
|
458
|
+
- ✅ Project created (`moai-adk init hello-world`)
|
|
459
|
+
- ✅ Claude Code running
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
### Step 1: Write SPEC (2 minutes)
|
|
464
|
+
|
|
465
|
+
#### Command
|
|
287
466
|
```bash
|
|
288
|
-
|
|
289
|
-
claude
|
|
467
|
+
/alfred:1-plan "GET /hello endpoint - receive query parameter 'name' and return greeting"
|
|
290
468
|
```
|
|
291
469
|
|
|
292
|
-
|
|
470
|
+
#### Alfred Automatically Creates
|
|
471
|
+
```
|
|
472
|
+
✅ SPEC ID: HELLO-001
|
|
473
|
+
✅ File: .moai/specs/SPEC-HELLO-001/spec.md
|
|
474
|
+
✅ Branch: feature/SPEC-HELLO-001
|
|
475
|
+
```
|
|
293
476
|
|
|
477
|
+
#### Check Generated SPEC
|
|
478
|
+
```bash
|
|
479
|
+
cat .moai/specs/SPEC-HELLO-001/spec.md
|
|
294
480
|
```
|
|
295
|
-
|
|
481
|
+
|
|
482
|
+
**Example Content**:
|
|
483
|
+
```yaml
|
|
484
|
+
---
|
|
485
|
+
id: HELLO-001
|
|
486
|
+
version: 0.0.1
|
|
487
|
+
status: draft
|
|
488
|
+
priority: high
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
# `@SPEC:HELLO-001: Hello World API
|
|
492
|
+
|
|
493
|
+
## Ubiquitous Requirements
|
|
494
|
+
- System SHALL provide HTTP GET /hello endpoint
|
|
495
|
+
|
|
496
|
+
## Event-driven Requirements
|
|
497
|
+
- WHEN query parameter 'name' is provided, THEN return "Hello, {name}!"
|
|
498
|
+
- WHEN name is absent, THEN return "Hello, World!"
|
|
499
|
+
|
|
500
|
+
## Constraints
|
|
501
|
+
- name limited to 50 characters max
|
|
502
|
+
- Response format: JSON
|
|
296
503
|
```
|
|
297
504
|
|
|
298
|
-
|
|
505
|
+
✅ **Verify**: `ls .moai/specs/SPEC-HELLO-001/`
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
### Step 2: TDD Implementation (5 minutes)
|
|
510
|
+
|
|
511
|
+
#### Command
|
|
512
|
+
```bash
|
|
513
|
+
/alfred:2-run HELLO-001
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
#### 🔴 RED Phase: Write Failing Test
|
|
517
|
+
|
|
518
|
+
**File Created**: `tests/test_hello.py`
|
|
299
519
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
520
|
+
```python
|
|
521
|
+
# `@TEST:HELLO-001 | SPEC: SPEC-HELLO-001.md
|
|
522
|
+
|
|
523
|
+
import pytest
|
|
524
|
+
from fastapi.testclient import TestClient
|
|
525
|
+
from src.hello.api import app
|
|
304
526
|
|
|
305
|
-
|
|
527
|
+
client = TestClient(app)
|
|
306
528
|
|
|
307
|
-
|
|
529
|
+
def test_hello_with_name_should_return_personalized_greeting():
|
|
530
|
+
"""WHEN name provided, THEN return personalized greeting"""
|
|
531
|
+
response = client.get("/hello?name=Alice")
|
|
532
|
+
assert response.status_code == 200
|
|
533
|
+
assert response.json() == {"message": "Hello, Alice!"}
|
|
308
534
|
|
|
535
|
+
def test_hello_without_name_should_return_default_greeting():
|
|
536
|
+
"""WHEN name absent, THEN return default greeting"""
|
|
537
|
+
response = client.get("/hello")
|
|
538
|
+
assert response.status_code == 200
|
|
539
|
+
assert response.json() == {"message": "Hello, World!"}
|
|
309
540
|
```
|
|
310
|
-
|
|
541
|
+
|
|
542
|
+
**Run**:
|
|
543
|
+
```bash
|
|
544
|
+
pytest tests/test_hello.py -v
|
|
311
545
|
```
|
|
312
546
|
|
|
313
|
-
|
|
547
|
+
**Result**: ❌ FAILED (app doesn't exist yet - expected!)
|
|
314
548
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
549
|
+
**Commit**:
|
|
550
|
+
```bash
|
|
551
|
+
git add tests/test_hello.py
|
|
552
|
+
git commit -m "🔴 test(HELLO-001): add failing hello API tests"
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
---
|
|
318
556
|
|
|
319
|
-
|
|
557
|
+
#### 🟢 GREEN Phase: Minimal Implementation
|
|
320
558
|
|
|
321
|
-
|
|
559
|
+
**File Created**: `src/hello/api.py`
|
|
322
560
|
|
|
561
|
+
```python
|
|
562
|
+
# `@CODE:HELLO-001:API | SPEC: SPEC-HELLO-001.md | TEST: tests/test_hello.py
|
|
563
|
+
|
|
564
|
+
from fastapi import FastAPI
|
|
565
|
+
|
|
566
|
+
app = FastAPI()
|
|
567
|
+
|
|
568
|
+
@app.get("/hello")
|
|
569
|
+
def hello(name: str = "World"):
|
|
570
|
+
"""@CODE:HELLO-001:API - Hello endpoint"""
|
|
571
|
+
return {"message": f"Hello, {name}!"}
|
|
323
572
|
```
|
|
324
|
-
|
|
573
|
+
|
|
574
|
+
**Run**:
|
|
575
|
+
```bash
|
|
576
|
+
pytest tests/test_hello.py -v
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
**Result**: ✅ PASSED (all tests pass!)
|
|
580
|
+
|
|
581
|
+
**Commit**:
|
|
582
|
+
```bash
|
|
583
|
+
git add src/hello/api.py
|
|
584
|
+
git commit -m "🟢 feat(HELLO-001): implement hello API"
|
|
325
585
|
```
|
|
326
586
|
|
|
327
|
-
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
#### ♻️ REFACTOR Phase: Add Validation
|
|
328
590
|
|
|
329
|
-
|
|
330
|
-
- 🟢 **GREEN**: Minimal implementation to pass test (`@CODE:USER-001`)
|
|
331
|
-
- ♻️ **REFACTOR**: Improve code quality
|
|
591
|
+
**Enhanced Code**:
|
|
332
592
|
|
|
333
|
-
|
|
593
|
+
```python
|
|
594
|
+
from fastapi import FastAPI, HTTPException
|
|
334
595
|
|
|
335
|
-
|
|
596
|
+
app = FastAPI()
|
|
336
597
|
|
|
598
|
+
@app.get("/hello")
|
|
599
|
+
def hello(name: str = "World"):
|
|
600
|
+
"""@CODE:HELLO-001:API - Hello endpoint with validation"""
|
|
601
|
+
if len(name) > 50:
|
|
602
|
+
raise HTTPException(status_code=400, detail="Name too long (max 50 chars)")
|
|
603
|
+
return {"message": f"Hello, {name}!"}
|
|
337
604
|
```
|
|
338
|
-
|
|
605
|
+
|
|
606
|
+
**Add Test**:
|
|
607
|
+
```python
|
|
608
|
+
def test_hello_with_long_name_should_return_400():
|
|
609
|
+
"""WHEN name exceeds 50 chars, THEN return 400 error"""
|
|
610
|
+
long_name = "a" * 51
|
|
611
|
+
response = client.get(f"/hello?name={long_name}")
|
|
612
|
+
assert response.status_code == 400
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**Run**:
|
|
616
|
+
```bash
|
|
617
|
+
pytest tests/test_hello.py -v
|
|
339
618
|
```
|
|
340
619
|
|
|
341
|
-
|
|
620
|
+
**Result**: ✅ PASSED (all tests pass!)
|
|
342
621
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
-
|
|
622
|
+
**Commit**:
|
|
623
|
+
```bash
|
|
624
|
+
git add tests/test_hello.py src/hello/api.py
|
|
625
|
+
git commit -m "♻️ refactor(HELLO-001): add name length validation"
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
### Step 3: Documentation Sync (2 minutes)
|
|
631
|
+
|
|
632
|
+
#### Command
|
|
633
|
+
```bash
|
|
634
|
+
/alfred:3-sync
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
#### Alfred Automatically
|
|
638
|
+
```
|
|
639
|
+
✅ docs/api/hello.md - API documentation generated
|
|
640
|
+
✅ README.md - Usage examples added
|
|
641
|
+
✅ CHANGELOG.md - Release notes added
|
|
642
|
+
✅ TAG chain validated - All @TAG verified
|
|
643
|
+
```
|
|
347
644
|
|
|
348
|
-
|
|
645
|
+
#### Check Generated API Documentation
|
|
646
|
+
```bash
|
|
647
|
+
cat docs/api/hello.md
|
|
648
|
+
```
|
|
349
649
|
|
|
350
|
-
|
|
650
|
+
**Example Content**:
|
|
651
|
+
```markdown
|
|
652
|
+
# Hello API Documentation
|
|
351
653
|
|
|
352
|
-
|
|
353
|
-
✅ Test code (85%+ coverage)
|
|
354
|
-
✅ Implementation code (tracked with @TAG)
|
|
355
|
-
✅ API documentation (auto-generated)
|
|
356
|
-
✅ Change history (CHANGELOG)
|
|
357
|
-
✅ Git commit history (RED/GREEN/REFACTOR)
|
|
654
|
+
## GET /hello
|
|
358
655
|
|
|
359
|
-
|
|
656
|
+
### Description
|
|
657
|
+
Returns a personalized greeting based on provided name.
|
|
360
658
|
|
|
361
|
-
###
|
|
659
|
+
### Parameters
|
|
660
|
+
- `name` (query, optional): Person's name (default: "World", max 50 chars)
|
|
362
661
|
|
|
363
|
-
|
|
662
|
+
### Responses
|
|
663
|
+
- **200**: Success
|
|
664
|
+
```json
|
|
665
|
+
{ "message": "Hello, Alice!" }
|
|
666
|
+
```
|
|
667
|
+
- **400**: Name too long
|
|
364
668
|
|
|
669
|
+
### Examples
|
|
365
670
|
```bash
|
|
366
|
-
|
|
367
|
-
|
|
671
|
+
curl "http://localhost:8000/hello?name=Alice"
|
|
672
|
+
# → {"message": "Hello, Alice!"}
|
|
368
673
|
|
|
369
|
-
|
|
370
|
-
|
|
674
|
+
curl "http://localhost:8000/hello"
|
|
675
|
+
# → {"message": "Hello, World!"}
|
|
676
|
+
```
|
|
371
677
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
678
|
+
### Traceability
|
|
679
|
+
- `@SPEC:HELLO-001` - Requirements
|
|
680
|
+
- `@TEST:HELLO-001` - Tests
|
|
681
|
+
- `@CODE:HELLO-001:API` - Implementation
|
|
375
682
|
```
|
|
376
683
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
684
|
+
---
|
|
685
|
+
|
|
686
|
+
### Step 4: Verify TAG Chain (1 minute)
|
|
687
|
+
|
|
688
|
+
#### Command
|
|
689
|
+
```bash
|
|
690
|
+
rg '@(SPEC|TEST|CODE|DOC):HELLO-001' -n
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
#### Output (Complete Traceability)
|
|
694
|
+
```
|
|
695
|
+
.moai/specs/SPEC-HELLO-001/spec.md:7:# `@SPEC:HELLO-001: Hello World API
|
|
696
|
+
tests/test_hello.py:3:# `@TEST:HELLO-001 | SPEC: SPEC-HELLO-001.md
|
|
697
|
+
src/hello/api.py:3:# `@CODE:HELLO-001:API | SPEC: SPEC-HELLO-001.md
|
|
698
|
+
docs/api/hello.md:24:- `@SPEC:HELLO-001`
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
✅ **Complete chain**: SPEC → TEST → CODE → DOC (fully traceable!)
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
### Summary: What You've Accomplished
|
|
706
|
+
|
|
707
|
+
In just 10 minutes:
|
|
708
|
+
|
|
709
|
+
✅ **SPEC** - Clear requirements documented
|
|
710
|
+
✅ **TDD** - Red → Green → Refactor cycle
|
|
711
|
+
✅ **Implementation** - Simple, testable code with @CODE TAG
|
|
712
|
+
✅ **Documentation** - Auto-generated from code
|
|
713
|
+
✅ **Traceability** - Complete @TAG chain: SPEC → TEST → CODE → DOC
|
|
714
|
+
✅ **Git History** - Clean, semantic commits (🔴 🟢 ♻️)
|
|
384
715
|
|
|
385
716
|
---
|
|
386
717
|
|
|
@@ -1454,7 +1785,7 @@ The **implementation-planner** Sub-agent decides:
|
|
|
1454
1785
|
|
|
1455
1786
|
```python
|
|
1456
1787
|
# tests/test_todo_api.py
|
|
1457
|
-
# @TEST:TODO
|
|
1788
|
+
# @TEST:README-EXAMPLE-TODO | SPEC: SPEC-TODO-001.md
|
|
1458
1789
|
|
|
1459
1790
|
import pytest
|
|
1460
1791
|
from src.todo.api import create_todo, get_todos
|
|
@@ -1595,7 +1926,7 @@ git commit -m "♻️ refactor(TODO-001): add database models and validation"
|
|
|
1595
1926
|
|
|
1596
1927
|
```bash
|
|
1597
1928
|
✅ @SPEC:TODO-001 → .moai/specs/SPEC-TODO-001/spec.md
|
|
1598
|
-
✅ @TEST:TODO
|
|
1929
|
+
✅ @TEST:README-EXAMPLE-TODO → tests/test_todo_api.py
|
|
1599
1930
|
✅ @CODE:TODO-001 → src/todo/ (3 files)
|
|
1600
1931
|
✅ @DOC:TODO-001 → docs/api/todo.md (auto-generated)
|
|
1601
1932
|
|
|
@@ -1621,7 +1952,7 @@ git commit -m "♻️ refactor(TODO-001): add database models and validation"
|
|
|
1621
1952
|
- Request: {"title": "string (1-200 chars)"}
|
|
1622
1953
|
- Response: 201 Created with todo object
|
|
1623
1954
|
- Implemented in: @CODE:TODO-001:API
|
|
1624
|
-
- Tested in: @TEST:TODO
|
|
1955
|
+
- Tested in: @TEST:README-EXAMPLE-TODO
|
|
1625
1956
|
|
|
1626
1957
|
### Get All Todos
|
|
1627
1958
|
|
|
@@ -1672,7 +2003,7 @@ rg '@(SPEC|TEST|CODE|DOC):TODO-001' -n
|
|
|
1672
2003
|
|
|
1673
2004
|
# Output:
|
|
1674
2005
|
# .moai/specs/SPEC-TODO-001/spec.md:1: # @SPEC:TODO-001: Todo Management API
|
|
1675
|
-
# tests/test_todo_api.py:2: # @TEST:TODO
|
|
2006
|
+
# tests/test_todo_api.py:2: # @TEST:README-EXAMPLE-TODO | SPEC: SPEC-TODO-001.md
|
|
1676
2007
|
# src/todo/api.py:5: # @CODE:TODO-001:API | SPEC: SPEC-TODO-001.md
|
|
1677
2008
|
# src/todo/models.py:5: # @CODE:TODO-001:MODEL | SPEC: SPEC-TODO-001.md
|
|
1678
2009
|
# docs/api/todo.md:1: # @DOC:TODO-001: Todo Management API
|
|
@@ -1712,7 +2043,7 @@ git log --oneline | head -5
|
|
|
1712
2043
|
└─ 🔴 RED: Tests written first
|
|
1713
2044
|
└─ 🟢 GREEN: Minimal implementation
|
|
1714
2045
|
└─ ♻️ REFACTOR: Quality improvement
|
|
1715
|
-
└─ @TEST:TODO
|
|
2046
|
+
└─ @TEST:README-EXAMPLE-TODO, @CODE:TODO-001 TAGs assigned
|
|
1716
2047
|
└─ 87% coverage, TRUST 5 principles verified
|
|
1717
2048
|
|
|
1718
2049
|
✅ Documentation sync (1 minute)
|
|
@@ -2046,6 +2377,325 @@ If you need to temporarily disable hooks, edit `.claude/settings.json`:
|
|
|
2046
2377
|
|
|
2047
2378
|
---
|
|
2048
2379
|
|
|
2380
|
+
## 🔧 Beginner's Troubleshooting Guide
|
|
2381
|
+
|
|
2382
|
+
Common errors and solutions for getting started with MoAI-ADK.
|
|
2383
|
+
|
|
2384
|
+
### 1. uv is Not Installed
|
|
2385
|
+
|
|
2386
|
+
**Symptom**:
|
|
2387
|
+
```bash
|
|
2388
|
+
$ uv --version
|
|
2389
|
+
bash: uv: command not found
|
|
2390
|
+
```
|
|
2391
|
+
|
|
2392
|
+
**Cause**: uv not installed or not in PATH
|
|
2393
|
+
|
|
2394
|
+
**Solution**:
|
|
2395
|
+
|
|
2396
|
+
**macOS/Linux**:
|
|
2397
|
+
```bash
|
|
2398
|
+
# Install
|
|
2399
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
2400
|
+
|
|
2401
|
+
# Restart shell
|
|
2402
|
+
source ~/.bashrc # or ~/.zshrc
|
|
2403
|
+
|
|
2404
|
+
# Verify
|
|
2405
|
+
uv --version
|
|
2406
|
+
```
|
|
2407
|
+
|
|
2408
|
+
**Windows (PowerShell)**:
|
|
2409
|
+
```powershell
|
|
2410
|
+
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
2411
|
+
|
|
2412
|
+
# Verify
|
|
2413
|
+
uv --version
|
|
2414
|
+
```
|
|
2415
|
+
|
|
2416
|
+
**If still not working**:
|
|
2417
|
+
```bash
|
|
2418
|
+
# Manually add PATH (macOS/Linux)
|
|
2419
|
+
export PATH="$HOME/.cargo/bin:$PATH"
|
|
2420
|
+
|
|
2421
|
+
# Verify
|
|
2422
|
+
uv --version
|
|
2423
|
+
```
|
|
2424
|
+
|
|
2425
|
+
---
|
|
2426
|
+
|
|
2427
|
+
### 2. Python Version Mismatch
|
|
2428
|
+
|
|
2429
|
+
**Symptom**:
|
|
2430
|
+
```
|
|
2431
|
+
Python 3.8 found, but 3.13+ required
|
|
2432
|
+
```
|
|
2433
|
+
|
|
2434
|
+
**Cause**: Python version is less than 3.13
|
|
2435
|
+
|
|
2436
|
+
**Solution**:
|
|
2437
|
+
|
|
2438
|
+
**Option A: Using pyenv (Recommended)**:
|
|
2439
|
+
```bash
|
|
2440
|
+
# Install pyenv
|
|
2441
|
+
curl https://pyenv.run | bash
|
|
2442
|
+
|
|
2443
|
+
# Install Python 3.13
|
|
2444
|
+
pyenv install 3.13
|
|
2445
|
+
pyenv global 3.13
|
|
2446
|
+
|
|
2447
|
+
# Verify
|
|
2448
|
+
python --version # Python 3.13.x
|
|
2449
|
+
```
|
|
2450
|
+
|
|
2451
|
+
**Option B: Let uv manage Python**:
|
|
2452
|
+
```bash
|
|
2453
|
+
# uv automatically downloads Python 3.13
|
|
2454
|
+
uv python install 3.13
|
|
2455
|
+
uv python pin 3.13
|
|
2456
|
+
|
|
2457
|
+
# Verify
|
|
2458
|
+
python --version
|
|
2459
|
+
```
|
|
2460
|
+
|
|
2461
|
+
---
|
|
2462
|
+
|
|
2463
|
+
### 3. Git Not Found
|
|
2464
|
+
|
|
2465
|
+
**Symptom**:
|
|
2466
|
+
```
|
|
2467
|
+
✗ Git (runtime): not found
|
|
2468
|
+
```
|
|
2469
|
+
|
|
2470
|
+
**Cause**: Git not installed on system
|
|
2471
|
+
|
|
2472
|
+
**Solution**:
|
|
2473
|
+
|
|
2474
|
+
**macOS**:
|
|
2475
|
+
```bash
|
|
2476
|
+
# Using Homebrew
|
|
2477
|
+
brew install git
|
|
2478
|
+
|
|
2479
|
+
# Or install Xcode Command Line Tools
|
|
2480
|
+
xcode-select --install
|
|
2481
|
+
```
|
|
2482
|
+
|
|
2483
|
+
**Ubuntu/Debian**:
|
|
2484
|
+
```bash
|
|
2485
|
+
sudo apt update
|
|
2486
|
+
sudo apt install git -y
|
|
2487
|
+
```
|
|
2488
|
+
|
|
2489
|
+
**Windows**:
|
|
2490
|
+
```powershell
|
|
2491
|
+
# Using winget
|
|
2492
|
+
winget install Git.Git
|
|
2493
|
+
|
|
2494
|
+
# Or download from https://git-scm.com/download/win
|
|
2495
|
+
```
|
|
2496
|
+
|
|
2497
|
+
**Verify**:
|
|
2498
|
+
```bash
|
|
2499
|
+
git --version # git version 2.x.x
|
|
2500
|
+
```
|
|
2501
|
+
|
|
2502
|
+
---
|
|
2503
|
+
|
|
2504
|
+
### 4. Claude Code Doesn't Recognize .moai/ Folder
|
|
2505
|
+
|
|
2506
|
+
**Symptom**:
|
|
2507
|
+
```
|
|
2508
|
+
"Project not initialized"
|
|
2509
|
+
/alfred:0-project command doesn't work
|
|
2510
|
+
```
|
|
2511
|
+
|
|
2512
|
+
**Cause**: `.moai/` or `.claude/` folders missing or corrupted
|
|
2513
|
+
|
|
2514
|
+
**Solution**:
|
|
2515
|
+
|
|
2516
|
+
```bash
|
|
2517
|
+
# 1. Verify current directory
|
|
2518
|
+
pwd # /path/to/your-project
|
|
2519
|
+
|
|
2520
|
+
# 2. Check if .moai/ exists
|
|
2521
|
+
ls -la .moai/config.json
|
|
2522
|
+
|
|
2523
|
+
# 3. If missing, reinitialize
|
|
2524
|
+
moai-adk init .
|
|
2525
|
+
|
|
2526
|
+
# 4. Restart Claude Code
|
|
2527
|
+
exit # Exit Claude Code
|
|
2528
|
+
claude # Restart
|
|
2529
|
+
```
|
|
2530
|
+
|
|
2531
|
+
**Verify**:
|
|
2532
|
+
```bash
|
|
2533
|
+
moai-adk doctor
|
|
2534
|
+
# All items should show ✅
|
|
2535
|
+
```
|
|
2536
|
+
|
|
2537
|
+
---
|
|
2538
|
+
|
|
2539
|
+
### 5. Module Not Found When Running Tests
|
|
2540
|
+
|
|
2541
|
+
**Symptom**:
|
|
2542
|
+
```
|
|
2543
|
+
FAILED tests/test_hello.py - ModuleNotFoundError: No module named 'fastapi'
|
|
2544
|
+
```
|
|
2545
|
+
|
|
2546
|
+
**Cause**: Required package not installed
|
|
2547
|
+
|
|
2548
|
+
**Solution**:
|
|
2549
|
+
|
|
2550
|
+
```bash
|
|
2551
|
+
# Install dependencies from project root
|
|
2552
|
+
uv sync
|
|
2553
|
+
|
|
2554
|
+
# Or install specific packages
|
|
2555
|
+
uv add fastapi pytest
|
|
2556
|
+
|
|
2557
|
+
# Activate virtual environment
|
|
2558
|
+
source .venv/bin/activate # macOS/Linux
|
|
2559
|
+
.venv\Scripts\activate # Windows
|
|
2560
|
+
|
|
2561
|
+
# Run tests
|
|
2562
|
+
pytest tests/ -v
|
|
2563
|
+
```
|
|
2564
|
+
|
|
2565
|
+
---
|
|
2566
|
+
|
|
2567
|
+
### 6. `/alfred` Commands Not Working
|
|
2568
|
+
|
|
2569
|
+
**Symptom**:
|
|
2570
|
+
```
|
|
2571
|
+
Unknown command: /alfred:1-plan
|
|
2572
|
+
```
|
|
2573
|
+
|
|
2574
|
+
**Cause**: Claude Code version issue or `.claude/` folder corrupted
|
|
2575
|
+
|
|
2576
|
+
**Solution**:
|
|
2577
|
+
|
|
2578
|
+
```bash
|
|
2579
|
+
# 1. Check Claude Code version (need v1.5.0+)
|
|
2580
|
+
claude --version
|
|
2581
|
+
|
|
2582
|
+
# 2. Verify .claude/ folder
|
|
2583
|
+
ls -la .claude/commands/
|
|
2584
|
+
|
|
2585
|
+
# 3. Reinitialize if needed
|
|
2586
|
+
moai-adk init .
|
|
2587
|
+
|
|
2588
|
+
# 4. Restart Claude Code
|
|
2589
|
+
exit
|
|
2590
|
+
claude
|
|
2591
|
+
```
|
|
2592
|
+
|
|
2593
|
+
---
|
|
2594
|
+
|
|
2595
|
+
### 7. TAG Chain Broken
|
|
2596
|
+
|
|
2597
|
+
**Symptom**:
|
|
2598
|
+
```
|
|
2599
|
+
⚠ Orphan TAG detected: @TEST:HELLO-001 (no matching @SPEC)
|
|
2600
|
+
```
|
|
2601
|
+
|
|
2602
|
+
**Cause**: SPEC deleted or TAGs don't match
|
|
2603
|
+
|
|
2604
|
+
**Solution**:
|
|
2605
|
+
|
|
2606
|
+
```bash
|
|
2607
|
+
# 1. Validate TAG chain
|
|
2608
|
+
rg '@(SPEC|TEST|CODE):HELLO-001' -n
|
|
2609
|
+
|
|
2610
|
+
# 2. Check if SPEC exists
|
|
2611
|
+
rg '@SPEC:HELLO-001' -n .moai/specs/
|
|
2612
|
+
|
|
2613
|
+
# 3. If SPEC missing, regenerate
|
|
2614
|
+
/alfred:1-plan "feature description"
|
|
2615
|
+
|
|
2616
|
+
# Or fix TAG in test file
|
|
2617
|
+
# Edit tests/test_hello.py: @TEST:HELLO-001 → @TEST:README-EXAMPLE-HELLO
|
|
2618
|
+
|
|
2619
|
+
# 4. Sync
|
|
2620
|
+
/alfred:3-sync
|
|
2621
|
+
```
|
|
2622
|
+
|
|
2623
|
+
---
|
|
2624
|
+
|
|
2625
|
+
### 8. General Debugging Commands
|
|
2626
|
+
|
|
2627
|
+
**Check System Status**:
|
|
2628
|
+
```bash
|
|
2629
|
+
moai-adk doctor
|
|
2630
|
+
```
|
|
2631
|
+
Shows all dependency checks + recommendations
|
|
2632
|
+
|
|
2633
|
+
**Check Project Structure**:
|
|
2634
|
+
```bash
|
|
2635
|
+
tree -L 2 .moai/
|
|
2636
|
+
```
|
|
2637
|
+
|
|
2638
|
+
**Validate TAG Chain Integrity**:
|
|
2639
|
+
```bash
|
|
2640
|
+
rg '@(SPEC|TEST|CODE|DOC):' -n | wc -l
|
|
2641
|
+
```
|
|
2642
|
+
Shows total TAG count
|
|
2643
|
+
|
|
2644
|
+
**Check Git Status**:
|
|
2645
|
+
```bash
|
|
2646
|
+
git status
|
|
2647
|
+
git log --oneline -5
|
|
2648
|
+
```
|
|
2649
|
+
|
|
2650
|
+
---
|
|
2651
|
+
|
|
2652
|
+
### Debugging Checklist
|
|
2653
|
+
|
|
2654
|
+
When something goes wrong:
|
|
2655
|
+
|
|
2656
|
+
1. **Read**: Copy the complete error message
|
|
2657
|
+
2. **Search**: Check GitHub Issues for similar errors
|
|
2658
|
+
3. **Diagnose**: Run `moai-adk doctor`
|
|
2659
|
+
4. **Restart**: Quit and restart Claude Code
|
|
2660
|
+
5. **Ask**: Post in GitHub Discussions
|
|
2661
|
+
|
|
2662
|
+
Quick diagnosis with details:
|
|
2663
|
+
```bash
|
|
2664
|
+
moai-adk doctor --verbose
|
|
2665
|
+
```
|
|
2666
|
+
|
|
2667
|
+
---
|
|
2668
|
+
|
|
2669
|
+
### Need More Help?
|
|
2670
|
+
|
|
2671
|
+
- **GitHub Issues**: Search for similar problems
|
|
2672
|
+
- **GitHub Discussions**: Ask questions
|
|
2673
|
+
- **Discord Community**: Real-time chat support
|
|
2674
|
+
|
|
2675
|
+
**When reporting issues, include**:
|
|
2676
|
+
1. Output from `moai-adk doctor --verbose`
|
|
2677
|
+
2. Complete error message (screenshot or text)
|
|
2678
|
+
3. Steps to reproduce
|
|
2679
|
+
4. Your OS and version
|
|
2680
|
+
|
|
2681
|
+
---
|
|
2682
|
+
|
|
2683
|
+
### Frequently Asked Questions
|
|
2684
|
+
|
|
2685
|
+
**Q. Can I install on an existing project?**
|
|
2686
|
+
A. Yes! Run `moai-adk init .` - it only adds `.moai/` structure without touching existing code.
|
|
2687
|
+
|
|
2688
|
+
**Q. How do I run tests?**
|
|
2689
|
+
A. `/alfred:2-run` runs tests first. You can also run `pytest`, `pnpm test` separately.
|
|
2690
|
+
|
|
2691
|
+
**Q. How do I verify documentation is current?**
|
|
2692
|
+
A. Run `/alfred:3-sync` which generates a Sync Report. Check the PR to see the report.
|
|
2693
|
+
|
|
2694
|
+
**Q. Can I do this manually without Alfred?**
|
|
2695
|
+
A. Possible, but remember: SPEC → TEST → CODE → DOC order and keep @TAGs updated.
|
|
2696
|
+
|
|
2697
|
+
---
|
|
2698
|
+
|
|
2049
2699
|
## Additional Resources
|
|
2050
2700
|
|
|
2051
2701
|
| Purpose | Resource |
|