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,183 @@
|
|
|
1
|
+
# Troubleshooting: Credentials and Environment
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Troubleshooting: Credentials and Environment](#troubleshooting-credentials-and-environment)
|
|
6
|
+
- [Table of Contents](#table-of-contents)
|
|
7
|
+
- [Overview](#overview)
|
|
8
|
+
- [NoCredentials / ExpiredToken / AssumeRoleFailed](#nocredentials--expiredtoken--assumerolefailed)
|
|
9
|
+
- [Error variants](#error-variants)
|
|
10
|
+
- [Diagnosis](#diagnosis)
|
|
11
|
+
- [Common causes and fixes](#common-causes-and-fixes)
|
|
12
|
+
- [Bootstrap Version Validation](#bootstrap-version-validation)
|
|
13
|
+
- [Error variants](#error-variants-1)
|
|
14
|
+
- [Fixes](#fixes)
|
|
15
|
+
- [Unresolved Account](#unresolved-account)
|
|
16
|
+
- [Fix — set explicit environment](#fix--set-explicit-environment)
|
|
17
|
+
- [Fix — commit context](#fix--commit-context)
|
|
18
|
+
- [Alternatives to context providers](#alternatives-to-context-providers)
|
|
19
|
+
- [Account/Region Tokens](#accountregion-tokens)
|
|
20
|
+
- [Problem](#problem)
|
|
21
|
+
- [Fix](#fix)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Overview
|
|
26
|
+
|
|
27
|
+
This reference covers authentication, authorization, and environment-resolution errors. These failures occur when the CDK CLI cannot determine who you are, what account/region to target, or whether the bootstrap stack is compatible.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## NoCredentials / ExpiredToken / AssumeRoleFailed
|
|
32
|
+
|
|
33
|
+
### Error variants
|
|
34
|
+
|
|
35
|
+
| Error | Meaning |
|
|
36
|
+
| ------------------------ | -------------------------------------------------------------- |
|
|
37
|
+
| `NoCredentials` | No AWS credentials found in the environment |
|
|
38
|
+
| `ExpiredToken` | Credentials exist but the session has expired |
|
|
39
|
+
| `AssumeRoleFailed` | CLI found credentials but cannot assume the CDK bootstrap role |
|
|
40
|
+
| `AssumeRoleExpiredToken` | Token expired during a role assumption chain |
|
|
41
|
+
|
|
42
|
+
### Diagnosis
|
|
43
|
+
|
|
44
|
+
You MUST run these commands first:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
aws sts get-caller-identity
|
|
48
|
+
cdk doctor
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
If `get-caller-identity` fails, the problem is with your base credentials, not CDK.
|
|
52
|
+
|
|
53
|
+
### Common causes and fixes
|
|
54
|
+
|
|
55
|
+
**No CLI credentials configured:**
|
|
56
|
+
|
|
57
|
+
You MUST configure credentials via one of: `~/.aws/credentials`, environment variables (`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`), or SSO.
|
|
58
|
+
|
|
59
|
+
**Wrong profile:**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
cdk deploy $STACK --profile $PROFILE
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Or set the environment variable:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
export AWS_PROFILE=$PROFILE
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Expired SSO session:**
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
aws sso login --profile $PROFILE
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Missing `sts:AssumeRole` on bootstrap roles:**
|
|
78
|
+
|
|
79
|
+
The CDK CLI assumes roles created by `cdk bootstrap`. If the calling principal lacks `sts:AssumeRole` permission on those roles, deployment fails. You MUST verify the trust policy on the bootstrap roles allows your identity.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Bootstrap Version Validation
|
|
84
|
+
|
|
85
|
+
### Error variants
|
|
86
|
+
|
|
87
|
+
- `BootstrapVersionValidation` — the deployed bootstrap stack version is too old for the constructs being deployed.
|
|
88
|
+
- `SSM parameter /cdk-bootstrap/$QUALIFIER/version not found` — the bootstrap stack does not exist in the target account/region, or the qualifier does not match.
|
|
89
|
+
- `Cloud assembly schema version mismatch` — the CLI version is incompatible with the cloud assembly produced by the CDK library.
|
|
90
|
+
|
|
91
|
+
### Fixes
|
|
92
|
+
|
|
93
|
+
**Re-bootstrap the target environment:**
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
cdk bootstrap aws://$ACCOUNT/$REGION
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Match the qualifier** if you use a custom one:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
cdk bootstrap aws://$ACCOUNT/$REGION --qualifier $QUALIFIER
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Grant SSM read access:**
|
|
106
|
+
|
|
107
|
+
The CDK CLI reads the bootstrap version from SSM Parameter Store. The deploying role MUST have `ssm:GetParameter` permission on `/cdk-bootstrap/$QUALIFIER/version`.
|
|
108
|
+
|
|
109
|
+
**CLI version mismatch:**
|
|
110
|
+
|
|
111
|
+
You SHOULD pin `aws-cdk` as a dev dependency to keep the CLI version aligned with the library:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm install --save-dev aws-cdk@$VERSION
|
|
115
|
+
npx cdk deploy $STACK
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
This prevents drift between the globally installed CLI and the library version used in your project.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Unresolved Account
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Cannot determine account/region; context providers need concrete values
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Context providers (e.g., `Vpc.fromLookup`) make API calls at synth time and MUST know the target account and region. Env-agnostic stacks (no explicit `env`) cannot use context providers.
|
|
129
|
+
|
|
130
|
+
### Fix — set explicit environment
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
new MyStack(app, 'MyStack', {
|
|
134
|
+
env: {
|
|
135
|
+
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
136
|
+
region: process.env.CDK_DEFAULT_REGION,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
`CDK_DEFAULT_ACCOUNT` and `CDK_DEFAULT_REGION` are set automatically by the CDK CLI from your current credentials.
|
|
142
|
+
|
|
143
|
+
### Fix — commit context
|
|
144
|
+
|
|
145
|
+
You MUST commit `cdk.context.json` to version control. This file caches the results of context provider lookups so that synth is reproducible without live API calls.
|
|
146
|
+
|
|
147
|
+
### Alternatives to context providers
|
|
148
|
+
|
|
149
|
+
If you cannot set an explicit environment, you SHOULD use one of:
|
|
150
|
+
|
|
151
|
+
- `ec2.Vpc.fromVpcAttributes()` — provide VPC ID, AZs, and subnet IDs directly.
|
|
152
|
+
- SSM Parameter Store lookups at deploy time — store infrastructure values in SSM and read them with `ssm.StringParameter.valueForStringParameter()`.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Account/Region Tokens
|
|
157
|
+
|
|
158
|
+
`stack.account` and `stack.region` return **Tokens** (lazy placeholders), not real values, when the stack is env-agnostic.
|
|
159
|
+
|
|
160
|
+
### Problem
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
if (stack.region === 'us-east-1') {
|
|
164
|
+
// This NEVER matches — stack.region is a Token string like ${Token[AWS.Region.1234]}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Tokens are resolved by CloudFormation at deploy time, not at synth time. You MUST NOT use them in synth-time conditional logic.
|
|
169
|
+
|
|
170
|
+
### Fix
|
|
171
|
+
|
|
172
|
+
Set an explicit environment on the stack so that `stack.account` and `stack.region` resolve to real values at synth time:
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
new MyStack(app, 'MyStack', {
|
|
176
|
+
env: {
|
|
177
|
+
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
178
|
+
region: 'us-east-1',
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
With an explicit env, synth-time conditionals work as expected. Without it, you MUST use `CfnCondition` for deploy-time branching instead of TypeScript `if` statements.
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Troubleshooting: Deployment Failures
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Overview](#overview)
|
|
6
|
+
- [Deploy Failure Root Cause Analysis](#deploy-failure-root-cause-analysis)
|
|
7
|
+
- [Deadly Embrace (Cross-Stack Reference Deadlock)](#deadly-embrace-cross-stack-reference-deadlock)
|
|
8
|
+
- [UPDATE_ROLLBACK_FAILED Recovery](#update_rollback_failed-recovery)
|
|
9
|
+
- [Non-Empty Bucket Deletion](#non-empty-bucket-deletion)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
This reference covers deployment-time failures — errors that occur after `cdk synth` succeeds and CloudFormation begins creating or updating resources. The CDK CLI error message is almost never the root cause; you MUST inspect CloudFormation stack events to find the actual failure.
|
|
16
|
+
|
|
17
|
+
Three error categories exist:
|
|
18
|
+
|
|
19
|
+
| Category | Meaning |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `DeployFailed` | CloudFormation resource-level failure |
|
|
22
|
+
| `DeploymentError` | Asset publishing or IAM permission failure before CFN executes |
|
|
23
|
+
| `EarlyValidationFailure` | Pre-deploy check failed (e.g., bootstrap version mismatch) |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Deploy Failure Root Cause Analysis
|
|
28
|
+
|
|
29
|
+
The CDK CLI surfaces only a terse summary; the real cause is in the failed deployment, not the CLI output. You MUST work through these steps in order.
|
|
30
|
+
|
|
31
|
+
### Step 1: Re-run with `--verbose`
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cdk deploy $STACK --verbose
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Prints every AWS API call, the change-set diff, and a fuller stack trace (`-vv` / `-vvv` for more).
|
|
38
|
+
|
|
39
|
+
### Step 2: `cdk diagnose` (preferred, CDK CLI ≥ 2.1120.0)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
cdk --unstable=diagnose diagnose $STACK
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Inspects the failed deployment and prints the root cause with pointers back to the CDK source that caused it. It runs after the fact, so it also works for diagnosing CI/CD pipeline failures. Requires the `--unstable=diagnose` flag.
|
|
46
|
+
|
|
47
|
+
### Step 3: CloudFormation events (fallback)
|
|
48
|
+
|
|
49
|
+
If `cdk diagnose` is unavailable (older CLI) or you need the raw stream:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
aws cloudformation describe-events --stack-name $STACK --filters FailedEvents=true
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`describe-events` groups events by operation ID and surfaces validation, provisioning, and hook-invocation errors — it supersedes `describe-stack-events`. The FIRST event in the output is the real root cause; later failures are rollback cascade.
|
|
56
|
+
|
|
57
|
+
### Step 4: Read the `ResourceStatusReason`
|
|
58
|
+
|
|
59
|
+
| Reason | Likely cause → fix |
|
|
60
|
+
|---|---|
|
|
61
|
+
| `... already exists` | Physical-name collision — remove `bucketName`/`tableName`/`roleName` and let CDK auto-generate. |
|
|
62
|
+
| `resource creation cancelled` | Not the root — another resource failed first; find that event. |
|
|
63
|
+
| `... in the WAITING state for approximately ... seconds` | Stabilization timeout (RDS, ASG signals, long-running Lambda). |
|
|
64
|
+
| `Export X cannot be deleted as it is in use by Stack Y` | Cross-stack deadlock — see [Deadly Embrace](#deadly-embrace-cross-stack-reference-deadlock). |
|
|
65
|
+
| `is not authorized to perform ...` | The default CDK bootstrap grants AdministratorAccess to the execution role — this error means you're using a customized bootstrap with a restricted execution role, a permissions boundary, or an SCP. Check which specific action/resource is denied, then add only that permission to your custom execution role or permissions boundary. Do NOT widen to `*` — grant the minimum action on the minimum resource ARN. |
|
|
66
|
+
|
|
67
|
+
### Step 5: Service logs for Lambda / API Gateway / custom resources
|
|
68
|
+
|
|
69
|
+
CloudFormation only reports *that* a resource failed. The actual reason (e.g. a custom-resource Lambda threw) is in CloudWatch Logs:
|
|
70
|
+
|
|
71
|
+
- Lambda: `/aws/lambda/<function-name>`
|
|
72
|
+
- CodeBuild-in-pipeline: `/aws/codebuild/<project>`
|
|
73
|
+
- CloudFormation custom resources: the backing Lambda's log group.
|
|
74
|
+
|
|
75
|
+
### `EarlyValidationFailure` specifically
|
|
76
|
+
|
|
77
|
+
Fails BEFORE the change set is submitted — a construct's `validate()` returned errors, a synth-time assertion tripped, or an `addError` annotation fired. The message names the exact property and constraint; fix it before redeploying.
|
|
78
|
+
|
|
79
|
+
> If you have the awslabs `aws-iac-mcp-server`, its `troubleshoot_cloudformation_deployment` tool matches the failure event stream against 30+ known patterns and returns CloudTrail deep links — use it to shortcut Steps 2–4.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Deadly Embrace (Cross-Stack Reference Deadlock)
|
|
84
|
+
|
|
85
|
+
A deadly embrace occurs when Stack A exports a value that Stack B imports, and you then try to remove the export (or the resource behind it). CloudFormation refuses:
|
|
86
|
+
|
|
87
|
+
> Export Stack1:ExportsOutputFnGetAtt-XXXX cannot be deleted as it is in use by Stack2
|
|
88
|
+
|
|
89
|
+
The deadlock is structural: a safe removal needs B deployed first (so it stops importing), but CDK orders A before B because of the dependency.
|
|
90
|
+
|
|
91
|
+
Every cross-stack reference has a **strength**:
|
|
92
|
+
|
|
93
|
+
- **Strong** (default) — uses `Fn::ImportValue`. CloudFormation blocks the producer from removing the export while any consumer still imports it.
|
|
94
|
+
- **Weak** — uses `Fn::GetStackOutput`. No coupling; the producer can be changed or deleted independently.
|
|
95
|
+
- **Both** — transitional state for migrating strong → weak.
|
|
96
|
+
|
|
97
|
+
Cross-account references are always weak (strong is unsupported cross-account).
|
|
98
|
+
|
|
99
|
+
### Fix — reference strength (recommended)
|
|
100
|
+
|
|
101
|
+
CDK supports weakening the reference before removing the resource, with no manual `exportValue` hacks. You MUST do this as a **three-deploy migration**.
|
|
102
|
+
|
|
103
|
+
**Weaken all references to a resource** — `CrossStackReferences.of(resource).produce()`:
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
import { CrossStackReferences, ReferenceStrength } from 'aws-cdk-lib';
|
|
107
|
+
|
|
108
|
+
// Deploy 1 — consumers move to Fn::GetStackOutput; the strong export stays
|
|
109
|
+
CrossStackReferences.of(bucket).produce(ReferenceStrength.BOTH);
|
|
110
|
+
|
|
111
|
+
// Deploy 2 — drop the strong export now that no consumer uses Fn::ImportValue
|
|
112
|
+
CrossStackReferences.of(bucket).produce(ReferenceStrength.WEAK);
|
|
113
|
+
|
|
114
|
+
// Deploy 3 — remove the resource or the reference entirely
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Weaken a single reference** — `Stack.consumeReference()`:
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
import { Stack, ReferenceStrength } from 'aws-cdk-lib';
|
|
121
|
+
|
|
122
|
+
// Deploy 1 — wrap with consumeReference (defaults to BOTH)
|
|
123
|
+
new CfnOutput(consumer, 'BucketArn', { value: Stack.consumeReference(bucket.bucketArn) });
|
|
124
|
+
|
|
125
|
+
// Deploy 2 — switch to WEAK
|
|
126
|
+
new CfnOutput(consumer, 'BucketArn', {
|
|
127
|
+
value: Stack.consumeReference(bucket.bucketArn, ReferenceStrength.WEAK),
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Deploy 3 — remove the resource or reference
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
(Use `Stack.consumeListReference()` for string-list references.)
|
|
134
|
+
|
|
135
|
+
### Fix — legacy two-deploy (`exportValue`)
|
|
136
|
+
|
|
137
|
+
Use this only on CDK versions that lack `ReferenceStrength`. It MUST be done in exactly two deployments:
|
|
138
|
+
|
|
139
|
+
**Deploy 1 — decouple the consumer, keep the export alive:**
|
|
140
|
+
|
|
141
|
+
1. In consumer Stack B, remove the cross-stack reference (replace with a hardcoded value, SSM lookup, etc.).
|
|
142
|
+
2. In producer Stack A, add `this.exportValue(resource.attribute)` to keep the export alive during the transition.
|
|
143
|
+
3. Deploy both.
|
|
144
|
+
|
|
145
|
+
**Deploy 2 — remove the export:**
|
|
146
|
+
|
|
147
|
+
1. In Stack A, remove the `this.exportValue()` call (and the underlying resource if desired).
|
|
148
|
+
2. Deploy again.
|
|
149
|
+
|
|
150
|
+
You MUST NOT attempt to remove the export and the import in a single deployment.
|
|
151
|
+
|
|
152
|
+
### Manual deploy ordering (`cdk deploy -e`)
|
|
153
|
+
|
|
154
|
+
If the consumer already stopped using the value and you control ordering yourself:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
cdk deploy -e $CONSUMER_STACK # deploy consumer first (drops the import)
|
|
158
|
+
cdk deploy -e $PRODUCER_STACK # then producer, removing the export
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`-e` / `--exclusively` deploys only the named stack and skips dependency reconciliation.
|
|
162
|
+
|
|
163
|
+
### Prevention
|
|
164
|
+
|
|
165
|
+
- Default cross-stack references to **weak** for resources you expect to remove or replace. Set app-wide in `cdk.json`:
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{ "context": { "@aws-cdk/core:defaultCrossStackReferences": "weak" } }
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
- Keep stateful, long-lived resources in their own stack, separate from consumers.
|
|
172
|
+
- Use SSM Parameter Store as indirection (producer writes a parameter, consumer reads it) — no CFN export, no embrace.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## UPDATE_ROLLBACK_FAILED Recovery
|
|
177
|
+
|
|
178
|
+
A stack enters `UPDATE_ROLLBACK_FAILED` when CloudFormation cannot roll back a failed update. The stack is wedged and MUST be recovered before any further operations.
|
|
179
|
+
|
|
180
|
+
### Root causes
|
|
181
|
+
|
|
182
|
+
- Resource deleted out-of-band (e.g., manually deleted in the console).
|
|
183
|
+
- Insufficient IAM permissions for the rollback operation.
|
|
184
|
+
- Service quota exceeded.
|
|
185
|
+
- Resource operation timed out.
|
|
186
|
+
|
|
187
|
+
### Recovery options
|
|
188
|
+
|
|
189
|
+
**Option 1 — Standard rollback:**
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
cdk rollback $STACK
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Option 2 — Orphan stuck resources:**
|
|
196
|
+
|
|
197
|
+
If a specific resource cannot be rolled back (e.g., it was deleted out-of-band), skip it:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
cdk rollback $STACK --orphan $LOGICAL_ID
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
The resource is removed from the stack's state without attempting to delete or update it.
|
|
204
|
+
|
|
205
|
+
**Option 3 — Force rollback:**
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
cdk rollback $STACK --force
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Post-recovery steps
|
|
212
|
+
|
|
213
|
+
After the stack returns to a stable state, you MUST:
|
|
214
|
+
|
|
215
|
+
1. Run `cdk diff $STACK` to understand the current drift.
|
|
216
|
+
2. Fix the root cause (restore deleted resources, fix IAM, request quota increase).
|
|
217
|
+
3. Redeploy: `cdk deploy $STACK`.
|
|
218
|
+
|
|
219
|
+
You SHOULD NOT leave a stack in a recovered-but-drifted state.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Non-Empty Bucket Deletion
|
|
224
|
+
|
|
225
|
+
Setting `removalPolicy: cdk.RemovalPolicy.DESTROY` alone MUST NOT be expected to delete an S3 bucket that contains objects. CloudFormation cannot empty a bucket during deletion. Versioned buckets are worse — delete markers and non-current object versions persist even after apparent object deletion, so the bucket can appear empty yet still fail to delete.
|
|
226
|
+
|
|
227
|
+
### Fix
|
|
228
|
+
|
|
229
|
+
You MUST add `autoDeleteObjects: true` alongside the removal policy:
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
new s3.Bucket(this, 'MyBucket', {
|
|
233
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
234
|
+
autoDeleteObjects: true,
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
`autoDeleteObjects` installs a custom resource Lambda that deletes all object versions and delete markers before CloudFormation attempts to delete the bucket.
|
|
239
|
+
|
|
240
|
+
You SHOULD only use this pattern in development or test stacks. Production buckets SHOULD retain the default `removalPolicy: RETAIN`.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Lambda Cannot Find Module at Runtime
|
|
245
|
+
|
|
246
|
+
These errors occur at **Lambda invoke time**, not during `cdk synth`. The function deploys successfully but fails when invoked.
|
|
247
|
+
|
|
248
|
+
### Symptom
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
Cannot find module 'index'
|
|
252
|
+
Cannot find module 'aws-sdk'
|
|
253
|
+
Runtime.ImportModuleError: No module named 'requests'
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Cause
|
|
257
|
+
|
|
258
|
+
- Wrong `handler` value (e.g., `handler: 'handler'` instead of `handler: 'index.handler'`)
|
|
259
|
+
- `aws-sdk` v2 was removed from Node.js 18+ Lambda runtimes — code still imports it
|
|
260
|
+
- Python dependencies not bundled — `Code.fromAsset()` zips the directory without running `pip install`
|
|
261
|
+
|
|
262
|
+
### Fix
|
|
263
|
+
|
|
264
|
+
- Fix handler to match your file and export: `handler: 'index.handler'`
|
|
265
|
+
- Migrate from AWS SDK v2 to v3: `import { S3Client } from '@aws-sdk/client-s3'`
|
|
266
|
+
- Remove `externalModules: ['aws-sdk']` from bundling options if present
|
|
267
|
+
- For Python: use `PythonFunction` from `@aws-cdk/aws-lambda-python-alpha` which bundles pip dependencies automatically
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## API Gateway Multi-Stage
|
|
272
|
+
|
|
273
|
+
This is a **construct design issue** that manifests at deploy time, not a synth failure.
|
|
274
|
+
|
|
275
|
+
### Symptom
|
|
276
|
+
|
|
277
|
+
Creating a `RestApi` produces only one stage. Adding extra `Stage` objects causes conflicts or duplicate deployments.
|
|
278
|
+
|
|
279
|
+
### Cause
|
|
280
|
+
|
|
281
|
+
`RestApi` creates a `Deployment` and a default `Stage` automatically. Creating additional `Stage` objects without disabling the default causes conflicts.
|
|
282
|
+
|
|
283
|
+
### Fix
|
|
284
|
+
|
|
285
|
+
Set `deploy: false` on the `RestApi`, then create `Deployment` and `Stage` objects explicitly:
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
const api = new apigateway.RestApi(this, 'Api', { deploy: false });
|
|
289
|
+
// ... define resources and methods ...
|
|
290
|
+
const deployment = new apigateway.Deployment(this, 'Deployment', { api });
|
|
291
|
+
new apigateway.Stage(this, 'Dev', { deployment, stageName: 'dev' });
|
|
292
|
+
new apigateway.Stage(this, 'Prod', { deployment, stageName: 'prod' });
|
|
293
|
+
```
|