moai-adk 0.10.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.

Files changed (245) hide show
  1. moai_adk/core/project/phase_executor.py +4 -0
  2. moai_adk/core/tags/ci_validator.py +33 -3
  3. moai_adk/core/template_engine.py +6 -2
  4. moai_adk/templates/.github/workflows/moai-gitflow.yml +6 -1
  5. moai_adk/templates/.github/workflows/release.yml +6 -2
  6. moai_adk/templates/.github/workflows/tag-validation.yml +53 -8
  7. moai_adk/templates/CLAUDE.md +458 -67
  8. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/METADATA +28 -13
  9. moai_adk-0.11.0.dist-info/RECORD +77 -0
  10. moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
  11. moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
  12. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
  13. moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
  14. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -350
  15. moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -273
  16. moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
  17. moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
  18. moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -287
  19. moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -287
  20. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -326
  21. moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
  22. moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1189
  23. moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -728
  24. moai_adk/templates/.claude/commands/alfred/2-run.md +0 -545
  25. moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -683
  26. moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
  27. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -209
  28. moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -750
  29. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
  30. moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +0 -102
  31. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -102
  32. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -108
  33. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -102
  34. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -102
  35. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
  36. moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
  37. moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
  38. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -756
  39. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -198
  40. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
  41. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
  42. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -25
  43. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -175
  44. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -90
  45. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
  46. moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +0 -102
  47. moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +0 -102
  48. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -120
  49. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
  50. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
  51. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
  52. moai_adk/templates/.claude/settings.json +0 -144
  53. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
  54. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
  55. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
  56. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
  57. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
  58. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
  59. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
  60. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
  61. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
  62. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
  63. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
  64. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
  65. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
  66. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
  67. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
  68. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
  69. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
  70. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
  71. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
  72. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
  73. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
  74. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
  75. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
  76. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
  77. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
  78. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
  79. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
  80. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
  81. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
  82. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
  83. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
  84. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
  85. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
  86. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
  87. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
  88. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
  89. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
  90. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
  91. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
  92. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
  93. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
  94. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
  95. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
  96. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
  97. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
  98. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
  99. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
  100. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
  101. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
  102. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
  103. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
  104. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
  105. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
  106. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
  107. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -124
  108. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
  109. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
  110. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
  111. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
  112. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
  113. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
  114. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
  115. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
  116. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
  117. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
  118. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
  119. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
  120. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
  121. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
  122. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
  123. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
  124. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
  125. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
  126. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
  127. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
  128. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
  129. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
  130. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
  131. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
  132. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
  133. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
  134. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
  135. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
  136. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
  137. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
  138. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
  139. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
  140. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
  141. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
  142. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
  143. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
  144. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
  145. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
  146. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
  147. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
  148. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
  149. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
  150. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  151. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
  152. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
  153. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
  154. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
  155. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
  156. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
  157. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
  158. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
  159. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
  160. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
  161. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
  162. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
  163. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
  164. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -124
  165. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
  166. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
  167. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -124
  168. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
  169. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
  170. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
  171. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
  172. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
  173. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
  174. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
  175. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
  176. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -123
  177. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
  178. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
  179. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -431
  180. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
  181. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
  182. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
  183. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
  184. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
  185. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
  186. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
  187. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
  188. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -124
  189. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
  190. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
  191. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -123
  192. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
  193. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
  194. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
  195. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
  196. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
  197. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
  198. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
  199. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
  200. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
  201. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
  202. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
  203. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -127
  204. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
  205. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
  206. moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -482
  207. moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -278
  208. moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
  209. moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -477
  210. moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
  211. moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
  212. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
  213. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
  214. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -271
  215. moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
  216. moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -583
  217. moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -526
  218. moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -465
  219. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -328
  220. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -312
  221. moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
  222. moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -285
  223. moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -278
  224. moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -303
  225. moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
  226. moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -219
  227. moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -161
  228. moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
  229. moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
  230. moai_adk/templates/.moai/config.json +0 -113
  231. moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -208
  232. moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -369
  233. moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -539
  234. moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
  235. moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md +0 -150
  236. moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -218
  237. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -330
  238. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  239. moai_adk/templates/.moai/project/product.md +0 -161
  240. moai_adk/templates/.moai/project/structure.md +0 -156
  241. moai_adk/templates/.moai/project/tech.md +0 -227
  242. moai_adk-0.10.1.dist-info/RECORD +0 -309
  243. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/WHEEL +0 -0
  244. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/entry_points.txt +0 -0
  245. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,474 +0,0 @@
