moai-adk 0.25.4__py3-none-any.whl → 0.32.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (378) hide show
  1. moai_adk/__init__.py +2 -5
  2. moai_adk/__main__.py +114 -82
  3. moai_adk/cli/__init__.py +6 -1
  4. moai_adk/cli/commands/__init__.py +1 -3
  5. moai_adk/cli/commands/analyze.py +5 -16
  6. moai_adk/cli/commands/doctor.py +6 -18
  7. moai_adk/cli/commands/init.py +56 -125
  8. moai_adk/cli/commands/language.py +14 -35
  9. moai_adk/cli/commands/status.py +9 -15
  10. moai_adk/cli/commands/update.py +1555 -190
  11. moai_adk/cli/prompts/init_prompts.py +112 -56
  12. moai_adk/cli/spec_status.py +263 -0
  13. moai_adk/cli/ui/__init__.py +44 -0
  14. moai_adk/cli/ui/progress.py +422 -0
  15. moai_adk/cli/ui/prompts.py +389 -0
  16. moai_adk/cli/ui/theme.py +129 -0
  17. moai_adk/cli/worktree/__init__.py +27 -0
  18. moai_adk/cli/worktree/__main__.py +31 -0
  19. moai_adk/cli/worktree/cli.py +672 -0
  20. moai_adk/cli/worktree/exceptions.py +89 -0
  21. moai_adk/cli/worktree/manager.py +490 -0
  22. moai_adk/cli/worktree/models.py +65 -0
  23. moai_adk/cli/worktree/registry.py +128 -0
  24. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  25. moai_adk/core/analysis/session_analyzer.py +17 -56
  26. moai_adk/core/claude_integration.py +26 -54
  27. moai_adk/core/command_helpers.py +10 -10
  28. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  29. moai_adk/core/config/auto_spec_config.py +5 -11
  30. moai_adk/core/config/migration.py +19 -9
  31. moai_adk/core/config/unified.py +436 -0
  32. moai_adk/core/context_manager.py +6 -12
  33. moai_adk/core/enterprise_features.py +1404 -0
  34. moai_adk/core/error_recovery_system.py +725 -112
  35. moai_adk/core/event_driven_hook_system.py +1371 -0
  36. moai_adk/core/git/__init__.py +8 -0
  37. moai_adk/core/git/branch_manager.py +3 -11
  38. moai_adk/core/git/checkpoint.py +1 -3
  39. moai_adk/core/git/conflict_detector.py +413 -0
  40. moai_adk/core/git/manager.py +91 -1
  41. moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
  42. moai_adk/core/input_validation_middleware.py +1006 -0
  43. moai_adk/core/integration/engine.py +6 -18
  44. moai_adk/core/integration/integration_tester.py +10 -9
  45. moai_adk/core/integration/utils.py +1 -1
  46. moai_adk/core/issue_creator.py +10 -28
  47. moai_adk/core/jit_context_loader.py +956 -0
  48. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  49. moai_adk/core/language_config_resolver.py +485 -0
  50. moai_adk/core/language_validator.py +28 -41
  51. moai_adk/core/mcp/setup.py +15 -12
  52. moai_adk/core/merge/__init__.py +9 -0
  53. moai_adk/core/merge/analyzer.py +481 -0
  54. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  55. moai_adk/core/migration/backup_manager.py +78 -9
  56. moai_adk/core/migration/custom_element_scanner.py +358 -0
  57. moai_adk/core/migration/file_migrator.py +8 -17
  58. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  59. moai_adk/core/migration/selective_restorer.py +470 -0
  60. moai_adk/core/migration/template_utils.py +74 -0
  61. moai_adk/core/migration/user_selection_ui.py +338 -0
  62. moai_adk/core/migration/version_detector.py +6 -10
  63. moai_adk/core/migration/version_migrator.py +3 -3
  64. moai_adk/core/performance/cache_system.py +8 -10
  65. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  66. moai_adk/core/project/checker.py +2 -4
  67. moai_adk/core/project/detector.py +1 -3
  68. moai_adk/core/project/initializer.py +135 -23
  69. moai_adk/core/project/phase_executor.py +54 -81
  70. moai_adk/core/project/validator.py +6 -12
  71. moai_adk/core/quality/trust_checker.py +9 -27
  72. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  73. moai_adk/core/robust_json_parser.py +611 -0
  74. moai_adk/core/rollback_manager.py +73 -148
  75. moai_adk/core/session_manager.py +10 -26
  76. moai_adk/core/skill_loading_system.py +579 -0
  77. moai_adk/core/spec/confidence_scoring.py +31 -100
  78. moai_adk/core/spec/ears_template_engine.py +351 -286
  79. moai_adk/core/spec/quality_validator.py +35 -69
  80. moai_adk/core/spec_status_manager.py +64 -74
  81. moai_adk/core/template/backup.py +45 -20
  82. moai_adk/core/template/config.py +112 -39
  83. moai_adk/core/template/merger.py +11 -19
  84. moai_adk/core/template/processor.py +253 -149
  85. moai_adk/core/template_engine.py +73 -40
  86. moai_adk/core/template_variable_synchronizer.py +417 -0
  87. moai_adk/core/unified_permission_manager.py +745 -0
  88. moai_adk/core/user_behavior_analytics.py +851 -0
  89. moai_adk/core/version_sync.py +429 -0
  90. moai_adk/foundation/__init__.py +56 -0
  91. moai_adk/foundation/backend.py +1027 -0
  92. moai_adk/foundation/database.py +1115 -0
  93. moai_adk/foundation/devops.py +1585 -0
  94. moai_adk/foundation/ears.py +431 -0
  95. moai_adk/foundation/frontend.py +870 -0
  96. moai_adk/foundation/git/commit_templates.py +4 -12
  97. moai_adk/foundation/git.py +376 -0
  98. moai_adk/foundation/langs.py +484 -0
  99. moai_adk/foundation/ml_ops.py +1162 -0
  100. moai_adk/foundation/testing.py +1524 -0
  101. moai_adk/foundation/trust/trust_principles.py +23 -72
  102. moai_adk/foundation/trust/validation_checklist.py +57 -162
  103. moai_adk/project/__init__.py +0 -0
  104. moai_adk/project/configuration.py +1084 -0
  105. moai_adk/project/documentation.py +566 -0
  106. moai_adk/project/schema.py +447 -0
  107. moai_adk/statusline/alfred_detector.py +1 -3
  108. moai_adk/statusline/config.py +13 -4
  109. moai_adk/statusline/enhanced_output_style_detector.py +23 -15
  110. moai_adk/statusline/main.py +51 -15
  111. moai_adk/statusline/renderer.py +104 -48
  112. moai_adk/statusline/update_checker.py +3 -9
  113. moai_adk/statusline/version_reader.py +140 -46
  114. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
  115. moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
  116. moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
  117. moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
  118. moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
  119. moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
  120. moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
  121. moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
  122. moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
  123. moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
  124. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
  125. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
  126. moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
  127. moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
  128. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  129. moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
  130. moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
  131. moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
  132. moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
  133. moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
  134. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
  135. moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
  136. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
  137. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
  138. moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
  139. moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
  140. moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
  141. moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
  142. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  143. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  144. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  145. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  146. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  147. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  148. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  149. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  150. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  151. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  152. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  153. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  154. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  155. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  156. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  157. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  158. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  159. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  160. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
  161. moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
  162. moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
  163. moai_adk/templates/.claude/settings.json +172 -0
  164. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
  165. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  166. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  167. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  168. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  169. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  170. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +319 -0
  171. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -0
  172. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  173. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  174. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  175. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  176. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +496 -0
  177. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
  178. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  179. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  180. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  181. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
  182. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  183. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  184. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  185. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
  186. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  187. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  188. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  189. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  190. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  191. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  192. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
  193. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  196. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  199. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  201. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  204. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  205. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  206. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  207. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
  208. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
  209. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  210. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
  211. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  212. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  213. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  214. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  215. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  216. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  217. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  218. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  219. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
  220. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  221. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  222. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  223. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  224. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  225. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  226. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  227. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  228. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  229. moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
  230. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
  231. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
  232. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
  233. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
  234. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
  235. moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
  236. moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
  237. moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
  238. moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
  239. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
  240. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  241. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  242. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  243. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  244. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
  245. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  246. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  247. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  248. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  249. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  250. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  251. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  252. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  253. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  254. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  255. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
  256. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  257. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  258. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  259. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  260. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  261. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  262. moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
  263. moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
  264. moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
  265. moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
  266. moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
  267. moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
  268. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
  269. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  270. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  271. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  272. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
  273. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  274. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  275. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  276. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  277. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  278. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
  279. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  280. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  281. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  282. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  283. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  284. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  285. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  286. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  287. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  288. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  289. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  290. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
  291. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  292. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  293. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  294. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
  295. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  296. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  297. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  298. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  299. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  300. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  301. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
  302. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  303. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  304. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  305. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  306. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
  307. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  308. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  309. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  310. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  311. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  312. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  313. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  314. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  315. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  316. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  317. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  318. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  319. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  320. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  321. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  322. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  323. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
  324. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  325. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  326. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  327. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  328. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  329. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  330. moai_adk/templates/.git-hooks/pre-commit +103 -41
  331. moai_adk/templates/.git-hooks/pre-push +116 -21
  332. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  333. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  334. moai_adk/templates/.gitignore +184 -44
  335. moai_adk/templates/.mcp.json +7 -9
  336. moai_adk/templates/.moai/cache/personalization.json +10 -0
  337. moai_adk/templates/.moai/config/config.yaml +344 -0
  338. moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
  339. moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
  340. moai_adk/templates/.moai/config/presets/team.yaml +33 -0
  341. moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
  342. moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
  343. moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
  344. moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
  345. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
  346. moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
  347. moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
  348. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  349. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  350. moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
  351. moai_adk/templates/.moai/config/sections/system.yaml +14 -0
  352. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  353. moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
  354. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  355. moai_adk/templates/CLAUDE.md +382 -501
  356. moai_adk/utils/__init__.py +24 -1
  357. moai_adk/utils/banner.py +7 -10
  358. moai_adk/utils/common.py +16 -30
  359. moai_adk/utils/link_validator.py +4 -12
  360. moai_adk/utils/safe_file_reader.py +2 -6
  361. moai_adk/utils/timeout.py +160 -0
  362. moai_adk/utils/toon_utils.py +256 -0
  363. moai_adk/version.py +22 -0
  364. moai_adk-0.32.8.dist-info/METADATA +2478 -0
  365. moai_adk-0.32.8.dist-info/RECORD +396 -0
  366. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
  367. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
  368. moai_adk/cli/commands/backup.py +0 -82
  369. moai_adk/cli/commands/improve_user_experience.py +0 -348
  370. moai_adk/cli/commands/migrate.py +0 -158
  371. moai_adk/cli/commands/validate_links.py +0 -118
  372. moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
  373. moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
  374. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
  375. moai_adk/utils/user_experience.py +0 -531
  376. moai_adk-0.25.4.dist-info/METADATA +0 -2279
  377. moai_adk-0.25.4.dist-info/RECORD +0 -112
  378. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
