@jakkrichm/create-nexus-devflow 2.0.0 → 2.0.2

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 (398) hide show
  1. package/README.md +96 -50
  2. package/package.json +1 -1
  3. package/template/.agents/skills/20-spec/SKILL.md +136 -136
  4. package/template/.agents/skills/30-plan/SKILL.md +206 -206
  5. package/template/.agents/skills/40-implement/SKILL.md +152 -152
  6. package/template/.agents/skills/50-verify/SKILL.md +174 -174
  7. package/template/.agents/skills/60-report/SKILL.md +168 -168
  8. package/template/.agents/skills/70-release/SKILL.md +141 -141
  9. package/template/.agents/skills/9arm-skills/README.md +51 -51
  10. package/template/.agents/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  11. package/template/.agents/skills/9arm-skills/management-talk/SKILL.md +79 -79
  12. package/template/.agents/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  13. package/template/.agents/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  14. package/template/.agents/skills/agent/SKILL.md +164 -164
  15. package/template/.agents/skills/api-and-interface-design/SKILL.md +294 -294
  16. package/template/.agents/skills/app-builder/SKILL.md +75 -75
  17. package/template/.agents/skills/app-builder/agent-coordination.md +71 -71
  18. package/template/.agents/skills/app-builder/feature-building.md +53 -53
  19. package/template/.agents/skills/app-builder/project-detection.md +34 -34
  20. package/template/.agents/skills/app-builder/scaffolding.md +118 -118
  21. package/template/.agents/skills/app-builder/tech-stack.md +40 -40
  22. package/template/.agents/skills/app-builder/templates/SKILL.md +39 -39
  23. package/template/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  24. package/template/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  25. package/template/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  26. package/template/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  27. package/template/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  28. package/template/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  29. package/template/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  30. package/template/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  31. package/template/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  32. package/template/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  33. package/template/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  34. package/template/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  35. package/template/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  36. package/template/.agents/skills/architecture/SKILL.md +55 -55
  37. package/template/.agents/skills/architecture/context-discovery.md +43 -43
  38. package/template/.agents/skills/architecture/examples.md +94 -94
  39. package/template/.agents/skills/architecture/pattern-selection.md +68 -68
  40. package/template/.agents/skills/architecture/patterns-reference.md +50 -50
  41. package/template/.agents/skills/architecture/trade-off-analysis.md +77 -77
  42. package/template/.agents/skills/bash-linux/SKILL.md +199 -199
  43. package/template/.agents/skills/behavioral-modes/SKILL.md +242 -242
  44. package/template/.agents/skills/brainstorm/SKILL.md +157 -157
  45. package/template/.agents/skills/browser-testing-with-devtools/SKILL.md +302 -302
  46. package/template/.agents/skills/changelog/SKILL.md +108 -108
  47. package/template/.agents/skills/ci-cd-and-automation/SKILL.md +390 -390
  48. package/template/.agents/skills/code-review-and-quality/SKILL.md +392 -392
  49. package/template/.agents/skills/code-simplification/SKILL.md +331 -331
  50. package/template/.agents/skills/commit/SKILL.md +62 -62
  51. package/template/.agents/skills/competitor-analysis/SKILL.md +66 -66
  52. package/template/.agents/skills/context-engineering/SKILL.md +290 -290
  53. package/template/.agents/skills/database-design/SKILL.md +52 -52
  54. package/template/.agents/skills/database-design/database-selection.md +43 -43
  55. package/template/.agents/skills/database-design/indexing.md +39 -39
  56. package/template/.agents/skills/database-design/migrations.md +48 -48
  57. package/template/.agents/skills/database-design/optimization.md +36 -36
  58. package/template/.agents/skills/database-design/orm-selection.md +30 -30
  59. package/template/.agents/skills/database-design/schema-design.md +56 -56
  60. package/template/.agents/skills/database-design/scripts/schema_validator.py +172 -172
  61. package/template/.agents/skills/debug/SKILL.md +116 -116
  62. package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +298 -298
  63. package/template/.agents/skills/deploy/SKILL.md +90 -90
  64. package/template/.agents/skills/deployment-procedures/SKILL.md +241 -241
  65. package/template/.agents/skills/deprecation-and-migration/SKILL.md +206 -206
  66. package/template/.agents/skills/documentation-and-adrs/SKILL.md +278 -278
  67. package/template/.agents/skills/followup/SKILL.md +78 -78
  68. package/template/.agents/skills/frontend-ui-engineering/SKILL.md +326 -326
  69. package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  70. package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +300 -300
  71. package/template/.agents/skills/goal/SKILL.md +132 -132
  72. package/template/.agents/skills/help/SKILL.md +242 -242
  73. package/template/.agents/skills/human-review-decisions/SKILL.md +74 -74
  74. package/template/.agents/skills/i18n-localization/SKILL.md +154 -154
  75. package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  76. package/template/.agents/skills/idea-refine/SKILL.md +178 -178
  77. package/template/.agents/skills/idea-refine/examples.md +238 -238
  78. package/template/.agents/skills/idea-refine/frameworks.md +99 -99
  79. package/template/.agents/skills/idea-refine/refinement-criteria.md +113 -113
  80. package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +15 -15
  81. package/template/.agents/skills/incremental-implementation/SKILL.md +248 -248
  82. package/template/.agents/skills/insight/SKILL.md +130 -130
  83. package/template/.agents/skills/insight-capture/SKILL.md +84 -84
  84. package/template/.agents/skills/intelligent-routing/SKILL.md +171 -171
  85. package/template/.agents/skills/issue-triage/SKILL.md +106 -106
  86. package/template/.agents/skills/lint-and-validate/SKILL.md +45 -45
  87. package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  88. package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  89. package/template/.agents/skills/mcp-builder/SKILL.md +176 -176
  90. package/template/.agents/skills/md2html/SKILL.md +154 -154
  91. package/template/.agents/skills/md2html/components.md +505 -505
  92. package/template/.agents/skills/md2html/template.html +1152 -1152
  93. package/template/.agents/skills/merge/SKILL.md +75 -75
  94. package/template/.agents/skills/mobile-design/SKILL.md +394 -394
  95. package/template/.agents/skills/mobile-design/decision-trees.md +516 -516
  96. package/template/.agents/skills/mobile-design/mobile-backend.md +491 -491
  97. package/template/.agents/skills/mobile-design/mobile-color-system.md +420 -420
  98. package/template/.agents/skills/mobile-design/mobile-debugging.md +122 -122
  99. package/template/.agents/skills/mobile-design/mobile-design-thinking.md +357 -357
  100. package/template/.agents/skills/mobile-design/mobile-navigation.md +458 -458
  101. package/template/.agents/skills/mobile-design/mobile-performance.md +767 -767
  102. package/template/.agents/skills/mobile-design/mobile-testing.md +356 -356
  103. package/template/.agents/skills/mobile-design/mobile-typography.md +433 -433
  104. package/template/.agents/skills/mobile-design/platform-android.md +666 -666
  105. package/template/.agents/skills/mobile-design/platform-ios.md +561 -561
  106. package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -670
  107. package/template/.agents/skills/mobile-design/touch-psychology.md +537 -537
  108. package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  109. package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  110. package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  111. package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  112. package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  113. package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  114. package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  115. package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  116. package/template/.agents/skills/nextjs-react-expert/SKILL.md +286 -286
  117. package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  118. package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  119. package/template/.agents/skills/nodejs-best-practices/SKILL.md +333 -333
  120. package/template/.agents/skills/package-json-generator/SKILL.md +60 -60
  121. package/template/.agents/skills/package-json-generator/scripts/generate.js +120 -120
  122. package/template/.agents/skills/package-json-generator/scripts/run.sh +19 -19
  123. package/template/.agents/skills/parallel-agents/SKILL.md +144 -144
  124. package/template/.agents/skills/performance-optimization/SKILL.md +299 -299
  125. package/template/.agents/skills/performance-optimization/performance-checklist.md +113 -113
  126. package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +239 -239
  127. package/template/.agents/skills/powershell-windows/SKILL.md +167 -167
  128. package/template/.agents/skills/pr/SKILL.md +92 -92
  129. package/template/.agents/skills/pr-review/SKILL.md +142 -142
  130. package/template/.agents/skills/pr-review-analysis/SKILL.md +89 -89
  131. package/template/.agents/skills/prd/SKILL.md +112 -112
  132. package/template/.agents/skills/preview/SKILL.md +116 -116
  133. package/template/.agents/skills/preview-local-check/SKILL.md +59 -59
  134. package/template/.agents/skills/python-patterns/SKILL.md +441 -441
  135. package/template/.agents/skills/release-git-operations/SKILL.md +97 -97
  136. package/template/.agents/skills/research/SKILL.md +127 -127
  137. package/template/.agents/skills/review/SKILL.md +55 -55
  138. package/template/.agents/skills/review-followup-routing/SKILL.md +98 -98
  139. package/template/.agents/skills/roadmap-strategy/SKILL.md +97 -97
  140. package/template/.agents/skills/security-and-hardening/SKILL.md +349 -349
  141. package/template/.agents/skills/security-and-hardening/security-checklist.md +134 -134
  142. package/template/.agents/skills/security-review/SKILL.md +164 -164
  143. package/template/.agents/skills/seo-fundamentals/SKILL.md +129 -129
  144. package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  145. package/template/.agents/skills/server-management/SKILL.md +161 -161
  146. package/template/.agents/skills/shipping-and-launch/SKILL.md +311 -311
  147. package/template/.agents/skills/silent-failure-audit/SKILL.md +73 -73
  148. package/template/.agents/skills/simplify/SKILL.md +74 -74
  149. package/template/.agents/skills/skill-development/SKILL.md +86 -86
  150. package/template/.agents/skills/spec-driven-development/SKILL.md +207 -207
  151. package/template/.agents/skills/spec-orchestration/SKILL.md +91 -91
  152. package/template/.agents/skills/specialist-agent-routing/SKILL.md +107 -107
  153. package/template/.agents/skills/tailwind-patterns/SKILL.md +269 -269
  154. package/template/.agents/skills/test/SKILL.md +77 -77
  155. package/template/.agents/skills/test-driven-development/SKILL.md +422 -422
  156. package/template/.agents/skills/test-driven-development/testing-patterns.md +236 -236
  157. package/template/.agents/skills/test-execution-and-coverage/SKILL.md +56 -56
  158. package/template/.agents/skills/type-design/SKILL.md +84 -84
  159. package/template/.agents/skills/ui-ux-pro-max/SKILL.md +75 -75
  160. package/template/.agents/skills/using-agent-skills/SKILL.md +171 -171
  161. package/template/.agents/skills/verification-orchestration/SKILL.md +68 -68
  162. package/template/.agents/skills/vulnerability-scanner/SKILL.md +276 -276
  163. package/template/.agents/skills/vulnerability-scanner/checklists.md +121 -121
  164. package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  165. package/template/.agents/skills/wiki/SKILL.md +148 -148
  166. package/template/.agents/skills/workflow-documentation-sync/SKILL.md +87 -87
  167. package/template/.claude/skills/20-spec/SKILL.md +136 -136
  168. package/template/.claude/skills/30-plan/SKILL.md +206 -206
  169. package/template/.claude/skills/40-implement/SKILL.md +152 -152
  170. package/template/.claude/skills/50-verify/SKILL.md +174 -174
  171. package/template/.claude/skills/60-report/SKILL.md +168 -168
  172. package/template/.claude/skills/70-release/SKILL.md +141 -141
  173. package/template/.claude/skills/9arm-skills/README.md +51 -51
  174. package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  175. package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +79 -79
  176. package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  177. package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  178. package/template/.claude/skills/agent/SKILL.md +164 -164
  179. package/template/.claude/skills/api-and-interface-design/SKILL.md +294 -294
  180. package/template/.claude/skills/app-builder/SKILL.md +75 -75
  181. package/template/.claude/skills/app-builder/agent-coordination.md +71 -71
  182. package/template/.claude/skills/app-builder/feature-building.md +53 -53
  183. package/template/.claude/skills/app-builder/project-detection.md +34 -34
  184. package/template/.claude/skills/app-builder/scaffolding.md +118 -118
  185. package/template/.claude/skills/app-builder/tech-stack.md +40 -40
  186. package/template/.claude/skills/app-builder/templates/SKILL.md +39 -39
  187. package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  188. package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  189. package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  190. package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  191. package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  192. package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  193. package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  194. package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  195. package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  196. package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  197. package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  198. package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  199. package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  200. package/template/.claude/skills/architecture/SKILL.md +55 -55
  201. package/template/.claude/skills/architecture/context-discovery.md +43 -43
  202. package/template/.claude/skills/architecture/examples.md +94 -94
  203. package/template/.claude/skills/architecture/pattern-selection.md +68 -68
  204. package/template/.claude/skills/architecture/patterns-reference.md +50 -50
  205. package/template/.claude/skills/architecture/trade-off-analysis.md +77 -77
  206. package/template/.claude/skills/bash-linux/SKILL.md +199 -199
  207. package/template/.claude/skills/behavioral-modes/SKILL.md +242 -242
  208. package/template/.claude/skills/brainstorm/SKILL.md +157 -157
  209. package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +302 -302
  210. package/template/.claude/skills/changelog/SKILL.md +108 -108
  211. package/template/.claude/skills/ci-cd-and-automation/SKILL.md +390 -390
  212. package/template/.claude/skills/code-review-and-quality/SKILL.md +392 -392
  213. package/template/.claude/skills/code-simplification/SKILL.md +331 -331
  214. package/template/.claude/skills/commit/SKILL.md +62 -62
  215. package/template/.claude/skills/competitor-analysis/SKILL.md +66 -66
  216. package/template/.claude/skills/context-engineering/SKILL.md +290 -290
  217. package/template/.claude/skills/database-design/SKILL.md +52 -52
  218. package/template/.claude/skills/database-design/database-selection.md +43 -43
  219. package/template/.claude/skills/database-design/indexing.md +39 -39
  220. package/template/.claude/skills/database-design/migrations.md +48 -48
  221. package/template/.claude/skills/database-design/optimization.md +36 -36
  222. package/template/.claude/skills/database-design/orm-selection.md +30 -30
  223. package/template/.claude/skills/database-design/schema-design.md +56 -56
  224. package/template/.claude/skills/database-design/scripts/schema_validator.py +172 -172
  225. package/template/.claude/skills/debug/SKILL.md +116 -116
  226. package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +298 -298
  227. package/template/.claude/skills/deploy/SKILL.md +90 -90
  228. package/template/.claude/skills/deployment-procedures/SKILL.md +241 -241
  229. package/template/.claude/skills/deprecation-and-migration/SKILL.md +206 -206
  230. package/template/.claude/skills/documentation-and-adrs/SKILL.md +278 -278
  231. package/template/.claude/skills/followup/SKILL.md +78 -78
  232. package/template/.claude/skills/frontend-ui-engineering/SKILL.md +326 -326
  233. package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  234. package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +300 -300
  235. package/template/.claude/skills/goal/SKILL.md +132 -132
  236. package/template/.claude/skills/help/SKILL.md +242 -242
  237. package/template/.claude/skills/human-review-decisions/SKILL.md +74 -74
  238. package/template/.claude/skills/i18n-localization/SKILL.md +154 -154
  239. package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  240. package/template/.claude/skills/idea-refine/SKILL.md +178 -178
  241. package/template/.claude/skills/idea-refine/examples.md +238 -238
  242. package/template/.claude/skills/idea-refine/frameworks.md +99 -99
  243. package/template/.claude/skills/idea-refine/refinement-criteria.md +113 -113
  244. package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +15 -15
  245. package/template/.claude/skills/incremental-implementation/SKILL.md +248 -248
  246. package/template/.claude/skills/insight/SKILL.md +130 -130
  247. package/template/.claude/skills/insight-capture/SKILL.md +84 -84
  248. package/template/.claude/skills/intelligent-routing/SKILL.md +171 -171
  249. package/template/.claude/skills/issue-triage/SKILL.md +106 -106
  250. package/template/.claude/skills/lint-and-validate/SKILL.md +45 -45
  251. package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  252. package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  253. package/template/.claude/skills/mcp-builder/SKILL.md +176 -176
  254. package/template/.claude/skills/md2html/SKILL.md +154 -154
  255. package/template/.claude/skills/md2html/components.md +505 -505
  256. package/template/.claude/skills/md2html/template.html +1152 -1152
  257. package/template/.claude/skills/merge/SKILL.md +75 -75
  258. package/template/.claude/skills/mobile-design/SKILL.md +394 -394
  259. package/template/.claude/skills/mobile-design/decision-trees.md +516 -516
  260. package/template/.claude/skills/mobile-design/mobile-backend.md +491 -491
  261. package/template/.claude/skills/mobile-design/mobile-color-system.md +420 -420
  262. package/template/.claude/skills/mobile-design/mobile-debugging.md +122 -122
  263. package/template/.claude/skills/mobile-design/mobile-design-thinking.md +357 -357
  264. package/template/.claude/skills/mobile-design/mobile-navigation.md +458 -458
  265. package/template/.claude/skills/mobile-design/mobile-performance.md +767 -767
  266. package/template/.claude/skills/mobile-design/mobile-testing.md +356 -356
  267. package/template/.claude/skills/mobile-design/mobile-typography.md +433 -433
  268. package/template/.claude/skills/mobile-design/platform-android.md +666 -666
  269. package/template/.claude/skills/mobile-design/platform-ios.md +561 -561
  270. package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +670 -670
  271. package/template/.claude/skills/mobile-design/touch-psychology.md +537 -537
  272. package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  273. package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  274. package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  275. package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  276. package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  277. package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  278. package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  279. package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  280. package/template/.claude/skills/nextjs-react-expert/SKILL.md +286 -286
  281. package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  282. package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  283. package/template/.claude/skills/nodejs-best-practices/SKILL.md +333 -333
  284. package/template/.claude/skills/package-json-generator/SKILL.md +60 -60
  285. package/template/.claude/skills/package-json-generator/scripts/generate.js +120 -120
  286. package/template/.claude/skills/package-json-generator/scripts/run.sh +19 -19
  287. package/template/.claude/skills/parallel-agents/SKILL.md +144 -144
  288. package/template/.claude/skills/performance-optimization/SKILL.md +299 -299
  289. package/template/.claude/skills/performance-optimization/performance-checklist.md +113 -113
  290. package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +239 -239
  291. package/template/.claude/skills/powershell-windows/SKILL.md +167 -167
  292. package/template/.claude/skills/pr/SKILL.md +92 -92
  293. package/template/.claude/skills/pr-review/SKILL.md +142 -142
  294. package/template/.claude/skills/pr-review-analysis/SKILL.md +89 -89
  295. package/template/.claude/skills/prd/SKILL.md +112 -112
  296. package/template/.claude/skills/preview/SKILL.md +116 -116
  297. package/template/.claude/skills/preview-local-check/SKILL.md +59 -59
  298. package/template/.claude/skills/python-patterns/SKILL.md +441 -441
  299. package/template/.claude/skills/release-git-operations/SKILL.md +97 -97
  300. package/template/.claude/skills/research/SKILL.md +127 -127
  301. package/template/.claude/skills/review/SKILL.md +55 -55
  302. package/template/.claude/skills/review-followup-routing/SKILL.md +98 -98
  303. package/template/.claude/skills/roadmap-strategy/SKILL.md +97 -97
  304. package/template/.claude/skills/security-and-hardening/SKILL.md +349 -349
  305. package/template/.claude/skills/security-and-hardening/security-checklist.md +134 -134
  306. package/template/.claude/skills/security-review/SKILL.md +164 -164
  307. package/template/.claude/skills/seo-fundamentals/SKILL.md +129 -129
  308. package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  309. package/template/.claude/skills/server-management/SKILL.md +161 -161
  310. package/template/.claude/skills/shipping-and-launch/SKILL.md +311 -311
  311. package/template/.claude/skills/silent-failure-audit/SKILL.md +73 -73
  312. package/template/.claude/skills/simplify/SKILL.md +74 -74
  313. package/template/.claude/skills/skill-development/SKILL.md +86 -86
  314. package/template/.claude/skills/spec-driven-development/SKILL.md +207 -207
  315. package/template/.claude/skills/spec-orchestration/SKILL.md +91 -91
  316. package/template/.claude/skills/specialist-agent-routing/SKILL.md +107 -107
  317. package/template/.claude/skills/tailwind-patterns/SKILL.md +269 -269
  318. package/template/.claude/skills/test/SKILL.md +77 -77
  319. package/template/.claude/skills/test-driven-development/SKILL.md +422 -422
  320. package/template/.claude/skills/test-driven-development/testing-patterns.md +236 -236
  321. package/template/.claude/skills/test-execution-and-coverage/SKILL.md +56 -56
  322. package/template/.claude/skills/type-design/SKILL.md +84 -84
  323. package/template/.claude/skills/ui-ux-pro-max/SKILL.md +75 -75
  324. package/template/.claude/skills/using-agent-skills/SKILL.md +171 -171
  325. package/template/.claude/skills/verification-orchestration/SKILL.md +68 -68
  326. package/template/.claude/skills/vulnerability-scanner/SKILL.md +276 -276
  327. package/template/.claude/skills/vulnerability-scanner/checklists.md +121 -121
  328. package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  329. package/template/.claude/skills/wiki/SKILL.md +148 -148
  330. package/template/.claude/skills/workflow-documentation-sync/SKILL.md +87 -87
  331. package/template/.nexus/nexus-devflow.json +1 -1
  332. package/template/AGENTS.md +3 -3
  333. package/template/LICENSE +21 -21
  334. package/template/devflow/context/project_index.json +108 -0
  335. package/template/.agents/skills/check-for-updates/SKILL.md +0 -117
  336. package/template/.agents/skills/devflow-concept-intake/SKILL.md +0 -150
  337. package/template/.agents/skills/devflow-concept-intake/agents/openai.yaml +0 -4
  338. package/template/.agents/skills/devflow-concept-intake/references/adoption-proposal-template.md +0 -60
  339. package/template/.agents/skills/devflow-concept-intake/references/concept-report-template.md +0 -47
  340. package/template/.agents/skills/devflow-concept-intake/references/upstream-tracking-template.md +0 -51
  341. package/template/.agents/skills/devflow-wiki/SKILL.md +0 -75
  342. package/template/.agents/skills/english-to-thai-translator/SKILL.md +0 -125
  343. package/template/.agents/skills/obsidian-bases/SKILL.md +0 -506
  344. package/template/.agents/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  345. package/template/.agents/skills/obsidian-cli/SKILL.md +0 -115
  346. package/template/.agents/skills/obsidian-clipper-template-creator/SKILL.md +0 -73
  347. package/template/.agents/skills/obsidian-clipper-template-creator/assets/clipping-template.json +0 -51
  348. package/template/.agents/skills/obsidian-clipper-template-creator/assets/recipe-template.json +0 -48
  349. package/template/.agents/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +0 -79
  350. package/template/.agents/skills/obsidian-clipper-template-creator/references/bases-workflow.md +0 -44
  351. package/template/.agents/skills/obsidian-clipper-template-creator/references/filters.md +0 -51
  352. package/template/.agents/skills/obsidian-clipper-template-creator/references/json-schema.md +0 -77
  353. package/template/.agents/skills/obsidian-clipper-template-creator/references/logic.md +0 -67
  354. package/template/.agents/skills/obsidian-clipper-template-creator/references/variables.md +0 -64
  355. package/template/.agents/skills/obsidian-markdown/SKILL.md +0 -205
  356. package/template/.agents/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  357. package/template/.agents/skills/obsidian-markdown/references/EMBEDS.md +0 -63
  358. package/template/.agents/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  359. package/template/.agents/skills/prompt-addons/SKILL.md +0 -99
  360. package/template/.agents/skills/prp-dev-fastapi/SKILL.md +0 -114
  361. package/template/.agents/skills/prp-dev-multiplatform/SKILL.md +0 -36
  362. package/template/.agents/skills/prp-dev-odoo/SKILL.md +0 -71
  363. package/template/.agents/skills/prp-dev-php/SKILL.md +0 -63
  364. package/template/.agents/skills/prp-sa-ba/SKILL.md +0 -52
  365. package/template/.agents/skills/red-team-tactics/SKILL.md +0 -199
  366. package/template/.agents/skills/writing-great-skills/SKILL.md +0 -65
  367. package/template/.claude/skills/check-for-updates/SKILL.md +0 -117
  368. package/template/.claude/skills/devflow-concept-intake/SKILL.md +0 -150
  369. package/template/.claude/skills/devflow-concept-intake/agents/openai.yaml +0 -4
  370. package/template/.claude/skills/devflow-concept-intake/references/adoption-proposal-template.md +0 -60
  371. package/template/.claude/skills/devflow-concept-intake/references/concept-report-template.md +0 -47
  372. package/template/.claude/skills/devflow-concept-intake/references/upstream-tracking-template.md +0 -51
  373. package/template/.claude/skills/devflow-wiki/SKILL.md +0 -75
  374. package/template/.claude/skills/english-to-thai-translator/SKILL.md +0 -125
  375. package/template/.claude/skills/obsidian-bases/SKILL.md +0 -506
  376. package/template/.claude/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  377. package/template/.claude/skills/obsidian-cli/SKILL.md +0 -115
  378. package/template/.claude/skills/obsidian-clipper-template-creator/SKILL.md +0 -73
  379. package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json +0 -51
  380. package/template/.claude/skills/obsidian-clipper-template-creator/assets/recipe-template.json +0 -48
  381. package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +0 -79
  382. package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md +0 -44
  383. package/template/.claude/skills/obsidian-clipper-template-creator/references/filters.md +0 -51
  384. package/template/.claude/skills/obsidian-clipper-template-creator/references/json-schema.md +0 -77
  385. package/template/.claude/skills/obsidian-clipper-template-creator/references/logic.md +0 -67
  386. package/template/.claude/skills/obsidian-clipper-template-creator/references/variables.md +0 -64
  387. package/template/.claude/skills/obsidian-markdown/SKILL.md +0 -205
  388. package/template/.claude/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  389. package/template/.claude/skills/obsidian-markdown/references/EMBEDS.md +0 -63
  390. package/template/.claude/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  391. package/template/.claude/skills/prompt-addons/SKILL.md +0 -99
  392. package/template/.claude/skills/prp-dev-fastapi/SKILL.md +0 -114
  393. package/template/.claude/skills/prp-dev-multiplatform/SKILL.md +0 -36
  394. package/template/.claude/skills/prp-dev-odoo/SKILL.md +0 -71
  395. package/template/.claude/skills/prp-dev-php/SKILL.md +0 -63
  396. package/template/.claude/skills/prp-sa-ba/SKILL.md +0 -52
  397. package/template/.claude/skills/red-team-tactics/SKILL.md +0 -199
  398. package/template/.claude/skills/writing-great-skills/SKILL.md +0 -65
