cfsa-antigravity 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 (378) hide show
  1. package/bin/cli.mjs +324 -0
  2. package/package.json +34 -0
  3. package/template/.agent/instructions/commands.md +48 -0
  4. package/template/.agent/instructions/patterns.md +61 -0
  5. package/template/.agent/instructions/structure.md +29 -0
  6. package/template/.agent/instructions/tech-stack.md +43 -0
  7. package/template/.agent/instructions/workflow.md +41 -0
  8. package/template/.agent/kit-sync.md +15 -0
  9. package/template/.agent/rules/boundary-not-placeholder.md +146 -0
  10. package/template/.agent/rules/completion-checklist.md +48 -0
  11. package/template/.agent/rules/decision-classification.md +103 -0
  12. package/template/.agent/rules/extensibility.md +47 -0
  13. package/template/.agent/rules/question-vs-command.md +81 -0
  14. package/template/.agent/rules/security-first.md +43 -0
  15. package/template/.agent/rules/specificity-standards.md +54 -0
  16. package/template/.agent/rules/tdd-contract-first.md +57 -0
  17. package/template/.agent/rules/vertical-slices.md +42 -0
  18. package/template/.agent/skill-library/MANIFEST.md +480 -0
  19. package/template/.agent/skill-library/README.md +38 -0
  20. package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
  21. package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
  22. package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  23. package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  24. package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  25. package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
  26. package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
  27. package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  28. package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
  29. package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
  30. package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  31. package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  32. package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  33. package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
  34. package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
  35. package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  36. package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  37. package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
  38. package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
  39. package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
  40. package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
  41. package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  42. package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  43. package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  44. package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  45. package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  46. package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  47. package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  48. package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  49. package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  50. package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  51. package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  52. package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  53. package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  54. package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  55. package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  56. package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  57. package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  58. package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
  59. package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  60. package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  61. package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
  62. package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  63. package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  64. package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  65. package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  66. package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  67. package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
  68. package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
  69. package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
  70. package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
  71. package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  72. package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  73. package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  74. package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  75. package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  76. package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  77. package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  78. package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  79. package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  80. package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  81. package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  82. package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  83. package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  84. package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
  85. package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  86. package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  87. package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  88. package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  89. package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  90. package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  91. package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
  92. package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
  93. package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  94. package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
  95. package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
  96. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  97. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  98. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  99. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  100. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  101. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  102. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  103. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  104. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  105. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  106. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  107. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  108. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  109. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  110. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  111. package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  112. package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  113. package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  114. package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  115. package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  116. package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  117. package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  118. package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
  119. package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  120. package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
  121. package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  122. package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  123. package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  124. package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  125. package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
  126. package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  127. package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  128. package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  129. package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
  130. package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  131. package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  132. package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  133. package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  134. package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  135. package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  136. package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  137. package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  138. package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  139. package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
  140. package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  141. package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
  142. package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
  143. package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  144. package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
  145. package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  146. package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  147. package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  148. package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  149. package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
  150. package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  151. package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  152. package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  153. package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
  154. package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  155. package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  156. package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
  157. package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  158. package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  159. package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  160. package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  161. package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  162. package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  163. package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  164. package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  165. package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  166. package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  167. package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  168. package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  169. package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  170. package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  171. package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  172. package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  173. package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  174. package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  175. package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  176. package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  177. package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  178. package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  179. package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  180. package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  181. package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  182. package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  183. package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  184. package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  185. package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  186. package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  187. package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  188. package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  189. package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  190. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  191. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  192. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  193. package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  194. package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  195. package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  196. package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  197. package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  198. package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  199. package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
  200. package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  201. package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
  202. package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  203. package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  204. package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  205. package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  206. package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  207. package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  208. package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  209. package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  210. package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  211. package/template/.agent/skills/accessibility/SKILL.md +522 -0
  212. package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
  213. package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
  214. package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
  215. package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  216. package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
  217. package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  218. package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
  219. package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  220. package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
  221. package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  222. package/template/.agent/skills/api-versioning/SKILL.md +420 -0
  223. package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
  224. package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
  225. package/template/.agent/skills/brainstorming/SKILL.md +236 -0
  226. package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
  227. package/template/.agent/skills/clean-code/SKILL.md +94 -0
  228. package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
  229. package/template/.agent/skills/concise-planning/SKILL.md +68 -0
  230. package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
  231. package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
  232. package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
  233. package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
  234. package/template/.agent/skills/design-direction/SKILL.md +45 -0
  235. package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
  236. package/template/.agent/skills/find-skills/SKILL.md +145 -0
  237. package/template/.agent/skills/git-advanced/SKILL.md +972 -0
  238. package/template/.agent/skills/git-workflow/SKILL.md +420 -0
  239. package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
  240. package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
  241. package/template/.agent/skills/migration-management/SKILL.md +384 -0
  242. package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
  243. package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
  244. package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
  245. package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
  246. package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
  247. package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
  248. package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  249. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  250. package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  251. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  252. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
  253. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
  254. package/template/.agent/skills/prd-templates/SKILL.md +88 -0
  255. package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
  256. package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
  257. package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
  258. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
  259. package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
  260. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
  261. package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  262. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
  263. package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  264. package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
  265. package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  266. package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
  267. package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
  268. package/template/.agent/skills/prompt-engineer/README.md +659 -0
  269. package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
  270. package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
  271. package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
  272. package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
  273. package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
  274. package/template/.agent/skills/session-continuity/SKILL.md +730 -0
  275. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  276. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  277. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
  278. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  279. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
  280. package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  281. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  282. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
  283. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  284. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
  285. package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  286. package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
  287. package/template/.agent/skills/skill-creator/README.md +270 -0
  288. package/template/.agent/skills/skill-creator/SKILL.md +590 -0
  289. package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  290. package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
  291. package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  292. package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  293. package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  294. package/template/.agent/skills/spec-writing/SKILL.md +110 -0
  295. package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
  296. package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
  297. package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  298. package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
  299. package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
  300. package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
  301. package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
  302. package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
  303. package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
  304. package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
  305. package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
  306. package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
  307. package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
  308. package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
  309. package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  310. package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  311. package/template/.agent/skills/technical-writer/SKILL.md +242 -0
  312. package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
  313. package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
  314. package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
  315. package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
  316. package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
  317. package/template/.agent/workflows/audit-ambiguity.md +64 -0
  318. package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
  319. package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
  320. package/template/.agent/workflows/bootstrap-agents.md +66 -0
  321. package/template/.agent/workflows/create-prd-architecture.md +119 -0
  322. package/template/.agent/workflows/create-prd-compile.md +138 -0
  323. package/template/.agent/workflows/create-prd-design-system.md +135 -0
  324. package/template/.agent/workflows/create-prd-security.md +113 -0
  325. package/template/.agent/workflows/create-prd-stack.md +91 -0
  326. package/template/.agent/workflows/create-prd.md +168 -0
  327. package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
  328. package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
  329. package/template/.agent/workflows/decompose-architecture.md +111 -0
  330. package/template/.agent/workflows/evolve-contract.md +98 -0
  331. package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
  332. package/template/.agent/workflows/evolve-feature-classify.md +116 -0
  333. package/template/.agent/workflows/evolve-feature.md +56 -0
  334. package/template/.agent/workflows/ideate-discover.md +144 -0
  335. package/template/.agent/workflows/ideate-extract.md +129 -0
  336. package/template/.agent/workflows/ideate-validate.md +117 -0
  337. package/template/.agent/workflows/ideate.md +113 -0
  338. package/template/.agent/workflows/implement-slice-setup.md +113 -0
  339. package/template/.agent/workflows/implement-slice-tdd.md +198 -0
  340. package/template/.agent/workflows/implement-slice.md +50 -0
  341. package/template/.agent/workflows/plan-phase.md +202 -0
  342. package/template/.agent/workflows/propagate-decision-apply.md +135 -0
  343. package/template/.agent/workflows/propagate-decision-scan.md +147 -0
  344. package/template/.agent/workflows/propagate-decision.md +56 -0
  345. package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
  346. package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
  347. package/template/.agent/workflows/remediate-pipeline.md +55 -0
  348. package/template/.agent/workflows/resolve-ambiguity.md +82 -0
  349. package/template/.agent/workflows/sync-kit.md +209 -0
  350. package/template/.agent/workflows/update-architecture-map.md +74 -0
  351. package/template/.agent/workflows/validate-phase.md +219 -0
  352. package/template/.agent/workflows/verify-infrastructure.md +207 -0
  353. package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
  354. package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
  355. package/template/.agent/workflows/write-architecture-spec.md +63 -0
  356. package/template/.agent/workflows/write-be-spec-classify.md +165 -0
  357. package/template/.agent/workflows/write-be-spec-write.md +98 -0
  358. package/template/.agent/workflows/write-be-spec.md +76 -0
  359. package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
  360. package/template/.agent/workflows/write-fe-spec-write.md +94 -0
  361. package/template/.agent/workflows/write-fe-spec.md +71 -0
  362. package/template/AGENTS.md +176 -0
  363. package/template/GEMINI.md +177 -0
  364. package/template/docs/README.md +187 -0
  365. package/template/docs/audits/.gitkeep +0 -0
  366. package/template/docs/audits/README.md +10 -0
  367. package/template/docs/plans/.gitkeep +0 -0
  368. package/template/docs/plans/README.md +21 -0
  369. package/template/docs/plans/be/.gitkeep +0 -0
  370. package/template/docs/plans/be/README.md +11 -0
  371. package/template/docs/plans/fe/.gitkeep +0 -0
  372. package/template/docs/plans/fe/README.md +11 -0
  373. package/template/docs/plans/ia/.gitkeep +0 -0
  374. package/template/docs/plans/ia/README.md +17 -0
  375. package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
  376. package/template/docs/plans/ia/deep-dives/README.md +5 -0
  377. package/template/docs/plans/phases/.gitkeep +0 -0
  378. package/template/docs/plans/phases/README.md +11 -0
@@ -0,0 +1,316 @@
1
+ ---
2
+ name: flutter
3
+ description: "Expert Flutter guide covering widget composition, state management (Riverpod, BLoC), navigation (GoRouter), Dart best practices (null safety, freezed, sealed classes), platform channels, performance (const widgets, RepaintBoundary, DevTools), testing (widget tests, golden tests, integration), and deployment (Fastlane, Codemagic). Use when building cross-platform apps with Flutter."
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Flutter Expert Guide
8
+
9
+ > Use this skill when building iOS/Android/Web/Desktop apps with Flutter. Targets Flutter 3.x with Dart 3.x.
10
+
11
+ ## When to Use This Skill
12
+
13
+ - Building cross-platform apps (iOS, Android, Web, Desktop)
14
+ - Designing widget hierarchies and custom UI
15
+ - Implementing state management patterns
16
+ - Optimizing Flutter rendering performance
17
+ - Writing widget and integration tests
18
+
19
+ ## When NOT to Use This Skill
20
+
21
+ - React Native projects → use React Native skill
22
+ - Native iOS only → use SwiftUI
23
+ - Web-only → use a frontend framework
24
+ - Game development → use Flame engine or Godot
25
+
26
+ ---
27
+
28
+ ## 1. Project Structure (CRITICAL)
29
+
30
+ ```
31
+ lib/
32
+ ├── main.dart # Entry point
33
+ ├── app/ # App-level config
34
+ │ ├── app.dart # MaterialApp / GoRouter setup
35
+ │ └── theme.dart # ThemeData
36
+ ├── features/ # Feature-first organization
37
+ │ ├── auth/
38
+ │ │ ├── data/ # Repositories, data sources
39
+ │ │ ├── domain/ # Models, use cases
40
+ │ │ └── presentation/ # Screens, widgets, controllers
41
+ │ └── home/
42
+ │ ├── data/
43
+ │ ├── domain/
44
+ │ └── presentation/
45
+ ├── shared/ # Cross-feature code
46
+ │ ├── widgets/ # Reusable UI components
47
+ │ ├── extensions/ # Dart extensions
48
+ │ └── utils/ # Helpers
49
+ └── l10n/ # Localization
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 2. Widget Composition (CRITICAL)
55
+
56
+ ### Composition Over Inheritance
57
+
58
+ ```dart
59
+ // ✅ Small, focused widgets
60
+ class UserAvatar extends StatelessWidget {
61
+ const UserAvatar({
62
+ super.key,
63
+ required this.imageUrl,
64
+ this.size = 40,
65
+ });
66
+
67
+ final String imageUrl;
68
+ final double size;
69
+
70
+ @override
71
+ Widget build(BuildContext context) {
72
+ return ClipRRect(
73
+ borderRadius: BorderRadius.circular(size / 2),
74
+ child: CachedNetworkImage(
75
+ imageUrl: imageUrl,
76
+ width: size,
77
+ height: size,
78
+ fit: BoxFit.cover,
79
+ placeholder: (_, __) => const CircularProgressIndicator(),
80
+ errorWidget: (_, __, ___) => const Icon(Icons.person),
81
+ ),
82
+ );
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### Use `const` Constructors
88
+
89
+ ```dart
90
+ // ✅ const prevents unnecessary rebuilds
91
+ const SizedBox(height: 16);
92
+ const Divider();
93
+ const Text('Static text');
94
+
95
+ // ✅ const constructor in custom widgets
96
+ class AppCard extends StatelessWidget {
97
+ const AppCard({super.key, required this.child});
98
+ final Widget child;
99
+
100
+ @override
101
+ Widget build(BuildContext context) => Card(child: child);
102
+ }
103
+ ```
104
+
105
+ ---
106
+
107
+ ## 3. State Management
108
+
109
+ ### Riverpod (Recommended)
110
+
111
+ ```dart
112
+ // Provider definition
113
+ final userProvider = FutureProvider.autoDispose<User>((ref) async {
114
+ final repository = ref.watch(userRepositoryProvider);
115
+ return repository.getCurrentUser();
116
+ });
117
+
118
+ // Notifier for mutable state
119
+ @riverpod
120
+ class Counter extends _$Counter {
121
+ @override
122
+ int build() => 0;
123
+
124
+ void increment() => state++;
125
+ void decrement() => state--;
126
+ }
127
+
128
+ // Consuming in a widget
129
+ class HomePage extends ConsumerWidget {
130
+ const HomePage({super.key});
131
+
132
+ @override
133
+ Widget build(BuildContext context, WidgetRef ref) {
134
+ final userAsync = ref.watch(userProvider);
135
+
136
+ return userAsync.when(
137
+ data: (user) => Text('Hello, ${user.name}'),
138
+ loading: () => const CircularProgressIndicator(),
139
+ error: (err, stack) => Text('Error: $err'),
140
+ );
141
+ }
142
+ }
143
+ ```
144
+
145
+ ### BLoC Pattern
146
+
147
+ ```dart
148
+ // Events
149
+ sealed class AuthEvent {}
150
+ class LoginRequested extends AuthEvent {
151
+ final String email;
152
+ final String password;
153
+ LoginRequested({required this.email, required this.password});
154
+ }
155
+
156
+ // States
157
+ sealed class AuthState {}
158
+ class AuthInitial extends AuthState {}
159
+ class AuthLoading extends AuthState {}
160
+ class AuthSuccess extends AuthState {
161
+ final User user;
162
+ AuthSuccess(this.user);
163
+ }
164
+ class AuthFailure extends AuthState {
165
+ final String message;
166
+ AuthFailure(this.message);
167
+ }
168
+
169
+ // Bloc
170
+ class AuthBloc extends Bloc<AuthEvent, AuthState> {
171
+ AuthBloc(this._authRepository) : super(AuthInitial()) {
172
+ on<LoginRequested>(_onLoginRequested);
173
+ }
174
+
175
+ final AuthRepository _authRepository;
176
+
177
+ Future<void> _onLoginRequested(
178
+ LoginRequested event,
179
+ Emitter<AuthState> emit,
180
+ ) async {
181
+ emit(AuthLoading());
182
+ try {
183
+ final user = await _authRepository.login(event.email, event.password);
184
+ emit(AuthSuccess(user));
185
+ } catch (e) {
186
+ emit(AuthFailure(e.toString()));
187
+ }
188
+ }
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ## 4. Navigation (GoRouter)
195
+
196
+ ```dart
197
+ final router = GoRouter(
198
+ initialLocation: '/',
199
+ redirect: (context, state) {
200
+ final isLoggedIn = /* check auth */;
201
+ if (!isLoggedIn && !state.matchedLocation.startsWith('/auth')) {
202
+ return '/auth/login';
203
+ }
204
+ return null;
205
+ },
206
+ routes: [
207
+ ShellRoute(
208
+ builder: (context, state, child) => ScaffoldWithNavBar(child: child),
209
+ routes: [
210
+ GoRoute(
211
+ path: '/',
212
+ builder: (context, state) => const HomeScreen(),
213
+ ),
214
+ GoRoute(
215
+ path: '/profile/:userId',
216
+ builder: (context, state) {
217
+ final userId = state.pathParameters['userId']!;
218
+ return ProfileScreen(userId: userId);
219
+ },
220
+ ),
221
+ ],
222
+ ),
223
+ ],
224
+ );
225
+ ```
226
+
227
+ ---
228
+
229
+ ## 5. Dart Best Practices
230
+
231
+ ### Null Safety & Pattern Matching
232
+
233
+ ```dart
234
+ // ✅ Exhaustive pattern matching (Dart 3)
235
+ String describeStatus(AuthState state) => switch (state) {
236
+ AuthInitial() => 'Not started',
237
+ AuthLoading() => 'Loading...',
238
+ AuthSuccess(:final user) => 'Welcome, ${user.name}',
239
+ AuthFailure(:final message) => 'Error: $message',
240
+ };
241
+
242
+ // ✅ Null-aware operators
243
+ final name = user?.name ?? 'Anonymous';
244
+ final items = list?.where((i) => i.isActive).toList() ?? [];
245
+ ```
246
+
247
+ ### Freezed (Immutable Models)
248
+
249
+ ```dart
250
+ @freezed
251
+ class User with _$User {
252
+ const factory User({
253
+ required String id,
254
+ required String name,
255
+ required String email,
256
+ @Default(false) bool isVerified,
257
+ }) = _User;
258
+
259
+ factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
260
+ }
261
+ ```
262
+
263
+ ---
264
+
265
+ ## 6. Performance
266
+
267
+ | Rule | Detail |
268
+ |------|--------|
269
+ | Use `const` constructors | Prevents widget rebuild when parent rebuilds |
270
+ | `RepaintBoundary` | Isolates expensive painting operations |
271
+ | `ListView.builder` | Lazy builds only visible items |
272
+ | Avoid `setState` at top level | Rebuilds entire subtree; use granular state |
273
+ | Profile with DevTools | Use Flutter DevTools timeline to find jank |
274
+ | `compute()` for heavy work | Isolate heavy computation to background |
275
+
276
+ ---
277
+
278
+ ## 7. Testing
279
+
280
+ ```dart
281
+ // Widget test
282
+ testWidgets('displays user name', (tester) async {
283
+ await tester.pumpWidget(
284
+ const MaterialApp(home: UserCard(name: 'Alice')),
285
+ );
286
+ expect(find.text('Alice'), findsOneWidget);
287
+ });
288
+
289
+ // Golden test
290
+ testWidgets('matches golden', (tester) async {
291
+ await tester.pumpWidget(const MaterialApp(home: AppButton(text: 'OK')));
292
+ await expectLater(find.byType(AppButton), matchesGoldenFile('button.png'));
293
+ });
294
+ ```
295
+
296
+ ---
297
+
298
+ ## 8. Common Anti-Patterns
299
+
300
+ 1. **God widgets** — split into small, focused widgets (one job each)
301
+ 2. **Business logic in widgets** — extract to repositories / use cases
302
+ 3. **Not using `const`** — every static widget should be `const`
303
+ 4. **setState for complex state** — use Riverpod or BLoC
304
+ 5. **Hardcoded strings** — use `l10n` / ARB files for localization
305
+ 6. **Ignoring platform conventions** — use `Cupertino` widgets on iOS, `Material` on Android
306
+ 7. **No error boundaries** — always handle `.error` state in async providers
307
+
308
+ ---
309
+
310
+ ## References
311
+
312
+ - [Flutter Documentation](https://docs.flutter.dev/)
313
+ - [Dart Language](https://dart.dev/language)
314
+ - [Riverpod](https://riverpod.dev/)
315
+ - [GoRouter](https://pub.dev/packages/go_router)
316
+ - [Flutter Performance](https://docs.flutter.dev/perf)
@@ -0,0 +1,337 @@
1
+ ---
2
+ name: react-native
3
+ description: "Expert React Native guide covering Expo vs bare workflow, navigation (React Navigation, Expo Router), native modules, platform-specific code, performance (FlatList, memo, Hermes), state management, animations (Reanimated, Gesture Handler), testing (Detox, RNTL), and deployment (EAS Build, CodePush). Use when building cross-platform mobile apps with React Native."
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # React Native Expert Guide
8
+
9
+ > Use this skill when building iOS/Android apps with React Native. Targets React Native 0.73+ with Expo SDK 50+ or bare workflow.
10
+
11
+ ## When to Use This Skill
12
+
13
+ - Building cross-platform mobile apps (iOS + Android)
14
+ - Choosing between Expo and bare React Native
15
+ - Implementing navigation, animations, or native modules
16
+ - Optimizing mobile performance (lists, renders, memory)
17
+ - Setting up CI/CD for mobile app deployment
18
+
19
+ ## When NOT to Use This Skill
20
+
21
+ - Web-only apps → use Next.js / React
22
+ - Native iOS only → use SwiftUI
23
+ - Native Android only → use Kotlin Compose
24
+ - Game development → use Godot or Unity
25
+ - Flutter projects → use Flutter skill
26
+
27
+ ---
28
+
29
+ ## 1. Project Setup (CRITICAL)
30
+
31
+ ### Expo vs Bare Workflow
32
+
33
+ | Factor | Expo (Managed) | Bare |
34
+ |--------|---------------|------|
35
+ | Setup time | Minutes | Hours |
36
+ | Native modules | Expo Modules API | Manual linking |
37
+ | OTA updates | Built-in (EAS Update) | CodePush |
38
+ | EAS Build | ✅ Cloud builds | Manual Xcode/Gradle |
39
+ | Custom native code | Via config plugins | Full access |
40
+ | **Recommendation** | **Start here** | Only if Expo can't support a requirement |
41
+
42
+ ```bash
43
+ # ✅ Start with Expo
44
+ npx create-expo-app@latest my-app --template blank-typescript
45
+
46
+ # Bare workflow (only when needed)
47
+ npx react-native@latest init MyApp
48
+ ```
49
+
50
+ ### Project Structure
51
+
52
+ ```
53
+ src/
54
+ ├── app/ # Expo Router screens (file-based routing)
55
+ │ ├── (tabs)/ # Tab layout group
56
+ │ │ ├── _layout.tsx
57
+ │ │ ├── index.tsx # Home tab
58
+ │ │ └── profile.tsx # Profile tab
59
+ │ ├── _layout.tsx # Root layout
60
+ │ └── [id].tsx # Dynamic route
61
+ ├── components/ # Reusable UI components
62
+ │ ├── ui/ # Design system primitives
63
+ │ └── features/ # Feature-specific components
64
+ ├── hooks/ # Custom hooks
65
+ ├── services/ # API clients, storage
66
+ ├── stores/ # State management
67
+ ├── constants/ # Colors, dimensions, config
68
+ └── types/ # TypeScript type definitions
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 2. Navigation
74
+
75
+ ### Expo Router (Recommended)
76
+
77
+ ```tsx
78
+ // app/_layout.tsx
79
+ import { Stack } from 'expo-router';
80
+
81
+ export default function RootLayout() {
82
+ return (
83
+ <Stack>
84
+ <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
85
+ <Stack.Screen name="modal" options={{ presentation: 'modal' }} />
86
+ </Stack>
87
+ );
88
+ }
89
+ ```
90
+
91
+ ```tsx
92
+ // app/(tabs)/_layout.tsx
93
+ import { Tabs } from 'expo-router';
94
+ import { Ionicons } from '@expo/vector-icons';
95
+
96
+ export default function TabLayout() {
97
+ return (
98
+ <Tabs>
99
+ <Tabs.Screen
100
+ name="index"
101
+ options={{
102
+ title: 'Home',
103
+ tabBarIcon: ({ color, size }) => (
104
+ <Ionicons name="home" size={size} color={color} />
105
+ ),
106
+ }}
107
+ />
108
+ </Tabs>
109
+ );
110
+ }
111
+ ```
112
+
113
+ ### Typed Navigation
114
+
115
+ ```tsx
116
+ import { useRouter, useLocalSearchParams } from 'expo-router';
117
+
118
+ export default function DetailScreen() {
119
+ const { id } = useLocalSearchParams<{ id: string }>();
120
+ const router = useRouter();
121
+
122
+ return (
123
+ <Pressable onPress={() => router.push(`/items/${id}`)}>
124
+ <Text>View Item {id}</Text>
125
+ </Pressable>
126
+ );
127
+ }
128
+ ```
129
+
130
+ ---
131
+
132
+ ## 3. Performance (CRITICAL)
133
+
134
+ ### FlatList Optimization
135
+
136
+ ```tsx
137
+ import { FlatList, type ListRenderItem } from 'react-native';
138
+
139
+ const renderItem: ListRenderItem<Item> = ({ item }) => (
140
+ <ItemRow item={item} />
141
+ );
142
+
143
+ const keyExtractor = (item: Item) => item.id;
144
+
145
+ <FlatList
146
+ data={items}
147
+ renderItem={renderItem}
148
+ keyExtractor={keyExtractor}
149
+ // ✅ Performance props
150
+ removeClippedSubviews={true}
151
+ maxToRenderPerBatch={10}
152
+ windowSize={5}
153
+ initialNumToRender={10}
154
+ getItemLayout={(_, index) => ({
155
+ length: ITEM_HEIGHT,
156
+ offset: ITEM_HEIGHT * index,
157
+ index,
158
+ })}
159
+ />
160
+ ```
161
+
162
+ ### Memoization
163
+
164
+ ```tsx
165
+ import { memo, useCallback, useMemo } from 'react';
166
+
167
+ // ✅ Memoize list items
168
+ const ItemRow = memo(function ItemRow({ item, onPress }: Props) {
169
+ return (
170
+ <Pressable onPress={() => onPress(item.id)}>
171
+ <Text>{item.title}</Text>
172
+ </Pressable>
173
+ );
174
+ });
175
+
176
+ // ✅ Stable callbacks
177
+ const onItemPress = useCallback((id: string) => {
178
+ router.push(`/items/${id}`);
179
+ }, []);
180
+
181
+ // ✅ Expensive computations
182
+ const filteredItems = useMemo(
183
+ () => items.filter(i => i.category === selectedCategory),
184
+ [items, selectedCategory]
185
+ );
186
+ ```
187
+
188
+ ### Image Optimization
189
+
190
+ ```tsx
191
+ import { Image } from 'expo-image';
192
+
193
+ // ✅ expo-image with caching
194
+ <Image
195
+ source={{ uri: imageUrl }}
196
+ style={{ width: 200, height: 200 }}
197
+ contentFit="cover"
198
+ placeholder={blurhash}
199
+ transition={200}
200
+ />
201
+ ```
202
+
203
+ ---
204
+
205
+ ## 4. Animations
206
+
207
+ ### Reanimated
208
+
209
+ ```tsx
210
+ import Animated, {
211
+ useSharedValue,
212
+ useAnimatedStyle,
213
+ withSpring,
214
+ withTiming,
215
+ } from 'react-native-reanimated';
216
+
217
+ function AnimatedCard() {
218
+ const scale = useSharedValue(1);
219
+
220
+ const animatedStyle = useAnimatedStyle(() => ({
221
+ transform: [{ scale: scale.value }],
222
+ }));
223
+
224
+ const onPressIn = () => { scale.value = withSpring(0.95); };
225
+ const onPressOut = () => { scale.value = withSpring(1); };
226
+
227
+ return (
228
+ <Pressable onPressIn={onPressIn} onPressOut={onPressOut}>
229
+ <Animated.View style={[styles.card, animatedStyle]}>
230
+ <Text>Press me</Text>
231
+ </Animated.View>
232
+ </Pressable>
233
+ );
234
+ }
235
+ ```
236
+
237
+ ### Gesture Handler
238
+
239
+ ```tsx
240
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
241
+
242
+ function SwipeableCard() {
243
+ const translateX = useSharedValue(0);
244
+
245
+ const panGesture = Gesture.Pan()
246
+ .onUpdate((e) => { translateX.value = e.translationX; })
247
+ .onEnd(() => {
248
+ if (Math.abs(translateX.value) > SWIPE_THRESHOLD) {
249
+ translateX.value = withTiming(
250
+ translateX.value > 0 ? SCREEN_WIDTH : -SCREEN_WIDTH
251
+ );
252
+ } else {
253
+ translateX.value = withSpring(0);
254
+ }
255
+ });
256
+
257
+ return (
258
+ <GestureDetector gesture={panGesture}>
259
+ <Animated.View style={useAnimatedStyle(() => ({
260
+ transform: [{ translateX: translateX.value }],
261
+ }))}>
262
+ <Text>Swipe me</Text>
263
+ </Animated.View>
264
+ </GestureDetector>
265
+ );
266
+ }
267
+ ```
268
+
269
+ ---
270
+
271
+ ## 5. Platform-Specific Code
272
+
273
+ ```tsx
274
+ import { Platform, StyleSheet } from 'react-native';
275
+
276
+ const styles = StyleSheet.create({
277
+ container: {
278
+ paddingTop: Platform.OS === 'ios' ? 44 : 0,
279
+ ...Platform.select({
280
+ ios: { shadowColor: '#000', shadowOffset: { width: 0, height: 2 } },
281
+ android: { elevation: 4 },
282
+ }),
283
+ },
284
+ });
285
+
286
+ // File-based: Component.ios.tsx / Component.android.tsx
287
+ ```
288
+
289
+ ---
290
+
291
+ ## 6. Deployment
292
+
293
+ ### EAS Build (Expo)
294
+
295
+ ```bash
296
+ # Install EAS CLI
297
+ npm install -g eas-cli
298
+
299
+ # Configure
300
+ eas build:configure
301
+
302
+ # Build
303
+ eas build --platform all --profile production
304
+
305
+ # Submit to stores
306
+ eas submit --platform ios
307
+ eas submit --platform android
308
+ ```
309
+
310
+ ### OTA Updates
311
+
312
+ ```bash
313
+ # Push JS-only updates without App Store review
314
+ eas update --branch production --message "Bug fix"
315
+ ```
316
+
317
+ ---
318
+
319
+ ## 7. Common Anti-Patterns
320
+
321
+ 1. **Inline styles** — use `StyleSheet.create()` for performance (styles are sent to native once)
322
+ 2. **Anonymous functions in renderItem** — causes re-renders; extract and memoize
323
+ 3. **ScrollView for long lists** — use `FlatList` or `FlashList` for virtualization
324
+ 4. **Ignoring Hermes** — enable Hermes engine for faster startup and lower memory
325
+ 5. **Not testing on real devices** — simulators miss performance issues and native behaviors
326
+ 6. **Storing sensitive data in AsyncStorage** — use `expo-secure-store` for tokens/secrets
327
+ 7. **Giant bundle sizes** — use `react-native-bundle-visualizer` to audit imports
328
+
329
+ ---
330
+
331
+ ## References
332
+
333
+ - [Expo Documentation](https://docs.expo.dev/)
334
+ - [React Native Documentation](https://reactnative.dev/docs/getting-started)
335
+ - [Expo Router](https://docs.expo.dev/router/introduction/)
336
+ - [React Native Reanimated](https://docs.swmansion.com/react-native-reanimated/)
337
+ - [React Native Performance](https://reactnative.dev/docs/performance)