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,432 @@
1
+ ---
2
+ name: mobile-responsive-patterns
3
+ description: Touch-first UI patterns for mobile applications covering touch targets, gestures, safe areas, platform conventions, and responsive layouts. Use when building or specifying mobile interfaces that must feel native and accessible across iOS and Android.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Mobile Responsive Patterns
8
+
9
+ Build mobile interfaces that feel native, accessible, and responsive across device sizes and platforms.
10
+
11
+ ## Touch Target Sizing
12
+
13
+ WCAG 2.1 Success Criterion 2.5.8 requires minimum touch targets of 24x24 CSS pixels, but platform guidelines and usability research recommend larger minimums.
14
+
15
+ | Platform | Minimum Target | Recommended | Spacing |
16
+ |----------|---------------|-------------|---------|
17
+ | iOS (HIG) | 44x44pt | 44x44pt | 8pt between targets |
18
+ | Android (Material) | 48x48dp | 48x48dp | 8dp between targets |
19
+ | WCAG AAA | 44x44 CSS px | 48x48 CSS px | No overlap with adjacent targets |
20
+
21
+ ```tsx
22
+ // React Native - Touchable with enforced minimum hit area
23
+ import { Pressable, StyleSheet } from 'react-native';
24
+
25
+ function IconButton({ icon, onPress, label }: IconButtonProps) {
26
+ return (
27
+ <Pressable
28
+ onPress={onPress}
29
+ accessibilityLabel={label}
30
+ accessibilityRole="button"
31
+ hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
32
+ style={({ pressed }) => [
33
+ styles.button,
34
+ pressed && styles.buttonPressed,
35
+ ]}
36
+ >
37
+ {icon}
38
+ </Pressable>
39
+ );
40
+ }
41
+
42
+ const styles = StyleSheet.create({
43
+ button: {
44
+ minWidth: 48,
45
+ minHeight: 48,
46
+ justifyContent: 'center',
47
+ alignItems: 'center',
48
+ },
49
+ buttonPressed: {
50
+ opacity: 0.7,
51
+ },
52
+ });
53
+ ```
54
+
55
+ **Anti-pattern**: Tiny icons with no padding that are impossible to tap accurately.
56
+ **Anti-pattern**: Text links in dense lists with no vertical spacing between items.
57
+
58
+ ## Gesture Handling
59
+
60
+ ### Common Gestures and Their Conventions
61
+
62
+ | Gesture | Use Case | Feedback Required |
63
+ |---------|----------|-------------------|
64
+ | Tap | Primary action | Visual press state |
65
+ | Long press | Secondary actions / context menu | Haptic + visual highlight |
66
+ | Swipe horizontal | Reveal actions, navigate back, dismiss | Spring animation, action preview |
67
+ | Swipe vertical | Scroll, pull-to-refresh, dismiss sheet | Elastic overscroll |
68
+ | Pinch | Zoom content (maps, images) | Smooth scale transform |
69
+ | Double tap | Zoom to fit / like | Scale animation at tap point |
70
+ | Pan | Move/reorder items, adjust sliders | Drag shadow, drop zone highlight |
71
+
72
+ ```tsx
73
+ // React Native Gesture Handler - Swipe to delete
74
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
75
+ import Animated, {
76
+ useSharedValue,
77
+ useAnimatedStyle,
78
+ withSpring,
79
+ runOnJS,
80
+ } from 'react-native-reanimated';
81
+
82
+ function SwipeableRow({ children, onDelete }: SwipeableRowProps) {
83
+ const translateX = useSharedValue(0);
84
+ const DELETE_THRESHOLD = -80;
85
+
86
+ const pan = Gesture.Pan()
87
+ .activeOffsetX([-10, 10])
88
+ .failOffsetY([-5, 5]) // Prevent conflict with vertical scroll
89
+ .onUpdate((event) => {
90
+ translateX.value = Math.min(0, event.translationX);
91
+ })
92
+ .onEnd(() => {
93
+ if (translateX.value < DELETE_THRESHOLD) {
94
+ runOnJS(onDelete)();
95
+ }
96
+ translateX.value = withSpring(0);
97
+ });
98
+
99
+ const animatedStyle = useAnimatedStyle(() => ({
100
+ transform: [{ translateX: translateX.value }],
101
+ }));
102
+
103
+ return (
104
+ <GestureDetector gesture={pan}>
105
+ <Animated.View style={animatedStyle}>{children}</Animated.View>
106
+ </GestureDetector>
107
+ );
108
+ }
109
+ ```
110
+
111
+ **Anti-pattern**: Custom gestures that conflict with OS-level gestures (swipe-from-edge on iOS = back navigation).
112
+ **Anti-pattern**: Gestures without visual affordance -- users cannot discover invisible interactions.
113
+
114
+ ## Safe Area Insets
115
+
116
+ Modern devices have notches, dynamic islands, home indicators, rounded corners, and camera cutouts that occlude content.
117
+
118
+ ```tsx
119
+ // React Native - SafeAreaView with granular control
120
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
121
+
122
+ function ScreenContainer({ children, edges }: ScreenContainerProps) {
123
+ const insets = useSafeAreaInsets();
124
+
125
+ return (
126
+ <View
127
+ style={{
128
+ flex: 1,
129
+ paddingTop: edges?.includes('top') ? insets.top : 0,
130
+ paddingBottom: edges?.includes('bottom') ? insets.bottom : 0,
131
+ paddingLeft: edges?.includes('left') ? insets.left : 0,
132
+ paddingRight: edges?.includes('right') ? insets.right : 0,
133
+ }}
134
+ >
135
+ {children}
136
+ </View>
137
+ );
138
+ }
139
+
140
+ // Usage: only pad top and bottom, let content extend to horizontal edges
141
+ <ScreenContainer edges={['top', 'bottom']}>
142
+ <ScrollView>{/* content */}</ScrollView>
143
+ </ScreenContainer>
144
+ ```
145
+
146
+ ```css
147
+ /* Web - CSS env() for safe areas */
148
+ .app-container {
149
+ padding-top: env(safe-area-inset-top);
150
+ padding-bottom: env(safe-area-inset-bottom);
151
+ padding-left: env(safe-area-inset-left);
152
+ padding-right: env(safe-area-inset-right);
153
+ }
154
+
155
+ /* Bottom fixed element must clear home indicator */
156
+ .bottom-bar {
157
+ position: fixed;
158
+ bottom: 0;
159
+ padding-bottom: calc(12px + env(safe-area-inset-bottom));
160
+ }
161
+ ```
162
+
163
+ **Anti-pattern**: Ignoring safe areas and letting content render behind the notch or under the home indicator.
164
+ **Anti-pattern**: Applying safe area padding to every nested component instead of once at the screen level.
165
+
166
+ ## iOS vs Android Conventions
167
+
168
+ | Element | iOS (HIG) | Android (Material 3) |
169
+ |---------|-----------|---------------------|
170
+ | Back navigation | Swipe from left edge, top-left chevron | System back button/gesture, top-left arrow |
171
+ | Action placement | Top-right bar button | FAB or top-right icon |
172
+ | Alerts | Centered modal with rounded corners | Centered dialog with title |
173
+ | Tabs | Bottom tab bar (always visible) | Bottom navigation bar or top tabs |
174
+ | Segmented control | `UISegmentedControl` | Material `SegmentedButton` or chip row |
175
+ | Selection | Checkmark trailing | Checkbox leading |
176
+ | Destructive actions | Red text, swipe to reveal | Snackbar with undo |
177
+ | Date/time picker | Spinning wheel or inline calendar | Dialog with calendar/clock |
178
+ | Search | Pull-down or inline in nav bar | Top app bar with search icon expanding |
179
+ | Typography scale | SF Pro (system), dynamic type | Roboto (system), Material type scale |
180
+
181
+ ## Bottom Sheet Patterns
182
+
183
+ Bottom sheets are the dominant modal pattern on mobile. They preserve context and support progressive disclosure.
184
+
185
+ | Type | Behavior | Use Case |
186
+ |------|----------|----------|
187
+ | Modal | Dims background, blocks interaction | Confirmations, forms, detail views |
188
+ | Persistent | No dim, partial screen, draggable | Maps (Google Maps), music player |
189
+ | Expanding | Starts small, drags to full screen | Search, filters, content preview |
190
+
191
+ ```tsx
192
+ // React Native - Bottom sheet with snap points
193
+ import BottomSheet from '@gorhom/bottom-sheet';
194
+
195
+ function FilterSheet({ filters, onApply }: FilterSheetProps) {
196
+ const snapPoints = useMemo(() => ['25%', '50%', '90%'], []);
197
+ const bottomSheetRef = useRef<BottomSheet>(null);
198
+
199
+ return (
200
+ <BottomSheet
201
+ ref={bottomSheetRef}
202
+ snapPoints={snapPoints}
203
+ enablePanDownToClose
204
+ backdropComponent={(props) => (
205
+ <BottomSheetBackdrop {...props} disappearsOnIndex={-1} />
206
+ )}
207
+ handleIndicatorStyle={{ backgroundColor: '#999', width: 40 }}
208
+ >
209
+ <BottomSheetScrollView contentContainerStyle={{ padding: 16 }}>
210
+ {/* Filter controls */}
211
+ </BottomSheetScrollView>
212
+ </BottomSheet>
213
+ );
214
+ }
215
+ ```
216
+
217
+ **Rule**: Always include a visible drag handle (pill indicator) at the top.
218
+ **Rule**: Bottom sheets must be dismissible by dragging down or tapping the backdrop.
219
+
220
+ ## Pull-to-Refresh
221
+
222
+ ```tsx
223
+ // React Native
224
+ import { RefreshControl, FlatList } from 'react-native';
225
+
226
+ function FeedList({ data, onRefresh }: FeedListProps) {
227
+ const [refreshing, setRefreshing] = useState(false);
228
+
229
+ const handleRefresh = useCallback(async () => {
230
+ setRefreshing(true);
231
+ await onRefresh();
232
+ setRefreshing(false);
233
+ }, [onRefresh]);
234
+
235
+ return (
236
+ <FlatList
237
+ data={data}
238
+ renderItem={renderItem}
239
+ refreshControl={
240
+ <RefreshControl
241
+ refreshing={refreshing}
242
+ onRefresh={handleRefresh}
243
+ tintColor="#6366f1" // iOS spinner color
244
+ colors={['#6366f1']} // Android spinner colors
245
+ />
246
+ }
247
+ />
248
+ );
249
+ }
250
+ ```
251
+
252
+ **Anti-pattern**: Pull-to-refresh on screens where the content is not a scrollable list.
253
+ **Anti-pattern**: No loading indicator during refresh, making it unclear if anything is happening.
254
+
255
+ ## Haptic Feedback
256
+
257
+ Use haptics to confirm actions, not to decorate every interaction.
258
+
259
+ | Event | Haptic Type | Platform API |
260
+ |-------|-------------|--------------|
261
+ | Toggle switch | Light impact | `UIImpactFeedbackGenerator(.light)` / `HapticFeedback.perform(HapticFeedbackTypes.impactLight)` |
262
+ | Destructive action confirm | Warning notification | `UINotificationFeedbackGenerator(.warning)` |
263
+ | Success (payment, save) | Success notification | `UINotificationFeedbackGenerator(.success)` |
264
+ | Selection change (picker) | Selection changed | `UISelectionFeedbackGenerator()` |
265
+ | Error / invalid input | Error notification | `UINotificationFeedbackGenerator(.error)` |
266
+
267
+ ```tsx
268
+ import * as Haptics from 'expo-haptics';
269
+
270
+ function ToggleSwitch({ value, onToggle }: ToggleSwitchProps) {
271
+ const handleToggle = () => {
272
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
273
+ onToggle(!value);
274
+ };
275
+
276
+ return <Switch value={value} onValueChange={handleToggle} />;
277
+ }
278
+ ```
279
+
280
+ **Anti-pattern**: Haptics on every tap. Users will disable haptics globally, losing the signal for important actions.
281
+
282
+ ## Keyboard Avoidance
283
+
284
+ When the software keyboard opens, input fields must remain visible and accessible.
285
+
286
+ ```tsx
287
+ // React Native - KeyboardAvoidingView with platform behavior
288
+ import { KeyboardAvoidingView, Platform } from 'react-native';
289
+
290
+ function ChatInput() {
291
+ return (
292
+ <KeyboardAvoidingView
293
+ behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
294
+ keyboardVerticalOffset={Platform.OS === 'ios' ? 88 : 0}
295
+ style={{ flex: 1 }}
296
+ >
297
+ <ScrollView style={{ flex: 1 }}>{/* Messages */}</ScrollView>
298
+ <View style={styles.inputBar}>
299
+ <TextInput
300
+ style={styles.textInput}
301
+ placeholder="Type a message..."
302
+ returnKeyType="send"
303
+ />
304
+ </View>
305
+ </KeyboardAvoidingView>
306
+ );
307
+ }
308
+ ```
309
+
310
+ **Rule**: On iOS, use `behavior="padding"`. On Android, `android:windowSoftInputMode="adjustResize"` in AndroidManifest often suffices.
311
+ **Rule**: Always test with hardware keyboards and external keyboards that do not trigger software keyboard.
312
+
313
+ ## Tab Bar vs Hamburger Navigation
314
+
315
+ Research consistently shows bottom tab bars outperform hamburger menus for discoverability and engagement.
316
+
317
+ | Pattern | When to Use | Limit |
318
+ |---------|-------------|-------|
319
+ | Bottom tab bar | 3-5 top-level destinations | Max 5 tabs |
320
+ | Hamburger / drawer | 6+ destinations, or secondary nav | Always pair with a visible primary nav |
321
+ | Top tabs | Related content categories (e.g., Feed / Trending / Following) | Max 5-7 tabs, scrollable if more |
322
+
323
+ ```tsx
324
+ // React Navigation - Bottom tabs
325
+ import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
326
+
327
+ const Tab = createBottomTabNavigator();
328
+
329
+ function AppNavigator() {
330
+ return (
331
+ <Tab.Navigator
332
+ screenOptions={({ route }) => ({
333
+ tabBarIcon: ({ focused, color, size }) => {
334
+ const icon = TAB_ICONS[route.name];
335
+ return <Icon name={icon} size={size} color={color} />;
336
+ },
337
+ tabBarActiveTintColor: '#6366f1',
338
+ tabBarInactiveTintColor: '#9ca3af',
339
+ tabBarLabelStyle: { fontSize: 12, fontWeight: '600' },
340
+ headerShown: false,
341
+ })}
342
+ >
343
+ <Tab.Screen name="Home" component={HomeScreen} />
344
+ <Tab.Screen name="Search" component={SearchScreen} />
345
+ <Tab.Screen name="Create" component={CreateScreen} />
346
+ <Tab.Screen name="Profile" component={ProfileScreen} />
347
+ </Tab.Navigator>
348
+ );
349
+ }
350
+ ```
351
+
352
+ **Anti-pattern**: Hiding primary navigation behind a hamburger menu when you have 4 or fewer destinations.
353
+ **Anti-pattern**: More than 5 items in a bottom tab bar.
354
+
355
+ ## Responsive Typography
356
+
357
+ Support the user's preferred text size. Both iOS Dynamic Type and Android font scaling must be respected.
358
+
359
+ ```tsx
360
+ // React Native - Scaled text that respects system font size
361
+ import { Text, PixelRatio, StyleSheet } from 'react-native';
362
+
363
+ // Allow system scaling but cap maximum to prevent layout breakage
364
+ const scaledFontSize = (size: number, maxScale: number = 1.5): number => {
365
+ const scale = PixelRatio.getFontScale();
366
+ const cappedScale = Math.min(scale, maxScale);
367
+ return size * cappedScale;
368
+ };
369
+
370
+ const styles = StyleSheet.create({
371
+ heading: {
372
+ fontSize: 24, // React Native respects system font scaling by default
373
+ fontWeight: '700',
374
+ lineHeight: 32,
375
+ },
376
+ body: {
377
+ fontSize: 16,
378
+ lineHeight: 24,
379
+ },
380
+ });
381
+
382
+ // To disable automatic scaling (use sparingly, e.g., fixed badges):
383
+ <Text allowFontScaling={false} style={styles.badge}>3</Text>
384
+ ```
385
+
386
+ **Rule**: Never disable font scaling globally. Only disable it for fixed-size UI elements (badges, tab bar labels).
387
+ **Rule**: Test layouts at the largest system font size. If it breaks, use `ScrollView` or truncation, not font scaling limits.
388
+
389
+ ## Mobile Web Responsive Breakpoints
390
+
391
+ ```css
392
+ /* Mobile-first: base styles target phones */
393
+ .container {
394
+ padding: 16px;
395
+ }
396
+
397
+ /* Small tablets and large phones (landscape) */
398
+ @media (min-width: 600px) {
399
+ .container { padding: 24px; }
400
+ .grid { grid-template-columns: repeat(2, 1fr); }
401
+ }
402
+
403
+ /* Tablets */
404
+ @media (min-width: 905px) {
405
+ .container { padding: 32px; max-width: 840px; margin: 0 auto; }
406
+ .grid { grid-template-columns: repeat(3, 1fr); }
407
+ }
408
+
409
+ /* Prevent tap highlight on touch devices */
410
+ @media (hover: none) and (pointer: coarse) {
411
+ button { -webkit-tap-highlight-color: transparent; }
412
+ button:active { transform: scale(0.97); }
413
+ }
414
+
415
+ /* Hover effects only for non-touch devices */
416
+ @media (hover: hover) and (pointer: fine) {
417
+ button:hover { background-color: var(--hover-bg); }
418
+ }
419
+ ```
420
+
421
+ ## Output Checklist
422
+
423
+ - [ ] Touch targets meet 48x48dp minimum
424
+ - [ ] Gestures have visual affordance and do not conflict with OS gestures
425
+ - [ ] Safe area insets applied at screen container level
426
+ - [ ] Platform conventions respected (iOS HIG / Material 3)
427
+ - [ ] Bottom sheets include drag handle and backdrop dismiss
428
+ - [ ] Keyboard does not obscure active inputs
429
+ - [ ] Navigation uses bottom tabs for 3-5 primary destinations
430
+ - [ ] Typography respects system font scaling
431
+ - [ ] Haptic feedback used for meaningful state changes only
432
+ - [ ] Tested at largest system font size and smallest supported screen width