@ruaruababa/vibe-kit 1.0.0

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 (462) hide show
  1. package/CATALOG.md +317 -0
  2. package/README.md +121 -0
  3. package/aliases.json +65 -0
  4. package/bin/vibe.js +2 -0
  5. package/bundles.json +265 -0
  6. package/catalog.json +1560 -0
  7. package/dist/antigravity-skills/bin/cli.js +438 -0
  8. package/dist/antigravity-skills/lib/skill-utils.js +158 -0
  9. package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
  10. package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
  11. package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
  12. package/dist/bin/vibe.js +2 -0
  13. package/dist/dist/src/cli/index.js +26 -0
  14. package/dist/lib/skill-utils.js +158 -0
  15. package/dist/scripts/build-catalog.js +50 -0
  16. package/dist/scripts/normalize-frontmatter.js +144 -0
  17. package/dist/scripts/validate-skills.js +56 -0
  18. package/dist/src/cli/index.js +146 -0
  19. package/dist/src/types/index.js +13 -0
  20. package/dist/src/utils/fs.js +1 -0
  21. package/package.json +43 -0
  22. package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
  23. package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
  24. package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
  25. package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  26. package/skills/agent-orchestrator/SKILL.md +24 -0
  27. package/skills/ai-engineer/SKILL.md +171 -0
  28. package/skills/airflow-dag-patterns/SKILL.md +41 -0
  29. package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  30. package/skills/angular-migration/SKILL.md +428 -0
  31. package/skills/anti-reversing-techniques/SKILL.md +42 -0
  32. package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
  33. package/skills/api-design-principles/SKILL.md +37 -0
  34. package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  35. package/skills/api-design-principles/assets/rest-api-template.py +182 -0
  36. package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  37. package/skills/api-design-principles/references/rest-best-practices.md +408 -0
  38. package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  39. package/skills/api-documenter/SKILL.md +184 -0
  40. package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  41. package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  42. package/skills/application-performance-performance-optimization/SKILL.md +154 -0
  43. package/skills/architect-review/SKILL.md +174 -0
  44. package/skills/architecture-decision-records/SKILL.md +441 -0
  45. package/skills/architecture-patterns/SKILL.md +37 -0
  46. package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  47. package/skills/arm-cortex-expert/SKILL.md +306 -0
  48. package/skills/async-python-patterns/SKILL.md +39 -0
  49. package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
  50. package/skills/attack-tree-construction/SKILL.md +38 -0
  51. package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  52. package/skills/auth-implementation-patterns/SKILL.md +39 -0
  53. package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  54. package/skills/backend-architect/SKILL.md +333 -0
  55. package/skills/backend-development-feature-development/SKILL.md +180 -0
  56. package/skills/backend-security-coder/SKILL.md +156 -0
  57. package/skills/backtesting-frameworks/SKILL.md +39 -0
  58. package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
  59. package/skills/bash-defensive-patterns/SKILL.md +43 -0
  60. package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
  61. package/skills/bash-pro/SKILL.md +310 -0
  62. package/skills/bats-testing-patterns/SKILL.md +34 -0
  63. package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
  64. package/skills/bazel-build-optimization/SKILL.md +397 -0
  65. package/skills/billing-automation/SKILL.md +42 -0
  66. package/skills/billing-automation/resources/implementation-playbook.md +544 -0
  67. package/skills/binary-analysis-patterns/SKILL.md +450 -0
  68. package/skills/blockchain-developer/SKILL.md +208 -0
  69. package/skills/business-analyst/SKILL.md +182 -0
  70. package/skills/c-pro/SKILL.md +56 -0
  71. package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
  72. package/skills/c4-code/SKILL.md +244 -0
  73. package/skills/c4-component/SKILL.md +153 -0
  74. package/skills/c4-container/SKILL.md +171 -0
  75. package/skills/c4-context/SKILL.md +150 -0
  76. package/skills/changelog-automation/SKILL.md +38 -0
  77. package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
  78. package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
  79. package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
  80. package/skills/clean-markdown/SKILL.md +23 -0
  81. package/skills/cloud-architect/SKILL.md +135 -0
  82. package/skills/code-documentation-code-explain/SKILL.md +46 -0
  83. package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
  84. package/skills/code-documentation-doc-generate/SKILL.md +48 -0
  85. package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
  86. package/skills/code-refactoring-context-restore/SKILL.md +179 -0
  87. package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
  88. package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
  89. package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
  90. package/skills/code-review-ai-ai-review/SKILL.md +450 -0
  91. package/skills/code-review-excellence/SKILL.md +40 -0
  92. package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
  93. package/skills/code-reviewer/SKILL.md +178 -0
  94. package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
  95. package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
  96. package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
  97. package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
  98. package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
  99. package/skills/competitive-landscape/SKILL.md +34 -0
  100. package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  101. package/skills/comprehensive-review-full-review/SKILL.md +146 -0
  102. package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
  103. package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
  104. package/skills/conductor-implement/SKILL.md +388 -0
  105. package/skills/conductor-manage/SKILL.md +39 -0
  106. package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
  107. package/skills/conductor-new-track/SKILL.md +433 -0
  108. package/skills/conductor-revert/SKILL.md +372 -0
  109. package/skills/conductor-setup/SKILL.md +426 -0
  110. package/skills/conductor-status/SKILL.md +338 -0
  111. package/skills/conductor-validator/SKILL.md +62 -0
  112. package/skills/content-marketer/SKILL.md +170 -0
  113. package/skills/context-driven-development/SKILL.md +400 -0
  114. package/skills/context-management-context-restore/SKILL.md +179 -0
  115. package/skills/context-management-context-save/SKILL.md +177 -0
  116. package/skills/context-manager/SKILL.md +185 -0
  117. package/skills/cost-optimization/SKILL.md +286 -0
  118. package/skills/cpp-pro/SKILL.md +59 -0
  119. package/skills/cqrs-implementation/SKILL.md +35 -0
  120. package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  121. package/skills/csharp-pro/SKILL.md +59 -0
  122. package/skills/customer-support/SKILL.md +170 -0
  123. package/skills/data-engineer/SKILL.md +224 -0
  124. package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  125. package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  126. package/skills/data-quality-frameworks/SKILL.md +40 -0
  127. package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  128. package/skills/data-scientist/SKILL.md +199 -0
  129. package/skills/data-storytelling/SKILL.md +465 -0
  130. package/skills/database-admin/SKILL.md +165 -0
  131. package/skills/database-architect/SKILL.md +268 -0
  132. package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  133. package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  134. package/skills/database-migration/SKILL.md +436 -0
  135. package/skills/database-migrations-migration-observability/SKILL.md +420 -0
  136. package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  137. package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  138. package/skills/database-optimizer/SKILL.md +167 -0
  139. package/skills/dbt-transformation-patterns/SKILL.md +34 -0
  140. package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  141. package/skills/debugger/SKILL.md +49 -0
  142. package/skills/debugging-strategies/SKILL.md +34 -0
  143. package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  144. package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
  145. package/skills/defi-protocol-templates/SKILL.md +466 -0
  146. package/skills/dependency-management-deps-audit/SKILL.md +44 -0
  147. package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
  148. package/skills/dependency-upgrade/SKILL.md +421 -0
  149. package/skills/deployment-engineer/SKILL.md +170 -0
  150. package/skills/deployment-pipeline-design/SKILL.md +371 -0
  151. package/skills/deployment-validation-config-validate/SKILL.md +496 -0
  152. package/skills/devops-troubleshooter/SKILL.md +161 -0
  153. package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  154. package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  155. package/skills/distributed-tracing/SKILL.md +450 -0
  156. package/skills/django-pro/SKILL.md +180 -0
  157. package/skills/docs-architect/SKILL.md +98 -0
  158. package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
  159. package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
  160. package/skills/dotnet-architect/SKILL.md +197 -0
  161. package/skills/dotnet-backend-patterns/SKILL.md +37 -0
  162. package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  163. package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  164. package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  165. package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  166. package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
  167. package/skills/dummy-skill/SKILL.md +5 -0
  168. package/skills/dx-optimizer/SKILL.md +83 -0
  169. package/skills/e2e-testing-patterns/SKILL.md +41 -0
  170. package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  171. package/skills/elixir-pro/SKILL.md +59 -0
  172. package/skills/embedding-strategies/SKILL.md +491 -0
  173. package/skills/employment-contract-templates/SKILL.md +39 -0
  174. package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  175. package/skills/error-debugging-error-analysis/SKILL.md +47 -0
  176. package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
  177. package/skills/error-debugging-error-trace/SKILL.md +43 -0
  178. package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
  179. package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
  180. package/skills/error-detective/SKILL.md +53 -0
  181. package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  182. package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  183. package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  184. package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  185. package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
  186. package/skills/error-handling-patterns/SKILL.md +35 -0
  187. package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  188. package/skills/event-sourcing-architect/SKILL.md +58 -0
  189. package/skills/event-store-design/SKILL.md +449 -0
  190. package/skills/fastapi-pro/SKILL.md +192 -0
  191. package/skills/fastapi-templates/SKILL.md +32 -0
  192. package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  193. package/skills/final-test/SKILL.md +5 -0
  194. package/skills/firmware-analyst/SKILL.md +320 -0
  195. package/skills/flutter-expert/SKILL.md +200 -0
  196. package/skills/framework-migration-code-migrate/SKILL.md +48 -0
  197. package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
  198. package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
  199. package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
  200. package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
  201. package/skills/frontend-developer/SKILL.md +171 -0
  202. package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
  203. package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
  204. package/skills/frontend-security-coder/SKILL.md +170 -0
  205. package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
  206. package/skills/gdpr-data-handling/SKILL.md +33 -0
  207. package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
  208. package/skills/git-advanced-workflows/SKILL.md +412 -0
  209. package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
  210. package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
  211. package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
  212. package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
  213. package/skills/github-actions-templates/SKILL.md +345 -0
  214. package/skills/gitlab-ci-patterns/SKILL.md +283 -0
  215. package/skills/gitops-workflow/SKILL.md +303 -0
  216. package/skills/gitops-workflow/references/argocd-setup.md +134 -0
  217. package/skills/gitops-workflow/references/sync-policies.md +131 -0
  218. package/skills/go-concurrency-patterns/SKILL.md +33 -0
  219. package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
  220. package/skills/godot-gdscript-patterns/SKILL.md +33 -0
  221. package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
  222. package/skills/golang-pro/SKILL.md +179 -0
  223. package/skills/grafana-dashboards/SKILL.md +381 -0
  224. package/skills/graphql-architect/SKILL.md +182 -0
  225. package/skills/haskell-pro/SKILL.md +56 -0
  226. package/skills/helm-chart-scaffolding/SKILL.md +34 -0
  227. package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  228. package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  229. package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  230. package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  231. package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  232. package/skills/hr-pro/SKILL.md +126 -0
  233. package/skills/hybrid-cloud-architect/SKILL.md +168 -0
  234. package/skills/hybrid-cloud-networking/SKILL.md +238 -0
  235. package/skills/hybrid-search-implementation/SKILL.md +32 -0
  236. package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  237. package/skills/incident-responder/SKILL.md +213 -0
  238. package/skills/incident-response-incident-response/SKILL.md +168 -0
  239. package/skills/incident-response-smart-fix/SKILL.md +29 -0
  240. package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  241. package/skills/incident-runbook-templates/SKILL.md +395 -0
  242. package/skills/ios-developer/SKILL.md +219 -0
  243. package/skills/istio-traffic-management/SKILL.md +337 -0
  244. package/skills/java-pro/SKILL.md +177 -0
  245. package/skills/javascript-pro/SKILL.md +57 -0
  246. package/skills/javascript-testing-patterns/SKILL.md +35 -0
  247. package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  248. package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
  249. package/skills/julia-pro/SKILL.md +209 -0
  250. package/skills/k8s-manifest-generator/SKILL.md +35 -0
  251. package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  252. package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  253. package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  254. package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  255. package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  256. package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  257. package/skills/k8s-security-policies/SKILL.md +346 -0
  258. package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  259. package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  260. package/skills/kpi-dashboard-design/SKILL.md +440 -0
  261. package/skills/kubernetes-architect/SKILL.md +170 -0
  262. package/skills/langchain-architecture/SKILL.md +350 -0
  263. package/skills/legacy-modernizer/SKILL.md +53 -0
  264. package/skills/legal-advisor/SKILL.md +70 -0
  265. package/skills/linkerd-patterns/SKILL.md +321 -0
  266. package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
  267. package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
  268. package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
  269. package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
  270. package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
  271. package/skills/llm-evaluation/SKILL.md +483 -0
  272. package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
  273. package/skills/malware-analyst/SKILL.md +247 -0
  274. package/skills/market-sizing-analysis/SKILL.md +425 -0
  275. package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  276. package/skills/market-sizing-analysis/references/data-sources.md +360 -0
  277. package/skills/memory-forensics/SKILL.md +491 -0
  278. package/skills/memory-safety-patterns/SKILL.md +33 -0
  279. package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
  280. package/skills/mermaid-expert/SKILL.md +59 -0
  281. package/skills/microservices-patterns/SKILL.md +35 -0
  282. package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
  283. package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
  284. package/skills/ml-engineer/SKILL.md +168 -0
  285. package/skills/ml-pipeline-workflow/SKILL.md +257 -0
  286. package/skills/mlops-engineer/SKILL.md +219 -0
  287. package/skills/mobile-developer/SKILL.md +205 -0
  288. package/skills/mobile-security-coder/SKILL.md +184 -0
  289. package/skills/modern-javascript-patterns/SKILL.md +35 -0
  290. package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
  291. package/skills/monorepo-architect/SKILL.md +61 -0
  292. package/skills/monorepo-management/SKILL.md +35 -0
  293. package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
  294. package/skills/mtls-configuration/SKILL.md +359 -0
  295. package/skills/multi-cloud-architecture/SKILL.md +189 -0
  296. package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
  297. package/skills/network-engineer/SKILL.md +169 -0
  298. package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
  299. package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
  300. package/skills/nft-standards/SKILL.md +395 -0
  301. package/skills/node-expert/SKILL.md +23 -0
  302. package/skills/nodejs-backend-patterns/SKILL.md +35 -0
  303. package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  304. package/skills/nx-workspace-patterns/SKILL.md +464 -0
  305. package/skills/observability-engineer/SKILL.md +237 -0
  306. package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  307. package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  308. package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  309. package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  310. package/skills/on-call-handoff-patterns/SKILL.md +453 -0
  311. package/skills/openapi-spec-generation/SKILL.md +33 -0
  312. package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  313. package/skills/payment-integration/SKILL.md +77 -0
  314. package/skills/paypal-integration/SKILL.md +479 -0
  315. package/skills/pci-compliance/SKILL.md +478 -0
  316. package/skills/performance-engineer/SKILL.md +180 -0
  317. package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
  318. package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
  319. package/skills/php-pro/SKILL.md +63 -0
  320. package/skills/posix-shell-pro/SKILL.md +304 -0
  321. package/skills/postgresql/SKILL.md +230 -0
  322. package/skills/postmortem-writing/SKILL.md +386 -0
  323. package/skills/projection-patterns/SKILL.md +33 -0
  324. package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  325. package/skills/prometheus-configuration/SKILL.md +404 -0
  326. package/skills/prompt-engineer/SKILL.md +272 -0
  327. package/skills/prompt-engineering-patterns/SKILL.md +213 -0
  328. package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  329. package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  330. package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  331. package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  332. package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  333. package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  334. package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  335. package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  336. package/skills/protocol-reverse-engineering/SKILL.md +29 -0
  337. package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
  338. package/skills/python-development-python-scaffold/SKILL.md +331 -0
  339. package/skills/python-packaging/SKILL.md +36 -0
  340. package/skills/python-packaging/resources/implementation-playbook.md +869 -0
  341. package/skills/python-performance-optimization/SKILL.md +36 -0
  342. package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
  343. package/skills/python-pro/SKILL.md +158 -0
  344. package/skills/python-testing-patterns/SKILL.md +37 -0
  345. package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
  346. package/skills/quant-analyst/SKILL.md +53 -0
  347. package/skills/rag-implementation/SKILL.md +421 -0
  348. package/skills/react-modernization/SKILL.md +34 -0
  349. package/skills/react-modernization/resources/implementation-playbook.md +512 -0
  350. package/skills/react-native-architecture/SKILL.md +33 -0
  351. package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
  352. package/skills/react-state-management/SKILL.md +441 -0
  353. package/skills/reference-builder/SKILL.md +188 -0
  354. package/skills/reverse-engineer/SKILL.md +173 -0
  355. package/skills/risk-manager/SKILL.md +61 -0
  356. package/skills/risk-metrics-calculation/SKILL.md +33 -0
  357. package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
  358. package/skills/ruby-pro/SKILL.md +56 -0
  359. package/skills/rust-async-patterns/SKILL.md +33 -0
  360. package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
  361. package/skills/rust-pro/SKILL.md +178 -0
  362. package/skills/saga-orchestration/SKILL.md +496 -0
  363. package/skills/sales-automator/SKILL.md +55 -0
  364. package/skills/sast-configuration/SKILL.md +212 -0
  365. package/skills/scala-pro/SKILL.md +82 -0
  366. package/skills/screen-reader-testing/SKILL.md +33 -0
  367. package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
  368. package/skills/search-specialist/SKILL.md +80 -0
  369. package/skills/secrets-management/SKILL.md +364 -0
  370. package/skills/security-auditor/SKILL.md +169 -0
  371. package/skills/security-compliance-compliance-check/SKILL.md +55 -0
  372. package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
  373. package/skills/security-requirement-extraction/SKILL.md +33 -0
  374. package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  375. package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
  376. package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
  377. package/skills/security-scanning-security-hardening/SKILL.md +147 -0
  378. package/skills/security-scanning-security-sast/SKILL.md +495 -0
  379. package/skills/seo-authority-builder/SKILL.md +136 -0
  380. package/skills/seo-cannibalization-detector/SKILL.md +123 -0
  381. package/skills/seo-content-auditor/SKILL.md +83 -0
  382. package/skills/seo-content-planner/SKILL.md +108 -0
  383. package/skills/seo-content-refresher/SKILL.md +118 -0
  384. package/skills/seo-content-writer/SKILL.md +96 -0
  385. package/skills/seo-keyword-strategist/SKILL.md +95 -0
  386. package/skills/seo-meta-optimizer/SKILL.md +92 -0
  387. package/skills/seo-snippet-hunter/SKILL.md +114 -0
  388. package/skills/seo-structure-architect/SKILL.md +108 -0
  389. package/skills/service-mesh-expert/SKILL.md +58 -0
  390. package/skills/service-mesh-observability/SKILL.md +395 -0
  391. package/skills/shellcheck-configuration/SKILL.md +466 -0
  392. package/skills/similarity-search-patterns/SKILL.md +33 -0
  393. package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  394. package/skills/slo-implementation/SKILL.md +341 -0
  395. package/skills/solidity-security/SKILL.md +34 -0
  396. package/skills/solidity-security/resources/implementation-playbook.md +524 -0
  397. package/skills/spark-optimization/SKILL.md +427 -0
  398. package/skills/sql-optimization-patterns/SKILL.md +35 -0
  399. package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  400. package/skills/sql-pro/SKILL.md +173 -0
  401. package/skills/startup-analyst/SKILL.md +328 -0
  402. package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  403. package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  404. package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  405. package/skills/startup-financial-modeling/SKILL.md +467 -0
  406. package/skills/startup-metrics-framework/SKILL.md +34 -0
  407. package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  408. package/skills/stride-analysis-patterns/SKILL.md +33 -0
  409. package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  410. package/skills/stripe-integration/SKILL.md +454 -0
  411. package/skills/systems-programming-rust-project/SKILL.md +440 -0
  412. package/skills/tailwind-design-system/SKILL.md +33 -0
  413. package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
  414. package/skills/tdd-orchestrator/SKILL.md +205 -0
  415. package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
  416. package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
  417. package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
  418. package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
  419. package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
  420. package/skills/team-collaboration-issue/SKILL.md +37 -0
  421. package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
  422. package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
  423. package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
  424. package/skills/team-composition-analysis/SKILL.md +413 -0
  425. package/skills/temporal-python-pro/SKILL.md +370 -0
  426. package/skills/temporal-python-testing/SKILL.md +170 -0
  427. package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  428. package/skills/temporal-python-testing/resources/local-setup.md +553 -0
  429. package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  430. package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  431. package/skills/terraform-module-library/SKILL.md +261 -0
  432. package/skills/terraform-module-library/references/aws-modules.md +63 -0
  433. package/skills/terraform-specialist/SKILL.md +166 -0
  434. package/skills/test-automator/SKILL.md +224 -0
  435. package/skills/threat-mitigation-mapping/SKILL.md +33 -0
  436. package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  437. package/skills/threat-modeling-expert/SKILL.md +60 -0
  438. package/skills/track-management/SKILL.md +38 -0
  439. package/skills/track-management/resources/implementation-playbook.md +591 -0
  440. package/skills/turborepo-caching/SKILL.md +419 -0
  441. package/skills/tutorial-engineer/SKILL.md +139 -0
  442. package/skills/typescript-advanced-types/SKILL.md +35 -0
  443. package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
  444. package/skills/typescript-pro/SKILL.md +55 -0
  445. package/skills/ui-minimal/SKILL.md +23 -0
  446. package/skills/ui-ux-designer/SKILL.md +209 -0
  447. package/skills/ui-visual-validator/SKILL.md +214 -0
  448. package/skills/unit-testing-test-generate/SKILL.md +319 -0
  449. package/skills/unity-developer/SKILL.md +230 -0
  450. package/skills/unity-ecs-patterns/SKILL.md +33 -0
  451. package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
  452. package/skills/uv-package-manager/SKILL.md +37 -0
  453. package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
  454. package/skills/vector-database-engineer/SKILL.md +60 -0
  455. package/skills/vector-index-tuning/SKILL.md +42 -0
  456. package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  457. package/skills/wcag-audit-patterns/SKILL.md +41 -0
  458. package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
  459. package/skills/web3-testing/SKILL.md +427 -0
  460. package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
  461. package/skills/workflow-patterns/SKILL.md +38 -0
  462. package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
@@ -0,0 +1,670 @@
1
+ # React Native Architecture Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ # React Native Architecture
6
+
7
+ Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture.
8
+
9
+ ## When to Use This Skill
10
+
11
+ - Starting a new React Native or Expo project
12
+ - Implementing complex navigation patterns
13
+ - Integrating native modules and platform APIs
14
+ - Building offline-first mobile applications
15
+ - Optimizing React Native performance
16
+ - Setting up CI/CD for mobile releases
17
+
18
+ ## Core Concepts
19
+
20
+ ### 1. Project Structure
21
+
22
+ ```
23
+ src/
24
+ ├── app/ # Expo Router screens
25
+ │ ├── (auth)/ # Auth group
26
+ │ ├── (tabs)/ # Tab navigation
27
+ │ └── _layout.tsx # Root layout
28
+ ├── components/
29
+ │ ├── ui/ # Reusable UI components
30
+ │ └── features/ # Feature-specific components
31
+ ├── hooks/ # Custom hooks
32
+ ├── services/ # API and native services
33
+ ├── stores/ # State management
34
+ ├── utils/ # Utilities
35
+ └── types/ # TypeScript types
36
+ ```
37
+
38
+ ### 2. Expo vs Bare React Native
39
+
40
+ | Feature | Expo | Bare RN |
41
+ |---------|------|---------|
42
+ | Setup complexity | Low | High |
43
+ | Native modules | EAS Build | Manual linking |
44
+ | OTA updates | Built-in | Manual setup |
45
+ | Build service | EAS | Custom CI |
46
+ | Custom native code | Config plugins | Direct access |
47
+
48
+ ## Quick Start
49
+
50
+ ```bash
51
+ # Create new Expo project
52
+ npx create-expo-app@latest my-app -t expo-template-blank-typescript
53
+
54
+ # Install essential dependencies
55
+ npx expo install expo-router expo-status-bar react-native-safe-area-context
56
+ npx expo install @react-native-async-storage/async-storage
57
+ npx expo install expo-secure-store expo-haptics
58
+ ```
59
+
60
+ ```typescript
61
+ // app/_layout.tsx
62
+ import { Stack } from 'expo-router'
63
+ import { ThemeProvider } from '@/providers/ThemeProvider'
64
+ import { QueryProvider } from '@/providers/QueryProvider'
65
+
66
+ export default function RootLayout() {
67
+ return (
68
+ <QueryProvider>
69
+ <ThemeProvider>
70
+ <Stack screenOptions={{ headerShown: false }}>
71
+ <Stack.Screen name="(tabs)" />
72
+ <Stack.Screen name="(auth)" />
73
+ <Stack.Screen name="modal" options={{ presentation: 'modal' }} />
74
+ </Stack>
75
+ </ThemeProvider>
76
+ </QueryProvider>
77
+ )
78
+ }
79
+ ```
80
+
81
+ ## Patterns
82
+
83
+ ### Pattern 1: Expo Router Navigation
84
+
85
+ ```typescript
86
+ // app/(tabs)/_layout.tsx
87
+ import { Tabs } from 'expo-router'
88
+ import { Home, Search, User, Settings } from 'lucide-react-native'
89
+ import { useTheme } from '@/hooks/useTheme'
90
+
91
+ export default function TabLayout() {
92
+ const { colors } = useTheme()
93
+
94
+ return (
95
+ <Tabs
96
+ screenOptions={{
97
+ tabBarActiveTintColor: colors.primary,
98
+ tabBarInactiveTintColor: colors.textMuted,
99
+ tabBarStyle: { backgroundColor: colors.background },
100
+ headerShown: false,
101
+ }}
102
+ >
103
+ <Tabs.Screen
104
+ name="index"
105
+ options={{
106
+ title: 'Home',
107
+ tabBarIcon: ({ color, size }) => <Home size={size} color={color} />,
108
+ }}
109
+ />
110
+ <Tabs.Screen
111
+ name="search"
112
+ options={{
113
+ title: 'Search',
114
+ tabBarIcon: ({ color, size }) => <Search size={size} color={color} />,
115
+ }}
116
+ />
117
+ <Tabs.Screen
118
+ name="profile"
119
+ options={{
120
+ title: 'Profile',
121
+ tabBarIcon: ({ color, size }) => <User size={size} color={color} />,
122
+ }}
123
+ />
124
+ <Tabs.Screen
125
+ name="settings"
126
+ options={{
127
+ title: 'Settings',
128
+ tabBarIcon: ({ color, size }) => <Settings size={size} color={color} />,
129
+ }}
130
+ />
131
+ </Tabs>
132
+ )
133
+ }
134
+
135
+ // app/(tabs)/profile/[id].tsx - Dynamic route
136
+ import { useLocalSearchParams } from 'expo-router'
137
+
138
+ export default function ProfileScreen() {
139
+ const { id } = useLocalSearchParams<{ id: string }>()
140
+
141
+ return <UserProfile userId={id} />
142
+ }
143
+
144
+ // Navigation from anywhere
145
+ import { router } from 'expo-router'
146
+
147
+ // Programmatic navigation
148
+ router.push('/profile/123')
149
+ router.replace('/login')
150
+ router.back()
151
+
152
+ // With params
153
+ router.push({
154
+ pathname: '/product/[id]',
155
+ params: { id: '123', referrer: 'home' },
156
+ })
157
+ ```
158
+
159
+ ### Pattern 2: Authentication Flow
160
+
161
+ ```typescript
162
+ // providers/AuthProvider.tsx
163
+ import { createContext, useContext, useEffect, useState } from 'react'
164
+ import { useRouter, useSegments } from 'expo-router'
165
+ import * as SecureStore from 'expo-secure-store'
166
+
167
+ interface AuthContextType {
168
+ user: User | null
169
+ isLoading: boolean
170
+ signIn: (credentials: Credentials) => Promise<void>
171
+ signOut: () => Promise<void>
172
+ }
173
+
174
+ const AuthContext = createContext<AuthContextType | null>(null)
175
+
176
+ export function AuthProvider({ children }: { children: React.ReactNode }) {
177
+ const [user, setUser] = useState<User | null>(null)
178
+ const [isLoading, setIsLoading] = useState(true)
179
+ const segments = useSegments()
180
+ const router = useRouter()
181
+
182
+ // Check authentication on mount
183
+ useEffect(() => {
184
+ checkAuth()
185
+ }, [])
186
+
187
+ // Protect routes
188
+ useEffect(() => {
189
+ if (isLoading) return
190
+
191
+ const inAuthGroup = segments[0] === '(auth)'
192
+
193
+ if (!user && !inAuthGroup) {
194
+ router.replace('/login')
195
+ } else if (user && inAuthGroup) {
196
+ router.replace('/(tabs)')
197
+ }
198
+ }, [user, segments, isLoading])
199
+
200
+ async function checkAuth() {
201
+ try {
202
+ const token = await SecureStore.getItemAsync('authToken')
203
+ if (token) {
204
+ const userData = await api.getUser(token)
205
+ setUser(userData)
206
+ }
207
+ } catch (error) {
208
+ await SecureStore.deleteItemAsync('authToken')
209
+ } finally {
210
+ setIsLoading(false)
211
+ }
212
+ }
213
+
214
+ async function signIn(credentials: Credentials) {
215
+ const { token, user } = await api.login(credentials)
216
+ await SecureStore.setItemAsync('authToken', token)
217
+ setUser(user)
218
+ }
219
+
220
+ async function signOut() {
221
+ await SecureStore.deleteItemAsync('authToken')
222
+ setUser(null)
223
+ }
224
+
225
+ if (isLoading) {
226
+ return <SplashScreen />
227
+ }
228
+
229
+ return (
230
+ <AuthContext.Provider value={{ user, isLoading, signIn, signOut }}>
231
+ {children}
232
+ </AuthContext.Provider>
233
+ )
234
+ }
235
+
236
+ export const useAuth = () => {
237
+ const context = useContext(AuthContext)
238
+ if (!context) throw new Error('useAuth must be used within AuthProvider')
239
+ return context
240
+ }
241
+ ```
242
+
243
+ ### Pattern 3: Offline-First with React Query
244
+
245
+ ```typescript
246
+ // providers/QueryProvider.tsx
247
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
248
+ import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister'
249
+ import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client'
250
+ import AsyncStorage from '@react-native-async-storage/async-storage'
251
+ import NetInfo from '@react-native-community/netinfo'
252
+ import { onlineManager } from '@tanstack/react-query'
253
+
254
+ // Sync online status
255
+ onlineManager.setEventListener((setOnline) => {
256
+ return NetInfo.addEventListener((state) => {
257
+ setOnline(!!state.isConnected)
258
+ })
259
+ })
260
+
261
+ const queryClient = new QueryClient({
262
+ defaultOptions: {
263
+ queries: {
264
+ gcTime: 1000 * 60 * 60 * 24, // 24 hours
265
+ staleTime: 1000 * 60 * 5, // 5 minutes
266
+ retry: 2,
267
+ networkMode: 'offlineFirst',
268
+ },
269
+ mutations: {
270
+ networkMode: 'offlineFirst',
271
+ },
272
+ },
273
+ })
274
+
275
+ const asyncStoragePersister = createAsyncStoragePersister({
276
+ storage: AsyncStorage,
277
+ key: 'REACT_QUERY_OFFLINE_CACHE',
278
+ })
279
+
280
+ export function QueryProvider({ children }: { children: React.ReactNode }) {
281
+ return (
282
+ <PersistQueryClientProvider
283
+ client={queryClient}
284
+ persistOptions={{ persister: asyncStoragePersister }}
285
+ >
286
+ {children}
287
+ </PersistQueryClientProvider>
288
+ )
289
+ }
290
+
291
+ // hooks/useProducts.ts
292
+ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
293
+
294
+ export function useProducts() {
295
+ return useQuery({
296
+ queryKey: ['products'],
297
+ queryFn: api.getProducts,
298
+ // Use stale data while revalidating
299
+ placeholderData: (previousData) => previousData,
300
+ })
301
+ }
302
+
303
+ export function useCreateProduct() {
304
+ const queryClient = useQueryClient()
305
+
306
+ return useMutation({
307
+ mutationFn: api.createProduct,
308
+ // Optimistic update
309
+ onMutate: async (newProduct) => {
310
+ await queryClient.cancelQueries({ queryKey: ['products'] })
311
+ const previous = queryClient.getQueryData(['products'])
312
+
313
+ queryClient.setQueryData(['products'], (old: Product[]) => [
314
+ ...old,
315
+ { ...newProduct, id: 'temp-' + Date.now() },
316
+ ])
317
+
318
+ return { previous }
319
+ },
320
+ onError: (err, newProduct, context) => {
321
+ queryClient.setQueryData(['products'], context?.previous)
322
+ },
323
+ onSettled: () => {
324
+ queryClient.invalidateQueries({ queryKey: ['products'] })
325
+ },
326
+ })
327
+ }
328
+ ```
329
+
330
+ ### Pattern 4: Native Module Integration
331
+
332
+ ```typescript
333
+ // services/haptics.ts
334
+ import * as Haptics from 'expo-haptics'
335
+ import { Platform } from 'react-native'
336
+
337
+ export const haptics = {
338
+ light: () => {
339
+ if (Platform.OS !== 'web') {
340
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)
341
+ }
342
+ },
343
+ medium: () => {
344
+ if (Platform.OS !== 'web') {
345
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium)
346
+ }
347
+ },
348
+ heavy: () => {
349
+ if (Platform.OS !== 'web') {
350
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy)
351
+ }
352
+ },
353
+ success: () => {
354
+ if (Platform.OS !== 'web') {
355
+ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success)
356
+ }
357
+ },
358
+ error: () => {
359
+ if (Platform.OS !== 'web') {
360
+ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error)
361
+ }
362
+ },
363
+ }
364
+
365
+ // services/biometrics.ts
366
+ import * as LocalAuthentication from 'expo-local-authentication'
367
+
368
+ export async function authenticateWithBiometrics(): Promise<boolean> {
369
+ const hasHardware = await LocalAuthentication.hasHardwareAsync()
370
+ if (!hasHardware) return false
371
+
372
+ const isEnrolled = await LocalAuthentication.isEnrolledAsync()
373
+ if (!isEnrolled) return false
374
+
375
+ const result = await LocalAuthentication.authenticateAsync({
376
+ promptMessage: 'Authenticate to continue',
377
+ fallbackLabel: 'Use passcode',
378
+ disableDeviceFallback: false,
379
+ })
380
+
381
+ return result.success
382
+ }
383
+
384
+ // services/notifications.ts
385
+ import * as Notifications from 'expo-notifications'
386
+ import { Platform } from 'react-native'
387
+ import Constants from 'expo-constants'
388
+
389
+ Notifications.setNotificationHandler({
390
+ handleNotification: async () => ({
391
+ shouldShowAlert: true,
392
+ shouldPlaySound: true,
393
+ shouldSetBadge: true,
394
+ }),
395
+ })
396
+
397
+ export async function registerForPushNotifications() {
398
+ let token: string | undefined
399
+
400
+ if (Platform.OS === 'android') {
401
+ await Notifications.setNotificationChannelAsync('default', {
402
+ name: 'default',
403
+ importance: Notifications.AndroidImportance.MAX,
404
+ vibrationPattern: [0, 250, 250, 250],
405
+ })
406
+ }
407
+
408
+ const { status: existingStatus } = await Notifications.getPermissionsAsync()
409
+ let finalStatus = existingStatus
410
+
411
+ if (existingStatus !== 'granted') {
412
+ const { status } = await Notifications.requestPermissionsAsync()
413
+ finalStatus = status
414
+ }
415
+
416
+ if (finalStatus !== 'granted') {
417
+ return null
418
+ }
419
+
420
+ const projectId = Constants.expoConfig?.extra?.eas?.projectId
421
+ token = (await Notifications.getExpoPushTokenAsync({ projectId })).data
422
+
423
+ return token
424
+ }
425
+ ```
426
+
427
+ ### Pattern 5: Platform-Specific Code
428
+
429
+ ```typescript
430
+ // components/ui/Button.tsx
431
+ import { Platform, Pressable, StyleSheet, Text, ViewStyle } from 'react-native'
432
+ import * as Haptics from 'expo-haptics'
433
+ import Animated, {
434
+ useAnimatedStyle,
435
+ useSharedValue,
436
+ withSpring,
437
+ } from 'react-native-reanimated'
438
+
439
+ const AnimatedPressable = Animated.createAnimatedComponent(Pressable)
440
+
441
+ interface ButtonProps {
442
+ title: string
443
+ onPress: () => void
444
+ variant?: 'primary' | 'secondary' | 'outline'
445
+ disabled?: boolean
446
+ }
447
+
448
+ export function Button({
449
+ title,
450
+ onPress,
451
+ variant = 'primary',
452
+ disabled = false,
453
+ }: ButtonProps) {
454
+ const scale = useSharedValue(1)
455
+
456
+ const animatedStyle = useAnimatedStyle(() => ({
457
+ transform: [{ scale: scale.value }],
458
+ }))
459
+
460
+ const handlePressIn = () => {
461
+ scale.value = withSpring(0.95)
462
+ if (Platform.OS !== 'web') {
463
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)
464
+ }
465
+ }
466
+
467
+ const handlePressOut = () => {
468
+ scale.value = withSpring(1)
469
+ }
470
+
471
+ return (
472
+ <AnimatedPressable
473
+ onPress={onPress}
474
+ onPressIn={handlePressIn}
475
+ onPressOut={handlePressOut}
476
+ disabled={disabled}
477
+ style={[
478
+ styles.button,
479
+ styles[variant],
480
+ disabled && styles.disabled,
481
+ animatedStyle,
482
+ ]}
483
+ >
484
+ <Text style={[styles.text, styles[`${variant}Text`]]}>{title}</Text>
485
+ </AnimatedPressable>
486
+ )
487
+ }
488
+
489
+ // Platform-specific files
490
+ // Button.ios.tsx - iOS-specific implementation
491
+ // Button.android.tsx - Android-specific implementation
492
+ // Button.web.tsx - Web-specific implementation
493
+
494
+ // Or use Platform.select
495
+ const styles = StyleSheet.create({
496
+ button: {
497
+ paddingVertical: 12,
498
+ paddingHorizontal: 24,
499
+ borderRadius: 8,
500
+ alignItems: 'center',
501
+ ...Platform.select({
502
+ ios: {
503
+ shadowColor: '#000',
504
+ shadowOffset: { width: 0, height: 2 },
505
+ shadowOpacity: 0.1,
506
+ shadowRadius: 4,
507
+ },
508
+ android: {
509
+ elevation: 4,
510
+ },
511
+ }),
512
+ },
513
+ primary: {
514
+ backgroundColor: '#007AFF',
515
+ },
516
+ secondary: {
517
+ backgroundColor: '#5856D6',
518
+ },
519
+ outline: {
520
+ backgroundColor: 'transparent',
521
+ borderWidth: 1,
522
+ borderColor: '#007AFF',
523
+ },
524
+ disabled: {
525
+ opacity: 0.5,
526
+ },
527
+ text: {
528
+ fontSize: 16,
529
+ fontWeight: '600',
530
+ },
531
+ primaryText: {
532
+ color: '#FFFFFF',
533
+ },
534
+ secondaryText: {
535
+ color: '#FFFFFF',
536
+ },
537
+ outlineText: {
538
+ color: '#007AFF',
539
+ },
540
+ })
541
+ ```
542
+
543
+ ### Pattern 6: Performance Optimization
544
+
545
+ ```typescript
546
+ // components/ProductList.tsx
547
+ import { FlashList } from '@shopify/flash-list'
548
+ import { memo, useCallback } from 'react'
549
+
550
+ interface ProductListProps {
551
+ products: Product[]
552
+ onProductPress: (id: string) => void
553
+ }
554
+
555
+ // Memoize list item
556
+ const ProductItem = memo(function ProductItem({
557
+ item,
558
+ onPress,
559
+ }: {
560
+ item: Product
561
+ onPress: (id: string) => void
562
+ }) {
563
+ const handlePress = useCallback(() => onPress(item.id), [item.id, onPress])
564
+
565
+ return (
566
+ <Pressable onPress={handlePress} style={styles.item}>
567
+ <FastImage
568
+ source={{ uri: item.image }}
569
+ style={styles.image}
570
+ resizeMode="cover"
571
+ />
572
+ <Text style={styles.title}>{item.name}</Text>
573
+ <Text style={styles.price}>${item.price}</Text>
574
+ </Pressable>
575
+ )
576
+ })
577
+
578
+ export function ProductList({ products, onProductPress }: ProductListProps) {
579
+ const renderItem = useCallback(
580
+ ({ item }: { item: Product }) => (
581
+ <ProductItem item={item} onPress={onProductPress} />
582
+ ),
583
+ [onProductPress]
584
+ )
585
+
586
+ const keyExtractor = useCallback((item: Product) => item.id, [])
587
+
588
+ return (
589
+ <FlashList
590
+ data={products}
591
+ renderItem={renderItem}
592
+ keyExtractor={keyExtractor}
593
+ estimatedItemSize={100}
594
+ // Performance optimizations
595
+ removeClippedSubviews={true}
596
+ maxToRenderPerBatch={10}
597
+ windowSize={5}
598
+ // Pull to refresh
599
+ onRefresh={onRefresh}
600
+ refreshing={isRefreshing}
601
+ />
602
+ )
603
+ }
604
+ ```
605
+
606
+ ## EAS Build & Submit
607
+
608
+ ```json
609
+ // eas.json
610
+ {
611
+ "cli": { "version": ">= 5.0.0" },
612
+ "build": {
613
+ "development": {
614
+ "developmentClient": true,
615
+ "distribution": "internal",
616
+ "ios": { "simulator": true }
617
+ },
618
+ "preview": {
619
+ "distribution": "internal",
620
+ "android": { "buildType": "apk" }
621
+ },
622
+ "production": {
623
+ "autoIncrement": true
624
+ }
625
+ },
626
+ "submit": {
627
+ "production": {
628
+ "ios": { "appleId": "your@email.com", "ascAppId": "123456789" },
629
+ "android": { "serviceAccountKeyPath": "./google-services.json" }
630
+ }
631
+ }
632
+ }
633
+ ```
634
+
635
+ ```bash
636
+ # Build commands
637
+ eas build --platform ios --profile development
638
+ eas build --platform android --profile preview
639
+ eas build --platform all --profile production
640
+
641
+ # Submit to stores
642
+ eas submit --platform ios
643
+ eas submit --platform android
644
+
645
+ # OTA updates
646
+ eas update --branch production --message "Bug fixes"
647
+ ```
648
+
649
+ ## Best Practices
650
+
651
+ ### Do's
652
+ - **Use Expo** - Faster development, OTA updates, managed native code
653
+ - **FlashList over FlatList** - Better performance for long lists
654
+ - **Memoize components** - Prevent unnecessary re-renders
655
+ - **Use Reanimated** - 60fps animations on native thread
656
+ - **Test on real devices** - Simulators miss real-world issues
657
+
658
+ ### Don'ts
659
+ - **Don't inline styles** - Use StyleSheet.create for performance
660
+ - **Don't fetch in render** - Use useEffect or React Query
661
+ - **Don't ignore platform differences** - Test on both iOS and Android
662
+ - **Don't store secrets in code** - Use environment variables
663
+ - **Don't skip error boundaries** - Mobile crashes are unforgiving
664
+
665
+ ## Resources
666
+
667
+ - [Expo Documentation](https://docs.expo.dev/)
668
+ - [Expo Router](https://docs.expo.dev/router/introduction/)
669
+ - [React Native Performance](https://reactnative.dev/docs/performance)
670
+ - [FlashList](https://shopify.github.io/flash-list/)