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
@@ -0,0 +1,359 @@
1
+ """
2
+ Statusline renderer for Claude Code status display
3
+
4
+ """
5
+
6
+ # type: ignore
7
+ # -*- coding: utf-8 -*-
8
+
9
+ from dataclasses import dataclass
10
+ from typing import List
11
+
12
+ from .config import StatuslineConfig # type: ignore[attr-defined]
13
+
14
+
15
+ @dataclass
16
+ class StatuslineData:
17
+ """Status line data structure containing all necessary information"""
18
+
19
+ model: str
20
+ version: str
21
+ memory_usage: str
22
+ branch: str
23
+ git_status: str
24
+ duration: str
25
+ directory: str
26
+ active_task: str
27
+ claude_version: str = "" # Claude Code version (e.g., "2.0.46")
28
+ output_style: str = "" # Output style name (e.g., "R2-D2", "Yoda")
29
+ update_available: bool = False
30
+ latest_version: str = ""
31
+ context_window: str = "" # Context window usage (e.g., "15K/200K")
32
+
33
+
34
+ class StatuslineRenderer:
35
+ """Renders status information in various modes (compact, extended, minimal)"""
36
+
37
+ # Constraints for each mode
38
+ _MODE_CONSTRAINTS = {
39
+ "compact": 80,
40
+ "extended": 120,
41
+ "minimal": 40,
42
+ }
43
+
44
+ def __init__(self):
45
+ """Initialize renderer with configuration"""
46
+ self._config = StatuslineConfig()
47
+ self._format_config = self._config.get_format_config()
48
+ self._display_config = self._config.get_display_config()
49
+
50
+ def render(self, data: StatuslineData, mode: str = "compact") -> str:
51
+ """
52
+ Render statusline with given data in specified mode
53
+
54
+ Args:
55
+ data: StatuslineData instance with all required fields
56
+ mode: Display mode - "compact" (80 chars), "extended" (120 chars), "minimal" (40 chars)
57
+
58
+ Returns:
59
+ Formatted statusline string
60
+ """
61
+ render_method = {
62
+ "compact": self._render_compact,
63
+ "extended": self._render_extended,
64
+ "minimal": self._render_minimal,
65
+ }.get(mode, self._render_compact)
66
+
67
+ return render_method(data)
68
+
69
+ def _render_compact(self, data: StatuslineData) -> str:
70
+ """
71
+ Render compact mode: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
72
+ Constraint: <= 80 characters
73
+
74
+ Args:
75
+ data: StatuslineData instance
76
+
77
+ Returns:
78
+ Formatted statusline string (max 80 chars)
79
+ """
80
+ max_length = self._MODE_CONSTRAINTS["compact"]
81
+ parts = self._build_compact_parts(data)
82
+
83
+ # Join all parts with separator (no brackets)
84
+ result = self._format_config.separator.join(parts)
85
+
86
+ # Adjust if too long
87
+ if len(result) > max_length:
88
+ result = self._fit_to_constraint(data, max_length)
89
+
90
+ return result
91
+
92
+ def _build_compact_parts(self, data: StatuslineData) -> List[str]:
93
+ """
94
+ Build parts list for compact mode with labeled sections
95
+ Format: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
96
+
97
+ Args:
98
+ data: StatuslineData instance
99
+
100
+ Returns:
101
+ List of parts to be joined
102
+ """
103
+ parts = []
104
+
105
+ # 1. Add model first (cloud service context)
106
+ if self._display_config.model:
107
+ parts.append(f"🤖 {data.model}")
108
+
109
+ # 2. Add context window usage if available
110
+ if data.context_window:
111
+ parts.append(f"💰 {data.context_window}")
112
+
113
+ # 3. Add output style if not empty
114
+ if data.output_style:
115
+ parts.append(f"💬 {data.output_style}")
116
+
117
+ # 4. Add directory (project context)
118
+ if self._display_config.directory and data.directory:
119
+ parts.append(f"📁 {data.directory}")
120
+
121
+ # 5. Add git status if display enabled and status not empty
122
+ if self._display_config.git_status and data.git_status:
123
+ parts.append(f"📊 {data.git_status}")
124
+
125
+ # 6. Add memory usage if display enabled
126
+ if self._display_config.memory_usage and data.memory_usage:
127
+ parts.append(f"💾 {data.memory_usage}")
128
+
129
+ # 7. Add Git branch (development context)
130
+ if self._display_config.branch:
131
+ parts.append(f"🔀 {data.branch}")
132
+
133
+ # 8. Add active_task if display enabled and not empty
134
+ if self._display_config.active_task and data.active_task.strip():
135
+ parts.append(data.active_task)
136
+
137
+ return parts
138
+
139
+ def _fit_to_constraint(self, data: StatuslineData, max_length: int) -> str:
140
+ """
141
+ Fit statusline to character constraint by truncating
142
+ Format: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
143
+
144
+ Args:
145
+ data: StatuslineData instance
146
+ max_length: Maximum allowed length
147
+
148
+ Returns:
149
+ Truncated statusline string
150
+ """
151
+ truncated_branch = self._truncate_branch(data.branch, max_length=30)
152
+
153
+ # Build parts list in new order
154
+ parts = []
155
+
156
+ parts.append(f"🤖 {data.model}")
157
+
158
+ if data.context_window:
159
+ parts.append(f"💰 {data.context_window}")
160
+
161
+ if data.output_style:
162
+ parts.append(f"💬 {data.output_style}")
163
+
164
+ if self._display_config.directory and data.directory:
165
+ parts.append(f"📁 {data.directory}")
166
+
167
+ if self._display_config.git_status and data.git_status:
168
+ parts.append(f"📊 {data.git_status}")
169
+
170
+ if self._display_config.memory_usage and data.memory_usage:
171
+ parts.append(f"💾 {data.memory_usage}")
172
+
173
+ parts.append(f"🔀 {truncated_branch}")
174
+
175
+ if data.active_task.strip():
176
+ parts.append(data.active_task)
177
+
178
+ result = self._format_config.separator.join(parts)
179
+
180
+ # If still too long, try more aggressive branch truncation
181
+ if len(result) > max_length:
182
+ truncated_branch = self._truncate_branch(data.branch, max_length=12)
183
+ parts = []
184
+ parts.append(f"🤖 {data.model}")
185
+ if data.context_window:
186
+ parts.append(f"💰 {data.context_window}")
187
+ if data.output_style:
188
+ parts.append(f"💬 {data.output_style}")
189
+ if self._display_config.directory and data.directory:
190
+ parts.append(f"📁 {data.directory}")
191
+ if data.git_status:
192
+ parts.append(f"📊 {data.git_status}")
193
+ if self._display_config.memory_usage and data.memory_usage:
194
+ parts.append(f"💾 {data.memory_usage}")
195
+ parts.append(f"🔀 {truncated_branch}")
196
+ result = self._format_config.separator.join(parts)
197
+
198
+ # If still too long, remove output_style and memory_usage
199
+ if len(result) > max_length:
200
+ parts = [f"🤖 {data.model}"]
201
+ if data.context_window:
202
+ parts.append(f"💰 {data.context_window}")
203
+ if data.git_status:
204
+ parts.append(f"📊 {data.git_status}")
205
+ parts.append(f"🔀 {truncated_branch}")
206
+ result = self._format_config.separator.join(parts)
207
+
208
+ # Final fallback to minimal if still too long
209
+ if len(result) > max_length:
210
+ result = self._render_minimal(data)
211
+
212
+ return result
213
+
214
+ def _render_extended(self, data: StatuslineData) -> str:
215
+ """
216
+ Render extended mode: Full path and detailed info with labels
217
+ Constraint: <= 120 characters
218
+ Format: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
219
+
220
+ Args:
221
+ data: StatuslineData instance
222
+
223
+ Returns:
224
+ Formatted statusline string (max 120 chars)
225
+ """
226
+ branch = self._truncate_branch(data.branch, max_length=30)
227
+
228
+ # Build parts list in new order
229
+ parts = []
230
+
231
+ # 1. Model first
232
+ if self._display_config.model:
233
+ parts.append(f"🤖 {data.model}")
234
+
235
+ # 2. Context window
236
+ if data.context_window:
237
+ parts.append(f"💰 {data.context_window}")
238
+
239
+ # 3. Output style
240
+ if data.output_style:
241
+ parts.append(f"💬 {data.output_style}")
242
+
243
+ # 4. Directory
244
+ if self._display_config.directory and data.directory:
245
+ parts.append(f"📁 {data.directory}")
246
+
247
+ # 5. Git status
248
+ if self._display_config.git_status and data.git_status:
249
+ parts.append(f"📊 {data.git_status}")
250
+
251
+ # 6. Memory usage
252
+ if self._display_config.memory_usage and data.memory_usage:
253
+ parts.append(f"💾 {data.memory_usage}")
254
+
255
+ # 7. Git branch
256
+ if self._display_config.branch:
257
+ parts.append(f"🔀 {branch}")
258
+
259
+ # 8. Active task
260
+ if self._display_config.active_task and data.active_task.strip():
261
+ parts.append(data.active_task)
262
+
263
+ result = self._format_config.separator.join(parts)
264
+
265
+ # If exceeds limit, try truncating
266
+ if len(result) > 120:
267
+ branch = self._truncate_branch(data.branch, max_length=20)
268
+ parts = []
269
+ if self._display_config.model:
270
+ parts.append(f"🤖 {data.model}")
271
+ if data.context_window:
272
+ parts.append(f"💰 {data.context_window}")
273
+ if data.output_style:
274
+ parts.append(f"💬 {data.output_style}")
275
+ if self._display_config.directory and data.directory:
276
+ parts.append(f"📁 {data.directory}")
277
+ if data.git_status:
278
+ parts.append(f"📊 {data.git_status}")
279
+ if self._display_config.memory_usage and data.memory_usage:
280
+ parts.append(f"💾 {data.memory_usage}")
281
+ parts.append(f"🔀 {branch}")
282
+ result = self._format_config.separator.join(parts)
283
+
284
+ return result
285
+
286
+ def _render_minimal(self, data: StatuslineData) -> str:
287
+ """
288
+ Render minimal mode: Extreme space constraint with minimal labels
289
+ Constraint: <= 40 characters
290
+ Format: 🤖 Model | 💰 Context
291
+
292
+ Args:
293
+ data: StatuslineData instance
294
+
295
+ Returns:
296
+ Formatted statusline string (max 40 chars)
297
+ """
298
+ parts = []
299
+
300
+ # Add model if display enabled
301
+ if self._display_config.model:
302
+ parts.append(f"🤖 {data.model}")
303
+
304
+ # Add context window usage if available (💰 icon)
305
+ if data.context_window:
306
+ parts.append(f"💰 {data.context_window}")
307
+
308
+ result = self._format_config.separator.join(parts)
309
+
310
+ # Add git_status if it fits
311
+ if self._display_config.git_status and data.git_status:
312
+ status_label = f"📊 {data.git_status}"
313
+ if len(result) + len(status_label) + len(self._format_config.separator) <= 40:
314
+ result += f"{self._format_config.separator}{status_label}"
315
+
316
+ return result
317
+
318
+ @staticmethod
319
+ def _truncate_branch(branch: str, max_length: int = 30) -> str:
320
+ """
321
+ Truncate branch name intelligently, preserving SPEC ID if present
322
+
323
+ Args:
324
+ branch: Branch name to truncate
325
+ max_length: Maximum allowed length
326
+
327
+ Returns:
328
+ Truncated branch name
329
+ """
330
+ if len(branch) <= max_length:
331
+ return branch
332
+
333
+ # Try to preserve SPEC ID in feature branches
334
+ if "SPEC" in branch:
335
+ parts = branch.split("-")
336
+ for i, part in enumerate(parts):
337
+ if "SPEC" in part and i + 1 < len(parts):
338
+ # Found SPEC ID, include it
339
+ spec_truncated = "-".join(parts[: i + 2])
340
+ if len(spec_truncated) <= max_length:
341
+ return spec_truncated
342
+
343
+ # Simple truncation with ellipsis for very long names
344
+ return f"{branch[: max_length - 1]}…" if len(branch) > max_length else branch
345
+
346
+ @staticmethod
347
+ def _truncate_version(version: str) -> str:
348
+ """
349
+ Truncate version string for minimal display by removing 'v' prefix
350
+
351
+ Args:
352
+ version: Version string (e.g., "v0.20.1" or "0.20.1")
353
+
354
+ Returns:
355
+ Truncated version string
356
+ """
357
+ if version.startswith("v"):
358
+ return version[1:]
359
+ return version
@@ -0,0 +1,333 @@
1
+ """TAG linkage manager module for TAG System v2.0.
2
+
3
+ Implements T4: Linkage Manager for bidirectional TAG↔CODE mapping
4
+ with atomic database operations.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import json
10
+ import logging
11
+ from pathlib import Path
12
+ from typing import Any
13
+
14
+ from . import tag_validator
15
+
16
+ # Import atomic_write functions directly
17
+ from .atomic_write import atomic_write_json, atomic_write_text
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+
22
+ def spec_document_exists(spec_id: str) -> bool:
23
+ """Check if SPEC document exists in .moai/specs/.
24
+
25
+ Args:
26
+ spec_id: SPEC identifier to check
27
+
28
+ Returns:
29
+ True if SPEC document exists, False otherwise
30
+ """
31
+ # Get specs directory from current working directory
32
+ specs_dir = Path.cwd() / ".moai" / "specs"
33
+
34
+ if not specs_dir.exists():
35
+ return False
36
+
37
+ # Check for SPEC directory
38
+ spec_dir = specs_dir / spec_id
39
+ return spec_dir.exists() and spec_dir.is_dir()
40
+
41
+
42
+ class LinkageManager:
43
+ """Manage bidirectional TAG↔CODE mapping database.
44
+
45
+ Provides atomic database operations for TAG tracking,
46
+ with support for TAG→Files and File→TAGs lookups.
47
+
48
+ Attributes:
49
+ db_path: Path to linkage database file
50
+ """
51
+
52
+ def __init__(self, db_path: Path) -> None:
53
+ """Initialize linkage manager.
54
+
55
+ Args:
56
+ db_path: Path to linkage database JSON file
57
+ """
58
+ self.db_path = Path(db_path)
59
+ self._ensure_database()
60
+
61
+ def _ensure_database(self) -> None:
62
+ """Ensure database file exists with proper structure."""
63
+ if not self.db_path.exists():
64
+ # Create new database with empty structure
65
+ self._write_database({"tags": [], "files": {}})
66
+
67
+ def _load_database(self) -> dict[str, Any]:
68
+ """Load database from disk.
69
+
70
+ Returns:
71
+ Database dictionary with 'tags' and 'files' keys
72
+ """
73
+ try:
74
+ if not self.db_path.exists():
75
+ return {"tags": [], "files": {}}
76
+
77
+ with open(self.db_path, "r", encoding="utf-8") as f:
78
+ data = json.load(f)
79
+
80
+ # Validate structure
81
+ if not isinstance(data, dict):
82
+ logger.warning(f"Invalid database structure in {self.db_path}")
83
+ return {"tags": [], "files": {}}
84
+
85
+ if "tags" not in data:
86
+ data["tags"] = []
87
+ if "files" not in data:
88
+ data["files"] = {}
89
+
90
+ return data
91
+
92
+ except (json.JSONDecodeError, OSError) as e:
93
+ logger.error(f"Error loading database {self.db_path}: {e}")
94
+ return {"tags": [], "files": {}}
95
+
96
+ def _write_database(self, data: dict[str, Any]) -> bool:
97
+ """Write database to disk atomically.
98
+
99
+ Args:
100
+ data: Database dictionary to write
101
+
102
+ Returns:
103
+ True if write succeeded, False otherwise
104
+ """
105
+ return atomic_write_json(self.db_path, data)
106
+
107
+ def add_tag(self, tag: tag_validator.TAG) -> bool:
108
+ """Add TAG to linkage database.
109
+
110
+ Args:
111
+ tag: TAG object to add
112
+
113
+ Returns:
114
+ True if TAG added successfully, False otherwise
115
+
116
+ Examples:
117
+ >>> tag = TAG("SPEC-AUTH-001", Path("auth.py"), 10)
118
+ >>> manager.add_tag(tag)
119
+ True
120
+ """
121
+ try:
122
+ data = self._load_database()
123
+
124
+ # Create TAG entry
125
+ tag_entry = {
126
+ "spec_id": tag.spec_id,
127
+ "verb": tag.verb,
128
+ "file_path": str(tag.file_path),
129
+ "line": tag.line,
130
+ }
131
+
132
+ # Check for duplicate
133
+ if tag_entry not in data["tags"]:
134
+ data["tags"].append(tag_entry)
135
+
136
+ # Update file index
137
+ file_key = str(tag.file_path)
138
+ if file_key not in data["files"]:
139
+ data["files"][file_key] = []
140
+
141
+ if tag.spec_id not in data["files"][file_key]:
142
+ data["files"][file_key].append(tag.spec_id)
143
+
144
+ # Write database atomically
145
+ return self._write_database(data)
146
+
147
+ except Exception as e:
148
+ logger.error(f"Error adding TAG to database: {e}")
149
+ return False
150
+
151
+ def remove_tag(self, tag: tag_validator.TAG) -> bool:
152
+ """Remove specific TAG from database.
153
+
154
+ Args:
155
+ tag: TAG object to remove
156
+
157
+ Returns:
158
+ True if TAG removed successfully, False otherwise
159
+ """
160
+ try:
161
+ data = self._load_database()
162
+
163
+ tag_entry = {
164
+ "spec_id": tag.spec_id,
165
+ "verb": tag.verb,
166
+ "file_path": str(tag.file_path),
167
+ "line": tag.line,
168
+ }
169
+
170
+ # Remove from tags list
171
+ if tag_entry in data["tags"]:
172
+ data["tags"].remove(tag_entry)
173
+
174
+ # Update file index
175
+ file_key = str(tag.file_path)
176
+ if file_key in data["files"] and tag.spec_id in data["files"][file_key]:
177
+ data["files"][file_key].remove(tag.spec_id)
178
+
179
+ # Clean up empty file entries
180
+ if not data["files"][file_key]:
181
+ del data["files"][file_key]
182
+
183
+ return self._write_database(data)
184
+
185
+ except Exception as e:
186
+ logger.error(f"Error removing TAG from database: {e}")
187
+ return False
188
+
189
+ def remove_file_tags(self, file_path: Path) -> bool:
190
+ """Remove all TAGs for a file.
191
+
192
+ Args:
193
+ file_path: Path to file whose TAGs should be removed
194
+
195
+ Returns:
196
+ True if TAGs removed successfully, False otherwise
197
+
198
+ Examples:
199
+ >>> manager.remove_file_tags(Path("deleted.py"))
200
+ True
201
+ """
202
+ try:
203
+ data = self._load_database()
204
+
205
+ file_key = str(file_path)
206
+
207
+ # Remove all TAGs for this file
208
+ data["tags"] = [tag for tag in data["tags"] if tag["file_path"] != file_key]
209
+
210
+ # Remove file index
211
+ if file_key in data["files"]:
212
+ del data["files"][file_key]
213
+
214
+ return self._write_database(data)
215
+
216
+ except Exception as e:
217
+ logger.error(f"Error removing file TAGs: {e}")
218
+ return False
219
+
220
+ def get_all_tags(self) -> list[dict[str, Any]]:
221
+ """Get all TAGs in database.
222
+
223
+ Returns:
224
+ List of TAG dictionaries
225
+ """
226
+ data = self._load_database()
227
+ return data.get("tags", [])
228
+
229
+ def get_code_locations(self, spec_id: str) -> list[dict[str, Any]]:
230
+ """Get all code locations for a SPEC-ID.
231
+
232
+ Args:
233
+ spec_id: SPEC identifier to query
234
+
235
+ Returns:
236
+ List of location dictionaries with file_path, line, and verb
237
+
238
+ Examples:
239
+ >>> locations = manager.get_code_locations("SPEC-AUTH-001")
240
+ >>> len(locations)
241
+ 3
242
+ """
243
+ data = self._load_database()
244
+ tags = data.get("tags", [])
245
+
246
+ # Filter TAGs by spec_id
247
+ locations = [
248
+ {
249
+ "file_path": tag["file_path"],
250
+ "line": tag["line"],
251
+ "verb": tag["verb"],
252
+ }
253
+ for tag in tags
254
+ if tag["spec_id"] == spec_id
255
+ ]
256
+
257
+ return locations
258
+
259
+ def get_tags_by_file(self, file_path: Path) -> list[dict[str, Any]]:
260
+ """Get all TAGs for a specific file.
261
+
262
+ Args:
263
+ file_path: Path to file
264
+
265
+ Returns:
266
+ List of TAG dictionaries for the file
267
+
268
+ Examples:
269
+ >>> tags = manager.get_tags_by_file(Path("auth.py"))
270
+ >>> len(tags)
271
+ 2
272
+ """
273
+ data = self._load_database()
274
+ tags = data.get("tags", [])
275
+ file_key = str(file_path)
276
+
277
+ # Filter TAGs by file_path
278
+ return [
279
+ {
280
+ "spec_id": tag["spec_id"],
281
+ "verb": tag["verb"],
282
+ "file_path": tag["file_path"],
283
+ "line": tag["line"],
284
+ }
285
+ for tag in tags
286
+ if tag["file_path"] == file_key
287
+ ]
288
+
289
+ def get_all_spec_ids(self) -> list[str]:
290
+ """Get all unique SPEC-IDs in database.
291
+
292
+ Returns:
293
+ Sorted list of unique SPEC-ID strings
294
+ """
295
+ data = self._load_database()
296
+ tags = data.get("tags", [])
297
+
298
+ spec_ids = {tag["spec_id"] for tag in tags}
299
+ return sorted(spec_ids)
300
+
301
+ def find_orphaned_tags(self) -> list[dict[str, Any]]:
302
+ """Find TAGs referencing nonexistent SPEC documents.
303
+
304
+ Returns:
305
+ List of orphaned TAG dictionaries
306
+
307
+ Examples:
308
+ >>> orphans = manager.find_orphaned_tags()
309
+ >>> len(orphans)
310
+ 1
311
+ """
312
+ data = self._load_database()
313
+ tags = data.get("tags", [])
314
+
315
+ orphans = [tag for tag in tags if not spec_document_exists(tag["spec_id"])]
316
+
317
+ return orphans
318
+
319
+ def clear(self) -> bool:
320
+ """Clear all TAGs from database.
321
+
322
+ Returns:
323
+ True if database cleared successfully, False otherwise
324
+ """
325
+ return self._write_database({"tags": [], "files": {}})
326
+
327
+
328
+ __all__ = [
329
+ "spec_document_exists",
330
+ "LinkageManager",
331
+ "atomic_write_json",
332
+ "atomic_write_text",
333
+ ]