@@ -19,6 +19,14 @@ class SpecGenerator:
19
19
  """Generate a basic SPEC document."""
20
20
  return f"SPEC document for {file_path}\n\nContent analysis:\n{content[:200]}..."
21
21
 
22
+ def analyze(self, file_path: str) -> Dict[str, Any]:
23
+ """Analyze code file for SPEC generation."""
24
+ return {
25
+ "file_path": file_path,
26
+ "structure_info": {},
27
+ "domain_keywords": [],
28
+ }
29
+
22
30
 
23
31
  # BaseHook: Simplified base hook class for auto-spec completion
24
32
  class BaseHook:
@@ -74,9 +82,7 @@ class PostToolAutoSpecCompletion(BaseHook):
74
82
  "excluded_patterns": ["test_", "spec_", "__tests__"],
75
83
  }
76
84
 
77
- def should_trigger_spec_completion(
78
- self, tool_name: str, tool_args: Dict[str, Any]
79
- ) -> bool:
85
+ def should_trigger_spec_completion(self, tool_name: str, tool_args: Dict[str, Any]) -> bool:
80
86
  """
81
87
  Determine if spec completion should be triggered.
82
88
 
@@ -110,9 +116,7 @@ class PostToolAutoSpecCompletion(BaseHook):
110
116
  if self._is_supported_file(file_path):
111
117
  supported_files.append(file_path)
112
118
  else:
113
- logger.debug(
114
- f"File {file_path} is not supported for auto-spec completion"
115
- )
119
+ logger.debug(f"File {file_path} is not supported for auto-spec completion")
116
120
 
117
121
  if not supported_files:
118
122
  logger.debug("No supported files found")
@@ -200,9 +204,7 @@ class PostToolAutoSpecCompletion(BaseHook):
200
204
 
201
205
  return False
202
206
 
203
- def detect_code_changes(
204
- self, tool_name: str, tool_args: Dict[str, Any], result: Any
205
- ) -> List[str]:
207
+ def detect_code_changes(self, tool_name: str, tool_args: Dict[str, Any], result: Any) -> List[str]:
206
208
  """
207
209
  Detect code changes from tool execution.
208
210
 
@@ -266,15 +268,11 @@ class PostToolAutoSpecCompletion(BaseHook):
266
268
  # Structure clarity: 30%
267
269
  # Domain accuracy: 40%
268
270
  # Documentation level: 30%
269
- confidence = (
270
- structure_score * 0.3 + domain_accuracy * 0.4 + documentation_level * 0.3
271
- )
271
+ confidence = structure_score * 0.3 + domain_accuracy * 0.4 + documentation_level * 0.3
272
272
 
273
273
  return min(max(confidence, 0.0), 1.0)
274
274
 
275
- def generate_complete_spec(
276
- self, analysis: Dict[str, Any], file_path: str
277
- ) -> Dict[str, str]:
275
+ def generate_complete_spec(self, analysis: Dict[str, Any], file_path: str) -> Dict[str, str]:
278
276
  """
279
277
  Generate complete SPEC documents in EARS format.
280
278
 
@@ -310,13 +308,11 @@ class PostToolAutoSpecCompletion(BaseHook):
310
308
  meaningful_name = "".join(part.upper() for part in name_parts if part)
311
309
 
312
310
  # Add hash to ensure uniqueness
313
- file_hash = hashlib.md5(file_path.encode()).hexdigest()[:4]
311
+ file_hash = hashlib.md5(file_path.encode(), usedforsecurity=False).hexdigest()[:4]
314
312
 
315
313
  return f"{meaningful_name}-{file_hash}"
316
314
 
317
- def _generate_spec_content(
318
- self, analysis: Dict[str, Any], spec_id: str, file_name: str
319
- ) -> str:
315
+ def _generate_spec_content(self, analysis: Dict[str, Any], spec_id: str, file_name: str) -> str:
320
316
  """Generate main spec.md content."""
321
317
  template = f"""---
322
318
  "id": "SPEC-{spec_id}",
@@ -324,7 +320,7 @@ class PostToolAutoSpecCompletion(BaseHook):
324
320
  "title_en": "Auto-generated SPEC for {file_name}",
325
321
  "version": "1.0.0",
326
322
  "status": "pending",
327
- "created": "{time.strftime('%Y-%m-%d')}",
323
+ "created": "{time.strftime("%Y-%m-%d")}",
328
324
  "author": "@alfred-auto",
329
325
  "reviewer": "",
330
326
  "category": "FEATURE",
@@ -339,12 +335,12 @@ class PostToolAutoSpecCompletion(BaseHook):
339
335
 
340
336
  ### Overview
341
337
 
342
- {analysis.get('description', 'This spec was auto-generated based on code analysis.')}
338
+ {analysis.get("description", "This spec was auto-generated based on code analysis.")}
343
339
 
344
340
  ### Environment
345
341
 
346
342
  - **Project**: MoAI-ADK Auto-generated SPEC
347
- - **Language**: {analysis.get('language', 'Python')}
343
+ - **Language**: {analysis.get("language", "Python")}
348
344
  - **File**: {file_name}
349
345
  - **Generation Method**: Automatic analysis-based
350
346
  - **Status**: Review required
@@ -368,15 +364,15 @@ class PostToolAutoSpecCompletion(BaseHook):
368
364
 
