moai-adk 0.34.0__py3-none-any.whl → 1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. moai_adk/__main__.py +136 -5
  2. moai_adk/astgrep/__init__.py +37 -0
  3. moai_adk/astgrep/analyzer.py +522 -0
  4. moai_adk/astgrep/models.py +124 -0
  5. moai_adk/astgrep/rules.py +179 -0
  6. moai_adk/cli/commands/analyze.py +11 -2
  7. moai_adk/cli/commands/doctor.py +7 -1
  8. moai_adk/cli/commands/init.py +321 -11
  9. moai_adk/cli/commands/language.py +7 -1
  10. moai_adk/cli/commands/rank.py +449 -0
  11. moai_adk/cli/commands/status.py +7 -1
  12. moai_adk/cli/commands/switch.py +325 -0
  13. moai_adk/cli/commands/update.py +296 -23
  14. moai_adk/cli/prompts/init_prompts.py +362 -66
  15. moai_adk/cli/prompts/translations/__init__.py +573 -0
  16. moai_adk/cli/ui/prompts.py +61 -2
  17. moai_adk/cli/worktree/cli.py +106 -1
  18. moai_adk/cli/worktree/manager.py +155 -0
  19. moai_adk/core/config/unified.py +244 -63
  20. moai_adk/core/credentials.py +264 -0
  21. moai_adk/core/error_recovery_system.py +22 -4
  22. moai_adk/core/git/conflict_detector.py +10 -1
  23. moai_adk/core/git/event_detector.py +16 -5
  24. moai_adk/core/integration/engine.py +2 -2
  25. moai_adk/core/integration/integration_tester.py +5 -5
  26. moai_adk/core/language_config_resolver.py +9 -3
  27. moai_adk/core/merge/analyzer.py +509 -324
  28. moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
  29. moai_adk/core/migration/backup_manager.py +54 -4
  30. moai_adk/core/migration/file_migrator.py +174 -2
  31. moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
  32. moai_adk/core/migration/version_detector.py +123 -19
  33. moai_adk/core/migration/version_migrator.py +44 -9
  34. moai_adk/core/model_allocator.py +241 -0
  35. moai_adk/core/project/backup_utils.py +12 -2
  36. moai_adk/core/project/initializer.py +44 -87
  37. moai_adk/core/project/phase_executor.py +95 -33
  38. moai_adk/core/project/validator.py +16 -1
  39. moai_adk/core/quality/trust_checker.py +30 -10
  40. moai_adk/core/rollback_manager.py +60 -25
  41. moai_adk/core/template/backup.py +88 -6
  42. moai_adk/core/template/config.py +33 -9
  43. moai_adk/core/template/merger.py +34 -8
  44. moai_adk/core/template/processor.py +334 -11
  45. moai_adk/core/template_engine.py +10 -1
  46. moai_adk/core/template_variable_synchronizer.py +16 -2
  47. moai_adk/core/version_sync.py +54 -6
  48. moai_adk/foundation/__init__.py +1 -20
  49. moai_adk/foundation/testing.py +1 -1
  50. moai_adk/loop/__init__.py +54 -0
  51. moai_adk/loop/controller.py +305 -0
  52. moai_adk/loop/feedback.py +230 -0
  53. moai_adk/loop/state.py +209 -0
  54. moai_adk/loop/storage.py +220 -0
  55. moai_adk/lsp/__init__.py +70 -0
  56. moai_adk/lsp/client.py +320 -0
  57. moai_adk/lsp/models.py +261 -0
  58. moai_adk/lsp/protocol.py +404 -0
  59. moai_adk/lsp/server_manager.py +248 -0
  60. moai_adk/project/configuration.py +8 -1
  61. moai_adk/py.typed +0 -0
  62. moai_adk/ralph/__init__.py +37 -0
  63. moai_adk/ralph/engine.py +307 -0
  64. moai_adk/rank/__init__.py +21 -0
  65. moai_adk/rank/auth.py +425 -0
  66. moai_adk/rank/client.py +557 -0
  67. moai_adk/rank/config.py +147 -0
  68. moai_adk/rank/hook.py +1503 -0
  69. moai_adk/rank/py.typed +0 -0
  70. moai_adk/statusline/__init__.py +3 -0
  71. moai_adk/statusline/enhanced_output_style_detector.py +5 -5
  72. moai_adk/statusline/main.py +20 -1
  73. moai_adk/statusline/memory_collector.py +268 -0
  74. moai_adk/statusline/renderer.py +54 -38
  75. moai_adk/tag_system/__init__.py +48 -0
  76. moai_adk/tag_system/atomic_ops.py +117 -0
  77. moai_adk/tag_system/linkage.py +335 -0
  78. moai_adk/tag_system/parser.py +176 -0
  79. moai_adk/tag_system/validator.py +200 -0
  80. moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
  81. moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
  82. moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
  83. moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
  84. moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
  85. moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
  86. moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
  87. moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
  88. moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
  89. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
  90. moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
  91. moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
  92. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
  93. moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
  94. moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
  95. moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
  96. moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
  97. moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
  98. moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
  99. moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
  100. moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
  101. moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
  102. moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
  103. moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
  104. moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
  105. moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
  106. moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
  107. moai_adk/templates/.claude/commands/moai/fix.md +264 -0
  108. moai_adk/templates/.claude/commands/moai/loop.md +363 -0
  109. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  110. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
  111. moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
  112. moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
  113. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
  114. moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
  115. moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
  116. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
  117. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
  118. moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
  119. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  120. moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
  121. moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
  122. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
  123. moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
  124. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
  125. moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
  126. moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
  127. moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
  128. moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
  129. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
  130. moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
  131. moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
  132. moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
  133. moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
  134. moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
  135. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
  136. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
  137. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
  138. moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
  139. moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
  140. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
  141. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
  142. moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
  143. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
  144. moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
  145. moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
  146. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
  147. moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
  148. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
  149. moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
  150. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
  151. moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
  152. moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
  153. moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
  154. moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
  155. moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
  156. moai_adk/templates/.claude/settings.json +154 -77
  157. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
  158. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
  159. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
  160. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
  161. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
  162. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
  163. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
  164. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
  165. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
  166. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
  167. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
  168. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  169. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  170. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  171. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  172. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  173. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  174. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +118 -339
  175. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
  176. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
  177. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
  178. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  179. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  180. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +32 -22
  181. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  182. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  183. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  184. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
  185. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  186. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -0
  187. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  188. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
  189. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  190. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
  191. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
  192. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
  193. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
  196. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
  199. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
  201. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +14 -18
  204. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
  205. moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
  206. moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
  207. moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
  208. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
  209. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -0
  210. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  211. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +1136 -0
  212. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
  213. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  214. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  215. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  216. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  217. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  218. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  219. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  220. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +65 -542
  221. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -0
  222. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  223. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +889 -0
  224. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
  225. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
  226. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
  227. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -0
  228. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  229. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  230. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +42 -279
  231. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
  232. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -0
  233. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  234. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +1323 -0
  235. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
  236. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
  237. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -0
  238. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  239. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +1087 -0
  240. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
  241. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -0
  242. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  243. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  244. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +1024 -0
  245. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
  246. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
  247. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  248. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  249. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  250. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  251. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  252. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +88 -457
  253. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  254. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  255. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  256. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  257. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +75 -283
  258. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
  259. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
  260. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
  261. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
  262. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
  263. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
  264. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  265. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  266. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  267. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  268. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  269. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  270. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  271. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  272. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  273. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  274. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  275. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  276. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  277. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  278. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  279. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  280. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  281. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  282. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  283. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  284. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  285. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  286. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  287. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  288. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  289. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  290. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  291. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  292. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  293. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  294. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  295. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  296. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  297. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +75 -330
  298. moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -0
  299. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  300. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  301. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +100 -340
  302. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  303. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  304. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  305. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  306. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  307. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  308. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +113 -326
  309. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  310. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  311. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  312. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  313. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  314. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +71 -302
  315. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  316. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  317. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  318. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  319. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  320. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  321. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +101 -412
  322. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  323. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  324. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  325. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  326. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  327. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  328. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +96 -327
  329. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  330. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  331. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  332. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  333. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  334. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  335. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +103 -428
  336. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  337. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  338. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  339. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  340. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  341. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  342. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  343. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  344. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  345. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +96 -446
  346. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  347. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  348. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  349. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  350. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  351. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  352. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  353. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +193 -0
  354. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  355. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  356. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  357. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  358. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  359. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  360. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  361. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  362. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  363. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  364. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  365. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  366. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  367. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  368. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  369. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +225 -423
  370. moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
  371. moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
  372. moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
  373. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
  374. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
  375. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
  376. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  377. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
  378. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
  379. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
  380. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
  381. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  382. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  383. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  384. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  385. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  386. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  387. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  388. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  390. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
  391. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
  404. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  429. moai_adk/templates/.git-hooks/pre-push +162 -59
  430. moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
  431. moai_adk/templates/.gitignore +65 -107
  432. moai_adk/templates/.lsp.json +152 -0
  433. moai_adk/templates/.mcp.json +2 -20
  434. moai_adk/templates/.moai/announcements/en.json +18 -0
  435. moai_adk/templates/.moai/announcements/ja.json +18 -0
  436. moai_adk/templates/.moai/announcements/ko.json +18 -0
  437. moai_adk/templates/.moai/announcements/zh.json +18 -0
  438. moai_adk/templates/.moai/config/config.yaml +8 -2
  439. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  440. moai_adk/templates/.moai/config/sections/language.yaml +2 -2
  441. moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
  442. moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
  443. moai_adk/templates/.moai/config/sections/project.yaml +2 -2
  444. moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
  445. moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
  446. moai_adk/templates/.moai/config/sections/system.yaml +46 -1
  447. moai_adk/templates/.moai/config/sections/user.yaml +1 -1
  448. moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
  449. moai_adk/templates/.moai/llm-configs/glm.json +22 -0
  450. moai_adk/templates/CLAUDE.ja.md +343 -0
  451. moai_adk/templates/CLAUDE.ko.md +343 -0
  452. moai_adk/templates/CLAUDE.md +200 -499
  453. moai_adk/templates/CLAUDE.zh.md +343 -0
  454. moai_adk/utils/common.py +37 -0
  455. moai_adk/version.py +1 -1
  456. moai_adk-1.1.0.dist-info/METADATA +2443 -0
  457. moai_adk-1.1.0.dist-info/RECORD +701 -0
  458. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
  459. moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
  460. moai_adk/core/config/auto_spec_config.py +0 -340
  461. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
  462. moai_adk/core/spec/confidence_scoring.py +0 -680
  463. moai_adk/core/spec/ears_template_engine.py +0 -1247
  464. moai_adk/core/spec/quality_validator.py +0 -687
  465. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
  466. moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
  467. moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
  468. moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
  469. moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
  470. moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
  471. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
  472. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
  473. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
  474. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
  475. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
  476. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
  477. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
  478. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
  479. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
  480. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
  481. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
  482. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
  483. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
  484. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
  485. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
  486. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
  487. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
  488. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
  489. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
  490. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
  491. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
  492. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
  493. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
  494. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
  495. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
  496. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
  497. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
  498. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
  499. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
  500. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
  501. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
  502. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
  503. moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
  504. moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
  505. moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
  506. moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
  507. moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
  508. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
  509. moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
  510. moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
  511. moai_adk-0.34.0.dist-info/METADATA +0 -2999
  512. moai_adk-0.34.0.dist-info/RECORD +0 -463
  513. moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
  514. /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
  515. /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  516. /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
  517. /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
  518. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  519. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
  520. /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  521. /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
  522. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
  523. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
  524. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
