opencode-skills-collection 3.0.34 → 3.0.36

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 (269) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +16 -1
  2. package/bundled-skills/accesslint-audit/SKILL.md +115 -0
  3. package/bundled-skills/accesslint-diff/SKILL.md +81 -0
  4. package/bundled-skills/accesslint-scan/SKILL.md +47 -0
  5. package/bundled-skills/composition-patterns/SKILL.md +87 -0
  6. package/bundled-skills/composition-patterns/rules/_sections.md +29 -0
  7. package/bundled-skills/composition-patterns/rules/_template.md +24 -0
  8. package/bundled-skills/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  9. package/bundled-skills/composition-patterns/rules/architecture-compound-components.md +112 -0
  10. package/bundled-skills/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  11. package/bundled-skills/composition-patterns/rules/patterns-explicit-variants.md +100 -0
  12. package/bundled-skills/composition-patterns/rules/react19-no-forwardref.md +42 -0
  13. package/bundled-skills/composition-patterns/rules/state-context-interface.md +191 -0
  14. package/bundled-skills/composition-patterns/rules/state-decouple-implementation.md +113 -0
  15. package/bundled-skills/composition-patterns/rules/state-lift-state.md +125 -0
  16. package/bundled-skills/debugging-toolkit/SKILL.md +35 -0
  17. package/bundled-skills/deploy-to-vercel/SKILL.md +304 -0
  18. package/bundled-skills/deploy-to-vercel/resources/deploy-codex.sh +301 -0
  19. package/bundled-skills/deploy-to-vercel/resources/deploy.sh +301 -0
  20. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  21. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  22. package/bundled-skills/docs/maintainers/backups/README-2026-06-02.md +687 -0
  23. package/bundled-skills/docs/maintainers/repo-growth-seo.md +4 -4
  24. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  25. package/bundled-skills/docs/users/bundles.md +245 -1
  26. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  27. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  28. package/bundled-skills/docs/users/getting-started.md +3 -3
  29. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  30. package/bundled-skills/docs/users/plugins.md +21 -13
  31. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +95 -0
  32. package/bundled-skills/docs/users/usage.md +4 -4
  33. package/bundled-skills/docs/users/visual-guide.md +4 -4
  34. package/bundled-skills/mmx-cli/SKILL.md +5 -2
  35. package/bundled-skills/nextjs-seo-indexing/SKILL.md +3 -3
  36. package/bundled-skills/polis-protocol/SKILL.md +93 -0
  37. package/bundled-skills/python-development/SKILL.md +35 -0
  38. package/bundled-skills/radix-ui-design-system/SKILL.md +2 -2
  39. package/bundled-skills/react-native-skills/SKILL.md +120 -0
  40. package/bundled-skills/react-native-skills/rules/_sections.md +86 -0
  41. package/bundled-skills/react-native-skills/rules/_template.md +28 -0
  42. package/bundled-skills/react-native-skills/rules/animation-derived-value.md +53 -0
  43. package/bundled-skills/react-native-skills/rules/animation-gesture-detector-press.md +95 -0
  44. package/bundled-skills/react-native-skills/rules/animation-gpu-properties.md +65 -0
  45. package/bundled-skills/react-native-skills/rules/design-system-compound-components.md +66 -0
  46. package/bundled-skills/react-native-skills/rules/fonts-config-plugin.md +71 -0
  47. package/bundled-skills/react-native-skills/rules/imports-design-system-folder.md +68 -0
  48. package/bundled-skills/react-native-skills/rules/js-hoist-intl.md +61 -0
  49. package/bundled-skills/react-native-skills/rules/list-performance-callbacks.md +44 -0
  50. package/bundled-skills/react-native-skills/rules/list-performance-function-references.md +132 -0
  51. package/bundled-skills/react-native-skills/rules/list-performance-images.md +53 -0
  52. package/bundled-skills/react-native-skills/rules/list-performance-inline-objects.md +97 -0
  53. package/bundled-skills/react-native-skills/rules/list-performance-item-expensive.md +94 -0
  54. package/bundled-skills/react-native-skills/rules/list-performance-item-memo.md +82 -0
  55. package/bundled-skills/react-native-skills/rules/list-performance-item-types.md +104 -0
  56. package/bundled-skills/react-native-skills/rules/list-performance-virtualize.md +67 -0
  57. package/bundled-skills/react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
  58. package/bundled-skills/react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
  59. package/bundled-skills/react-native-skills/rules/navigation-native-navigators.md +188 -0
  60. package/bundled-skills/react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
  61. package/bundled-skills/react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
  62. package/bundled-skills/react-native-skills/rules/react-state-dispatcher.md +91 -0
  63. package/bundled-skills/react-native-skills/rules/react-state-fallback.md +56 -0
  64. package/bundled-skills/react-native-skills/rules/react-state-minimize.md +65 -0
  65. package/bundled-skills/react-native-skills/rules/rendering-no-falsy-and.md +74 -0
  66. package/bundled-skills/react-native-skills/rules/rendering-text-in-text-component.md +36 -0
  67. package/bundled-skills/react-native-skills/rules/scroll-position-no-state.md +82 -0
  68. package/bundled-skills/react-native-skills/rules/state-ground-truth.md +80 -0
  69. package/bundled-skills/react-native-skills/rules/ui-expo-image.md +66 -0
  70. package/bundled-skills/react-native-skills/rules/ui-image-gallery.md +104 -0
  71. package/bundled-skills/react-native-skills/rules/ui-measure-views.md +78 -0
  72. package/bundled-skills/react-native-skills/rules/ui-menus.md +174 -0
  73. package/bundled-skills/react-native-skills/rules/ui-native-modals.md +77 -0
  74. package/bundled-skills/react-native-skills/rules/ui-pressable.md +61 -0
  75. package/bundled-skills/react-native-skills/rules/ui-safe-area-scroll.md +65 -0
  76. package/bundled-skills/react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
  77. package/bundled-skills/react-native-skills/rules/ui-styling.md +87 -0
  78. package/bundled-skills/schema-markup-generator/SKILL.md +1 -1
  79. package/bundled-skills/skill-issue/SKILL.md +73 -0
  80. package/bundled-skills/social-metadata-hardening/SKILL.md +4 -3
  81. package/bundled-skills/social-post-writer-seo/SKILL.md +19 -0
  82. package/bundled-skills/tdd-workflows/SKILL.md +35 -0
  83. package/bundled-skills/user-thoughts/SKILL.md +236 -0
  84. package/bundled-skills/user-thoughts/assets/Runtime-Template/README.ai.md +13 -0
  85. package/bundled-skills/user-thoughts/assets/Runtime-Template/define.ini +3 -0
  86. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/README.ai.md +25 -0
  87. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/backlog.md +19 -0
  88. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/dev-stack.md +7 -0
  89. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/general.md +7 -0
  90. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/plans.md +7 -0
  91. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/rules.md +7 -0
  92. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/ui/details.md +7 -0
  93. package/bundled-skills/user-thoughts/assets/Runtime-Template/mdbase/details/ui/outline.md +7 -0
  94. package/bundled-skills/user-thoughts/references/commands.md +54 -0
  95. package/bundled-skills/user-thoughts/references/edge-cases.md +84 -0
  96. package/bundled-skills/user-thoughts/references/safety.md +65 -0
  97. package/bundled-skills/user-thoughts/references/sortin.md +76 -0
  98. package/bundled-skills/user-thoughts/scripts/common.py +62 -0
  99. package/bundled-skills/user-thoughts/scripts/ignore_ops.py +125 -0
  100. package/bundled-skills/user-thoughts/scripts/init.py +63 -0
  101. package/bundled-skills/user-thoughts/scripts/show_mdbase.py +93 -0
  102. package/bundled-skills/user-thoughts/scripts/show_raw.py +42 -0
  103. package/bundled-skills/user-thoughts/scripts/sortin.py +211 -0
  104. package/bundled-skills/user-thoughts/scripts/status.py +56 -0
  105. package/bundled-skills/user-thoughts/scripts/toggle.py +68 -0
  106. package/bundled-skills/user-thoughts/scripts/write_raw.py +106 -0
  107. package/bundled-skills/vercel-cli-with-tokens/SKILL.md +361 -0
  108. package/bundled-skills/vercel-optimize/CONTRIBUTING.md +41 -0
  109. package/bundled-skills/vercel-optimize/SKILL.md +331 -0
  110. package/bundled-skills/vercel-optimize/lib/auth-route.mjs +23 -0
  111. package/bundled-skills/vercel-optimize/lib/budget-summary.mjs +182 -0
  112. package/bundled-skills/vercel-optimize/lib/citations.mjs +139 -0
  113. package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +143 -0
  114. package/bundled-skills/vercel-optimize/lib/dedup-recs.mjs +325 -0
  115. package/bundled-skills/vercel-optimize/lib/deep-dive.mjs +350 -0
  116. package/bundled-skills/vercel-optimize/lib/display-labels.mjs +185 -0
  117. package/bundled-skills/vercel-optimize/lib/extract-claims.mjs +550 -0
  118. package/bundled-skills/vercel-optimize/lib/framework-support.mjs +67 -0
  119. package/bundled-skills/vercel-optimize/lib/gates/build-minutes-fanout.mjs +69 -0
  120. package/bundled-skills/vercel-optimize/lib/gates/cold-start.mjs +66 -0
  121. package/bundled-skills/vercel-optimize/lib/gates/contract.mjs +79 -0
  122. package/bundled-skills/vercel-optimize/lib/gates/cwv-poor.mjs +87 -0
  123. package/bundled-skills/vercel-optimize/lib/gates/external-api-slow.mjs +55 -0
  124. package/bundled-skills/vercel-optimize/lib/gates/hard-gates.mjs +73 -0
  125. package/bundled-skills/vercel-optimize/lib/gates/index.mjs +45 -0
  126. package/bundled-skills/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -0
  127. package/bundled-skills/vercel-optimize/lib/gates/middleware-heavy.mjs +51 -0
  128. package/bundled-skills/vercel-optimize/lib/gates/observability-events-attribution.mjs +56 -0
  129. package/bundled-skills/vercel-optimize/lib/gates/platform-bot-protection.mjs +115 -0
  130. package/bundled-skills/vercel-optimize/lib/gates/platform-fluid-compute.mjs +83 -0
  131. package/bundled-skills/vercel-optimize/lib/gates/region-misconfig.mjs +64 -0
  132. package/bundled-skills/vercel-optimize/lib/gates/route-errors.mjs +80 -0
  133. package/bundled-skills/vercel-optimize/lib/gates/scanner-driven.mjs +122 -0
  134. package/bundled-skills/vercel-optimize/lib/gates/select-candidates.mjs +134 -0
  135. package/bundled-skills/vercel-optimize/lib/gates/slow-route.mjs +88 -0
  136. package/bundled-skills/vercel-optimize/lib/gates/types.d.ts +38 -0
  137. package/bundled-skills/vercel-optimize/lib/gates/uncached-route.mjs +93 -0
  138. package/bundled-skills/vercel-optimize/lib/gates/usage-spike-triage.mjs +121 -0
  139. package/bundled-skills/vercel-optimize/lib/grade-recommendation.mjs +155 -0
  140. package/bundled-skills/vercel-optimize/lib/impact-label.mjs +126 -0
  141. package/bundled-skills/vercel-optimize/lib/impact-magnitude.mjs +60 -0
  142. package/bundled-skills/vercel-optimize/lib/investigation-brief.mjs +610 -0
  143. package/bundled-skills/vercel-optimize/lib/observation-safety.mjs +174 -0
  144. package/bundled-skills/vercel-optimize/lib/project-facts.mjs +99 -0
  145. package/bundled-skills/vercel-optimize/lib/queries.mjs +315 -0
  146. package/bundled-skills/vercel-optimize/lib/reconcile-candidates.mjs +372 -0
  147. package/bundled-skills/vercel-optimize/lib/render-report.mjs +955 -0
  148. package/bundled-skills/vercel-optimize/lib/repo-root.mjs +86 -0
  149. package/bundled-skills/vercel-optimize/lib/route-normalize.mjs +220 -0
  150. package/bundled-skills/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +38 -0
  151. package/bundled-skills/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +30 -0
  152. package/bundled-skills/vercel-optimize/lib/sanitizers/count-correct.mjs +52 -0
  153. package/bundled-skills/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +38 -0
  154. package/bundled-skills/vercel-optimize/lib/sanitizers/index.mjs +79 -0
  155. package/bundled-skills/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +36 -0
  156. package/bundled-skills/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -0
  157. package/bundled-skills/vercel-optimize/lib/sanitizers/pre-release.mjs +74 -0
  158. package/bundled-skills/vercel-optimize/lib/sanitizers/rate-limit.mjs +67 -0
  159. package/bundled-skills/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +38 -0
  160. package/bundled-skills/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +78 -0
  161. package/bundled-skills/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -0
  162. package/bundled-skills/vercel-optimize/lib/sanitizers/window-units.mjs +32 -0
  163. package/bundled-skills/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +109 -0
  164. package/bundled-skills/vercel-optimize/lib/scanners/edge-heavy-import.mjs +94 -0
  165. package/bundled-skills/vercel-optimize/lib/scanners/force-dynamic.mjs +42 -0
  166. package/bundled-skills/vercel-optimize/lib/scanners/headers-in-page.mjs +44 -0
  167. package/bundled-skills/vercel-optimize/lib/scanners/index.mjs +35 -0
  168. package/bundled-skills/vercel-optimize/lib/scanners/large-static-asset.mjs +92 -0
  169. package/bundled-skills/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +42 -0
  170. package/bundled-skills/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +55 -0
  171. package/bundled-skills/vercel-optimize/lib/scanners/missing-cache-headers.mjs +90 -0
  172. package/bundled-skills/vercel-optimize/lib/scanners/prisma-include-tree.mjs +42 -0
  173. package/bundled-skills/vercel-optimize/lib/scanners/region-pin-in-config.mjs +88 -0
  174. package/bundled-skills/vercel-optimize/lib/scanners/source-maps-production.mjs +36 -0
  175. package/bundled-skills/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +43 -0
  176. package/bundled-skills/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +129 -0
  177. package/bundled-skills/vercel-optimize/lib/scanners/unoptimized-image.mjs +113 -0
  178. package/bundled-skills/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +106 -0
  179. package/bundled-skills/vercel-optimize/lib/support-topics.mjs +355 -0
  180. package/bundled-skills/vercel-optimize/lib/throttle.mjs +273 -0
  181. package/bundled-skills/vercel-optimize/lib/util.mjs +17 -0
  182. package/bundled-skills/vercel-optimize/lib/vercel.mjs +784 -0
  183. package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +1296 -0
  184. package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +521 -0
  185. package/bundled-skills/vercel-optimize/references/candidates.md +176 -0
  186. package/bundled-skills/vercel-optimize/references/data-collection.md +218 -0
  187. package/bundled-skills/vercel-optimize/references/docs-library.json +683 -0
  188. package/bundled-skills/vercel-optimize/references/doctrine.md +105 -0
  189. package/bundled-skills/vercel-optimize/references/observability-plus.md +108 -0
  190. package/bundled-skills/vercel-optimize/references/playbooks/README.md +53 -0
  191. package/bundled-skills/vercel-optimize/references/playbooks/ai-application.md +32 -0
  192. package/bundled-skills/vercel-optimize/references/playbooks/api-service.md +30 -0
  193. package/bundled-skills/vercel-optimize/references/playbooks/content-site.md +30 -0
  194. package/bundled-skills/vercel-optimize/references/playbooks/ecommerce.md +30 -0
  195. package/bundled-skills/vercel-optimize/references/playbooks/marketing.md +30 -0
  196. package/bundled-skills/vercel-optimize/references/playbooks/saas.md +31 -0
  197. package/bundled-skills/vercel-optimize/references/playbooks/sveltekit.md +75 -0
  198. package/bundled-skills/vercel-optimize/references/recommendations.md +203 -0
  199. package/bundled-skills/vercel-optimize/references/scanner-patterns.md +251 -0
  200. package/bundled-skills/vercel-optimize/references/scoring.md +205 -0
  201. package/bundled-skills/vercel-optimize/references/support-topics/README.md +46 -0
  202. package/bundled-skills/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +22 -0
  203. package/bundled-skills/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +22 -0
  204. package/bundled-skills/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +22 -0
  205. package/bundled-skills/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +22 -0
  206. package/bundled-skills/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +23 -0
  207. package/bundled-skills/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +22 -0
  208. package/bundled-skills/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +23 -0
  209. package/bundled-skills/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +22 -0
  210. package/bundled-skills/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +22 -0
  211. package/bundled-skills/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +22 -0
  212. package/bundled-skills/vercel-optimize/references/support-topics/database-egress-pooling-region.md +22 -0
  213. package/bundled-skills/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +22 -0
  214. package/bundled-skills/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +22 -0
  215. package/bundled-skills/vercel-optimize/references/support-topics/external-api-critical-path.md +22 -0
  216. package/bundled-skills/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +22 -0
  217. package/bundled-skills/vercel-optimize/references/support-topics/fluid-compute-caveats.md +22 -0
  218. package/bundled-skills/vercel-optimize/references/support-topics/function-duration-io-and-after.md +22 -0
  219. package/bundled-skills/vercel-optimize/references/support-topics/function-invocation-reduction.md +22 -0
  220. package/bundled-skills/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +23 -0
  221. package/bundled-skills/vercel-optimize/references/support-topics/image-optimization-cost-control.md +22 -0
  222. package/bundled-skills/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +22 -0
  223. package/bundled-skills/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +22 -0
  224. package/bundled-skills/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +22 -0
  225. package/bundled-skills/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +23 -0
  226. package/bundled-skills/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +23 -0
  227. package/bundled-skills/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +23 -0
  228. package/bundled-skills/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +22 -0
  229. package/bundled-skills/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +23 -0
  230. package/bundled-skills/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +22 -0
  231. package/bundled-skills/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +23 -0
  232. package/bundled-skills/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +22 -0
  233. package/bundled-skills/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +22 -0
  234. package/bundled-skills/vercel-optimize/references/support-topics/post-response-work-waituntil.md +22 -0
  235. package/bundled-skills/vercel-optimize/references/support-topics/route-error-durable-offload.md +22 -0
  236. package/bundled-skills/vercel-optimize/references/support-topics/route-error-runtime-limits.md +22 -0
  237. package/bundled-skills/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +22 -0
  238. package/bundled-skills/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +22 -0
  239. package/bundled-skills/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +22 -0
  240. package/bundled-skills/vercel-optimize/references/support-topics/usage-spike-triage.md +22 -0
  241. package/bundled-skills/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +23 -0
  242. package/bundled-skills/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +22 -0
  243. package/bundled-skills/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +23 -0
  244. package/bundled-skills/vercel-optimize/references/verification.md +102 -0
  245. package/bundled-skills/vercel-optimize/references/voice.md +76 -0
  246. package/bundled-skills/vercel-optimize/scripts/budget-summary.mjs +56 -0
  247. package/bundled-skills/vercel-optimize/scripts/build-docs.mjs +74 -0
  248. package/bundled-skills/vercel-optimize/scripts/check-citations.mjs +81 -0
  249. package/bundled-skills/vercel-optimize/scripts/check-docs-fresh.mjs +93 -0
  250. package/bundled-skills/vercel-optimize/scripts/collect-signals.mjs +576 -0
  251. package/bundled-skills/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +296 -0
  252. package/bundled-skills/vercel-optimize/scripts/deep-dive.mjs +319 -0
  253. package/bundled-skills/vercel-optimize/scripts/gate-investigations.mjs +166 -0
  254. package/bundled-skills/vercel-optimize/scripts/merge-signals.mjs +192 -0
  255. package/bundled-skills/vercel-optimize/scripts/prepare-investigation-brief.mjs +231 -0
  256. package/bundled-skills/vercel-optimize/scripts/reconcile-candidates.mjs +62 -0
  257. package/bundled-skills/vercel-optimize/scripts/render-report.mjs +437 -0
  258. package/bundled-skills/vercel-optimize/scripts/scan-codebase.mjs +313 -0
  259. package/bundled-skills/vercel-optimize/scripts/verify-and-regen.mjs +346 -0
  260. package/bundled-skills/vercel-optimize/scripts/verify-finding.mjs +19 -0
  261. package/bundled-skills/vercel-react-view-transitions/SKILL.md +327 -0
  262. package/bundled-skills/vercel-react-view-transitions/references/css-recipes.md +242 -0
  263. package/bundled-skills/vercel-react-view-transitions/references/implementation.md +182 -0
  264. package/bundled-skills/vercel-react-view-transitions/references/nextjs.md +176 -0
  265. package/bundled-skills/vercel-react-view-transitions/references/patterns.md +262 -0
  266. package/bundled-skills/vibe-code-cleanup/SKILL.md +4 -4
  267. package/bundled-skills/vibecode-production-qa-validator/SKILL.md +3 -2
  268. package/package.json +1 -1
  269. package/skills_index.json +338 -4
