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
moai_adk/rank/py.typed ADDED
File without changes
@@ -16,6 +16,7 @@ __version__ = "0.1.0"
16
16
  from .alfred_detector import AlfredDetector, AlfredTask
17
17
  from .config import StatuslineConfig
18
18
  from .git_collector import GitCollector, GitInfo
19
+ from .memory_collector import MemoryCollector, MemoryInfo
19
20
  from .metrics_tracker import MetricsTracker
20
21
  from .renderer import StatuslineData, StatuslineRenderer
21
22
  from .update_checker import UpdateChecker, UpdateInfo
@@ -27,6 +28,8 @@ __all__ = [
27
28
  "StatuslineConfig",
28
29
  "GitCollector",
29
30
  "GitInfo",
31
+ "MemoryCollector",
32
+ "MemoryInfo",
30
33
  "MetricsTracker",
31
34
  "AlfredDetector",
32
35
  "AlfredTask",
@@ -58,7 +58,7 @@ class OutputStyleDetector:
58
58
 
59
59
  def __init__(self):
60
60
  self.cache = {}
61
- self.cache_ttl = 5 # Cache for 5 seconds to balance performance and accuracy
61
+ self.cache_ttl: float = 5.0 # Cache for 5 seconds to balance performance and accuracy
62
62
 
63
63
  def detect_from_session_context(self, session_data: Dict[str, Any]) -> Optional[str]:
64
64
  """
@@ -291,7 +291,7 @@ class OutputStyleDetector:
291
291
  print(f"Message pattern analysis error: {e}", file=sys.stderr)
292
292
  return None
293
293
 
294
- def get_output_style(self, session_context: Dict[str, Any] = None) -> str:
294
+ def get_output_style(self, session_context: Optional[Dict[str, Any]] = None) -> str:
295
295
  """
296
296
  Get the current output style using all available detection methods.
297
297
 
@@ -332,8 +332,8 @@ class OutputStyleDetector:
332
332
  print(f"{method_name} detection failed: {e}", file=sys.stderr)
333
333
  continue
334
334
 
335
- # Default fallback
336
- return "R2-D2"
335
+ # Default fallback - Mr. Alfred is the default output style
336
+ return "Mr. Alfred"
337
337
 
338
338
 
339
339
  def safe_collect_output_style() -> str:
@@ -363,7 +363,7 @@ def safe_collect_output_style() -> str:
363
363
 
364
364
  except Exception as e:
365
365
  print(f"Output style detection failed: {e}", file=sys.stderr)
366
- return "R2-D2"
366
+ return "Mr. Alfred"
367
367
 
368
368
 
369
369
  # For backward compatibility
@@ -1,4 +1,5 @@
1
1
  # type: ignore
2
+ # -*- coding: utf-8 -*-
2
3
  #!/usr/bin/env python3
3
4
  """
4
5
  Claude Code Statusline Integration
@@ -125,6 +126,23 @@ def safe_collect_version() -> str:
125
126
  # safe_collect_output_style function removed - no longer needed
126
127
 
127
128
 
129
+ def safe_collect_memory() -> str:
130
+ """
131
+ Safely collect memory usage with fallback.
132
+
133
+ Returns:
134
+ Formatted memory usage string (e.g., "128MB")
135
+ """
136
+ try:
137
+ from .memory_collector import MemoryCollector
138
+
139
+ collector = MemoryCollector()
140
+ return collector.get_display_string(mode="process")
141
+ except (ImportError, OSError, AttributeError, RuntimeError):
142
+ # Memory collector errors
143
+ return "N/A"
144
+
145
+
128
146
  def safe_check_update(current_version: str) -> tuple[bool, Optional[str]]:
129
147
  """
130
148
  Safely check for updates with fallback.
@@ -246,6 +264,7 @@ def build_statusline_data(session_context: dict, mode: str = "compact") -> str:
246
264
  duration = safe_collect_duration()
247
265
  active_task = safe_collect_alfred_task()
248
266
  version = safe_collect_version()
267
+ memory_usage = safe_collect_memory()
249
268
  update_available, latest_version = safe_check_update(version)
250
269
 
251
270
  # Build StatuslineData with dynamic fields
@@ -253,7 +272,7 @@ def build_statusline_data(session_context: dict, mode: str = "compact") -> str:
253
272
  model=model,
254
273
  claude_version=claude_version,
255
274
  version=version,
256
- memory_usage="256MB", # TODO: Get actual memory usage
275
+ memory_usage=memory_usage,
257
276
  branch=branch,
258
277
  git_status=git_status,
259
278
  duration=duration,
@@ -0,0 +1,268 @@
1
+ """
2
+ Memory collector for MoAI-ADK statusline
3
+
4
+ Collects memory usage information for display in the status bar.
5
+ Uses psutil for cross-platform memory monitoring.
6
+ """
7
+
8
+ import logging
9
+ import os
10
+ from dataclasses import dataclass
11
+ from datetime import datetime, timedelta
12
+ from typing import Optional
13
+
14
+ logger = logging.getLogger(__name__)
15
+
16
+
17
+ @dataclass
18
+ class MemoryInfo:
19
+ """Memory usage information"""
20
+
21
+ # Process memory (current Python process)
22
+ process_rss_mb: float # Resident Set Size
23
+ process_vms_mb: float # Virtual Memory Size
24
+
25
+ # System memory
26
+ system_total_mb: float
27
+ system_available_mb: float
28
+ system_percent: float
29
+
30
+ # Formatted strings for display
31
+ display_process: str # e.g., "128MB"
32
+ display_system: str # e.g., "8.2GB/16GB"
33
+ display_percent: str # e.g., "51%"
34
+
35
+ timestamp: datetime
36
+
37
+
38
+ class MemoryCollector:
39
+ """
40
+ Memory collector for statusline display.
41
+
42
+ Features:
43
+ - Process memory monitoring (current Python process)
44
+ - System memory monitoring
45
+ - Caching with configurable TTL
46
+ - Graceful degradation on errors
47
+ - Multiple display format options
48
+ """
49
+
50
+ # Cache configuration
51
+ DEFAULT_CACHE_TTL_SECONDS = 10 # Memory doesn't change rapidly
52
+
53
+ def __init__(self, cache_ttl_seconds: Optional[int] = None):
54
+ """
55
+ Initialize memory collector.
56
+
57
+ Args:
58
+ cache_ttl_seconds: Cache TTL in seconds. If None, uses default.
59
+ """
60
+ self._cache_ttl = timedelta(seconds=cache_ttl_seconds or self.DEFAULT_CACHE_TTL_SECONDS)
61
+ self._cache: Optional[MemoryInfo] = None
62
+ self._cache_time: Optional[datetime] = None
63
+ self._logger = logging.getLogger(__name__)
64
+
65
+ # Check if psutil is available
66
+ self._psutil_available = self._check_psutil()
67
+
68
+ def _check_psutil(self) -> bool:
69
+ """Check if psutil is available."""
70
+ try:
71
+ import psutil # noqa: F401
72
+
73
+ return True
74
+ except ImportError:
75
+ self._logger.warning("psutil not available, memory monitoring disabled")
76
+ return False
77
+
78
+ def get_memory_info(self, force_refresh: bool = False) -> Optional[MemoryInfo]:
79
+ """
80
+ Get memory usage information.
81
+
82
+ Args:
83
+ force_refresh: If True, bypass cache and force fresh collection
84
+
85
+ Returns:
86
+ MemoryInfo object or None if collection fails
87
+ """
88
+ if not self._psutil_available:
89
+ return None
90
+
91
+ # Check cache
92
+ if not force_refresh and self._is_cache_valid():
93
+ return self._cache
94
+
95
+ try:
96
+ memory_info = self._collect_memory_info()
97
+ self._update_cache(memory_info)
98
+ return memory_info
99
+ except Exception as e:
100
+ self._logger.error(f"Error collecting memory info: {e}")
101
+ return self._cache # Return stale cache on error
102
+
103
+ def get_display_string(self, mode: str = "process", force_refresh: bool = False) -> str:
104
+ """
105
+ Get formatted memory string for statusline display.
106
+
107
+ Args:
108
+ mode: Display mode
109
+ - "process": Process memory (e.g., "128MB")
110
+ - "system": System memory usage (e.g., "8.2GB/16GB")
111
+ - "percent": System memory percentage (e.g., "51%")
112
+ - "compact": Process memory compact (e.g., "128M")
113
+ force_refresh: If True, bypass cache
114
+
115
+ Returns:
116
+ Formatted memory string, or "N/A" on error
117
+ """
118
+ memory_info = self.get_memory_info(force_refresh)
119
+
120
+ if memory_info is None:
121
+ return "N/A"
122
+
123
+ if mode == "process":
124
+ return memory_info.display_process
125
+ elif mode == "system":
126
+ return memory_info.display_system
127
+ elif mode == "percent":
128
+ return memory_info.display_percent
129
+ elif mode == "compact":
130
+ # Compact format without "MB" suffix
131
+ return self._format_compact(memory_info.process_rss_mb)
132
+ else:
133
+ return memory_info.display_process
134
+
135
+ def _collect_memory_info(self) -> MemoryInfo:
136
+ """
137
+ Collect memory information using psutil.
138
+
139
+ Returns:
140
+ MemoryInfo object with current memory usage
141
+ """
142
+ import psutil
143
+
144
+ # Get current process info
145
+ process = psutil.Process(os.getpid())
146
+ process_memory = process.memory_info()
147
+
148
+ # Convert to MB
149
+ process_rss_mb = process_memory.rss / (1024 * 1024)
150
+ process_vms_mb = process_memory.vms / (1024 * 1024)
151
+
152
+ # Get system memory info
153
+ system_memory = psutil.virtual_memory()
154
+ system_total_mb = system_memory.total / (1024 * 1024)
155
+ system_available_mb = system_memory.available / (1024 * 1024)
156
+ system_percent = system_memory.percent
157
+
158
+ # Format display strings
159
+ display_process = self._format_size(process_rss_mb)
160
+ display_system = (
161
+ f"{self._format_size(system_total_mb - system_available_mb)}/{self._format_size(system_total_mb)}"
162
+ )
163
+ display_percent = f"{system_percent:.0f}%"
164
+
165
+ return MemoryInfo(
166
+ process_rss_mb=process_rss_mb,
167
+ process_vms_mb=process_vms_mb,
168
+ system_total_mb=system_total_mb,
169
+ system_available_mb=system_available_mb,
170
+ system_percent=system_percent,
171
+ display_process=display_process,
172
+ display_system=display_system,
173
+ display_percent=display_percent,
174
+ timestamp=datetime.now(),
175
+ )
176
+
177
+ def _format_size(self, size_mb: float) -> str:
178
+ """
179
+ Format size in MB to human-readable string.
180
+
181
+ Args:
182
+ size_mb: Size in megabytes
183
+
184
+ Returns:
185
+ Formatted string (e.g., "128MB", "1.2GB")
186
+ """
187
+ if size_mb >= 1024:
188
+ return f"{size_mb / 1024:.1f}GB"
189
+ elif size_mb >= 100:
190
+ return f"{size_mb:.0f}MB"
191
+ elif size_mb >= 10:
192
+ return f"{size_mb:.1f}MB"
193
+ else:
194
+ return f"{size_mb:.2f}MB"
195
+
196
+ def _format_compact(self, size_mb: float) -> str:
197
+ """
198
+ Format size in compact format for tight spaces.
199
+
200
+ Args:
201
+ size_mb: Size in megabytes
202
+
203
+ Returns:
204
+ Compact formatted string (e.g., "128M", "1.2G")
205
+ """
206
+ if size_mb >= 1024:
207
+ return f"{size_mb / 1024:.1f}G"
208
+ else:
209
+ return f"{size_mb:.0f}M"
210
+
211
+ def _is_cache_valid(self) -> bool:
212
+ """Check if cache is still valid."""
213
+ if self._cache is None or self._cache_time is None:
214
+ return False
215
+
216
+ age = datetime.now() - self._cache_time
217
+ return age < self._cache_ttl
218
+
219
+ def _update_cache(self, memory_info: MemoryInfo) -> None:
220
+ """Update cache with new memory info."""
221
+ self._cache = memory_info
222
+ self._cache_time = datetime.now()
223
+
224
+ def clear_cache(self) -> None:
225
+ """Clear the memory cache."""
226
+ self._cache = None
227
+ self._cache_time = None
228
+
229
+ def get_cache_age_seconds(self) -> Optional[float]:
230
+ """
231
+ Get cache age in seconds.
232
+
233
+ Returns:
234
+ Cache age in seconds, or None if no cache
235
+ """
236
+ if self._cache_time is None:
237
+ return None
238
+ return (datetime.now() - self._cache_time).total_seconds()
239
+
240
+
241
+ # Singleton instance for convenience
242
+ _default_collector: Optional[MemoryCollector] = None
243
+
244
+
245
+ def get_memory_collector() -> MemoryCollector:
246
+ """
247
+ Get the default memory collector instance.
248
+
249
+ Returns:
250
+ MemoryCollector singleton instance
251
+ """
252
+ global _default_collector
253
+ if _default_collector is None:
254
+ _default_collector = MemoryCollector()
255
+ return _default_collector
256
+
257
+
258
+ def get_memory_display(mode: str = "process") -> str:
259
+ """
260
+ Convenience function to get memory display string.
261
+
262
+ Args:
263
+ mode: Display mode ("process", "system", "percent", "compact")
264
+
265
+ Returns:
266
+ Formatted memory string
267
+ """
268
+ return get_memory_collector().get_display_string(mode)
@@ -4,6 +4,7 @@ Statusline renderer for Claude Code status display
4
4
  """
5
5
 
6
6
  # type: ignore
7
+ # -*- coding: utf-8 -*-
7
8
 
8
9
  from dataclasses import dataclass
9
10
  from typing import List
@@ -67,7 +68,7 @@ class StatuslineRenderer:
67
68
 
68
69
  def _render_compact(self, data: StatuslineData) -> str:
69
70
  """
70
- Render compact mode: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
71
+ Render compact mode: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
71
72
  Constraint: <= 80 characters
72
73
 
73
74
  Args:
@@ -91,7 +92,7 @@ class StatuslineRenderer:
91
92
  def _build_compact_parts(self, data: StatuslineData) -> List[str]:
92
93
  """
93
94
  Build parts list for compact mode with labeled sections
94
- Format: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
95
+ Format: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
95
96
 
96
97
  Args:
97
98
  data: StatuslineData instance
@@ -101,32 +102,35 @@ class StatuslineRenderer:
101
102
  """
102
103
  parts = []
103
104
 
104
- # Add model if display enabled (most important - cloud service context)
105
+ # 1. Add model first (cloud service context)
105
106
  if self._display_config.model:
106
107
  parts.append(f"🤖 {data.model}")
107
108
 
108
- # Add Claude Code version if available
109
- if data.claude_version:
110
- claude_ver_str = data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
111
- parts.append(f"🔅 {claude_ver_str}")
112
-
113
- # Add context window usage if available (💰 icon)
109
+ # 2. Add context window usage if available
114
110
  if data.context_window:
115
111
  parts.append(f"💰 {data.context_window}")
116
112
 
117
- # Add output style if not empty
113
+ # 3. Add output style if not empty
118
114
  if data.output_style:
119
115
  parts.append(f"💬 {data.output_style}")
120
116
 
121
- # Add git status if display enabled and status not empty
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
122
  if self._display_config.git_status and data.git_status:
123
123
  parts.append(f"📊 {data.git_status}")
124
124
 
125
- # Add Git info (development context)
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)
126
130
  if self._display_config.branch:
127
131
  parts.append(f"🔀 {data.branch}")
128
132
 
129
- # Add active_task if display enabled and not empty
133
+ # 8. Add active_task if display enabled and not empty
130
134
  if self._display_config.active_task and data.active_task.strip():
131
135
  parts.append(data.active_task)
132
136
 
@@ -135,7 +139,7 @@ class StatuslineRenderer:
135
139
  def _fit_to_constraint(self, data: StatuslineData, max_length: int) -> str:
136
140
  """
137
141
  Fit statusline to character constraint by truncating
138
- Format: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
142
+ Format: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
139
143
 
140
144
  Args:
141
145
  data: StatuslineData instance
@@ -146,12 +150,10 @@ class StatuslineRenderer:
146
150
  """
147
151
  truncated_branch = self._truncate_branch(data.branch, max_length=30)
148
152
 
149
- # Build parts list
150
- parts = [f"🤖 {data.model}"]
153
+ # Build parts list in new order
154
+ parts = []
151
155
 
152
- if data.claude_version:
153
- claude_ver_str = data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
154
- parts.append(f"🔅 {claude_ver_str}")
156
+ parts.append(f"🤖 {data.model}")
155
157
 
156
158
  if data.context_window:
157
159
  parts.append(f"💰 {data.context_window}")
@@ -159,9 +161,15 @@ class StatuslineRenderer:
159
161
  if data.output_style:
160
162
  parts.append(f"💬 {data.output_style}")
161
163
 
164
+ if self._display_config.directory and data.directory:
165
+ parts.append(f"📁 {data.directory}")
166
+
162
167
  if self._display_config.git_status and data.git_status:
163
168
  parts.append(f"📊 {data.git_status}")
164
169
 
170
+ if self._display_config.memory_usage and data.memory_usage:
171
+ parts.append(f"💾 {data.memory_usage}")
172
+
165
173
  parts.append(f"🔀 {truncated_branch}")
166
174
 
167
175
  if data.active_task.strip():
@@ -172,23 +180,22 @@ class StatuslineRenderer:
172
180
  # If still too long, try more aggressive branch truncation
173
181
  if len(result) > max_length:
174
182
  truncated_branch = self._truncate_branch(data.branch, max_length=12)
175
- parts = [f"🤖 {data.model}"]
176
-
177
- if data.claude_version:
178
- claude_ver_str = (
179
- data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
180
- )
181
- parts.append(f"🔅 {claude_ver_str}")
183
+ parts = []
184
+ parts.append(f"🤖 {data.model}")
182
185
  if data.context_window:
183
186
  parts.append(f"💰 {data.context_window}")
184
187
  if data.output_style:
185
188
  parts.append(f"💬 {data.output_style}")
189
+ if self._display_config.directory and data.directory:
190
+ parts.append(f"📁 {data.directory}")
186
191
  if data.git_status:
187
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}")
188
195
  parts.append(f"🔀 {truncated_branch}")
189
196
  result = self._format_config.separator.join(parts)
190
197
 
191
- # If still too long, remove output_style
198
+ # If still too long, remove output_style and memory_usage
192
199
  if len(result) > max_length:
193
200
  parts = [f"🤖 {data.model}"]
194
201
  if data.context_window:
@@ -208,7 +215,7 @@ class StatuslineRenderer:
208
215
  """
209
216
  Render extended mode: Full path and detailed info with labels
210
217
  Constraint: <= 120 characters
211
- Format: 🤖 Model | 🔅 Version | 💰 Context | 💬 Style | 📊 Changes | 🔀 Branch
218
+ Format: 🤖 Model | 💰 Context | 💬 Style | 📁 Directory | 📊 Changes | 💾 Memory | 🔀 Branch
212
219
 
213
220
  Args:
214
221
  data: StatuslineData instance
@@ -218,28 +225,38 @@ class StatuslineRenderer:
218
225
  """
219
226
  branch = self._truncate_branch(data.branch, max_length=30)
220
227
 
221
- # Build parts list
228
+ # Build parts list in new order
222
229
  parts = []
223
230
 
231
+ # 1. Model first
224
232
  if self._display_config.model:
225
233
  parts.append(f"🤖 {data.model}")
226
234
 
227
- if data.claude_version:
228
- claude_ver_str = data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
229
- parts.append(f"🔅 {claude_ver_str}")
230
-
235
+ # 2. Context window
231
236
  if data.context_window:
232
237
  parts.append(f"💰 {data.context_window}")
233
238
 
239
+ # 3. Output style
234
240
  if data.output_style:
235
241
  parts.append(f"💬 {data.output_style}")
236
242
 
243
+ # 4. Directory
244
+ if self._display_config.directory and data.directory:
245
+ parts.append(f"📁 {data.directory}")
246
+
247
+ # 5. Git status
237
248
  if self._display_config.git_status and data.git_status:
238
249
  parts.append(f"📊 {data.git_status}")
239
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
240
256
  if self._display_config.branch:
241
257
  parts.append(f"🔀 {branch}")
242
258
 
259
+ # 8. Active task
243
260
  if self._display_config.active_task and data.active_task.strip():
244
261
  parts.append(data.active_task)
245
262
 
@@ -251,17 +268,16 @@ class StatuslineRenderer:
251
268
  parts = []
252
269
  if self._display_config.model:
253
270
  parts.append(f"🤖 {data.model}")
254
- if data.claude_version:
255
- claude_ver_str = (
256
- data.claude_version if data.claude_version.startswith("v") else f"v{data.claude_version}"
257
- )
258
- parts.append(f"🔅 {claude_ver_str}")
259
271
  if data.context_window:
260
272
  parts.append(f"💰 {data.context_window}")
261
273
  if data.output_style:
262
274
  parts.append(f"💬 {data.output_style}")
275
+ if self._display_config.directory and data.directory:
276
+ parts.append(f"📁 {data.directory}")
263
277
  if data.git_status:
264
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}")
265
281
  parts.append(f"🔀 {branch}")
266
282
  result = self._format_config.separator.join(parts)
267
283
 
@@ -0,0 +1,48 @@
1
+ """TAG System v2.0 for MoAI-ADK.
2
+
3
+ Provides TAG annotation, validation, parsing, and linkage management
4
+ for SPEC-First TDD workflow.
5
+ """
6
+
7
+ from .linkage import (
8
+ LinkageManager,
9
+ spec_document_exists,
10
+ )
11
+ from .parser import (
12
+ extract_tags_from_directory,
13
+ extract_tags_from_file,
14
+ extract_tags_from_files,
15
+ extract_tags_from_source,
16
+ )
17
+ from .validator import (
18
+ DEFAULT_VERB,
19
+ TAG,
20
+ VALID_VERBS,
21
+ get_default_verb,
22
+ parse_tag_string,
23
+ validate_spec_id_format,
24
+ validate_tag,
25
+ validate_verb,
26
+ )
27
+
28
+ __all__ = [
29
+ # Validator
30
+ "TAG",
31
+ "VALID_VERBS",
32
+ "DEFAULT_VERB",
33
+ "validate_spec_id_format",
34
+ "validate_verb",
35
+ "get_default_verb",
36
+ "validate_tag",
37
+ "parse_tag_string",
38
+ # Parser
39
+ "extract_tags_from_source",
40
+ "extract_tags_from_file",
41
+ "extract_tags_from_files",
42
+ "extract_tags_from_directory",
43
+ # Linkage
44
+ "LinkageManager",
45
+ "spec_document_exists",
46
+ ]
47
+
48
+ __version__ = "2.0.0"