@@ -6,8 +6,14 @@ Handles automatic migration from legacy alfred/ folders to new moai/ structure.
6
6
  - Installs fresh moai/ templates from package
7
7
  - Deletes alfred/ folders
8
8
  - Updates settings.json Hook paths
9
- - Records migration status in config.json
9
+ - Records migration status in config.json (legacy) or config.yaml
10
10
  - Provides automatic rollback on failure
11
+
12
+ BACKWARD COMPATIBILITY NOTE:
13
+ - This migration tool maintains compatibility with legacy config.json format
14
+ - New projects use modular section-based YAML configs (.moai/config/sections/*.yaml)
15
+ - Migration status is recorded in whichever config format the project uses
16
+ - Both formats are supported during migration process
11
17
  """
12
18
 
13
19
  import json
@@ -3,6 +3,11 @@ Backup management module for MoAI-ADK migrations
3
3
 
4
4
  Creates and manages backups during migration processes
5
5
  to ensure data safety and enable rollback.
6
+
7
+ Supports backup of:
8
+ - Legacy config.json (.moai/config.json) - pre-v0.24.0
9
+ - Intermediate config.json (.moai/config/config.json) - v0.24.0
10
+ - Section YAML files (.moai/config/sections/*.yaml) - v0.36.0+
6
11
  """
7
12
 
8
13
  import json
@@ -46,15 +51,25 @@ class BackupManager:
46
51
 
47
52
  logger.info(f"Creating backup at {backup_dir}")
48
53
 
49
- # Files to backup
54
+ # Files to backup (supporting all config formats)
50
55
  backup_targets = [
56
+ # Legacy config.json (pre-v0.24.0)
51
57
  self.project_root / ".moai" / "config.json",
58
+ # Intermediate config.json (v0.24.0)
52
59
  self.project_root / ".moai" / "config" / "config.json",
60
+ # Statusline configs
53
61
  self.project_root / ".claude" / "statusline-config.yaml",
54
62
  self.project_root / ".moai" / "config" / "statusline-config.yaml",
55
63
  ]
56
64
 
65
+ # Add section YAML files (v0.36.0+)
66
+ sections_dir = self.project_root / ".moai" / "config" / "sections"
67
+ if sections_dir.exists():
68
+ for yaml_file in sections_dir.glob("*.yaml"):
69
+ backup_targets.append(yaml_file)
70
+
57
71
  backed_up_files = []
72
+ backed_up_dirs = []
58
73
 
59
74
  for target in backup_targets:
60
75
  if target.exists():
@@ -70,21 +85,47 @@ class BackupManager:
70
85
  backed_up_files.append(str(rel_path))
71
86
  logger.debug(f"Backed up: {rel_path}")
72
87
 
88
+ # Track sections directory if it exists
89
+ if sections_dir.exists():
90
+ backed_up_dirs.append(str(sections_dir.relative_to(self.project_root)))
91
+
73
92
  # Save backup metadata
74
93
  metadata = {
75
94
  "timestamp": timestamp,
76
95
  "description": description,
77
96
  "backed_up_files": backed_up_files,
97
+ "backed_up_dirs": backed_up_dirs,
78
98
  "project_root": str(self.project_root),
99
+ "config_format": self._detect_config_format(),
79
100
  }
80
101
 
81
102
  metadata_path = backup_dir / "backup_metadata.json"
82
103
  with open(metadata_path, "w", encoding="utf-8") as f:
83
104
  json.dump(metadata, f, indent=2, ensure_ascii=False)
84
105
 
85
- logger.info(f"Backup created successfully: {backup_dir}")
106
+ logger.info(f"Backup created successfully: {backup_dir}")
86
107
  return backup_dir
87
108
 
109
+ def _detect_config_format(self) -> str:
110
+ """
111
+ Detect the current configuration format
112
+
113
+ Returns:
114
+ One of: "section_yaml", "intermediate_json", "legacy_json", "none"
115
+ """
116
+ sections_dir = self.project_root / ".moai" / "config" / "sections"
117
+ system_yaml = sections_dir / "system.yaml"
118
+ intermediate_config = self.project_root / ".moai" / "config" / "config.json"
119
+ legacy_config = self.project_root / ".moai" / "config.json"
120
+
121
+ if sections_dir.exists() and system_yaml.exists():
122
+ return "section_yaml"
123
+ elif intermediate_config.exists():
124
+ return "intermediate_json"
125
+ elif legacy_config.exists():
126
+ return "legacy_json"
127
+ return "none"
128
+
88
129
  def list_backups(self) -> List[Dict[str, str]]:
89
130
  """
90
131
  List all available backups
@@ -110,6 +151,7 @@ class BackupManager:
110
151
  "timestamp": metadata.get("timestamp", "unknown"),
111
152
  "description": metadata.get("description", "unknown"),
112
153
  "files": len(metadata.get("backed_up_files", [])),
154
+ "config_format": metadata.get("config_format", "unknown"),
113
155
  }
114
156
  )
115
157
  except Exception as e:
@@ -158,7 +200,7 @@ class BackupManager:
158
200
  shutil.copy2(backup_file, target_file)
159
201
  logger.debug(f"Restored: {rel_path}")
160
202
 
161
- logger.info("Backup restored successfully")
203
+ logger.info("Backup restored successfully")
162
204
  return True
163
205
 
164
206
  except Exception as e:
@@ -213,6 +255,9 @@ class BackupManager:
213
255
  - .claude/ (entire directory)
214
256
  - .moai/ (entire directory)
215
257
  - CLAUDE.md (file)
258
+ - .mcp.json (MCP server configuration) (v2.0.0)
259
+ - .lsp.json (LSP server configuration) (v2.0.0)
260
+ - .git-hooks/ (custom git hooks) (v2.0.0)
216
261
 
217
262
  Args:
218
263
  description: Description of this backup (default: "pre-update-backup")
@@ -232,6 +277,11 @@ class BackupManager:
232
277
  (self.project_root / ".claude", True), # (path, is_directory)
233
278
  (self.project_root / ".moai", True),
234
279
  (self.project_root / "CLAUDE.md", False),
280
+ # MCP/LSP configuration (v2.0.0)
281
+ (self.project_root / ".mcp.json", False), # MCP server configuration
282
+ (self.project_root / ".lsp.json", False), # LSP server configuration
283
+ # Git hooks (v2.0.0)
284
+ (self.project_root / ".git-hooks", True), # Custom git hooks
235
285
  ]
236
286
 
237
287
  backed_up_items = []
@@ -273,5 +323,5 @@ class BackupManager:
273
323
  with open(metadata_path, "w", encoding="utf-8") as f:
274
324
  json.dump(metadata, f, indent=2, ensure_ascii=False)
275
325
 
276
- logger.info(f"Full project backup created successfully: {backup_dir}")
326
+ logger.info(f"Full project backup created successfully: {backup_dir}")
277
327
  return backup_dir
@@ -3,13 +3,21 @@ File migration module for MoAI-ADK version upgrades
3
3
 
4
4
  Handles the actual file movement and directory creation
5
5
  during migration processes.
6
+
7
+ Supports migration between:
8
+ - Legacy config.json (.moai/config.json) - pre-v0.24.0
9
+ - Intermediate config.json (.moai/config/config.json) - v0.24.0
10
+ - Section YAML files (.moai/config/sections/*.yaml) - v0.36.0+
6
11
  """
7
12
 
13
+ import json
8
14
  import logging
9
15
  import shutil
10
16
  from pathlib import Path
11
17
  from typing import Any, Dict, List
12
18
 
19
+ import yaml
20
+
13
21
  logger = logging.getLogger(__name__)
14
22
 
15
23
 
@@ -111,10 +119,26 @@ class FileMigrator:
111
119
  # Safety check for safe mode
112
120
  if safe:
113
121
  safe_patterns = [
122
+ # Legacy and intermediate config.json
114
123
  ".moai/config.json",
124
+ ".moai/config/config.json",
125
+ # Statusline configs
115
126
  ".claude/statusline-config.yaml",
127
+ ".moai/config/statusline-config.yaml",
128
+ # Section YAML files (v0.36.0+)
129
+ ".moai/config/sections/user.yaml",
130
+ ".moai/config/sections/language.yaml",
131
+ ".moai/config/sections/project.yaml",
132
+ ".moai/config/sections/git-strategy.yaml",
133
+ ".moai/config/sections/quality.yaml",
134
+ ".moai/config/sections/system.yaml",
116
135
  ]
117
- is_safe = any(str(file_path.relative_to(self.project_root)).endswith(pattern) for pattern in safe_patterns)
136
+ try:
137
+ rel_path = str(file_path.relative_to(self.project_root))
138
+ is_safe = any(rel_path.endswith(pattern) for pattern in safe_patterns)
139
+ except ValueError:
140
+ is_safe = False
141
+
118
142
  if not is_safe:
119
143
  logger.warning(f"Refusing to delete non-safe file: {file_path}")
120
144
  return False
@@ -132,7 +156,7 @@ class FileMigrator:
132
156
  Execute a migration plan
133
157
 
134
158
  Args:
135
- plan: Migration plan dictionary with 'create', 'move', 'cleanup' keys
159
+ plan: Migration plan dictionary with 'create', 'move', 'convert', 'cleanup' keys
136
160
 
137
161
  Returns:
138
162
  Dictionary with execution results
@@ -141,6 +165,7 @@ class FileMigrator:
141
165
  "success": True,
142
166
  "created_dirs": 0,
143
167
  "moved_files": 0,
168
+ "converted_files": 0,
144
169
  "cleaned_files": 0,
145
170
  "errors": [],
146
171
  }
@@ -166,8 +191,155 @@ class FileMigrator:
166
191
  results["errors"].append(f"Failed to move: {move_op['from']} → {move_op['to']}")
167
192
  results["success"] = False
168
193
 
194
+ # Convert config.json to section YAML files (v0.36.0+ migration)
195
+ for convert_op in plan.get("convert", []):
196
+ source = self.project_root / convert_op["from"]
197
+ target_dir = self.project_root / convert_op["to_dir"]
198
+
199
+ if self.convert_json_to_section_yaml(source, target_dir):
200
+ results["converted_files"] += 1
201
+ logger.info(f"✅ {convert_op['description']}: {convert_op['from']} → {convert_op['to_dir']}/")
202
+ else:
203
+ results["errors"].append(f"Failed to convert: {convert_op['from']} → {convert_op['to_dir']}/")
204
+ results["success"] = False
205
+
169
206
  return results
170
207
 
208
+ def convert_json_to_section_yaml(self, source_json: Path, target_dir: Path) -> bool:
209
+ """
210
+ Convert a config.json file to section YAML files
211
+
212
+ Args:
213
+ source_json: Path to the source config.json file
214
+ target_dir: Path to the target sections directory
215
+
216
+ Returns:
217
+ True if conversion was successful
218
+ """
219
+ if not source_json.exists():
220
+ logger.warning(f"Source JSON file not found: {source_json}")
221
+ return False
222
+
223
+ try:
224
+ # Read the source JSON
225
+ with open(source_json, "r", encoding="utf-8") as f:
226
+ config_data = json.load(f)
227
+
228
+ # Ensure target directory exists
229
+ target_dir.mkdir(parents=True, exist_ok=True)
230
+
231
+ # Map JSON keys to section files
232
+ section_mapping = self._get_section_mapping(config_data)
233
+
234
+ # Write each section to its YAML file
235
+ for section_name, section_data in section_mapping.items():
236
+ if section_data:
237
+ yaml_file = target_dir / f"{section_name}.yaml"
238
+ # Skip if file already exists (don't overwrite)
239
+ if yaml_file.exists():
240
+ logger.debug(f"Section file already exists, skipping: {yaml_file}")
241
+ continue
242
+
243
+ with open(yaml_file, "w", encoding="utf-8") as f:
244
+ # Add header comment
245
+ f.write(f"# {section_name.replace('-', ' ').title()} Settings\n")
246
+ f.write("# Migrated from config.json\n\n")
247
+ yaml.dump(section_data, f, default_flow_style=False, allow_unicode=True)
248
+ logger.debug(f"Created section file: {yaml_file}")
249
+
250
+ logger.info(f"Successfully converted {source_json} to section YAML files")
251
+ return True
252
+
253
+ except Exception as e:
254
+ logger.error(f"Failed to convert {source_json} to section YAML: {e}")
255
+ return False
256
+
257
+ def _get_section_mapping(self, config_data: Dict[str, Any]) -> Dict[str, Dict[str, Any]]:
258
+ """
259
+ Map config.json data to section YAML structure
260
+
261
+ Args:
262
+ config_data: The config.json data as a dictionary
263
+
264
+ Returns:
265
+ Dictionary mapping section names to their data
266
+ """
267
+ sections: Dict[str, Dict[str, Any]] = {
268
+ "user": {},
269
+ "language": {},
270
+ "project": {},
271
+ "git-strategy": {},
272
+ "quality": {},
273
+ "system": {},
274
+ }
275
+
276
+ # Map user settings
277
+ if "user_name" in config_data:
278
+ sections["user"]["user"] = {"name": config_data["user_name"]}
279
+ if "user" in config_data:
280
+ sections["user"]["user"] = config_data["user"]
281
+
282
+ # Map language settings
283
+ language_keys = ["conversation_language", "agent_prompt_language", "documentation_language", "code_comments"]
284
+ language_data = {}
285
+ for key in language_keys:
286
+ if key in config_data:
287
+ language_data[key] = config_data[key]
288
+ if "language" in config_data:
289
+ language_data.update(config_data["language"])
290
+ if language_data:
291
+ sections["language"]["language"] = language_data
292
+
293
+ # Map project settings
294
+ project_keys = ["project_name", "project_type", "project_description", "locale", "created_at", "initialized"]
295
+ project_data = {}
296
+ for key in project_keys:
297
+ if key in config_data:
298
+ # Normalize key names
299
+ normalized_key = key.replace("project_", "")
300
+ project_data[normalized_key] = config_data[key]
301
+ if "project" in config_data:
302
+ project_data.update(config_data["project"])
303
+ if project_data:
304
+ sections["project"]["project"] = project_data
305
+
306
+ # Map git strategy settings
307
+ git_keys = ["git_strategy", "auto_branch", "branch_prefix", "commit_style"]
308
+ git_data = {}
309
+ for key in git_keys:
310
+ if key in config_data:
311
+ git_data[key] = config_data[key]
312
+ if "git" in config_data:
313
+ git_data.update(config_data["git"])
314
+ if git_data:
315
+ sections["git-strategy"]["git"] = git_data
316
+
317
+ # Map quality settings
318
+ quality_keys = ["tdd_enabled", "test_framework", "coverage_threshold"]
319
+ quality_data = {}
320
+ for key in quality_keys:
321
+ if key in config_data:
322
+ quality_data[key] = config_data[key]
323
+ if "quality" in config_data:
324
+ quality_data.update(config_data["quality"])
325
+ if "tdd" in config_data:
326
+ quality_data["tdd"] = config_data["tdd"]
327
+ if quality_data:
328
+ sections["quality"]["quality"] = quality_data
329
+
330
+ # Map system settings
331
+ system_data: Dict[str, Any] = {}
332
+ if "moai_version" in config_data:
333
+ system_data["moai"] = {"version": config_data["moai_version"]}
334
+ if "moai" in config_data:
335
+ system_data["moai"] = config_data["moai"]
336
+ if "github" in config_data:
337
+ system_data["github"] = config_data["github"]
338
+ if system_data:
339
+ sections["system"] = system_data
340
+
341
+ return sections
342
+
171
343
  def cleanup_old_files(self, cleanup_list: List[str], dry_run: bool = False) -> int:
172
344
  """
173
345
  Clean up old files after successful migration
@@ -4,7 +4,7 @@ This module provides an enhanced interactive CLI interface with checkbox-style s
4
4
  arrow key navigation, and proper element preservation during updates.
5
5
 
6
6
  Key Features:
7
- - Arrow key navigation (↑↓) to move between elements
7
+ - Arrow key navigation to move between elements
8
8
  - Spacebar to toggle selection with [x] checkbox markers
9
9
  - Category grouping (Agents, Commands, Skills, Hooks)
10
10
  - Preserve unselected elements (fixes disappearing issue)
@@ -55,13 +55,13 @@ class InteractiveCheckboxUI:
55
55
  flattened_elements = self._flatten_elements(elements_by_category)
56
56
 
57
57
  if not flattened_elements:
58
- print("\n No custom elements found in project.")
58
+ print("\n[OK] No custom elements found in project.")
59
59
  print(" All elements are part of the official MoAI-ADK template.")
60
60
  return None
61
61
 
62
62
  if not backup_available:
63
- print("\n⚠️ No backup available. Cannot restore custom elements.")
64
- print("💡 Run 'moai-adk update' without --force to create a backup first.")
63
+ print("\n[WARNING] No backup available. Cannot restore custom elements.")
64
+ print("[TIP] Run 'moai-adk update' without --force to create a backup first.")
65
65
  return None
66
66
 
67
67
  # Launch curses interface
@@ -69,16 +69,16 @@ class InteractiveCheckboxUI:
69
69
  selected_indices = self._run_curses_interface(flattened_elements, elements_by_category)
70
70
  except ImportError:
71
71
  # Curses not available, use enhanced fallback immediately
72
- print("\n📱 Terminal doesn't support interactive mode, using enhanced selection...")
72
+ print("\n[INFO] Terminal doesn't support interactive mode, using enhanced selection...")
73
73
  return self._fallback_selection(flattened_elements)
74
74
  except Exception as e:
75
75
  # Fallback to simple selection if curses fails
76
- print(f"\n⚠️ Interactive mode failed: {e}")
76
+ print(f"\n[WARNING] Interactive mode failed: {e}")
77
77
  print("Falling back to enhanced selection mode...")
78
78
  return self._fallback_selection(flattened_elements)
79
79
 
80
80
  if selected_indices is None:
81
- print("\n⚠️ Selection cancelled.")
81
+ print("\n[WARNING] Selection cancelled.")
82
82
  return None
83
83
 
84
84
  # Convert indices to element paths
@@ -88,7 +88,7 @@ class InteractiveCheckboxUI:
88
88
  selected_paths.append(flattened_elements[idx]["path"])
89
89
 
90
90
  if not selected_paths:
91
- print("\n⚠️ No elements selected for restoration.")
91
+ print("\n[WARNING] No elements selected for restoration.")
92
92
  return None
93
93
 
94
94
  return selected_paths
@@ -180,14 +180,20 @@ class InteractiveCheckboxUI:
180
180
  """
181
181
 
182
182
  def interface(stdscr):
183
- # Initialize curses
183
+ # Initialize curses with adaptive colors
184
184
  curses.curs_set(0) # Hide cursor
185
- curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE) # Selected
186
- curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLUE) # Header
187
- curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_BLACK) # Success
188
- curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK) # Warning
189
185
 
190
- stdscr.clear()
186
+ # Enable default terminal colors (transparent background)
187
+ curses.use_default_colors()
188
+
189
+ # Color pairs using -1 for transparent/default background
190
+ curses.init_pair(1, curses.COLOR_CYAN, -1) # Current selection (highlighted)
191
+ curses.init_pair(2, curses.COLOR_YELLOW, -1) # Category headers
192
+ curses.init_pair(3, curses.COLOR_GREEN, -1) # Checked items / Success
193
+ curses.init_pair(4, curses.COLOR_RED, -1) # Warnings / Errors
194
+ curses.init_pair(5, curses.COLOR_MAGENTA, -1) # Special emphasis
195
+
196
+ stdscr.erase() # Use erase() instead of clear() to preserve background
191
197
  stdscr.refresh()
192
198
 
193
199
  # Main input loop
@@ -224,20 +230,20 @@ class InteractiveCheckboxUI:
224
230
  elements: Flattened list of elements and headers
225
231
  elements_by_category: Categorized elements for reference
226
232
  """
227
- stdscr.clear()
233
+ stdscr.erase() # Use erase() instead of clear() to preserve background
228
234
  h, w = stdscr.getmaxyx()
229
235
 
230
236
  # Title
231
- title = "🔍 Custom Elements Restoration"
237
+ title = "[SEARCH] Custom Elements Restoration"
232
238
  stdscr.addstr(1, (w - len(title)) // 2, title, curses.A_BOLD)
233
239
 
234
240
  # Instructions
235
- instructions = ["↑↓ Navigate | Space Toggle | A:All N:None | Enter:Confirm | Q/ESC:Cancel"]
241
+ instructions = ["Up/Down Navigate | Space Toggle | A:All N:None | Enter:Confirm | Q/ESC:Cancel"]
236
242
  for i, instruction in enumerate(instructions):
237
243
  stdscr.addstr(3, 2, instruction)
238
244
 
239
245
  # Separator
240
- stdscr.addstr(4, 0, "" * w)
246
+ stdscr.addstr(4, 0, "-" * w)
241
247
 
242
248
  # Display elements with checkboxes
243
249
  y_offset = 6
@@ -247,7 +253,7 @@ class InteractiveCheckboxUI:
247
253
 
248
254
  if element["type"] == "header":
249
255
  # Category header
250
- header_text = f"📁 {element['text']}"
256
+ header_text = f"[FOLDER] {element['text']}"
251
257
  stdscr.addstr(y_offset, 2, header_text, curses.color_pair(2) | curses.A_BOLD)
252
258
  y_offset += 1
253
259
  else:
@@ -261,8 +267,13 @@ class InteractiveCheckboxUI:
261
267
  line = f"{checkbox} {display_name}"
262
268
 
263
269
  if is_current:
270
+ # Current selection: cyan color with bold
264
271
  stdscr.addstr(y_offset, 4, line, curses.color_pair(1) | curses.A_BOLD)
272
+ elif is_selected:
273
+ # Selected but not current: green color
274
+ stdscr.addstr(y_offset, 4, line, curses.color_pair(3))
265
275
  else:
276
+ # Not selected: default color
266
277
  stdscr.addstr(y_offset, 4, line)
267
278
 
268
279
  y_offset += 1
@@ -356,14 +367,14 @@ class InteractiveCheckboxUI:
356
367
  h, w = stdscr.getmaxyx()
357
368
 
358
369
  # Clear screen for confirmation
359
- stdscr.clear()
370
+ stdscr.erase() # Use erase() instead of clear() to preserve background
360
371
  stdscr.addstr(1, (w - 20) // 2, "Confirm Selection", curses.A_BOLD)
361
372
  stdscr.addstr(3, 2, f"Selected {len(selected_paths)} elements:")
362
373
 
363
374
  for i, path in enumerate(selected_paths[:10]): # Show max 10 items
364
375
  if i >= h - 8:
365
376
  break
366
- stdscr.addstr(5 + i, 4, f" {path}")
377
+ stdscr.addstr(5 + i, 4, f"* {path}")
367
378
 
368
379
  if len(selected_paths) > 10:
369
380
  stdscr.addstr(h - 4, 4, f"... and {len(selected_paths) - 10} more")
@@ -384,7 +395,7 @@ class InteractiveCheckboxUI:
384
395
  List of selected paths or None if cancelled
385
396
  """
386
397
  print("\n" + "=" * 60)
387
- print("🔍 Custom Elements Detected (Simple Mode)")
398
+ print("[SEARCH] Custom Elements Detected (Simple Mode)")
388
399
  print("=" * 60)
389
400
  print("These elements are not part of the official MoAI-ADK template:")
390
401
  print()
@@ -393,15 +404,15 @@ class InteractiveCheckboxUI:
393
404
  for i, element in enumerate(element_list, 1):
394
405
  print(f" {i:2d}. [{element['category']}] {element['name']}")
395
406
 
396
- print("\n💡 Selection Instructions:")
397
- print(" Enter numbers separated by commas (e.g., 1,3,5)")
398
- print(" Use 'all' to select all elements")
399
- print(" Press Enter with empty input to cancel")
407
+ print("\n[TIP] Selection Instructions:")
408
+ print(" * Enter numbers separated by commas (e.g., 1,3,5)")
409
+ print(" * Use 'all' to select all elements")
410
+ print(" * Press Enter with empty input to cancel")
400
411
 
401
412
  try:
402
413
  user_input = input("\nSelect elements to restore: ").strip()
403
414
  except (KeyboardInterrupt, EOFError):
404
- print("\n⚠️ Selection cancelled.")
415
+ print("\n[WARNING] Selection cancelled.")
405
416
  return None
406
417
 
407
418
  if not user_input:
@@ -418,9 +429,9 @@ class InteractiveCheckboxUI:
418
429
  if 1 <= idx <= len(element_list):
419
430
  selected_paths.append(element_list[idx - 1]["path"])
420
431
  else:
421
- print(f"⚠️ Invalid number: {idx}")
432
+ print(f"[WARNING] Invalid number: {idx}")
422
433
  except ValueError:
423
- print("⚠️ Invalid input. Please enter numbers separated by commas.")
434
+ print("[WARNING] Invalid input. Please enter numbers separated by commas.")
424
435
  return None
425
436
 
426
437
  return selected_paths if selected_paths else None
@@ -434,7 +445,7 @@ class InteractiveCheckboxUI:
434
445
  Returns:
435
446
  True if user confirms, False otherwise
436
447
  """
437
- print("\n📋 Selection Summary:")
448
+ print("\n[LIST] Selection Summary:")
438
449
  print("-" * 40)
439
450
 
440
451
  for i, element_path in enumerate(selected_elements, 1):
@@ -449,7 +460,7 @@ class InteractiveCheckboxUI:
449
460
  confirm = input("\nConfirm restoration? (y/N): ").strip().lower()
450
461
  return confirm in ["y", "yes"]
451
462
  except (KeyboardInterrupt, EOFError):
452
- print("\n⚠️ Restoration cancelled.")
463
+ print("\n[WARNING] Restoration cancelled.")
453
464
  return False
454
465
 
455
466
  def _get_element_type(self, element_path: str) -> str: