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,304 @@
|
|
|
1
|
+
# Development Workflow Reference
|
|
2
|
+
|
|
3
|
+
## Pipeline Stage Categories
|
|
4
|
+
|
|
5
|
+
Understanding stage categories helps compose valid pipelines. Stages must appear in this order:
|
|
6
|
+
|
|
7
|
+
| Category | Stages | Rules |
|
|
8
|
+
|----------|--------|-------|
|
|
9
|
+
| **Source** (1, required) | `$source` | Must be first. One per pipeline. |
|
|
10
|
+
| **Stateless Processing** | `$match`, `$project`, `$addFields`, `$unset`, `$unwind`, `$replaceRoot`, `$redact` | Can appear anywhere after source. No state or memory overhead. |
|
|
11
|
+
| **Enrichment** | `$lookup`, `$https` | I/O-bound. Use `parallelism` setting. Place `$https` after windows to batch. |
|
|
12
|
+
| **Stateful/Window** | `$tumblingWindow`, `$hoppingWindow`, `$sessionWindow` | Accumulates state in memory. Monitor `memoryUsageBytes`. |
|
|
13
|
+
| **Validation** | `$validate` | Schema enforcement. Use `validationAction: "dlq"` (not `"error"`). Place early to catch bad data. |
|
|
14
|
+
| **Custom Code** | `$function` | JavaScript UDFs. Requires SP30+. |
|
|
15
|
+
| **Output** (1+, required for deployed) | `$merge`, `$emit` | Must be last. Required for persistent processors. Sinkless = ephemeral only. |
|
|
16
|
+
|
|
17
|
+
**Key ordering principle:** Place `$match` as early as possible (reduces volume for all downstream stages). Place `$project` after `$match` (reduces document size). Place `$https` after windows (batches API calls).
|
|
18
|
+
|
|
19
|
+
## 5-Phase Development Lifecycle
|
|
20
|
+
|
|
21
|
+
### Phase 1: Project Setup
|
|
22
|
+
|
|
23
|
+
**Goal:** Workspace and connections ready.
|
|
24
|
+
|
|
25
|
+
1. Discover existing resources:
|
|
26
|
+
- `atlas-streams-discover` → `list-workspaces` — see what already exists
|
|
27
|
+
- If workspace exists, `inspect-workspace` to review config
|
|
28
|
+
|
|
29
|
+
2. Create workspace (if needed):
|
|
30
|
+
- `atlas-streams-build` → `resource: "workspace"`
|
|
31
|
+
- Choose region close to your data sources
|
|
32
|
+
- Start with `tier: "SP10"` for development
|
|
33
|
+
- `includeSampleData: true` (default) gives you `sample_stream_solar` for testing
|
|
34
|
+
|
|
35
|
+
3. Verify workspace:
|
|
36
|
+
- `atlas-streams-discover` → `inspect-workspace` — confirm state and region
|
|
37
|
+
|
|
38
|
+
### Phase 2: Connection Development
|
|
39
|
+
|
|
40
|
+
**Goal:** All data sources and sinks connected and verified.
|
|
41
|
+
|
|
42
|
+
1. Identify required connections:
|
|
43
|
+
- Source connections (Kafka, Cluster change streams, Kinesis, Sample)
|
|
44
|
+
- Sink connections (Cluster for `$merge`, Kafka for `$emit`, S3, Kinesis)
|
|
45
|
+
- Enrichment connections (Https for `$https`, Cluster for `$lookup`)
|
|
46
|
+
|
|
47
|
+
2. Create each connection:
|
|
48
|
+
- `atlas-streams-build` → `resource: "connection"` for each
|
|
49
|
+
- Let the tool elicit missing sensitive fields (passwords, bootstrap servers)
|
|
50
|
+
- See [connection-configs.md](connection-configs.md) for type-specific schemas
|
|
51
|
+
|
|
52
|
+
3. Verify connections:
|
|
53
|
+
- `atlas-streams-discover` → `list-connections` — confirm all created
|
|
54
|
+
- `atlas-streams-discover` → `inspect-connection` for each — verify state and config
|
|
55
|
+
|
|
56
|
+
### Phase 3: Processor Development
|
|
57
|
+
|
|
58
|
+
**Goal:** Working processor with validated pipeline.
|
|
59
|
+
|
|
60
|
+
#### Pre-Deployment Connection Validation (MANDATORY)
|
|
61
|
+
|
|
62
|
+
**BEFORE creating any processor**, you MUST validate all connections referenced in your pipeline. This prevents silent failures and confusion about data destinations.
|
|
63
|
+
|
|
64
|
+
**Step 1: List all connections in workspace**
|
|
65
|
+
```
|
|
66
|
+
atlas-streams-discover → action: "list-connections", workspaceName: "<your-workspace>"
|
|
67
|
+
```
|
|
68
|
+
Verify all required connections exist.
|
|
69
|
+
|
|
70
|
+
**Step 2: Inspect EACH connection referenced in pipeline**
|
|
71
|
+
|
|
72
|
+
For EVERY `connectionName` in your pipeline (source, sink, enrichment), inspect it:
|
|
73
|
+
```
|
|
74
|
+
atlas-streams-discover → action: "inspect-connection",
|
|
75
|
+
workspaceName: "<your-workspace>",
|
|
76
|
+
resourceName: "<connection-name>"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Verify for each connection:**
|
|
80
|
+
- [ ] Connection exists and state is READY
|
|
81
|
+
- [ ] Connection type matches intended usage:
|
|
82
|
+
- Cluster: valid for `$source` (change streams), `$merge`, `$lookup`
|
|
83
|
+
- Kafka: valid for `$source`, `$emit`
|
|
84
|
+
- S3: valid for `$emit` only
|
|
85
|
+
- Https: valid for `$https` enrichment or sink
|
|
86
|
+
- Lambda: valid for `$externalFunction` only
|
|
87
|
+
- [ ] Connection name matches actual target (avoid confusion):
|
|
88
|
+
- ⚠️ BAD: connection "atlascluster" → actual target "ClusterRestoreTest"
|
|
89
|
+
- ✅ GOOD: connection "cluster-restore-test" → actual target "ClusterRestoreTest"
|
|
90
|
+
- [ ] For Cluster connections: verify the `clusterName` field points to the intended cluster
|
|
91
|
+
|
|
92
|
+
**Step 3: Present validation summary to user**
|
|
93
|
+
|
|
94
|
+
Always show the user what connections will be used:
|
|
95
|
+
```
|
|
96
|
+
"Before creating processor '<name>', I've verified your connections:
|
|
97
|
+
- ✅ sample_stream_solar → Sample data (READY)
|
|
98
|
+
- ⚠️ atlascluster → ClusterRestoreTest (READY)
|
|
99
|
+
Warning: Connection name 'atlascluster' doesn't match actual cluster 'ClusterRestoreTest'
|
|
100
|
+
- ✅ open-meteo-api → https://api.open-meteo.com/v1/... (READY)
|
|
101
|
+
|
|
102
|
+
Proceed with processor creation?"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Step 4: Wait for user confirmation if warnings exist**
|
|
106
|
+
|
|
107
|
+
If any connection name doesn't match its target, ask the user to confirm before proceeding.
|
|
108
|
+
|
|
109
|
+
**Step 5: Only then create the processor**
|
|
110
|
+
|
|
111
|
+
This validation workflow prevents:
|
|
112
|
+
- Creating processors with non-existent connections (fails immediately)
|
|
113
|
+
- Writing data to unexpected clusters (e.g., "atlascluster" → "ClusterRestoreTest" instead of "AtlasCluster")
|
|
114
|
+
- Confusion when verifying output data later
|
|
115
|
+
|
|
116
|
+
#### Incremental Pipeline Development
|
|
117
|
+
|
|
118
|
+
Follow incremental pipeline development — test at each step:
|
|
119
|
+
|
|
120
|
+
**Step 1: Basic connectivity**
|
|
121
|
+
```json
|
|
122
|
+
[
|
|
123
|
+
{"$source": {"connectionName": "my-source"}},
|
|
124
|
+
{"$merge": {"into": {"connectionName": "my-sink", "db": "test", "coll": "step1"}}}
|
|
125
|
+
]
|
|
126
|
+
```
|
|
127
|
+
Create with `autoStart: true`. Verify documents flow. Stop processor.
|
|
128
|
+
|
|
129
|
+
**Step 2: Add filtering**
|
|
130
|
+
```json
|
|
131
|
+
[
|
|
132
|
+
{"$source": {"connectionName": "my-source"}},
|
|
133
|
+
{"$match": {"status": "active"}},
|
|
134
|
+
{"$merge": {"into": {"connectionName": "my-sink", "db": "test", "coll": "step2"}}}
|
|
135
|
+
]
|
|
136
|
+
```
|
|
137
|
+
Modify pipeline (`stop` → `modify-processor` → `start`). Verify filtered output.
|
|
138
|
+
|
|
139
|
+
**Step 3: Add transformations**
|
|
140
|
+
```json
|
|
141
|
+
[
|
|
142
|
+
{"$source": {"connectionName": "my-source"}},
|
|
143
|
+
{"$match": {"status": "active"}},
|
|
144
|
+
{"$addFields": {"processed_at": "$$NOW_NOT_VALID"}},
|
|
145
|
+
{"$project": {"userId": 1, "amount": 1, "processed_at": 1}},
|
|
146
|
+
{"$merge": {"into": {"connectionName": "my-sink", "db": "test", "coll": "step3"}}}
|
|
147
|
+
]
|
|
148
|
+
```
|
|
149
|
+
**Remember:** `$$NOW` is NOT valid in streaming. Use a field from the source document or omit.
|
|
150
|
+
|
|
151
|
+
**Step 4: Add windowing or enrichment** (if needed)
|
|
152
|
+
|
|
153
|
+
**Step 5: Add error handling**
|
|
154
|
+
- Configure DLQ: `{"dlq": {"connectionName": "my-sink", "db": "streams_dlq", "coll": "failed_docs"}}`
|
|
155
|
+
- Add `$ifNull` for optional enrichment fields
|
|
156
|
+
- Set `onError: "dlq"` on `$https` stages
|
|
157
|
+
|
|
158
|
+
### Phase 4: Testing & Validation
|
|
159
|
+
|
|
160
|
+
**Goal:** Processor verified working correctly.
|
|
161
|
+
|
|
162
|
+
1. Confirm processor state:
|
|
163
|
+
- `atlas-streams-discover` → `inspect-processor` — state should be STARTED
|
|
164
|
+
|
|
165
|
+
2. Run diagnostics:
|
|
166
|
+
- `atlas-streams-discover` → `diagnose-processor` — full health report
|
|
167
|
+
|
|
168
|
+
3. Verify data flow:
|
|
169
|
+
- Use MongoDB `count` tool on output collection — documents arriving?
|
|
170
|
+
- Use MongoDB `find` tool on output collection — data looks correct?
|
|
171
|
+
- Use MongoDB `count` tool on DLQ collection — any errors?
|
|
172
|
+
- If DLQ has documents, use MongoDB `find` tool to inspect failure reasons
|
|
173
|
+
|
|
174
|
+
4. Classify output volume:
|
|
175
|
+
- See [output-diagnostics.md](output-diagnostics.md) for the full decision framework
|
|
176
|
+
- Alert processors: low output is expected
|
|
177
|
+
- Transformation processors: low output is a red flag
|
|
178
|
+
|
|
179
|
+
### Phase 5: Production Deployment
|
|
180
|
+
|
|
181
|
+
**Goal:** Processor running at appropriate tier with monitoring.
|
|
182
|
+
|
|
183
|
+
1. Right-size the tier:
|
|
184
|
+
- See [sizing-and-parallelism.md](sizing-and-parallelism.md) for tier selection
|
|
185
|
+
- Review `memoryUsageBytes` from diagnostics
|
|
186
|
+
- Consider parallelism needs for `$merge`, `$lookup`, `$https`
|
|
187
|
+
- Upgrade tier: `atlas-streams-manage` → `stop-processor`, then `start-processor` with `tier` override
|
|
188
|
+
|
|
189
|
+
2. Ensure DLQ is configured (mandatory for production)
|
|
190
|
+
|
|
191
|
+
3. Use descriptive processor names (e.g., `fraud-detector`, `order-enricher`, `iot-rollup`)
|
|
192
|
+
|
|
193
|
+
## Debugging Decision Trees
|
|
194
|
+
|
|
195
|
+
### Connection Failures
|
|
196
|
+
1. `atlas-streams-discover` → `inspect-connection` — check state
|
|
197
|
+
2. If Kafka: verify `bootstrapServers` is a comma-separated string (not array)
|
|
198
|
+
3. If Cluster: verify cluster exists in project (`atlas-list-clusters`)
|
|
199
|
+
4. If AWS (S3/Kinesis/Lambda): verify IAM role ARN is registered in Cloud Provider Access
|
|
200
|
+
5. If Https: verify URL is reachable and auth headers are in connection config
|
|
201
|
+
|
|
202
|
+
### Processor Startup Failures
|
|
203
|
+
1. `atlas-streams-discover` → `diagnose-processor` — check state and errors
|
|
204
|
+
2. If FAILED: read the error message in diagnostics
|
|
205
|
+
3. Common causes:
|
|
206
|
+
- Invalid pipeline syntax (missing `$source`, missing sink)
|
|
207
|
+
- `$$NOW`/`$$ROOT`/`$$CURRENT` used (not valid in streaming)
|
|
208
|
+
- Kafka `$source` missing `topic` field
|
|
209
|
+
- **Referenced connection doesn't exist** — validate with `list-connections` first
|
|
210
|
+
- **Connection name doesn't match expected target** — inspect connection to verify actual cluster/resource
|
|
211
|
+
- OOM — tier too small for pipeline complexity
|
|
212
|
+
|
|
213
|
+
### Processing Errors (Running but DLQ filling up)
|
|
214
|
+
1. Use MongoDB `find` tool on DLQ collection — inspect error messages
|
|
215
|
+
2. Common causes:
|
|
216
|
+
- Schema mismatches in source data
|
|
217
|
+
- `$https` enrichment failures (API down, auth expired)
|
|
218
|
+
- Type errors in `$addFields` or `$project` expressions
|
|
219
|
+
3. Fix: `stop-processor` → `modify-processor` (fix pipeline) → `start-processor`
|
|
220
|
+
|
|
221
|
+
### Performance Issues (Running but slow)
|
|
222
|
+
1. `atlas-streams-discover` → `diagnose-processor` — check stats
|
|
223
|
+
2. Check `memoryUsageBytes` — if near 80% of tier RAM, upgrade tier
|
|
224
|
+
3. Check if `$match` is early in pipeline (reduces downstream volume)
|
|
225
|
+
4. Check if `$https` has `parallelism` setting (increase for I/O-bound enrichment)
|
|
226
|
+
5. Check if windows have `partitionIdleTimeout` (idle Kafka partitions block windows)
|
|
227
|
+
6. Consider upgrading tier or increasing stage parallelism
|
|
228
|
+
|
|
229
|
+
## Operational Monitoring Cadence
|
|
230
|
+
|
|
231
|
+
### Daily
|
|
232
|
+
- Check processor states via `atlas-streams-discover` → `list-processors`
|
|
233
|
+
- Verify DLQ collections aren't growing via MongoDB `count` tool
|
|
234
|
+
- Confirm output collections are receiving data
|
|
235
|
+
|
|
236
|
+
### Weekly
|
|
237
|
+
- Run `diagnose-processor` for each production processor
|
|
238
|
+
- Review `memoryUsageBytes` trends — approaching 80%?
|
|
239
|
+
- Check connection health across all connections
|
|
240
|
+
|
|
241
|
+
### Monthly
|
|
242
|
+
- Evaluate tier appropriateness — over-provisioned or under-provisioned?
|
|
243
|
+
- Review DLQ patterns — recurring errors that need pipeline fixes?
|
|
244
|
+
- Consider parallelism adjustments based on throughput trends
|
|
245
|
+
|
|
246
|
+
## Troubleshooting
|
|
247
|
+
|
|
248
|
+
| Symptom | Likely cause | Action |
|
|
249
|
+
|---------|-------------|--------|
|
|
250
|
+
| Processor FAILED on start | Invalid pipeline syntax, missing connection, `$$NOW` used | `diagnose-processor` → read error → fix pipeline |
|
|
251
|
+
| DLQ filling up | Schema mismatch, `$https` failures, type errors | `find` on DLQ → fix pipeline or connection |
|
|
252
|
+
| Zero output (transformation) | Connection issue, wrong topic, filter too strict | Check source health → verify connections → check `$match` |
|
|
253
|
+
| Zero output (alert) | Probably normal — no anomalies detected | Verify with known test event |
|
|
254
|
+
| Windows not closing | Idle Kafka partitions | Add `partitionIdleTimeout` to `$source` (e.g., `{"size": 30, "unit": "second"}`) |
|
|
255
|
+
| OOM / processor crash | Tier too small for window state | `diagnose-processor` → check `memoryUsageBytes` → upgrade tier |
|
|
256
|
+
| Slow throughput | Low parallelism on I/O stages | Increase `parallelism` on `$merge`/`$lookup`/`$https` |
|
|
257
|
+
| 404 on workspace | Doesn't exist or misspelled | `discover` → `list-workspaces` |
|
|
258
|
+
| 409 on create | Name already exists | Inspect existing resource or pick new name |
|
|
259
|
+
| 402 error on start | No billing configured | Do NOT retry. Add payment method in Atlas → Billing. Use `sp.process()` in mongosh as free alternative |
|
|
260
|
+
| "processor must be stopped" | Tried to modify running processor | `manage` → `stop-processor` first |
|
|
261
|
+
| bootstrapServers format | Passed as array instead of string | Use comma-separated string: `"broker1:9092,broker2:9092"` |
|
|
262
|
+
| "must choose at least one role" | Cluster connection without `dbRoleToExecute` | Defaults to `readWriteAnyDatabase` — or specify custom role |
|
|
263
|
+
| "No cluster named X" | Cluster doesn't exist in project | `atlas-list-clusters` to verify |
|
|
264
|
+
| IAM role ARN not found | ARN not registered in project | Register via Atlas → Cloud Provider Access |
|
|
265
|
+
| dataProcessRegion format | Wrong region format | See region table above. If unsure, inspect an existing workspace |
|
|
266
|
+
| Processor PROVISIONING for minutes | Restart cycle with exponential backoff | Wait for FAILED state, or stop → restart. Check logs for repeated error |
|
|
267
|
+
| Parallelism exceeded | Tier too small for requested parallelism | Start with higher tier (see `sizing-and-parallelism.md`) |
|
|
268
|
+
| Networking change needed | Networking is immutable after creation | Delete connection and recreate with new networking config |
|
|
269
|
+
| 401 / 403 on API call | Invalid or expired Atlas API credentials | Verify `apiClientId`/`apiClientSecret` and project-level permissions |
|
|
270
|
+
| 429 rate limit | Too many API calls | Wait and retry; avoid tight loops of discover calls |
|
|
271
|
+
|
|
272
|
+
## Pre-Deploy Quality Checklist
|
|
273
|
+
|
|
274
|
+
Before creating a processor, verify:
|
|
275
|
+
|
|
276
|
+
### Connection Validation (MANDATORY - Always do this first)
|
|
277
|
+
- [ ] **CRITICAL**: Call `atlas-streams-discover` → `action: "list-connections"` to list all connections in workspace
|
|
278
|
+
- [ ] **CRITICAL**: Call `atlas-streams-discover` → `action: "inspect-connection"` for EACH connection referenced in pipeline
|
|
279
|
+
- [ ] **CRITICAL**: Verify connection names clearly indicate their actual targets (avoid generic names like "atlascluster" pointing to "ClusterRestoreTest")
|
|
280
|
+
- [ ] **CRITICAL**: Present connection summary to user: "Connection 'X' → Actual target 'Y'" for each connection
|
|
281
|
+
- [ ] **CRITICAL**: Warn user if connection names don't match their targets and ask for confirmation
|
|
282
|
+
- [ ] All connections are in READY state
|
|
283
|
+
- [ ] Connection types match usage (Cluster for $source/$merge, Kafka for topics, etc.)
|
|
284
|
+
|
|
285
|
+
### Pipeline Validation
|
|
286
|
+
- [ ] `search-knowledge` was called to validate sink/source field names
|
|
287
|
+
- [ ] Pipeline starts with `$source` and ends with `$merge`, `$emit`, `$https`, or `$externalFunction` (async)
|
|
288
|
+
- [ ] No `$$NOW`, `$$ROOT`, or `$$CURRENT` in the pipeline
|
|
289
|
+
- [ ] Kafka `$source` includes a `topic` field
|
|
290
|
+
- [ ] Kafka `$source` with windowed pipeline includes `partitionIdleTimeout` (prevents windows from stalling on idle partitions)
|
|
291
|
+
- [ ] HTTPS connections are only used in `$https` enrichment or sink stages, not in `$source`
|
|
292
|
+
- [ ] DLQ is configured (recommended for production)
|
|
293
|
+
- [ ] `$https` stages use `onError: "dlq"` (not `"fail"`)
|
|
294
|
+
- [ ] `$externalFunction` stages use `onError: "dlq"` and `execution` is explicitly set
|
|
295
|
+
- [ ] API auth is stored in connection settings, not hardcoded in the pipeline
|
|
296
|
+
|
|
297
|
+
## Post-Deploy Verification Workflow
|
|
298
|
+
|
|
299
|
+
After creating and starting a processor:
|
|
300
|
+
1. `atlas-streams-discover` → `action: "inspect-processor"` — confirm state is STARTED
|
|
301
|
+
2. `atlas-streams-discover` → `action: "diagnose-processor"` — check for errors in the health report
|
|
302
|
+
3. Use MongoDB `count` tool on the DLQ collection — verify no errors accumulating
|
|
303
|
+
4. Use MongoDB `find` tool on the output collection — verify documents are arriving
|
|
304
|
+
5. If output is low/zero, classify processor type before assuming a problem (see Debug section)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# MCP Server Troubleshooting
|
|
2
|
+
|
|
3
|
+
This skill requires the MongoDB MCP Server with Atlas Stream Processing tools enabled. If these tools are unavailable, follow the diagnostic steps below.
|
|
4
|
+
|
|
5
|
+
## Step 1: Verify MCP Server Connection
|
|
6
|
+
|
|
7
|
+
Check if the MongoDB MCP Server is connected to your environment.
|
|
8
|
+
|
|
9
|
+
**If not connected:**
|
|
10
|
+
- Install the MongoDB MCP Server
|
|
11
|
+
- Configure it with your Atlas API credentials (`apiClientId` and `apiClientSecret`)
|
|
12
|
+
|
|
13
|
+
## Step 2: Verify Tool Availability
|
|
14
|
+
|
|
15
|
+
Check that all four streams tools are available:
|
|
16
|
+
- `atlas-streams-discover`
|
|
17
|
+
- `atlas-streams-build`
|
|
18
|
+
- `atlas-streams-manage`
|
|
19
|
+
- `atlas-streams-teardown`
|
|
20
|
+
|
|
21
|
+
## Fallback Options (Limited Functionality)
|
|
22
|
+
|
|
23
|
+
If you cannot configure the MCP server immediately, you have limited alternatives:
|
|
24
|
+
|
|
25
|
+
### Option 1: Atlas CLI (Read-Only)
|
|
26
|
+
Use Atlas CLI API commands for exploration only:
|
|
27
|
+
```bash
|
|
28
|
+
atlas api streams listStreamWorkspaces --projectId <project-id>
|
|
29
|
+
atlas api streams getStreamWorkspace --workspaceName <workspace-name> --projectId <project-id>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Limitations:**
|
|
33
|
+
- Read-only operations only
|
|
34
|
+
- Cannot create or modify processors
|
|
35
|
+
- No automated validation or diagnostics
|
|
36
|
+
|
|
37
|
+
### Option 2: mongosh with sp.process() (Prototyping Only)
|
|
38
|
+
Use `sp.process()` in mongosh for ephemeral pipeline testing:
|
|
39
|
+
```javascript
|
|
40
|
+
sp.process([
|
|
41
|
+
{ $source: { connectionName: "sample_stream_solar" } },
|
|
42
|
+
{ $match: { temperature: { $gt: 50 } } },
|
|
43
|
+
{ $limit: 10 }
|
|
44
|
+
])
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Limitations:**
|
|
48
|
+
- Ephemeral only (no deployed processors)
|
|
49
|
+
- No billing (runs locally)
|
|
50
|
+
- Cannot test production connections
|
|
51
|
+
- Limited to simple pipeline validation
|
|
52
|
+
|
|
53
|
+
## Recommended Action
|
|
54
|
+
|
|
55
|
+
**For full Atlas Stream Processing capabilities, configure the MongoDB MCP Server with streams preview features enabled.** The fallback options above provide minimal functionality and are not suitable for production workflows.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Processor Output Diagnostics Reference
|
|
2
|
+
|
|
3
|
+
## The Problem
|
|
4
|
+
|
|
5
|
+
A user says "my processor isn't outputting anything" or "output seems low." Before assuming something is broken, you must **classify the processor type** — low output may be perfectly normal.
|
|
6
|
+
|
|
7
|
+
## Processor Type Classification
|
|
8
|
+
|
|
9
|
+
### Category 1: Alert / Anomaly Detection
|
|
10
|
+
|
|
11
|
+
**Expected output:** Low or zero most of the time. Spikes during anomalous events.
|
|
12
|
+
|
|
13
|
+
Examples:
|
|
14
|
+
- Fraud detection (flags suspicious transactions)
|
|
15
|
+
- Threshold alerting (temperature > 100, latency > 500ms)
|
|
16
|
+
- Error monitoring (filters for error-level events)
|
|
17
|
+
- Security alerting (unusual login patterns)
|
|
18
|
+
|
|
19
|
+
**Green flags (healthy):**
|
|
20
|
+
- Zero output during normal conditions
|
|
21
|
+
- Occasional bursts during genuine anomalies
|
|
22
|
+
- DLQ is empty or near-empty
|
|
23
|
+
|
|
24
|
+
**Red flags (problem):**
|
|
25
|
+
- Zero output during a *known* anomaly event
|
|
26
|
+
- DLQ filling up with errors
|
|
27
|
+
- Processor state is FAILED
|
|
28
|
+
|
|
29
|
+
### Category 2: Data Transformation / Ingestion
|
|
30
|
+
|
|
31
|
+
**Expected output:** Roughly 1:1 with input volume. Output should be proportional to source.
|
|
32
|
+
|
|
33
|
+
Examples:
|
|
34
|
+
- Format conversion (Kafka → Atlas)
|
|
35
|
+
- Data enrichment (add fields, lookup)
|
|
36
|
+
- Schema normalization
|
|
37
|
+
- Archive pipelines (collection → collection)
|
|
38
|
+
|
|
39
|
+
**Green flags (healthy):**
|
|
40
|
+
- Output volume roughly matches input volume
|
|
41
|
+
- Consistent throughput over time
|
|
42
|
+
|
|
43
|
+
**Red flags (problem):**
|
|
44
|
+
- Output is zero while source has data
|
|
45
|
+
- Output is much lower than expected source volume
|
|
46
|
+
- Growing backlog (source advancing but output not keeping up)
|
|
47
|
+
- DLQ accumulating documents
|
|
48
|
+
|
|
49
|
+
### Category 3: Filter / Quality Gate
|
|
50
|
+
|
|
51
|
+
**Expected output:** Variable — depends on match rate of filter criteria.
|
|
52
|
+
|
|
53
|
+
Examples:
|
|
54
|
+
- Quality filtering (`$match` for valid records)
|
|
55
|
+
- Data routing (priority-based splitting)
|
|
56
|
+
- Deduplication
|
|
57
|
+
- Sampling
|
|
58
|
+
|
|
59
|
+
**Green flags (healthy):**
|
|
60
|
+
- Output is a consistent percentage of input
|
|
61
|
+
- Percentage aligns with expected data quality/match rate
|
|
62
|
+
|
|
63
|
+
**Red flags (problem):**
|
|
64
|
+
- Output drops to zero when source has data
|
|
65
|
+
- Sudden change in output ratio without a data source change
|
|
66
|
+
- DLQ filling up (filter errors, not just filtered-out data)
|
|
67
|
+
|
|
68
|
+
## Diagnostic Workflow
|
|
69
|
+
|
|
70
|
+
### Step 1: Classify the processor
|
|
71
|
+
|
|
72
|
+
Ask the user what the processor does, or inspect the pipeline:
|
|
73
|
+
- `atlas-streams-discover` → `inspect-processor` — read the pipeline stages
|
|
74
|
+
|
|
75
|
+
**Classification heuristics from pipeline:**
|
|
76
|
+
- Has `$match` with narrow conditions (e.g., `severity > 8`) → likely **Alert**
|
|
77
|
+
- Pipeline is mostly `$addFields`/`$project`/`$merge` → likely **Transformation**
|
|
78
|
+
- `$match` filters broadly (e.g., `status: "active"`) → likely **Filter**
|
|
79
|
+
- Has `$tumblingWindow` with `$match` inside → likely **Alert** (windowed anomaly detection)
|
|
80
|
+
- Has `$tumblingWindow` with `$group` only → likely **Transformation** (aggregation)
|
|
81
|
+
|
|
82
|
+
### Step 2: Check processor state
|
|
83
|
+
|
|
84
|
+
- `atlas-streams-discover` → `diagnose-processor`
|
|
85
|
+
- If state is FAILED → the problem is not low output, it's a crash. See debugging trees in [development-workflow.md](development-workflow.md).
|
|
86
|
+
|
|
87
|
+
### Step 3: Check operational logs
|
|
88
|
+
|
|
89
|
+
- For detailed logs, direct the user to the Atlas UI: **Atlas → Stream Processing → Workspace → Processor → Logs tab**
|
|
90
|
+
- Operational logs contain runtime errors: Kafka producer/consumer failures, schema serialization issues, OOM events, connection timeouts
|
|
91
|
+
|
|
92
|
+
### Step 4: Check DLQ
|
|
93
|
+
|
|
94
|
+
- Use MongoDB `count` tool on the DLQ collection
|
|
95
|
+
- If DLQ has documents → use MongoDB `find` tool to inspect error messages
|
|
96
|
+
- Growing DLQ means documents are being *rejected*, not that nothing is flowing
|
|
97
|
+
|
|
98
|
+
### Step 5: Check output collection
|
|
99
|
+
|
|
100
|
+
- Use MongoDB `count` tool on the output collection
|
|
101
|
+
- Use MongoDB `find` tool with `sort: {"_id": -1}` and `limit: 5` to see most recent documents
|
|
102
|
+
- Check timestamps — are documents recent?
|
|
103
|
+
|
|
104
|
+
### Step 6: Interpret based on processor type
|
|
105
|
+
|
|
106
|
+
| Processor type | Zero output | Low output | Action |
|
|
107
|
+
|---------------|-------------|------------|--------|
|
|
108
|
+
| **Alert** | Probably normal | Probably normal | Verify a known test event triggers output |
|
|
109
|
+
| **Transformation** | Problem — check connections, DLQ | Problem — check filters, DLQ | Debug pipeline and connections |
|
|
110
|
+
| **Filter** | Could be normal if no data matches | Could be normal | Verify filter criteria against actual source data |
|
|
111
|
+
|
|
112
|
+
## Common Diagnostic Patterns
|
|
113
|
+
|
|
114
|
+
After running `diagnose-processor`, match the symptoms to these patterns:
|
|
115
|
+
|
|
116
|
+
| Symptom | Root Cause | Fix |
|
|
117
|
+
|---------|------------|-----|
|
|
118
|
+
| **Error 419 + "no partitions found"** | Kafka topic doesn't exist or is misspelled | Verify topic name with Kafka broker; check connection config |
|
|
119
|
+
| **State: FAILED + multiple restarts** | Connection-level error (bypasses DLQ) | Check operational logs for repeated error; fix connection config or pipeline |
|
|
120
|
+
| **State: STARTED + zero output + windowed pipeline** | Idle Kafka partitions blocking window closure | Add `partitionIdleTimeout` to Kafka `$source` (e.g., `{"size": 30, "unit": "second"}`) |
|
|
121
|
+
| **State: STARTED + zero output + non-windowed** | Source has no data or filter too strict | Check if source (Kafka topic, collection) has data; review `$match` filters |
|
|
122
|
+
| **High memoryUsageBytes approaching tier limit** | OOM risk — window state or pipeline too large | Upgrade to higher tier (see sizing-and-parallelism.md) |
|
|
123
|
+
| **DLQ count increasing** | Per-document processing errors | Use MongoDB `find` on DLQ collection to inspect failed documents and error messages |
|
|
124
|
+
|
|
125
|
+
**When providing fix steps:**
|
|
126
|
+
- Commit to a specific root cause based on the evidence
|
|
127
|
+
- Do NOT present a list of hypothetical scenarios
|
|
128
|
+
- Provide concrete, ordered steps (e.g., "stop → modify pipeline to add partitionIdleTimeout → restart with resumeFromCheckpoint: false")
|
|
129
|
+
|
|
130
|
+
## Contextual Factors
|
|
131
|
+
|
|
132
|
+
Before concluding there's a problem, consider:
|
|
133
|
+
|
|
134
|
+
- **Time of day:** Business-hours-only data sources produce nothing at night
|
|
135
|
+
- **Seasonality:** Holiday periods, end-of-month spikes, etc.
|
|
136
|
+
- **Source health:** Is the source (Kafka topic, collection) actually receiving data?
|
|
137
|
+
- **Window timing:** Windowed processors only emit when the window closes — a 5-minute tumbling window outputs nothing for up to 5 minutes after start
|
|
138
|
+
- **Idle partitions:** Kafka windows won't close if a partition has no data — check `partitionIdleTimeout`
|
|
139
|
+
|
|
140
|
+
## Best Practice: Document Expected Behavior
|
|
141
|
+
|
|
142
|
+
When creating processors, encourage users to use descriptive names that indicate the processor type:
|
|
143
|
+
|
|
144
|
+
| Name pattern | Type indication |
|
|
145
|
+
|-------------|-----------------|
|
|
146
|
+
| `fraud-detector` | Alert — low output expected |
|
|
147
|
+
| `order-enricher` | Transformation — 1:1 output expected |
|
|
148
|
+
| `quality-filter` | Filter — variable output expected |
|
|
149
|
+
| `iot-5min-rollup` | Transformation — output every 5 min |
|
|
150
|
+
| `error-monitor` | Alert — low output expected |
|