@jhm1909/ag-kit 0.1.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 (320) hide show
  1. package/.agent/ARCHITECTURE.md +189 -0
  2. package/.agent/known-registries.json +181 -0
  3. package/.agent/mcp_config.json +19 -0
  4. package/.agent/rules/clean-code.md +107 -0
  5. package/.agent/rules/documents.md +177 -0
  6. package/.agent/rules/git-workflow.md +68 -0
  7. package/.agent/rules/nano-banana.md +46 -0
  8. package/.agent/rules/research.md +35 -0
  9. package/.agent/rules/skill-loading.md +100 -0
  10. package/.agent/rules/skill-suggestion.md +47 -0
  11. package/.agent/rules/testing.md +52 -0
  12. package/.agent/rules/workflow-advisor.md +108 -0
  13. package/.agent/rules/workflow-skill-convention.md +127 -0
  14. package/.agent/skills/ai-engineer/SKILL.md +824 -0
  15. package/.agent/skills/ai-engineer/references/agentic-patterns.md +329 -0
  16. package/.agent/skills/ai-engineer/references/evaluation.md +493 -0
  17. package/.agent/skills/ai-engineer/references/llm.md +490 -0
  18. package/.agent/skills/ai-engineer/references/rag-advanced.md +444 -0
  19. package/.agent/skills/ai-engineer/references/serving-optimization.md +531 -0
  20. package/.agent/skills/ai-engineer/vector-db/README.md +137 -0
  21. package/.agent/skills/app-builder/SKILL.md +75 -0
  22. package/.agent/skills/app-builder/agent-coordination.md +71 -0
  23. package/.agent/skills/app-builder/feature-building.md +53 -0
  24. package/.agent/skills/app-builder/project-detection.md +34 -0
  25. package/.agent/skills/app-builder/scaffolding.md +118 -0
  26. package/.agent/skills/app-builder/tech-stack.md +41 -0
  27. package/.agent/skills/app-builder/templates/SKILL.md +39 -0
  28. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  29. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  30. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  31. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  32. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  33. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  34. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  35. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
  36. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
  37. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
  38. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
  39. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  40. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
  41. package/.agent/skills/backend-developer/SKILL.md +763 -0
  42. package/.agent/skills/backend-developer/references/general-patterns.md +65 -0
  43. package/.agent/skills/backend-developer/references/go-echo.md +68 -0
  44. package/.agent/skills/backend-developer/references/go-gin.md +76 -0
  45. package/.agent/skills/backend-developer/references/java-springboot.md +83 -0
  46. package/.agent/skills/backend-developer/references/node-express.md +64 -0
  47. package/.agent/skills/backend-developer/references/node-nestjs.md +69 -0
  48. package/.agent/skills/backend-developer/references/python-django.md +67 -0
  49. package/.agent/skills/backend-developer/references/python-fastapi.md +80 -0
  50. package/.agent/skills/blockchain-engineer/SKILL.md +975 -0
  51. package/.agent/skills/blockchain-engineer/references/deployment.md +28 -0
  52. package/.agent/skills/blockchain-engineer/references/evm.md +14 -0
  53. package/.agent/skills/blockchain-engineer/references/mechanisms.md +32 -0
  54. package/.agent/skills/blockchain-engineer/references/solidity.md +32 -0
  55. package/.agent/skills/business-analysis/SKILL.md +85 -0
  56. package/.agent/skills/business-analysis/references/best-practices/diagrams.md +141 -0
  57. package/.agent/skills/business-analysis/references/domains/ai-agent.md +94 -0
  58. package/.agent/skills/business-analysis/references/domains/blockchain-dapp.md +86 -0
  59. package/.agent/skills/business-analysis/references/domains/ecommerce.md +77 -0
  60. package/.agent/skills/business-analysis/references/domains/education.md +42 -0
  61. package/.agent/skills/business-analysis/references/domains/fintech.md +44 -0
  62. package/.agent/skills/business-analysis/references/domains/fnb.md +82 -0
  63. package/.agent/skills/business-analysis/references/domains/healthtech.md +44 -0
  64. package/.agent/skills/business-analysis/references/domains/internal-tools.md +38 -0
  65. package/.agent/skills/business-analysis/references/domains/marketplace.md +52 -0
  66. package/.agent/skills/business-analysis/references/domains/saas.md +36 -0
  67. package/.agent/skills/business-analysis/references/workflows/collaboration.md +41 -0
  68. package/.agent/skills/business-analysis/scripts/verify_mermaid.py +86 -0
  69. package/.agent/skills/business-analysis/templates/brd.md +46 -0
  70. package/.agent/skills/business-analysis/templates/change-request.md +41 -0
  71. package/.agent/skills/business-analysis/templates/prd-functional.md +38 -0
  72. package/.agent/skills/business-analysis/templates/use-case.md +40 -0
  73. package/.agent/skills/business-analysis/templates/user-story-detailed.md +36 -0
  74. package/.agent/skills/code-review/SKILL.md +113 -0
  75. package/.agent/skills/code-review/references/code-review-reception.md +209 -0
  76. package/.agent/skills/code-review/references/differential_review.md +59 -0
  77. package/.agent/skills/code-review/references/requesting-code-review.md +105 -0
  78. package/.agent/skills/code-review/references/spec_compliance.md +43 -0
  79. package/.agent/skills/code-review/references/verification-before-completion.md +139 -0
  80. package/.agent/skills/context-engineering/SKILL.md +68 -0
  81. package/.agent/skills/context-engineering/references/context-compression.md +84 -0
  82. package/.agent/skills/context-engineering/references/context-degradation.md +93 -0
  83. package/.agent/skills/context-engineering/references/context-fundamentals.md +75 -0
  84. package/.agent/skills/context-engineering/references/context-optimization.md +82 -0
  85. package/.agent/skills/context-engineering/references/evaluation.md +89 -0
  86. package/.agent/skills/context-engineering/references/memory-systems.md +88 -0
  87. package/.agent/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  88. package/.agent/skills/context-engineering/references/project-development.md +97 -0
  89. package/.agent/skills/context-engineering/references/tool-design.md +86 -0
  90. package/.agent/skills/debugging/SKILL.md +60 -0
  91. package/.agent/skills/debugging/references/defense-in-depth.md +130 -0
  92. package/.agent/skills/debugging/references/root-cause-tracing.md +177 -0
  93. package/.agent/skills/debugging/references/systematic-debugging.md +295 -0
  94. package/.agent/skills/debugging/references/verification-before-completion.md +142 -0
  95. package/.agent/skills/designer/SKILL.md +159 -0
  96. package/.agent/skills/designer/concepts/apple-glass.md +48 -0
  97. package/.agent/skills/designer/concepts/aurora-gradients.md +26 -0
  98. package/.agent/skills/designer/concepts/bento-grids.md +14 -0
  99. package/.agent/skills/designer/concepts/claymorphism.md +27 -0
  100. package/.agent/skills/designer/concepts/neo-brutalism.md +32 -0
  101. package/.agent/skills/designer/data/app-interface.csv +31 -0
  102. package/.agent/skills/designer/data/charts.csv +26 -0
  103. package/.agent/skills/designer/data/colors.csv +162 -0
  104. package/.agent/skills/designer/data/design.csv +1776 -0
  105. package/.agent/skills/designer/data/icons.csv +106 -0
  106. package/.agent/skills/designer/data/landing.csv +35 -0
  107. package/.agent/skills/designer/data/products.csv +162 -0
  108. package/.agent/skills/designer/data/react-performance.csv +45 -0
  109. package/.agent/skills/designer/data/styles.csv +85 -0
  110. package/.agent/skills/designer/data/typography.csv +74 -0
  111. package/.agent/skills/designer/data/ui-reasoning.csv +162 -0
  112. package/.agent/skills/designer/data/ux-guidelines.csv +100 -0
  113. package/.agent/skills/designer/references/accessibility.md +172 -0
  114. package/.agent/skills/designer/references/branding.md +88 -0
  115. package/.agent/skills/designer/references/color-theory.md +139 -0
  116. package/.agent/skills/designer/references/creation.md +118 -0
  117. package/.agent/skills/designer/references/design-systems.md +219 -0
  118. package/.agent/skills/designer/references/frontend_design_aesthetics.md +57 -0
  119. package/.agent/skills/designer/references/layout.md +200 -0
  120. package/.agent/skills/designer/references/motion.md +92 -0
  121. package/.agent/skills/designer/references/review.md +100 -0
  122. package/.agent/skills/designer/references/trends.md +209 -0
  123. package/.agent/skills/designer/references/typography.md +190 -0
  124. package/.agent/skills/designer/scripts/remove_background.py +135 -0
  125. package/.agent/skills/designer/scripts/ui-search/__pycache__/core.cpython-314.pyc +0 -0
  126. package/.agent/skills/designer/scripts/ui-search/__pycache__/design_system.cpython-314.pyc +0 -0
  127. package/.agent/skills/designer/scripts/ui-search/core.py +217 -0
  128. package/.agent/skills/designer/scripts/ui-search/design_system.py +1067 -0
  129. package/.agent/skills/designer/scripts/ui-search/search.py +114 -0
  130. package/.agent/skills/designer/templates/design-motion-spec.md +30 -0
  131. package/.agent/skills/devops-engineer/SKILL.md +90 -0
  132. package/.agent/skills/devops-engineer/docker-compose/README.md +47 -0
  133. package/.agent/skills/devops-engineer/references/ci-cd-pipelines.md +76 -0
  134. package/.agent/skills/devops-engineer/references/cloud-providers.md +57 -0
  135. package/.agent/skills/devops-engineer/references/codebase-normalization.md +104 -0
  136. package/.agent/skills/devops-engineer/references/container-orchestration.md +69 -0
  137. package/.agent/skills/devops-engineer/references/iac-tools.md +63 -0
  138. package/.agent/skills/devops-engineer/references/observability-security.md +45 -0
  139. package/.agent/skills/devops-engineer/references/vercel-supabase.md +17 -0
  140. package/.agent/skills/devops-engineer/templates/release-notes.md +8 -0
  141. package/.agent/skills/frontend-developer/SKILL.md +125 -0
  142. package/.agent/skills/frontend-developer/react-nextjs/README.md +90 -0
  143. package/.agent/skills/frontend-developer/references/angular.md +52 -0
  144. package/.agent/skills/frontend-developer/references/composition_patterns.md +60 -0
  145. package/.agent/skills/frontend-developer/references/core-performance.md +68 -0
  146. package/.agent/skills/frontend-developer/references/modern-signals.md +43 -0
  147. package/.agent/skills/frontend-developer/references/react_performance_rules.md +55 -0
  148. package/.agent/skills/frontend-developer/references/vue-nuxt.md +55 -0
  149. package/.agent/skills/frontend-developer/scripts/validate_compliance.py +65 -0
  150. package/.agent/skills/frontend-developer/threejs/README.md +89 -0
  151. package/.agent/skills/frontend-developer/threejs/animation.md +552 -0
  152. package/.agent/skills/frontend-developer/threejs/fundamentals.md +488 -0
  153. package/.agent/skills/frontend-developer/threejs/geometry.md +548 -0
  154. package/.agent/skills/frontend-developer/threejs/interaction.md +660 -0
  155. package/.agent/skills/frontend-developer/threejs/lighting.md +481 -0
  156. package/.agent/skills/frontend-developer/threejs/loaders.md +623 -0
  157. package/.agent/skills/frontend-developer/threejs/materials.md +520 -0
  158. package/.agent/skills/frontend-developer/threejs/postprocessing.md +602 -0
  159. package/.agent/skills/frontend-developer/threejs/router.json +181 -0
  160. package/.agent/skills/frontend-developer/threejs/shaders.md +642 -0
  161. package/.agent/skills/frontend-developer/threejs/textures.md +628 -0
  162. package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
  163. package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
  164. package/.agent/skills/game-development/SKILL.md +167 -0
  165. package/.agent/skills/game-development/game-art/SKILL.md +185 -0
  166. package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
  167. package/.agent/skills/game-development/game-design/SKILL.md +129 -0
  168. package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
  169. package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
  170. package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
  171. package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
  172. package/.agent/skills/game-development/web-games/SKILL.md +150 -0
  173. package/.agent/skills/lead-architect/SKILL.md +85 -0
  174. package/.agent/skills/lead-architect/references/application-architecture.md +70 -0
  175. package/.agent/skills/lead-architect/references/infrastructure.md +51 -0
  176. package/.agent/skills/lead-architect/references/process.md +42 -0
  177. package/.agent/skills/lead-architect/references/system-architecture.md +62 -0
  178. package/.agent/skills/lead-architect/references/web-fullstack.md +82 -0
  179. package/.agent/skills/lead-architect/templates/adr.md +62 -0
  180. package/.agent/skills/lead-architect/templates/rfc.md +46 -0
  181. package/.agent/skills/lead-architect/templates/sdd.md +62 -0
  182. package/.agent/skills/lead-architect/templates/technical-spec.md +61 -0
  183. package/.agent/skills/marketer/SKILL.md +66 -0
  184. package/.agent/skills/marketer/remotion-best-practices/SKILL.md +58 -0
  185. package/.agent/skills/marketer/remotion-best-practices/rules/3d.md +86 -0
  186. package/.agent/skills/marketer/remotion-best-practices/rules/animations.md +29 -0
  187. package/.agent/skills/marketer/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  188. package/.agent/skills/marketer/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  189. package/.agent/skills/marketer/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  190. package/.agent/skills/marketer/remotion-best-practices/rules/assets.md +78 -0
  191. package/.agent/skills/marketer/remotion-best-practices/rules/audio.md +172 -0
  192. package/.agent/skills/marketer/remotion-best-practices/rules/calculate-metadata.md +104 -0
  193. package/.agent/skills/marketer/remotion-best-practices/rules/can-decode.md +75 -0
  194. package/.agent/skills/marketer/remotion-best-practices/rules/charts.md +58 -0
  195. package/.agent/skills/marketer/remotion-best-practices/rules/compositions.md +146 -0
  196. package/.agent/skills/marketer/remotion-best-practices/rules/display-captions.md +126 -0
  197. package/.agent/skills/marketer/remotion-best-practices/rules/extract-frames.md +229 -0
  198. package/.agent/skills/marketer/remotion-best-practices/rules/fonts.md +152 -0
  199. package/.agent/skills/marketer/remotion-best-practices/rules/get-audio-duration.md +58 -0
  200. package/.agent/skills/marketer/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  201. package/.agent/skills/marketer/remotion-best-practices/rules/get-video-duration.md +58 -0
  202. package/.agent/skills/marketer/remotion-best-practices/rules/gifs.md +138 -0
  203. package/.agent/skills/marketer/remotion-best-practices/rules/images.md +130 -0
  204. package/.agent/skills/marketer/remotion-best-practices/rules/import-srt-captions.md +67 -0
  205. package/.agent/skills/marketer/remotion-best-practices/rules/lottie.md +68 -0
  206. package/.agent/skills/marketer/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
  207. package/.agent/skills/marketer/remotion-best-practices/rules/measuring-text.md +143 -0
  208. package/.agent/skills/marketer/remotion-best-practices/rules/sequencing.md +106 -0
  209. package/.agent/skills/marketer/remotion-best-practices/rules/tailwind.md +11 -0
  210. package/.agent/skills/marketer/remotion-best-practices/rules/text-animations.md +20 -0
  211. package/.agent/skills/marketer/remotion-best-practices/rules/timing.md +179 -0
  212. package/.agent/skills/marketer/remotion-best-practices/rules/transcribe-captions.md +19 -0
  213. package/.agent/skills/marketer/remotion-best-practices/rules/transitions.md +122 -0
  214. package/.agent/skills/marketer/remotion-best-practices/rules/trimming.md +53 -0
  215. package/.agent/skills/marketer/remotion-best-practices/rules/videos.md +171 -0
  216. package/.agent/skills/mcp-builder/SKILL.md +76 -0
  217. package/.agent/skills/mcp-builder/references/evaluation.md +602 -0
  218. package/.agent/skills/mcp-builder/references/mcp_best_practices.md +249 -0
  219. package/.agent/skills/mcp-builder/references/node_mcp_server.md +970 -0
  220. package/.agent/skills/mcp-builder/references/python_mcp_server.md +719 -0
  221. package/.agent/skills/mobile-developer/SKILL.md +83 -0
  222. package/.agent/skills/mobile-developer/api-routes/SKILL.md +389 -0
  223. package/.agent/skills/mobile-developer/building-ui/SKILL.md +335 -0
  224. package/.agent/skills/mobile-developer/building-ui/references/animations.md +220 -0
  225. package/.agent/skills/mobile-developer/building-ui/references/controls.md +270 -0
  226. package/.agent/skills/mobile-developer/building-ui/references/form-sheet.md +227 -0
  227. package/.agent/skills/mobile-developer/building-ui/references/gradients.md +106 -0
  228. package/.agent/skills/mobile-developer/building-ui/references/icons.md +213 -0
  229. package/.agent/skills/mobile-developer/building-ui/references/media.md +198 -0
  230. package/.agent/skills/mobile-developer/building-ui/references/route-structure.md +229 -0
  231. package/.agent/skills/mobile-developer/building-ui/references/search.md +248 -0
  232. package/.agent/skills/mobile-developer/building-ui/references/storage.md +121 -0
  233. package/.agent/skills/mobile-developer/building-ui/references/tabs.md +368 -0
  234. package/.agent/skills/mobile-developer/building-ui/references/visual-effects.md +197 -0
  235. package/.agent/skills/mobile-developer/building-ui/references/webgpu-three.md +605 -0
  236. package/.agent/skills/mobile-developer/cicd-workflows/SKILL.md +107 -0
  237. package/.agent/skills/mobile-developer/cicd-workflows/scripts/fetch.js +109 -0
  238. package/.agent/skills/mobile-developer/cicd-workflows/scripts/package.json +11 -0
  239. package/.agent/skills/mobile-developer/cicd-workflows/scripts/validate.js +84 -0
  240. package/.agent/skills/mobile-developer/data-fetching/SKILL.md +508 -0
  241. package/.agent/skills/mobile-developer/deployment/SKILL.md +207 -0
  242. package/.agent/skills/mobile-developer/deployment/references/app-store-metadata.md +479 -0
  243. package/.agent/skills/mobile-developer/deployment/references/ios-app-store.md +355 -0
  244. package/.agent/skills/mobile-developer/deployment/references/play-store.md +246 -0
  245. package/.agent/skills/mobile-developer/deployment/references/testflight.md +58 -0
  246. package/.agent/skills/mobile-developer/deployment/references/workflows.md +200 -0
  247. package/.agent/skills/mobile-developer/dev-client/SKILL.md +181 -0
  248. package/.agent/skills/mobile-developer/tailwind-setup/SKILL.md +501 -0
  249. package/.agent/skills/mobile-developer/upgrading-expo/SKILL.md +116 -0
  250. package/.agent/skills/mobile-developer/upgrading-expo/references/new-architecture.md +79 -0
  251. package/.agent/skills/mobile-developer/upgrading-expo/references/react-19.md +79 -0
  252. package/.agent/skills/mobile-developer/upgrading-expo/references/react-compiler.md +59 -0
  253. package/.agent/skills/mobile-developer/use-dom/SKILL.md +434 -0
  254. package/.agent/skills/modern-python/SKILL.md +122 -0
  255. package/.agent/skills/project-manager/SKILL.md +110 -0
  256. package/.agent/skills/project-manager/references/ba-collaboration.md +62 -0
  257. package/.agent/skills/project-manager/references/discovery_process.md +52 -0
  258. package/.agent/skills/project-manager/references/jobs_to_be_done.md +51 -0
  259. package/.agent/skills/project-manager/references/prd_development.md +52 -0
  260. package/.agent/skills/project-manager/references/rules-guide.md +55 -0
  261. package/.agent/skills/project-manager/references/skill-creation.md +98 -0
  262. package/.agent/skills/project-manager/references/strategic-frameworks.md +62 -0
  263. package/.agent/skills/project-manager/references/task-decomposition.md +194 -0
  264. package/.agent/skills/project-manager/references/workflows-guide.md +44 -0
  265. package/.agent/skills/project-manager/router.json +160 -0
  266. package/.agent/skills/project-manager/scripts/compare_skill.py +177 -0
  267. package/.agent/skills/project-manager/scripts/encoding_utils.py +36 -0
  268. package/.agent/skills/project-manager/scripts/init_skill.py +190 -0
  269. package/.agent/skills/project-manager/scripts/quick_validate.py +123 -0
  270. package/.agent/skills/project-manager/templates/pm-strategy-one-pager.md +6 -0
  271. package/.agent/skills/project-manager/templates/prd-strategic.md +38 -0
  272. package/.agent/skills/project-manager/templates/skill-questionnaire.md +118 -0
  273. package/.agent/skills/project-manager/templates/user-story-simple.md +14 -0
  274. package/.agent/skills/prompt-engineer/SKILL.md +319 -0
  275. package/.agent/skills/prompt-engineer/skill-creator/README.md +47 -0
  276. package/.agent/skills/qa-tester/SKILL.md +142 -0
  277. package/.agent/skills/qa-tester/assets/README.md +8 -0
  278. package/.agent/skills/qa-tester/references/accessibility_testing.md +35 -0
  279. package/.agent/skills/qa-tester/references/agent_browser.md +38 -0
  280. package/.agent/skills/qa-tester/references/automation/api_testing.md +23 -0
  281. package/.agent/skills/qa-tester/references/automation/best_practices.md +14 -0
  282. package/.agent/skills/qa-tester/references/automation/jest_vitest.md +26 -0
  283. package/.agent/skills/qa-tester/references/automation/playwright.md +30 -0
  284. package/.agent/skills/qa-tester/references/e2e_testing.md +46 -0
  285. package/.agent/skills/qa-tester/references/integration_testing.md +39 -0
  286. package/.agent/skills/qa-tester/references/performance_testing.md +44 -0
  287. package/.agent/skills/qa-tester/references/property_based_testing.md +44 -0
  288. package/.agent/skills/qa-tester/references/security_audit.md +53 -0
  289. package/.agent/skills/qa-tester/references/security_testing.md +30 -0
  290. package/.agent/skills/qa-tester/references/sharp_edges.md +49 -0
  291. package/.agent/skills/qa-tester/references/static_analysis.md +52 -0
  292. package/.agent/skills/qa-tester/references/supply_chain_audit.md +54 -0
  293. package/.agent/skills/qa-tester/references/test_case_standards.md +96 -0
  294. package/.agent/skills/qa-tester/references/test_report_template.md +32 -0
  295. package/.agent/skills/qa-tester/references/unit_testing.md +50 -0
  296. package/.agent/skills/qa-tester/references/visual_testing.md +32 -0
  297. package/.agent/skills/qa-tester/templates/uat-plan.md +34 -0
  298. package/.agent/skills/research-first/SKILL.md +118 -0
  299. package/.agent/skills-manifest.json +264 -0
  300. package/.agent/workflows/absorb.md +176 -0
  301. package/.agent/workflows/bootstrap.md +91 -0
  302. package/.agent/workflows/brainstorm.md +168 -0
  303. package/.agent/workflows/break-tasks.md +77 -0
  304. package/.agent/workflows/commit.md +349 -0
  305. package/.agent/workflows/custom-behavior.md +64 -0
  306. package/.agent/workflows/debug.md +65 -0
  307. package/.agent/workflows/development.md +49 -0
  308. package/.agent/workflows/documentation.md +221 -0
  309. package/.agent/workflows/gen-tests.md +53 -0
  310. package/.agent/workflows/guide.md +196 -0
  311. package/.agent/workflows/implement-feature.md +182 -0
  312. package/.agent/workflows/install-skill.md +193 -0
  313. package/.agent/workflows/qa.md +54 -0
  314. package/.agent/workflows/ui-ux-design.md +108 -0
  315. package/LICENSE +21 -0
  316. package/README.md +258 -0
  317. package/cli/index.js +345 -0
  318. package/cli/migrate-skills.js +113 -0
  319. package/cli/verify.js +291 -0
  320. package/package.json +49 -0