369
365
  #### State-driven Requirements
370
366
 
371
- {analysis.get('state_requirements', '- **REQ-006**: System must transition from initial state to target state')}
367
+ {analysis.get("state_requirements", "- **REQ-006**: System must transition from initial state to target state")}
372
368
 
373
369
  #### Event-driven Requirements
374
370
 
375
- {analysis.get('event_requirements', '- **REQ-007**: System must respond when user input occurs')}
371
+ {analysis.get("event_requirements", "- **REQ-007**: System must respond when user input occurs")}
376
372
 
377
373
  ### Specifications
378
374
 
379
- {analysis.get('specifications', '- **SPEC-001**: System must implement requirements')}
375
+ {analysis.get("specifications", "- **SPEC-001**: System must implement requirements")}
380
376
 
381
377
  ### Traceability
382
378
 
@@ -398,9 +394,7 @@ class PostToolAutoSpecCompletion(BaseHook):
398
394
  """
399
395
  return template
400
396
 
401
- def _generate_plan_content(
402
- self, analysis: Dict[str, Any], spec_id: str, file_name: str
403
- ) -> str:
397
+ def _generate_plan_content(self, analysis: Dict[str, Any], spec_id: str, file_name: str) -> str:
404
398
  """Generate plan.md content."""
405
399
  return f"""---
406
400
  "id": "PLAN-{spec_id}",
@@ -408,7 +402,7 @@ class PostToolAutoSpecCompletion(BaseHook):
408
402
  "title": "Auto-generated Implementation Plan for {file_name}",
409
403
  "version": "1.0.0",
410
404
  "status": "pending",
411
- "created": "{time.strftime('%Y-%m-%d')}",
405
+ "created": "{time.strftime("%Y-%m-%d")}",
412
406
  "author": "@alfred-auto"
413
407
  }}
414
408
  ---
@@ -450,25 +444,25 @@ class PostToolAutoSpecCompletion(BaseHook):
450
444
  #### Architecture Design
451
445
 
452
446
  ```
453
- {analysis.get('architecture', 'User Input → Validation → Business Logic → Data Processing → Output')}
447
+ {analysis.get("architecture", "User Input → Validation → Business Logic → Data Processing → Output")}
454
448
 
455
449
  [Core Components] → [External Services] → [Data Layer]
456
450
  ```
457
451
 
458
452
  #### Core Components
459
453
 
460
- 1. **{analysis.get('main_component', 'Main Class')}**: Handle primary business logic
461
- 2. **{analysis.get('service_component', 'Service Layer')}**: Integrate external services
462
- 3. **{analysis.get('data_component', 'Data Layer')}**: Process and store data
463
- 4. **{analysis.get('component_4', 'Validation Layer')}**: Validate input and check validity
454
+ 1. **{analysis.get("main_component", "Main Class")}**: Handle primary business logic
455
+ 2. **{analysis.get("service_component", "Service Layer")}**: Integrate external services
456
+ 3. **{analysis.get("data_component", "Data Layer")}**: Process and store data
457
+ 4. **{analysis.get("component_4", "Validation Layer")}**: Validate input and check validity
464
458
 
465
459
  #### Dependency Management
466
460
 
467
461
  **Utilize Existing Modules:**
468
- - {analysis.get('existing_modules', 'Utilize standard libraries')}
462
+ - {analysis.get("existing_modules", "Utilize standard libraries")}
469
463
 
470
464
  **Add New Modules:**
471
- - {analysis.get('new_modules', 'Add as needed')}
465
+ - {analysis.get("new_modules", "Add as needed")}
472
466
 
473
467
  ### Success Criteria
474
468
 
@@ -481,7 +475,7 @@ class PostToolAutoSpecCompletion(BaseHook):
481
475
 
482
476
  #### Performance Criteria
483
477
 
484
- - ✅ Response time {analysis.get('performance_target', 'within 1 second')}
478
+ - ✅ Response time {analysis.get("performance_target", "within 1 second")}
485
479
  - ✅ Memory usage optimized
486
480
  - ✅ Parallel processing supported
487
481
  - ✅ Scalability verified
