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,4 +1,4 @@
1
- # @CODE:CORE-PROJECT-001 | @CODE:INIT-003:INIT
1
+ # @CODE:CORE-PROJECT-001 | @CODE:INIT-005:INIT
2
2
  # SPEC: SPEC-CORE-PROJECT-001.md, SPEC-INIT-003.md
3
3
  # TEST: tests/unit/test_project_initializer.py, tests/unit/test_init_reinit.py
4
4
  """Project Initialization Module
@@ -11,10 +11,11 @@ Phase-based 5-step initialization process:
11
11
  5. Validation: Verification and finalization
12
12
  """
13
13
 
14
+ import json
14
15
  import time
16
+ from datetime import datetime
15
17
  from pathlib import Path
16
18
 
17
- from moai_adk.core.project.detector import LanguageDetector
18
19
  from moai_adk.core.project.phase_executor import PhaseExecutor, ProgressCallback
19
20
  from moai_adk.core.project.validator import ProjectValidator
20
21
 
@@ -53,14 +54,69 @@ class ProjectInitializer:
53
54
  path: Project root directory
54
55
  """
55
56
  self.path = Path(path).resolve()
56
- self.detector = LanguageDetector()
57
57
  self.validator = ProjectValidator()
58
58
  self.executor = PhaseExecutor(self.validator)
59
59
 
60
+ def _create_memory_files(self) -> list[str]:
61
+ """Create runtime session and memory files (auto-generated per user/session)
62
+
63
+ Returns:
64
+ List of created memory files
65
+
66
+ @CODE:INIT-MEMORY-001 | Auto-generate session memory files
67
+ """
68
+ memory_dir = self.path / ".moai" / "memory"
69
+ memory_dir.mkdir(parents=True, exist_ok=True)
70
+ created_files = []
71
+
72
+ # 1. project-notes.json - Project tracking notes (empty on init)
73
+ project_notes = {
74
+ "tech_debt": [],
75
+ "performance_bottlenecks": [],
76
+ "recent_patterns": {
77
+ "frequent_file_edits": [],
78
+ "test_failures": [],
79
+ "git_operations": "daily commits, feature branches"
80
+ },
81
+ "next_priorities": []
82
+ }
83
+ project_notes_file = memory_dir / "project-notes.json"
84
+ project_notes_file.write_text(json.dumps(project_notes, indent=2))
85
+ created_files.append(str(project_notes_file))
86
+
87
+ # 2. session-hint.json - Last session state
88
+ session_hint = {
89
+ "last_command": None,
90
+ "command_timestamp": None,
91
+ "hours_ago": None,
92
+ "active_spec": None,
93
+ "current_branch": "main"
94
+ }
95
+ session_hint_file = memory_dir / "session-hint.json"
96
+ session_hint_file.write_text(json.dumps(session_hint, indent=2))
97
+ created_files.append(str(session_hint_file))
98
+
99
+ # 3. user-patterns.json - User preferences and expertise
100
+ user_patterns = {
101
+ "tech_preferences": {},
102
+ "expertise_signals": {
103
+ "ask_question_skip_rate": 0.0,
104
+ "custom_workflows": 0,
105
+ "estimated_level": "beginner"
106
+ },
107
+ "skip_questions": [],
108
+ "last_updated": datetime.now().isoformat() + "Z"
109
+ }
110
+ user_patterns_file = memory_dir / "user-patterns.json"
111
+ user_patterns_file.write_text(json.dumps(user_patterns, indent=2))
112
+ created_files.append(str(user_patterns_file))
113
+
114
+ return created_files
115
+
60
116
  def initialize(
61
117
  self,
62
118
  mode: str = "personal",
63
- locale: str = "ko",
119
+ locale: str = "en", # Changed from "ko" to "en" (will be configurable in /alfred:0-project)
64
120
  language: str | None = None,
65
121
  backup_enabled: bool = True,
66
122
  progress_callback: ProgressCallback | None = None,
@@ -69,9 +125,9 @@ class ProjectInitializer:
69
125
  """Execute project initialization (5-phase process)
70
126
 
71
127
  Args:
72
- mode: Project mode (personal/team)
73
- locale: Locale (ko/en/ja/zh)
74
- language: Force language specification (auto-detect if None)
128
+ mode: Project mode (personal/team) - Default: personal (configurable in /alfred:0-project)
129
+ locale: Locale (ko/en/ja/zh) - Default: en (configurable in /alfred:0-project)
130
+ language: Force language specification (auto-detect if None) - Will be detected in /alfred:0-project
75
131
  backup_enabled: Whether to enable backup
76
132
  progress_callback: Progress callback
77
133
  reinit: Reinitialization mode (v0.3.0, SPEC-INIT-003)
@@ -92,8 +148,9 @@ class ProjectInitializer:
92
148
  f"Use 'python -m moai_adk status' to check the current configuration."
93
149
  )
94
150
 
95
- # Detect language
96
- detected_language = language or self.detector.detect(self.path) or "generic"
151
+ # Use provided language or default to generic
152
+ # Language detection now happens in /alfred:0-project via project-manager
153
+ detected_language = language or "generic"
97
154
 
98
155
  # Phase 1: Preparation (backup and validation)
99
156
  self.executor.execute_preparation_phase(
@@ -120,11 +177,21 @@ class ProjectInitializer:
120
177
  )
121
178
 
122
179
  # Phase 4: Configuration (generate config.json)
123
- config_data: dict[str, str | bool] = {
124
- "projectName": self.path.name,
125
- "mode": mode,
126
- "locale": locale,
127
- "language": detected_language,
180
+ config_data: dict[str, str | bool | dict] = {
181
+ "project": {
182
+ "name": self.path.name,
183
+ "mode": mode,
184
+ "locale": locale,
185
+ "language": detected_language,
186
+ # Language detection metadata (will be updated by project-manager via /alfred:0-project)
187
+ "language_detection": {
188
+ "detected_language": detected_language,
189
+ "detection_method": "cli_default", # Will be "context_aware" after /alfred:0-project
190
+ "confidence": None, # Will be calculated by project-manager
191
+ "markers": [], # Will be populated by project-manager
192
+ "confirmed_by": None, # Will be "user" after project-manager confirmation
193
+ }
194
+ }
128
195
  }
129
196
  config_files = self.executor.execute_configuration_phase(
130
197
  self.path, config_data, progress_callback
@@ -135,6 +202,9 @@ class ProjectInitializer:
135
202
  self.path, mode, progress_callback
136
203
  )
137
204
 
205
+ # Phase 6: Create runtime memory files (auto-generated per user/session)
206
+ memory_files = self._create_memory_files()
207
+
138
208
  # Generate result
139
209
  duration = int((time.time() - start_time) * 1000) # ms
140
210
  return InstallationResult(
@@ -144,7 +214,7 @@ class ProjectInitializer:
144
214
  mode=mode,
145
215
  locale=locale,
146
216
  duration=duration,
147
- created_files=resource_files + config_files,
217
+ created_files=resource_files + config_files + memory_files,
148
218
  )
149
219
 
150
220
  except Exception as e:
@@ -1,4 +1,5 @@
1
- # @CODE:INIT-003:PHASE | SPEC: .moai/specs/SPEC-INIT-003/spec.md | TEST: tests/unit/test_init_reinit.py
1
+ # @CODE:INIT-005:PHASE | SPEC: .moai/specs/SPEC-INIT-003/spec.md | TEST: tests/unit/test_init_reinit.py
2
+ # @CODE:TEST-COVERAGE-001 | SPEC: SPEC-TEST-COVERAGE-001.md | TEST: tests/unit/test_phase_executor.py
2
3
  """Phase-based installation executor (SPEC-INIT-003 v0.4.2)
3
4
 
4
5
  Runs the project initialization across five phases:
@@ -7,14 +8,18 @@ Runs the project initialization across five phases:
7
8
  - Phase 3: Resource (copy templates while preserving user content)
8
9
  - Phase 4: Configuration (generate configuration files)
9
10
  - Phase 5: Validation (verify and finalize)
11
+
12
+ Test coverage includes 5-phase integration tests with backup, configuration, and validation
10
13
  """
11
14
 
12
15
  import json
16
+ import platform
13
17
  import shutil
14
18
  import subprocess
15
19
  from collections.abc import Callable
16
20
  from datetime import datetime
17
21
  from pathlib import Path
22
+ from typing import Any
18
23
 
19
24
  from rich.console import Console
20
25
 
@@ -25,6 +30,7 @@ from moai_adk.core.project.backup_utils import (
25
30
  is_protected_path,
26
31
  )
27
32
  from moai_adk.core.project.validator import ProjectValidator
33
+ from moai_adk.core.template.processor import TemplateProcessor
28
34
 
29
35
  console = Console()
30
36
 
@@ -135,12 +141,21 @@ class PhaseExecutor:
135
141
  )
