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,53 @@
|
|
|
1
|
+
# Gemini CLI Setup
|
|
2
|
+
|
|
3
|
+
To get the most out of Firebase in the Gemini CLI, follow these steps to install
|
|
4
|
+
the agent extension and the MCP server.
|
|
5
|
+
|
|
6
|
+
## Recommended: Installing Extensions
|
|
7
|
+
|
|
8
|
+
The best way to get both the agent skills and the MCP server is via the Gemini
|
|
9
|
+
extension.
|
|
10
|
+
|
|
11
|
+
### 1. Install and Verify Firebase Extension
|
|
12
|
+
|
|
13
|
+
Check if the extension is already installed before proceeding:
|
|
14
|
+
|
|
15
|
+
1. **Check Existing Extensions**: Run `gemini extensions list`. If the output
|
|
16
|
+
includes `firebase`, the extension is already installed.
|
|
17
|
+
1. **Install Extension**: If not found, run the following command to install the
|
|
18
|
+
Firebase agent skills and MCP server:
|
|
19
|
+
```bash
|
|
20
|
+
gemini extensions install https://github.com/firebase/agent-skills
|
|
21
|
+
```
|
|
22
|
+
1. **Verify Installation**: Run the following checks to confirm installation:
|
|
23
|
+
- `gemini mcp list` -> Output should include `firebase-tools`.
|
|
24
|
+
- `gemini skills list` -> Output should include `firebase-basic`.
|
|
25
|
+
|
|
26
|
+
### 2. Restart and Verify Connection
|
|
27
|
+
|
|
28
|
+
1. **Restart Gemini CLI**: Instruct the user to restart the Gemini CLI if any
|
|
29
|
+
new installation occurred. **Stop and wait** for their confirmation before
|
|
30
|
+
proceeding.
|
|
31
|
+
|
|
32
|
+
______________________________________________________________________
|
|
33
|
+
|
|
34
|
+
## Alternative: Manual MCP Configuration (Project Scope)
|
|
35
|
+
|
|
36
|
+
If the user only wants to use the MCP server for the current project:
|
|
37
|
+
|
|
38
|
+
### 1. Configure and Verify Firebase MCP Server
|
|
39
|
+
|
|
40
|
+
1. **Check Existing Configuration**: Run `gemini mcp list`. If the output
|
|
41
|
+
includes `firebase-tools`, the MCP server is already configured.
|
|
42
|
+
1. **Add the MCP Server**: If not found, run the following command to configure
|
|
43
|
+
the Firebase MCP Server:
|
|
44
|
+
```bash
|
|
45
|
+
gemini mcp add -e IS_GEMINI_CLI_EXTENSION=true firebase npx -y firebase-tools@latest mcp
|
|
46
|
+
```
|
|
47
|
+
1. **Verify Configuration**: Re-run `gemini mcp list` to confirm
|
|
48
|
+
`firebase-tools` is connected.
|
|
49
|
+
|
|
50
|
+
### 2. Restart and Verify Connection
|
|
51
|
+
|
|
52
|
+
1. **Restart Gemini CLI**: Instruct the user to restart the Gemini CLI. **Stop
|
|
53
|
+
and wait** for their confirmation before proceeding.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# GitHub Copilot Setup
|
|
2
|
+
|
|
3
|
+
To get the most out of Firebase with GitHub Copilot in VS Code, follow these
|
|
4
|
+
steps to install the agent skills and the MCP server.
|
|
5
|
+
|
|
6
|
+
## Recommended: Global Setup
|
|
7
|
+
|
|
8
|
+
The agent skills and MCP server should be installed globally for consistent
|
|
9
|
+
access across projects.
|
|
10
|
+
|
|
11
|
+
### 1. Install and Verify Firebase Skills
|
|
12
|
+
|
|
13
|
+
Check if the skills are already installed before proceeding:
|
|
14
|
+
|
|
15
|
+
1. **Check Local skills**: Run `npx skills list --agent github-copilot`. If the
|
|
16
|
+
output includes `firebase-basics`, the skills are already installed locally.
|
|
17
|
+
1. **Check Global skills**: If not found locally, check the global installation
|
|
18
|
+
by running:
|
|
19
|
+
```bash
|
|
20
|
+
npx skills list --global --agent github-copilot
|
|
21
|
+
```
|
|
22
|
+
If the output includes `firebase-basics`, the skills are already installed
|
|
23
|
+
globally.
|
|
24
|
+
1. **Install Skills**: If both checks fail, run the following command to install
|
|
25
|
+
the Firebase agent skills:
|
|
26
|
+
```bash
|
|
27
|
+
npx skills add firebase/agent-skills --agent github-copilot --skill "*"
|
|
28
|
+
```
|
|
29
|
+
*Note: Omit `--yes` and `--global` to choose the installation location
|
|
30
|
+
manually. If prompted interactively in the terminal, ensure you send the
|
|
31
|
+
appropriate user choices via standard input to complete the installation.*
|
|
32
|
+
1. **Verify Installation**: Re-run the checks in steps 1 or 2 to confirm that
|
|
33
|
+
`firebase-basics` is now available.
|
|
34
|
+
|
|
35
|
+
### 2. Configure and Verify Firebase MCP Server
|
|
36
|
+
|
|
37
|
+
The MCP server allows GitHub Copilot to interact directly with Firebase
|
|
38
|
+
projects.
|
|
39
|
+
|
|
40
|
+
1. **Locate `mcp.json`**: Find the configuration file for your environment:
|
|
41
|
+
|
|
42
|
+
- Workspace: `.vscode/mcp.json`
|
|
43
|
+
- Global: User Settings `mcp.json` file.
|
|
44
|
+
|
|
45
|
+
*Note: If the `.vscode/` directory or `mcp.json` file does not exist, create
|
|
46
|
+
them and initialize the file with `{ "mcp": { "servers": {} } }` before
|
|
47
|
+
proceeding.*
|
|
48
|
+
|
|
49
|
+
1. **Check Existing Configuration**: Open the `mcp.json` file and check the
|
|
50
|
+
`mcp.servers` object for a `firebase` entry.
|
|
51
|
+
|
|
52
|
+
- It is already configured if the `command` is `"firebase"` OR if the
|
|
53
|
+
`command` is `"npx"` with `"firebase-tools"` and `"mcp"` in the `args`.
|
|
54
|
+
- **Important**: If a valid `firebase` entry is found, the MCP server is
|
|
55
|
+
already configured. **Skip step 3** and proceed directly to step 4.
|
|
56
|
+
|
|
57
|
+
**Example valid configurations**:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
"firebase": {
|
|
61
|
+
"type": "stdio",
|
|
62
|
+
"command": "npx",
|
|
63
|
+
"args": ["-y", "firebase-tools@latest", "mcp"]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
OR
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
"firebase": {
|
|
71
|
+
"type": "stdio",
|
|
72
|
+
"command": "firebase",
|
|
73
|
+
"args": ["mcp"]
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
1. **Add or Update Configuration**: If the `firebase` block is missing or
|
|
78
|
+
incorrect, add it to the `mcp.servers` object:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
"firebase": {
|
|
82
|
+
"type": "stdio",
|
|
83
|
+
"command": "npx",
|
|
84
|
+
"args": [
|
|
85
|
+
"-y",
|
|
86
|
+
"firebase-tools@latest",
|
|
87
|
+
"mcp"
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
*CRITICAL: Merge this configuration into the existing `mcp.json` file under
|
|
93
|
+
the `mcp.servers` object. You MUST preserve any other existing servers inside
|
|
94
|
+
`mcp.servers`.*
|
|
95
|
+
|
|
96
|
+
1. **Verify Configuration**: Save the file and confirm the `firebase` block is
|
|
97
|
+
present and properly formatted JSON.
|
|
98
|
+
|
|
99
|
+
### 3. Restart and Verify Connection
|
|
100
|
+
|
|
101
|
+
1. **Restart VS Code**: Instruct the user to restart VS Code. **Stop and wait**
|
|
102
|
+
for their confirmation before proceeding.
|
|
103
|
+
1. **Confirm Connection**: Check the MCP server list in the VS Code Copilot UI
|
|
104
|
+
to confirm that the Firebase MCP server is connected.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Other Agents Setup
|
|
2
|
+
|
|
3
|
+
If you use another agent (like Windsurf, Cline, or Claude Desktop), follow these
|
|
4
|
+
steps to install the agent skills and the MCP server.
|
|
5
|
+
|
|
6
|
+
## Recommended: Global Setup
|
|
7
|
+
|
|
8
|
+
The agent skills and MCP server should be installed globally for consistent
|
|
9
|
+
access across projects.
|
|
10
|
+
|
|
11
|
+
### 1. Install and Verify Firebase Skills
|
|
12
|
+
|
|
13
|
+
Check if the skills are already installed before proceeding:
|
|
14
|
+
|
|
15
|
+
1. **Check Local skills**: Run `npx skills list --agent <agent-name>`. If the
|
|
16
|
+
output includes `firebase-basics`, the skills are already installed locally.
|
|
17
|
+
Replace `<agent-name>` with the actual agent name, which can be found
|
|
18
|
+
[here](https://github.com/vercel-labs/skills/blob/main/README.md).
|
|
19
|
+
1. **Check Global skills**: If not found locally, check the global installation
|
|
20
|
+
by running:
|
|
21
|
+
```bash
|
|
22
|
+
npx skills list --global --agent <agent-name>
|
|
23
|
+
```
|
|
24
|
+
If the output includes `firebase-basics`, the skills are already installed
|
|
25
|
+
globally.
|
|
26
|
+
1. **Install Skills**: If both checks fail, run the following command to install
|
|
27
|
+
the Firebase agent skills:
|
|
28
|
+
```bash
|
|
29
|
+
npx skills add firebase/agent-skills --agent <agent-name> --skill "*"
|
|
30
|
+
```
|
|
31
|
+
*Note: Omit `--yes` and `--global` to choose the installation location
|
|
32
|
+
manually. If prompted interactively in the terminal, ensure you send the
|
|
33
|
+
appropriate user choices via standard input to complete the installation.*
|
|
34
|
+
1. **Verify Installation**: Re-run the checks in steps 1 or 2 to confirm that
|
|
35
|
+
`firebase-basics` is now available.
|
|
36
|
+
|
|
37
|
+
### 2. Configure and Verify Firebase MCP Server
|
|
38
|
+
|
|
39
|
+
The MCP server allows the agent to interact directly with Firebase projects.
|
|
40
|
+
|
|
41
|
+
1. **Locate MCP Configuration**: Find the configuration file for your agent
|
|
42
|
+
(e.g., `~/.codeium/windsurf/mcp_config.json`, `cline_mcp_settings.json`, or
|
|
43
|
+
`claude_desktop_config.json`).
|
|
44
|
+
|
|
45
|
+
*Note: If the document or its containing directory does not exist, create
|
|
46
|
+
them and initialize the file with `{ "mcpServers": {} }` before proceeding.*
|
|
47
|
+
|
|
48
|
+
1. **Check Existing Configuration**: Open the configuration file and check the
|
|
49
|
+
`mcpServers` section for a `firebase` entry.
|
|
50
|
+
|
|
51
|
+
- It is already configured if the `command` is `"firebase"` OR if the
|
|
52
|
+
`command` is `"npx"` with `"firebase-tools"` and `"mcp"` in the `args`.
|
|
53
|
+
- **Important**: If a valid `firebase` entry is found, the MCP server is
|
|
54
|
+
already configured. **Skip step 3** and proceed directly to step 4.
|
|
55
|
+
|
|
56
|
+
**Example valid configurations**:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
"firebase": {
|
|
60
|
+
"command": "npx",
|
|
61
|
+
"args": ["-y", "firebase-tools@latest", "mcp"]
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
OR
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
"firebase": {
|
|
69
|
+
"command": "firebase",
|
|
70
|
+
"args": ["mcp"]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
1. **Add or Update Configuration**: If the `firebase` block is missing or
|
|
75
|
+
incorrect, add it to the `mcpServers` object:
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
"firebase": {
|
|
79
|
+
"command": "npx",
|
|
80
|
+
"args": [
|
|
81
|
+
"-y",
|
|
82
|
+
"firebase-tools@latest",
|
|
83
|
+
"mcp"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
*CRITICAL: Merge this configuration into the existing file. You MUST preserve
|
|
89
|
+
any other existing servers inside the `mcpServers` object.*
|
|
90
|
+
|
|
91
|
+
1. **Verify Configuration**: Save the file and confirm the `firebase` block is
|
|
92
|
+
present and properly formatted JSON.
|
|
93
|
+
|
|
94
|
+
### 3. Restart and Verify Connection
|
|
95
|
+
|
|
96
|
+
1. **Restart Agent**: Instruct the user to restart the agent application. **Stop
|
|
97
|
+
and wait** for their confirmation before proceeding.
|
|
98
|
+
1. **Confirm Connection**: Check the MCP server list in the agent's UI to
|
|
99
|
+
confirm that the Firebase MCP server is connected.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Firebase Web Setup Guide
|
|
2
|
+
|
|
3
|
+
## 1. Create a Firebase Project and App
|
|
4
|
+
|
|
5
|
+
If you haven't already created a project:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx -y firebase-tools@latest projects:create
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Register your web app (use `my-web-app` as the literal nickname when providing
|
|
12
|
+
examples):
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx -y firebase-tools@latest apps:create web my-web-app
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
(Note the **App ID** returned by this command).
|
|
19
|
+
|
|
20
|
+
## 2. Installation
|
|
21
|
+
|
|
22
|
+
Install the Firebase SDK via npm:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install firebase
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 3. Initialization
|
|
29
|
+
|
|
30
|
+
Create a `firebase.js` (or `firebase.ts`) file. You can fetch your config object
|
|
31
|
+
using the CLI:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx -y firebase-tools@latest apps:sdkconfig <APP_ID>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Copy the output config object into your initialization file:
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
import { initializeApp } from "firebase/app";
|
|
41
|
+
import { getAuth } from "firebase/auth";
|
|
42
|
+
|
|
43
|
+
// Your web app's Firebase configuration
|
|
44
|
+
const firebaseConfig = {
|
|
45
|
+
apiKey: "API_KEY",
|
|
46
|
+
authDomain: "PROJECT_ID.firebaseapp.com",
|
|
47
|
+
projectId: "PROJECT_ID",
|
|
48
|
+
storageBucket: "PROJECT_ID.firebasestorage.app",
|
|
49
|
+
messagingSenderId: "SENDER_ID",
|
|
50
|
+
appId: "APP_ID",
|
|
51
|
+
measurementId: "G-MEASUREMENT_ID"
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Initialize Firebase
|
|
55
|
+
const app = initializeApp(firebaseConfig);
|
|
56
|
+
const auth = getAuth(app);
|
|
57
|
+
|
|
58
|
+
export { app };
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 4. Using Services
|
|
62
|
+
|
|
63
|
+
Import specific services as needed (Modular API):
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
import { getFirestore, collection, getDocs } from "firebase/firestore";
|
|
67
|
+
import { app } from "./firebase"; // Import the initialized app
|
|
68
|
+
|
|
69
|
+
const db = getFirestore(app);
|
|
70
|
+
|
|
71
|
+
async function getUsers() {
|
|
72
|
+
const querySnapshot = await getDocs(collection(db, "users"));
|
|
73
|
+
querySnapshot.forEach((doc) => {
|
|
74
|
+
console.log(`${doc.id} => ${doc.data()}`);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: firebase-crashlytics
|
|
3
|
+
description: Comprehensive guide for Firebase Crashlytics, including provisioning and SDK usage. Use this skill when the user needs help setting up Crashlytics, adding crash reporting, or using the Crashlytics SDK in their application.
|
|
4
|
+
compatibility: This skill is best used with the Firebase CLI, but does not require it. Firebase CLI can be accessed through `npx -y firebase-tools@latest`.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Crashlytics
|
|
8
|
+
|
|
9
|
+
This skill provides a complete guide for getting started with Crashlytics on
|
|
10
|
+
Android or iOS. Crash data collected from client applications can be read using
|
|
11
|
+
the MCP server in the Firebase CLI.
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
Provisioning Crashlytics requires both a Firebase project and a Firebase app,
|
|
16
|
+
either Android or iOS. To read the data collected by Crashlytics, install the
|
|
17
|
+
MCP server in the Firebase CLI. See the `firebase-basics` skill for references.
|
|
18
|
+
|
|
19
|
+
## SDK Setup
|
|
20
|
+
|
|
21
|
+
To learn how to setup Crashlytics in your application code, choose your
|
|
22
|
+
platform:
|
|
23
|
+
|
|
24
|
+
- **Android**: [android_setup.md](references/android_setup.md)
|
|
25
|
+
- **iOS**: [ios_setup.md](references/ios_setup.md)
|
|
26
|
+
|
|
27
|
+
## SDK Usage
|
|
28
|
+
|
|
29
|
+
The SDK provides a number of features to make crash reports more actionable.
|
|
30
|
+
|
|
31
|
+
- Add custom keys
|
|
32
|
+
- Add custom logs
|
|
33
|
+
- Set user identifiers
|
|
34
|
+
- Report non-fatal exceptions
|
|
35
|
+
|
|
36
|
+
To learn how to customize crash reports and add additional debugging data,
|
|
37
|
+
consult the documentation for your platform.
|
|
38
|
+
|
|
39
|
+
- **Android**:
|
|
40
|
+
[Customize Crash Reports for Android](https://firebase.google.com/docs/crashlytics/android/customize-crash-reports.md)
|
|
41
|
+
- **iOS**:
|
|
42
|
+
[Customize Crash Reports for Apple Platforms](https://firebase.google.com/docs/crashlytics/ios/customize-crash-reports.md)
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Firebase Crashlytics Android Setup Guide
|
|
2
|
+
|
|
3
|
+
Important references:
|
|
4
|
+
|
|
5
|
+
- Refer to the `firebase-basics` skills, particularly those for project and app
|
|
6
|
+
setup, before proceeding.
|
|
7
|
+
|
|
8
|
+
## Project and App Setup
|
|
9
|
+
|
|
10
|
+
Before you begin, ensure you have the following. If a `google-services.json`
|
|
11
|
+
file is present, then use that Firebase project and app. Otherwise you may need
|
|
12
|
+
to create them.
|
|
13
|
+
|
|
14
|
+
- **Firebase CLI**: Installed and logged in (see `firebase-basics`).
|
|
15
|
+
- **Firebase Project**: Created via
|
|
16
|
+
`npx -y firebase-tools@latest projects:create` (see `firebase-basics`).
|
|
17
|
+
- **Firebase App**: Created via
|
|
18
|
+
`npx -y firebase-tools@latest apps:create <IOS|ANDROID|WEB> <package-name-or-bundle-id>`
|
|
19
|
+
|
|
20
|
+
The `google-services.json` file must be present in the Android app's module
|
|
21
|
+
directory. If missing, get the config using the Firebase CLI:
|
|
22
|
+
`npx -y firebase-tools@latest apps:sdkconfig ANDROID <App-ID>`.
|
|
23
|
+
|
|
24
|
+
## Add Dependencies to Gradle Build
|
|
25
|
+
|
|
26
|
+
These changes are made to your Android project's Gradle files.
|
|
27
|
+
|
|
28
|
+
### Project-level `build.gradle.kts` (`<project>/build.gradle.kts`)
|
|
29
|
+
|
|
30
|
+
Add the latest version of the Crashlytics Gradle plugin to the `plugins` block.
|
|
31
|
+
Fetch the
|
|
32
|
+
[latest version from the Google Maven repository](https://maven.google.com/web/index.html?q=firebase-crashlytics-gradle#com.google.firebase:firebase-crashlytics-gradle)
|
|
33
|
+
before adding this.
|
|
34
|
+
|
|
35
|
+
```kotlin
|
|
36
|
+
plugins {
|
|
37
|
+
// ... other plugins
|
|
38
|
+
id("com.google.firebase.crashlytics") version "<latest_plugin_version>" apply false
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### App-level `build.gradle.kts` (`<project>/<app-module>/build.gradle.kts`)
|
|
43
|
+
|
|
44
|
+
1. Add the Crashlytics plugin to the `plugins` block:
|
|
45
|
+
|
|
46
|
+
```kotlin
|
|
47
|
+
plugins {
|
|
48
|
+
// ... other plugins
|
|
49
|
+
id("com.google.firebase.crashlytics")
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
1. Add the Firebase Crashlytics dependency to the `dependencies` block. It is
|
|
54
|
+
recommended to use the Firebase Bill of Materials (BoM) to manage SDK
|
|
55
|
+
versions. Fetch the
|
|
56
|
+
[latest version from the Google Maven repository](https://maven.google.com/web/index.html?q=firebase-bom#com.google.firebase:firebase-bom)
|
|
57
|
+
before adding this.
|
|
58
|
+
|
|
59
|
+
```kotlin
|
|
60
|
+
dependencies {
|
|
61
|
+
// ... other dependencies
|
|
62
|
+
|
|
63
|
+
// Import the Firebase BoM
|
|
64
|
+
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
65
|
+
|
|
66
|
+
// Add the dependencies for the Crashlytics and Analytics
|
|
67
|
+
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Follow up Steps
|
|
72
|
+
|
|
73
|
+
### Optional: Install the NDK SDK to capture native crashes
|
|
74
|
+
|
|
75
|
+
If your app uses native code (C/C++), or includes a library with native code,
|
|
76
|
+
you can configure Crashlytics to report native crashes.
|
|
77
|
+
|
|
78
|
+
App-level `build.gradle.kts` (`<project>/<app-module>/build.gradle.kts`)
|
|
79
|
+
|
|
80
|
+
1. Add the `firebase-crashlytics-ndk` dependency:
|
|
81
|
+
|
|
82
|
+
```kotlin
|
|
83
|
+
dependencies {
|
|
84
|
+
// ... other dependencies
|
|
85
|
+
implementation("com.google.firebase:firebase-crashlytics-ndk:18.6.2")
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
1. Enable the `nativeSymbolUpload` flag in your `buildTypes` configuration. This
|
|
90
|
+
will automatically upload symbol files for your native code, which are
|
|
91
|
+
required to symbolicate native crash reports.
|
|
92
|
+
|
|
93
|
+
```kotlin
|
|
94
|
+
android {
|
|
95
|
+
// ... other config
|
|
96
|
+
buildTypes {
|
|
97
|
+
getByName("release") {
|
|
98
|
+
// ...
|
|
99
|
+
firebaseCrashlytics {
|
|
100
|
+
nativeSymbolUploadEnabled = true
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
After these changes, Crashlytics will automatically report crashes in your app's
|
|
108
|
+
native code.
|
|
109
|
+
|
|
110
|
+
### Required: Force a Test Crash
|
|
111
|
+
|
|
112
|
+
To verify that Crashlytics is correctly installed, you need to force a test
|
|
113
|
+
crash in the app.
|
|
114
|
+
|
|
115
|
+
1. Add code to your main activity (e.g., in `onCreate`) to trigger a crash a few
|
|
116
|
+
seconds after app startup:
|
|
117
|
+
|
|
118
|
+
```kotlin
|
|
119
|
+
import android.os.Handler
|
|
120
|
+
import android.os.Looper
|
|
121
|
+
|
|
122
|
+
// ... in your Activity's onCreate method or similar startup logic
|
|
123
|
+
Handler(Looper.getMainLooper()).postDelayed({
|
|
124
|
+
throw RuntimeException("Test Crash") // Force a crash after 3 seconds
|
|
125
|
+
}, 3000)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
1. Run your app on a device or emulator. The app should crash after a short
|
|
129
|
+
delay.
|
|
130
|
+
|
|
131
|
+
1. Restart the app. The Crashlytics SDK will send the crash report to Firebase
|
|
132
|
+
on the next app launch.
|
|
133
|
+
|
|
134
|
+
1. After a few minutes, the crash should be available in the Firebase console.
|
|
135
|
+
Go to **DevOps & Engagement** > **Crashlytics** to view your dashboard and
|
|
136
|
+
crash reports.
|
|
137
|
+
|
|
138
|
+
- If the Firebase MCP server is installed, use the `get_report` tool to check
|
|
139
|
+
that a crash was received.
|
|
140
|
+
- As a fallback, visit the Crashlytics dashboard in the Firebase console to see
|
|
141
|
+
the new crash report.
|
|
142
|
+
|
|
143
|
+
5. After verifying that Firebase has received the crash report - either using
|
|
144
|
+
the `get_report` tool or manually viewing it in the Firebase console - remove
|
|
145
|
+
the code from step 1 that triggers the crash. This prevents the application
|
|
146
|
+
from always crashing on start up after a delay.
|
|
147
|
+
|
|
148
|
+
### Optional: Add custom debugging information
|
|
149
|
+
|
|
150
|
+
Customize reports to help you better understand what's happening in your app and
|
|
151
|
+
the circumstances around events reported to Crashlytics. See
|
|
152
|
+
[Customize Crash Reports for Android](https://firebase.google.com/docs/crashlytics/android/customize-crash-reports.md).
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Firebase Crashlytics iOS Setup Guide
|
|
2
|
+
|
|
3
|
+
Important references:
|
|
4
|
+
|
|
5
|
+
- Refer to the `firebase-basics` skills, particularly those for iOS setup,
|
|
6
|
+
before proceeding.
|
|
7
|
+
- Refer to the `xcode-project-setup` skills.
|
|
8
|
+
|
|
9
|
+
## Project and App Setup
|
|
10
|
+
|
|
11
|
+
Use the `firebase-tools` CLI to set up the project if necessary.
|
|
12
|
+
|
|
13
|
+
1. **Find Bundle ID:** Read the Xcode project to find the iOS bundle ID. Check
|
|
14
|
+
the `PRODUCT_BUNDLE_IDENTIFIER` value in the `.pbxproj` file or the
|
|
15
|
+
`Info.plist` file.
|
|
16
|
+
1. **Create Firebase Project:** If no project exists, create one:
|
|
17
|
+
`npx -y firebase-tools@latest projects:create <project-id> --display-name="My Awesome App"`
|
|
18
|
+
1. **Create Firebase App:** Register the iOS app with the discovered bundle ID:
|
|
19
|
+
`npx -y firebase-tools@latest apps:create IOS <bundle-id>`
|
|
20
|
+
1. **Link the GoogleService-Info.plist file:** Use the script in the
|
|
21
|
+
`xcode-project-setup` skill to obtain the config and link.
|
|
22
|
+
|
|
23
|
+
## Add Swift Package Dependencies
|
|
24
|
+
|
|
25
|
+
Install the Crashlytics SDK using the Swift package manager, or the script in
|
|
26
|
+
the `xcode-project-setup` skill.
|
|
27
|
+
|
|
28
|
+
Install the `FirebaseCrashlytics` package from the
|
|
29
|
+
`https://github.com/firebase/firebase-ios-sdk.git` repository.
|
|
30
|
+
|
|
31
|
+
## Initialize Firebase in App Code
|
|
32
|
+
|
|
33
|
+
Modify the application's entry point to initialize Firebase. Refer to the iOS
|
|
34
|
+
setup reference in the `firebase-basics` skill.
|
|
35
|
+
|
|
36
|
+
## Add dSYM Upload Script
|
|
37
|
+
|
|
38
|
+
Add a Run Script phase to the main app target in Xcode. This step is required to
|
|
39
|
+
upload dSYM files for crash symbolication.
|
|
40
|
+
|
|
41
|
+
1. **Debug Information Format**: The `Debug Information Format` in Build
|
|
42
|
+
Settings must be set to `DWARF with dSYM File`.
|
|
43
|
+
1. **Run Script Content**: A new "Run Script Phase" should be added to the
|
|
44
|
+
target's "Build Phases" with the following content:
|
|
45
|
+
```bash
|
|
46
|
+
${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
When using the `xcode-project-setup` skills, the above two steps will be done as
|
|
50
|
+
part of adding the `FirebaseCrashlytics` package. Once the skill has been
|
|
51
|
+
invoked and succeeded, verify that the app's project.pbxproj file contains a Run
|
|
52
|
+
Script Build phase where the shell script attribute value contains
|
|
53
|
+
'Crashlytics'. Specifically, there should be a `PBXShellScriptBuildPhase`
|
|
54
|
+
section with the attribute `shellScript` that is set to a value that contains
|
|
55
|
+
`Crashlytics/run` and an attribute `inputPaths` where one of the values contains
|
|
56
|
+
`GoogleService-Info.plist`. If verification is not successful, present the above
|
|
57
|
+
two options to be done manually.
|
|
58
|
+
|
|
59
|
+
## Follow up Steps
|
|
60
|
+
|
|
61
|
+
### Required: Force a Test Crash
|
|
62
|
+
|
|
63
|
+
1. Add code to trigger a crash a few seconds after app startup to verify
|
|
64
|
+
Crashlytics setup.
|
|
65
|
+
|
|
66
|
+
**For SwiftUI Apps (in `AppDelegate.swift`):**
|
|
67
|
+
|
|
68
|
+
````
|
|
69
|
+
*File: `AppDelegate.swift`*
|
|
70
|
+
```swift
|
|
71
|
+
import FirebaseCore
|
|
72
|
+
import Dispatch // For DispatchQueue
|
|
73
|
+
|
|
74
|
+
// ...
|
|
75
|
+
|
|
76
|
+
class AppDelegate: NSObject, UIApplicationDelegate {
|
|
77
|
+
func application(_ application: UIApplication,
|
|
78
|
+
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
|
|
79
|
+
FirebaseApp.configure()
|
|
80
|
+
// Force a crash after a delay to test Crashlytics
|
|
81
|
+
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
|
|
82
|
+
fatalError("Test Crash")
|
|
83
|
+
}
|
|
84
|
+
return true
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
````
|
|
89
|
+
|
|
90
|
+
2. Run your app on a device or simulator. If running in the iOS simulator, make
|
|
91
|
+
sure that the Xcode debugger is disconnected, otherwise the crash will not
|
|
92
|
+
make it to Crashlytics. The app should crash after a short delay.
|
|
93
|
+
|
|
94
|
+
1. Restart the app. The Crashlytics SDK will send the crash report to Firebase
|
|
95
|
+
on the next app launch.
|
|
96
|
+
|
|
97
|
+
1. After a few minutes, the crash should be available in the Firebase console.
|
|
98
|
+
Go to **DevOps & Engagement** > **Crashlytics** to view your dashboard and
|
|
99
|
+
crash reports.
|
|
100
|
+
|
|
101
|
+
- If the Firebase MCP server is installed, use the `get_report` tool to check
|
|
102
|
+
that a crash was received.
|
|
103
|
+
- As a fallback, visit the Crashlytics dashboard in the Firebase console to see
|
|
104
|
+
the new crash report.
|
|
105
|
+
|
|
106
|
+
5. After verifying that Firebase has received the crash report - either using
|
|
107
|
+
the `get_report` tool or manually viewing it in the Firebase console - remove
|
|
108
|
+
the code from step 1 that triggers the crash. This prevents the application
|
|
109
|
+
from always crashing on start up after a delay.
|
|
110
|
+
|
|
111
|
+
### Optional: Add custom debugging information
|
|
112
|
+
|
|
113
|
+
Customize reports to help you better understand what's happening in your app and
|
|
114
|
+
the circumstances around events reported to Crashlytics. See
|
|
115
|
+
[Customize Crash Reports for Apple Platforms](https://firebase.google.com/docs/crashlytics/ios/customize-crash-reports.md).
|