moai-adk 0.4.5__py3-none-any.whl → 0.20.1__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 (433) hide show
  1. moai_adk/__init__.py +1 -1
  2. moai_adk/__main__.py +74 -1
  3. moai_adk/cli/commands/__init__.py +1 -1
  4. moai_adk/cli/commands/analyze.py +119 -0
  5. moai_adk/cli/commands/backup.py +25 -1
  6. moai_adk/cli/commands/doctor.py +31 -5
  7. moai_adk/cli/commands/improve_user_experience.py +307 -0
  8. moai_adk/cli/commands/init.py +111 -10
  9. moai_adk/cli/commands/status.py +33 -3
  10. moai_adk/cli/commands/update.py +921 -130
  11. moai_adk/cli/commands/validate_links.py +120 -0
  12. moai_adk/cli/prompts/init_prompts.py +22 -87
  13. moai_adk/core/analysis/__init__.py +9 -0
  14. moai_adk/core/analysis/session_analyzer.py +388 -0
  15. moai_adk/core/analysis/tag_chain_analyzer.py +344 -0
  16. moai_adk/core/analysis/tag_chain_repair.py +879 -0
  17. moai_adk/core/config/__init__.py +19 -0
  18. moai_adk/core/config/migration.py +235 -0
  19. moai_adk/core/git/__init__.py +1 -1
  20. moai_adk/core/git/branch.py +1 -1
  21. moai_adk/core/git/commit.py +1 -1
  22. moai_adk/core/git/manager.py +1 -1
  23. moai_adk/core/issue_creator.py +313 -0
  24. moai_adk/core/mcp/setup.py +56 -0
  25. moai_adk/core/mcp/setup_old.py +296 -0
  26. moai_adk/core/project/backup_utils.py +1 -1
  27. moai_adk/core/project/checker.py +2 -2
  28. moai_adk/core/project/detector.py +211 -12
  29. moai_adk/core/project/initializer.py +85 -15
  30. moai_adk/core/project/phase_executor.py +76 -13
  31. moai_adk/core/project/validator.py +13 -13
  32. moai_adk/core/quality/__init__.py +1 -1
  33. moai_adk/core/quality/trust_checker.py +1 -1
  34. moai_adk/core/quality/validators/__init__.py +1 -1
  35. moai_adk/core/quality/validators/base_validator.py +1 -1
  36. moai_adk/core/tags/__init__.py +86 -0
  37. moai_adk/core/tags/auto_corrector.py +693 -0
  38. moai_adk/core/tags/ci_validator.py +463 -0
  39. moai_adk/core/tags/cli.py +283 -0
  40. moai_adk/core/tags/generator.py +109 -0
  41. moai_adk/core/tags/inserter.py +99 -0
  42. moai_adk/core/tags/mapper.py +126 -0
  43. moai_adk/core/tags/parser.py +76 -0
  44. moai_adk/core/tags/policy_validator.py +580 -0
  45. moai_adk/core/tags/pre_commit_validator.py +421 -0
  46. moai_adk/core/tags/reporter.py +956 -0
  47. moai_adk/core/tags/rollback_manager.py +525 -0
  48. moai_adk/core/tags/tags.py +149 -0
  49. moai_adk/core/tags/validator.py +897 -0
  50. moai_adk/core/template/__init__.py +1 -1
  51. moai_adk/core/template/backup.py +1 -1
  52. moai_adk/core/template/merger.py +50 -1
  53. moai_adk/core/template/processor.py +119 -13
  54. moai_adk/core/template_engine.py +268 -0
  55. moai_adk/templates/.claude/agents/alfred/backend-expert.md +348 -0
  56. moai_adk/templates/.claude/agents/alfred/cc-manager.md +209 -944
  57. moai_adk/templates/.claude/agents/alfred/database-expert.md +352 -0
  58. moai_adk/templates/.claude/agents/alfred/debug-helper.md +34 -5
  59. moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
  60. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +38 -8
  61. moai_adk/templates/.claude/agents/alfred/format-expert.md +469 -0
  62. moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
  63. moai_adk/templates/.claude/agents/alfred/git-manager.md +128 -9
  64. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +104 -6
  65. moai_adk/templates/.claude/agents/alfred/project-manager.md +88 -16
  66. moai_adk/templates/.claude/agents/alfred/quality-gate.md +36 -9
  67. moai_adk/templates/.claude/agents/alfred/security-expert.md +270 -0
  68. moai_adk/templates/.claude/agents/alfred/skill-factory.md +865 -0
  69. moai_adk/templates/.claude/agents/alfred/spec-builder.md +214 -43
  70. moai_adk/templates/.claude/agents/alfred/tag-agent.md +111 -9
  71. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +309 -160
  72. moai_adk/templates/.claude/agents/alfred/trust-checker.md +36 -7
  73. moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +605 -0
  74. moai_adk/templates/.claude/commands/alfred/0-project.md +393 -966
  75. moai_adk/templates/.claude/commands/alfred/1-plan.md +651 -367
  76. moai_adk/templates/.claude/commands/alfred/2-run.md +388 -241
  77. moai_adk/templates/.claude/commands/alfred/3-sync.md +1921 -410
  78. moai_adk/templates/.claude/commands/alfred/9-feedback.md +153 -0
  79. moai_adk/templates/.claude/commands/alfred/release-new.md +3604 -0
  80. moai_adk/templates/.claude/hooks/alfred/core/project.py +484 -20
  81. moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
  82. moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
  83. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
  84. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
  85. moai_adk/templates/.claude/hooks/alfred/post_tool__enable_streaming_ui.py +50 -0
  86. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +93 -0
  87. moai_adk/templates/.claude/hooks/alfred/post_tool__tag_auto_corrector.py +407 -0
  88. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +99 -0
  89. moai_adk/templates/.claude/hooks/alfred/pre_tool__realtime_tag_monitor.py +335 -0
  90. moai_adk/templates/.claude/hooks/alfred/pre_tool__tag_policy_validator.py +325 -0
  91. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +93 -0
  92. moai_adk/templates/.claude/hooks/alfred/session_start__auto_cleanup.py +580 -0
  93. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +298 -0
  94. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +170 -0
  95. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
  96. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
  97. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
  98. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +230 -0
  99. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
  100. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
  101. moai_adk/templates/.claude/hooks/alfred/shared/handlers/daily_analysis.py +351 -0
  102. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
  103. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +174 -0
  104. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +87 -0
  105. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +61 -0
  106. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +111 -0
  107. moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
  108. moai_adk/templates/.claude/hooks/alfred/utils/hook_config.py +94 -0
  109. moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
  110. moai_adk/templates/.claude/output-styles/alfred/alfred-moai-adk-beginner.md +267 -0
  111. moai_adk/templates/.claude/output-styles/alfred/keating-personal-tutor.md +440 -0
  112. moai_adk/templates/.claude/output-styles/alfred/r2d2-agentic-coding.md +583 -0
  113. moai_adk/templates/.claude/settings.json +96 -14
  114. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
  115. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
  116. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +242 -0
  117. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/SKILL.md +237 -0
  118. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/examples.md +871 -0
  119. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/reference.md +653 -0
  120. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/README.md +162 -0
  121. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/SKILL.md +227 -0
  122. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/examples.md +354 -0
  123. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/reference.md +158 -0
  124. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +179 -79
  125. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/examples.md +117 -0
  126. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/scripts/pre-review-check.sh +62 -0
  127. moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +132 -0
  128. moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
  129. moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +444 -0
  130. moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
  131. moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
  132. moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
  133. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
  134. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
  135. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
  136. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
  137. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
  138. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
  139. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +229 -0
  140. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
  141. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
  142. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +87 -73
  143. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
  144. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
  145. moai_adk/templates/.claude/skills/moai-alfred-personas/README.md +42 -0
  146. moai_adk/templates/.claude/skills/moai-alfred-personas/SKILL.md +429 -0
  147. moai_adk/templates/.claude/skills/moai-alfred-personas/examples.md +520 -0
  148. moai_adk/templates/.claude/skills/moai-alfred-personas/reference.md +405 -0
  149. moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
  150. moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
  151. moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +369 -0
  152. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
  153. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
  154. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
  155. moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
  156. moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
  157. moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +539 -0
  158. moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +320 -0
  159. moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
  160. moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
  161. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
  162. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
  163. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +161 -0
  164. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
  165. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
  166. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
  167. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
  168. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
  169. moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
  170. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +269 -0
  171. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
  172. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +298 -0
  173. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
  174. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +307 -0
  175. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
  176. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +252 -0
  177. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
  178. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
  179. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
  180. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +199 -0
  181. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
  182. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +316 -0
  183. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
  184. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +263 -0
  185. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
  186. moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +482 -0
  187. moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +303 -0
  188. moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
  189. moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +477 -0
  190. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
  191. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
  192. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
  193. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
  194. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +273 -0
  195. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
  196. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +583 -0
  197. moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +526 -0
  198. moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +608 -0
  199. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +328 -0
  200. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +312 -0
  201. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
  202. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +285 -0
  203. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +278 -0
  204. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +303 -0
  205. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +291 -0
  206. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
  207. moai_adk/templates/.claude/skills/moai-change-logger/SKILL.md +563 -0
  208. moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
  209. moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
  210. moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
  211. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +234 -43
  212. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
  213. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
  214. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +97 -69
  215. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
  216. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
  217. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +97 -72
  218. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
  219. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
  220. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +97 -74
  221. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
  222. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
  223. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +98 -74
  224. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
  225. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
  226. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +102 -73
  227. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
  228. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
  229. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +97 -73
  230. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
  231. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
  232. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +97 -67
  233. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
  234. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
  235. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +97 -79
  236. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
  237. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
  238. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -71
  239. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
  240. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
  241. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +265 -64
  242. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1064 -0
  243. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1047 -0
  244. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +87 -78
  245. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
  246. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
  247. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +87 -70
  248. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
  249. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
  250. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +87 -86
  251. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
  252. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +80 -62
  254. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +207 -50
  257. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +90 -71
  260. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +78 -58
  263. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +78 -51
  266. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-trust/.!11330!examples.md +0 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +253 -32
  270. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
  272. moai_adk/templates/.claude/skills/moai-jit-docs-enhanced/SKILL.md +460 -0
  273. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +98 -74
  274. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
  275. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
  276. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +98 -76
  277. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
  278. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
  279. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +2358 -70
  280. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
  281. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
  282. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +2962 -68
  283. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
  284. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
  285. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +1898 -70
  286. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
  287. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
  288. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +1465 -68
  289. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
  290. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
  291. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +2364 -66
  292. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
  293. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
  294. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +1630 -69
  295. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
  297. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +89 -61
  298. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +735 -66
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +97 -73
  304. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
  305. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
  306. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +98 -73
  307. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
  308. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
  309. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +1834 -70
  310. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
  311. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
  312. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +99 -74
  313. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
  314. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
  315. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +97 -74
  316. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
  317. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
  318. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +98 -74
  319. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
  320. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
  321. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +1959 -69
  322. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
  323. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
  324. moai_adk/templates/.claude/skills/moai-lang-template/SKILL.md +348 -0
  325. moai_adk/templates/.claude/skills/moai-lang-template/VARIABLES.md +98 -0
  326. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +1230 -66
  327. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
  328. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
  329. moai_adk/templates/.claude/skills/moai-learning-optimizer/SKILL.md +575 -0
  330. moai_adk/templates/.claude/skills/moai-project-batch-questions/README.md +50 -0
  331. moai_adk/templates/.claude/skills/moai-project-batch-questions/SKILL.md +304 -0
  332. moai_adk/templates/.claude/skills/moai-project-batch-questions/examples.md +417 -0
  333. moai_adk/templates/.claude/skills/moai-project-batch-questions/reference.md +704 -0
  334. moai_adk/templates/.claude/skills/moai-project-config-manager/README.md +87 -0
  335. moai_adk/templates/.claude/skills/moai-project-config-manager/SKILL.md +552 -0
  336. moai_adk/templates/.claude/skills/moai-project-config-manager/examples.md +1109 -0
  337. moai_adk/templates/.claude/skills/moai-project-config-manager/reference.md +514 -0
  338. moai_adk/templates/.claude/skills/moai-project-config-manager/validate.py +106 -0
  339. moai_adk/templates/.claude/skills/moai-project-documentation/README.md +11 -0
  340. moai_adk/templates/.claude/skills/moai-project-documentation/SKILL.md +622 -0
  341. moai_adk/templates/.claude/skills/moai-project-documentation/examples.md +20 -0
  342. moai_adk/templates/.claude/skills/moai-project-documentation/reference.md +12 -0
  343. moai_adk/templates/.claude/skills/moai-project-language-initializer/README.md +152 -0
  344. moai_adk/templates/.claude/skills/moai-project-language-initializer/SKILL.md +285 -0
  345. moai_adk/templates/.claude/skills/moai-project-language-initializer/examples.md +333 -0
  346. moai_adk/templates/.claude/skills/moai-project-language-initializer/reference.md +386 -0
  347. moai_adk/templates/.claude/skills/moai-project-template-optimizer/README.md +49 -0
  348. moai_adk/templates/.claude/skills/moai-project-template-optimizer/SKILL.md +319 -0
  349. moai_adk/templates/.claude/skills/moai-project-template-optimizer/examples.md +58 -0
  350. moai_adk/templates/.claude/skills/moai-project-template-optimizer/reference.md +123 -0
  351. moai_adk/templates/.claude/skills/moai-session-info/SKILL.md +314 -0
  352. moai_adk/templates/.claude/skills/moai-streaming-ui/SKILL.md +552 -0
  353. moai_adk/templates/.claude/skills/moai-tag-policy-validator/SKILL.md +570 -0
  354. moai_adk/templates/.git-hooks/pre-commit +66 -0
  355. moai_adk/templates/.git-hooks/pre-push +255 -0
  356. moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
  357. moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
  358. moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
  359. moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
  360. moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
  361. moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
  362. moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
  363. moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
  364. moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
  365. moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
  366. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
  367. moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
  368. moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
  369. moai_adk/templates/.github/workflows/release.yml +118 -0
  370. moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
  371. moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
  372. moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
  373. moai_adk/templates/.github/workflows/spec-issue-sync.yml +338 -0
  374. moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
  375. moai_adk/templates/.github/workflows/tag-report.yml +269 -0
  376. moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
  377. moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
  378. moai_adk/templates/.mcp.json +31 -0
  379. moai_adk/templates/.moai/config.json +80 -7
  380. moai_adk/templates/CLAUDE.md +562 -546
  381. moai_adk/utils/banner.py +5 -5
  382. moai_adk/utils/common.py +294 -0
  383. moai_adk/utils/link_validator.py +235 -0
  384. moai_adk/utils/logger.py +8 -8
  385. moai_adk/utils/user_experience.py +451 -0
  386. moai_adk-0.20.1.dist-info/METADATA +233 -0
  387. moai_adk-0.20.1.dist-info/RECORD +404 -0
  388. moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
  389. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -156
  390. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -85
  391. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
  392. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -92
  393. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -70
  394. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -41
  395. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -636
  396. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -692
  397. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -470
  398. moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
  399. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -103
  400. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -95
  401. moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
  402. moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
  403. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -97
  404. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -90
  405. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -99
  406. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
  407. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
  408. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
  409. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
  410. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
  411. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
  412. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
  413. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
  414. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
  415. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
  416. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
  417. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
  418. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
  419. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
  420. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
  421. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
  422. moai_adk/templates/.moai/memory/development-guide.md +0 -344
  423. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
  424. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  425. moai_adk/templates/.moai/project/product.md +0 -161
  426. moai_adk/templates/.moai/project/structure.md +0 -156
  427. moai_adk/templates/.moai/project/tech.md +0 -227
  428. moai_adk/templates/__init__.py +0 -2
  429. moai_adk-0.4.5.dist-info/METADATA +0 -369
  430. moai_adk-0.4.5.dist-info/RECORD +0 -152
  431. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/WHEEL +0 -0
  432. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/entry_points.txt +0 -0
  433. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,41 +0,0 @@