136
142
 
137
143
  # Copy resources via TemplateProcessor in silent mode
138
- from moai_adk.core.template import TemplateProcessor
139
-
140
144
  processor = TemplateProcessor(project_path)
141
145
 
142
146
  # Set template variable context (if provided)
143
147
  if config:
148
+ # @TAG:LANG-FIX-001:PY-CONFIG | Read language from nested config structure
149
+ language_config: dict[str, Any] = config.get("language", {})
150
+ if not isinstance(language_config, dict):
151
+ language_config = {}
152
+
153
+ # Detect OS for cross-platform Hook path configuration
154
+ hook_project_dir = (
155
+ "%CLAUDE_PROJECT_DIR%" if platform.system() == "Windows"
156
+ else "$CLAUDE_PROJECT_DIR"
157
+ )
158
+
144
159
  context = {
145
160
  "MOAI_VERSION": __version__,
146
161
  "CREATION_TIMESTAMP": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
@@ -148,7 +163,12 @@ class PhaseExecutor:
148
163
  "PROJECT_DESCRIPTION": config.get("description", ""),
149
164
  "PROJECT_MODE": config.get("mode", "personal"),
150
165
  "PROJECT_VERSION": config.get("version", "0.1.0"),
166
+ "PROJECT_OWNER": config.get("author", "@user"),
151
167
  "AUTHOR": config.get("author", "@user"),
168
+ "CONVERSATION_LANGUAGE": language_config.get("conversation_language", "en"),
169
+ "CONVERSATION_LANGUAGE_NAME": language_config.get("conversation_language_name", "English"),
170
+ "CODEBASE_LANGUAGE": config.get("language", "generic"),
171
+ "HOOK_PROJECT_DIR": hook_project_dir,
152
172
  }
153
173
  processor.set_context(context)
154
174
 
@@ -166,7 +186,7 @@ class PhaseExecutor:
166
186
  def execute_configuration_phase(
167
187
  self,
168
188
  project_path: Path,
169
- config: dict[str, str | bool],
189
+ config: dict[str, str | bool | dict[Any, Any]],
170
190
  progress_callback: ProgressCallback | None = None,
171
191
  ) -> list[str]:
172
192
  """Phase 4: generate configuration.
@@ -184,12 +204,52 @@ class PhaseExecutor:
184
204
  "Phase 4: Generating configurations...", progress_callback
185
205
  )
186
206
 
187
- # Attach version metadata (v0.3.1+)
188
- config["moai_adk_version"] = __version__
189
- config["optimized"] = False # Default value
207
+ # Read existing config to preserve user settings (Issue #165)
208
+ config_path = project_path / ".moai" / "config.json"
209
+ existing_config: dict[str, Any] = {}
210
+ if config_path.exists():
211
+ try:
212
+ with open(config_path, "r", encoding="utf-8") as f:
213
+ existing_config = json.load(f)
214
+ except (json.JSONDecodeError, OSError):
215
+ # If config reading fails, start fresh
216
+ existing_config = {}
217
+
218
+ # Merge user settings from existing config (preserve customization)
219
+ if existing_config:
220
+ # Preserve user.nickname if it exists
221
+ if "user" in existing_config and isinstance(existing_config.get("user"), dict):
222
+ if "user" not in config:
223
+ config["user"] = {}
224
+ user_config = config["user"]
225
+ if isinstance(user_config, dict):
226
+ existing_user = existing_config["user"]
227
+ if isinstance(existing_user, dict) and "nickname" in existing_user:
228
+ user_config["nickname"] = existing_user["nickname"]
229
+
230
+ # Preserve language settings if they exist
231
+ if "language" in existing_config and isinstance(existing_config.get("language"), dict):
232
+ if "language" not in config:
233
+ config["language"] = {}
234
+ lang_config = config["language"]
235
+ if isinstance(lang_config, dict):
236
+ existing_lang = existing_config["language"]
237
+ if isinstance(existing_lang, dict):
238
+ # Preserve conversation_language settings
239
+ if "conversation_language" in existing_lang:
240
+ lang_config["conversation_language"] = existing_lang["conversation_language"]
241
+ if "conversation_language_name" in existing_lang:
242
+ lang_config["conversation_language_name"] = existing_lang["conversation_language_name"]
243
+
244
+ # Ensure project section exists and set defaults
245
+ if "project" not in config:
246
+ config["project"] = {}
247
+ # Type guard for mypy
248
+ project_config = config["project"]
249
+ if isinstance(project_config, dict):
250
+ project_config["optimized"] = False # Default value
190
251
 
191
252
  # Write config.json
192
- config_path = project_path / ".moai" / "config.json"
193
253
  with open(config_path, "w", encoding="utf-8") as f:
194
254
  json.dump(config, f, indent=2, ensure_ascii=False)
195
255
 
@@ -203,9 +263,8 @@ class PhaseExecutor:
203
263
  ) -> None:
204
264
  """Phase 5: validation and wrap-up.
205
265
 
206
- @CODE:INIT-004:PHASE5 | Phase 5 verification logic
207
- @REQ:VALIDATION-001 | SPEC-INIT-004: Verify required files after initialization completion
208
- @CODE:INIT-004:PHASE5-INTEGRATION | Integration of validation in Phase 5
266
+ @CODE:INIT-PHASE-001 | Phase 5 verification logic
267
+ @REQ:VALIDATION-002 | SPEC-INIT-004: Verify required files after initialization completion
209
268
 
210
269
  Args:
211
270
  project_path: Project path.
@@ -217,8 +276,8 @@ class PhaseExecutor:
217
276
  "Phase 5: Validation and finalization...", progress_callback
218
277
  )
219
278
 
220
- # @CODE:INIT-004:VERIFY-001 | Validate installation results
221
- # @CODE:INIT-004:VALIDATION-CHECK | Comprehensive installation validation
279
+ # Validate installation results
280
+ # Comprehensive installation validation
222
281
  # Verifies all required files including 4 Alfred command files:
223
282
  # - 0-project.md, 1-plan.md, 2-run.md, 3-sync.md
224
283
  self.validator.validate_installation(project_path)
@@ -299,8 +358,12 @@ class PhaseExecutor:
299
358
  cwd=project_path,
300
359
  check=True,
301
360
  capture_output=True,
361
+ timeout=30, # Default timeout for git operations
302
362
  )
303
363
  # Intentionally avoid printing to keep progress output clean
364
+ except subprocess.TimeoutExpired:
365
+ # Timeout is non-fatal
366
+ pass
304
367
  except subprocess.CalledProcessError:
305
368
  # Only log on error; failures are non-fatal
306
369
  pass
@@ -1,7 +1,7 @@
1
1
  # @CODE:CORE-PROJECT-003 | SPEC: SPEC-CORE-PROJECT-001.md, SPEC-INIT-004.md
2
- # @CODE:INIT-004:VALIDATION | Chain: SPEC-INIT-004 -> CODE-INIT-004 -> TEST-INIT-004
3
- # @REQ:VALIDATION-001 | SPEC-INIT-004: Initial verification after installation completion
4
- # @SPEC:VERIFICATION-001 | SPEC-INIT-004: Verification logic implementation
2
+ # @CODE:INIT-VALIDATOR-001:VALIDATION | Chain: SPEC-INIT-004 -> CODE-INIT-004 -> TEST-INIT-004
3
+ # @REQ:VALIDATION-002 | SPEC-INIT-004: Initial verification after installation completion
4
+ # @SPEC:VERIFICATION-002 | SPEC-INIT-004: Verification logic implementation
5
5
  """Project initialization validation module.
6
6
 
7
7
  Validates system requirements and installation results.
@@ -13,8 +13,8 @@ SPEC-INIT-004 Enhancement:
13
13
 
14
14
  TAG Chain:
15
15
  SPEC-INIT-004 (spec.md)
16
- └─> @CODE:INIT-004:VALIDATION (this file)
17
- └─> @TEST:INIT-004:VALIDATION (test_validator.py)
16
+ └─> @CODE:INIT-VALIDATOR-001:VALIDATION (this file)
17
+ └─> @TEST:INIT-005:VALIDATION (test_validator.py)
18
18
  """