1
- ---
2
- name: Study with Alfred
3
- description: "Learning mode to easily learn new skills with Alfred"
4
- # Translations:
5
- # - ko: "Alfred와 함께 새로운 기술을 쉽게 학습하는 학습 모드"
6
- # - ja: "Alfredと一緒に新しいスキルを簡単に学習する学習モード"
7
- # - zh: "与Alfred一起轻松学习新技能的学习模式"
8
- ---
9
-
10
- # Study with Alfred
11
- > Interactive prompts rely on `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
12
-
13
- **Audience**: Developers looking to learn new technologies/languages/frameworks
14
-
15
- This is a learning mode where Alfred easily explains new skills and helps you practice, like a friend learning together.
16
-
17
- ## How to Learn with Alfred
18
-
19
- **Alfred's role**:
20
- - Explain complex concepts in an easy-to-understand manner
21
- - Improve understanding with real-life analogies
22
- - Practice together step by step
23
- - Answer frequently asked questions
24
-
25
- **Learning Flow**:
26
- ```
27
- 1. What (What is this?) → Understanding the basic concept
28
- 2. Why (Why do you need it?) → Reasons for use and advantages
29
- 3. How (How to use it?) → Practice-based learning
30
- 4. Practice → Integration with MoAI-ADK
31
- ```
32
-
33
- ---
34
-
35
- ## 4 stages of learning
36
-
37
- ### Step 1: What (What is this?)
38
-
39
- **Alfred**: "I'll summarize the new technology in one sentence."
40
-
41
- **Explanation method**:
42
- - One line summary
43
- - Real life analogy
44
- - 3 key concepts
45
-
46
- **Example**: FastAPI (Python web framework)
47
- ```
48
- Alfred: "FastAPI is a tool to quickly create APIs with Python."
49
-
50
- Real life analogy:
51
- A tool that quickly assembles API pieces like Lego blocks
52
-
53
- One-line summary:
54
- Python + automatic verification + fast speed = FastAPI
55
-
56
- Key concepts:
57
- 1. Automatic documentation (Swagger UI)
58
- 2. Type verification (Pydantic)
59
- 3. Asynchronous processing (async/await)
60
- ```
61
-
62
- ### Step 2: Why (Why do you need it?)
63
-
64
- **Alfred**: “Let’s think together about the problems this technology solves.”
65
-
66
- **How ​​to explain**:
67
- - Problem situation
68
- - Solution
69
- - Actual use case
70
-
71
- **Example**: Why use FastAPI?
72
- ```
73
- Let's think about it with Alfred:
74
-
75
- Problem:
76
- "Flask is slow, and Django is too heavy. Type validation also has to be done manually."
77
-
78
- Solution:
79
- FastAPI is fast, lightweight, and automatically verifies types.
80
-
81
- Real world usage:
82
- - Uber: Real-time location API
83
- - Netflix: Recommendation system API
84
- - Microsoft: Azure services API
85
-
86
- Alfred: “Used in places where high speed and stability are required!”
87
- ```
88
-
89
- ### Step 3: How (How do I use it?)
90
-
91
- **Alfred**: "Let's start with the simplest example"
92
-
93
- **Learning order**:
94
- 1. Minimal example (Hello World)
95
- 2. Practical example (CRUD API)
96
- 3. Frequently Asked Questions
97
-
98
- **Example**: How to use FastAPI
99
- ```
100
- Alfred: “Let’s start with the simplest example”
101
-
102
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
103
- [Minimum example]
104
-
105
- from fastapi import FastAPI # ← Import FastAPI
106
-
107
- app = FastAPI() # ← Create app
108
-
109
- @app.get("/hello") # ← Create /hello address
110
- def hello():
111
- return {"message": "Hello!"} # ← Send response
112
-
113
- Alfred: “An API is complete in just 5 lines!”
114
-
115
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
116
- [Practical example: User inquiry API]
117
-
118
- from fastapi import FastAPI, HTTPException
119
- from pydantic import BaseModel
120
-
121
- app = FastAPI()
122
-
123
- class User(BaseModel):
124
- id: int
125
- name: str
126
- email: str
127
-
128
- @app.get("/users/{user_id}")
129
- async def get_user(user_id: int) -> User:
130
- user = await db.find_user(user_id)
131
- if not user:
132
- raise HTTPException(status_code=404, detail="User not found")
133
- return user
134
-
135
- Alfred: "Automatic verification with Pydantic, error handling with HTTPException!"
136
-
137
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
138
- [Frequently Asked Questions]
139
-
140
- Q: Compared to Flask?
141
- Alfred: “FastAPI is 3 times faster and has automatic verification.”
142
-
143
- Q: What is async/await?
144
- Alfred: "It's a way to handle multiple tasks simultaneously. While waiting for one request, you can process another request."
145
-
146
- Q: When is it best to use it?
147
- Alfred: “It’s best for fast API, real-time processing, and microservices.”
148
- ```
149
-
150
- ### Step 4: Practice
151
-
152
- **Alfred**: “Now shall we try using it with MoAI-ADK?”
153
-
154
- **Practice method**:
155
- - Practice with SPEC → TEST → CODE flow
156
- - Application of @TAG system
157
- - Compliance with TRUST 5 principles
158
-
159
- **Example**: Creating a user API with FastAPI
160
- ```
161
- Alfred: “Let’s create it together with the MoAI-ADK workflow!”
162
-
163
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
164
- [Step 1: Write SPEC]
165
-
166
- /alfred:1-plan "User Lookup API"
167
-
168
- SPEC created by Alfred:
169
- ---
170
- id: USER-001
171
- version: 0.0.1
172
- status: draft
173
- ---
174
-
175
- # @SPEC:USER-001: User Lookup API
176
-
177
- ## Ubiquitous Requirements
178
- - The system must provide an API to search user information by user ID.
179
-
180
- ## Event-driven Requirements
181
- - WHEN If a user ID that exists is requested, the system SHOULD return user information
182
- - WHEN If a user ID that does not exist is requested, the system SHOULD return a 404 error.
183
-
184
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
185
- [Step 2: TDD implementation]
186
-
187
- /alfred:2-run USER-001
188
-
189
- Alfred: “I’ll write a test first”
190
-
191
- # @TEST:USER-001 | SPEC: SPEC-USER-001.md
192
- def test_get_user_returns_user():
193
- response = client.get("/users/1")
194
- assert response.status_code == 200
195
- assert response.json()["id"] == 1
196
-
197
- def test_get_user_not_found():
198
- response = client.get("/users/999")
199
- assert response.status_code == 404
200
-
201
- Alfred: “Now let me write the code”
202
-
203
- # @CODE:USER-001 | SPEC: SPEC-USER-001.md | TEST: tests/test_user.py
204
- @app.get("/users/{user_id}")
205
- async def get_user(user_id: int) -> User:
206
- """@CODE:USER-001: User Lookup API"""
207
- user = await db.users.find_by_id(user_id)
208
- if not user:
209
- raise HTTPException(status_code=404, detail="User not found")
210
- return user
211
-
212
- Alfred: “SPEC → TEST → CODE are all connected!”
213
-
214
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
215
- [Step 3: Document Synchronization]
216
-
217
- /alfred:3-sync
218
-
219
- Alfred: “I will verify the TAG chain”
220
-
221
- ✓ @SPEC:USER-001 → .moai/specs/SPEC-USER-001.md
222
- ✓ @TEST:USER-001 → tests/test_user.py
223
- ✓ @CODE:USER-001 → src/api/user.py
224
- ✓ @DOC:USER-001 → docs/api/user.md (automatically generated)
225
-
226
- Alfred: "Complete! FastAPI + MoAI-ADK work together!"
227
- ```
228
-
229
- ---
230
-
231
- ## Framework-specific study guide
232
-
233
- ### TypeScript + Express
234
-
235
- **Alfred**: "It's the most popular web framework in Node.js"
236
-
237
- #### What (What is this?)
238
- ```
239
- Alfred: "Express is a tool to easily create a web server with Node.js."
240
-
241
- Real life analogy:
242
- The role is like a waiter in a restaurant, taking requests and delivering responses.
243
-
244
- One-line summary:
245
- Node.js + middleware + routing = Express
246
-
247
- Key concepts:
248
- 1. Middleware chain
249
- 2. Routing
250
- 3. Request-response processing
251
- ```
252
-
253
- #### Why (Why do you need it?)
254
- ```
255
- Alfred: “More than 95% of Node.js APIs use Express”
256
-
257
- Problem: Node.js default http module is too complicated
258
- Solution: Express can be easily created with a simple API
259
-
260
- Practical Use:
261
- - Uber, Netflix, PayPal, etc.
262
- ```
263
-
264
- #### How (How do you use it?)
265
- ```
266
- Alfred: “It’s the simplest example.”
267
-
268
- import express from 'express';
269
-
270
- const app = express();
271
-
272
- app.get('/users/:id', async (req, res) => {
273
- const user = await db.users.findById(req.params.id);
274
- res.json(user);
275
- });
276
-
277
- app.listen(3000);
278
-
279
- Alfred: “All you need is this to complete your API server!”
280
- ```
281
-
282
- #### Practice (with MoAI-ADK)
283
- ```
284
- Alfred: “Now let’s make it TDD”
285
-
286
- // @TEST:USER-001 | SPEC: SPEC-USER-001.md
287
- test('GET /users/:id returns user', async () => {
288
- const res = await request(app).get('/users/1');
289
- expect(res.status).toBe(200);
290
- expect(res.body.id).toBe('1');
291
- });
292
-
293
- // @CODE:USER-001 | SPEC: SPEC-USER-001.md | TEST: tests/user.test.ts
294
- app.get('/users/:id', async (req, res) => {
295
- const user = await db.users.findById(req.params.id);
296
- if (!user) {
297
- return res.status(404).json({ error: 'Not found' });
298
- }
299
- res.json(user);
300
- });
301
-
302
- Alfred: “SPEC → TEST → CODE completed!”
303
- ```
304
-
305
- #### Frequently Asked Questions
306
- ```
307
- Q: What is middleware?
308
- Alfred: "It is a step that goes through before processing a request. It is used for logging, authentication, etc."
309
-
310
- Q: How to handle async errors?
311
- Alfred: "If you use the express-async-errors package, it will be handled automatically."
312
-
313
- Q: FastAPI vs Express?
314
- Alfred: “Express is flexible and has a large ecosystem, and FastAPI is fast and has strong automatic verification.”
315
- ```
316
-
317
- ---
318
-
319
- ### Python + FastAPI
320
-
321
- **Alfred**: "It's the standard for modern Python web frameworks."
322
-
323
- #### What (What is this?)
324
- ```
325
- Alfred: "FastAPI is a tool to create fast APIs with Python."
326
-
327
- Real life analogy:
328
- Automatically verify and document like robots in a car factory
329
-
330
- One-line summary:
331
- Python + Pydantic + Async = FastAPI
332
-
333
- Key concepts:
334
- 1. Automatic Verification (Pydantic)
335
- 2. Automatic documentation (Swagger)
336
- 3. Asynchronous processing (async/await)
337
- ```
338
-
339
- #### Why (Why do you need it?)
340
- ```
341
- Alfred: “3x faster than Flask and more concise than Django”
342
-
343
- Problem: Flask is slow, Django is heavy
344
- Solution: FastAPI is fast, lightweight, yet powerful
345
-
346
- Actual use:
347
- - Uber, Microsoft, Netflix
348
- ```
349
-
350
- #### How (How do you use it?)
351
- ```
352
- Alfred: “It’s a basic example.”
353
-
354
- from fastapi import FastAPI
355
- from pydantic import BaseModel
356
-
357
- app = FastAPI()
358
-
359
- class User(BaseModel):
360
- id: int
361
- name: str
362
-
363
- @app.get("/users/{user_id}")
364
- async def get_user(user_id: int) -> User:
365
- return await db.find_user(user_id)
366
-
367
- Alfred: “Pydantic verifies it automatically!”
368
- ```
369
-
370
- #### Practice (with MoAI-ADK)
371
- ```
372
- Alfred: “Let’s build it together with TDD”
373
-
374
- # @TEST:USER-001 | SPEC: SPEC-USER-001.md
375
- def test_get_user():
376
- response = client.get("/users/1")
377
- assert response.status_code == 200
378
-
379
- # @CODE:USER-001 | SPEC: SPEC-USER-001.md | TEST: tests/test_user.py
380
- @app.get("/users/{user_id}")
381
- async def get_user(user_id: int) -> User:
382
- """@CODE:USER-001: User query"""
383
- user = await db.find_user(user_id)
384
- if not user:
385
- raise HTTPException(status_code=404)
386
- return user
387
-
388
- Alfred: “Complete!”
389
- ```
390
-
391
- #### Frequently Asked Questions
392
- ```
393
- Q: What is Pydantic?
394
- Alfred: “It is a library that automatically verifies data.”
395
-
396
- Q: Is async/await really necessary?
397
- Alfred: "If you need fast performance, it's essential, otherwise the sync function is fine."
398
-
399
- Q: Django vs FastAPI?
400
- Alfred: "Django is full-stack, FastAPI is API-only."
401
- ```
402
-
403
- ---
404
-
405
- ## Study Tips
406
-
407
- ### Alfred's Study Advice
408
-
409
- **1. Start small**
410
- ```
411
- Alfred: "Let's start with Hello World"
412
-
413
- Examples that are too complex can be confusing.
414
- Start with the simplest example and expand gradually.
415
- ```
416
-
417
- **2. Practice-oriented**
418
- ```
419
- Alfred: "Try the code yourself"
420
-
421
- Just read it and forget it right away.
422
- Try it yourself, run it, and correct the errors.
423
- ```
424
-
425
- **3. Integration with MoAI-ADK**
426
- ```
427
- Alfred: “I learn MoAI-ADK while learning new technologies.”
428
-
429
- If you practice with the SPEC → TEST → CODE flow,
430
- You can kill two birds with one stone!
431
- ```
432
-
433
- **4. Use frequently asked questions**
434
- ```
435
- Alfred: “If you have any questions, feel free to ask”
436
-
437
- “Why do I have to do this?”
438
- “Is there another way?”
439
- “How do I use it in practice?”
440
- ```
441
-
442
- ### Recommended learning sequence
443
-
444
- ```
445
- Step 1: Familiarize yourself with MoAI-ADK
446
- → /output-style moai-adk-learning
447
-
448
- Step 2: Learning a new framework (now)
449
- → /output-style study-with-alfred
450
-
451
- Step 3: Apply practical projects
452
- → /output-style agentic-coding
453
- ```
454
-
455
- ---
456
-
457
- ## Style conversion guide
458
-
459
- ### When this style suits you
460
- - ✅ When learning a new language/framework
461
- - ✅ When you want to easily understand complex concepts
462
- - ✅ When you want to learn practice-oriented
463
- - ✅ When you want to learn by talking with Alfred
464
-
465
- ### Switch to a different style
466
-
467
- | Situation | Recommended Style | Conversion command |
468
- | ----------------------------- | ----------------- | --------------------------------- |
469
- | First time using MoAI-ADK | moai-adk-learning | `/output-style moai-adk-learning` |
470
- | Practical project development | agentic-coding | `/output-style agentic-coding` |
471
-
472
- ---
473
-
474
- **Study with Alfred**: This is a learning mode that allows you to easily learn new skills as if talking with Alfred and apply them directly to practice by integrating with MoAI-ADK.
@@ -1,144 +0,0 @@
1
- {
2
- "env": {
3
- "MOAI_RUNTIME": "python",
4
- "MOAI_AUTO_ROUTING": "true",
5
- "MOAI_PERFORMANCE_MONITORING": "true",
6
- "PYTHON_ENV": "{{PROJECT_MODE}}"
7
- },
8
- "hooks": {
9
- "SessionStart": [
10
- {
11
- "hooks": [
12
- {
13
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/session_start__show_project_info.py",
14
- "type": "command"
15
- }
16
- ]
17
- }
18
- ],
19
- "PreToolUse": [
20
- {
21
- "hooks": [
22
- {
23
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/pre_tool__auto_checkpoint.py",
24
- "type": "command"
25
- }
26
- ],
27
- "matcher": "Edit|Write|MultiEdit"
28
- }
29
- ],
30
- "UserPromptSubmit": [
31
- {
32
- "hooks": [
33
- {
34
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/user_prompt__jit_load_docs.py",
35
- "type": "command"
36
- }
37
- ]
38
- }
39
- ],
40
- "SessionEnd": [
41
- {
42
- "hooks": [
43
- {
44
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/session_end__cleanup.py",
45
- "type": "command"
46
- }
47
- ]
48
- }
49
- ],
50
- "PostToolUse": [
51
- {
52
- "hooks": [
53
- {
54
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/post_tool__log_changes.py",
55
- "type": "command"
56
- }
57
- ],
58
- "matcher": "Edit|Write|MultiEdit"
59
- }
60
- ]
61
- },
62
- "permissions": {
63
- "defaultMode": "default",
64
- "allow": [
65
- "Task",
66
- "Read",
67
- "Write",
68
- "Edit",
69
- "MultiEdit",
70
- "NotebookEdit",
71
- "Grep",
72
- "Glob",
73
- "TodoWrite",
74
- "WebFetch",
75
- "WebSearch",
76
- "BashOutput",
77
- "KillShell",
78
- "Bash(git:*)",
79
- "Bash(rg:*)",
80
- "Bash(ls:*)",
81
- "Bash(echo:*)",
82
- "Bash(which:*)",
83
- "Bash(make:*)",
84
- "Bash(python:*)",
85
- "Bash(python3:*)",
86
- "Bash(uv:*)",
87
- "Bash(pytest:*)",
88
- "Bash(mypy:*)",
89
- "Bash(ruff:*)",
90
- "Bash(black:*)",
91
- "Bash(coverage:*)",
92
- "Bash(moai-adk:*)",
93
- "Bash(alfred:*)",
94
- "Bash(gh pr create:*)",
95
- "Bash(gh pr view:*)",
96
- "Bash(gh pr list:*)",
97
- "Bash(gh pr merge:*)",
98
- "Bash(gh repo view:*)",
99
- "Bash(gh issue:*)",
100
- "Bash(mkdir:*)",
101
- "Bash(touch:*)",
102
- "Bash(cp:*)",
103
- "Bash(mv:*)",
104
- "Bash(tree:*)",
105
- "Bash(diff:*)",
106
- "Bash(wc:*)",
107
- "Bash(sort:*)",
108
- "Bash(uniq:*)"
109
- ],
110
- "ask": [
111
- "Bash(git push:*)",
112
- "Bash(git merge:*)",
113
- "Bash(gh pr merge:*)",
114
- "Bash(uv add:*)",
115
- "Bash(uv remove:*)",
116
- "Bash(pip install:*)",
117
- "Bash(pip3 install:*)",
118
- "Bash(rm:*)",
119
- "Bash(sudo:*)",
120
- "Bash(rm -rf:*)"
121
- ],
122
- "deny": [
123
- "Read(./.env)",
124
- "Read(./.env.*)",
125
- "Read(./secrets/**)",
126
- "Read(~/.ssh/**)",
127
- "Read(~/.aws/**)",
128
- "Read(~/.config/gcloud/**)",
129
- "Bash(rm -rf /:*)",
130
- "Bash(rm -rf /*:*)",
131
- "Bash(rm -rf C\\:/:*)",
132
- "Bash(rm -rf C\\:/*:*)",
133
- "Bash(del /S /Q C\\:/:*)",
134
- "Bash(rmdir /S /Q C\\:/:*)",
135
- "Bash(format:*)",
136
- "Bash(chmod -R 777:*)",
137
- "Bash(dd:*)",
138
- "Bash(mkfs:*)",
139
- "Bash(fdisk:*)",
140
- "Bash(reboot:*)",
141
- "Bash(shutdown:*)"
142
- ]
143
- }
144
- }