@@ -0,0 +1,207 @@
1
+ ---
2
+ name: deployment
3
+ description: >
4
+ Deploying Expo apps to iOS App Store, Android Play Store, web hosting, and API routes
5
+ license: MIT
6
+ compatibility: Claude Code, Cursor, Gemini CLI, GitHub Copilot
7
+ metadata:
8
+ author: jhm1909
9
+ version: "2.0.0"
10
+ domain: mobile
11
+ estimated_tokens: 3000
12
+ ---
13
+
14
+ # Deployment
15
+
16
+ ## Knowledge Graph
17
+
18
+ - **extends**: [[mobile-developer]]
19
+ - **requires**: []
20
+ - **suggests**: [[cicd-workflows]], [[devops-engineer]]
21
+ - **conflicts**: []
22
+ - **enhances**: []
23
+ - **moc**: [[mobile-development-moc]]
24
+
25
+ ## Deployment Overview
26
+
27
+ This skill covers deploying Expo applications across all platforms using EAS (Expo Application Services).
28
+
29
+ ## References
30
+
31
+ Consult these resources as needed:
32
+
33
+ - ./references/workflows.md -- CI/CD workflows for automated deployments and PR previews
34
+ - ./references/testflight.md -- Submitting iOS builds to TestFlight for beta testing
35
+ - ./references/app-store-metadata.md -- Managing App Store metadata and ASO optimization
36
+ - ./references/play-store.md -- Submitting Android builds to Google Play Store
37
+ - ./references/ios-app-store.md -- iOS App Store submission and review process
38
+
39
+ ## Quick Start
40
+
41
+ ### Install EAS CLI
42
+
43
+ ```bash
44
+ npm install -g eas-cli
45
+ eas login
46
+ ```
47
+
48
+ ### Initialize EAS
49
+
50
+ ```bash
51
+ npx eas-cli@latest init
52
+ ```
53
+
54
+ This creates `eas.json` with build profiles.
55
+
56
+ ## Build Commands
57
+
58
+ ### Production Builds
59
+
60
+ ```bash
61
+ # iOS App Store build
62
+ npx eas-cli@latest build -p ios --profile production
63
+
64
+ # Android Play Store build
65
+ npx eas-cli@latest build -p android --profile production
66
+
67
+ # Both platforms
68
+ npx eas-cli@latest build --profile production
69
+ ```
70
+
71
+ ### Submit to Stores
72
+
73
+ ```bash
74
+ # iOS: Build and submit to App Store Connect
75
+ npx eas-cli@latest build -p ios --profile production --submit
76
+
77
+ # Android: Build and submit to Play Store
78
+ npx eas-cli@latest build -p android --profile production --submit
79
+
80
+ # Shortcut for iOS TestFlight
81
+ npx testflight
82
+ ```
83
+
84
+ ## Web Deployment
85
+
86
+ Deploy web apps using EAS Hosting:
87
+
88
+ ```bash
89
+ # Deploy to production
90
+ npx expo export -p web
91
+ npx eas-cli@latest deploy --prod
92
+
93
+ # Deploy PR preview
94
+ npx eas-cli@latest deploy
95
+ ```
96
+
97
+ ## EAS Configuration
98
+
99
+ Standard `eas.json` for production deployments:
100
+
101
+ ```json
102
+ {
103
+ "cli": {
104
+ "version": ">= 16.0.1",
105
+ "appVersionSource": "remote"
106
+ },
107
+ "build": {
108
+ "production": {
109
+ "autoIncrement": true,
110
+ "ios": {
111
+ "resourceClass": "m-medium"
112
+ }
113
+ },
114
+ "development": {
115
+ "developmentClient": true,
116
+ "distribution": "internal"
117
+ }
118
+ },
119
+ "submit": {
120
+ "production": {
121
+ "ios": {
122
+ "appleId": "your@email.com",
123
+ "ascAppId": "1234567890"
124
+ },
125
+ "android": {
126
+ "serviceAccountKeyPath": "./google-service-account.json",
127
+ "track": "internal"
128
+ }
129
+ }
130
+ }
131
+ }
132
+ ```
133
+
134
+ ## Platform-Specific Guides
135
+
136
+ ### iOS
137
+
138
+ - Use `npx testflight` for quick TestFlight submissions
139
+ - Configure Apple credentials via `eas credentials`
140
+ - See ./reference/testflight.md for credential setup
141
+ - See ./reference/ios-app-store.md for App Store submission
142
+
143
+ ### Android
144
+
145
+ - Set up Google Play Console service account
146
+ - Configure tracks: internal → closed → open → production
147
+ - See ./reference/play-store.md for detailed setup
148
+
149
+ ### Web
150
+
151
+ - EAS Hosting provides preview URLs for PRs
152
+ - Production deploys to your custom domain
153
+ - See ./reference/workflows.md for CI/CD automation
154
+
155
+ ## Automated Deployments
156
+
157
+ Use EAS Workflows for CI/CD:
158
+
159
+ ```yaml
160
+ # .eas/workflows/release.yml
161
+ name: Release
162
+
163
+ on:
164
+ push:
165
+ branches: [main]
166
+
167
+ jobs:
168
+ build-ios:
169
+ type: build
170
+ params:
171
+ platform: ios
172
+ profile: production
173
+
174
+ submit-ios:
175
+ type: submit
176
+ needs: [build-ios]
177
+ params:
178
+ platform: ios
179
+ profile: production
180
+ ```
181
+
182
+ See ./reference/workflows.md for more workflow examples.
183
+
184
+ ## Version Management
185
+
186
+ EAS manages version numbers automatically with `appVersionSource: "remote"`:
187
+
188
+ ```bash
189
+ # Check current versions
190
+ eas build:version:get
191
+
192
+ # Manually set version
193
+ eas build:version:set -p ios --build-number 42
194
+ ```
195
+
196
+ ## Monitoring
197
+
198
+ ```bash
199
+ # List recent builds
200
+ eas build:list
201
+
202
+ # Check build status
203
+ eas build:view
204
+
205
+ # View submission status
206
+ eas submit:list
207
+ ```
@@ -0,0 +1,479 @@
1
+ # App Store Metadata
2
+
3
+ Manage App Store metadata and optimize for ASO using EAS Metadata.
4
+
5
+ ## What is EAS Metadata?
6
+
7
+ EAS Metadata automates App Store presence management from the command line using a `store.config.json` file instead of manually filling forms in App Store Connect. It includes built-in validation to catch common rejection pitfalls.
8
+
9
+ **Current Status:** Preview, Apple App Store only.
10
+
11
+ ## Getting Started
12
+
13
+ ### Pull Existing Metadata
14
+
15
+ If your app is already published, pull current metadata:
16
+
17
+ ```bash
18
+ eas metadata:pull
19
+ ```
20
+
21
+ This creates `store.config.json` with your current App Store configuration.
22
+
23
+ ### Push Metadata Updates
24
+
25
+ After editing your config, push changes:
26
+
27
+ ```bash
28
+ eas metadata:push
29
+ ```
30
+
31
+ **Important:** You must submit a binary via `eas submit` before pushing metadata for new apps.
32
+
33
+ ## Configuration File
34
+
35
+ Create `store.config.json` at your project root:
36
+
37
+ ```json
38
+ {
39
+ "configVersion": 0,
40
+ "apple": {
41
+ "copyright": "2025 Your Company",
42
+ "categories": ["UTILITIES", "PRODUCTIVITY"],
43
+ "info": {
44
+ "en-US": {
45
+ "title": "App Name",
46
+ "subtitle": "Your compelling tagline",
47
+ "description": "Full app description...",
48
+ "keywords": ["keyword1", "keyword2", "keyword3"],
49
+ "releaseNotes": "What's new in this version...",
50
+ "promoText": "Limited time offer!",
51
+ "privacyPolicyUrl": "https://example.com/privacy",
52
+ "supportUrl": "https://example.com/support",
53
+ "marketingUrl": "https://example.com"
54
+ }
55
+ },
56
+ "advisory": {
57
+ "alcoholTobaccoOrDrugUseOrReferences": "NONE",
58
+ "gamblingSimulated": "NONE",
59
+ "medicalOrTreatmentInformation": "NONE",
60
+ "profanityOrCrudeHumor": "NONE",
61
+ "sexualContentGraphicAndNudity": "NONE",
62
+ "sexualContentOrNudity": "NONE",
63
+ "horrorOrFearThemes": "NONE",
64
+ "matureOrSuggestiveThemes": "NONE",
65
+ "violenceCartoonOrFantasy": "NONE",
66
+ "violenceRealistic": "NONE",
67
+ "violenceRealisticProlongedGraphicOrSadistic": "NONE",
68
+ "contests": "NONE",
69
+ "gambling": false,
70
+ "unrestrictedWebAccess": false,
71
+ "seventeenPlus": false
72
+ },
73
+ "release": {
74
+ "automaticRelease": true,
75
+ "phasedRelease": true
76
+ },
77
+ "review": {
78
+ "firstName": "John",
79
+ "lastName": "Doe",
80
+ "email": "review@example.com",
81
+ "phone": "+1 555-123-4567",
82
+ "notes": "Demo account: test@example.com / password123"
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ ## App Store Optimization (ASO)
89
+
90
+ ### Title Optimization (30 characters max)
91
+
92
+ The title is the most important ranking factor. Include your brand name and 1-2 strongest keywords.
93
+
94
+ ```json
95
+ {
96
+ "title": "Budgetly - Money Tracker"
97
+ }
98
+ ```
99
+
100
+ **Best Practices:**
101
+
102
+ - Brand name first for recognition
103
+ - Include highest-volume keyword
104
+ - Avoid generic words like "app" or "the"
105
+ - Title keywords boost rankings by ~10%
106
+
107
+ ### Subtitle Optimization (30 characters max)
108
+
109
+ The subtitle appears below your title in search results. Use it for your unique value proposition.
110
+
111
+ ```json
112
+ {
113
+ "subtitle": "Smart Expense & Budget Planner"
114
+ }
115
+ ```
116
+
117
+ **Best Practices:**
118
+
119
+ - Don't duplicate keywords from title (Apple counts each word once)
120
+ - Highlight your main differentiator
121
+ - Include secondary high-value keywords
122
+ - Focus on benefits, not features
123
+
124
+ ### Keywords Field (100 characters max)
125
+
126
+ Hidden from users but crucial for discoverability. Use comma-separated keywords without spaces after commas.
127
+
128
+ ```json
129
+ {
130
+ "keywords": [
131
+ "finance,budget,expense,money,tracker,savings,bills,income,spending,wallet,personal,weekly,monthly"
132
+ ]
133
+ }
134
+ ```
135
+
136
+ **Best Practices:**
137
+
138
+ - Use all 100 characters
139
+ - Separate with commas only (no spaces)
140
+ - No duplicates from title/subtitle
141
+ - Include singular forms (Apple handles plurals)
142
+ - Add synonyms and alternate spellings
143
+ - Include competitor brand names (carefully)
144
+ - Use digits instead of spelled numbers ("5" not "five")
145
+ - Skip articles and prepositions
146
+
147
+ ### Description Optimization
148
+
149
+ The iOS description is NOT indexed for search but critical for conversion. Focus on convincing users to download.
150
+
151
+ ```json
152
+ {
153
+ "description": "Take control of your finances with Budgetly, the intuitive money management app trusted by over 1 million users.\n\nKEY FEATURES:\n• Smart budget tracking - Set limits and watch your progress\n• Expense categorization - Know exactly where your money goes\n• Bill reminders - Never miss a payment\n• Beautiful charts - Visualize your financial health\n• Bank sync - Connect 10,000+ institutions\n• Cloud backup - Your data, always safe\n\nWHY BUDGETLY?\nUnlike complex spreadsheets or basic calculators, Budgetly learns your spending habits and provides personalized insights. Our users save an average of $300/month within 3 months.\n\nPRIVACY FIRST\nYour financial data is encrypted end-to-end. We never sell your information.\n\nDownload Budgetly today and start your journey to financial freedom!"
154
+ }
155
+ ```
156
+
157
+ **Best Practices:**
158
+
159
+ - Front-load the first 3 lines (visible before "more")
160
+ - Use bullet points for features
161
+ - Include social proof (user counts, ratings, awards)
162
+ - Add a clear call-to-action
163
+ - Mention privacy/security for sensitive apps
164
+ - Update with each release
165
+
166
+ ### Release Notes
167
+
168
+ Shown to existing users deciding whether to update.
169
+
170
+ ```json
171
+ {
172
+ "releaseNotes": "Version 2.5 brings exciting improvements:\n\n• NEW: Dark mode support\n• NEW: Widget for home screen\n• IMPROVED: 50% faster sync\n• FIXED: Notification timing issues\n\nLove Budgetly? Please leave a review!"
173
+ }
174
+ ```
175
+
176
+ ### Promo Text (170 characters max)
177
+
178
+ Appears above description; can be updated without new binary. Great for time-sensitive promotions.
179
+
180
+ ```json
181
+ {
182
+ "promoText": "🎉 New Year Special: Premium features free for 30 days! Start 2025 with better finances."
183
+ }
184
+ ```
185
+
186
+ ## Categories
187
+
188
+ Primary category is most important for browsing and rankings.
189
+
190
+ ```json
191
+ {
192
+ "categories": ["FINANCE", "PRODUCTIVITY"]
193
+ }
194
+ ```
195
+
196
+ **Available Categories:**
197
+
198
+ - BOOKS, BUSINESS, DEVELOPER_TOOLS, EDUCATION
199
+ - ENTERTAINMENT, FINANCE, FOOD_AND_DRINK
200
+ - GAMES (with subcategories), GRAPHICS_AND_DESIGN
201
+ - HEALTH_AND_FITNESS, KIDS (age-gated)
202
+ - LIFESTYLE, MAGAZINES_AND_NEWSPAPERS
203
+ - MEDICAL, MUSIC, NAVIGATION, NEWS
204
+ - PHOTO_AND_VIDEO, PRODUCTIVITY, REFERENCE
205
+ - SHOPPING, SOCIAL_NETWORKING, SPORTS
206
+ - STICKERS (with subcategories), TRAVEL
207
+ - UTILITIES, WEATHER
208
+
209
+ ## Localization
210
+
211
+ Localize metadata for each target market. Keywords should be researched per locale—direct translations often miss regional search terms.
212
+
213
+ ```json
214
+ {
215
+ "info": {
216
+ "en-US": {
217
+ "title": "Budgetly - Money Tracker",
218
+ "subtitle": "Smart Expense Planner",
219
+ "keywords": ["budget,finance,money,expense,tracker"]
220
+ },
221
+ "es-ES": {
222
+ "title": "Budgetly - Control de Gastos",
223
+ "subtitle": "Planificador de Presupuesto",
224
+ "keywords": ["presupuesto,finanzas,dinero,gastos,ahorro"]
225
+ },
226
+ "ja": {
227
+ "title": "Budgetly - 家計簿アプリ",
228
+ "subtitle": "簡単支出管理",
229
+ "keywords": ["家計簿,支出,予算,節約,お金"]
230
+ },
231
+ "de-DE": {
232
+ "title": "Budgetly - Haushaltsbuch",
233
+ "subtitle": "Ausgaben Verwalten",
234
+ "keywords": ["budget,finanzen,geld,ausgaben,sparen"]
235
+ }
236
+ }
237
+ }
238
+ ```
239
+
240
+ **Supported Locales:**
241
+ `ar-SA`, `ca`, `cs`, `da`, `de-DE`, `el`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `fi`, `fr-CA`, `fr-FR`, `he`, `hi`, `hr`, `hu`, `id`, `it`, `ja`, `ko`, `ms`, `nl-NL`, `no`, `pl`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sv`, `th`, `tr`, `uk`, `vi`, `zh-Hans`, `zh-Hant`
242
+
243
+ ## Dynamic Configuration
244
+
245
+ Use JavaScript for dynamic values like copyright year or fetched translations.
246
+
247
+ ### Basic Dynamic Config
248
+
249
+ ```js
250
+ // store.config.js
251
+ const baseConfig = require("./store.config.json");
252
+
253
+ const year = new Date().getFullYear();
254
+
255
+ module.exports = {
256
+ ...baseConfig,
257
+ apple: {
258
+ ...baseConfig.apple,
259
+ copyright: `${year} Your Company, Inc.`,
260
+ },
261
+ };
262
+ ```
263
+
264
+ ### Async Configuration (External Localization)
265
+
266
+ ```js
267
+ // store.config.js
268
+ module.exports = async () => {
269
+ const baseConfig = require("./store.config.json");
270
+
271
+ // Fetch translations from CMS/localization service
272
+ const translations = await fetch(
273
+ "https://api.example.com/app-store-copy"
274
+ ).then((r) => r.json());
275
+
276
+ return {
277
+ ...baseConfig,
278
+ apple: {
279
+ ...baseConfig.apple,
280
+ info: translations,
281
+ },
282
+ };
283
+ };
284
+ ```
285
+
286
+ ### Environment-Based Config
287
+
288
+ ```js
289
+ // store.config.js
290
+ const baseConfig = require("./store.config.json");
291
+
292
+ const isProduction = process.env.EAS_BUILD_PROFILE === "production";
293
+
294
+ module.exports = {
295
+ ...baseConfig,
296
+ apple: {
297
+ ...baseConfig.apple,
298
+ info: {
299
+ "en-US": {
300
+ ...baseConfig.apple.info["en-US"],
301
+ promoText: isProduction
302
+ ? "Download now and get started!"
303
+ : "[BETA] Help us test new features!",
304
+ },
305
+ },
306
+ },
307
+ };
308
+ ```
309
+
310
+ Update `eas.json` to use JS config:
311
+
312
+ ```json
313
+ {
314
+ "cli": {
315
+ "metadataPath": "./store.config.js"
316
+ }
317
+ }
318
+ ```
319
+
320
+ ## Age Rating (Advisory)
321
+
322
+ Answer content questions honestly to get an appropriate age rating.
323
+
324
+ **Content Descriptors:**
325
+
326
+ - `NONE` - Content not present
327
+ - `INFREQUENT_OR_MILD` - Occasional mild content
328
+ - `FREQUENT_OR_INTENSE` - Regular or strong content
329
+
330
+ ```json
331
+ {
332
+ "advisory": {
333
+ "alcoholTobaccoOrDrugUseOrReferences": "NONE",
334
+ "contests": "NONE",
335
+ "gambling": false,
336
+ "gamblingSimulated": "NONE",
337
+ "horrorOrFearThemes": "NONE",
338
+ "matureOrSuggestiveThemes": "NONE",
339
+ "medicalOrTreatmentInformation": "NONE",
340
+ "profanityOrCrudeHumor": "NONE",
341
+ "sexualContentGraphicAndNudity": "NONE",
342
+ "sexualContentOrNudity": "NONE",
343
+ "unrestrictedWebAccess": false,
344
+ "violenceCartoonOrFantasy": "NONE",
345
+ "violenceRealistic": "NONE",
346
+ "violenceRealisticProlongedGraphicOrSadistic": "NONE",
347
+ "seventeenPlus": false,
348
+ "kidsAgeBand": "NINE_TO_ELEVEN"
349
+ }
350
+ }
351
+ ```
352
+
353
+ **Kids Age Bands:** `FIVE_AND_UNDER`, `SIX_TO_EIGHT`, `NINE_TO_ELEVEN`
354
+
355
+ ## Release Strategy
356
+
357
+ Control how your app rolls out to users.
358
+
359
+ ```json
360
+ {
361
+ "release": {
362
+ "automaticRelease": true,
363
+ "phasedRelease": true
364
+ }
365
+ }
366
+ ```
367
+
368
+ **Options:**
369
+
370
+ - `automaticRelease: true` - Release immediately upon approval
371
+ - `automaticRelease: false` - Manual release after approval
372
+ - `automaticRelease: "2025-02-01T10:00:00Z"` - Schedule release (RFC 3339)
373
+ - `phasedRelease: true` - 7-day gradual rollout (1%, 2%, 5%, 10%, 20%, 50%, 100%)
374
+
375
+ ## Review Information
376
+
377
+ Provide contact info and test credentials for the App Review team.
378
+
379
+ ```json
380
+ {
381
+ "review": {
382
+ "firstName": "Jane",
383
+ "lastName": "Smith",
384
+ "email": "app-review@company.com",
385
+ "phone": "+1 (555) 123-4567",
386
+ "demoUsername": "demo@example.com",
387
+ "demoPassword": "ReviewDemo2025!",
388
+ "notes": "To test premium features:\n1. Log in with demo credentials\n2. Navigate to Settings > Subscription\n3. Tap 'Restore Purchase' - sandbox purchase will be restored\n\nFor location features, allow location access when prompted."
389
+ }
390
+ }
391
+ ```
392
+
393
+ ## ASO Checklist
394
+
395
+ ### Before Each Release
396
+
397
+ - [ ] Update keywords based on performance data
398
+ - [ ] Refresh description with new features
399
+ - [ ] Write compelling release notes
400
+ - [ ] Update promo text if running campaigns
401
+ - [ ] Verify all URLs are valid
402
+
403
+ ### Monthly ASO Tasks
404
+
405
+ - [ ] Analyze keyword rankings
406
+ - [ ] Research competitor keywords
407
+ - [ ] Check conversion rates in App Analytics
408
+ - [ ] Review user feedback for keyword ideas
409
+ - [ ] A/B test screenshots in App Store Connect
410
+
411
+ ### Keyword Research Tips
412
+
413
+ 1. **Brainstorm features** - List all app capabilities
414
+ 2. **Mine reviews** - Find words users actually use
415
+ 3. **Analyze competitors** - Check their titles/subtitles
416
+ 4. **Use long-tail keywords** - Less competition, higher intent
417
+ 5. **Consider misspellings** - Common typos can drive traffic
418
+ 6. **Track seasonality** - Some keywords peak at certain times
419
+
420
+ ### Metrics to Monitor
421
+
422
+ - **Impressions** - How often your app appears in search
423
+ - **Product Page Views** - Users who tap to learn more
424
+ - **Conversion Rate** - Views → Downloads
425
+ - **Keyword Rankings** - Position for target keywords
426
+ - **Category Ranking** - Position in your categories
427
+
428
+ ## VS Code Integration
429
+
430
+ Install the [Expo Tools extension](https://marketplace.visualstudio.com/items?itemName=expo.vscode-expo-tools) for:
431
+
432
+ - Auto-complete for all schema properties
433
+ - Inline validation and warnings
434
+ - Quick fixes for common issues
435
+
436
+ ## Common Issues
437
+
438
+ ### "Binary not found"
439
+
440
+ Push a binary with `eas submit` before pushing metadata.
441
+
442
+ ### "Invalid keywords"
443
+
444
+ - Check total length is ≤100 characters
445
+ - Remove spaces after commas
446
+ - Remove duplicate words
447
+
448
+ ### "Description too long"
449
+
450
+ Description maximum is 4000 characters.
451
+
452
+ ### Pull doesn't update JS config
453
+
454
+ `eas metadata:pull` creates a JSON file; import it into your JS config.
455
+
456
+ ## CI/CD Integration
457
+
458
+ Automate metadata updates in your deployment pipeline:
459
+
460
+ ```yaml
461
+ # .eas/workflows/release.yml
462
+ jobs:
463
+ submit-and-metadata:
464
+ steps:
465
+ - name: Submit to App Store
466
+ run: eas submit -p ios --latest
467
+
468
+ - name: Push Metadata
469
+ run: eas metadata:push
470
+ ```
471
+
472
+ ## Tips
473
+
474
+ - Update metadata every 4-6 weeks for optimal ASO
475
+ - 70% of App Store visitors use search to find apps
476
+ - Apps with 4+ star ratings get featured more often
477
+ - Localized apps see 128% more downloads per country
478
+ - First 3 lines of description are most critical (shown before "more")
479
+ - Use all 100 keyword characters—every character counts