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
@@ -0,0 +1,505 @@
1
+ ---
2
+ name: moai-workflow-testing/optimization
3
+ description: Performance optimization, parallel execution, and resource management for Playwright testing
4
+ ---
5
+
6
+ # Playwright Testing Optimization (v5.0.0)
7
+
8
+ ## Test Execution Optimization
9
+
10
+ ### 1. Parallel Execution Strategy
11
+
12
+ ```typescript
13
+ import { defineConfig } from '@playwright/test';
14
+
15
+ export default defineConfig({
16
+ // Global test timeout
17
+ timeout: 30000,
18
+
19
+ // Parallel workers configuration
20
+ workers: process.env.CI ? 1 : 4,
21
+
22
+ // Retry failed tests
23
+ retries: process.env.CI ? 2 : 0,
24
+
25
+ // Reporter configuration
26
+ reporter: [
27
+ ['html', { outputFolder: 'playwright-report' }],
28
+ ['json', { outputFile: 'test-results.json' }],
29
+ ['junit', { outputFile: 'junit-results.xml' }]
30
+ ],
31
+
32
+ projects: [
33
+ {
34
+ name: 'chromium',
35
+ use: { ...devices['Desktop Chrome'] },
36
+ // Shard tests across multiple machines
37
+ fullyParallel: true
38
+ },
39
+ {
40
+ name: 'firefox',
41
+ use: { ...devices['Desktop Firefox'] },
42
+ fullyParallel: true
43
+ }
44
+ ]
45
+ });
46
+ ```
47
+
48
+ ### 2. Test Sharding Across Machines
49
+
50
+ ```typescript
51
+ // Run on machine 1 (test shards 1-3)
52
+ // npx playwright test --shard=1/3
53
+
54
+ // Run on machine 2 (test shards 4-6)
55
+ // npx playwright test --shard=2/3
56
+
57
+ // Run on machine 3 (test shards 7-10)
58
+ // npx playwright test --shard=3/3
59
+
60
+ // Merge results locally
61
+ // npx playwright merge-reports ./blob-report
62
+
63
+ export default defineConfig({
64
+ // Use blob reporting for merging across shards
65
+ reporter: [['blob', { outputFile: 'blob-report.zip' }]],
66
+
67
+ webServer: {
68
+ command: 'npm run start',
69
+ port: 3000,
70
+ reuseExistingServer: !process.env.CI
71
+ }
72
+ });
73
+ ```
74
+
75
+ ### 3. Resource Pool Management
76
+
77
+ ```typescript
78
+ class BrowserPoolManager {
79
+ private pool: Browser[] = [];
80
+ private activeConnections = 0;
81
+ private maxConnections = 5;
82
+ private queue: (() => Promise<Browser>)[] = [];
83
+
84
+ async getBrowser(): Promise<Browser> {
85
+ if (this.activeConnections >= this.maxConnections) {
86
+ // Wait for browser to become available
87
+ return new Promise((resolve) => {
88
+ this.queue.push(() => {
89
+ this.activeConnections++;
90
+ return this.getAvailableBrowser().then(browser => {
91
+ resolve(browser);
92
+ return browser;
93
+ });
94
+ });
95
+ });
96
+ }
97
+
98
+ this.activeConnections++;
99
+ return this.getAvailableBrowser();
100
+ }
101
+
102
+ private async getAvailableBrowser(): Promise<Browser> {
103
+ if (this.pool.length > 0) {
104
+ return this.pool.pop()!;
105
+ }
106
+
107
+ const playwright = require('playwright');
108
+ return playwright.chromium.launch({
109
+ args: ['--disable-extensions']
110
+ });
111
+ }
112
+
113
+ async releaseBrowser(browser: Browser) {
114
+ this.activeConnections--;
115
+
116
+ if (this.queue.length > 0) {
117
+ const fn = this.queue.shift()!;
118
+ fn();
119
+ } else {
120
+ this.pool.push(browser);
121
+ }
122
+ }
123
+
124
+ async cleanup() {
125
+ for (const browser of this.pool) {
126
+ await browser.close();
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ ## Memory and Performance Optimization
133
+
134
+ ### 1. Memory-Efficient Page Management
135
+
136
+ ```typescript
137
+ class PagePoolManager {
138
+ private pagePool: Map<string, Page> = new Map();
139
+ private maxPages = 5;
140
+
141
+ async getOrCreatePage(context: BrowserContext): Promise<Page> {
142
+ // Reuse existing pages
143
+ for (const [, page] of this.pagePool) {
144
+ if (!page.isClosed()) {
145
+ return page;
146
+ }
147
+ }
148
+
149
+ if (this.pagePool.size >= this.maxPages) {
150
+ // Close oldest page
151
+ const oldest = Array.from(this.pagePool.entries())[0];
152
+ await oldest[1].close();
153
+ this.pagePool.delete(oldest[0]);
154
+ }
155
+
156
+ const page = await context.newPage();
157
+
158
+ // Set memory limits
159
+ await page.addInitScript(() => {
160
+ // Clear unnecessary data
161
+ (window as any).localStorage.clear();
162
+ (window as any).sessionStorage.clear();
163
+ });
164
+
165
+ return page;
166
+ }
167
+
168
+ async cleanup() {
169
+ for (const [, page] of this.pagePool) {
170
+ await page.close();
171
+ }
172
+ this.pagePool.clear();
173
+ }
174
+ }
175
+ ```
176
+
177
+ ### 2. Screenshot and Video Optimization
178
+
179
+ ```typescript
180
+ class MediaOptimizer {
181
+ async optimizeScreenshots(testResults: TestResult[]) {
182
+ for (const result of testResults) {
183
+ if (result.screenshotPath) {
184
+ // Compress screenshots to 50% quality
185
+ await sharp(result.screenshotPath)
186
+ .png({ quality: 50, progressive: true })
187
+ .toFile(result.screenshotPath);
188
+ }
189
+ }
190
+ }
191
+
192
+ async optimizeVideos(videoPath: string) {
193
+ // Convert to webm format for smaller file size
194
+ return new Promise((resolve, reject) => {
195
+ ffmpeg(videoPath)
196
+ .output(`${videoPath}.webm`)
197
+ .videoCodec('libvpx-vp9')
198
+ .audioBitrate('64k')
199
+ .on('end', () => resolve(`${videoPath}.webm`))
200
+ .on('error', reject)
201
+ .run();
202
+ });
203
+ }
204
+
205
+ configureRecording() {
206
+ return {
207
+ video: 'retain-on-failure',
208
+ videoSize: { width: 1280, height: 720 },
209
+ videoSnapshotInterval: 500, // 2fps instead of default
210
+ };
211
+ }
212
+ }
213
+ ```
214
+
215
+ ## Test Optimization Patterns
216
+
217
+ ### 1. Smart Test Grouping
218
+
219
+ ```typescript
220
+ // Group related tests to share setup
221
+ test.describe('User Authentication', () => {
222
+ test.beforeAll(async () => {
223
+ // Setup test data once for all tests in group
224
+ await setupTestDatabase();
225
+ await createTestUsers();
226
+ });
227
+
228
+ test('login with valid credentials', async ({ page }) => {
229
+ // Uses shared test data
230
+ });
231
+
232
+ test('logout clears session', async ({ page }) => {
233
+ // Uses shared test data
234
+ });
235
+
236
+ test.afterAll(async () => {
237
+ // Cleanup once for all tests
238
+ await cleanupTestDatabase();
239
+ });
240
+ });
241
+ ```
242
+
243
+ ### 2. Fixture-Based Optimization
244
+
245
+ ```typescript
246
+ import { test as base } from '@playwright/test';
247
+
248
+ // Create reusable fixtures
249
+ type TestFixtures = {
250
+ authenticatedPage: Page;
251
+ apiClient: APIClient;
252
+ database: DatabaseConnection;
253
+ };
254
+
255
+ const test = base.extend<TestFixtures>({
256
+ // Fixture with automatic cleanup
257
+ authenticatedPage: async ({ page }, use) => {
258
+ // Setup: Login user
259
+ await page.goto('/login');
260
+ await page.fill('[name="email"]', 'test@example.com');
261
+ await page.fill('[name="password"]', 'password123');
262
+ await page.click('button[type="submit"]');
263
+ await page.waitForNavigation();
264
+
265
+ // Use the page in tests
266
+ await use(page);
267
+
268
+ // Cleanup: Logout
269
+ await page.click('[aria-label="User menu"]');
270
+ await page.click('[aria-label="Logout"]');
271
+ },
272
+
273
+ apiClient: async ({}, use) => {
274
+ const client = new APIClient('http://localhost:3000');
275
+ await client.connect();
276
+
277
+ await use(client);
278
+
279
+ await client.disconnect();
280
+ },
281
+
282
+ database: async ({}, use) => {
283
+ const db = new DatabaseConnection('postgresql://...');
284
+ await db.connect();
285
+
286
+ // Clear test data before each test
287
+ await db.clearTestData();
288
+
289
+ await use(db);
290
+
291
+ await db.disconnect();
292
+ }
293
+ });
294
+
295
+ export { test };
296
+
297
+ // Usage in tests
298
+ test('user can update profile', async ({ authenticatedPage, database }) => {
299
+ // No setup needed - fixtures handle it
300
+ await authenticatedPage.goto('/profile');
301
+ await authenticatedPage.fill('[name="bio"]', 'Updated bio');
302
+ await authenticatedPage.click('button[type="submit"]');
303
+
304
+ // Verify in database
305
+ const user = await database.query('SELECT * FROM users WHERE id = 1');
306
+ expect(user.bio).toBe('Updated bio');
307
+ });
308
+ ```
309
+
310
+ ## CI/CD Optimization
311
+
312
+ ### 1. Smart Test Selection
313
+
314
+ ```typescript
315
+ // Run only tests affected by code changes
316
+ import { spawnSync } from 'child_process';
317
+
318
+ function getChangedFiles(): string[] {
319
+ const result = spawnSync('git', ['diff', '--name-only', 'main...HEAD'], {
320
+ encoding: 'utf-8'
321
+ });
322
+ return result.stdout.trim().split('\n');
323
+ }
324
+
325
+ function selectTestsForChanges(changedFiles: string[]): string[] {
326
+ const testMap = {
327
+ 'src/auth': 'tests/auth.spec.ts',
328
+ 'src/profile': 'tests/profile.spec.ts',
329
+ 'src/payments': 'tests/payments.spec.ts'
330
+ };
331
+
332
+ const testsToRun = new Set<string>();
333
+
334
+ for (const file of changedFiles) {
335
+ for (const [srcPath, testFile] of Object.entries(testMap)) {
336
+ if (file.includes(srcPath)) {
337
+ testsToRun.add(testFile);
338
+ }
339
+ }
340
+ }
341
+
342
+ return Array.from(testsToRun);
343
+ }
344
+
345
+ // Usage in CI
346
+ if (process.env.CI) {
347
+ const changedFiles = getChangedFiles();
348
+ const testsToRun = selectTestsForChanges(changedFiles);
349
+ console.log(`Running ${testsToRun.length} affected tests`);
350
+ }
351
+ ```
352
+
353
+ ### 2. Test Result Caching
354
+
355
+ ```typescript
356
+ class TestResultCache {
357
+ async getCachedResults(testHash: string): Promise<TestResult | null> {
358
+ const cacheKey = `test-results-${testHash}`;
359
+ const cached = await redis.get(cacheKey);
360
+
361
+ if (cached) {
362
+ return JSON.parse(cached);
363
+ }
364
+
365
+ return null;
366
+ }
367
+
368
+ async cacheResults(testHash: string, results: TestResult) {
369
+ const cacheKey = `test-results-${testHash}`;
370
+
371
+ // Cache for 24 hours
372
+ await redis.setex(cacheKey, 86400, JSON.stringify(results));
373
+ }
374
+
375
+ generateTestHash(testCode: string, dependencies: string[]): string {
376
+ const hash = crypto
377
+ .createHash('sha256')
378
+ .update(testCode)
379
+ .update(dependencies.join(''))
380
+ .digest('hex');
381
+
382
+ return hash;
383
+ }
384
+ }
385
+ ```
386
+
387
+ ### 3. Performance Budgets
388
+
389
+ ```typescript
390
+ interface PerformanceBudget {
391
+ maxTestDuration: number; // milliseconds
392
+ maxMemoryUsage: number; // MB
393
+ maxNetworkRequests: number;
394
+ allowedRetries: number;
395
+ }
396
+
397
+ const budgets: Record<string, PerformanceBudget> = {
398
+ 'unit-test': {
399
+ maxTestDuration: 500,
400
+ maxMemoryUsage: 50,
401
+ maxNetworkRequests: 0,
402
+ allowedRetries: 0
403
+ },
404
+ 'integration-test': {
405
+ maxTestDuration: 5000,
406
+ maxMemoryUsage: 200,
407
+ maxNetworkRequests: 5,
408
+ allowedRetries: 1
409
+ },
410
+ 'e2e-test': {
411
+ maxTestDuration: 30000,
412
+ maxMemoryUsage: 500,
413
+ maxNetworkRequests: 50,
414
+ allowedRetries: 2
415
+ }
416
+ };
417
+
418
+ async function validatePerformanceBudget(testName: string, metrics: TestMetrics) {
419
+ const budget = budgets[testName] || budgets['e2e-test'];
420
+ const violations: string[] = [];
421
+
422
+ if (metrics.duration > budget.maxTestDuration) {
423
+ violations.push(`Duration ${metrics.duration}ms exceeds ${budget.maxTestDuration}ms`);
424
+ }
425
+
426
+ if (metrics.memoryUsage > budget.maxMemoryUsage) {
427
+ violations.push(`Memory ${metrics.memoryUsage}MB exceeds ${budget.maxMemoryUsage}MB`);
428
+ }
429
+
430
+ if (violations.length > 0) {
431
+ throw new Error(`Performance budget exceeded:\n${violations.join('\n')}`);
432
+ }
433
+ }
434
+ ```
435
+
436
+ ## Monitoring and Observability
437
+
438
+ ### 1. Test Metrics Collection
439
+
440
+ ```typescript
441
+ class TestMetricsCollector {
442
+ async collectMetrics(testResult: TestResult) {
443
+ const metrics = {
444
+ testName: testResult.title,
445
+ status: testResult.status,
446
+ duration: testResult.duration,
447
+ retries: testResult.retries,
448
+ memoryUsage: process.memoryUsage().heapUsed / 1024 / 1024,
449
+ browserMetrics: {
450
+ domNodes: await testResult.page?.evaluate(() => document.querySelectorAll('*').length),
451
+ eventListeners: await testResult.page?.evaluate(() => {
452
+ let count = 0;
453
+ for (const elem of document.querySelectorAll('*')) {
454
+ count += getEventListeners(elem).length;
455
+ }
456
+ return count;
457
+ })
458
+ },
459
+ timestamp: new Date().toISOString()
460
+ };
461
+
462
+ // Send to monitoring service
463
+ await sendMetrics(metrics);
464
+ return metrics;
465
+ }
466
+ }
467
+ ```
468
+
469
+ ### 2. Test Report Generation
470
+
471
+ ```typescript
472
+ import { reportPortalClient } from '@reportportal/client-javascript';
473
+
474
+ // Configure ReportPortal integration
475
+ const client = new reportPortalClient({
476
+ endpoint: 'https://rp.example.com',
477
+ project: 'my-project',
478
+ token: process.env.RP_TOKEN
479
+ });
480
+
481
+ // Send test results
482
+ function reportTestResults(results: TestResult[]) {
483
+ for (const result of results) {
484
+ client.startTest({
485
+ name: result.title,
486
+ startTime: result.startTime
487
+ });
488
+
489
+ client.log({
490
+ message: result.error || 'Test passed',
491
+ level: result.status === 'passed' ? 'INFO' : 'ERROR',
492
+ time: new Date()
493
+ });
494
+
495
+ client.finishTest({
496
+ endTime: result.endTime,
497
+ status: result.status === 'passed' ? 'PASSED' : 'FAILED'
498
+ });
499
+ }
500
+ }
501
+ ```
502
+
503
+ ---
504
+
505
+ Version: 5.0.0 | Last Updated: 2025-11-22 | Enterprise Ready:
@@ -0,0 +1,57 @@
1
+ # Playwright Best Practices & Context7 Integration
2
+
3
+ ## Official Documentation
4
+ - Playwright Official: https://playwright.dev/
5
+ - Python Documentation: https://playwright.dev/python/
6
+ - API Reference: https://playwright.dev/python/docs/api/class-playwright
7
+
8
+ ## Context7 MCP Integration
9
+ - Latest Patterns: Access via `/microsoft/playwright` library ID
10
+ - Version-Specific: Context7 provides version-specific best practices
11
+ - Community Knowledge: Leverages collective testing wisdom
12
+ - Real-Time Updates: Always current with latest Playwright releases
13
+
14
+ ## Enterprise Testing Patterns
15
+ ### Test Organization
16
+ - Page Object Model: Maintainable test architecture
17
+ - Fixture Pattern: Reusable test setup and teardown
18
+ - Data-Driven Testing: Parameterized test execution
19
+ - Test Tagging: Categorize and filter tests
20
+
21
+ ### Cross-Browser Strategy
22
+ - Browser Matrix: Chrome, Firefox, Safari coverage
23
+ - Device Emulation: Mobile and tablet testing
24
+ - Viewport Testing: Responsive design validation
25
+ - Network Conditions: Slow 3G, offline testing
26
+
27
+ ### Performance Integration
28
+ - Web Vitals: Core performance metrics
29
+ - Network Monitoring: Request/response analysis
30
+ - Resource Timing: Asset loading optimization
31
+ - Memory Usage: Leak detection and optimization
32
+
33
+ ## AI-Enhanced Testing
34
+ ### Pattern Recognition
35
+ - UI Element Detection: Smart selector generation
36
+ - Test Flow Analysis: User journey optimization
37
+ - Failure Classification: Intelligent bug categorization
38
+ - Maintenance Prediction: Proactive test updates
39
+
40
+ ### Visual Regression
41
+ - AI Comparison: Intelligent diff analysis
42
+ - Ignore Regions: Dynamic content handling
43
+ - Threshold Tuning: Sensitivity optimization
44
+ - Baseline Management: Version control integration
45
+
46
+ ## MoAI-ADK Integration
47
+ ### Alfred Workflow
48
+ - 4-Step Process: Plan, Generate, Execute, Analyze
49
+ - Agent Coordination: Multi-agent test orchestration
50
+ - Context Sharing: Knowledge base integration
51
+ - Learning Loop: Continuous improvement
52
+
53
+ ### Quality Assurance
54
+ - TRUST 5 Principles: Test-driven quality
55
+ - Coverage Analysis: Comprehensive test metrics
56
+ - Automated Validation: Continuous integration
57
+ - Performance Monitoring: Real-time insights