19
19
 
20
20
  import shutil
@@ -98,9 +98,9 @@ class ProjectValidator:
98
98
  def validate_installation(self, project_path: Path) -> None:
99
99
  """Validate installation results.
100
100
 
101
- @CODE:INIT-004:VERIFY-001 | Verification of all required files upon successful completion
102
- @SPEC:VERIFICATION-001 | SPEC-INIT-004: Verification checklist implementation
103
- @REQ:VALIDATION-001 | UR-003: All required files verified after init completes
101
+ @CODE:INIT-VALIDATOR-001:VERIFY-001 | Verification of all required files upon successful completion
102
+ @SPEC:VERIFICATION-002 | SPEC-INIT-004: Verification checklist implementation
103
+ @REQ:VALIDATION-002 | UR-003: All required files verified after init completes
104
104
 
105
105
  Args:
106
106
  project_path: Project path.
@@ -109,22 +109,22 @@ class ProjectValidator:
109
109
  ValidationError: Raised when installation was incomplete.
110
110
  """
111
111
  # Verify required directories
112
- # @CODE:INIT-004:VALIDATION-001 | Core project structure validation
112
+ # @CODE:INIT-VALIDATOR-001:VALIDATION-001 | Core project structure validation
113
113
  for directory in self.REQUIRED_DIRECTORIES:
114
114
  dir_path = project_path / directory
115
115
  if not dir_path.exists():
116
116
  raise ValidationError(f"Required directory not found: {directory}")
117
117
 
118
118
  # Verify required files
119
- # @CODE:INIT-004:VALIDATION-002 | Required configuration files validation
119
+ # @CODE:INIT-VALIDATOR-001:VALIDATION-002 | Required configuration files validation
120
120
  for file in self.REQUIRED_FILES:
121
121
  file_path = project_path / file
122
122
  if not file_path.exists():
123
123
  raise ValidationError(f"Required file not found: {file}")
124
124
 
125
- # @CODE:INIT-004:VERIFY-002 | Verify required Alfred command files (SPEC-INIT-004)
125
+ # @CODE:INIT-VALIDATOR-001:VERIFY-002 | Verify required Alfred command files (SPEC-INIT-004)
126
126
  # @REQ:COMMAND-GENERATION-001 | All 4 Alfred command files must be created
127
- # @CODE:INIT-004:ALFRED-VALIDATION | Alfred command file integrity check
127
+ # @CODE:INIT-VALIDATOR-001:ALFRED-VALIDATION | Alfred command file integrity check
128
128
  alfred_dir = project_path / ".claude" / "commands" / "alfred"
129
129
  missing_commands = []
130
130
  for cmd in self.REQUIRED_ALFRED_COMMANDS:
@@ -135,7 +135,7 @@ class ProjectValidator:
135
135
  if missing_commands:
136
136
  missing_list = ", ".join(missing_commands)
137
137
  # @SPEC:ERROR-HANDLING-001 | Clear error messages upon missing files
138
- # @CODE:INIT-004:ERROR-MESSAGE | Clear reporting of missing Alfred command files
138
+ # @CODE:INIT-VALIDATOR-001:ERROR-MESSAGE | Clear reporting of missing Alfred command files
139
139
  raise ValidationError(
140
140
  f"Required Alfred command files not found: {missing_list}"
141
141
  )
@@ -1,4 +1,4 @@
1
- # @CODE:TRUST-001 | SPEC: SPEC-TRUST-001/spec.md | TEST: tests/unit/core/quality/
1
+ # @CODE:TRUST-002 | SPEC: SPEC-TRUST-001/spec.md | TEST: tests/unit/core/quality/
2
2
  """TRUST principle automated validation system"""
