gaia-framework 1.57.0 → 1.57.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 (521) hide show
  1. package/README.md +1 -1
  2. package/bin/gaia-framework.js +27 -19
  3. package/gaia-install.sh +1 -1
  4. package/package.json +15 -11
  5. package/.claude/commands/gaia-a11y-testing.md +0 -17
  6. package/.claude/commands/gaia-action-items.md +0 -23
  7. package/.claude/commands/gaia-add-feature.md +0 -17
  8. package/.claude/commands/gaia-add-stories.md +0 -17
  9. package/.claude/commands/gaia-advanced-elicitation.md +0 -17
  10. package/.claude/commands/gaia-adversarial.md +0 -15
  11. package/.claude/commands/gaia-agent-analyst.md +0 -14
  12. package/.claude/commands/gaia-agent-architect.md +0 -14
  13. package/.claude/commands/gaia-agent-brainstorming.md +0 -14
  14. package/.claude/commands/gaia-agent-data-engineer.md +0 -14
  15. package/.claude/commands/gaia-agent-design-thinking.md +0 -14
  16. package/.claude/commands/gaia-agent-dev-angular.md +0 -14
  17. package/.claude/commands/gaia-agent-dev-flutter.md +0 -14
  18. package/.claude/commands/gaia-agent-dev-go.md +0 -14
  19. package/.claude/commands/gaia-agent-dev-java.md +0 -14
  20. package/.claude/commands/gaia-agent-dev-mobile.md +0 -14
  21. package/.claude/commands/gaia-agent-dev-python.md +0 -14
  22. package/.claude/commands/gaia-agent-dev-typescript.md +0 -14
  23. package/.claude/commands/gaia-agent-devops.md +0 -14
  24. package/.claude/commands/gaia-agent-innovation.md +0 -14
  25. package/.claude/commands/gaia-agent-performance.md +0 -14
  26. package/.claude/commands/gaia-agent-pm.md +0 -14
  27. package/.claude/commands/gaia-agent-presentation.md +0 -14
  28. package/.claude/commands/gaia-agent-problem-solver.md +0 -14
  29. package/.claude/commands/gaia-agent-qa.md +0 -14
  30. package/.claude/commands/gaia-agent-security.md +0 -14
  31. package/.claude/commands/gaia-agent-sm.md +0 -14
  32. package/.claude/commands/gaia-agent-storyteller.md +0 -14
  33. package/.claude/commands/gaia-agent-tech-writer.md +0 -14
  34. package/.claude/commands/gaia-agent-test-architect.md +0 -14
  35. package/.claude/commands/gaia-agent-ux-designer.md +0 -14
  36. package/.claude/commands/gaia-agent-validator.md +0 -14
  37. package/.claude/commands/gaia-atdd.md +0 -17
  38. package/.claude/commands/gaia-brainstorm.md +0 -17
  39. package/.claude/commands/gaia-brainstorming.md +0 -17
  40. package/.claude/commands/gaia-brownfield.md +0 -17
  41. package/.claude/commands/gaia-build-configs.md +0 -22
  42. package/.claude/commands/gaia-change-request.md +0 -11
  43. package/.claude/commands/gaia-changelog.md +0 -16
  44. package/.claude/commands/gaia-check-dod.md +0 -17
  45. package/.claude/commands/gaia-check-review-gate.md +0 -17
  46. package/.claude/commands/gaia-ci-setup.md +0 -17
  47. package/.claude/commands/gaia-code-review.md +0 -17
  48. package/.claude/commands/gaia-correct-course.md +0 -17
  49. package/.claude/commands/gaia-create-arch.md +0 -17
  50. package/.claude/commands/gaia-create-epics.md +0 -17
  51. package/.claude/commands/gaia-create-prd.md +0 -17
  52. package/.claude/commands/gaia-create-story.md +0 -23
  53. package/.claude/commands/gaia-create-ux.md +0 -17
  54. package/.claude/commands/gaia-creative-sprint.md +0 -17
  55. package/.claude/commands/gaia-deploy-checklist.md +0 -17
  56. package/.claude/commands/gaia-design-thinking.md +0 -17
  57. package/.claude/commands/gaia-dev-story.md +0 -23
  58. package/.claude/commands/gaia-document-project.md +0 -17
  59. package/.claude/commands/gaia-domain-research.md +0 -17
  60. package/.claude/commands/gaia-edge-cases.md +0 -15
  61. package/.claude/commands/gaia-edit-arch.md +0 -17
  62. package/.claude/commands/gaia-edit-prd.md +0 -17
  63. package/.claude/commands/gaia-edit-test-plan.md +0 -17
  64. package/.claude/commands/gaia-editorial-prose.md +0 -15
  65. package/.claude/commands/gaia-editorial-structure.md +0 -15
  66. package/.claude/commands/gaia-epic-status.md +0 -17
  67. package/.claude/commands/gaia-fix-story.md +0 -17
  68. package/.claude/commands/gaia-help.md +0 -15
  69. package/.claude/commands/gaia-index-docs.md +0 -15
  70. package/.claude/commands/gaia-infra-design.md +0 -17
  71. package/.claude/commands/gaia-innovation.md +0 -17
  72. package/.claude/commands/gaia-market-research.md +0 -17
  73. package/.claude/commands/gaia-memory-hygiene.md +0 -17
  74. package/.claude/commands/gaia-merge-docs.md +0 -16
  75. package/.claude/commands/gaia-mobile-testing.md +0 -17
  76. package/.claude/commands/gaia-nfr.md +0 -17
  77. package/.claude/commands/gaia-party.md +0 -17
  78. package/.claude/commands/gaia-perf-testing.md +0 -17
  79. package/.claude/commands/gaia-performance-review.md +0 -17
  80. package/.claude/commands/gaia-pitch-deck.md +0 -17
  81. package/.claude/commands/gaia-post-deploy.md +0 -17
  82. package/.claude/commands/gaia-problem-solving.md +0 -17
  83. package/.claude/commands/gaia-product-brief.md +0 -17
  84. package/.claude/commands/gaia-project-context.md +0 -17
  85. package/.claude/commands/gaia-qa-tests.md +0 -17
  86. package/.claude/commands/gaia-quick-dev.md +0 -17
  87. package/.claude/commands/gaia-quick-spec.md +0 -17
  88. package/.claude/commands/gaia-readiness-check.md +0 -17
  89. package/.claude/commands/gaia-refresh-ground-truth.md +0 -17
  90. package/.claude/commands/gaia-release-plan.md +0 -17
  91. package/.claude/commands/gaia-resume.md +0 -25
  92. package/.claude/commands/gaia-retro.md +0 -20
  93. package/.claude/commands/gaia-review-a11y.md +0 -16
  94. package/.claude/commands/gaia-review-api.md +0 -16
  95. package/.claude/commands/gaia-review-deps.md +0 -16
  96. package/.claude/commands/gaia-review-perf.md +0 -16
  97. package/.claude/commands/gaia-review-security.md +0 -16
  98. package/.claude/commands/gaia-rollback-plan.md +0 -17
  99. package/.claude/commands/gaia-run-all-reviews.md +0 -17
  100. package/.claude/commands/gaia-security-review.md +0 -17
  101. package/.claude/commands/gaia-shard-doc.md +0 -15
  102. package/.claude/commands/gaia-slide-deck.md +0 -17
  103. package/.claude/commands/gaia-sprint-plan.md +0 -17
  104. package/.claude/commands/gaia-sprint-status.md +0 -17
  105. package/.claude/commands/gaia-storytelling.md +0 -17
  106. package/.claude/commands/gaia-summarize.md +0 -16
  107. package/.claude/commands/gaia-teach-testing.md +0 -17
  108. package/.claude/commands/gaia-tech-debt-review.md +0 -20
  109. package/.claude/commands/gaia-tech-research.md +0 -17
  110. package/.claude/commands/gaia-test-automate.md +0 -17
  111. package/.claude/commands/gaia-test-design.md +0 -17
  112. package/.claude/commands/gaia-test-framework.md +0 -17
  113. package/.claude/commands/gaia-test-review.md +0 -17
  114. package/.claude/commands/gaia-threat-model.md +0 -17
  115. package/.claude/commands/gaia-trace.md +0 -17
  116. package/.claude/commands/gaia-triage-findings.md +0 -20
  117. package/.claude/commands/gaia-val-validate-plan.md +0 -17
  118. package/.claude/commands/gaia-val-validate.md +0 -17
  119. package/.claude/commands/gaia-validate-framework.md +0 -17
  120. package/.claude/commands/gaia-validate-prd.md +0 -17
  121. package/.claude/commands/gaia-validate-story.md +0 -22
  122. package/.claude/commands/gaia.md +0 -32
  123. package/CLAUDE.md +0 -165
  124. package/_gaia/_config/agent-manifest.csv +0 -29
  125. package/_gaia/_config/agents/CUSTOMIZATION-README.md +0 -117
  126. package/_gaia/_config/files-manifest.csv +0 -30
  127. package/_gaia/_config/gaia-help.csv +0 -82
  128. package/_gaia/_config/global.yaml +0 -45
  129. package/_gaia/_config/lifecycle-sequence.yaml +0 -593
  130. package/_gaia/_config/manifest.yaml +0 -24
  131. package/_gaia/_config/skill-manifest.csv +0 -12
  132. package/_gaia/_config/task-manifest.csv +0 -17
  133. package/_gaia/_config/workflow-manifest.csv +0 -73
  134. package/_gaia/_memory/tier2-results/.gitkeep +0 -0
  135. package/_gaia/_memory/tier2-results/checkpoint-resume-2026-03-24.yaml +0 -6
  136. package/_gaia/_memory/tier2-results/engine-scenarios-2026-03-22.yaml +0 -14
  137. package/_gaia/core/.resolved/.gitkeep +0 -0
  138. package/_gaia/core/agents/orchestrator.md +0 -303
  139. package/_gaia/core/config.yaml +0 -8
  140. package/_gaia/core/engine/error-recovery.xml +0 -28
  141. package/_gaia/core/engine/protocols/discover-inputs.xml +0 -31
  142. package/_gaia/core/engine/protocols/handoff.xml +0 -21
  143. package/_gaia/core/engine/protocols/preflight-check.xml +0 -31
  144. package/_gaia/core/engine/task-runner.xml +0 -63
  145. package/_gaia/core/engine/workflow.xml +0 -225
  146. package/_gaia/core/module-help.csv +0 -21
  147. package/_gaia/core/protocols/agent-specification-protocol.md +0 -103
  148. package/_gaia/core/protocols/review-gate-check.xml +0 -29
  149. package/_gaia/core/protocols/sprint-status-write-safety.xml +0 -35
  150. package/_gaia/core/protocols/status-sync.xml +0 -49
  151. package/_gaia/core/tasks/editorial-review-prose.xml +0 -42
  152. package/_gaia/core/tasks/editorial-review-structure.xml +0 -43
  153. package/_gaia/core/tasks/generate-changelog.xml +0 -35
  154. package/_gaia/core/tasks/help.md +0 -45
  155. package/_gaia/core/tasks/index-docs.xml +0 -46
  156. package/_gaia/core/tasks/merge-docs.xml +0 -34
  157. package/_gaia/core/tasks/review-accessibility.xml +0 -47
  158. package/_gaia/core/tasks/review-adversarial.xml +0 -55
  159. package/_gaia/core/tasks/review-api-design.xml +0 -38
  160. package/_gaia/core/tasks/review-dependency-audit.xml +0 -38
  161. package/_gaia/core/tasks/review-edge-case-hunter.xml +0 -52
  162. package/_gaia/core/tasks/review-performance.xml +0 -49
  163. package/_gaia/core/tasks/review-security.xml +0 -37
  164. package/_gaia/core/tasks/shard-doc.xml +0 -49
  165. package/_gaia/core/tasks/summarize-doc.xml +0 -33
  166. package/_gaia/core/tasks/validate-framework.xml +0 -66
  167. package/_gaia/core/workflows/brainstorming/steps/step-01-session-setup.md +0 -7
  168. package/_gaia/core/workflows/brainstorming/steps/step-02-technique-selection.md +0 -20
  169. package/_gaia/core/workflows/brainstorming/steps/step-03-technique-execution.md +0 -11
  170. package/_gaia/core/workflows/brainstorming/steps/step-04-idea-organization.md +0 -14
  171. package/_gaia/core/workflows/brainstorming/template.md +0 -38
  172. package/_gaia/core/workflows/brainstorming/workflow.yaml +0 -26
  173. package/_gaia/core/workflows/party-mode/steps/step-01-agent-loading.md +0 -11
  174. package/_gaia/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +0 -16
  175. package/_gaia/core/workflows/party-mode/steps/step-03-graceful-exit.md +0 -10
  176. package/_gaia/core/workflows/party-mode/workflow.yaml +0 -23
  177. package/_gaia/creative/.resolved/.gitkeep +0 -0
  178. package/_gaia/creative/agents/brainstorming-coach.md +0 -93
  179. package/_gaia/creative/agents/design-thinking-coach.md +0 -91
  180. package/_gaia/creative/agents/innovation-strategist.md +0 -89
  181. package/_gaia/creative/agents/presentation-designer.md +0 -99
  182. package/_gaia/creative/agents/problem-solver.md +0 -90
  183. package/_gaia/creative/agents/storyteller.md +0 -90
  184. package/_gaia/creative/config.yaml +0 -8
  185. package/_gaia/creative/data/design-methods.csv +0 -28
  186. package/_gaia/creative/data/innovation-frameworks.csv +0 -15
  187. package/_gaia/creative/data/solving-methods.csv +0 -14
  188. package/_gaia/creative/data/story-types.csv +0 -12
  189. package/_gaia/creative/module-help.csv +0 -8
  190. package/_gaia/creative/teams/creative-squad.yaml +0 -10
  191. package/_gaia/creative/workflows/creative-sprint/checklist.md +0 -10
  192. package/_gaia/creative/workflows/creative-sprint/instructions.xml +0 -40
  193. package/_gaia/creative/workflows/creative-sprint/workflow.yaml +0 -11
  194. package/_gaia/creative/workflows/design-thinking/checklist.md +0 -25
  195. package/_gaia/creative/workflows/design-thinking/instructions.xml +0 -38
  196. package/_gaia/creative/workflows/design-thinking/workflow.yaml +0 -13
  197. package/_gaia/creative/workflows/innovation-strategy/checklist.md +0 -26
  198. package/_gaia/creative/workflows/innovation-strategy/instructions.xml +0 -34
  199. package/_gaia/creative/workflows/innovation-strategy/workflow.yaml +0 -13
  200. package/_gaia/creative/workflows/pitch-deck/checklist.md +0 -22
  201. package/_gaia/creative/workflows/pitch-deck/instructions.xml +0 -49
  202. package/_gaia/creative/workflows/pitch-deck/workflow.yaml +0 -15
  203. package/_gaia/creative/workflows/problem-solving/checklist.md +0 -26
  204. package/_gaia/creative/workflows/problem-solving/instructions.xml +0 -39
  205. package/_gaia/creative/workflows/problem-solving/workflow.yaml +0 -13
  206. package/_gaia/creative/workflows/slide-deck/checklist.md +0 -21
  207. package/_gaia/creative/workflows/slide-deck/instructions.xml +0 -39
  208. package/_gaia/creative/workflows/slide-deck/workflow.yaml +0 -15
  209. package/_gaia/creative/workflows/storytelling/checklist.md +0 -26
  210. package/_gaia/creative/workflows/storytelling/instructions.xml +0 -38
  211. package/_gaia/creative/workflows/storytelling/workflow.yaml +0 -13
  212. package/_gaia/dev/agents/_base-dev.md +0 -180
  213. package/_gaia/dev/agents/angular-dev.md +0 -70
  214. package/_gaia/dev/agents/flutter-dev.md +0 -70
  215. package/_gaia/dev/agents/go-dev.md +0 -72
  216. package/_gaia/dev/agents/java-dev.md +0 -70
  217. package/_gaia/dev/agents/mobile-dev.md +0 -70
  218. package/_gaia/dev/agents/python-dev.md +0 -70
  219. package/_gaia/dev/agents/typescript-dev.md +0 -70
  220. package/_gaia/dev/config.yaml +0 -11
  221. package/_gaia/dev/knowledge/_index.csv +0 -25
  222. package/_gaia/dev/knowledge/angular/angular-conventions.md +0 -119
  223. package/_gaia/dev/knowledge/angular/angular-patterns.md +0 -126
  224. package/_gaia/dev/knowledge/angular/ngrx-state.md +0 -124
  225. package/_gaia/dev/knowledge/angular/rxjs-patterns.md +0 -119
  226. package/_gaia/dev/knowledge/flutter/dart-conventions.md +0 -143
  227. package/_gaia/dev/knowledge/flutter/platform-channels.md +0 -144
  228. package/_gaia/dev/knowledge/flutter/state-management.md +0 -144
  229. package/_gaia/dev/knowledge/flutter/widget-patterns.md +0 -134
  230. package/_gaia/dev/knowledge/go/gin-fiber-patterns.md +0 -40
  231. package/_gaia/dev/knowledge/go/go-conventions.md +0 -54
  232. package/_gaia/dev/knowledge/go/go-stdlib-patterns.md +0 -39
  233. package/_gaia/dev/knowledge/go/go-testing-patterns.md +0 -39
  234. package/_gaia/dev/knowledge/java/jpa-patterns.md +0 -136
  235. package/_gaia/dev/knowledge/java/maven-gradle.md +0 -189
  236. package/_gaia/dev/knowledge/java/microservices.md +0 -159
  237. package/_gaia/dev/knowledge/java/spring-boot-patterns.md +0 -160
  238. package/_gaia/dev/knowledge/mobile/kotlin-patterns.md +0 -193
  239. package/_gaia/dev/knowledge/mobile/mobile-testing.md +0 -186
  240. package/_gaia/dev/knowledge/mobile/react-native-patterns.md +0 -162
  241. package/_gaia/dev/knowledge/mobile/swift-patterns.md +0 -190
  242. package/_gaia/dev/knowledge/python/data-pipelines.md +0 -169
  243. package/_gaia/dev/knowledge/python/django-patterns.md +0 -145
  244. package/_gaia/dev/knowledge/python/fastapi-patterns.md +0 -164
  245. package/_gaia/dev/knowledge/python/python-conventions.md +0 -170
  246. package/_gaia/dev/knowledge/typescript/express-patterns.md +0 -188
  247. package/_gaia/dev/knowledge/typescript/nextjs-patterns.md +0 -166
  248. package/_gaia/dev/knowledge/typescript/react-patterns.md +0 -176
  249. package/_gaia/dev/knowledge/typescript/ts-conventions.md +0 -133
  250. package/_gaia/dev/module-help.csv +0 -10
  251. package/_gaia/dev/skills/_skill-index.yaml +0 -55
  252. package/_gaia/dev/skills/api-design.md +0 -229
  253. package/_gaia/dev/skills/code-review-standards.md +0 -226
  254. package/_gaia/dev/skills/database-design.md +0 -172
  255. package/_gaia/dev/skills/docker-workflow.md +0 -222
  256. package/_gaia/dev/skills/documentation-standards.md +0 -256
  257. package/_gaia/dev/skills/git-workflow.md +0 -157
  258. package/_gaia/dev/skills/security-basics.md +0 -230
  259. package/_gaia/dev/skills/testing-patterns.md +0 -232
  260. package/_gaia/lifecycle/.resolved/.gitkeep +0 -0
  261. package/_gaia/lifecycle/agents/analyst.md +0 -104
  262. package/_gaia/lifecycle/agents/architect.md +0 -109
  263. package/_gaia/lifecycle/agents/data-engineer.md +0 -99
  264. package/_gaia/lifecycle/agents/devops.md +0 -110
  265. package/_gaia/lifecycle/agents/performance.md +0 -92
  266. package/_gaia/lifecycle/agents/pm.md +0 -112
  267. package/_gaia/lifecycle/agents/qa.md +0 -89
  268. package/_gaia/lifecycle/agents/security.md +0 -108
  269. package/_gaia/lifecycle/agents/sm.md +0 -119
  270. package/_gaia/lifecycle/agents/tech-writer.md +0 -94
  271. package/_gaia/lifecycle/agents/ux-designer.md +0 -94
  272. package/_gaia/lifecycle/agents/validator.md +0 -189
  273. package/_gaia/lifecycle/config.yaml +0 -14
  274. package/_gaia/lifecycle/module-help.csv +0 -39
  275. package/_gaia/lifecycle/skills/ground-truth-management.md +0 -252
  276. package/_gaia/lifecycle/skills/memory-management.md +0 -322
  277. package/_gaia/lifecycle/skills/validation-patterns.md +0 -230
  278. package/_gaia/lifecycle/teams/team-data-intensive.yaml +0 -12
  279. package/_gaia/lifecycle/teams/team-enterprise.yaml +0 -16
  280. package/_gaia/lifecycle/teams/team-full.yaml +0 -13
  281. package/_gaia/lifecycle/teams/team-implementation.yaml +0 -8
  282. package/_gaia/lifecycle/teams/team-planning.yaml +0 -9
  283. package/_gaia/lifecycle/teams/team-quick-ship.yaml +0 -6
  284. package/_gaia/lifecycle/teams/team-security-focused.yaml +0 -13
  285. package/_gaia/lifecycle/templates/api-documentation-template.md +0 -112
  286. package/_gaia/lifecycle/templates/architecture-template.md +0 -65
  287. package/_gaia/lifecycle/templates/brownfield-architecture-template.md +0 -198
  288. package/_gaia/lifecycle/templates/brownfield-assessment-template.md +0 -78
  289. package/_gaia/lifecycle/templates/brownfield-onboarding-template.md +0 -160
  290. package/_gaia/lifecycle/templates/dependency-map-template.md +0 -73
  291. package/_gaia/lifecycle/templates/deployment-template.md +0 -52
  292. package/_gaia/lifecycle/templates/epic-status-template.md +0 -64
  293. package/_gaia/lifecycle/templates/event-catalog-template.md +0 -78
  294. package/_gaia/lifecycle/templates/nfr-assessment-template.md +0 -96
  295. package/_gaia/lifecycle/templates/prd-template.md +0 -83
  296. package/_gaia/lifecycle/templates/product-brief-template.md +0 -48
  297. package/_gaia/lifecycle/templates/review-template.md +0 -47
  298. package/_gaia/lifecycle/templates/sprint-plan-template.md +0 -45
  299. package/_gaia/lifecycle/templates/story-template.md +0 -118
  300. package/_gaia/lifecycle/templates/tech-debt-dashboard-template.md +0 -71
  301. package/_gaia/lifecycle/templates/test-plan-template.md +0 -56
  302. package/_gaia/lifecycle/templates/ux-design-assessment-template.md +0 -122
  303. package/_gaia/lifecycle/workflows/1-analysis/advanced-elicitation/instructions.xml +0 -44
  304. package/_gaia/lifecycle/workflows/1-analysis/advanced-elicitation/methods.csv +0 -9
  305. package/_gaia/lifecycle/workflows/1-analysis/advanced-elicitation/workflow.yaml +0 -33
  306. package/_gaia/lifecycle/workflows/1-analysis/brainstorm-project/checklist.md +0 -24
  307. package/_gaia/lifecycle/workflows/1-analysis/brainstorm-project/instructions.xml +0 -39
  308. package/_gaia/lifecycle/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -19
  309. package/_gaia/lifecycle/workflows/1-analysis/create-product-brief/checklist.md +0 -27
  310. package/_gaia/lifecycle/workflows/1-analysis/create-product-brief/instructions.xml +0 -57
  311. package/_gaia/lifecycle/workflows/1-analysis/create-product-brief/workflow.yaml +0 -38
  312. package/_gaia/lifecycle/workflows/1-analysis/domain-research/checklist.md +0 -22
  313. package/_gaia/lifecycle/workflows/1-analysis/domain-research/instructions.xml +0 -34
  314. package/_gaia/lifecycle/workflows/1-analysis/domain-research/workflow.yaml +0 -15
  315. package/_gaia/lifecycle/workflows/1-analysis/market-research/checklist.md +0 -28
  316. package/_gaia/lifecycle/workflows/1-analysis/market-research/instructions.xml +0 -42
  317. package/_gaia/lifecycle/workflows/1-analysis/market-research/workflow.yaml +0 -15
  318. package/_gaia/lifecycle/workflows/1-analysis/technical-research/checklist.md +0 -22
  319. package/_gaia/lifecycle/workflows/1-analysis/technical-research/instructions.xml +0 -34
  320. package/_gaia/lifecycle/workflows/1-analysis/technical-research/workflow.yaml +0 -15
  321. package/_gaia/lifecycle/workflows/2-planning/create-prd/checklist.md +0 -36
  322. package/_gaia/lifecycle/workflows/2-planning/create-prd/instructions.xml +0 -80
  323. package/_gaia/lifecycle/workflows/2-planning/create-prd/workflow.yaml +0 -23
  324. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/checklist.md +0 -26
  325. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/instructions.xml +0 -49
  326. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/workflow.yaml +0 -23
  327. package/_gaia/lifecycle/workflows/2-planning/edit-prd/checklist.md +0 -17
  328. package/_gaia/lifecycle/workflows/2-planning/edit-prd/instructions.xml +0 -50
  329. package/_gaia/lifecycle/workflows/2-planning/edit-prd/workflow.yaml +0 -22
  330. package/_gaia/lifecycle/workflows/2-planning/validate-prd/checklist.md +0 -12
  331. package/_gaia/lifecycle/workflows/2-planning/validate-prd/instructions.xml +0 -52
  332. package/_gaia/lifecycle/workflows/2-planning/validate-prd/workflow.yaml +0 -19
  333. package/_gaia/lifecycle/workflows/3-solutioning/create-architecture/checklist.md +0 -32
  334. package/_gaia/lifecycle/workflows/3-solutioning/create-architecture/instructions.xml +0 -100
  335. package/_gaia/lifecycle/workflows/3-solutioning/create-architecture/workflow.yaml +0 -41
  336. package/_gaia/lifecycle/workflows/3-solutioning/create-epics-stories/checklist.md +0 -30
  337. package/_gaia/lifecycle/workflows/3-solutioning/create-epics-stories/instructions.xml +0 -86
  338. package/_gaia/lifecycle/workflows/3-solutioning/create-epics-stories/workflow.yaml +0 -34
  339. package/_gaia/lifecycle/workflows/3-solutioning/edit-architecture/checklist.md +0 -24
  340. package/_gaia/lifecycle/workflows/3-solutioning/edit-architecture/instructions.xml +0 -91
  341. package/_gaia/lifecycle/workflows/3-solutioning/edit-architecture/workflow.yaml +0 -32
  342. package/_gaia/lifecycle/workflows/3-solutioning/implementation-readiness/checklist.md +0 -66
  343. package/_gaia/lifecycle/workflows/3-solutioning/implementation-readiness/instructions.xml +0 -160
  344. package/_gaia/lifecycle/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -48
  345. package/_gaia/lifecycle/workflows/3-solutioning/infrastructure-design/checklist.md +0 -24
  346. package/_gaia/lifecycle/workflows/3-solutioning/infrastructure-design/instructions.xml +0 -44
  347. package/_gaia/lifecycle/workflows/3-solutioning/infrastructure-design/workflow.yaml +0 -23
  348. package/_gaia/lifecycle/workflows/3-solutioning/security-threat-model/checklist.md +0 -24
  349. package/_gaia/lifecycle/workflows/3-solutioning/security-threat-model/instructions.xml +0 -55
  350. package/_gaia/lifecycle/workflows/3-solutioning/security-threat-model/workflow.yaml +0 -23
  351. package/_gaia/lifecycle/workflows/4-implementation/action-items/instructions.xml +0 -131
  352. package/_gaia/lifecycle/workflows/4-implementation/action-items/workflow.yaml +0 -19
  353. package/_gaia/lifecycle/workflows/4-implementation/add-stories/checklist.md +0 -27
  354. package/_gaia/lifecycle/workflows/4-implementation/add-stories/instructions.xml +0 -100
  355. package/_gaia/lifecycle/workflows/4-implementation/add-stories/workflow.yaml +0 -35
  356. package/_gaia/lifecycle/workflows/4-implementation/change-request/checklist.md +0 -25
  357. package/_gaia/lifecycle/workflows/4-implementation/change-request/instructions.xml +0 -123
  358. package/_gaia/lifecycle/workflows/4-implementation/change-request/workflow.yaml +0 -38
  359. package/_gaia/lifecycle/workflows/4-implementation/check-dod/checklist.md +0 -18
  360. package/_gaia/lifecycle/workflows/4-implementation/check-dod/instructions.xml +0 -54
  361. package/_gaia/lifecycle/workflows/4-implementation/check-dod/workflow.yaml +0 -19
  362. package/_gaia/lifecycle/workflows/4-implementation/check-review-gate/checklist.md +0 -18
  363. package/_gaia/lifecycle/workflows/4-implementation/check-review-gate/instructions.xml +0 -53
  364. package/_gaia/lifecycle/workflows/4-implementation/check-review-gate/workflow.yaml +0 -19
  365. package/_gaia/lifecycle/workflows/4-implementation/code-review/checklist.md +0 -18
  366. package/_gaia/lifecycle/workflows/4-implementation/code-review/instructions.xml +0 -50
  367. package/_gaia/lifecycle/workflows/4-implementation/code-review/workflow.yaml +0 -24
  368. package/_gaia/lifecycle/workflows/4-implementation/correct-course/checklist.md +0 -21
  369. package/_gaia/lifecycle/workflows/4-implementation/correct-course/instructions.xml +0 -63
  370. package/_gaia/lifecycle/workflows/4-implementation/correct-course/workflow.yaml +0 -25
  371. package/_gaia/lifecycle/workflows/4-implementation/create-story/checklist.md +0 -38
  372. package/_gaia/lifecycle/workflows/4-implementation/create-story/instructions.xml +0 -194
  373. package/_gaia/lifecycle/workflows/4-implementation/create-story/workflow.yaml +0 -26
  374. package/_gaia/lifecycle/workflows/4-implementation/dev-story/checklist.md +0 -26
  375. package/_gaia/lifecycle/workflows/4-implementation/dev-story/instructions.xml +0 -268
  376. package/_gaia/lifecycle/workflows/4-implementation/dev-story/workflow.yaml +0 -51
  377. package/_gaia/lifecycle/workflows/4-implementation/epic-status/checklist.md +0 -25
  378. package/_gaia/lifecycle/workflows/4-implementation/epic-status/instructions.xml +0 -62
  379. package/_gaia/lifecycle/workflows/4-implementation/epic-status/workflow.yaml +0 -24
  380. package/_gaia/lifecycle/workflows/4-implementation/fix-story/checklist.md +0 -12
  381. package/_gaia/lifecycle/workflows/4-implementation/fix-story/instructions.xml +0 -67
  382. package/_gaia/lifecycle/workflows/4-implementation/fix-story/workflow.yaml +0 -17
  383. package/_gaia/lifecycle/workflows/4-implementation/qa-generate-tests/checklist.md +0 -19
  384. package/_gaia/lifecycle/workflows/4-implementation/qa-generate-tests/instructions.xml +0 -52
  385. package/_gaia/lifecycle/workflows/4-implementation/qa-generate-tests/workflow.yaml +0 -20
  386. package/_gaia/lifecycle/workflows/4-implementation/retrospective/checklist.md +0 -15
  387. package/_gaia/lifecycle/workflows/4-implementation/retrospective/instructions.xml +0 -164
  388. package/_gaia/lifecycle/workflows/4-implementation/retrospective/workflow.yaml +0 -30
  389. package/_gaia/lifecycle/workflows/4-implementation/run-all-reviews/checklist.md +0 -14
  390. package/_gaia/lifecycle/workflows/4-implementation/run-all-reviews/instructions.xml +0 -78
  391. package/_gaia/lifecycle/workflows/4-implementation/run-all-reviews/workflow.yaml +0 -16
  392. package/_gaia/lifecycle/workflows/4-implementation/security-review/checklist.md +0 -29
  393. package/_gaia/lifecycle/workflows/4-implementation/security-review/instructions.xml +0 -80
  394. package/_gaia/lifecycle/workflows/4-implementation/security-review/workflow.yaml +0 -27
  395. package/_gaia/lifecycle/workflows/4-implementation/sprint-planning/checklist.md +0 -29
  396. package/_gaia/lifecycle/workflows/4-implementation/sprint-planning/instructions.xml +0 -140
  397. package/_gaia/lifecycle/workflows/4-implementation/sprint-planning/workflow.yaml +0 -33
  398. package/_gaia/lifecycle/workflows/4-implementation/sprint-status/checklist.md +0 -18
  399. package/_gaia/lifecycle/workflows/4-implementation/sprint-status/instructions.xml +0 -36
  400. package/_gaia/lifecycle/workflows/4-implementation/sprint-status/workflow.yaml +0 -19
  401. package/_gaia/lifecycle/workflows/4-implementation/tech-debt-review/checklist.md +0 -30
  402. package/_gaia/lifecycle/workflows/4-implementation/tech-debt-review/instructions.xml +0 -147
  403. package/_gaia/lifecycle/workflows/4-implementation/tech-debt-review/workflow.yaml +0 -24
  404. package/_gaia/lifecycle/workflows/4-implementation/triage-findings/checklist.md +0 -17
  405. package/_gaia/lifecycle/workflows/4-implementation/triage-findings/instructions.xml +0 -124
  406. package/_gaia/lifecycle/workflows/4-implementation/triage-findings/workflow.yaml +0 -15
  407. package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/checklist.md +0 -48
  408. package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/instructions.xml +0 -125
  409. package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/workflow.yaml +0 -31
  410. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/checklist.md +0 -54
  411. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/instructions.xml +0 -147
  412. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/test-structure.sh +0 -116
  413. package/_gaia/lifecycle/workflows/4-implementation/val-validate-artifact/workflow.yaml +0 -29
  414. package/_gaia/lifecycle/workflows/4-implementation/val-validate-plan/checklist.md +0 -34
  415. package/_gaia/lifecycle/workflows/4-implementation/val-validate-plan/instructions.xml +0 -162
  416. package/_gaia/lifecycle/workflows/4-implementation/val-validate-plan/workflow.yaml +0 -39
  417. package/_gaia/lifecycle/workflows/4-implementation/validate-story/checklist.md +0 -23
  418. package/_gaia/lifecycle/workflows/4-implementation/validate-story/instructions.xml +0 -146
  419. package/_gaia/lifecycle/workflows/4-implementation/validate-story/workflow.yaml +0 -25
  420. package/_gaia/lifecycle/workflows/5-deployment/deployment-checklist/checklist.md +0 -29
  421. package/_gaia/lifecycle/workflows/5-deployment/deployment-checklist/instructions.xml +0 -59
  422. package/_gaia/lifecycle/workflows/5-deployment/deployment-checklist/workflow.yaml +0 -39
  423. package/_gaia/lifecycle/workflows/5-deployment/post-deploy-verify/checklist.md +0 -19
  424. package/_gaia/lifecycle/workflows/5-deployment/post-deploy-verify/instructions.xml +0 -33
  425. package/_gaia/lifecycle/workflows/5-deployment/post-deploy-verify/workflow.yaml +0 -15
  426. package/_gaia/lifecycle/workflows/5-deployment/release-plan/checklist.md +0 -20
  427. package/_gaia/lifecycle/workflows/5-deployment/release-plan/instructions.xml +0 -33
  428. package/_gaia/lifecycle/workflows/5-deployment/release-plan/workflow.yaml +0 -19
  429. package/_gaia/lifecycle/workflows/5-deployment/rollback-plan/checklist.md +0 -20
  430. package/_gaia/lifecycle/workflows/5-deployment/rollback-plan/instructions.xml +0 -33
  431. package/_gaia/lifecycle/workflows/5-deployment/rollback-plan/workflow.yaml +0 -15
  432. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/checklist.md +0 -52
  433. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/instructions.xml +0 -122
  434. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/test-step7.sh +0 -149
  435. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/workflow.yaml +0 -33
  436. package/_gaia/lifecycle/workflows/anytime/document-project/checklist.md +0 -11
  437. package/_gaia/lifecycle/workflows/anytime/document-project/instructions.xml +0 -26
  438. package/_gaia/lifecycle/workflows/anytime/document-project/workflow.yaml +0 -15
  439. package/_gaia/lifecycle/workflows/anytime/generate-project-context/checklist.md +0 -11
  440. package/_gaia/lifecycle/workflows/anytime/generate-project-context/instructions.xml +0 -22
  441. package/_gaia/lifecycle/workflows/anytime/generate-project-context/workflow.yaml +0 -15
  442. package/_gaia/lifecycle/workflows/anytime/memory-hygiene/checklist.md +0 -24
  443. package/_gaia/lifecycle/workflows/anytime/memory-hygiene/instructions.xml +0 -108
  444. package/_gaia/lifecycle/workflows/anytime/memory-hygiene/workflow.yaml +0 -15
  445. package/_gaia/lifecycle/workflows/anytime/performance-review/checklist.md +0 -25
  446. package/_gaia/lifecycle/workflows/anytime/performance-review/instructions.xml +0 -62
  447. package/_gaia/lifecycle/workflows/anytime/performance-review/workflow.yaml +0 -15
  448. package/_gaia/lifecycle/workflows/cross-phase/add-feature/checklist.md +0 -30
  449. package/_gaia/lifecycle/workflows/cross-phase/add-feature/instructions.xml +0 -85
  450. package/_gaia/lifecycle/workflows/cross-phase/add-feature/workflow.yaml +0 -37
  451. package/_gaia/lifecycle/workflows/quick-flow/quick-dev/checklist.md +0 -11
  452. package/_gaia/lifecycle/workflows/quick-flow/quick-dev/instructions.xml +0 -26
  453. package/_gaia/lifecycle/workflows/quick-flow/quick-dev/workflow.yaml +0 -19
  454. package/_gaia/lifecycle/workflows/quick-flow/quick-spec/checklist.md +0 -13
  455. package/_gaia/lifecycle/workflows/quick-flow/quick-spec/instructions.xml +0 -27
  456. package/_gaia/lifecycle/workflows/quick-flow/quick-spec/workflow.yaml +0 -15
  457. package/_gaia/testing/.resolved/.gitkeep +0 -0
  458. package/_gaia/testing/agents/test-architect.md +0 -131
  459. package/_gaia/testing/config.yaml +0 -8
  460. package/_gaia/testing/knowledge/_index.csv +0 -22
  461. package/_gaia/testing/knowledge/accessibility/axe-core-patterns.md +0 -177
  462. package/_gaia/testing/knowledge/accessibility/wcag-checks.md +0 -191
  463. package/_gaia/testing/knowledge/core/deterministic-testing.md +0 -167
  464. package/_gaia/testing/knowledge/core/fixture-architecture.md +0 -131
  465. package/_gaia/testing/knowledge/core/test-isolation.md +0 -142
  466. package/_gaia/testing/knowledge/core/test-pyramid.md +0 -129
  467. package/_gaia/testing/knowledge/extended/api-testing-patterns.md +0 -196
  468. package/_gaia/testing/knowledge/extended/data-factories.md +0 -158
  469. package/_gaia/testing/knowledge/extended/risk-governance.md +0 -119
  470. package/_gaia/testing/knowledge/extended/selector-resilience.md +0 -109
  471. package/_gaia/testing/knowledge/mobile-testing/appium-patterns.md +0 -164
  472. package/_gaia/testing/knowledge/mobile-testing/react-native-testing.md +0 -193
  473. package/_gaia/testing/knowledge/mobile-testing/responsive-testing.md +0 -177
  474. package/_gaia/testing/knowledge/performance/k6-patterns.md +0 -200
  475. package/_gaia/testing/knowledge/performance/lighthouse-ci.md +0 -158
  476. package/_gaia/testing/knowledge/specialized/contract-testing.md +0 -173
  477. package/_gaia/testing/knowledge/specialized/test-healing.md +0 -129
  478. package/_gaia/testing/knowledge/specialized/visual-testing.md +0 -129
  479. package/_gaia/testing/knowledge/unit-testing/jest-vitest-patterns.md +0 -193
  480. package/_gaia/testing/knowledge/unit-testing/junit5-patterns.md +0 -200
  481. package/_gaia/testing/knowledge/unit-testing/pytest-patterns.md +0 -185
  482. package/_gaia/testing/module-help.csv +0 -13
  483. package/_gaia/testing/workflows/accessibility-testing/checklist.md +0 -12
  484. package/_gaia/testing/workflows/accessibility-testing/instructions.xml +0 -41
  485. package/_gaia/testing/workflows/accessibility-testing/workflow.yaml +0 -13
  486. package/_gaia/testing/workflows/atdd/checklist.md +0 -6
  487. package/_gaia/testing/workflows/atdd/instructions.xml +0 -36
  488. package/_gaia/testing/workflows/atdd/workflow.yaml +0 -22
  489. package/_gaia/testing/workflows/ci-setup/checklist.md +0 -9
  490. package/_gaia/testing/workflows/ci-setup/instructions.xml +0 -43
  491. package/_gaia/testing/workflows/ci-setup/workflow.yaml +0 -11
  492. package/_gaia/testing/workflows/edit-test-plan/checklist.md +0 -20
  493. package/_gaia/testing/workflows/edit-test-plan/instructions.xml +0 -65
  494. package/_gaia/testing/workflows/edit-test-plan/workflow.yaml +0 -35
  495. package/_gaia/testing/workflows/mobile-testing/checklist.md +0 -13
  496. package/_gaia/testing/workflows/mobile-testing/instructions.xml +0 -41
  497. package/_gaia/testing/workflows/mobile-testing/workflow.yaml +0 -11
  498. package/_gaia/testing/workflows/nfr-assessment/checklist.md +0 -7
  499. package/_gaia/testing/workflows/nfr-assessment/instructions.xml +0 -26
  500. package/_gaia/testing/workflows/nfr-assessment/workflow.yaml +0 -11
  501. package/_gaia/testing/workflows/performance-testing/checklist.md +0 -11
  502. package/_gaia/testing/workflows/performance-testing/instructions.xml +0 -41
  503. package/_gaia/testing/workflows/performance-testing/workflow.yaml +0 -11
  504. package/_gaia/testing/workflows/teach-me-testing/checklist.md +0 -6
  505. package/_gaia/testing/workflows/teach-me-testing/instructions.xml +0 -28
  506. package/_gaia/testing/workflows/teach-me-testing/workflow.yaml +0 -12
  507. package/_gaia/testing/workflows/test-automation/checklist.md +0 -6
  508. package/_gaia/testing/workflows/test-automation/instructions.xml +0 -49
  509. package/_gaia/testing/workflows/test-automation/workflow.yaml +0 -11
  510. package/_gaia/testing/workflows/test-design/checklist.md +0 -9
  511. package/_gaia/testing/workflows/test-design/instructions.xml +0 -47
  512. package/_gaia/testing/workflows/test-design/workflow.yaml +0 -11
  513. package/_gaia/testing/workflows/test-framework/checklist.md +0 -8
  514. package/_gaia/testing/workflows/test-framework/instructions.xml +0 -25
  515. package/_gaia/testing/workflows/test-framework/workflow.yaml +0 -11
  516. package/_gaia/testing/workflows/test-review/checklist.md +0 -9
  517. package/_gaia/testing/workflows/test-review/instructions.xml +0 -51
  518. package/_gaia/testing/workflows/test-review/workflow.yaml +0 -11
  519. package/_gaia/testing/workflows/traceability/checklist.md +0 -6
  520. package/_gaia/testing/workflows/traceability/instructions.xml +0 -49
  521. package/_gaia/testing/workflows/traceability/workflow.yaml +0 -21
@@ -1,164 +0,0 @@
1
- ---
2
- name: appium-patterns
3
- tier: mobile-testing
4
- version: '1.0'
5
- ---
6
-
7
- # Appium Patterns
8
-
9
- ## Principle
10
-
11
- Appium provides cross-platform mobile test automation using the WebDriver protocol.
12
- Write tests once against a standard API, then run them on iOS and Android with
13
- platform-specific capabilities. The Page Object Model keeps tests maintainable
14
- as the app evolves.
15
-
16
- ## Rationale
17
-
18
- Native mobile apps have platform-specific UI frameworks (UIKit, Jetpack Compose) that
19
- require different automation approaches. Appium abstracts these differences behind a
20
- unified API, enabling shared test logic with platform-specific configuration. This
21
- reduces maintenance overhead for cross-platform apps.
22
-
23
- ## Pattern Examples
24
-
25
- ### Desired Capabilities
26
-
27
- ```javascript
28
- // Android
29
- const androidCaps = {
30
- platformName: 'Android',
31
- 'appium:automationName': 'UiAutomator2',
32
- 'appium:deviceName': 'Pixel 6',
33
- 'appium:platformVersion': '13',
34
- 'appium:app': '/path/to/app.apk',
35
- 'appium:noReset': false,
36
- };
37
-
38
- // iOS
39
- const iosCaps = {
40
- platformName: 'iOS',
41
- 'appium:automationName': 'XCUITest',
42
- 'appium:deviceName': 'iPhone 14',
43
- 'appium:platformVersion': '16.4',
44
- 'appium:app': '/path/to/app.ipa',
45
- 'appium:noReset': false,
46
- };
47
- ```
48
-
49
- ### Element Location Strategies
50
-
51
- ```javascript
52
- // Accessibility ID — preferred, cross-platform
53
- const loginButton = await driver.$('~login-button');
54
-
55
- // Resource ID (Android)
56
- const emailField = await driver.$('android=new UiSelector().resourceId("email-input")');
57
-
58
- // iOS predicate
59
- const submitBtn = await driver.$('-ios predicate string:name == "Submit"');
60
-
61
- // XPath — last resort, fragile
62
- const header = await driver.$('//android.widget.TextView[@text="Welcome"]');
63
- ```
64
-
65
- ### Page Object Model
66
-
67
- ```typescript
68
- class LoginPage {
69
- get emailInput() { return $('~email-input'); }
70
- get passwordInput() { return $('~password-input'); }
71
- get loginButton() { return $('~login-button'); }
72
- get errorMessage() { return $('~error-message'); }
73
-
74
- async login(email: string, password: string) {
75
- await this.emailInput.setValue(email);
76
- await this.passwordInput.setValue(password);
77
- await this.loginButton.click();
78
- }
79
-
80
- async getErrorText(): Promise<string> {
81
- await this.errorMessage.waitForDisplayed({ timeout: 5000 });
82
- return this.errorMessage.getText();
83
- }
84
- }
85
- ```
86
-
87
- ### Wait Strategies
88
-
89
- ```javascript
90
- // Explicit wait — preferred
91
- await driver.waitUntil(
92
- async () => (await $('~dashboard-title')).isDisplayed(),
93
- { timeout: 10000, timeoutMsg: 'Dashboard did not load' }
94
- );
95
-
96
- // Element wait
97
- const element = await $('~loading-spinner');
98
- await element.waitForDisplayed({ timeout: 5000, reverse: true }); // wait to disappear
99
- ```
100
-
101
- ### Gesture Automation
102
-
103
- ```javascript
104
- // Swipe
105
- await driver.execute('mobile: swipe', { direction: 'up', element: listView.elementId });
106
-
107
- // Long press
108
- await driver.execute('mobile: longClickGesture', {
109
- elementId: item.elementId,
110
- duration: 2000,
111
- });
112
-
113
- // Scroll to element
114
- await driver.execute('mobile: scroll', {
115
- strategy: 'accessibility id',
116
- selector: 'target-element',
117
- });
118
- ```
119
-
120
- ### Device Farm Integration
121
-
122
- ```javascript
123
- // BrowserStack
124
- const bsCaps = {
125
- 'bstack:options': {
126
- projectName: 'MyApp Tests',
127
- buildName: `Build ${process.env.BUILD_NUMBER}`,
128
- deviceName: 'Samsung Galaxy S22',
129
- osVersion: '12.0',
130
- },
131
- };
132
-
133
- // SauceLabs
134
- const sauceCaps = {
135
- 'sauce:options': {
136
- appiumVersion: '2.0',
137
- deviceName: 'Google Pixel 6',
138
- platformVersion: '13',
139
- },
140
- };
141
- ```
142
-
143
- ## Anti-Patterns
144
-
145
- 1. **XPath-first selectors** — XPath is slow and fragile. Use accessibility IDs
146
- as the primary locator strategy; they survive UI restructuring.
147
-
148
- 2. **Implicit waits** — Global implicit waits mask timing issues and slow down
149
- failure detection. Use explicit waits targeted to specific elements.
150
-
151
- 3. **Hardcoded sleep** — `Thread.sleep(5000)` is always wrong. Use waitUntil
152
- with a meaningful condition and timeout.
153
-
154
- 4. **Platform-coupled tests** — Writing separate test suites for iOS and Android
155
- when 90% of the logic is identical. Share test logic, isolate capabilities.
156
-
157
- 5. **Ignoring app state** — Not resetting app state between tests causes cascading
158
- failures. Use `noReset: false` or explicit cleanup.
159
-
160
- ## Integration Points
161
-
162
- - **Tools**: Appium Server 2.x, UiAutomator2 (Android), XCUITest (iOS)
163
- - **Workflows**: `mobile-testing` (test plan), `test-automation` (coverage expansion)
164
- - **Related fragments**: `selector-resilience` (locator strategies)
@@ -1,193 +0,0 @@
1
- ---
2
- name: react-native-testing
3
- tier: mobile-testing
4
- version: '1.0'
5
- ---
6
-
7
- # React Native Testing
8
-
9
- ## Principle
10
-
11
- React Native testing follows the same test pyramid as web React: Jest for unit tests,
12
- React Native Testing Library for component tests, and Detox for E2E. Native modules
13
- require mocking, but the core testing philosophy — test behavior, not implementation
14
- — remains identical.
15
-
16
- ## Rationale
17
-
18
- React Native bridges JavaScript and native code, creating unique testing challenges.
19
- Native modules, platform-specific behavior, and navigation require careful mocking
20
- strategies. Detox provides gray-box E2E testing that synchronizes with the app's
21
- internal state, reducing flakiness.
22
-
23
- ## Pattern Examples
24
-
25
- ### Jest + React Native Testing Library
26
-
27
- ```typescript
28
- import { render, screen, fireEvent } from '@testing-library/react-native';
29
- import { ProfileCard } from './ProfileCard';
30
-
31
- describe('ProfileCard', () => {
32
- it('displays user information', () => {
33
- render(<ProfileCard name="Alice" email="alice@example.com" />);
34
-
35
- expect(screen.getByText('Alice')).toBeTruthy();
36
- expect(screen.getByText('alice@example.com')).toBeTruthy();
37
- });
38
-
39
- it('calls onPress when tapped', () => {
40
- const onPress = jest.fn();
41
- render(<ProfileCard name="Alice" email="alice@example.com" onPress={onPress} />);
42
-
43
- fireEvent.press(screen.getByText('Alice'));
44
- expect(onPress).toHaveBeenCalledTimes(1);
45
- });
46
- });
47
- ```
48
-
49
- ### Navigation Testing
50
-
51
- ```typescript
52
- import { NavigationContainer } from '@react-navigation/native';
53
- import { render, screen, fireEvent } from '@testing-library/react-native';
54
-
55
- function renderWithNavigation(component: React.ReactElement) {
56
- return render(
57
- <NavigationContainer>{component}</NavigationContainer>
58
- );
59
- }
60
-
61
- describe('AppNavigator', () => {
62
- it('navigates to profile on tab press', () => {
63
- renderWithNavigation(<AppNavigator />);
64
- fireEvent.press(screen.getByText('Profile'));
65
- expect(screen.getByText('Profile Settings')).toBeTruthy();
66
- });
67
- });
68
- ```
69
-
70
- ### Native Module Mocking
71
-
72
- ```typescript
73
- // jest/setup.ts — mock native modules globally
74
- jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper');
75
-
76
- jest.mock('@react-native-async-storage/async-storage', () =>
77
- require('@react-native-async-storage/async-storage/jest/async-storage-mock')
78
- );
79
-
80
- jest.mock('react-native-camera', () => ({
81
- RNCamera: {
82
- Constants: {
83
- Type: { back: 'back', front: 'front' },
84
- FlashMode: { on: 'on', off: 'off', auto: 'auto' },
85
- },
86
- },
87
- }));
88
-
89
- // Platform-specific mock
90
- jest.mock('react-native/Libraries/Utilities/Platform', () => ({
91
- OS: 'ios',
92
- select: (obj: any) => obj.ios,
93
- }));
94
- ```
95
-
96
- ### Detox E2E Setup
97
-
98
- ```javascript
99
- // .detoxrc.js
100
- module.exports = {
101
- testRunner: { args: { config: 'e2e/jest.config.js' } },
102
- apps: {
103
- 'ios.release': {
104
- type: 'ios.app',
105
- binaryPath: 'ios/build/MyApp.app',
106
- build: 'xcodebuild -workspace ios/MyApp.xcworkspace -scheme MyApp -configuration Release -sdk iphonesimulator',
107
- },
108
- 'android.release': {
109
- type: 'android.apk',
110
- binaryPath: 'android/app/build/outputs/apk/release/app-release.apk',
111
- build: 'cd android && ./gradlew assembleRelease',
112
- },
113
- },
114
- devices: {
115
- simulator: { type: 'ios.simulator', device: { type: 'iPhone 15' } },
116
- emulator: { type: 'android.emulator', device: { avdName: 'Pixel_6_API_33' } },
117
- },
118
- };
119
- ```
120
-
121
- ### Detox E2E Tests
122
-
123
- ```typescript
124
- describe('Login Flow', () => {
125
- beforeAll(async () => {
126
- await device.launchApp({ newInstance: true });
127
- });
128
-
129
- beforeEach(async () => {
130
- await device.reloadReactNative();
131
- });
132
-
133
- it('logs in with valid credentials', async () => {
134
- await element(by.id('email-input')).typeText('user@example.com');
135
- await element(by.id('password-input')).typeText('password123');
136
- await element(by.id('login-button')).tap();
137
-
138
- await waitFor(element(by.id('dashboard-screen')))
139
- .toBeVisible()
140
- .withTimeout(5000);
141
- });
142
-
143
- it('shows error for invalid credentials', async () => {
144
- await element(by.id('email-input')).typeText('wrong@example.com');
145
- await element(by.id('password-input')).typeText('wrong');
146
- await element(by.id('login-button')).tap();
147
-
148
- await expect(element(by.text('Invalid credentials'))).toBeVisible();
149
- });
150
- });
151
- ```
152
-
153
- ### Snapshot Testing for Components
154
-
155
- ```typescript
156
- import { render } from '@testing-library/react-native';
157
- import { Button } from './Button';
158
-
159
- describe('Button snapshots', () => {
160
- it('renders primary variant', () => {
161
- const tree = render(<Button variant="primary" title="Submit" />);
162
- expect(tree.toJSON()).toMatchSnapshot();
163
- });
164
-
165
- it('renders disabled state', () => {
166
- const tree = render(<Button variant="primary" title="Submit" disabled />);
167
- expect(tree.toJSON()).toMatchSnapshot();
168
- });
169
- });
170
- ```
171
-
172
- ## Anti-Patterns
173
-
174
- 1. **Not mocking native modules** — Unmocked native modules crash Jest. Set up
175
- comprehensive mocks in jest/setup.ts for all native dependencies.
176
-
177
- 2. **Testing styles directly** — Asserting on style objects is brittle. Test visual
178
- outcomes with snapshots or accessibility labels instead.
179
-
180
- 3. **Ignoring platform differences** — Platform.select branches need testing on
181
- both platforms. Use parameterized tests with platform mocks.
182
-
183
- 4. **Detox without synchronization** — Not waiting for animations or network calls
184
- to complete before assertions. Use waitFor patterns.
185
-
186
- 5. **Over-relying on snapshots** — Large component tree snapshots are unreviewed noise.
187
- Use targeted snapshots for small, stable components only.
188
-
189
- ## Integration Points
190
-
191
- - **Tools**: Jest, RNTL, Detox, Metro bundler
192
- - **Workflows**: `mobile-testing` (test plan), `test-framework` (initial setup)
193
- - **Related fragments**: `jest-vitest-patterns` (shared Jest patterns)
@@ -1,177 +0,0 @@
1
- ---
2
- name: responsive-testing
3
- tier: mobile-testing
4
- version: '1.0'
5
- ---
6
-
7
- # Responsive Testing
8
-
9
- ## Principle
10
-
11
- Responsive testing validates that applications adapt correctly across viewport sizes,
12
- orientations, and input methods. It bridges the gap between mobile and desktop testing
13
- by ensuring CSS breakpoints, touch interactions, and dynamic layouts work as designed.
14
-
15
- ## Rationale
16
-
17
- Users access applications on devices ranging from 320px to 2560px wide. Responsive
18
- design failures — overlapping elements, hidden content, broken navigation — are among
19
- the most common UI bugs. Automated viewport testing catches layout regressions that
20
- manual testing misses.
21
-
22
- ## Pattern Examples
23
-
24
- ### Viewport Testing Matrix
25
-
26
- ```typescript
27
- const viewports = [
28
- { name: 'mobile-small', width: 320, height: 568 }, // iPhone SE
29
- { name: 'mobile', width: 375, height: 812 }, // iPhone 13
30
- { name: 'mobile-large', width: 428, height: 926 }, // iPhone 14 Pro Max
31
- { name: 'tablet-portrait', width: 768, height: 1024 },// iPad
32
- { name: 'tablet-landscape', width: 1024, height: 768 },
33
- { name: 'laptop', width: 1366, height: 768 },
34
- { name: 'desktop', width: 1920, height: 1080 },
35
- ];
36
-
37
- for (const vp of viewports) {
38
- test(`renders correctly at ${vp.name} (${vp.width}x${vp.height})`, async ({ page }) => {
39
- await page.setViewportSize({ width: vp.width, height: vp.height });
40
- await page.goto('/dashboard');
41
- await expect(page.locator('[data-testid="main-content"]')).toBeVisible();
42
- });
43
- }
44
- ```
45
-
46
- ### CSS Breakpoint Coverage
47
-
48
- ```typescript
49
- describe('Navigation', () => {
50
- test('shows hamburger menu on mobile', async ({ page }) => {
51
- await page.setViewportSize({ width: 375, height: 812 });
52
- await page.goto('/');
53
- await expect(page.locator('[data-testid="hamburger-menu"]')).toBeVisible();
54
- await expect(page.locator('[data-testid="desktop-nav"]')).toBeHidden();
55
- });
56
-
57
- test('shows full nav on desktop', async ({ page }) => {
58
- await page.setViewportSize({ width: 1920, height: 1080 });
59
- await page.goto('/');
60
- await expect(page.locator('[data-testid="desktop-nav"]')).toBeVisible();
61
- await expect(page.locator('[data-testid="hamburger-menu"]')).toBeHidden();
62
- });
63
-
64
- test('collapses sidebar on tablet', async ({ page }) => {
65
- await page.setViewportSize({ width: 768, height: 1024 });
66
- await page.goto('/dashboard');
67
- await expect(page.locator('[data-testid="sidebar"]')).toHaveCSS('width', '64px');
68
- });
69
- });
70
- ```
71
-
72
- ### Visual Regression with Percy/Chromatic
73
-
74
- ```typescript
75
- // Percy integration with Playwright
76
- import percySnapshot from '@percy/playwright';
77
-
78
- test('homepage visual regression', async ({ page }) => {
79
- await page.goto('/');
80
-
81
- // Capture at multiple widths
82
- await percySnapshot(page, 'Homepage - Mobile', { widths: [375] });
83
- await percySnapshot(page, 'Homepage - Tablet', { widths: [768] });
84
- await percySnapshot(page, 'Homepage - Desktop', { widths: [1920] });
85
- });
86
-
87
- // Chromatic integration (Storybook)
88
- // stories/Button.stories.tsx
89
- export default {
90
- title: 'Components/Button',
91
- component: Button,
92
- parameters: {
93
- chromatic: {
94
- viewports: [320, 768, 1200],
95
- },
96
- },
97
- };
98
- ```
99
-
100
- ### Touch vs Click Interaction Testing
101
-
102
- ```typescript
103
- describe('Touch interactions', () => {
104
- test('swipe to delete on mobile', async ({ page }) => {
105
- await page.setViewportSize({ width: 375, height: 812 });
106
- await page.goto('/list');
107
-
108
- const item = page.locator('[data-testid="list-item-1"]');
109
- const box = await item.boundingBox();
110
-
111
- await page.mouse.move(box!.x + box!.width - 10, box!.y + box!.height / 2);
112
- await page.mouse.down();
113
- await page.mouse.move(box!.x + 10, box!.y + box!.height / 2, { steps: 10 });
114
- await page.mouse.up();
115
-
116
- await expect(page.locator('[data-testid="delete-action"]')).toBeVisible();
117
- });
118
-
119
- test('hover tooltip on desktop', async ({ page }) => {
120
- await page.setViewportSize({ width: 1920, height: 1080 });
121
- await page.goto('/');
122
-
123
- await page.hover('[data-testid="info-icon"]');
124
- await expect(page.locator('[role="tooltip"]')).toBeVisible();
125
- });
126
-
127
- test('long press context menu on mobile', async ({ page }) => {
128
- await page.setViewportSize({ width: 375, height: 812 });
129
- await page.goto('/list');
130
-
131
- const item = page.locator('[data-testid="list-item-1"]');
132
- await item.click({ delay: 1000 }); // simulate long press
133
-
134
- await expect(page.locator('[data-testid="context-menu"]')).toBeVisible();
135
- });
136
- });
137
- ```
138
-
139
- ### Orientation Testing
140
-
141
- ```typescript
142
- describe('Orientation changes', () => {
143
- test('landscape mode adjusts layout', async ({ page }) => {
144
- // Portrait
145
- await page.setViewportSize({ width: 375, height: 812 });
146
- await page.goto('/video-player');
147
- await expect(page.locator('[data-testid="controls"]')).toBeVisible();
148
-
149
- // Landscape
150
- await page.setViewportSize({ width: 812, height: 375 });
151
- await expect(page.locator('[data-testid="fullscreen-controls"]')).toBeVisible();
152
- });
153
- });
154
- ```
155
-
156
- ## Anti-Patterns
157
-
158
- 1. **Testing only desktop** — Most traffic is mobile. Include at least 320px, 375px,
159
- and 768px viewports in every visual regression suite.
160
-
161
- 2. **Hardcoded pixel assertions** — Asserting `element.width === 375` is fragile.
162
- Test visibility, layout behavior, and CSS properties instead.
163
-
164
- 3. **Ignoring touch targets** — Buttons under 44x44px fail mobile usability. Validate
165
- minimum touch target sizes in responsive tests.
166
-
167
- 4. **Single breakpoint testing** — Testing only at exact breakpoints misses issues
168
- at in-between sizes. Include non-standard widths like 360px, 414px, 834px.
169
-
170
- 5. **Skipping orientation** — Many layouts break in landscape. Test both orientations
171
- for tablet and mobile viewports.
172
-
173
- ## Integration Points
174
-
175
- - **Tools**: Playwright, Percy, Chromatic, Storybook
176
- - **Workflows**: `mobile-testing` (test plan), `test-automation` (coverage expansion)
177
- - **Related fragments**: `visual-testing` (screenshot comparison), `selector-resilience` (locators)