@@ -1,356 +1,356 @@
1
- # Mobile Testing Patterns
2
-
3
- > **Mobile testing is NOT web testing. Different constraints, different strategies.**
4
- > This file teaches WHEN to use each testing approach and WHY.
5
- > **Code examples are minimal - focus on decision-making.**
6
-
7
- ---
8
-
9
- ## 🧠 MOBILE TESTING MINDSET
10
-
11
- ```
12
- Mobile testing differs from web:
13
- ├── Real devices matter (emulators hide bugs)
14
- ├── Platform differences (iOS vs Android behavior)
15
- ├── Network conditions vary wildly
16
- ├── Battery/performance under test
17
- ├── App lifecycle (background, killed, restored)
18
- ├── Permissions and system dialogs
19
- └── Touch interactions vs clicks
20
- ```
21
-
22
- ---
23
-
24
- ## 🚫 AI MOBILE TESTING ANTI-PATTERNS
25
-
26
- | ❌ AI Default | Why It's Wrong | ✅ Mobile-Correct |
27
- |---------------|----------------|-------------------|
28
- | Jest-only testing | Misses native layer | Jest + E2E on device |
29
- | Enzyme patterns | Deprecated, web-focused | React Native Testing Library |
30
- | Browser-based E2E (Cypress) | Can't test native features | Detox / Maestro |
31
- | Mock everything | Misses integration bugs | Real device testing |
32
- | Ignore platform tests | iOS/Android differ | Platform-specific cases |
33
- | Skip performance tests | Mobile perf is critical | Profile on low-end device |
34
- | Test only happy path | Mobile has more edge cases | Offline, permissions, interrupts |
35
- | 100% unit test coverage | False security | Pyramid balance |
36
- | Copy web testing patterns | Different environment | Mobile-specific tools |
37
-
38
- ---
39
-
40
- ## 1. Testing Tool Selection
41
-
42
- ### Decision Tree
43
-
44
- ```
45
- WHAT ARE YOU TESTING?
46
-
47
- ├── Pure functions, utilities, helpers
48
- │ └── Jest (unit tests)
49
- │ └── No special mobile setup needed
50
-
51
- ├── Individual components (isolated)
52
- │ ├── React Native → React Native Testing Library
53
- │ └── Flutter → flutter_test (widget tests)
54
-
55
- ├── Components with hooks, context, navigation
56
- │ ├── React Native → RNTL + mocked providers
57
- │ └── Flutter → integration_test package
58
-
59
- ├── Full user flows (login, checkout, etc.)
60
- │ ├── Detox (React Native, fast, reliable)
61
- │ ├── Maestro (Cross-platform, YAML-based)
62
- │ └── Appium (Legacy, slow, last resort)
63
-
64
- └── Performance, memory, battery
65
- ├── Flashlight (RN performance)
66
- ├── Flutter DevTools
67
- └── Real device profiling (Xcode/Android Studio)
68
- ```
69
-
70
- ### Tool Comparison
71
-
72
- | Tool | Platform | Speed | Reliability | Use When |
73
- |------|----------|-------|-------------|----------|
74
- | **Jest** | RN | ⚡⚡⚡ | ⚡⚡⚡ | Unit tests, logic |
75
- | **RNTL** | RN | ⚡⚡⚡ | ⚡⚡ | Component tests |
76
- | **flutter_test** | Flutter | ⚡⚡⚡ | ⚡⚡⚡ | Widget tests |
77
- | **Detox** | RN | ⚡⚡ | ⚡⚡⚡ | E2E, critical flows |
78
- | **Maestro** | Both | ⚡⚡ | ⚡⚡ | E2E, cross-platform |
79
- | **Appium** | Both | ⚡ | ⚡ | Legacy, last resort |
80
-
81
- ---
82
-
83
- ## 2. Testing Pyramid for Mobile
84
-
85
- ```
86
- ┌───────────────┐
87
- │ E2E Tests │ 10%
88
- │ (Real device) │ Slow, expensive, essential
89
- ├───────────────┤
90
- │ Integration │ 20%
91
- │ Tests │ Component + context
92
- ├───────────────┤
93
- │ Component │ 30%
94
- │ Tests │ Isolated UI
95
- ├───────────────┤
96
- │ Unit Tests │ 40%
97
- │ (Jest) │ Pure logic
98
- └───────────────┘
99
- ```
100
-
101
- ### Why This Distribution?
102
-
103
- | Level | Why This % |
104
- |-------|------------|
105
- | **E2E 10%** | Slow, flaky, but catches integration bugs |
106
- | **Integration 20%** | Tests real user flows without full app |
107
- | **Component 30%** | Fast feedback on UI changes |
108
- | **Unit 40%** | Fastest, most stable, logic coverage |
109
-
110
- > 🔴 **If you have 90% unit tests and 0% E2E, you're testing the wrong things.**
111
-
112
- ---
113
-
114
- ## 3. What to Test at Each Level
115
-
116
- ### Unit Tests (Jest)
117
-
118
- ```
119
- ✅ TEST:
120
- ├── Utility functions (formatDate, calculatePrice)
121
- ├── State reducers (Redux, Zustand stores)
122
- ├── API response transformers
123
- ├── Validation logic
124
- └── Business rules
125
-
126
- ❌ DON'T TEST:
127
- ├── Component rendering (use component tests)
128
- ├── Navigation (use integration tests)
129
- ├── Native modules (mock them)
130
- └── Third-party libraries
131
- ```
132
-
133
- ### Component Tests (RNTL / flutter_test)
134
-
135
- ```
136
- ✅ TEST:
137
- ├── Component renders correctly
138
- ├── User interactions (tap, type, swipe)
139
- ├── Loading/error/empty states
140
- ├── Accessibility labels exist
141
- └── Props change behavior
142
-
143
- ❌ DON'T TEST:
144
- ├── Internal implementation details
145
- ├── Snapshot everything (only key components)
146
- ├── Styling specifics (brittle)
147
- └── Third-party component internals
148
- ```
149
-
150
- ### Integration Tests
151
-
152
- ```
153
- ✅ TEST:
154
- ├── Form submission flows
155
- ├── Navigation between screens
156
- ├── State persistence across screens
157
- ├── API integration (with mocked server)
158
- └── Context/provider interactions
159
-
160
- ❌ DON'T TEST:
161
- ├── Every possible path (use unit tests)
162
- ├── Third-party services (mock them)
163
- └── Backend logic (backend tests)
164
- ```
165
-
166
- ### E2E Tests
167
-
168
- ```
169
- ✅ TEST:
170
- ├── Critical user journeys (login, purchase, signup)
171
- ├── Offline → online transitions
172
- ├── Deep link handling
173
- ├── Push notification navigation
174
- ├── Permission flows
175
- └── Payment flows
176
-
177
- ❌ DON'T TEST:
178
- ├── Every edge case (too slow)
179
- ├── Visual regression (use snapshot tests)
180
- ├── Non-critical features
181
- └── Backend-only logic
182
- ```
183
-
184
- ---
185
-
186
- ## 4. Platform-Specific Testing
187
-
188
- ### What Differs Between iOS and Android?
189
-
190
- | Area | iOS Behavior | Android Behavior | Test Both? |
191
- |------|--------------|------------------|------------|
192
- | **Back navigation** | Edge swipe | System back button | ✅ YES |
193
- | **Permissions** | Ask once, settings | Ask each time, rationale | ✅ YES |
194
- | **Keyboard** | Different appearance | Different behavior | ✅ YES |
195
- | **Date picker** | Wheel/modal | Material dialog | ⚠️ If custom UI |
196
- | **Push format** | APNs payload | FCM payload | ✅ YES |
197
- | **Deep links** | Universal Links | App Links | ✅ YES |
198
- | **Gestures** | Some unique | Material gestures | ⚠️ If custom |
199
-
200
- ### Platform Testing Strategy
201
-
202
- ```
203
- FOR EACH PLATFORM:
204
- ├── Run unit tests (same on both)
205
- ├── Run component tests (same on both)
206
- ├── Run E2E on REAL DEVICE
207
- │ ├── iOS: iPhone (not just simulator)
208
- │ └── Android: Mid-range device (not flagship)
209
- └── Test platform-specific features separately
210
- ```
211
-
212
- ---
213
-
214
- ## 5. Offline & Network Testing
215
-
216
- ### Offline Scenarios to Test
217
-
218
- | Scenario | What to Verify |
219
- |----------|----------------|
220
- | Start app offline | Shows cached data or offline message |
221
- | Go offline mid-action | Action queued, not lost |
222
- | Come back online | Queue synced, no duplicates |
223
- | Slow network (2G) | Loading states, timeouts work |
224
- | Flaky network | Retry logic, error recovery |
225
-
226
- ### How to Test Network Conditions
227
-
228
- ```
229
- APPROACH:
230
- ├── Unit tests: Mock NetInfo, test logic
231
- ├── Integration: Mock API responses, test UI
232
- ├── E2E (Detox): Use device.setURLBlacklist()
233
- ├── E2E (Maestro): Use network conditions
234
- └── Manual: Use Charles Proxy / Network Link Conditioner
235
- ```
236
-
237
- ---
238
-
239
- ## 6. Performance Testing
240
-
241
- ### What to Measure
242
-
243
- | Metric | Target | How to Measure |
244
- |--------|--------|----------------|
245
- | **App startup** | < 2 seconds | Profiler, Flashlight |
246
- | **Screen transition** | < 300ms | React DevTools |
247
- | **List scroll** | 60 FPS | Profiler, feel |
248
- | **Memory** | Stable, no leaks | Instruments / Android Profiler |
249
- | **Bundle size** | Minimize | Metro bundler analysis |
250
-
251
- ### When to Performance Test
252
-
253
- ```
254
- PERFORMANCE TEST:
255
- ├── Before release (required)
256
- ├── After adding heavy features
257
- ├── After upgrading dependencies
258
- ├── When users report slowness
259
- └── On CI (optional, automated benchmarks)
260
-
261
- WHERE TO TEST:
262
- ├── Real device (REQUIRED)
263
- ├── Low-end device (Galaxy A series, old iPhone)
264
- ├── NOT on emulator (lies about performance)
265
- └── With production-like data (not 3 items)
266
- ```
267
-
268
- ---
269
-
270
- ## 7. Accessibility Testing
271
-
272
- ### What to Verify
273
-
274
- | Element | Check |
275
- |---------|-------|
276
- | Interactive elements | Have accessibilityLabel |
277
- | Images | Have alt text or decorative flag |
278
- | Forms | Labels linked to inputs |
279
- | Buttons | Role = button |
280
- | Touch targets | ≥ 44x44 (iOS) / 48x48 (Android) |
281
- | Color contrast | WCAG AA minimum |
282
-
283
- ### How to Test
284
-
285
- ```
286
- AUTOMATED:
287
- ├── React Native: jest-axe
288
- ├── Flutter: Accessibility checker in tests
289
- └── Lint rules for missing labels
290
-
291
- MANUAL:
292
- ├── Enable VoiceOver (iOS) / TalkBack (Android)
293
- ├── Navigate entire app with screen reader
294
- ├── Test with increased text size
295
- └── Test with reduced motion
296
- ```
297
-
298
- ---
299
-
300
- ## 8. CI/CD Integration
301
-
302
- ### What to Run Where
303
-
304
- | Stage | Tests | Devices |
305
- |-------|-------|---------|
306
- | **PR** | Unit + Component | None (fast) |
307
- | **Merge to main** | + Integration | Simulator/Emulator |
308
- | **Pre-release** | + E2E | Real devices (farm) |
309
- | **Nightly** | Full suite | Device farm |
310
-
311
- ### Device Farm Options
312
-
313
- | Service | Pros | Cons |
314
- |---------|------|------|
315
- | **Firebase Test Lab** | Free tier, Google devices | Android focus |
316
- | **AWS Device Farm** | Wide selection | Expensive |
317
- | **BrowserStack** | Good UX | Expensive |
318
- | **Local devices** | Free, reliable | Limited variety |
319
-
320
- ---
321
-
322
- ## 📝 MOBILE TESTING CHECKLIST
323
-
324
- ### Before PR
325
- - [ ] Unit tests for new logic
326
- - [ ] Component tests for new UI
327
- - [ ] No console.logs in tests
328
- - [ ] Tests pass on CI
329
-
330
- ### Before Release
331
- - [ ] E2E on real iOS device
332
- - [ ] E2E on real Android device
333
- - [ ] Tested on low-end device
334
- - [ ] Offline scenarios verified
335
- - [ ] Performance acceptable
336
- - [ ] Accessibility verified
337
-
338
- ### What to Skip (Consciously)
339
- - [ ] 100% coverage (aim for meaningful coverage)
340
- - [ ] Every visual permutation (use snapshots sparingly)
341
- - [ ] Third-party library internals
342
- - [ ] Backend logic (separate tests)
343
-
344
- ---
345
-
346
- ## 🎯 Testing Questions to Ask
347
-
348
- Before writing tests, answer:
349
-
350
- 1. **What could break?** → Test that
351
- 2. **What's critical for users?** → E2E test that
352
- 3. **What's complex logic?** → Unit test that
353
- 4. **What's platform-specific?** → Test on both platforms
354
- 5. **What happens offline?** → Test that scenario
355
-
356
- > **Remember:** Good mobile testing is about testing the RIGHT things, not EVERYTHING. A flaky E2E test is worse than no test. A failing unit test that catches a bug is worth 100 passing trivial tests.
1
+ # Mobile Testing Patterns
2
+
3
+ > **Mobile testing is NOT web testing. Different constraints, different strategies.**
4
+ > This file teaches WHEN to use each testing approach and WHY.
5
+ > **Code examples are minimal - focus on decision-making.**
6
+
7
+ ---
8
+
9
+ ## 🧠 MOBILE TESTING MINDSET
10
+
11
+ ```
12
+ Mobile testing differs from web:
13
+ ├── Real devices matter (emulators hide bugs)
14
+ ├── Platform differences (iOS vs Android behavior)
15
+ ├── Network conditions vary wildly
16
+ ├── Battery/performance under test
17
+ ├── App lifecycle (background, killed, restored)
18
+ ├── Permissions and system dialogs
19
+ └── Touch interactions vs clicks
20
+ ```
21
+
22
+ ---
23
+
24
+ ## 🚫 AI MOBILE TESTING ANTI-PATTERNS
25
+
26
+ | ❌ AI Default | Why It's Wrong | ✅ Mobile-Correct |
27
+ |---------------|----------------|-------------------|
28
+ | Jest-only testing | Misses native layer | Jest + E2E on device |
29
+ | Enzyme patterns | Deprecated, web-focused | React Native Testing Library |
30
+ | Browser-based E2E (Cypress) | Can't test native features | Detox / Maestro |
31
+ | Mock everything | Misses integration bugs | Real device testing |
32
+ | Ignore platform tests | iOS/Android differ | Platform-specific cases |
33
+ | Skip performance tests | Mobile perf is critical | Profile on low-end device |
34
+ | Test only happy path | Mobile has more edge cases | Offline, permissions, interrupts |
35
+ | 100% unit test coverage | False security | Pyramid balance |
36
+ | Copy web testing patterns | Different environment | Mobile-specific tools |
37
+
38
+ ---
39
+
40
+ ## 1. Testing Tool Selection
41
+
42
+ ### Decision Tree
43
+
44
+ ```
45
+ WHAT ARE YOU TESTING?
46
+
47
+ ├── Pure functions, utilities, helpers
48
+ │ └── Jest (unit tests)
49
+ │ └── No special mobile setup needed
50
+
51
+ ├── Individual components (isolated)
52
+ │ ├── React Native → React Native Testing Library
53
+ │ └── Flutter → flutter_test (widget tests)
54
+
55
+ ├── Components with hooks, context, navigation
56
+ │ ├── React Native → RNTL + mocked providers
57
+ │ └── Flutter → integration_test package
58
+
59
+ ├── Full user flows (login, checkout, etc.)
60
+ │ ├── Detox (React Native, fast, reliable)
61
+ │ ├── Maestro (Cross-platform, YAML-based)
62
+ │ └── Appium (Legacy, slow, last resort)
63
+
64
+ └── Performance, memory, battery
65
+ ├── Flashlight (RN performance)
66
+ ├── Flutter DevTools
67
+ └── Real device profiling (Xcode/Android Studio)
68
+ ```
69
+
70
+ ### Tool Comparison
71
+
72
+ | Tool | Platform | Speed | Reliability | Use When |
73
+ |------|----------|-------|-------------|----------|
74
+ | **Jest** | RN | ⚡⚡⚡ | ⚡⚡⚡ | Unit tests, logic |
75
+ | **RNTL** | RN | ⚡⚡⚡ | ⚡⚡ | Component tests |
76
+ | **flutter_test** | Flutter | ⚡⚡⚡ | ⚡⚡⚡ | Widget tests |
77
+ | **Detox** | RN | ⚡⚡ | ⚡⚡⚡ | E2E, critical flows |
78
+ | **Maestro** | Both | ⚡⚡ | ⚡⚡ | E2E, cross-platform |
79
+ | **Appium** | Both | ⚡ | ⚡ | Legacy, last resort |
80
+
81
+ ---
82
+
83
+ ## 2. Testing Pyramid for Mobile
84
+
85
+ ```
86
+ ┌───────────────┐
87
+ │ E2E Tests │ 10%
88
+ │ (Real device) │ Slow, expensive, essential
89
+ ├───────────────┤
90
+ │ Integration │ 20%
91
+ │ Tests │ Component + context
92
+ ├───────────────┤
93
+ │ Component │ 30%
94
+ │ Tests │ Isolated UI
95
+ ├───────────────┤
96
+ │ Unit Tests │ 40%
97
+ │ (Jest) │ Pure logic
98
+ └───────────────┘
99
+ ```
100
+
101
+ ### Why This Distribution?
102
+
103
+ | Level | Why This % |
104
+ |-------|------------|
105
+ | **E2E 10%** | Slow, flaky, but catches integration bugs |
106
+ | **Integration 20%** | Tests real user flows without full app |
107
+ | **Component 30%** | Fast feedback on UI changes |
108
+ | **Unit 40%** | Fastest, most stable, logic coverage |
109
+
110
+ > 🔴 **If you have 90% unit tests and 0% E2E, you're testing the wrong things.**
111
+
112
+ ---
113
+
114
+ ## 3. What to Test at Each Level
115
+
116
+ ### Unit Tests (Jest)
117
+
118
+ ```
119
+ ✅ TEST:
120
+ ├── Utility functions (formatDate, calculatePrice)
121
+ ├── State reducers (Redux, Zustand stores)
122
+ ├── API response transformers
123
+ ├── Validation logic
124
+ └── Business rules
125
+
126
+ ❌ DON'T TEST:
127
+ ├── Component rendering (use component tests)
128
+ ├── Navigation (use integration tests)
129
+ ├── Native modules (mock them)
130
+ └── Third-party libraries
131
+ ```
132
+
133
+ ### Component Tests (RNTL / flutter_test)
134
+
135
+ ```
136
+ ✅ TEST:
137
+ ├── Component renders correctly
138
+ ├── User interactions (tap, type, swipe)
139
+ ├── Loading/error/empty states
140
+ ├── Accessibility labels exist
141
+ └── Props change behavior
142
+
143
+ ❌ DON'T TEST:
144
+ ├── Internal implementation details
145
+ ├── Snapshot everything (only key components)
146
+ ├── Styling specifics (brittle)
147
+ └── Third-party component internals
148
+ ```
149
+
150
+ ### Integration Tests
151
+
152
+ ```
153
+ ✅ TEST:
154
+ ├── Form submission flows
155
+ ├── Navigation between screens
156
+ ├── State persistence across screens
157
+ ├── API integration (with mocked server)
158
+ └── Context/provider interactions
159
+
160
+ ❌ DON'T TEST:
161
+ ├── Every possible path (use unit tests)
162
+ ├── Third-party services (mock them)
163
+ └── Backend logic (backend tests)
164
+ ```
165
+
166
+ ### E2E Tests
167
+
168
+ ```
169
+ ✅ TEST:
170
+ ├── Critical user journeys (login, purchase, signup)
171
+ ├── Offline → online transitions
172
+ ├── Deep link handling
173
+ ├── Push notification navigation
174
+ ├── Permission flows
175
+ └── Payment flows
176
+
177
+ ❌ DON'T TEST:
178
+ ├── Every edge case (too slow)
179
+ ├── Visual regression (use snapshot tests)
180
+ ├── Non-critical features
181
+ └── Backend-only logic
182
+ ```
183
+
184
+ ---
185
+
186
+ ## 4. Platform-Specific Testing
187
+
188
+ ### What Differs Between iOS and Android?
189
+
190
+ | Area | iOS Behavior | Android Behavior | Test Both? |
191
+ |------|--------------|------------------|------------|
192
+ | **Back navigation** | Edge swipe | System back button | ✅ YES |
193
+ | **Permissions** | Ask once, settings | Ask each time, rationale | ✅ YES |
194
+ | **Keyboard** | Different appearance | Different behavior | ✅ YES |
195
+ | **Date picker** | Wheel/modal | Material dialog | ⚠️ If custom UI |
196
+ | **Push format** | APNs payload | FCM payload | ✅ YES |
197
+ | **Deep links** | Universal Links | App Links | ✅ YES |
198
+ | **Gestures** | Some unique | Material gestures | ⚠️ If custom |
199
+
200
+ ### Platform Testing Strategy
201
+
202
+ ```
203
+ FOR EACH PLATFORM:
204
+ ├── Run unit tests (same on both)
205
+ ├── Run component tests (same on both)
206
+ ├── Run E2E on REAL DEVICE
207
+ │ ├── iOS: iPhone (not just simulator)
208
+ │ └── Android: Mid-range device (not flagship)
209
+ └── Test platform-specific features separately
210
+ ```
211
+
212
+ ---
213
+
214
+ ## 5. Offline & Network Testing
215
+
216
+ ### Offline Scenarios to Test
217
+
218
+ | Scenario | What to Verify |
219
+ |----------|----------------|
220
+ | Start app offline | Shows cached data or offline message |
221
+ | Go offline mid-action | Action queued, not lost |
222
+ | Come back online | Queue synced, no duplicates |
223
+ | Slow network (2G) | Loading states, timeouts work |
224
+ | Flaky network | Retry logic, error recovery |
225
+
226
+ ### How to Test Network Conditions
227
+
228
+ ```
229
+ APPROACH:
230
+ ├── Unit tests: Mock NetInfo, test logic
231
+ ├── Integration: Mock API responses, test UI
232
+ ├── E2E (Detox): Use device.setURLBlacklist()
233
+ ├── E2E (Maestro): Use network conditions
234
+ └── Manual: Use Charles Proxy / Network Link Conditioner
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 6. Performance Testing
240
+
241
+ ### What to Measure
242
+
243
+ | Metric | Target | How to Measure |
244
+ |--------|--------|----------------|
245
+ | **App startup** | < 2 seconds | Profiler, Flashlight |
246
+ | **Screen transition** | < 300ms | React DevTools |
247
+ | **List scroll** | 60 FPS | Profiler, feel |
248
+ | **Memory** | Stable, no leaks | Instruments / Android Profiler |
249
+ | **Bundle size** | Minimize | Metro bundler analysis |
250
+
251
+ ### When to Performance Test
252
+
253
+ ```
254
+ PERFORMANCE TEST:
255
+ ├── Before release (required)
256
+ ├── After adding heavy features
257
+ ├── After upgrading dependencies
258
+ ├── When users report slowness
259
+ └── On CI (optional, automated benchmarks)
260
+
261
+ WHERE TO TEST:
262
+ ├── Real device (REQUIRED)
263
+ ├── Low-end device (Galaxy A series, old iPhone)
264
+ ├── NOT on emulator (lies about performance)
265
+ └── With production-like data (not 3 items)
266
+ ```
267
+
268
+ ---
269
+
270
+ ## 7. Accessibility Testing
271
+
272
+ ### What to Verify
273
+
274
+ | Element | Check |
275
+ |---------|-------|
276
+ | Interactive elements | Have accessibilityLabel |
277
+ | Images | Have alt text or decorative flag |
278
+ | Forms | Labels linked to inputs |
279
+ | Buttons | Role = button |
280
+ | Touch targets | ≥ 44x44 (iOS) / 48x48 (Android) |
281
+ | Color contrast | WCAG AA minimum |
282
+
283
+ ### How to Test
284
+
285
+ ```
286
+ AUTOMATED:
287
+ ├── React Native: jest-axe
288
+ ├── Flutter: Accessibility checker in tests
289
+ └── Lint rules for missing labels
290
+
291
+ MANUAL:
292
+ ├── Enable VoiceOver (iOS) / TalkBack (Android)
293
+ ├── Navigate entire app with screen reader
294
+ ├── Test with increased text size
295
+ └── Test with reduced motion
296
+ ```
297
+
298
+ ---
299
+
300
+ ## 8. CI/CD Integration
301
+
302
+ ### What to Run Where
303
+
304
+ | Stage | Tests | Devices |
305
+ |-------|-------|---------|
306
+ | **PR** | Unit + Component | None (fast) |
307
+ | **Merge to main** | + Integration | Simulator/Emulator |
308
+ | **Pre-release** | + E2E | Real devices (farm) |
309
+ | **Nightly** | Full suite | Device farm |
310
+
311
+ ### Device Farm Options
312
+
313
+ | Service | Pros | Cons |
314
+ |---------|------|------|
315
+ | **Firebase Test Lab** | Free tier, Google devices | Android focus |
316
+ | **AWS Device Farm** | Wide selection | Expensive |
317
+ | **BrowserStack** | Good UX | Expensive |
318
+ | **Local devices** | Free, reliable | Limited variety |
319
+
320
+ ---
321
+
322
+ ## 📝 MOBILE TESTING CHECKLIST
323
+
324
+ ### Before PR
325
+ - [ ] Unit tests for new logic
326
+ - [ ] Component tests for new UI
327
+ - [ ] No console.logs in tests
328
+ - [ ] Tests pass on CI
329
+
330
+ ### Before Release
331
+ - [ ] E2E on real iOS device
332
+ - [ ] E2E on real Android device
333
+ - [ ] Tested on low-end device
334
+ - [ ] Offline scenarios verified
335
+ - [ ] Performance acceptable
336
+ - [ ] Accessibility verified
337
+
338
+ ### What to Skip (Consciously)
339
+ - [ ] 100% coverage (aim for meaningful coverage)
340
+ - [ ] Every visual permutation (use snapshots sparingly)
341
+ - [ ] Third-party library internals
342
+ - [ ] Backend logic (separate tests)
343
+
344
+ ---
345
+
346
+ ## 🎯 Testing Questions to Ask
347
+
348
+ Before writing tests, answer:
349
+
350
+ 1. **What could break?** → Test that
351
+ 2. **What's critical for users?** → E2E test that
352
+ 3. **What's complex logic?** → Unit test that
353
+ 4. **What's platform-specific?** → Test on both platforms
354
+ 5. **What happens offline?** → Test that scenario
355
+
356
+ > **Remember:** Good mobile testing is about testing the RIGHT things, not EVERYTHING. A flaky E2E test is worse than no test. A failing unit test that catches a bug is worth 100 passing trivial tests.