3
3
 
4
4
  from moai_adk.core.quality.trust_checker import TrustChecker
@@ -1,4 +1,4 @@
1
- # @CODE:TRUST-001 | SPEC: SPEC-TRUST-001/spec.md | TEST: tests/unit/core/quality/test_trust_checker.py
1
+ # @CODE:TRUST-002 | SPEC: SPEC-TRUST-001/spec.md | TEST: tests/unit/core/quality/test_trust_checker.py
2
2
  """
3
3
  Integrated TRUST principle validation system
4
4
 
@@ -1,4 +1,4 @@
1
- # @CODE:TRUST-001 | SPEC: SPEC-TRUST-001/spec.md
1
+ # @CODE:TRUST-002 | SPEC: SPEC-TRUST-001/spec.md
2
2
  """TRUST validator package"""
3
3
 
4
4
  from moai_adk.core.quality.validators.base_validator import ValidationResult
@@ -1,4 +1,4 @@
1
- # @CODE:TRUST-001:VALIDATOR | SPEC: SPEC-TRUST-001/spec.md
1
+ # @CODE:TRUST-002:VALIDATOR | SPEC: SPEC-TRUST-001/spec.md
2
2
  """Base validator class and validation result"""
3
3
 
4
4
  from dataclasses import dataclass
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env python3
2
+ # @CODE:DOC-TAG-004 | TAG validation core module (Components 1, 2, 3 & 4)
3
+ """TAG validation and management for MoAI-ADK
4
+
5
+ This module provides TAG validation functionality for:
6
+ - Pre-commit hook validation (Component 1)
7
+ - CI/CD pipeline validation (Component 2)
8
+ - Central validation system (Component 3)
9
+ - Documentation & Reporting (Component 4)
10
+ - TAG format checking
11
+ - Duplicate detection
12
+ - Orphan detection
13
+ - Chain integrity validation
14
+ """
15
+
16
+ # Component 1: Pre-commit validator
17
+ # Component 2: CI/CD validator
18
+ from .ci_validator import CIValidator
19
+ from .pre_commit_validator import (
20
+ PreCommitValidator,
21
+ ValidationError,
22
+ ValidationResult,
23
+ ValidationWarning,
24
+ )
25
+
26
+ # Component 4: Documentation & Reporting
27
+ from .reporter import (
28
+ CoverageAnalyzer,
29
+ CoverageMetrics,
30
+ InventoryGenerator,
31
+ MatrixGenerator,
32
+ ReportFormatter,
33
+ ReportGenerator,
34
+ ReportResult,
35
+ StatisticsGenerator,
36
+ StatisticsReport,
37
+ TagInventory,
38
+ TagMatrix,
39
+ )
40
+
41
+ # Component 3: Central validation system
42
+ from .validator import (
43
+ CentralValidationResult,
44
+ CentralValidator,
45
+ ChainValidator,
46
+ DuplicateValidator,
47
+ FormatValidator,
48
+ OrphanValidator,
49
+ TagValidator,
50
+ ValidationConfig,
51
+ ValidationIssue,
52
+ ValidationStatistics,
53
+ )
54
+
55
+ __all__ = [
56
+ # Component 1
57
+ "PreCommitValidator",
58
+ "ValidationResult",
59
+ "ValidationError",
60
+ "ValidationWarning",
61
+ # Component 2
62
+ "CIValidator",
63
+ # Component 3
64
+ "ValidationConfig",
65
+ "TagValidator",
66
+ "DuplicateValidator",
67
+ "OrphanValidator",
68
+ "ChainValidator",
69
+ "FormatValidator",
70
+ "CentralValidator",
71
+ "CentralValidationResult",
72
+ "ValidationIssue",
73
+ "ValidationStatistics",
74
+ # Component 4
75
+ "TagInventory",
76
+ "TagMatrix",
77
+ "InventoryGenerator",
78
+ "MatrixGenerator",
79
+ "CoverageAnalyzer",
80
+ "StatisticsGenerator",
81
+ "ReportFormatter",
82
+ "ReportGenerator",
83
+ "CoverageMetrics",
84
+ "StatisticsReport",
85
+ "ReportResult",
86
+ ]