@@ -501,9 +495,7 @@ class PostToolAutoSpecCompletion(BaseHook):
501
495
  4. **Release Preparation**: Testing and validation (14-16 days)
502
496
  """
503
497
 
504
- def _generate_acceptance_content(
505
- self, analysis: Dict[str, Any], spec_id: str, file_name: str
506
- ) -> str:
498
+ def _generate_acceptance_content(self, analysis: Dict[str, Any], spec_id: str, file_name: str) -> str:
507
499
  """Generate acceptance.md content."""
508
500
  return f"""---
509
501
  "id": "ACCEPT-{spec_id}",
@@ -511,7 +503,7 @@ class PostToolAutoSpecCompletion(BaseHook):
511
503
  "title": "Auto-generated Acceptance Criteria for {file_name}",
512
504
  "version": "1.0.0",
513
505
  "status": "pending",
514
- "created": "{time.strftime('%Y-%m-%d')}",
506
+ "created": "{time.strftime("%Y-%m-%d")}",
515
507
  "author": "@alfred-auto"
516
508
  }}
517
509
  ---
@@ -523,21 +515,21 @@ class PostToolAutoSpecCompletion(BaseHook):
523
515
  #### Basic Functionality
524
516
 
525
517
  **Must-have:**
526
- - [ ] {analysis.get('must_have_1', 'System must operate normally')}
527
- - [ ] {analysis.get('must_have_2', 'User interface must display correctly')}
528
- - [ ] {analysis.get('must_have_3', 'Data processing logic must function properly')}
518
+ - [ ] {analysis.get("must_have_1", "System must operate normally")}
519
+ - [ ] {analysis.get("must_have_2", "User interface must display correctly")}
520
+ - [ ] {analysis.get("must_have_3", "Data processing logic must function properly")}
529
521
 
530
522
  **Should-have:**
531
- - [ ] {analysis.get('should_have_1', 'User experience must be smooth')}
532
- - [ ] {analysis.get('should_have_2', 'Performance targets must be met')}
523
+ - [ ] {analysis.get("should_have_1", "User experience must be smooth")}
524
+ - [ ] {analysis.get("should_have_2", "Performance targets must be met")}
533
525
 
534
526
  #### Performance Testing
535
527
 
536
528
  **Performance Requirements:**
537
- - [ ] Response time: {analysis.get('response_time', 'within 1 second')}
538
- - [ ] Concurrent users: support {analysis.get('concurrent_users', '100 users')} or more
539
- - [ ] Memory usage: {analysis.get('memory_usage', '100MB or less')}
540
- - [ ] CPU utilization: {analysis.get('cpu_usage', '50% or less')}
529
+ - [ ] Response time: {analysis.get("response_time", "within 1 second")}
530
+ - [ ] Concurrent users: support {analysis.get("concurrent_users", "100 users")} or more
531
+ - [ ] Memory usage: {analysis.get("memory_usage", "100MB or less")}
532
+ - [ ] CPU utilization: {analysis.get("cpu_usage", "50% or less")}
541
533
 
542
534
  **Load Testing:**
543
535
  - [ ] Functional load testing passed
@@ -547,9 +539,9 @@ class PostToolAutoSpecCompletion(BaseHook):
547
539
  #### Security Testing
548
540
 
549
541
  **Security Requirements:**
550
- - [ ] {analysis.get('security_req_1', 'Authentication and authorization verification passed')}
551
- - [ ] {analysis.get('security_req_2', 'Input validation passed')}
552
- - [ ] {analysis.get('security_req_3', 'SQL injection protection passed')}
542
+ - [ ] {analysis.get("security_req_1", "Authentication and authorization verification passed")}
543
+ - [ ] {analysis.get("security_req_2", "Input validation passed")}
544
+ - [ ] {analysis.get("security_req_3", "SQL injection protection passed")}
553
545
 
554
546
  **Vulnerability Testing:**
555
547
  - [ ] OWASP Top 10 inspection passed
@@ -572,9 +564,9 @@ class PostToolAutoSpecCompletion(BaseHook):
572
564
  #### User Acceptance Testing
573
565
 
574
566
  **User Scenarios:**
575
- - [ ] {analysis.get('user_scenario_1', 'General user scenario testing passed')}
576
- - [ ] {analysis.get('user_scenario_2', 'Administrator scenario testing passed')}
577
- - [ ] {analysis.get('user_scenario_3', 'Error handling scenario testing passed')}
567
+ - [ ] {analysis.get("user_scenario_1", "General user scenario testing passed")}
568
+ - [ ] {analysis.get("user_scenario_2", "Administrator scenario testing passed")}
569
+ - [ ] {analysis.get("user_scenario_3", "Error handling scenario testing passed")}
578
570
 
579
571
  **User Feedback:**
580
572
  - [ ] User satisfaction 80% or higher
@@ -683,14 +675,10 @@ class PostToolAutoSpecCompletion(BaseHook):
683
675
  suggestions.append("Improvement needed to fully comply with EARS format.")
684
676
 
685
677
  if completeness < 0.8:
686
- suggestions.append(
687
- "Requirements and specifications need to be more detailed."
688
- )
678
+ suggestions.append("Requirements and specifications need to be more detailed.")
689
679
 
690
680
  if content_quality < 0.7:
691
- suggestions.append(
692
- "Domain-specific terminology and technical content need to be added."
693
- )
681
+ suggestions.append("Domain-specific terminology and technical content need to be added.")
694
682
 
695
683
  return {
696
684
  "quality_score": min(max(quality_score, 0.0), 1.0),
@@ -757,9 +745,7 @@ class PostToolAutoSpecCompletion(BaseHook):
757
745
  "component",
758
746
  "architecture",
759
747
  ]
760
- technical_score = sum(
761
- 1 for term in technical_indicators if term in spec_md
762
- ) / len(technical_indicators)
748
+ technical_score = sum(1 for term in technical_indicators if term in spec_md) / len(technical_indicators)
763
749
 
764
750
  # Check for specificity
765
751
  has_requirements = re.search(r"REQ-\d+", spec_md)
@@ -773,9 +759,7 @@ class PostToolAutoSpecCompletion(BaseHook):
773
759
 
774
760
  return (technical_score + specificity_score) / 2
775
761
 
776
- def create_spec_files(
777
- self, spec_id: str, content: Dict[str, str], base_dir: str = ".moai/specs"
778
- ) -> bool:
762
+ def create_spec_files(self, spec_id: str, content: Dict[str, str], base_dir: str = ".moai/specs") -> bool:
779
763
  """
780
764
  Create SPEC files in the correct directory structure.
781
765
 
@@ -812,9 +796,7 @@ class PostToolAutoSpecCompletion(BaseHook):
812
796
  logger.error(f"Failed to create spec files: {e}")
813
797
  return False
814
798
 
815
- def execute(
816
- self, tool_name: str, tool_args: Dict[str, Any], result: Any = None
817
- ) -> Dict[str, Any]:
799
+ def execute(self, tool_name: str, tool_args: Dict[str, Any], result: Any = None) -> Dict[str, Any]:
818
800
  """
819
801
  Execute the auto-spec completion hook.
820
802
 
@@ -860,9 +842,7 @@ class PostToolAutoSpecCompletion(BaseHook):
860
842
  # Skip if confidence is too low
861
843
  min_confidence = self.auto_config.get("min_confidence", 0.7)
862
844
  if confidence < min_confidence:
863
- logger.info(
864
- f"Confidence {confidence} below threshold {min_confidence}"
865
- )
845
+ logger.info(f"Confidence {confidence} below threshold {min_confidence}")
866
846
  continue
867
847
 
868
848
  # Generate complete spec
@@ -904,13 +884,9 @@ class PostToolAutoSpecCompletion(BaseHook):
904
884
 
905
885
  # Add notification message
906
886
  if successful_creations:
907
- execution_result["message"] = (
908
- f"Auto-generated {len(successful_creations)} SPEC(s)"
909
- )
887
+ execution_result["message"] = f"Auto-generated {len(successful_creations)} SPEC(s)"
910
888
  elif failed_creations:
911
- execution_result["message"] = (
912
- "Auto-spec completion attempted but no specs created"
913
- )
889
+ execution_result["message"] = "Auto-spec completion attempted but no specs created"
914
890
  else:
915
891
  execution_result["message"] = "No files required auto-spec completion"
916
892