@@ -0,0 +1,301 @@
1
+ #!/bin/bash
2
+
3
+ # Vercel Deployment Script for Codex (via claimable deploy endpoint)
4
+ # Usage: ./deploy-codex.sh [project-path]
5
+ # Returns: JSON with previewUrl, claimUrl, deploymentId, projectId
6
+
7
+ set -euo pipefail
8
+
9
+ DEPLOY_ENDPOINT="https://codex-deploy-skills.vercel.sh/api/deploy"
10
+
11
+ # Detect framework from package.json
12
+ detect_framework() {
13
+ local pkg_json="$1"
14
+
15
+ if [ ! -f "$pkg_json" ]; then
16
+ echo "null"
17
+ return
18
+ fi
19
+
20
+ local content=$(cat "$pkg_json")
21
+
22
+ # Helper to check if a package exists in dependencies or devDependencies.
23
+ # Use exact matching by default, with a separate prefix matcher for scoped
24
+ # package families like "@remix-run/".
25
+ has_dep_exact() {
26
+ echo "$content" | grep -q "\"$1\""
27
+ }
28
+
29
+ has_dep_prefix() {
30
+ echo "$content" | grep -q "\"$1"
31
+ }
32
+
33
+ # Order matters - check more specific frameworks first
34
+
35
+ # Blitz
36
+ if has_dep_exact "blitz"; then echo "blitzjs"; return; fi
37
+
38
+ # Next.js
39
+ if has_dep_exact "next"; then echo "nextjs"; return; fi
40
+
41
+ # Gatsby
42
+ if has_dep_exact "gatsby"; then echo "gatsby"; return; fi
43
+
44
+ # Remix
45
+ if has_dep_prefix "@remix-run/"; then echo "remix"; return; fi
46
+
47
+ # React Router (v7 framework mode)
48
+ if has_dep_prefix "@react-router/"; then echo "react-router"; return; fi
49
+
50
+ # TanStack Start
51
+ if has_dep_exact "@tanstack/start"; then echo "tanstack-start"; return; fi
52
+
53
+ # Astro
54
+ if has_dep_exact "astro"; then echo "astro"; return; fi
55
+
56
+ # Hydrogen (Shopify)
57
+ if has_dep_exact "@shopify/hydrogen"; then echo "hydrogen"; return; fi
58
+
59
+ # SvelteKit
60
+ if has_dep_exact "@sveltejs/kit"; then echo "sveltekit-1"; return; fi
61
+
62
+ # Svelte (standalone)
63
+ if has_dep_exact "svelte"; then echo "svelte"; return; fi
64
+
65
+ # Nuxt
66
+ if has_dep_exact "nuxt"; then echo "nuxtjs"; return; fi
67
+
68
+ # Vue with Vitepress
69
+ if has_dep_exact "vitepress"; then echo "vitepress"; return; fi
70
+
71
+ # Vue with Vuepress
72
+ if has_dep_exact "vuepress"; then echo "vuepress"; return; fi
73
+
74
+ # Gridsome
75
+ if has_dep_exact "gridsome"; then echo "gridsome"; return; fi
76
+
77
+ # SolidStart
78
+ if has_dep_exact "@solidjs/start"; then echo "solidstart-1"; return; fi
79
+
80
+ # Docusaurus
81
+ if has_dep_exact "@docusaurus/core"; then echo "docusaurus-2"; return; fi
82
+
83
+ # RedwoodJS
84
+ if has_dep_prefix "@redwoodjs/"; then echo "redwoodjs"; return; fi
85
+
86
+ # Hexo
87
+ if has_dep_exact "hexo"; then echo "hexo"; return; fi
88
+
89
+ # Eleventy
90
+ if has_dep_exact "@11ty/eleventy"; then echo "eleventy"; return; fi
91
+
92
+ # Angular / Ionic Angular
93
+ if has_dep_exact "@ionic/angular"; then echo "ionic-angular"; return; fi
94
+ if has_dep_exact "@angular/core"; then echo "angular"; return; fi
95
+
96
+ # Ionic React
97
+ if has_dep_exact "@ionic/react"; then echo "ionic-react"; return; fi
98
+
99
+ # Create React App
100
+ if has_dep_exact "react-scripts"; then echo "create-react-app"; return; fi
101
+
102
+ # Ember
103
+ if has_dep_exact "ember-cli" || has_dep_exact "ember-source"; then echo "ember"; return; fi
104
+
105
+ # Dojo
106
+ if has_dep_exact "@dojo/framework"; then echo "dojo"; return; fi
107
+
108
+ # Polymer
109
+ if has_dep_prefix "@polymer/"; then echo "polymer"; return; fi
110
+
111
+ # Preact
112
+ if has_dep_exact "preact"; then echo "preact"; return; fi
113
+
114
+ # Stencil
115
+ if has_dep_exact "@stencil/core"; then echo "stencil"; return; fi
116
+
117
+ # UmiJS
118
+ if has_dep_exact "umi"; then echo "umijs"; return; fi
119
+
120
+ # Sapper (legacy Svelte)
121
+ if has_dep_exact "sapper"; then echo "sapper"; return; fi
122
+
123
+ # Saber
124
+ if has_dep_exact "saber"; then echo "saber"; return; fi
125
+
126
+ # Sanity
127
+ if has_dep_exact "sanity"; then echo "sanity-v3"; return; fi
128
+ if has_dep_prefix "@sanity/"; then echo "sanity"; return; fi
129
+
130
+ # Storybook
131
+ if has_dep_prefix "@storybook/"; then echo "storybook"; return; fi
132
+
133
+ # NestJS
134
+ if has_dep_exact "@nestjs/core"; then echo "nestjs"; return; fi
135
+
136
+ # Elysia
137
+ if has_dep_exact "elysia"; then echo "elysia"; return; fi
138
+
139
+ # Hono
140
+ if has_dep_exact "hono"; then echo "hono"; return; fi
141
+
142
+ # Fastify
143
+ if has_dep_exact "fastify"; then echo "fastify"; return; fi
144
+
145
+ # h3
146
+ if has_dep_exact "h3"; then echo "h3"; return; fi
147
+
148
+ # Nitro
149
+ if has_dep_exact "nitropack"; then echo "nitro"; return; fi
150
+
151
+ # Express
152
+ if has_dep_exact "express"; then echo "express"; return; fi
153
+
154
+ # Vite (generic - check last among JS frameworks)
155
+ if has_dep_exact "vite"; then echo "vite"; return; fi
156
+
157
+ # Parcel
158
+ if has_dep_exact "parcel"; then echo "parcel"; return; fi
159
+
160
+ # No framework detected
161
+ echo "null"
162
+ }
163
+
164
+ # Parse arguments
165
+ INPUT_PATH="${1:-.}"
166
+
167
+ # Create temp directory for packaging
168
+ TEMP_DIR=$(mktemp -d)
169
+ TARBALL="$TEMP_DIR/project.tgz"
170
+ STAGING_DIR="$TEMP_DIR/staging"
171
+ CLEANUP_TEMP=true
172
+
173
+ cleanup() {
174
+ if [ "$CLEANUP_TEMP" = true ]; then
175
+ rm -rf "$TEMP_DIR"
176
+ fi
177
+ }
178
+ trap cleanup EXIT
179
+
180
+ echo "Preparing deployment..." >&2
181
+
182
+ # Check if input is a .tgz file or a directory
183
+ FRAMEWORK="null"
184
+
185
+ if [ -f "$INPUT_PATH" ] && [[ "$INPUT_PATH" == *.tgz ]]; then
186
+ # Input is already a tarball, use it directly
187
+ echo "Using provided tarball..." >&2
188
+ TARBALL="$INPUT_PATH"
189
+ CLEANUP_TEMP=false
190
+ # Can't detect framework from tarball, leave as null
191
+ elif [ -d "$INPUT_PATH" ]; then
192
+ # Input is a directory, need to tar it
193
+ PROJECT_PATH=$(cd "$INPUT_PATH" && pwd)
194
+
195
+ # Detect framework from package.json
196
+ FRAMEWORK=$(detect_framework "$PROJECT_PATH/package.json")
197
+
198
+ # Stage files into a temporary directory to avoid mutating the source tree.
199
+ mkdir -p "$STAGING_DIR"
200
+ echo "Staging project files..." >&2
201
+ tar -C "$PROJECT_PATH" \
202
+ --exclude='node_modules' \
203
+ --exclude='.git' \
204
+ --exclude='.env' \
205
+ --exclude='.env.*' \
206
+ -cf - . | tar -C "$STAGING_DIR" -xf -
207
+
208
+ # Check if this is a static HTML project (no package.json)
209
+ if [ ! -f "$PROJECT_PATH/package.json" ]; then
210
+ # Find HTML files in root
211
+ HTML_FILES=$(find "$STAGING_DIR" -maxdepth 1 -name "*.html" -type f)
212
+ HTML_COUNT=$(printf '%s\n' "$HTML_FILES" | sed '/^$/d' | wc -l | tr -d '[:space:]')
213
+
214
+ # If there's exactly one HTML file and it's not index.html, rename it
215
+ if [ "$HTML_COUNT" -eq 1 ]; then
216
+ HTML_FILE=$(echo "$HTML_FILES" | head -1)
217
+ BASENAME=$(basename "$HTML_FILE")
218
+ if [ "$BASENAME" != "index.html" ]; then
219
+ echo "Renaming $BASENAME to index.html..." >&2
220
+ mv "$HTML_FILE" "$STAGING_DIR/index.html"
221
+ fi
222
+ fi
223
+ fi
224
+
225
+ # Create tarball from the staging directory
226
+ echo "Creating deployment package..." >&2
227
+ tar -czf "$TARBALL" -C "$STAGING_DIR" .
228
+ else
229
+ echo "Error: Input must be a directory or a .tgz file" >&2
230
+ exit 1
231
+ fi
232
+
233
+ if [ "$FRAMEWORK" != "null" ]; then
234
+ echo "Detected framework: $FRAMEWORK" >&2
235
+ fi
236
+
237
+ # Deploy
238
+ echo "Deploying..." >&2
239
+ RESPONSE=$(curl -s -X POST "$DEPLOY_ENDPOINT" -F "file=@$TARBALL" -F "framework=$FRAMEWORK")
240
+
241
+ # Check for error in response
242
+ if echo "$RESPONSE" | grep -q '"error"'; then
243
+ ERROR_MSG=$(echo "$RESPONSE" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
244
+ echo "Error: $ERROR_MSG" >&2
245
+ exit 1
246
+ fi
247
+
248
+ # Extract URLs from response
249
+ PREVIEW_URL=$(echo "$RESPONSE" | grep -o '"previewUrl":"[^"]*"' | cut -d'"' -f4)
250
+ CLAIM_URL=$(echo "$RESPONSE" | grep -o '"claimUrl":"[^"]*"' | cut -d'"' -f4)
251
+
252
+ if [ -z "$PREVIEW_URL" ]; then
253
+ echo "Error: Could not extract preview URL from response" >&2
254
+ echo "$RESPONSE" >&2
255
+ exit 1
256
+ fi
257
+
258
+ echo "Deployment started. Waiting for build to complete..." >&2
259
+ echo "Preview URL: $PREVIEW_URL" >&2
260
+
261
+ # Poll the preview URL until it returns a non-5xx response (5xx = still building)
262
+ MAX_ATTEMPTS=60 # 5 minutes max (60 * 5 seconds)
263
+ ATTEMPT=0
264
+
265
+ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
266
+ HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$PREVIEW_URL")
267
+
268
+ if [ "$HTTP_STATUS" -eq 200 ]; then
269
+ echo "" >&2
270
+ echo "Deployment ready!" >&2
271
+ break
272
+ elif [ "$HTTP_STATUS" -ge 500 ]; then
273
+ # 5xx means still building/deploying
274
+ echo "Building... (attempt $((ATTEMPT + 1))/$MAX_ATTEMPTS)" >&2
275
+ sleep 5
276
+ ATTEMPT=$((ATTEMPT + 1))
277
+ elif [ "$HTTP_STATUS" -ge 400 ] && [ "$HTTP_STATUS" -lt 500 ]; then
278
+ # 4xx might be an error or the app itself returns 4xx - it's responding
279
+ echo "" >&2
280
+ echo "Deployment ready (returned $HTTP_STATUS)!" >&2
281
+ break
282
+ else
283
+ # Any other status, assume it's ready
284
+ echo "" >&2
285
+ echo "Deployment ready!" >&2
286
+ break
287
+ fi
288
+ done
289
+
290
+ if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
291
+ echo "" >&2
292
+ echo "Warning: Timed out waiting for deployment, but it may still be building." >&2
293
+ fi
294
+
295
+ echo "" >&2
296
+ echo "Preview URL: $PREVIEW_URL" >&2
297
+ echo "Claim URL: $CLAIM_URL" >&2
298
+ echo "" >&2
299
+
300
+ # Output JSON for programmatic use
301
+ echo "$RESPONSE"
@@ -0,0 +1,301 @@
1
+ #!/bin/bash
2
+
3
+ # Vercel Deployment Script (via claimable deploy endpoint)
4
+ # Usage: ./deploy.sh [project-path]
5
+ # Returns: JSON with previewUrl, claimUrl, deploymentId, projectId
6
+
7
+ set -euo pipefail
8
+
9
+ DEPLOY_ENDPOINT="https://claude-skills-deploy.vercel.com/api/deploy"
10
+
11
+ # Detect framework from package.json
12
+ detect_framework() {
13
+ local pkg_json="$1"
14
+
15
+ if [ ! -f "$pkg_json" ]; then
16
+ echo "null"
17
+ return
18
+ fi
19
+
20
+ local content=$(cat "$pkg_json")
21
+
22
+ # Helper to check if a package exists in dependencies or devDependencies.
23
+ # Use exact matching by default, with a separate prefix matcher for scoped
24
+ # package families like "@remix-run/".
25
+ has_dep_exact() {
26
+ echo "$content" | grep -q "\"$1\""
27
+ }
28
+
29
+ has_dep_prefix() {
30
+ echo "$content" | grep -q "\"$1"
31
+ }
32
+
33
+ # Order matters - check more specific frameworks first
34
+
35
+ # Blitz
36
+ if has_dep_exact "blitz"; then echo "blitzjs"; return; fi
37
+
38
+ # Next.js
39
+ if has_dep_exact "next"; then echo "nextjs"; return; fi
40
+
41
+ # Gatsby
42
+ if has_dep_exact "gatsby"; then echo "gatsby"; return; fi
43
+
44
+ # Remix
45
+ if has_dep_prefix "@remix-run/"; then echo "remix"; return; fi
46
+
47
+ # React Router (v7 framework mode)
48
+ if has_dep_prefix "@react-router/"; then echo "react-router"; return; fi
49
+
50
+ # TanStack Start
51
+ if has_dep_exact "@tanstack/start"; then echo "tanstack-start"; return; fi
52
+
53
+ # Astro
54
+ if has_dep_exact "astro"; then echo "astro"; return; fi
55
+
56
+ # Hydrogen (Shopify)
57
+ if has_dep_exact "@shopify/hydrogen"; then echo "hydrogen"; return; fi
58
+
59
+ # SvelteKit
60
+ if has_dep_exact "@sveltejs/kit"; then echo "sveltekit-1"; return; fi
61
+
62
+ # Svelte (standalone)
63
+ if has_dep_exact "svelte"; then echo "svelte"; return; fi
64
+
65
+ # Nuxt
66
+ if has_dep_exact "nuxt"; then echo "nuxtjs"; return; fi
67
+
68
+ # Vue with Vitepress
69
+ if has_dep_exact "vitepress"; then echo "vitepress"; return; fi
70
+
71
+ # Vue with Vuepress
72
+ if has_dep_exact "vuepress"; then echo "vuepress"; return; fi
73
+
74
+ # Gridsome
75
+ if has_dep_exact "gridsome"; then echo "gridsome"; return; fi
76
+
77
+ # SolidStart
78
+ if has_dep_exact "@solidjs/start"; then echo "solidstart-1"; return; fi
79
+
80
+ # Docusaurus
81
+ if has_dep_exact "@docusaurus/core"; then echo "docusaurus-2"; return; fi
82
+
83
+ # RedwoodJS
84
+ if has_dep_prefix "@redwoodjs/"; then echo "redwoodjs"; return; fi
85
+
86
+ # Hexo
87
+ if has_dep_exact "hexo"; then echo "hexo"; return; fi
88
+
89
+ # Eleventy
90
+ if has_dep_exact "@11ty/eleventy"; then echo "eleventy"; return; fi
91
+
92
+ # Angular / Ionic Angular
93
+ if has_dep_exact "@ionic/angular"; then echo "ionic-angular"; return; fi
94
+ if has_dep_exact "@angular/core"; then echo "angular"; return; fi
95
+
96
+ # Ionic React
97
+ if has_dep_exact "@ionic/react"; then echo "ionic-react"; return; fi
98
+
99
+ # Create React App
100
+ if has_dep_exact "react-scripts"; then echo "create-react-app"; return; fi
101
+
102
+ # Ember
103
+ if has_dep_exact "ember-cli" || has_dep_exact "ember-source"; then echo "ember"; return; fi
104
+
105
+ # Dojo
106
+ if has_dep_exact "@dojo/framework"; then echo "dojo"; return; fi
107
+
108
+ # Polymer
109
+ if has_dep_prefix "@polymer/"; then echo "polymer"; return; fi
110
+
111
+ # Preact
112
+ if has_dep_exact "preact"; then echo "preact"; return; fi
113
+
114
+ # Stencil
115
+ if has_dep_exact "@stencil/core"; then echo "stencil"; return; fi
116
+
117
+ # UmiJS
118
+ if has_dep_exact "umi"; then echo "umijs"; return; fi
119
+
120
+ # Sapper (legacy Svelte)
121
+ if has_dep_exact "sapper"; then echo "sapper"; return; fi
122
+
123
+ # Saber
124
+ if has_dep_exact "saber"; then echo "saber"; return; fi
125
+
126
+ # Sanity
127
+ if has_dep_exact "sanity"; then echo "sanity-v3"; return; fi
128
+ if has_dep_prefix "@sanity/"; then echo "sanity"; return; fi
129
+
130
+ # Storybook
131
+ if has_dep_prefix "@storybook/"; then echo "storybook"; return; fi
132
+
133
+ # NestJS
134
+ if has_dep_exact "@nestjs/core"; then echo "nestjs"; return; fi
135
+
136
+ # Elysia
137
+ if has_dep_exact "elysia"; then echo "elysia"; return; fi
138
+
139
+ # Hono
140
+ if has_dep_exact "hono"; then echo "hono"; return; fi
141
+
142
+ # Fastify
143
+ if has_dep_exact "fastify"; then echo "fastify"; return; fi
144
+
145
+ # h3
146
+ if has_dep_exact "h3"; then echo "h3"; return; fi
147
+
148
+ # Nitro
149
+ if has_dep_exact "nitropack"; then echo "nitro"; return; fi
150
+
151
+ # Express
152
+ if has_dep_exact "express"; then echo "express"; return; fi
153
+
154
+ # Vite (generic - check last among JS frameworks)
155
+ if has_dep_exact "vite"; then echo "vite"; return; fi
156
+
157
+ # Parcel
158
+ if has_dep_exact "parcel"; then echo "parcel"; return; fi
159
+
160
+ # No framework detected
161
+ echo "null"
162
+ }
163
+
164
+ # Parse arguments
165
+ INPUT_PATH="${1:-.}"
166
+
167
+ # Create temp directory for packaging
168
+ TEMP_DIR=$(mktemp -d)
169
+ TARBALL="$TEMP_DIR/project.tgz"
170
+ STAGING_DIR="$TEMP_DIR/staging"
171
+ CLEANUP_TEMP=true
172
+
173
+ cleanup() {
174
+ if [ "$CLEANUP_TEMP" = true ]; then
175
+ rm -rf "$TEMP_DIR"
176
+ fi
177
+ }
178
+ trap cleanup EXIT
179
+
180
+ echo "Preparing deployment..." >&2
181
+
182
+ # Check if input is a .tgz file or a directory
183
+ FRAMEWORK="null"
184
+
185
+ if [ -f "$INPUT_PATH" ] && [[ "$INPUT_PATH" == *.tgz ]]; then
186
+ # Input is already a tarball, use it directly
187
+ echo "Using provided tarball..." >&2
188
+ TARBALL="$INPUT_PATH"
189
+ CLEANUP_TEMP=false
190
+ # Can't detect framework from tarball, leave as null
191
+ elif [ -d "$INPUT_PATH" ]; then
192
+ # Input is a directory, need to tar it
193
+ PROJECT_PATH=$(cd "$INPUT_PATH" && pwd)
194
+
195
+ # Detect framework from package.json
196
+ FRAMEWORK=$(detect_framework "$PROJECT_PATH/package.json")
197
+
198
+ # Stage files into a temporary directory to avoid mutating the source tree.
199
+ mkdir -p "$STAGING_DIR"
200
+ echo "Staging project files..." >&2
201
+ tar -C "$PROJECT_PATH" \
202
+ --exclude='node_modules' \
203
+ --exclude='.git' \
204
+ --exclude='.env' \
205
+ --exclude='.env.*' \
206
+ -cf - . | tar -C "$STAGING_DIR" -xf -
207
+
208
+ # Check if this is a static HTML project (no package.json)
209
+ if [ ! -f "$PROJECT_PATH/package.json" ]; then
210
+ # Find HTML files in root
211
+ HTML_FILES=$(find "$STAGING_DIR" -maxdepth 1 -name "*.html" -type f)
212
+ HTML_COUNT=$(printf '%s\n' "$HTML_FILES" | sed '/^$/d' | wc -l | tr -d '[:space:]')
213
+
214
+ # If there's exactly one HTML file and it's not index.html, rename it
215
+ if [ "$HTML_COUNT" -eq 1 ]; then
216
+ HTML_FILE=$(echo "$HTML_FILES" | head -1)
217
+ BASENAME=$(basename "$HTML_FILE")
218
+ if [ "$BASENAME" != "index.html" ]; then
219
+ echo "Renaming $BASENAME to index.html..." >&2
220
+ mv "$HTML_FILE" "$STAGING_DIR/index.html"
221
+ fi
222
+ fi
223
+ fi
224
+
225
+ # Create tarball from the staging directory
226
+ echo "Creating deployment package..." >&2
227
+ tar -czf "$TARBALL" -C "$STAGING_DIR" .
228
+ else
229
+ echo "Error: Input must be a directory or a .tgz file" >&2
230
+ exit 1
231
+ fi
232
+
233
+ if [ "$FRAMEWORK" != "null" ]; then
234
+ echo "Detected framework: $FRAMEWORK" >&2
235
+ fi
236
+
237
+ # Deploy
238
+ echo "Deploying..." >&2
239
+ RESPONSE=$(curl -s -X POST "$DEPLOY_ENDPOINT" -F "file=@$TARBALL" -F "framework=$FRAMEWORK")
240
+
241
+ # Check for error in response
242
+ if echo "$RESPONSE" | grep -q '"error"'; then
243
+ ERROR_MSG=$(echo "$RESPONSE" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
244
+ echo "Error: $ERROR_MSG" >&2
245
+ exit 1
246
+ fi
247
+
248
+ # Extract URLs from response
249
+ PREVIEW_URL=$(echo "$RESPONSE" | grep -o '"previewUrl":"[^"]*"' | cut -d'"' -f4)
250
+ CLAIM_URL=$(echo "$RESPONSE" | grep -o '"claimUrl":"[^"]*"' | cut -d'"' -f4)
251
+
252
+ if [ -z "$PREVIEW_URL" ]; then
253
+ echo "Error: Could not extract preview URL from response" >&2
254
+ echo "$RESPONSE" >&2
255
+ exit 1
256
+ fi
257
+
258
+ echo "Deployment started. Waiting for build to complete..." >&2
259
+ echo "Preview URL: $PREVIEW_URL" >&2
260
+
261
+ # Poll the preview URL until it returns a non-5xx response (5xx = still building)
262
+ MAX_ATTEMPTS=60 # 5 minutes max (60 * 5 seconds)
263
+ ATTEMPT=0
264
+
265
+ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
266
+ HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$PREVIEW_URL")
267
+
268
+ if [ "$HTTP_STATUS" -eq 200 ]; then
269
+ echo "" >&2
270
+ echo "Deployment ready!" >&2
271
+ break
272
+ elif [ "$HTTP_STATUS" -ge 500 ]; then
273
+ # 5xx means still building/deploying
274
+ echo "Building... (attempt $((ATTEMPT + 1))/$MAX_ATTEMPTS)" >&2
275
+ sleep 5
276
+ ATTEMPT=$((ATTEMPT + 1))
277
+ elif [ "$HTTP_STATUS" -ge 400 ] && [ "$HTTP_STATUS" -lt 500 ]; then
278
+ # 4xx might be an error or the app itself returns 4xx - it's responding
279
+ echo "" >&2
280
+ echo "Deployment ready (returned $HTTP_STATUS)!" >&2
281
+ break
282
+ else
283
+ # Any other status, assume it's ready
284
+ echo "" >&2
285
+ echo "Deployment ready!" >&2
286
+ break
287
+ fi
288
+ done
289
+
290
+ if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
291
+ echo "" >&2
292
+ echo "Warning: Timed out waiting for deployment, but it may still be building." >&2
293
+ fi
294
+
295
+ echo "" >&2
296
+ echo "Preview URL: $PREVIEW_URL" >&2
297
+ echo "Claim URL: $CLAIM_URL" >&2
298
+ echo "" >&2
299
+
300
+ # Output JSON for programmatic use
301
+ echo "$RESPONSE"
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  title: Jetski/Cortex + Gemini Integration Guide
3
- description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,493+ skills."
3
+ description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,508+ skills."
4
4
  ---
5
5
 
6
- # Jetski/Cortex + Gemini: safe integration with 1,493+ skills
6
+ # Jetski/Cortex + Gemini: safe integration with 1,508+ skills
7
7
 
8
8
  This guide shows how to integrate the `antigravity-awesome-skills` repository with an agent based on **Jetski/Cortex + Gemini** (or similar frameworks) **without exceeding the model context window**.
9
9
 
@@ -23,7 +23,7 @@ Never do:
23
23
  - concatenate all `SKILL.md` content into a single system prompt;
24
24
  - re-inject the entire library for **every** request.
25
25
 
26
- With 1,493+ skills, this approach fills the context window before user messages are even added, causing truncation.
26
+ With 1,508+ skills, this approach fills the context window before user messages are even added, causing truncation.
27
27
 
28
28
  ---
29
29
 
@@ -21,7 +21,7 @@ This example shows one way to integrate **antigravity-awesome-skills** with a Je
21
21
  - How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
22
22
  - How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
23
23
 
24
- This pattern avoids context overflow when you have 1,493+ skills installed.
24
+ This pattern avoids context overflow when you have 1,508+ skills installed.
25
25
 
26
26
  Manifest contract references:
27
27