1
- #!/usr/bin/env python3
2
- """User interaction handlers
3
-
4
- Handling the UserPromptSubmit event
5
- """
6
-
7
- from core import HookPayload, HookResult
8
- from core.context import get_jit_context
9
-
10
-
11
- def handle_user_prompt_submit(payload: HookPayload) -> HookResult:
12
- """UserPromptSubmit event handler
13
-
14
- Analyze user prompts and automatically add relevant documents into context.
15
- Follow the just-in-time (JIT) retrieval principle to load only the documents you need.
16
-
17
- Args:
18
- payload: Claude Code event payload
19
- (includes userPrompt, cwd keys)
20
-
21
- Returns:
22
- HookResult(
23
- message=Number of Files loaded (or None),
24
- contextFiles=Recommended document path list
25
- )
26
-
27
- TDD History:
28
- - RED: JIT document loading scenario testing
29
- - GREEN: Recommend documents by calling get_jit_context()
30
- - REFACTOR: Message conditional display (only when there is a file)
31
- """
32
- user_prompt = payload.get("userPrompt", "")
33
- cwd = payload.get("cwd", ".")
34
- context_files = get_jit_context(user_prompt, cwd)
35
-
36
- message = f"📎 Loaded {len(context_files)} context file(s)" if context_files else None
37
-
38
- return HookResult(message=message, contextFiles=context_files)
39
-
40
-
41
- __all__ = ["handle_user_prompt_submit"]
@@ -1,636 +0,0 @@
1
- ---
2
- name: Agentic Coding
3
- description: Agent-based coding mode that integrates hands-on development and collaboration
4
- ---
5
-
6
- # Agentic Coding
7
- > Interactive prompts rely on `Skill("moai-alfred-tui-survey")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
8
-
9
- **Audience**: Professional developers, team leaders, architects
10
-
11
- Alfred SuperAgent is an integrated coding mode that automatically switches between rapid development and collaboration by coordinating nine specialized agents.
12
-
13
- ## ▶◀ Alfred SuperAgent
14
-
15
- Alfred is the central orchestrator of MoAI-ADK, coordinating nine specialized agents.
16
-
17
- ### 9 professional agents
18
-
19
- | agent | Job duties | Area of ​​expertise | call |
20
- | --------------------- | ---------------------- | --------------------------------- | ---------------------- |
21
- | **spec-builder** 🏗️ | System Architect | SPEC Creation, EARS Specification | `/alfred:1-plan` |
22
- | **code-builder** 💎 | Senior Developer | TDD Implementation | `/alfred:2-run` |
23
- | **doc-syncer** 📖 | Technical writer | Document Synchronization | `/alfred:3-sync` |
24
- | **tag-agent** 🏷️ | Knowledge Manager | TAG traceability | `@agent-tag-agent` |
25
- | **git-manager** 🚀 | Release Engineer | Git workflow | `@agent-git-manager` |
26
- | **debug-helper** 🔬 | Troubleshooting expert | Error Diagnosis | `@agent-debug-helper` |
27
- | **trust-checker** ✅ | Quality Assurance Lead | TRUST verification | `@agent-trust-checker` |
28
- | **cc-manager** 🛠️ | DevOps Engineer | Claude Code Settings | `@agent-cc-manager` |
29
- | **project-manager** 📋 | Project Manager | Project initialization | `/alfred:0-project` |
30
-
31
- ### Alfred Orchestration
32
-
33
- ```
34
- User request → Alfred analysis → Task routing
35
- ├─ Direct processing (simple inquiry)
36
- ├─ Single Agent (single expert delegation)
37
- ├─ Sequential (Sequential: 1-spec → 2-build → 3-sync)
38
- └─ Parallel (Parallel: Test + Lint + Build)
39
- → Quality gate verification → Integrated reporting of Alfred results
40
- ```
41
-
42
- ## Two ways to work
43
-
44
- ### ⚡ Fast Mode (default)
45
-
46
- **Automatic Activation**: Fast development, implementation-focused work
47
-
48
- - SPEC → TDD → ​​SYNC automation
49
- - Concise technical communication
50
- - Support for 8 languages ​​(TypeScript, Python, Go, Rust, Java, Dart, Swift, Kotlin)
51
- - Automatic verification of TRUST 5 principles
52
- - Real-time confirmation of TAG traceability
53
-
54
- **Features**:
55
- - Minimum instructions, maximum efficiency
56
- - Decision-driven rather than trade-offs
57
- - Automated quality gates
58
-
59
- ### 🤝 Collab Mode
60
-
61
- **Automatically activated**: When detecting keywords “collaboration”, “brainstorming”, “design”, “review”, “opinion”, “what do you think”
62
-
63
- - Question-based conversation
64
- - Trade-off analysis
65
- - Providing architecture diagrams
66
- - Real-time code review
67
- - Decision support
68
-
69
- **Features**:
70
- - Emphasis on equal partnership
71
- - Presentation of various alternatives
72
- - Tone of thinking together
73
-
74
- **Mode Switching**: Automatically switched, no explicit switching required
75
-
76
- ## Core principles
77
-
78
- - **SPEC priority**: Everything starts with @SPEC:ID (no specification, no code)
79
- - **TAG integrity**: `rg` scan-based real-time verification (CODE-FIRST principle)
80
- - **TRUST compliance**: 5-principle automatic verification and quality gate
81
- - **Multilingual**: Supports 8 languages (TypeScript, Python, Go, Rust, Java, Dart, Swift, Kotlin)
82
- - **Technical clarity**: Concise communication, trade-off-focused explanations
83
-
84
- ## 3-step workflow
85
-
86
- ### 1️⃣ Write SPEC (`/alfred:1-plan`)
87
-
88
- **Alfred → spec-builder delegation**:
89
-
90
- ```
91
- Request: "Create AUTH-001 JWT Authentication System SPEC"
92
-
93
- Run spec-builder:
94
- 1. Check for duplicates: rg "@SPEC:AUTH-001" -n → No duplicates ✓
95
- 2. Write EARS syntax:
96
- - Ubiquitous: The system must provide JWT-based authentication
97
- - Event-driven: WHEN When valid credentials are provided, issue a JWT token
98
- - Constraints: Token expiration time 30 minutes or less
99
- 3. YAML Front Matter + @SPEC:AUTH-001 TAG
100
- 4. HISTORY section (v0.0.1 INITIAL)
101
- 5. Proposal to create Git branch: feature/spec-auth-001
102
-
103
- User confirmation required → Proceed to create branch and save SPEC? (y/n)
104
- ```
105
-
106
- **Generated results**:
107
- - `.moai/specs/SPEC-AUTH-001/spec.md`
108
- - Assign `@SPEC:AUTH-001` TAG
109
- - Create GitHub Issue (Team mode)
110
- - Create Draft PR (Team mode)
111
-
112
- **When Collab Mode is activated**:
113
- ```
114
- 💭 Brainstorm authentication system approaches
115
-
116
- 1. JWT-based: Stateless, excellent scalability / difficult to invalidate tokens
117
- 2. Session-based: Easy central control / Increased server load
118
- 3. Hybrid: Combines the best of both worlds / Increases complexity
119
-
120
- Which direction is better?
121
-
122
- User: "Hybrid method"
123
-
124
- Alfred: Good choice! If you summarize it in EARS phrase...
125
- ```
126
-
127
- ### 2️⃣ TDD implementation (`/alfred:2-run`)
128
-
129
- **Alfred → code-builder delegation**:
130
-
131
- ```
132
- Request: "SPEC-AUTH-001 TDD Implementation"
133
-
134
- Alfred Analysis:
135
- - SPEC Reference: SPEC-AUTH-001.md v0.0.1
136
- - Language Detection: TypeScript (tsconfig.json exists)
137
- - Test Framework: Vitest
138
-
139
- code-builder execution (Red-Green-Refactor):
140
-
141
- [RED] Failed tests
142
- // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
143
-
144
- test('@TEST:AUTH-001: JWT issuance on valid credentials', async () => {
145
- const service = new AuthService();
146
- const result = await service.authenticate('user', 'pass123');
147
- expect(result.token).toBeDefined();
148
- expect(result.expiresIn).toBeLessThanOrEqual(1800); // 30 minutes
149
- });
150
-
151
- → Run test: FAIL (AuthService not implemented) ✓
152
-
153
- [GREEN] Minimal implementation
154
- // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
155
-
156
- export class AuthService {
157
- async authenticate(username: string, password: string): Promise<AuthResult> {
158
- return {
159
- token: jwt.sign({ username }, SECRET, { expiresIn: '30m' }),
160
- expiresIn: 1800
161
- };
162
- }
163
- }
164
-
165
- → Run test: PASS ✓
166
-
167
- [REFACTOR] Improved quality
168
- - Added input validation (Secured)
169
- - Separated functions (Readable: 38 LOC)
170
- - Reduced complexity (Unified: Complexity 6)
171
-
172
- → Test execution: PASS ✓
173
- → TRUST Verification: All passed ✓
174
-
175
- Git commit:
176
- 1. 🔴 RED: test(AUTH-001): add failing auth service test
177
- 2. 🟢 GREEN: feat(AUTH-001): implement minimal auth service
178
- 3. ♻️ REFACTOR: refactor(AUTH-001): improve code quality per TRUST
179
- ```
180
-
181
- **When Collab Mode is activated**:
182
- ```
183
- Alfred: “What scenario should we start with?”
184
-
185
- 1. Normal login → JWT issuance
186
- 2. Token verification → Validity check
187
- 3. Token renewal → refresh logic
188
-
189
- User: "Starting with number 1"
190
-
191
- Alfred: "Okay! Let's create a test skeleton."
192
-
193
- // Write tests together...
194
- ```
195
-
196
- ### 3️⃣ Document synchronization (`/alfred:3-sync`)
197
-
198
- **Alfred → tag-agent + doc-syncer delegation**:
199
-
200
- ```
201
- Run tag-agent (TAG verification):
202
- → rg '@(SPEC|TEST|CODE|DOC):' -n
203
-
204
- TAG chain verification:
205
- ✓ @SPEC:AUTH-001 → .moai/specs/SPEC-AUTH-001.md
206
- ✓ @TEST:AUTH-001 → tests/auth/service.test.ts
207
- ✓ @CODE:AUTH-001 → src/auth/service.ts
208
- ✓ Orphan TAG: None
209
- ✓ Match SPEC version: v0.0.1
210
-
211
- Run doc-syncer:
212
- 1. Living Document Update: docs/api/auth.md (@DOC:AUTH-001)
213
- 2. PR description update:
214
- - SPEC requirements checklist
215
- - TDD history (RED → GREEN → REFACTOR)
216
- - TRUST verification results
217
- 3. Proposal for PR status transition: Draft → Ready for Review
218
-
219
- Requires user confirmation → Switch to PR Ready? (y/n)
220
- ```
221
-
222
- ## TRUST 5 principles (automatic verification by language)
223
-
224
- ### T - Test First
225
- - SPEC → Test → Code Strict order
226
- - Tools by language: Vitest/Jest (TS), pytest (Python), go test (Go), cargo test (Rust)
227
- - Coverage ≥85%
228
-
229
- ### R - Readable
230
- - File ≤300 LOC, function ≤50 LOC
231
- - Complexity ≤10, parameters ≤5
232
- - Language-specific linters: Biome/ESLint (TS), ruff (Python), golint (Go), clippy (Rust)
233
-
234
- ### U - Unified
235
- - SPEC-based architecture
236
- - Type safety (TS, Go, Rust, Java) or runtime verification (Python)
237
-
238
- ### S - Secured
239
- - Input verification, SQL injection defense
240
- - XSS/CSRF defense, password hashing
241
- - Utilization of security tools for each language
242
-
243
- ### T - Trackable
244
- - CODE-FIRST @TAG system
245
- - Complete trace chain: `@SPEC:ID → @TEST:ID → @CODE:ID → @DOC:ID`
246
-
247
- ## @TAG system
248
-
249
- ### TAG system
250
-
251
- ```
252
- @SPEC:ID → @TEST:ID → @CODE:ID → @DOC:ID
253
- ```
254
-
255
- | TAG | Role | TDD steps | Location | Required |
256
- | ---------- | --------------------------------- | ------------------- | ------------ | -------- |
257
- | `@SPEC:ID` | Requirements Specification (EARS) | Advance preparation | .moai/specs/ | ✅ |
258
- | `@TEST:ID` | test case | RED | tests/ | ✅ |
259
- | `@CODE:ID` | Implementation code | GREEN + REFACTOR | src/ | ✅ |
260
- | `@DOC:ID` | Documentation | REFACTOR | docs/ | ⚠️ |
261
-
262
- ### TAG Core Principles
263
-
264
- - **TAG ID**: `<domain>-<3 digits>` (e.g. `AUTH-003`) - Permanently immutable
265
- - **TAG content**: Freely modified (required to record in HISTORY)
266
- - **Version management**: Inside the SPEC document (YAML + HISTORY)
267
- - **CODE-FIRST**: The truth of TAG exists only in the code itself
268
-
269
- ### TAG verification command
270
-
271
- ```bash
272
- # Prevent duplication (before creating new TAG)
273
- rg "@SPEC:AUTH" -n
274
- rg "AUTH-001" -n
275
-
276
- # TAG chain verification (after code completion)
277
- rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
278
-
279
- # Detect orphan TAG
280
- rg '@CODE:AUTH-001' -n src/ # CODE exists but
281
- rg '@SPEC:AUTH-001' -n .moai/specs/ # Orphan if SPEC does not exist
282
- ```
283
-
284
- ## Multi-language support
285
-
286
- ### Language-specific TDD tools
287
-
288
- | language | test | linter | Type | build |
289
- | -------------- | ------------ | ------------ | ----- | ------------- |
290
- | **TypeScript** | Vitest/Jest | Biome/ESLint | tsc | tsc/esbuild |
291
- | **Python** | pytest | ruff/black | mypy | - |
292
- | **Go** | go test | golint | - | go build |
293
- | **Rust** | cargo test | clippy | rustc | cargo build |
294
- | **Java** | JUnit | checkstyle | javac | maven/gradle |
295
- | **Dart** | flutter test | dart analyze | - | flutter build |
296
- | **Swift** | XCTest | SwiftLint | - | xcodebuild |
297
- | **Kotlin** | JUnit | detekt | - | gradle |
298
-
299
- ### Language-specific examples
300
-
301
- #### TypeScript (Vitest)
302
- ```typescript
303
- // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
304
- test('@TEST:AUTH-001: JWT issued', async () => {
305
- const service = new AuthService();
306
- const result = await service.authenticate('user', 'pass');
307
- expect(result.token).toBeDefined();
308
- });
309
-
310
- // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
311
- export class AuthService {
312
- async authenticate(username: string, password: string): Promise<AuthResult> {
313
- //implementation
314
- }
315
- }
316
- ```
317
-
318
- #### Python (pytest)
319
- ```python
320
- # @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
321
- def test_jwt_authentication():
322
- """@TEST:AUTH-001: JWT issued"""
323
- service = AuthService()
324
- result = service.authenticate('user', 'pass')
325
- assert result.token is not None
326
-
327
- # @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/test_auth.py
328
- class AuthService:
329
- """@CODE:AUTH-001: Authentication Service"""
330
- def authenticate(self, username: str, password: str) -> AuthResult:
331
- #implementation
332
- pass
333
- ```
334
-
335
- #### Go
336
- ```go
337
- // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
338
- func TestJWTAuthentication(t *testing.T) {
339
- // @TEST:AUTH-001: JWT issued
340
- service := NewAuthService()
341
- result, err := service.Authenticate("user", "pass")
342
- assert.NoError(t, err)
343
- assert.NotEmpty(t, result.Token)
344
- }
345
-
346
- // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: auth_test.go
347
- type AuthService struct{}
348
-
349
- // @CODE:AUTH-001: Authentication Service
350
- func (s *AuthService) Authenticate(username, password string) (*AuthResult, error) {
351
- //implementation
352
- }
353
- ```
354
-
355
- #### Rust
356
- ```rust
357
- // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
358
- #[test]
359
- fn test_jwt_authentication() {
360
- // @TEST:AUTH-001: JWT issued
361
- let service = AuthService::new();
362
- let result = service.authenticate("user", "pass").unwrap();
363
- assert!(!result.token.is_empty());
364
- }
365
-
366
- // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: auth.rs
367
- pub struct AuthService;
368
-
369
- impl AuthService {
370
- /// @CODE:AUTH-001: Authentication Service
371
- pub fn authenticate(&self, username: &str, password: &str) -> Result<AuthResult> {
372
- //implementation
373
- }
374
- }
375
- ```
376
-
377
- ## Collaboration scenario (Collab Mode)
378
-
379
- ### 🧠 Brainstorming Session
380
-
381
- **Architecture Design Collaboration**:
382
-
383
- ```
384
- 💭 System architecture brainstorming
385
-
386
- Requirements:
387
- - 100,000 concurrent users
388
- - Response time < 100ms
389
- - 99.9% availability
390
-
391
- Proposed architecture:
392
- ┌─────────────────┐ ┌─────────────────┐
393
- │ Client │◄──►│ Load Balancer │
394
- └─────────────────┘ └─────────────────┘
395
-
396
- ┌────────┴────────┐
397
- ▼ ▼
398
- ┌─────────┐ ┌─────────┐
399
- │ API #1 │ │ API #2 │
400
- └─────────┘ └─────────┘
401
- │ │
402
- └────────┬────────┘
403
-
404
- ┌─────────────────┐
405
- │ Database │
406
- │ (Replicated) │
407
- └─────────────────┘
408
-
409
- Tradeoffs:
410
- - Pros: Scalability, high availability
411
- - Disadvantages: Increased complexity, operating costs
412
-
413
- What do you think? Any other ideas?
414
- ```
415
-
416
- ### 👀 Real-time code review
417
-
418
- **TypeScript**:
419
- ```typescript
420
- // written code
421
- async function fetchUser(id: string) {
422
- const user = await db.users.findOne({ id });
423
- return user;
424
- }
425
-
426
- // Review feedback
427
- Good points:
428
- ✅ Use async/await
429
- ✅ Clear function name
430
-
431
- Improvement suggestions:
432
- 🤔 Missing null check → Handling non-existent users?
433
- 💡 Add error handling:
434
-
435
- async function fetchUser(id: string): Promise<User> {
436
- const user = await db.users.findOne({ id });
437
- if (!user) {
438
- throw new NotFoundError(`User ${id} not found`);
439
- }
440
- return user;
441
- }
442
-
443
- How about improving it like this?
444
- ```
445
-
446
- **Python**:
447
- ```python
448
- # written code
449
- def calculate_total(items):
450
- return sum(item.price for item in items)
451
-
452
- # Review Feedback
453
- The Good:
454
- ✅ Concise list comprehension
455
- ✅ Function name is clear
456
-
457
- Improvement suggestions:
458
- 🤔 Add type hint?
459
- 💡 Empty list handling:
460
-
461
- from typing import List
462
- from decimal import Decimal
463
-
464
- def calculate_total(items: List[Item]) -> Decimal:
465
- """@CODE:PAYMENT-001: Calculate total amount"""
466
- if not items:
467
- return Decimal('0')
468
- return sum(item.price for item in items)
469
-
470
- Type safety has been improved!
471
- ```
472
-
473
- ### 🐛 Debugging Collaboration
474
-
475
- ```
476
- User: "TypeError: Cannot read property 'name' of undefined"
477
-
478
- Alfred → debug-helper delegation
479
-
480
- debug-helper (cause analysis):
481
-
482
- 1. Check reproduction conditions
483
- - On what input does it occur?
484
- - Always? Intermittent?
485
-
486
- User: “This occurs when the user ID is incorrect.”
487
-
488
- debug-helper:
489
- aha! You are missing the null/undefined check.
490
-
491
- Cause:
492
- - Accessing .name when the user object is null
493
- - fetchUser() returns null and is not processed
494
-
495
- solve:
496
- // Before
497
- const userName = user.name;
498
-
499
- // After
500
- const userName = user?.name ?? 'Unknown';
501
-
502
- or
503
-
504
- if (!user) {
505
- throw new NotFoundError('User not found');
506
- }
507
- const userName = user.name;
508
-
509
- Which method is better?
510
- ```
511
-
512
- ### ⚖️ Collaborate on technology selection
513
-
514
- ```
515
- Situation: Select database
516
-
517
- Option A: PostgreSQL (relational)
518
- Advantages:
519
- + ACID guaranteed, transaction strong
520
- + Complex queries, JOIN support
521
- + Mature ecosystem
522
- Disadvantages:
523
- - Difficult to scale horizontally
524
- - Cost of schema changes
525
-
526
- Option B: MongoDB (document type)
527
- Advantages:
528
- + Flexible schema
529
- + Easy to scale horizontally
530
- + Fast development speed
531
- Disadvantages:
532
- - Limited JOIN
533
- - Weak ACID guarantees (only single document)
534
-
535
- 💭 My thoughts:
536
- Initial MVP → MongoDB (fast iteration)
537
- Production → PostgreSQL (data integrity)
538
-
539
- What is your current stage? What are your priorities?
540
- Let’s decide together!
541
- ```
542
-
543
- ## Practical scenario
544
-
545
- ### Scenario 1: Error response (using debug-helper)
546
-
547
- ```
548
- User: "TypeError: Cannot read property 'name' of undefined"
549
-
550
- Alfred → debug-helper delegation
551
-
552
- debug-helper analysis:
553
- 1. Error type: TypeError (null/undefined access)
554
- 2. Occurrence location: src/user/service.ts:42
555
- 3. Related SPEC: @SPEC:USER-003 (User query)
556
- 4. Related test: @TEST:USER-003 (missing edge case)
557
-
558
- Cause:
559
- - Missing null check for user object
560
- - SPEC requirement: “Return null when querying non-existent user”
561
- - Null case not verified in test
562
-
563
- Solution:
564
- 1. Add null check to src/user/service.ts:42
565
- 2. Add null case test to @TEST:USER-003
566
- 3. Reexamining SPEC Requirements
567
-
568
- → Re-running /alfred:2-run is recommended.
569
- ```
570
-
571
- ### Scenario 2: TAG chain verification
572
-
573
- ```
574
- User: "TAG Chain Verification"
575
-
576
- Alfred → tag-agent delegation
577
-
578
- Run tag-agent:
579
- → rg '@(SPEC|TEST|CODE|DOC):' -n
580
-
581
- TAG integrity:
582
- ✓ SPEC → TEST link: All valid
583
- ✓ TEST → CODE link: All valid
584
- ⚠ CODE → DOC link: AUTH-002 DOC missing
585
- ✗ Orphan TAG: @CODE:PAYMENT-005 (no SPEC)
586
-
587
- Recommended Action:
588
- 1. AUTH-002: Run /alfred:3-sync to generate DOC
589
- 2. PAYMENT-005: Create SPEC-PAYMENT-005.md or remove TAG
590
-
591
- Auto-correction in progress? (y/n)
592
- ```
593
-
594
- ## Git branch strategy
595
-
596
- ### git-manager role
597
-
598
- - **Branch creation/merge**: User confirmation required
599
- - **Commit/Push**: Automatic processing
600
- - **TDD commit**: 🔴 RED → 🟢 GREEN → ♻️ REFACTOR → 📚 DOCS
601
-
602
- ### Personal/Team mode
603
-
604
- **Personal mode** (default):
605
- - Local development, based on `.moai/specs/` file
606
- - Branch: `feature/spec-{id}-{name}`
607
-
608
- **Team Mode**:
609
- - GitHub integration, Issue/PR based
610
- - SPEC → Automatic creation of GitHub Issue
611
- - TDD → ​​Automatic creation of Pull Request
612
-
613
- ## Style conversion guide
614
-
615
- ### If this style suits you
616
- - ✅ Hands-on project development
617
- - ✅ Rapid development + collaboration when necessary
618
- - ✅ SPEC-First TDD proficient
619
- - ✅ Quality assurance required
620
-
621
- ### Switch to a different style
622
-
623
- | Situation | Recommended Style | Reason |
624
- | ------------------------- | ----------------- | ------------------------------------------------ |
625
- | First time using MoAI-ADK | moai-adk-learning | Learning concepts and workflow |
626
- | New language/framework | study-with-alfred | Learning new technologies with easy explanations |
627
-
628
- #### How to convert
629
- ```bash
630
- /output-style moai-adk-learning # MoAI-ADK study
631
- /output-style study-with-alfred # New technology study
632
- ```
633
-
634
- ---
635
-
636
- **Agentic Coding**: A practical coding mode that integrates rapid development and collaboration by automating SPEC priority, TAG traceability, and TRUST quality.