@jakkrichm/create-nexus-devflow 2.0.0 → 2.0.1

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 (394) 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/check-for-updates/SKILL.md +116 -116
  48. package/template/.agents/skills/ci-cd-and-automation/SKILL.md +390 -390
  49. package/template/.agents/skills/code-review-and-quality/SKILL.md +392 -392
  50. package/template/.agents/skills/code-simplification/SKILL.md +331 -331
  51. package/template/.agents/skills/commit/SKILL.md +62 -62
  52. package/template/.agents/skills/competitor-analysis/SKILL.md +66 -66
  53. package/template/.agents/skills/context-engineering/SKILL.md +290 -290
  54. package/template/.agents/skills/database-design/SKILL.md +52 -52
  55. package/template/.agents/skills/database-design/database-selection.md +43 -43
  56. package/template/.agents/skills/database-design/indexing.md +39 -39
  57. package/template/.agents/skills/database-design/migrations.md +48 -48
  58. package/template/.agents/skills/database-design/optimization.md +36 -36
  59. package/template/.agents/skills/database-design/orm-selection.md +30 -30
  60. package/template/.agents/skills/database-design/schema-design.md +56 -56
  61. package/template/.agents/skills/database-design/scripts/schema_validator.py +172 -172
  62. package/template/.agents/skills/debug/SKILL.md +116 -116
  63. package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +298 -298
  64. package/template/.agents/skills/deploy/SKILL.md +90 -90
  65. package/template/.agents/skills/deployment-procedures/SKILL.md +241 -241
  66. package/template/.agents/skills/deprecation-and-migration/SKILL.md +206 -206
  67. package/template/.agents/skills/devflow-concept-intake/SKILL.md +150 -150
  68. package/template/.agents/skills/devflow-concept-intake/agents/openai.yaml +4 -4
  69. package/template/.agents/skills/devflow-concept-intake/references/adoption-proposal-template.md +60 -60
  70. package/template/.agents/skills/devflow-concept-intake/references/concept-report-template.md +47 -47
  71. package/template/.agents/skills/devflow-concept-intake/references/upstream-tracking-template.md +51 -51
  72. package/template/.agents/skills/devflow-wiki/SKILL.md +75 -75
  73. package/template/.agents/skills/documentation-and-adrs/SKILL.md +278 -278
  74. package/template/.agents/skills/english-to-thai-translator/SKILL.md +125 -125
  75. package/template/.agents/skills/followup/SKILL.md +78 -78
  76. package/template/.agents/skills/frontend-ui-engineering/SKILL.md +326 -326
  77. package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  78. package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +300 -300
  79. package/template/.agents/skills/goal/SKILL.md +132 -132
  80. package/template/.agents/skills/help/SKILL.md +242 -242
  81. package/template/.agents/skills/human-review-decisions/SKILL.md +74 -74
  82. package/template/.agents/skills/i18n-localization/SKILL.md +154 -154
  83. package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  84. package/template/.agents/skills/idea-refine/SKILL.md +178 -178
  85. package/template/.agents/skills/idea-refine/examples.md +238 -238
  86. package/template/.agents/skills/idea-refine/frameworks.md +99 -99
  87. package/template/.agents/skills/idea-refine/refinement-criteria.md +113 -113
  88. package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +15 -15
  89. package/template/.agents/skills/incremental-implementation/SKILL.md +248 -248
  90. package/template/.agents/skills/insight/SKILL.md +130 -130
  91. package/template/.agents/skills/insight-capture/SKILL.md +84 -84
  92. package/template/.agents/skills/intelligent-routing/SKILL.md +171 -171
  93. package/template/.agents/skills/issue-triage/SKILL.md +106 -106
  94. package/template/.agents/skills/lint-and-validate/SKILL.md +45 -45
  95. package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  96. package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  97. package/template/.agents/skills/mcp-builder/SKILL.md +176 -176
  98. package/template/.agents/skills/md2html/SKILL.md +154 -154
  99. package/template/.agents/skills/md2html/components.md +505 -505
  100. package/template/.agents/skills/md2html/template.html +1152 -1152
  101. package/template/.agents/skills/merge/SKILL.md +75 -75
  102. package/template/.agents/skills/mobile-design/SKILL.md +394 -394
  103. package/template/.agents/skills/mobile-design/decision-trees.md +516 -516
  104. package/template/.agents/skills/mobile-design/mobile-backend.md +491 -491
  105. package/template/.agents/skills/mobile-design/mobile-color-system.md +420 -420
  106. package/template/.agents/skills/mobile-design/mobile-debugging.md +122 -122
  107. package/template/.agents/skills/mobile-design/mobile-design-thinking.md +357 -357
  108. package/template/.agents/skills/mobile-design/mobile-navigation.md +458 -458
  109. package/template/.agents/skills/mobile-design/mobile-performance.md +767 -767
  110. package/template/.agents/skills/mobile-design/mobile-testing.md +356 -356
  111. package/template/.agents/skills/mobile-design/mobile-typography.md +433 -433
  112. package/template/.agents/skills/mobile-design/platform-android.md +666 -666
  113. package/template/.agents/skills/mobile-design/platform-ios.md +561 -561
  114. package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -670
  115. package/template/.agents/skills/mobile-design/touch-psychology.md +537 -537
  116. package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  117. package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  118. package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  119. package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  120. package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  121. package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  122. package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  123. package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  124. package/template/.agents/skills/nextjs-react-expert/SKILL.md +286 -286
  125. package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  126. package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  127. package/template/.agents/skills/nodejs-best-practices/SKILL.md +333 -333
  128. package/template/.agents/skills/obsidian-bases/SKILL.md +506 -506
  129. package/template/.agents/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -173
  130. package/template/.agents/skills/obsidian-cli/SKILL.md +115 -115
  131. package/template/.agents/skills/obsidian-clipper-template-creator/SKILL.md +73 -73
  132. package/template/.agents/skills/obsidian-clipper-template-creator/assets/clipping-template.json +51 -51
  133. package/template/.agents/skills/obsidian-clipper-template-creator/assets/recipe-template.json +48 -48
  134. package/template/.agents/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +79 -79
  135. package/template/.agents/skills/obsidian-clipper-template-creator/references/bases-workflow.md +44 -44
  136. package/template/.agents/skills/obsidian-clipper-template-creator/references/filters.md +51 -51
  137. package/template/.agents/skills/obsidian-clipper-template-creator/references/json-schema.md +77 -77
  138. package/template/.agents/skills/obsidian-clipper-template-creator/references/logic.md +67 -67
  139. package/template/.agents/skills/obsidian-clipper-template-creator/references/variables.md +64 -64
  140. package/template/.agents/skills/obsidian-markdown/SKILL.md +205 -205
  141. package/template/.agents/skills/obsidian-markdown/references/CALLOUTS.md +58 -58
  142. package/template/.agents/skills/obsidian-markdown/references/EMBEDS.md +63 -63
  143. package/template/.agents/skills/obsidian-markdown/references/PROPERTIES.md +61 -61
  144. package/template/.agents/skills/package-json-generator/SKILL.md +60 -60
  145. package/template/.agents/skills/package-json-generator/scripts/generate.js +120 -120
  146. package/template/.agents/skills/package-json-generator/scripts/run.sh +19 -19
  147. package/template/.agents/skills/parallel-agents/SKILL.md +144 -144
  148. package/template/.agents/skills/performance-optimization/SKILL.md +299 -299
  149. package/template/.agents/skills/performance-optimization/performance-checklist.md +113 -113
  150. package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +239 -239
  151. package/template/.agents/skills/powershell-windows/SKILL.md +167 -167
  152. package/template/.agents/skills/pr/SKILL.md +92 -92
  153. package/template/.agents/skills/pr-review/SKILL.md +142 -142
  154. package/template/.agents/skills/pr-review-analysis/SKILL.md +89 -89
  155. package/template/.agents/skills/prd/SKILL.md +112 -112
  156. package/template/.agents/skills/preview/SKILL.md +116 -116
  157. package/template/.agents/skills/preview-local-check/SKILL.md +59 -59
  158. package/template/.agents/skills/prompt-addons/SKILL.md +99 -99
  159. package/template/.agents/skills/prp-dev-fastapi/SKILL.md +114 -114
  160. package/template/.agents/skills/prp-dev-multiplatform/SKILL.md +36 -36
  161. package/template/.agents/skills/prp-dev-odoo/SKILL.md +71 -71
  162. package/template/.agents/skills/prp-dev-php/SKILL.md +63 -63
  163. package/template/.agents/skills/prp-sa-ba/SKILL.md +52 -52
  164. package/template/.agents/skills/python-patterns/SKILL.md +441 -441
  165. package/template/.agents/skills/red-team-tactics/SKILL.md +199 -199
  166. package/template/.agents/skills/release-git-operations/SKILL.md +97 -97
  167. package/template/.agents/skills/research/SKILL.md +127 -127
  168. package/template/.agents/skills/review/SKILL.md +55 -55
  169. package/template/.agents/skills/review-followup-routing/SKILL.md +98 -98
  170. package/template/.agents/skills/roadmap-strategy/SKILL.md +97 -97
  171. package/template/.agents/skills/security-and-hardening/SKILL.md +349 -349
  172. package/template/.agents/skills/security-and-hardening/security-checklist.md +134 -134
  173. package/template/.agents/skills/security-review/SKILL.md +164 -164
  174. package/template/.agents/skills/seo-fundamentals/SKILL.md +129 -129
  175. package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  176. package/template/.agents/skills/server-management/SKILL.md +161 -161
  177. package/template/.agents/skills/shipping-and-launch/SKILL.md +311 -311
  178. package/template/.agents/skills/silent-failure-audit/SKILL.md +73 -73
  179. package/template/.agents/skills/simplify/SKILL.md +74 -74
  180. package/template/.agents/skills/skill-development/SKILL.md +86 -86
  181. package/template/.agents/skills/spec-driven-development/SKILL.md +207 -207
  182. package/template/.agents/skills/spec-orchestration/SKILL.md +91 -91
  183. package/template/.agents/skills/specialist-agent-routing/SKILL.md +107 -107
  184. package/template/.agents/skills/tailwind-patterns/SKILL.md +269 -269
  185. package/template/.agents/skills/test/SKILL.md +77 -77
  186. package/template/.agents/skills/test-driven-development/SKILL.md +422 -422
  187. package/template/.agents/skills/test-driven-development/testing-patterns.md +236 -236
  188. package/template/.agents/skills/test-execution-and-coverage/SKILL.md +56 -56
  189. package/template/.agents/skills/type-design/SKILL.md +84 -84
  190. package/template/.agents/skills/ui-ux-pro-max/SKILL.md +75 -75
  191. package/template/.agents/skills/using-agent-skills/SKILL.md +171 -171
  192. package/template/.agents/skills/verification-orchestration/SKILL.md +68 -68
  193. package/template/.agents/skills/vulnerability-scanner/SKILL.md +276 -276
  194. package/template/.agents/skills/vulnerability-scanner/checklists.md +121 -121
  195. package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  196. package/template/.agents/skills/wiki/SKILL.md +148 -148
  197. package/template/.agents/skills/workflow-documentation-sync/SKILL.md +87 -87
  198. package/template/.claude/skills/20-spec/SKILL.md +136 -136
  199. package/template/.claude/skills/30-plan/SKILL.md +206 -206
  200. package/template/.claude/skills/40-implement/SKILL.md +152 -152
  201. package/template/.claude/skills/50-verify/SKILL.md +174 -174
  202. package/template/.claude/skills/60-report/SKILL.md +168 -168
  203. package/template/.claude/skills/70-release/SKILL.md +141 -141
  204. package/template/.claude/skills/9arm-skills/README.md +51 -51
  205. package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  206. package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +79 -79
  207. package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  208. package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  209. package/template/.claude/skills/agent/SKILL.md +164 -164
  210. package/template/.claude/skills/api-and-interface-design/SKILL.md +294 -294
  211. package/template/.claude/skills/app-builder/SKILL.md +75 -75
  212. package/template/.claude/skills/app-builder/agent-coordination.md +71 -71
  213. package/template/.claude/skills/app-builder/feature-building.md +53 -53
  214. package/template/.claude/skills/app-builder/project-detection.md +34 -34
  215. package/template/.claude/skills/app-builder/scaffolding.md +118 -118
  216. package/template/.claude/skills/app-builder/tech-stack.md +40 -40
  217. package/template/.claude/skills/app-builder/templates/SKILL.md +39 -39
  218. package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  219. package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  220. package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  221. package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  222. package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  223. package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  224. package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  225. package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  226. package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  227. package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  228. package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  229. package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  230. package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  231. package/template/.claude/skills/architecture/SKILL.md +55 -55
  232. package/template/.claude/skills/architecture/context-discovery.md +43 -43
  233. package/template/.claude/skills/architecture/examples.md +94 -94
  234. package/template/.claude/skills/architecture/pattern-selection.md +68 -68
  235. package/template/.claude/skills/architecture/patterns-reference.md +50 -50
  236. package/template/.claude/skills/architecture/trade-off-analysis.md +77 -77
  237. package/template/.claude/skills/bash-linux/SKILL.md +199 -199
  238. package/template/.claude/skills/behavioral-modes/SKILL.md +242 -242
  239. package/template/.claude/skills/brainstorm/SKILL.md +157 -157
  240. package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +302 -302
  241. package/template/.claude/skills/changelog/SKILL.md +108 -108
  242. package/template/.claude/skills/check-for-updates/SKILL.md +116 -116
  243. package/template/.claude/skills/ci-cd-and-automation/SKILL.md +390 -390
  244. package/template/.claude/skills/code-review-and-quality/SKILL.md +392 -392
  245. package/template/.claude/skills/code-simplification/SKILL.md +331 -331
  246. package/template/.claude/skills/commit/SKILL.md +62 -62
  247. package/template/.claude/skills/competitor-analysis/SKILL.md +66 -66
  248. package/template/.claude/skills/context-engineering/SKILL.md +290 -290
  249. package/template/.claude/skills/database-design/SKILL.md +52 -52
  250. package/template/.claude/skills/database-design/database-selection.md +43 -43
  251. package/template/.claude/skills/database-design/indexing.md +39 -39
  252. package/template/.claude/skills/database-design/migrations.md +48 -48
  253. package/template/.claude/skills/database-design/optimization.md +36 -36
  254. package/template/.claude/skills/database-design/orm-selection.md +30 -30
  255. package/template/.claude/skills/database-design/schema-design.md +56 -56
  256. package/template/.claude/skills/database-design/scripts/schema_validator.py +172 -172
  257. package/template/.claude/skills/debug/SKILL.md +116 -116
  258. package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +298 -298
  259. package/template/.claude/skills/deploy/SKILL.md +90 -90
  260. package/template/.claude/skills/deployment-procedures/SKILL.md +241 -241
  261. package/template/.claude/skills/deprecation-and-migration/SKILL.md +206 -206
  262. package/template/.claude/skills/devflow-concept-intake/SKILL.md +150 -150
  263. package/template/.claude/skills/devflow-concept-intake/agents/openai.yaml +4 -4
  264. package/template/.claude/skills/devflow-concept-intake/references/adoption-proposal-template.md +60 -60
  265. package/template/.claude/skills/devflow-concept-intake/references/concept-report-template.md +47 -47
  266. package/template/.claude/skills/devflow-concept-intake/references/upstream-tracking-template.md +51 -51
  267. package/template/.claude/skills/devflow-wiki/SKILL.md +75 -75
  268. package/template/.claude/skills/documentation-and-adrs/SKILL.md +278 -278
  269. package/template/.claude/skills/english-to-thai-translator/SKILL.md +125 -125
  270. package/template/.claude/skills/followup/SKILL.md +78 -78
  271. package/template/.claude/skills/frontend-ui-engineering/SKILL.md +326 -326
  272. package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  273. package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +300 -300
  274. package/template/.claude/skills/goal/SKILL.md +132 -132
  275. package/template/.claude/skills/help/SKILL.md +242 -242
  276. package/template/.claude/skills/human-review-decisions/SKILL.md +74 -74
  277. package/template/.claude/skills/i18n-localization/SKILL.md +154 -154
  278. package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  279. package/template/.claude/skills/idea-refine/SKILL.md +178 -178
  280. package/template/.claude/skills/idea-refine/examples.md +238 -238
  281. package/template/.claude/skills/idea-refine/frameworks.md +99 -99
  282. package/template/.claude/skills/idea-refine/refinement-criteria.md +113 -113
  283. package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +15 -15
  284. package/template/.claude/skills/incremental-implementation/SKILL.md +248 -248
  285. package/template/.claude/skills/insight/SKILL.md +130 -130
  286. package/template/.claude/skills/insight-capture/SKILL.md +84 -84
  287. package/template/.claude/skills/intelligent-routing/SKILL.md +171 -171
  288. package/template/.claude/skills/issue-triage/SKILL.md +106 -106
  289. package/template/.claude/skills/lint-and-validate/SKILL.md +45 -45
  290. package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  291. package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  292. package/template/.claude/skills/mcp-builder/SKILL.md +176 -176
  293. package/template/.claude/skills/md2html/SKILL.md +154 -154
  294. package/template/.claude/skills/md2html/components.md +505 -505
  295. package/template/.claude/skills/md2html/template.html +1152 -1152
  296. package/template/.claude/skills/merge/SKILL.md +75 -75
  297. package/template/.claude/skills/mobile-design/SKILL.md +394 -394
  298. package/template/.claude/skills/mobile-design/decision-trees.md +516 -516
  299. package/template/.claude/skills/mobile-design/mobile-backend.md +491 -491
  300. package/template/.claude/skills/mobile-design/mobile-color-system.md +420 -420
  301. package/template/.claude/skills/mobile-design/mobile-debugging.md +122 -122
  302. package/template/.claude/skills/mobile-design/mobile-design-thinking.md +357 -357
  303. package/template/.claude/skills/mobile-design/mobile-navigation.md +458 -458
  304. package/template/.claude/skills/mobile-design/mobile-performance.md +767 -767
  305. package/template/.claude/skills/mobile-design/mobile-testing.md +356 -356
  306. package/template/.claude/skills/mobile-design/mobile-typography.md +433 -433
  307. package/template/.claude/skills/mobile-design/platform-android.md +666 -666
  308. package/template/.claude/skills/mobile-design/platform-ios.md +561 -561
  309. package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +670 -670
  310. package/template/.claude/skills/mobile-design/touch-psychology.md +537 -537
  311. package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  312. package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  313. package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  314. package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  315. package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  316. package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  317. package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  318. package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  319. package/template/.claude/skills/nextjs-react-expert/SKILL.md +286 -286
  320. package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  321. package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  322. package/template/.claude/skills/nodejs-best-practices/SKILL.md +333 -333
  323. package/template/.claude/skills/obsidian-bases/SKILL.md +506 -506
  324. package/template/.claude/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -173
  325. package/template/.claude/skills/obsidian-cli/SKILL.md +115 -115
  326. package/template/.claude/skills/obsidian-clipper-template-creator/SKILL.md +73 -73
  327. package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json +51 -51
  328. package/template/.claude/skills/obsidian-clipper-template-creator/assets/recipe-template.json +48 -48
  329. package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +79 -79
  330. package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md +44 -44
  331. package/template/.claude/skills/obsidian-clipper-template-creator/references/filters.md +51 -51
  332. package/template/.claude/skills/obsidian-clipper-template-creator/references/json-schema.md +77 -77
  333. package/template/.claude/skills/obsidian-clipper-template-creator/references/logic.md +67 -67
  334. package/template/.claude/skills/obsidian-clipper-template-creator/references/variables.md +64 -64
  335. package/template/.claude/skills/obsidian-markdown/SKILL.md +205 -205
  336. package/template/.claude/skills/obsidian-markdown/references/CALLOUTS.md +58 -58
  337. package/template/.claude/skills/obsidian-markdown/references/EMBEDS.md +63 -63
  338. package/template/.claude/skills/obsidian-markdown/references/PROPERTIES.md +61 -61
  339. package/template/.claude/skills/package-json-generator/SKILL.md +60 -60
  340. package/template/.claude/skills/package-json-generator/scripts/generate.js +120 -120
  341. package/template/.claude/skills/package-json-generator/scripts/run.sh +19 -19
  342. package/template/.claude/skills/parallel-agents/SKILL.md +144 -144
  343. package/template/.claude/skills/performance-optimization/SKILL.md +299 -299
  344. package/template/.claude/skills/performance-optimization/performance-checklist.md +113 -113
  345. package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +239 -239
  346. package/template/.claude/skills/powershell-windows/SKILL.md +167 -167
  347. package/template/.claude/skills/pr/SKILL.md +92 -92
  348. package/template/.claude/skills/pr-review/SKILL.md +142 -142
  349. package/template/.claude/skills/pr-review-analysis/SKILL.md +89 -89
  350. package/template/.claude/skills/prd/SKILL.md +112 -112
  351. package/template/.claude/skills/preview/SKILL.md +116 -116
  352. package/template/.claude/skills/preview-local-check/SKILL.md +59 -59
  353. package/template/.claude/skills/prompt-addons/SKILL.md +99 -99
  354. package/template/.claude/skills/prp-dev-fastapi/SKILL.md +114 -114
  355. package/template/.claude/skills/prp-dev-multiplatform/SKILL.md +36 -36
  356. package/template/.claude/skills/prp-dev-odoo/SKILL.md +71 -71
  357. package/template/.claude/skills/prp-dev-php/SKILL.md +63 -63
  358. package/template/.claude/skills/prp-sa-ba/SKILL.md +52 -52
  359. package/template/.claude/skills/python-patterns/SKILL.md +441 -441
  360. package/template/.claude/skills/red-team-tactics/SKILL.md +199 -199
  361. package/template/.claude/skills/release-git-operations/SKILL.md +97 -97
  362. package/template/.claude/skills/research/SKILL.md +127 -127
  363. package/template/.claude/skills/review/SKILL.md +55 -55
  364. package/template/.claude/skills/review-followup-routing/SKILL.md +98 -98
  365. package/template/.claude/skills/roadmap-strategy/SKILL.md +97 -97
  366. package/template/.claude/skills/security-and-hardening/SKILL.md +349 -349
  367. package/template/.claude/skills/security-and-hardening/security-checklist.md +134 -134
  368. package/template/.claude/skills/security-review/SKILL.md +164 -164
  369. package/template/.claude/skills/seo-fundamentals/SKILL.md +129 -129
  370. package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  371. package/template/.claude/skills/server-management/SKILL.md +161 -161
  372. package/template/.claude/skills/shipping-and-launch/SKILL.md +311 -311
  373. package/template/.claude/skills/silent-failure-audit/SKILL.md +73 -73
  374. package/template/.claude/skills/simplify/SKILL.md +74 -74
  375. package/template/.claude/skills/skill-development/SKILL.md +86 -86
  376. package/template/.claude/skills/spec-driven-development/SKILL.md +207 -207
  377. package/template/.claude/skills/spec-orchestration/SKILL.md +91 -91
  378. package/template/.claude/skills/specialist-agent-routing/SKILL.md +107 -107
  379. package/template/.claude/skills/tailwind-patterns/SKILL.md +269 -269
  380. package/template/.claude/skills/test/SKILL.md +77 -77
  381. package/template/.claude/skills/test-driven-development/SKILL.md +422 -422
  382. package/template/.claude/skills/test-driven-development/testing-patterns.md +236 -236
  383. package/template/.claude/skills/test-execution-and-coverage/SKILL.md +56 -56
  384. package/template/.claude/skills/type-design/SKILL.md +84 -84
  385. package/template/.claude/skills/ui-ux-pro-max/SKILL.md +75 -75
  386. package/template/.claude/skills/using-agent-skills/SKILL.md +171 -171
  387. package/template/.claude/skills/verification-orchestration/SKILL.md +68 -68
  388. package/template/.claude/skills/vulnerability-scanner/SKILL.md +276 -276
  389. package/template/.claude/skills/vulnerability-scanner/checklists.md +121 -121
  390. package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  391. package/template/.claude/skills/wiki/SKILL.md +148 -148
  392. package/template/.claude/skills/workflow-documentation-sync/SKILL.md +87 -87
  393. package/template/.nexus/nexus-devflow.json +1 -1
  394. package/template/LICENSE +21 -21
@@ -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.