vybekiit 0.4.0 → 0.6.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.
- package/dist/bin.js +840 -296
- package/dist/global-skills/add-ai/SKILL.md +53 -0
- package/dist/global-skills/add-analytics/SKILL.md +65 -0
- package/dist/global-skills/add-app-clip/SKILL.md +280 -0
- package/dist/global-skills/add-app-clip/agents/openai.yaml +4 -0
- package/dist/global-skills/add-app-clip/references/native-module.md +96 -0
- package/dist/global-skills/add-blog/SKILL.md +49 -0
- package/dist/global-skills/add-crud/SKILL.md +28 -0
- package/dist/global-skills/add-files/SKILL.md +65 -0
- package/dist/global-skills/add-images/SKILL.md +64 -0
- package/dist/global-skills/add-language/SKILL.md +44 -0
- package/dist/global-skills/add-notifications/SKILL.md +61 -0
- package/dist/global-skills/add-realtime/SKILL.md +49 -0
- package/dist/global-skills/add-route/SKILL.md +28 -0
- package/dist/global-skills/add-search/SKILL.md +43 -0
- package/dist/global-skills/add-signin/SKILL.md +78 -0
- package/dist/global-skills/add-teams/SKILL.md +64 -0
- package/dist/global-skills/add-upload/SKILL.md +27 -0
- package/dist/global-skills/aws-cdk/SKILL.md +72 -0
- package/dist/global-skills/aws-cdk/references/bootstrap-and-project-setup.md +257 -0
- package/dist/global-skills/aws-cdk/references/compliance-and-drift.md +193 -0
- package/dist/global-skills/aws-cdk/references/construct-patterns.md +315 -0
- package/dist/global-skills/aws-cdk/references/import-and-migrate.md +184 -0
- package/dist/global-skills/aws-cdk/references/refactor-and-prevent-replacement.md +198 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-credentials.md +183 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +293 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-synth.md +274 -0
- package/dist/global-skills/aws-cdk/references/v1-to-v2-migration.md +119 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +88 -0
- package/dist/global-skills/aws-cloudformation/references/author-cloudformation-best-practices.script.md +179 -0
- package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +159 -0
- package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +217 -0
- package/dist/global-skills/aws-cloudformation/references/deploy-with-express-mode.script.md +271 -0
- package/dist/global-skills/aws-cloudformation/references/lookup-resource-properties.script.md +130 -0
- package/dist/global-skills/aws-cloudformation/references/troubleshoot-deployment.script.md +200 -0
- package/dist/global-skills/aws-cloudformation/references/validate-cloudformation-template.script.md +135 -0
- package/dist/global-skills/aws-serverless/SKILL.md +51 -0
- package/dist/global-skills/aws-serverless/assets/powertools-handler.py +49 -0
- package/dist/global-skills/aws-serverless/references/api-gateway.md +553 -0
- package/dist/global-skills/aws-serverless/references/architecture.md +262 -0
- package/dist/global-skills/aws-serverless/references/concurrency.md +200 -0
- package/dist/global-skills/aws-serverless/references/deployment.md +94 -0
- package/dist/global-skills/aws-serverless/references/event-sources.md +484 -0
- package/dist/global-skills/aws-serverless/references/lambda.md +548 -0
- package/dist/global-skills/aws-serverless/references/orchestration.md +449 -0
- package/dist/global-skills/aws-serverless/references/production.md +493 -0
- package/dist/global-skills/aws-serverless/references/troubleshooting.md +711 -0
- package/dist/global-skills/back-up-my-code/SKILL.md +48 -0
- package/dist/global-skills/better-auth-best-practices/SKILL.md +182 -0
- package/dist/global-skills/better-auth-security-best-practices/SKILL.md +432 -0
- package/dist/global-skills/building-native-ui/SKILL.md +377 -0
- package/dist/global-skills/building-native-ui/agents/openai.yaml +4 -0
- package/dist/global-skills/building-native-ui/references/animations.md +220 -0
- package/dist/global-skills/building-native-ui/references/controls.md +270 -0
- package/dist/global-skills/building-native-ui/references/form-sheet.md +253 -0
- package/dist/global-skills/building-native-ui/references/gradients.md +106 -0
- package/dist/global-skills/building-native-ui/references/icons.md +213 -0
- package/dist/global-skills/building-native-ui/references/media.md +198 -0
- package/dist/global-skills/building-native-ui/references/route-structure.md +229 -0
- package/dist/global-skills/building-native-ui/references/search.md +248 -0
- package/dist/global-skills/building-native-ui/references/storage.md +121 -0
- package/dist/global-skills/building-native-ui/references/tabs.md +433 -0
- package/dist/global-skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/dist/global-skills/building-native-ui/references/visual-effects.md +197 -0
- package/dist/global-skills/building-native-ui/references/webgpu-three.md +605 -0
- package/dist/global-skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/dist/global-skills/buy-domain/SKILL.md +64 -0
- package/dist/global-skills/check-safety/SKILL.md +94 -0
- package/dist/global-skills/claimable-postgres/SKILL.md +249 -0
- package/dist/global-skills/configure-capabilities/SKILL.md +38 -0
- package/dist/global-skills/connect-account/SKILL.md +64 -0
- package/dist/global-skills/connect-account-backend/SKILL.md +41 -0
- package/dist/global-skills/create-auth-skill/SKILL.md +321 -0
- package/dist/global-skills/design-my-data/SKILL.md +48 -0
- package/dist/global-skills/doctor/SKILL.md +84 -0
- package/dist/global-skills/eas-app-stores/SKILL.md +152 -0
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/dist/global-skills/eas-app-stores/references/ios-app-store.md +371 -0
- package/dist/global-skills/eas-app-stores/references/play-store.md +246 -0
- package/dist/global-skills/eas-app-stores/references/testflight.md +58 -0
- package/dist/global-skills/eas-app-stores/references/workflows.md +120 -0
- package/dist/global-skills/eas-hosting/SKILL.md +423 -0
- package/dist/global-skills/eas-hosting/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-observe/SKILL.md +32 -0
- package/dist/global-skills/eas-observe/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-observe/references/metrics.md +47 -0
- package/dist/global-skills/eas-observe/references/queries.md +342 -0
- package/dist/global-skills/eas-observe/references/setup.md +317 -0
- package/dist/global-skills/eas-simulator/SKILL.md +156 -0
- package/dist/global-skills/eas-simulator/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-simulator/references/controllers.md +67 -0
- package/dist/global-skills/eas-simulator/references/run-your-app.md +185 -0
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +38 -0
- package/dist/global-skills/eas-update-insights/SKILL.md +230 -0
- package/dist/global-skills/eas-update-insights/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/dist/global-skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/dist/global-skills/eas-workflows/SKILL.md +94 -0
- package/dist/global-skills/eas-workflows/agents/openai.yaml +4 -0
- package/dist/global-skills/eas-workflows/scripts/fetch.js +109 -0
- package/dist/global-skills/eas-workflows/scripts/package.json +11 -0
- package/dist/global-skills/eas-workflows/scripts/validate.js +84 -0
- package/dist/global-skills/email-best-practices/SKILL.md +73 -0
- package/dist/global-skills/expo-api-routes/SKILL.md +368 -0
- package/dist/global-skills/expo-api-routes/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-app-clip/SKILL.md +282 -0
- package/dist/global-skills/expo-app-clip/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-app-clip/references/native-module.md +96 -0
- package/dist/global-skills/expo-brownfield/SKILL.md +54 -0
- package/dist/global-skills/expo-brownfield/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/dist/global-skills/expo-brownfield/references/comparison.md +63 -0
- package/dist/global-skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/dist/global-skills/expo-cicd-workflows/SKILL.md +92 -0
- package/dist/global-skills/expo-cicd-workflows/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-cicd-workflows/scripts/fetch.js +109 -0
- package/dist/global-skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/dist/global-skills/expo-cicd-workflows/scripts/validate.js +84 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +449 -0
- package/dist/global-skills/expo-data-fetching/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-data-fetching/references/expo-router-loaders.md +341 -0
- package/dist/global-skills/expo-data-fetching/references/offline-and-cancellation.md +68 -0
- package/dist/global-skills/expo-deployment/SKILL.md +167 -0
- package/dist/global-skills/expo-deployment/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-deployment/references/app-store-metadata.md +497 -0
- package/dist/global-skills/expo-deployment/references/ios-app-store.md +371 -0
- package/dist/global-skills/expo-deployment/references/play-store.md +246 -0
- package/dist/global-skills/expo-deployment/references/testflight.md +58 -0
- package/dist/global-skills/expo-deployment/references/workflows.md +160 -0
- package/dist/global-skills/expo-dev-client/SKILL.md +174 -0
- package/dist/global-skills/expo-dev-client/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-dom/SKILL.md +417 -0
- package/dist/global-skills/expo-dom/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-examples/SKILL.md +99 -0
- package/dist/global-skills/expo-examples/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-examples/references/catalog.md +105 -0
- package/dist/global-skills/expo-module/SKILL.md +141 -0
- package/dist/global-skills/expo-module/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-module/references/config-plugin.md +90 -0
- package/dist/global-skills/expo-module/references/create-expo-module.md +206 -0
- package/dist/global-skills/expo-module/references/lifecycle.md +127 -0
- package/dist/global-skills/expo-module/references/module-config.md +48 -0
- package/dist/global-skills/expo-module/references/native-module.md +286 -0
- package/dist/global-skills/expo-module/references/native-view.md +171 -0
- package/dist/global-skills/expo-native-ui/SKILL.md +181 -0
- package/dist/global-skills/expo-native-ui/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-native-ui/references/animations.md +220 -0
- package/dist/global-skills/expo-native-ui/references/controls.md +270 -0
- package/dist/global-skills/expo-native-ui/references/gradients.md +106 -0
- package/dist/global-skills/expo-native-ui/references/icons.md +213 -0
- package/dist/global-skills/expo-native-ui/references/media.md +198 -0
- package/dist/global-skills/expo-native-ui/references/storage.md +121 -0
- package/dist/global-skills/expo-native-ui/references/visual-effects.md +197 -0
- package/dist/global-skills/expo-native-ui/references/webgpu-three.md +605 -0
- package/dist/global-skills/expo-observe/SKILL.md +30 -0
- package/dist/global-skills/expo-observe/references/metrics.md +47 -0
- package/dist/global-skills/expo-observe/references/queries.md +342 -0
- package/dist/global-skills/expo-observe/references/setup.md +317 -0
- package/dist/global-skills/expo-router/SKILL.md +230 -0
- package/dist/global-skills/expo-router/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-router/references/form-sheet.md +253 -0
- package/dist/global-skills/expo-router/references/route-structure.md +229 -0
- package/dist/global-skills/expo-router/references/search.md +248 -0
- package/dist/global-skills/expo-router/references/tabs.md +433 -0
- package/dist/global-skills/expo-router/references/toolbar-and-headers.md +284 -0
- package/dist/global-skills/expo-router/references/zoom-transitions.md +158 -0
- package/dist/global-skills/expo-skill-eval/SKILL.md +314 -0
- package/dist/global-skills/expo-skill-eval/agents/visual-grader.md +52 -0
- package/dist/global-skills/expo-skill-eval/references/design-rubric.md +45 -0
- package/dist/global-skills/expo-skill-eval/references/runtime-matrix.md +34 -0
- package/dist/global-skills/expo-skill-eval/scripts/check-static.sh +64 -0
- package/dist/global-skills/expo-skill-eval/scripts/clean-fixture.sh +56 -0
- package/dist/global-skills/expo-skill-eval/scripts/generate_viewer.py +450 -0
- package/dist/global-skills/expo-skill-eval/scripts/latest-sdk.sh +46 -0
- package/dist/global-skills/expo-skill-eval/scripts/make-fixture.sh +95 -0
- package/dist/global-skills/expo-skill-eval/scripts/make-workspace.sh +31 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-android.sh +284 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-ios.sh +132 -0
- package/dist/global-skills/expo-skill-eval/scripts/snapshot-web.sh +61 -0
- package/dist/global-skills/expo-skill-feedback/SKILL.md +54 -0
- package/dist/global-skills/expo-skill-feedback/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-skill-feedback/scripts/skill-event.cjs +180 -0
- package/dist/global-skills/expo-skill-feedback/scripts/skill-feedback.cjs +118 -0
- package/dist/global-skills/expo-skill-feedback/scripts/telemetry.cjs +65 -0
- package/dist/global-skills/expo-skill-feedback/scripts/telemetry_common.cjs +171 -0
- package/dist/global-skills/expo-tailwind-setup/SKILL.md +480 -0
- package/dist/global-skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-ui/SKILL.md +47 -0
- package/dist/global-skills/expo-ui/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-ui/references/drop-in-replacements.md +27 -0
- package/dist/global-skills/expo-ui/references/jetpack-compose.md +73 -0
- package/dist/global-skills/expo-ui/references/swift-ui.md +73 -0
- package/dist/global-skills/expo-ui/references/universal.md +73 -0
- package/dist/global-skills/expo-ui/scripts/list-components.js +193 -0
- package/dist/global-skills/expo-upgrade/SKILL.md +134 -0
- package/dist/global-skills/expo-upgrade/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-upgrade/references/expo-av-to-audio.md +132 -0
- package/dist/global-skills/expo-upgrade/references/expo-av-to-video.md +160 -0
- package/dist/global-skills/expo-upgrade/references/native-tabs.md +124 -0
- package/dist/global-skills/expo-upgrade/references/new-architecture.md +79 -0
- package/dist/global-skills/expo-upgrade/references/react-19.md +79 -0
- package/dist/global-skills/expo-upgrade/references/react-compiler.md +59 -0
- package/dist/global-skills/expo-upgrade/references/react-navigation-to-expo-router.md +61 -0
- package/dist/global-skills/expo-web-to-native/SKILL.md +83 -0
- package/dist/global-skills/expo-web-to-native/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-web-to-native/references/false-friends.md +119 -0
- package/dist/global-skills/expo-web-to-native/references/native-patterns.md +39 -0
- package/dist/global-skills/expo-web-to-native/references/run-as-goal.md +48 -0
- package/dist/global-skills/expo-web-to-native/references/verify-on-device.md +45 -0
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +165 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/flutter_setup.md +95 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +156 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +157 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +186 -0
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +73 -0
- package/dist/global-skills/firebase-app-hosting-basics/references/cli_commands.md +85 -0
- package/dist/global-skills/firebase-app-hosting-basics/references/configuration.md +59 -0
- package/dist/global-skills/firebase-app-hosting-basics/references/emulation.md +59 -0
- package/dist/global-skills/firebase-auth-basics/SKILL.md +118 -0
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +160 -0
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +301 -0
- package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +149 -0
- package/dist/global-skills/firebase-auth-basics/references/ios_setup.md +87 -0
- package/dist/global-skills/firebase-auth-basics/references/security_rules.md +49 -0
- package/dist/global-skills/firebase-basics/SKILL.md +148 -0
- package/dist/global-skills/firebase-basics/references/android_setup.md +41 -0
- package/dist/global-skills/firebase-basics/references/firebase-cli-guide.md +18 -0
- package/dist/global-skills/firebase-basics/references/firebase-service-init.md +20 -0
- package/dist/global-skills/firebase-basics/references/flutter_setup.md +143 -0
- package/dist/global-skills/firebase-basics/references/ios_setup.md +113 -0
- package/dist/global-skills/firebase-basics/references/local-env-setup.md +80 -0
- package/dist/global-skills/firebase-basics/references/refresh/android_studio.md +41 -0
- package/dist/global-skills/firebase-basics/references/refresh/antigravity.md +64 -0
- package/dist/global-skills/firebase-basics/references/refresh/claude.md +12 -0
- package/dist/global-skills/firebase-basics/references/refresh/gemini-cli.md +13 -0
- package/dist/global-skills/firebase-basics/references/refresh/other-agents.md +67 -0
- package/dist/global-skills/firebase-basics/references/setup/android_studio.md +23 -0
- package/dist/global-skills/firebase-basics/references/setup/antigravity.md +98 -0
- package/dist/global-skills/firebase-basics/references/setup/claude_code.md +45 -0
- package/dist/global-skills/firebase-basics/references/setup/cursor.md +93 -0
- package/dist/global-skills/firebase-basics/references/setup/gemini_cli.md +53 -0
- package/dist/global-skills/firebase-basics/references/setup/github_copilot.md +104 -0
- package/dist/global-skills/firebase-basics/references/setup/other_agents.md +99 -0
- package/dist/global-skills/firebase-basics/references/web_setup.md +77 -0
- package/dist/global-skills/firebase-crashlytics/SKILL.md +42 -0
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +152 -0
- package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +115 -0
- package/dist/global-skills/firebase-data-connect/SKILL.md +191 -0
- package/dist/global-skills/firebase-data-connect/examples.md +638 -0
- package/dist/global-skills/firebase-data-connect/reference/cloud_functions.md +184 -0
- package/dist/global-skills/firebase-data-connect/reference/config.md +271 -0
- package/dist/global-skills/firebase-data-connect/reference/data_seeding.md +185 -0
- package/dist/global-skills/firebase-data-connect/reference/native_sql.md +170 -0
- package/dist/global-skills/firebase-data-connect/reference/operations.md +385 -0
- package/dist/global-skills/firebase-data-connect/reference/realtime.md +210 -0
- package/dist/global-skills/firebase-data-connect/reference/schema.md +290 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_admin_node.md +141 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_android.md +126 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +134 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +157 -0
- package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +146 -0
- package/dist/global-skills/firebase-data-connect/reference/search.md +264 -0
- package/dist/global-skills/firebase-data-connect/reference/security.md +295 -0
- package/dist/global-skills/firebase-data-connect/templates.md +318 -0
- package/dist/global-skills/firebase-firestore/SKILL.md +89 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +230 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +66 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/flutter_setup.md +180 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +135 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/ios_setup.md +189 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +118 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +138 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +577 -0
- package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +127 -0
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +193 -0
- package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +176 -0
- package/dist/global-skills/firebase-firestore/references/standard/indexes.md +113 -0
- package/dist/global-skills/firebase-firestore/references/standard/ios_setup.md +174 -0
- package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +110 -0
- package/dist/global-skills/firebase-firestore/references/standard/security_rules.md +577 -0
- package/dist/global-skills/firebase-firestore/references/standard/web_sdk_usage.md +192 -0
- package/dist/global-skills/firebase-hosting-basics/SKILL.md +64 -0
- package/dist/global-skills/firebase-hosting-basics/references/configuration.md +115 -0
- package/dist/global-skills/firebase-hosting-basics/references/deploying.md +48 -0
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +124 -0
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +91 -0
- package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +89 -0
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +70 -0
- package/dist/global-skills/go-live/SKILL.md +90 -0
- package/dist/global-skills/harden/SKILL.md +101 -0
- package/dist/global-skills/instrument-feature-flags/SKILL.md +88 -0
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +3578 -0
- package/dist/global-skills/instrument-feature-flags/references/android.md +146 -0
- package/dist/global-skills/instrument-feature-flags/references/api.md +194 -0
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +231 -0
- package/dist/global-skills/instrument-feature-flags/references/django.md +263 -0
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +763 -0
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +47 -0
- package/dist/global-skills/instrument-feature-flags/references/flask.md +131 -0
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +212 -0
- package/dist/global-skills/instrument-feature-flags/references/go.md +208 -0
- package/dist/global-skills/instrument-feature-flags/references/ios.md +146 -0
- package/dist/global-skills/instrument-feature-flags/references/java.md +94 -0
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +170 -0
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +383 -0
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +216 -0
- package/dist/global-skills/instrument-feature-flags/references/php.md +187 -0
- package/dist/global-skills/instrument-feature-flags/references/python.md +191 -0
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +166 -0
- package/dist/global-skills/instrument-feature-flags/references/react.md +302 -0
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +604 -0
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +200 -0
- package/dist/global-skills/instrument-feature-flags/references/rust.md +222 -0
- package/dist/global-skills/instrument-feature-flags/references/usage.md +600 -0
- package/dist/global-skills/instrument-feature-flags/references/web.md +193 -0
- package/dist/global-skills/instrument-product-analytics/SKILL.md +139 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-android.md +1639 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-angular.md +944 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +1001 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +1004 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +720 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +810 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-django.md +1167 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-expo.md +1412 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-fastapi.md +1585 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-flask.md +1208 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-laravel.md +2267 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-next-app-router.md +712 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-next-pages-router.md +767 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-nuxt-3-6.md +939 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-nuxt-4.md +1078 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-php.md +527 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-python.md +481 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-native.md +1823 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-6.md +582 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-data.md +892 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-declarative.md +649 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-react-router-7-framework.md +1218 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-tanstack-router-code-based.md +793 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-react-tanstack-router-file-based.md +780 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +1320 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby.md +452 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-sveltekit.md +854 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-swift.md +665 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-tanstack-start.md +1199 -0
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-vue-3.md +910 -0
- package/dist/global-skills/instrument-product-analytics/references/android.md +811 -0
- package/dist/global-skills/instrument-product-analytics/references/angular.md +376 -0
- package/dist/global-skills/instrument-product-analytics/references/astro.md +165 -0
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +299 -0
- package/dist/global-skills/instrument-product-analytics/references/django.md +263 -0
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +763 -0
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +414 -0
- package/dist/global-skills/instrument-product-analytics/references/flask.md +131 -0
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +845 -0
- package/dist/global-skills/instrument-product-analytics/references/go.md +567 -0
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +272 -0
- package/dist/global-skills/instrument-product-analytics/references/ios.md +154 -0
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +170 -0
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +383 -0
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +244 -0
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +253 -0
- package/dist/global-skills/instrument-product-analytics/references/php.md +646 -0
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +1675 -0
- package/dist/global-skills/instrument-product-analytics/references/python.md +898 -0
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +1338 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +376 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +364 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +376 -0
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +479 -0
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +604 -0
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +759 -0
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +234 -0
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +193 -0
- package/dist/global-skills/instrument-product-analytics/references/usage.md +600 -0
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +306 -0
- package/dist/global-skills/manifest.json +125 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/SKILL.md +284 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/connection-configs.md +298 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/development-workflow.md +304 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/mcp-troubleshooting.md +55 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/output-diagnostics.md +150 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/pipeline-patterns.md +457 -0
- package/dist/global-skills/mongodb-atlas-stream-processing/references/sizing-and-parallelism.md +178 -0
- package/dist/global-skills/mongodb-connection/SKILL.md +201 -0
- package/dist/global-skills/mongodb-connection/references/monitoring-guide.md +191 -0
- package/dist/global-skills/mongodb-mcp-setup/SKILL.md +324 -0
- package/dist/global-skills/mongodb-natural-language-querying/SKILL.md +195 -0
- package/dist/global-skills/mongodb-query-optimizer/SKILL.md +150 -0
- package/dist/global-skills/mongodb-query-optimizer/references/aggregation-optimization.md +210 -0
- package/dist/global-skills/mongodb-query-optimizer/references/antipattern-examples.md +74 -0
- package/dist/global-skills/mongodb-query-optimizer/references/core-indexing-principles.md +134 -0
- package/dist/global-skills/mongodb-query-optimizer/references/update-query-examples.md +39 -0
- package/dist/global-skills/mongodb-schema-design/SKILL.md +181 -0
- package/dist/global-skills/mongodb-schema-design/references/antipattern-excessive-lookups.md +84 -0
- package/dist/global-skills/mongodb-schema-design/references/antipattern-unnecessary-collections.md +91 -0
- package/dist/global-skills/mongodb-schema-design/references/antipattern-unnecessary-indexes.md +95 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-document-model.md +91 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-document-size.md +226 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-embed-vs-reference.md +418 -0
- package/dist/global-skills/mongodb-schema-design/references/fundamental-schema-validation.md +131 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-approximation.md +80 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-archive.md +143 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-attribute.md +77 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-bucket.md +102 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-computed.md +162 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-document-versioning.md +166 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-extended-reference.md +72 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-outlier.md +159 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-polymorphic.md +167 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-schema-versioning.md +273 -0
- package/dist/global-skills/mongodb-schema-design/references/pattern-time-series-collections.md +190 -0
- package/dist/global-skills/mongodb-schema-design/references/source-query-stats.md +123 -0
- package/dist/global-skills/mongodb-schema-design/references/source-slow-query-logs.md +63 -0
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +142 -0
- package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +697 -0
- package/dist/global-skills/mongodb-search-and-ai/references/lexical-search-indexing.md +584 -0
- package/dist/global-skills/mongodb-search-and-ai/references/lexical-search-querying.md +636 -0
- package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +746 -0
- package/dist/global-skills/native-data-fetching/SKILL.md +505 -0
- package/dist/global-skills/native-data-fetching/agents/openai.yaml +4 -0
- package/dist/global-skills/native-data-fetching/references/expo-router-loaders.md +341 -0
- package/dist/global-skills/neon/SKILL.md +343 -0
- package/dist/global-skills/neon-ai-gateway/SKILL.md +236 -0
- package/dist/global-skills/neon-functions/SKILL.md +490 -0
- package/dist/global-skills/neon-functions/references/ai-sdk.md +139 -0
- package/dist/global-skills/neon-functions/references/hono-websockets.md +145 -0
- package/dist/global-skills/neon-functions/references/mastra-studio.md +127 -0
- package/dist/global-skills/neon-functions/references/mcp.md +137 -0
- package/dist/global-skills/neon-functions/references/sentry.md +131 -0
- package/dist/global-skills/neon-functions/references/sse.md +143 -0
- package/dist/global-skills/neon-object-storage/SKILL.md +197 -0
- package/dist/global-skills/neon-postgres/SKILL.md +376 -0
- package/dist/global-skills/neon-postgres-branches/SKILL.md +281 -0
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +247 -0
- package/dist/global-skills/onboarding/SKILL.md +101 -0
- package/dist/global-skills/plan-my-idea/SKILL.md +67 -0
- package/dist/global-skills/publish-app/SKILL.md +72 -0
- package/dist/global-skills/publish-extension/SKILL.md +47 -0
- package/dist/global-skills/resend/SKILL.md +294 -0
- package/dist/global-skills/resend/references/api-keys.md +98 -0
- package/dist/global-skills/resend/references/automations.md +228 -0
- package/dist/global-skills/resend/references/broadcasts.md +125 -0
- package/dist/global-skills/resend/references/contact-properties.md +111 -0
- package/dist/global-skills/resend/references/contacts.md +174 -0
- package/dist/global-skills/resend/references/domains.md +179 -0
- package/dist/global-skills/resend/references/events.md +119 -0
- package/dist/global-skills/resend/references/fetch-all-templates.mjs +37 -0
- package/dist/global-skills/resend/references/installation.md +142 -0
- package/dist/global-skills/resend/references/logs.md +161 -0
- package/dist/global-skills/resend/references/receiving.md +287 -0
- package/dist/global-skills/resend/references/segments.md +77 -0
- package/dist/global-skills/resend/references/sending/batch-email-examples.md +807 -0
- package/dist/global-skills/resend/references/sending/best-practices.md +453 -0
- package/dist/global-skills/resend/references/sending/email-management.md +135 -0
- package/dist/global-skills/resend/references/sending/overview.md +209 -0
- package/dist/global-skills/resend/references/sending/single-email-examples.md +470 -0
- package/dist/global-skills/resend/references/templates.md +202 -0
- package/dist/global-skills/resend/references/topics.md +104 -0
- package/dist/global-skills/resend/references/webhooks.md +317 -0
- package/dist/global-skills/reset-password/SKILL.md +59 -0
- package/dist/global-skills/save-data/SKILL.md +70 -0
- package/dist/global-skills/sentry-sdk-setup/SKILL.md +116 -0
- package/dist/global-skills/sentry-workflow/SKILL.md +32 -0
- package/dist/global-skills/setup-email/SKILL.md +69 -0
- package/dist/global-skills/setup-payments/SKILL.md +82 -0
- package/dist/global-skills/setup-sms/SKILL.md +51 -0
- package/dist/global-skills/sign-in-with-email-link/SKILL.md +53 -0
- package/dist/global-skills/sign-in-with-google/SKILL.md +68 -0
- package/dist/global-skills/sign-in-with-phone/SKILL.md +53 -0
- package/dist/global-skills/stripe-best-practices/SKILL.md +48 -0
- package/dist/global-skills/stripe-best-practices/references/billing.md +58 -0
- package/dist/global-skills/stripe-best-practices/references/connect.md +173 -0
- package/dist/global-skills/stripe-best-practices/references/payments.md +79 -0
- package/dist/global-skills/stripe-best-practices/references/security.md +109 -0
- package/dist/global-skills/stripe-best-practices/references/tax.md +37 -0
- package/dist/global-skills/stripe-best-practices/references/treasury.md +16 -0
- package/dist/global-skills/supabase/CHANGELOG.md +53 -0
- package/dist/global-skills/supabase/SKILL.md +145 -0
- package/dist/global-skills/supabase/assets/feedback-issue-template.md +17 -0
- package/dist/global-skills/supabase/references/skill-feedback.md +17 -0
- package/dist/global-skills/supabase-postgres-best-practices/CHANGELOG.md +43 -0
- package/dist/global-skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/dist/global-skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/dist/global-skills/track-errors/SKILL.md +67 -0
- package/dist/global-skills/update-kit/SKILL.md +75 -0
- package/dist/global-skills/upgrading-expo/SKILL.md +134 -0
- package/dist/global-skills/upgrading-expo/agents/openai.yaml +4 -0
- package/dist/global-skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/dist/global-skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/dist/global-skills/upgrading-expo/references/native-tabs.md +124 -0
- package/dist/global-skills/upgrading-expo/references/new-architecture.md +79 -0
- package/dist/global-skills/upgrading-expo/references/react-19.md +79 -0
- package/dist/global-skills/upgrading-expo/references/react-compiler.md +59 -0
- package/dist/global-skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/dist/global-skills/use-dom/SKILL.md +417 -0
- package/dist/global-skills/use-dom/agents/openai.yaml +4 -0
- package/dist/global-skills/use-kit-mcp/SKILL.md +100 -0
- package/dist/global-skills/use-railway/SKILL.md +357 -0
- package/dist/global-skills/use-railway/references/analyze-db-mongo.md +84 -0
- package/dist/global-skills/use-railway/references/analyze-db-mysql.md +254 -0
- package/dist/global-skills/use-railway/references/analyze-db-postgres.md +479 -0
- package/dist/global-skills/use-railway/references/analyze-db-redis.md +208 -0
- package/dist/global-skills/use-railway/references/analyze-db.md +344 -0
- package/dist/global-skills/use-railway/references/configure.md +359 -0
- package/dist/global-skills/use-railway/references/deploy.md +225 -0
- package/dist/global-skills/use-railway/references/feature-flags.md +89 -0
- package/dist/global-skills/use-railway/references/iac.md +108 -0
- package/dist/global-skills/use-railway/references/operate.md +273 -0
- package/dist/global-skills/use-railway/references/request.md +262 -0
- package/dist/global-skills/use-railway/references/sandbox.md +167 -0
- package/dist/global-skills/use-railway/references/setup.md +364 -0
- package/dist/global-skills/use-railway/scripts/analyze-mongo.py +1549 -0
- package/dist/global-skills/use-railway/scripts/analyze-mysql.py +1195 -0
- package/dist/global-skills/use-railway/scripts/analyze-postgres.py +3058 -0
- package/dist/global-skills/use-railway/scripts/analyze-redis.py +1090 -0
- package/dist/global-skills/use-railway/scripts/dal.py +671 -0
- package/dist/global-skills/use-railway/scripts/enable-pg-stats.py +170 -0
- package/dist/global-skills/use-railway/scripts/pg-extensions.py +370 -0
- package/dist/global-skills/use-railway/scripts/railway-api.sh +52 -0
- package/dist/global-skills/vercel-composition-patterns/AGENTS.md +946 -0
- package/dist/global-skills/vercel-composition-patterns/README.md +60 -0
- package/dist/global-skills/vercel-composition-patterns/SKILL.md +89 -0
- package/dist/global-skills/vercel-composition-patterns/metadata.json +11 -0
- package/dist/global-skills/vercel-composition-patterns/rules/_sections.md +29 -0
- package/dist/global-skills/vercel-composition-patterns/rules/_template.md +24 -0
- package/dist/global-skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/dist/global-skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/dist/global-skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/dist/global-skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/dist/global-skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/dist/global-skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/dist/global-skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/dist/global-skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/dist/global-skills/vercel-react-best-practices/AGENTS.md +3810 -0
- package/dist/global-skills/vercel-react-best-practices/README.md +123 -0
- package/dist/global-skills/vercel-react-best-practices/SKILL.md +149 -0
- package/dist/global-skills/vercel-react-best-practices/metadata.json +15 -0
- package/dist/global-skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/dist/global-skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/dist/global-skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/dist/global-skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/global-skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/global-skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/dist/global-skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/dist/global-skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/dist/global-skills/web-to-native/SKILL.md +83 -0
- package/dist/global-skills/web-to-native/references/false-friends.md +119 -0
- package/dist/global-skills/web-to-native/references/native-patterns.md +39 -0
- package/dist/global-skills/web-to-native/references/run-as-goal.md +48 -0
- package/dist/global-skills/web-to-native/references/verify-on-device.md +45 -0
- package/dist/global-skills/wire-auth/SKILL.md +28 -0
- package/dist/global-skills/wire-database/SKILL.md +28 -0
- package/dist/global-skills/wire-email/SKILL.md +27 -0
- package/dist/global-skills/wire-payments/SKILL.md +27 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +127 -0
- package/dist/global-skills/workers-best-practices/references/review.md +174 -0
- package/dist/global-skills/workers-best-practices/references/rules.md +463 -0
- package/dist/global-skills/wrangler/SKILL.md +922 -0
- package/dist/global-skills/xcode-project-setup/SKILL.md +140 -0
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Package.resolved +41 -0
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Package.swift +17 -0
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +232 -0
- package/package.json +21 -20
- package/LICENSE.md +0 -47
- package/dist/index.js +0 -21593
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: neon-postgres
|
|
3
|
+
description: >-
|
|
4
|
+
Guides and best practices for working with Neon Serverless Postgres.
|
|
5
|
+
Covers setup, connection methods, branching, autoscaling, scale-to-zero,
|
|
6
|
+
read replicas, connection pooling, Neon Auth, and the Neon CLI, MCP server,
|
|
7
|
+
REST API, TypeScript SDK, and Python SDK.
|
|
8
|
+
Use when users ask about "Neon setup", "connect to Neon", "Neon project",
|
|
9
|
+
"DATABASE_URL", "serverless Postgres", "Neon CLI", "neon", "Neon MCP",
|
|
10
|
+
"Neon Auth", "@neondatabase/serverless", "@neondatabase/neon-js",
|
|
11
|
+
"scale to zero", "Neon autoscaling", "Neon read replica", or
|
|
12
|
+
"Neon connection pooling".
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Neon Serverless Postgres
|
|
16
|
+
|
|
17
|
+
Guide the user through any Neon-related task: setup, connections, branching, and advanced features. Deliver a working Neon connection, a completed feature configuration, or a specific answer from the official Neon docs.
|
|
18
|
+
|
|
19
|
+
Neon is a serverless Postgres platform that separates compute and storage to offer autoscaling, branching, instant restore, and scale-to-zero. It's fully compatible with Postgres and works with any language, framework, or ORM that supports Postgres.
|
|
20
|
+
|
|
21
|
+
## Neon Documentation
|
|
22
|
+
|
|
23
|
+
The Neon documentation is the source of truth for all Neon-related information. Always verify claims against the official docs before responding. Neon features and APIs evolve, so prefer fetching current docs over relying on training data.
|
|
24
|
+
|
|
25
|
+
### Fetching Docs as Markdown
|
|
26
|
+
|
|
27
|
+
Any Neon doc page can be fetched as markdown in two ways:
|
|
28
|
+
|
|
29
|
+
1. **Append `.md` to the URL** (simplest): https://neon.com/docs/introduction/branching.md
|
|
30
|
+
2. **Request `text/markdown`** on the standard URL: `curl -H "Accept: text/markdown" https://neon.com/docs/introduction/branching`
|
|
31
|
+
|
|
32
|
+
Both return the same markdown content. Use whichever method your tools support.
|
|
33
|
+
|
|
34
|
+
### Finding the Right Page
|
|
35
|
+
|
|
36
|
+
The docs index lists every available page with its URL and a short description:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
https://neon.com/docs/llms.txt
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Common doc URLs are organized in the topic links below. If you need a page not listed here, search the docs index: https://neon.com/docs/llms.txt. Don't guess URLs.
|
|
43
|
+
|
|
44
|
+
## What Is Neon
|
|
45
|
+
|
|
46
|
+
Use this for architecture explanations and terminology (organizations, projects, branches, endpoints) before giving implementation advice.
|
|
47
|
+
|
|
48
|
+
Link: https://neon.com/docs/introduction/architecture-overview.md
|
|
49
|
+
|
|
50
|
+
## Getting Started
|
|
51
|
+
|
|
52
|
+
Use this section when guiding a user through first-time Neon setup.
|
|
53
|
+
|
|
54
|
+
### Check Status Quo
|
|
55
|
+
|
|
56
|
+
Before starting setup, inspect the user's codebase and environment:
|
|
57
|
+
|
|
58
|
+
- Existing database connection code
|
|
59
|
+
- Existing Neon MCP server or Neon CLI configuration
|
|
60
|
+
- Existence of a `.env` file and `DATABASE_URL` environment variable
|
|
61
|
+
- Existing ORM (Prisma, Drizzle, TypeORM) configuration
|
|
62
|
+
|
|
63
|
+
### Self-Driving Setup With Neon's CLI or MCP Server
|
|
64
|
+
|
|
65
|
+
Offer to inspect existing connected Neon projects or create new ones using the Neon CLI or MCP server. If neither is set up yet, run init with the `--agent` flag. Use `npx -y` to skip the package install prompt. Auth is handled automatically. If the user is not logged in, it opens their browser for OAuth and waits for completion before proceeding.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx -y neon@latest init --agent <agent-name>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Supported `--agent` values: `cursor`, `copilot`, `claude`, `claude-desktop`, `codex`, `opencode`, `cline`, `gemini-cli`, `goose`, `zed`.
|
|
72
|
+
|
|
73
|
+
This installs the Neon extension (for Cursor/VS Code) or MCP server (for other agents), creates an API key, and adds the `neon-postgres` agent skill to the project.
|
|
74
|
+
|
|
75
|
+
If `init` is not suitable, the individual steps can be run non-interactively:
|
|
76
|
+
|
|
77
|
+
- **Extension:** `cursor --install-extension databricks.neon-local-connect`
|
|
78
|
+
- **MCP server:** `npx -y add-mcp https://mcp.neon.tech/mcp -g -n Neon -y -a <agent-name>`
|
|
79
|
+
- **Agent skill:** `npx skills add neondatabase/agent-skills --skill neon-postgres --agent <agent-name> -y`
|
|
80
|
+
|
|
81
|
+
For full CLI installation options, see https://neon.com/docs/reference/cli-install.md
|
|
82
|
+
|
|
83
|
+
### Setup Flow
|
|
84
|
+
|
|
85
|
+
**1. Select Organization and Project**
|
|
86
|
+
|
|
87
|
+
Use MCP server or CLI to list organizations and projects. Let the user select an existing project or create a new one.
|
|
88
|
+
|
|
89
|
+
**2. Get Connection String**
|
|
90
|
+
|
|
91
|
+
Use MCP server or CLI to get the connection string. Store it in `.env` as `DATABASE_URL`. Read the file first before modifying to avoid overwriting existing values.
|
|
92
|
+
|
|
93
|
+
**3. Pick Connection Method & Driver**
|
|
94
|
+
|
|
95
|
+
Refer to the connection methods guide to pick the correct driver based on deployment platform: https://neon.com/docs/connect/choose-connection.md
|
|
96
|
+
|
|
97
|
+
**4. User Authentication with Neon Auth (if needed)**
|
|
98
|
+
|
|
99
|
+
Skip for CLI tools, scripts, or apps without user accounts. If the app needs auth: use MCP server `provision_neon_auth` tool, then see the auth overview (https://neon.com/docs/auth/overview.md) for setup. For auth + database queries, see the JavaScript SDK reference (https://neon.com/docs/reference/javascript-sdk.md).
|
|
100
|
+
|
|
101
|
+
**5. ORM Setup (optional)**
|
|
102
|
+
|
|
103
|
+
Check for existing ORM (Prisma, Drizzle, TypeORM). If none, ask if they want one. For Drizzle integration, see https://neon.com/docs/guides/drizzle.md.
|
|
104
|
+
|
|
105
|
+
**6. Schema Setup**
|
|
106
|
+
|
|
107
|
+
- Check for existing migration files or ORM schemas
|
|
108
|
+
- If none: offer to create an example schema or design one together
|
|
109
|
+
|
|
110
|
+
### Resume Support
|
|
111
|
+
|
|
112
|
+
If resuming setup, check what's already configured (MCP connection, `.env` with `DATABASE_URL`, dependencies, schema) and continue from the next incomplete step.
|
|
113
|
+
|
|
114
|
+
### Security Reminders
|
|
115
|
+
|
|
116
|
+
Remind users to use environment variables for credentials, never commit connection strings, and use least-privilege database roles.
|
|
117
|
+
|
|
118
|
+
## Connection Methods & Drivers
|
|
119
|
+
|
|
120
|
+
Use this when you need to pick the correct transport and driver based on runtime constraints (TCP, HTTP, WebSocket, edge, serverless, long-running).
|
|
121
|
+
|
|
122
|
+
Link: https://neon.com/docs/connect/choose-connection.md
|
|
123
|
+
|
|
124
|
+
### Recommended: Drizzle + the right driver for your runtime
|
|
125
|
+
|
|
126
|
+
Always pair Neon with an ORM such as **Drizzle** for easy schema management and migrations. Pick the driver based on how the runtime treats your code:
|
|
127
|
+
|
|
128
|
+
- **Long-running or shared-runtime environments → node-postgres (`pg`).** Neon Functions, and any host where the function runtime is shared across requests / runs on fluid compute (e.g. **Vercel** with Fluid compute), keep a module-scope process alive across many requests. Open a `pg` pool **once at module scope** and reuse it across requests.
|
|
129
|
+
- **Fully isolated serverless (Lambda-style) → Neon's serverless driver (`@neondatabase/serverless`).** Hosts like **Netlify** spin up a fresh, isolated instance per request, so a persistent TCP pool can't be reused; the serverless driver queries over HTTP and is built for this.
|
|
130
|
+
|
|
131
|
+
**Neon Functions / Vercel / fluid compute — Drizzle + node-postgres:**
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
import { drizzle } from "drizzle-orm/node-postgres";
|
|
135
|
+
import { Pool } from "pg";
|
|
136
|
+
import * as schema from "./schema";
|
|
137
|
+
|
|
138
|
+
// Created once at module scope; reused by every request the instance handles.
|
|
139
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 5 });
|
|
140
|
+
const db = drizzle({ client: pool, schema });
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
On **Vercel** (Fluid compute) also attach the pool with `attachDatabasePool` from `@vercel/functions`, so the function runtime drains idle connections before an instance suspends:
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
import { drizzle } from "drizzle-orm/node-postgres";
|
|
147
|
+
import { Pool } from "pg";
|
|
148
|
+
import { attachDatabasePool } from "@vercel/functions";
|
|
149
|
+
import * as schema from "./schema";
|
|
150
|
+
|
|
151
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
|
|
152
|
+
attachDatabasePool(pool); // let the Vercel runtime manage the pooled connections
|
|
153
|
+
const db = drizzle({ client: pool, schema });
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Netlify and other fully-isolated serverless — Drizzle + Neon serverless driver:**
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
import { drizzle } from "drizzle-orm/neon-http";
|
|
160
|
+
import { neon } from "@neondatabase/serverless";
|
|
161
|
+
|
|
162
|
+
const sql = neon(process.env.DATABASE_URL!);
|
|
163
|
+
const db = drizzle({ client: sql });
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Serverless Driver
|
|
167
|
+
|
|
168
|
+
Use this for `@neondatabase/serverless` patterns, including HTTP queries, WebSocket transactions, and runtime-specific optimizations.
|
|
169
|
+
|
|
170
|
+
Link: https://neon.com/docs/serverless/serverless-driver.md
|
|
171
|
+
|
|
172
|
+
### Neon JS SDK
|
|
173
|
+
|
|
174
|
+
Use this for combined Neon Auth + Data API workflows with PostgREST-style querying and typed client setup.
|
|
175
|
+
|
|
176
|
+
Link: https://neon.com/docs/reference/javascript-sdk.md
|
|
177
|
+
|
|
178
|
+
## Developer Tools
|
|
179
|
+
|
|
180
|
+
Use this for local development enablement with `npx -y neon@latest init --agent <agent-name>`, VSCode extension setup, and Neon MCP server configuration.
|
|
181
|
+
|
|
182
|
+
| Tool | URL |
|
|
183
|
+
| ---------------- | ----------------------------------------------- |
|
|
184
|
+
| CLI Init Command | https://neon.com/docs/reference/cli-init.md |
|
|
185
|
+
| VSCode Extension | https://neon.com/docs/local/vscode-extension.md |
|
|
186
|
+
| MCP Server | https://neon.com/docs/ai/neon-mcp-server.md |
|
|
187
|
+
| Neon CLI | https://neon.com/docs/reference/neon-cli.md |
|
|
188
|
+
|
|
189
|
+
### Neon CLI
|
|
190
|
+
|
|
191
|
+
Use this for terminal-first workflows, scripts, and CI/CD automation with `neon`.
|
|
192
|
+
|
|
193
|
+
Link: https://neon.com/docs/reference/neon-cli.md
|
|
194
|
+
|
|
195
|
+
## Neon Admin API
|
|
196
|
+
|
|
197
|
+
The Neon Admin API can be used to manage Neon resources programmatically. It is used behind the scenes by the Neon CLI and MCP server, but can also be used directly for more complex automation workflows or when embedding Neon in other applications.
|
|
198
|
+
|
|
199
|
+
### Neon REST API
|
|
200
|
+
|
|
201
|
+
Use this for direct HTTP automation, endpoint-level control, API key auth, rate-limit handling, and operation polling.
|
|
202
|
+
|
|
203
|
+
Link: https://neon.com/docs/reference/api-reference.md
|
|
204
|
+
|
|
205
|
+
### Neon TypeScript SDK
|
|
206
|
+
|
|
207
|
+
Use this when implementing typed programmatic control of Neon resources in TypeScript via `@neon/sdk` (the fetch-based, zero-dependency successor to `@neondatabase/api-client`).
|
|
208
|
+
|
|
209
|
+
Link: https://neon.com/docs/reference/typescript-sdk.md
|
|
210
|
+
|
|
211
|
+
### Neon Python SDK
|
|
212
|
+
|
|
213
|
+
Use this when implementing programmatic Neon management in Python with the `neon-api` package.
|
|
214
|
+
|
|
215
|
+
Link: https://neon.com/docs/reference/python-sdk.md
|
|
216
|
+
|
|
217
|
+
## Neon Auth
|
|
218
|
+
|
|
219
|
+
Use this for managed user authentication setup, UI components, auth methods, and Neon Auth integration pitfalls in Next.js and React apps.
|
|
220
|
+
|
|
221
|
+
Link: https://neon.com/docs/auth/overview.md
|
|
222
|
+
|
|
223
|
+
Neon Auth is also embedded in the Neon JS SDK. Depending on your use case, you may want to use the Neon JS SDK instead of Neon Auth alone. See https://neon.com/docs/connect/choose-connection.md for more details.
|
|
224
|
+
|
|
225
|
+
## Neon Infrastructure as Code (`neon.ts`)
|
|
226
|
+
|
|
227
|
+
`neon.ts` is Neon's branch config and infrastructure-as-code file: declare which services your branches have, get type-safe env vars, and program per-branch compute — all in TypeScript (see the `neon` skill for the full reference). Postgres always exists on every branch, so you never declare the database itself; what you codify here is the Postgres-adjacent surface — Neon Auth, the Data API, and per-branch compute settings (autoscaling and scale-to-zero).
|
|
228
|
+
|
|
229
|
+
Add it with `@neon/config`:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
npm i @neon/config
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
// neon.ts
|
|
237
|
+
import { defineConfig } from "@neon/config/v1";
|
|
238
|
+
|
|
239
|
+
export default defineConfig({
|
|
240
|
+
auth: true, // Neon Auth (adds NEON_AUTH_* env vars)
|
|
241
|
+
dataApi: true, // Data API (adds NEON_DATA_API_URL); requires auth: true (or an external IdP)
|
|
242
|
+
// Postgres exists on every branch; tune its compute per branch:
|
|
243
|
+
branch: (branch) => {
|
|
244
|
+
if (branch.exists) return {}; // leave existing branches untouched
|
|
245
|
+
if (branch.isDefault) return { protected: true }; // prod keeps default compute
|
|
246
|
+
return {
|
|
247
|
+
ttl: "7d", // non-prod branches auto-expire (max 30d)
|
|
248
|
+
postgres: {
|
|
249
|
+
computeSettings: {
|
|
250
|
+
autoscalingLimitMinCu: 0.25, // scale to zero
|
|
251
|
+
autoscalingLimitMaxCu: 1, // keep dev/preview cheap
|
|
252
|
+
suspendTimeout: "5m",
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
};
|
|
256
|
+
},
|
|
257
|
+
});
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Reconcile the declaration from the CLI — the Neon equivalent of `terraform plan` / `apply`:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
neon config status # print the branch's live config
|
|
264
|
+
neon config plan # dry-run diff of what apply would change
|
|
265
|
+
neon config apply # provision the declared services / settings
|
|
266
|
+
neon deploy # alias for `neon config apply`
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Because `neon checkout` applies the policy as it **creates** a branch, a fresh branch comes up with these compute settings (and Auth / Data API) already in place. Checking out an _existing_ branch never reconciles it — run `neon deploy` to apply changes.
|
|
270
|
+
|
|
271
|
+
Since `neon.ts` is TypeScript, invalid combinations fail to compile with an actionable message: the Data API verifies requests with Neon Auth by default, so `dataApi: true` without `auth: true` is a type error (the fix — `auth: true`, or `authProvider: 'external'` with a `jwksUrl` — is in the message). See the `neon` skill's type-safe config note.
|
|
272
|
+
|
|
273
|
+
Read the resulting env back, typed and validated against the policy, with `parseEnv` from `@neon/env`:
|
|
274
|
+
|
|
275
|
+
```typescript
|
|
276
|
+
import { parseEnv } from "@neon/env";
|
|
277
|
+
import config from "./neon";
|
|
278
|
+
|
|
279
|
+
const env = parseEnv(config);
|
|
280
|
+
env.postgres.databaseUrl; // typed; enabling auth / dataApi above surfaces env.auth / env.dataApi
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## Branching
|
|
284
|
+
|
|
285
|
+
Use this when the user is planning isolated environments, schema migration testing, preview deployments, or branch lifecycle automation.
|
|
286
|
+
|
|
287
|
+
Key points:
|
|
288
|
+
|
|
289
|
+
- Branches are instant, copy-on-write clones (no full data copy).
|
|
290
|
+
- Each branch has its own compute endpoint.
|
|
291
|
+
- Use the neon CLI or MCP server to create, inspect, and compare branches.
|
|
292
|
+
|
|
293
|
+
Link: https://neon.com/docs/introduction/branching.md
|
|
294
|
+
|
|
295
|
+
For detailed branch creation workflows (normal vs schema-only branches, reset-from-parent, CLI/MCP selection), use the `neon-postgres-branches` skill if available
|
|
296
|
+
|
|
297
|
+
Or fetch the full branching skill from the following URL:
|
|
298
|
+
|
|
299
|
+
https://neon.com/docs/ai/skills/neon-postgres-branches/SKILL.md
|
|
300
|
+
|
|
301
|
+
If this skill is not installed you can use the following command to install it:
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
npx skills add neondatabase/agent-skills --skill neon-postgres-branches
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Autoscaling
|
|
308
|
+
|
|
309
|
+
Use this when the user needs compute to scale automatically with workload and wants guidance on CU sizing and runtime behavior.
|
|
310
|
+
|
|
311
|
+
Link: https://neon.com/docs/introduction/autoscaling.md
|
|
312
|
+
|
|
313
|
+
## Scale to Zero
|
|
314
|
+
|
|
315
|
+
Use this when optimizing idle costs and discussing suspend/resume behavior, including cold-start trade-offs.
|
|
316
|
+
|
|
317
|
+
Key points:
|
|
318
|
+
|
|
319
|
+
- Idle computes suspend automatically (default 5 minutes, configurable) (unless disabled - launch & scale plan only)
|
|
320
|
+
- First query after suspend typically has a cold-start penalty (around hundreds of ms)
|
|
321
|
+
- Storage remains active while compute is suspended.
|
|
322
|
+
|
|
323
|
+
Link: https://neon.com/docs/introduction/scale-to-zero.md
|
|
324
|
+
|
|
325
|
+
## Instant Restore
|
|
326
|
+
|
|
327
|
+
Use this when the user needs point-in-time recovery or wants to restore data state without traditional backup restore workflows.
|
|
328
|
+
|
|
329
|
+
Key points:
|
|
330
|
+
|
|
331
|
+
- History windows for instant restore depend on plan limits.
|
|
332
|
+
- Users can create branches from historical points-in-time.
|
|
333
|
+
- Time Travel queries can be used for historical inspection workflows.
|
|
334
|
+
|
|
335
|
+
Link: https://neon.com/docs/introduction/branch-restore.md
|
|
336
|
+
|
|
337
|
+
## Read Replicas
|
|
338
|
+
|
|
339
|
+
Use this for read-heavy workloads where the user needs dedicated read-only compute without duplicating storage.
|
|
340
|
+
|
|
341
|
+
Key points:
|
|
342
|
+
|
|
343
|
+
- Replicas are read-only compute endpoints sharing the same storage.
|
|
344
|
+
- Creation is fast and scaling is independent from primary compute.
|
|
345
|
+
- Typical use cases: analytics, reporting, and read-heavy APIs.
|
|
346
|
+
|
|
347
|
+
Link: https://neon.com/docs/introduction/read-replicas.md
|
|
348
|
+
|
|
349
|
+
## Connection Pooling
|
|
350
|
+
|
|
351
|
+
Use this when the user is in serverless or high-concurrency environments and needs safe, scalable Postgres connection management.
|
|
352
|
+
|
|
353
|
+
Key points:
|
|
354
|
+
|
|
355
|
+
- Neon pooling uses PgBouncer.
|
|
356
|
+
- Add `-pooler` to endpoint hostnames to use pooled connections.
|
|
357
|
+
- Pooling is especially important in serverless runtimes with bursty concurrency.
|
|
358
|
+
|
|
359
|
+
Link: https://neon.com/docs/connect/connection-pooling.md
|
|
360
|
+
|
|
361
|
+
## IP Allow Lists
|
|
362
|
+
|
|
363
|
+
Use this when the user needs to restrict database access by trusted networks, IPs, or CIDR ranges.
|
|
364
|
+
|
|
365
|
+
Link: https://neon.com/docs/introduction/ip-allow.md
|
|
366
|
+
|
|
367
|
+
## Logical Replication
|
|
368
|
+
|
|
369
|
+
Use this when integrating CDC pipelines, external Postgres sync, or replication-based data movement.
|
|
370
|
+
|
|
371
|
+
Key points:
|
|
372
|
+
|
|
373
|
+
- Neon supports native logical replication workflows.
|
|
374
|
+
- Useful for replicating to/from external Postgres systems.
|
|
375
|
+
|
|
376
|
+
Link: https://neon.com/docs/guides/logical-replication-guide.md
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: neon-postgres-branches
|
|
3
|
+
description: >-
|
|
4
|
+
Choose and create the right Neon branch type for testing and development.
|
|
5
|
+
Use when users ask about Neon branching, migration testing with real data,
|
|
6
|
+
isolated test environments, schema-only branch workflows for sensitive data,
|
|
7
|
+
or branch creation via Neon CLI or Neon MCP. Triggers include "Neon branch",
|
|
8
|
+
"test migrations safely", "branch production data", "schema-only branch",
|
|
9
|
+
"reset branch" and "sensitive data testing".
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Neon Postgres Branching
|
|
13
|
+
|
|
14
|
+
The outcome of this skill should be a created Neon branch (or a clear, actionable next step if creation cannot proceed).
|
|
15
|
+
Choose the correct branch type, then execute branch creation via MCP or CLI.
|
|
16
|
+
|
|
17
|
+
- **Normal branch** for realistic migration and query testing with real data.
|
|
18
|
+
- **Schema-only branch (Beta)** for sensitive data workflows where structure is needed without copying rows.
|
|
19
|
+
|
|
20
|
+
## Branch Type Decision
|
|
21
|
+
|
|
22
|
+
Use this decision rule first:
|
|
23
|
+
|
|
24
|
+
1. If the user wants to test complex migrations, performance, or behavior against production-like data, choose a **normal branch**.
|
|
25
|
+
2. If the user needs to avoid copying sensitive data, choose a **schema-only branch**.
|
|
26
|
+
|
|
27
|
+
If the request is ambiguous, ask one clarifying question:
|
|
28
|
+
"Do you need realistic data for testing, or only schema structure because the data is sensitive?"
|
|
29
|
+
|
|
30
|
+
## Tool Selection: CLI or MCP
|
|
31
|
+
|
|
32
|
+
Always support both Neon CLI and Neon MCP server. Prefer the tool the user already has installed and authenticated.
|
|
33
|
+
|
|
34
|
+
MCP link: https://neon.com/docs/ai/neon-mcp-server.md
|
|
35
|
+
CLI link: https://neon.com/docs/reference/cli-quickstart
|
|
36
|
+
|
|
37
|
+
### Selection order
|
|
38
|
+
|
|
39
|
+
1. Check MCP first in MCP-enabled environments:
|
|
40
|
+
- If Neon MCP tools are available and authenticated (for example, listing projects works), use MCP.
|
|
41
|
+
2. If MCP is unavailable or not authenticated, check CLI:
|
|
42
|
+
- Run `neon --version` to confirm CLI is installed.
|
|
43
|
+
- Run `neon projects list` to confirm auth/context.
|
|
44
|
+
3. If CLI is missing, direct installation via quickstart.
|
|
45
|
+
4. If CLI is installed but not authenticated, guide the user through `neon auth` (or API key auth), then continue.
|
|
46
|
+
5. If both MCP and CLI paths are unsuccessful, use the Neon REST API:
|
|
47
|
+
- https://neon.com/docs/guides/branching-neon-api.md
|
|
48
|
+
|
|
49
|
+
### MCP branch flow
|
|
50
|
+
|
|
51
|
+
1. Choose normal vs schema-only based on data sensitivity and migration-testing goals.
|
|
52
|
+
2. Use branch tools (for example, `create_branch`) to create the branch.
|
|
53
|
+
3. Validate with read tools (for example, `describe_branch`).
|
|
54
|
+
4. For migration workflows, prefer branch-based migration flows before applying to main.
|
|
55
|
+
|
|
56
|
+
## Create a Normal Branch (Preferred for Real-Data Migration Testing)
|
|
57
|
+
|
|
58
|
+
Use this when the user needs realistic testing conditions.
|
|
59
|
+
Real production-like data can expose edge cases your seed or data migration scripts miss, which helps catch migration issues before going live.
|
|
60
|
+
|
|
61
|
+
Link: https://neon.com/docs/introduction/branching.md
|
|
62
|
+
|
|
63
|
+
### Steps
|
|
64
|
+
|
|
65
|
+
1. Use MCP if already available/authenticated; otherwise verify CLI with `neon --version`.
|
|
66
|
+
2. Ensure project context is set (`neon set-context --project-id <your-project-id>`) or include `--project-id` on commands.
|
|
67
|
+
3. Create branch:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
neon branches create \
|
|
71
|
+
--name <branch-name> \
|
|
72
|
+
--parent <parent-branch-id-or-name> \
|
|
73
|
+
--expires-at 2026-12-15T18:02:16Z
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
4. Optionally fetch a connection string for the new branch:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
neon connection-string <branch-name>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Create a Schema-Only Branch (Beta, Sensitive Data)
|
|
83
|
+
|
|
84
|
+
Use this when users must not copy production rows into the test branch.
|
|
85
|
+
|
|
86
|
+
Link: https://neon.com/docs/guides/branching-schema-only.md
|
|
87
|
+
|
|
88
|
+
### Steps
|
|
89
|
+
|
|
90
|
+
1. Use MCP if already available/authenticated; otherwise verify CLI with `neon --version`.
|
|
91
|
+
2. Create schema-only branch:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
neon branches create \
|
|
95
|
+
--name <schema-only-branch-name> \
|
|
96
|
+
--parent <parent-branch-id-or-name> \
|
|
97
|
+
--schema-only \
|
|
98
|
+
--expires-at 2026-12-15T18:02:16Z
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
If multiple projects exist, include:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
neon branches create \
|
|
105
|
+
--name <schema-only-branch-name> \
|
|
106
|
+
--parent <parent-branch-id-or-name> \
|
|
107
|
+
--schema-only \
|
|
108
|
+
--project-id <your-project-id> \
|
|
109
|
+
--expires-at 2026-12-15T18:02:16Z
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Beta Support Guidance (Mandatory)
|
|
113
|
+
|
|
114
|
+
Schema-only branching is in Beta. If users report unexpected behavior, errors, or missing capabilities:
|
|
115
|
+
|
|
116
|
+
1. Ask them to share feedback in the Neon Console:
|
|
117
|
+
- https://console.neon.tech/app/projects?modal=feedback
|
|
118
|
+
2. Recommend opening a support conversation in the Neon Discord:
|
|
119
|
+
- https://discord.gg/92vNTzKDGp
|
|
120
|
+
|
|
121
|
+
## Reset from parent
|
|
122
|
+
|
|
123
|
+
Use this when a child branch has drifted and the user wants a clean refresh from the parent branch's latest schema and data.
|
|
124
|
+
|
|
125
|
+
Link: https://neon.com/docs/guides/reset-from-parent.md
|
|
126
|
+
|
|
127
|
+
### What it does
|
|
128
|
+
|
|
129
|
+
- Fully replaces the child branch schema and data with the parent's latest state.
|
|
130
|
+
- Does not merge; local changes on the child branch are lost.
|
|
131
|
+
- Keeps the same connection details, but active connections are briefly interrupted during reset.
|
|
132
|
+
|
|
133
|
+
### When to recommend it
|
|
134
|
+
|
|
135
|
+
- Development or staging branch is too far behind production.
|
|
136
|
+
- User wants to start a new feature from a clean parent-aligned state.
|
|
137
|
+
- Team wants to refresh staging from production for consistent testing baselines.
|
|
138
|
+
|
|
139
|
+
### Hard constraints and blockers
|
|
140
|
+
|
|
141
|
+
- Only child branches can be reset (root branches and schema-only root branches cannot be reset from parent).
|
|
142
|
+
- If the target branch has children, reset is blocked until those child branches are removed.
|
|
143
|
+
- After a parent branch is restored from snapshot, reset-from-parent may be unavailable for up to 24 hours.
|
|
144
|
+
- Reset-from-parent always uses the current parent state; use Instant restore for point-in-time recovery needs.
|
|
145
|
+
|
|
146
|
+
### CLI usage
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
neon branches reset <id|name> --parent --preserve-under-name <backup-branch-name>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
If project context is not already set, include project ID:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
neon branches reset <id|name> --parent --preserve-under-name <backup-branch-name> --project-id <project-id>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
`--preserve-under-name` keeps the pre-reset state as a backup branch for rollback, but adds one extra branch to clean up later.
|
|
159
|
+
|
|
160
|
+
Optional context setup to avoid repeating `--project-id`:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
neon set-context --project-id <project-id>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Console and API usage
|
|
167
|
+
|
|
168
|
+
- **Console:** Open the target child branch, then select **Reset from parent** from **Actions**.
|
|
169
|
+
- **API:** Use the restore endpoint for the branch and set `source_branch_id` to the parent branch ID.
|
|
170
|
+
|
|
171
|
+
## Notes and Caveats
|
|
172
|
+
|
|
173
|
+
- Schema-only branches are for structure-only cloning and sensitive/compliant data controls.
|
|
174
|
+
- Schema-only branches are independent root branches (no parent branch and no shared history), so reset-from-parent does not apply.
|
|
175
|
+
- For migration testing that depends on real-world row shapes, volumes, and edge cases, prefer normal branches.
|
|
176
|
+
- Root branch allowances and per-branch storage limits can cap how many schema-only branches users can create.
|
|
177
|
+
- If a user is unsure, default recommendation is:
|
|
178
|
+
- **Normal branch** for migration validation.
|
|
179
|
+
- **Schema-only branch** for compliance and privacy constraints.
|
|
180
|
+
|
|
181
|
+
## Useful Workflow Patterns
|
|
182
|
+
|
|
183
|
+
If the user asks for process recommendations (not just a single command), suggest these:
|
|
184
|
+
|
|
185
|
+
- **One branch per PR:** Create branch when PR opens, delete when merged/closed, keep migration tests isolated.
|
|
186
|
+
- **One branch per test run:** Create branch at pipeline start, run migrations/tests, delete at end for deterministic CI.
|
|
187
|
+
- **One branch per developer:** Isolated dev environments with production-like shape; avoid team collisions on shared test data.
|
|
188
|
+
- **PII-aware branching:** If production has sensitive data, derive dev/PR branches from an anonymized branch or use schema-only branches.
|
|
189
|
+
- **Ephemeral lifecycle hygiene:** Set branch expiration and automate cleanup so old branches do not accumulate avoidable storage/history cost.
|
|
190
|
+
|
|
191
|
+
### Post-creation environment update prompt
|
|
192
|
+
|
|
193
|
+
After branch creation, ask whether the user wants to update local environment credentials to point at the new branch.
|
|
194
|
+
|
|
195
|
+
- Ask: "Do you want me to update your `.env` `DATABASE_URL` to this new branch connection string?"
|
|
196
|
+
- If yes, write the new branch connection string to the requested env file/key.
|
|
197
|
+
- If no, leave credentials unchanged and share the connection string for manual use.
|
|
198
|
+
- Never overwrite an existing env key without explicit confirmation.
|
|
199
|
+
|
|
200
|
+
## Neon Infrastructure as Code (`neon.ts`)
|
|
201
|
+
|
|
202
|
+
Beyond creating branches imperatively (CLI / MCP / API above), you can **program what configuration new branches receive** declaratively in `neon.ts` — Neon's infrastructure-as-code file (see the `neon` skill for the full reference). The `branch` property is a function of the branch being evaluated that returns its settings, so every branch born from your project gets a consistent lifecycle and compute profile without per-branch flags.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npm i @neon/config
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
// neon.ts
|
|
210
|
+
import { defineConfig } from "@neon/config/v1";
|
|
211
|
+
|
|
212
|
+
export default defineConfig({
|
|
213
|
+
branch: (branch) => {
|
|
214
|
+
if (branch.exists) return {}; // never reconcile existing branches
|
|
215
|
+
if (branch.isDefault) return { protected: true };
|
|
216
|
+
if (branch.name.startsWith("preview/") || branch.name.startsWith("dev")) {
|
|
217
|
+
return {
|
|
218
|
+
parent: "main",
|
|
219
|
+
ttl: "7d", // ephemeral: auto-expire 7 days after creation (max 30d)
|
|
220
|
+
postgres: {
|
|
221
|
+
computeSettings: {
|
|
222
|
+
autoscalingLimitMinCu: 0.25, // scale to zero
|
|
223
|
+
autoscalingLimitMaxCu: 1, // keep throwaway branches cheap
|
|
224
|
+
suspendTimeout: "5m",
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
return {};
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
The closure receives a read-only descriptor of the target branch — `name`, `exists`, `isDefault`, `parentId`, and more — and returns the tuning to apply: `parent`, `ttl` (auto-expiry), `protected`, and `postgres.computeSettings`. This is the declarative complement to the **Ephemeral lifecycle hygiene** and per-PR / per-test patterns above: instead of remembering `--expires-at` on every `neon branches create`, the TTL and compute profile live in version control and apply to every matching branch.
|
|
235
|
+
|
|
236
|
+
Because `neon checkout` applies this policy when it **creates** a branch, a fresh `preview/*` or `dev-*` branch comes up already expiring and scaled-to-zero. Checking out an _existing_ branch doesn't reconcile it — run `neon deploy` (alias for `neon config apply`) to apply changes to a branch that already exists.
|
|
237
|
+
|
|
238
|
+
## Branching in CI/CD
|
|
239
|
+
|
|
240
|
+
Common CI/CD use cases for Neon branches:
|
|
241
|
+
|
|
242
|
+
- **Per-PR preview deployments:** Branch on PR open, deploy the preview against it, delete on close. Each PR gets an isolated database branch. Injecting the branch's `DATABASE_URL` into the deployed app is hosting-provider-specific — see [preview-branches-with-cloudflare](https://github.com/neondatabase/preview-branches-with-cloudflare), [preview-branches-with-vercel](https://github.com/neondatabase/preview-branches-with-vercel), or [preview-branches-with-fly](https://github.com/neondatabase/preview-branches-with-fly) for tested patterns.
|
|
243
|
+
- **Migration testing in CI:** Run risky schema changes against a branch with production-like data before merge.
|
|
244
|
+
- **Schema diff visibility:** Use the [schema-diff GitHub Action](https://github.com/marketplace/actions/neon-schema-diff-github-action) to auto-comment a DB-layer diff on the PR.
|
|
245
|
+
|
|
246
|
+
## Examples
|
|
247
|
+
|
|
248
|
+
### Example 1: Migration testing with realistic data
|
|
249
|
+
|
|
250
|
+
**User input:** "I need to test a risky migration against production-like data."
|
|
251
|
+
|
|
252
|
+
**Agent output shape:**
|
|
253
|
+
|
|
254
|
+
1. Recommend a normal branch and explain why.
|
|
255
|
+
2. Share docs link: https://neon.com/docs/introduction/branching
|
|
256
|
+
3. Check the available/authenticated tool path first (MCP, otherwise CLI with `neon --version`).
|
|
257
|
+
4. Provide commands:
|
|
258
|
+
- `neon branches create --name migration-test --parent main --expires-at 2026-12-15T18:02:16Z`
|
|
259
|
+
- `neon connection-string migration-test`
|
|
260
|
+
|
|
261
|
+
### Example 2: Sensitive data development workflow
|
|
262
|
+
|
|
263
|
+
**User input:** "We cannot copy production data because of compliance."
|
|
264
|
+
|
|
265
|
+
**Agent output shape:**
|
|
266
|
+
|
|
267
|
+
1. Recommend schema-only branch and explain why.
|
|
268
|
+
2. Share docs link: https://neon.com/docs/guides/branching-schema-only
|
|
269
|
+
3. Check the available/authenticated tool path first (MCP, otherwise CLI with `neon --version`).
|
|
270
|
+
4. Provide command:
|
|
271
|
+
- `neon branches create --name compliance-dev --parent main --schema-only --project-id <your-project-id> --expires-at 2026-12-15T18:02:16Z`
|
|
272
|
+
5. Mention Beta support path:
|
|
273
|
+
- https://console.neon.tech/app/projects?modal=feedback
|
|
274
|
+
- https://discord.gg/92vNTzKDGp
|
|
275
|
+
|
|
276
|
+
## Further reading
|
|
277
|
+
|
|
278
|
+
- https://neon.com/docs/guides/branch-expiration.md
|
|
279
|
+
- https://neon.com/docs/guides/neon-github-integration.md
|
|
280
|
+
- https://neon.com/docs/ai/neon-mcp-server.md
|
|
281
|
+
- https://neon.com/branching
|