vybekiit 0.7.25 → 0.7.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/bin.js +3891 -1301
  2. package/dist/global-skills/aws-cdk/SKILL.md +19 -5
  3. package/dist/global-skills/aws-cdk/references/fast-deployments.md +191 -0
  4. package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +16 -0
  5. package/dist/global-skills/aws-cloudformation/SKILL.md +16 -26
  6. package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +7 -3
  7. package/dist/global-skills/aws-cloudformation/references/cloudformation-language-server.md +177 -0
  8. package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +8 -2
  9. package/dist/global-skills/aws-cloudformation/references/persist-template-context.script.md +5 -8
  10. package/dist/global-skills/aws-cloudformation/references/retrieve-template-context.script.md +1 -1
  11. package/dist/global-skills/aws-cloudformation/references/security-considerations.md +51 -0
  12. package/dist/global-skills/aws-cloudformation/references/troubleshoot-failed-stack.script.md +138 -0
  13. package/dist/global-skills/aws-cloudformation/references/{validate-cloudformation-template.script.md → validate-with-cfn-lint.script.md} +15 -27
  14. package/dist/global-skills/aws-cloudformation/references/validate-with-cloudformation-validate.script.md +181 -0
  15. package/dist/global-skills/aws-cloudformation/references/validation-tool-selection.md +44 -0
  16. package/dist/global-skills/aws-serverless/SKILL.md +9 -1
  17. package/dist/global-skills/aws-serverless/references/architecture.md +3 -1
  18. package/dist/global-skills/aws-serverless/references/lambda.md +3 -1
  19. package/dist/global-skills/aws-serverless/references/orchestration.md +1 -0
  20. package/dist/global-skills/better-auth-best-practices/SKILL.md +18 -8
  21. package/dist/global-skills/eas-app-stores/SKILL.md +31 -15
  22. package/dist/global-skills/eas-app-stores/agents/openai.yaml +2 -2
  23. package/dist/global-skills/eas-app-stores/references/ios-app-store.md +37 -32
  24. package/dist/global-skills/eas-app-stores/references/native-ios.md +167 -0
  25. package/dist/global-skills/eas-app-stores/references/play-store.md +3 -7
  26. package/dist/global-skills/eas-app-stores/references/testflight.md +39 -35
  27. package/dist/global-skills/eas-simulator/SKILL.md +48 -26
  28. package/dist/global-skills/eas-simulator/references/controllers.md +32 -3
  29. package/dist/global-skills/eas-simulator/references/run-your-app.md +34 -4
  30. package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -4
  31. package/dist/global-skills/eas-update/SKILL.md +146 -0
  32. package/dist/global-skills/eas-update/agents/openai.yaml +4 -0
  33. package/dist/global-skills/expo-animation/RECIPES.md +2 -2
  34. package/dist/global-skills/expo-animation/SKILL.md +9 -2
  35. package/dist/global-skills/expo-brownfield/SKILL.md +18 -11
  36. package/dist/global-skills/expo-brownfield/agents/openai.yaml +2 -2
  37. package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +94 -69
  38. package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +40 -42
  39. package/dist/global-skills/expo-brownfield/references/comparison.md +5 -5
  40. package/dist/global-skills/expo-brownfield/references/feature-integration.md +163 -0
  41. package/dist/global-skills/expo-brownfield/references/troubleshooting.md +17 -17
  42. package/dist/global-skills/expo-brownfield/references/version-compatibility.md +40 -0
  43. package/dist/global-skills/expo-data-fetching/SKILL.md +27 -6
  44. package/dist/global-skills/expo-design-system/SKILL.md +27 -7
  45. package/dist/global-skills/expo-design-system/references/audit.md +7 -2
  46. package/dist/global-skills/expo-design-system/references/native-slop.md +74 -0
  47. package/dist/global-skills/expo-examples/SKILL.md +0 -1
  48. package/dist/global-skills/expo-examples/references/catalog.md +1 -1
  49. package/dist/global-skills/expo-migrate-module/SKILL.md +21 -10
  50. package/dist/global-skills/expo-migrate-module/references/compatibility.md +80 -23
  51. package/dist/global-skills/expo-migrate-module/references/migration-map.md +162 -11
  52. package/dist/global-skills/expo-native-ui/SKILL.md +25 -16
  53. package/dist/global-skills/expo-native-ui/agents/openai.yaml +2 -2
  54. package/dist/global-skills/expo-native-ui/references/controls.md +5 -46
  55. package/dist/global-skills/expo-native-ui/references/icons.md +21 -2
  56. package/dist/global-skills/expo-native-ui/references/media.md +15 -20
  57. package/dist/global-skills/expo-native-ui/references/visual-effects.md +12 -11
  58. package/dist/global-skills/expo-overview/SKILL.md +17 -12
  59. package/dist/global-skills/expo-router/SKILL.md +5 -3
  60. package/dist/global-skills/expo-router/references/tabs.md +5 -5
  61. package/dist/global-skills/expo-skill-eval/scripts/check-static.sh +0 -0
  62. package/dist/global-skills/expo-skill-eval/scripts/clean-fixture.sh +0 -0
  63. package/dist/global-skills/expo-skill-eval/scripts/latest-sdk.sh +0 -0
  64. package/dist/global-skills/expo-skill-eval/scripts/make-fixture.sh +0 -0
  65. package/dist/global-skills/expo-skill-eval/scripts/make-workspace.sh +0 -0
  66. package/dist/global-skills/expo-skill-eval/scripts/snapshot-android.sh +0 -0
  67. package/dist/global-skills/expo-skill-eval/scripts/snapshot-ios.sh +0 -0
  68. package/dist/global-skills/expo-skill-eval/scripts/snapshot-web.sh +0 -0
  69. package/dist/global-skills/expo-upgrade/SKILL.md +3 -1
  70. package/dist/global-skills/expo-web-to-native/references/false-friends.md +2 -2
  71. package/dist/global-skills/expo-web-to-native/references/native-patterns.md +1 -1
  72. package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +13 -16
  73. package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +4 -5
  74. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +4 -4
  75. package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +3 -3
  76. package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
  77. package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +4 -5
  78. package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
  79. package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +24 -25
  80. package/dist/global-skills/firebase-auth-basics/references/security_rules.md +4 -2
  81. package/dist/global-skills/firebase-crashlytics/references/android_setup.md +7 -4
  82. package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +2 -3
  83. package/dist/global-skills/firebase-data-connect/SKILL.md +2 -1
  84. package/dist/global-skills/firebase-data-connect/examples.md +4 -4
  85. package/dist/global-skills/firebase-data-connect/reference/config.md +5 -4
  86. package/dist/global-skills/firebase-data-connect/reference/realtime.md +1 -2
  87. package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +2 -2
  88. package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +2 -2
  89. package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +17 -6
  90. package/dist/global-skills/firebase-data-connect/reference/security.md +5 -5
  91. package/dist/global-skills/firebase-data-connect/templates.md +2 -1
  92. package/dist/global-skills/firebase-firestore/SKILL.md +20 -8
  93. package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +5 -4
  94. package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +12 -3
  95. package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +16 -18
  96. package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +1 -1
  97. package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +5 -1
  98. package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +7 -7
  99. package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +5 -5
  100. package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +4 -4
  101. package/dist/global-skills/firebase-firestore/references/standard/indexes.md +16 -18
  102. package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +1 -1
  103. package/dist/global-skills/firebase-remote-config-basics/SKILL.md +0 -5
  104. package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +36 -8
  105. package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +1 -7
  106. package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +17 -6
  107. package/dist/global-skills/{firebase-firestore/references/standard/security_rules.md → firestore-rules-creation/SKILL.md} +24 -13
  108. package/dist/global-skills/grow-my-customers/SKILL.md +23 -0
  109. package/dist/global-skills/instrument-feature-flags/SKILL.md +25 -25
  110. package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +141 -285
  111. package/dist/global-skills/instrument-feature-flags/references/android.md +6 -15
  112. package/dist/global-skills/instrument-feature-flags/references/api.md +4 -11
  113. package/dist/global-skills/instrument-feature-flags/references/best-practices.md +1 -13
  114. package/dist/global-skills/instrument-feature-flags/references/django.md +14 -27
  115. package/dist/global-skills/instrument-feature-flags/references/dotnet.md +20 -79
  116. package/dist/global-skills/instrument-feature-flags/references/elixir.md +1 -9
  117. package/dist/global-skills/instrument-feature-flags/references/flask.md +13 -13
  118. package/dist/global-skills/instrument-feature-flags/references/flutter.md +3 -24
  119. package/dist/global-skills/instrument-feature-flags/references/go.md +3 -15
  120. package/dist/global-skills/instrument-feature-flags/references/ios.md +4 -17
  121. package/dist/global-skills/instrument-feature-flags/references/java.md +5 -13
  122. package/dist/global-skills/instrument-feature-flags/references/laravel.md +13 -17
  123. package/dist/global-skills/instrument-feature-flags/references/next-js.md +25 -32
  124. package/dist/global-skills/instrument-feature-flags/references/nodejs.md +8 -15
  125. package/dist/global-skills/instrument-feature-flags/references/php.md +1 -15
  126. package/dist/global-skills/instrument-feature-flags/references/python.md +2 -15
  127. package/dist/global-skills/instrument-feature-flags/references/react-native.md +13 -15
  128. package/dist/global-skills/instrument-feature-flags/references/react.md +17 -21
  129. package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +37 -83
  130. package/dist/global-skills/instrument-feature-flags/references/ruby.md +2 -15
  131. package/dist/global-skills/instrument-feature-flags/references/rust.md +13 -25
  132. package/dist/global-skills/instrument-feature-flags/references/usage.md +14 -63
  133. package/dist/global-skills/instrument-feature-flags/references/web.md +9 -14
  134. package/dist/global-skills/instrument-product-analytics/SKILL.md +29 -29
  135. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +3 -1
  136. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +3 -1
  137. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +3 -1
  138. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +3 -1
  139. package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +3 -1
  140. package/dist/global-skills/instrument-product-analytics/references/android.md +72 -107
  141. package/dist/global-skills/instrument-product-analytics/references/angular.md +26 -28
  142. package/dist/global-skills/instrument-product-analytics/references/astro.md +13 -24
  143. package/dist/global-skills/instrument-product-analytics/references/configuration.md +45 -63
  144. package/dist/global-skills/instrument-product-analytics/references/django.md +14 -27
  145. package/dist/global-skills/instrument-product-analytics/references/dotnet.md +20 -79
  146. package/dist/global-skills/instrument-product-analytics/references/elixir.md +47 -49
  147. package/dist/global-skills/instrument-product-analytics/references/flask.md +13 -13
  148. package/dist/global-skills/instrument-product-analytics/references/flutter.md +60 -90
  149. package/dist/global-skills/instrument-product-analytics/references/go.md +17 -56
  150. package/dist/global-skills/instrument-product-analytics/references/identify-users.md +15 -15
  151. package/dist/global-skills/instrument-product-analytics/references/ios.md +11 -15
  152. package/dist/global-skills/instrument-product-analytics/references/laravel.md +13 -17
  153. package/dist/global-skills/instrument-product-analytics/references/next-js.md +25 -32
  154. package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +13 -27
  155. package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +14 -28
  156. package/dist/global-skills/instrument-product-analytics/references/php.md +33 -84
  157. package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +229 -9
  158. package/dist/global-skills/instrument-product-analytics/references/python.md +415 -106
  159. package/dist/global-skills/instrument-product-analytics/references/react-native.md +161 -155
  160. package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +12 -33
  161. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +15 -33
  162. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +12 -33
  163. package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +26 -41
  164. package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +37 -83
  165. package/dist/global-skills/instrument-product-analytics/references/ruby.md +48 -108
  166. package/dist/global-skills/instrument-product-analytics/references/svelte.md +18 -24
  167. package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +17 -19
  168. package/dist/global-skills/instrument-product-analytics/references/usage.md +14 -63
  169. package/dist/global-skills/instrument-product-analytics/references/vue-js.md +29 -28
  170. package/dist/global-skills/manifest.json +8 -2
  171. package/dist/global-skills/mongodb-search-and-ai/SKILL.md +28 -37
  172. package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +438 -0
  173. package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +60 -4
  174. package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +46 -108
  175. package/dist/global-skills/neon/SKILL.md +207 -213
  176. package/dist/global-skills/neon/references/auth.md +12 -0
  177. package/dist/global-skills/neon/references/claimable-neon.md +10 -14
  178. package/dist/global-skills/neon/references/function-triggers.md +53 -0
  179. package/dist/global-skills/neon/references/logs-loki.md +61 -0
  180. package/dist/global-skills/neon/references/parse-env.md +32 -0
  181. package/dist/global-skills/neon/references/sdk.md +7 -0
  182. package/dist/global-skills/neon-ai-gateway/SKILL.md +14 -16
  183. package/dist/global-skills/neon-auth/SKILL.md +155 -0
  184. package/dist/global-skills/neon-auth/references/managed-auth.md +173 -0
  185. package/dist/global-skills/neon-auth/references/self-managed.md +25 -0
  186. package/dist/global-skills/neon-functions/SKILL.md +159 -84
  187. package/dist/global-skills/neon-functions/references/ai-sdk.md +4 -6
  188. package/dist/global-skills/neon-functions/references/function-triggers.md +249 -0
  189. package/dist/global-skills/neon-functions/references/mastra-studio.md +3 -3
  190. package/dist/global-skills/neon-functions/references/mcp.md +1 -1
  191. package/dist/global-skills/neon-functions/references/production-hardening.md +340 -0
  192. package/dist/global-skills/neon-functions/references/sse.md +8 -5
  193. package/dist/global-skills/neon-object-storage/SKILL.md +10 -11
  194. package/dist/global-skills/neon-postgres/SKILL.md +120 -17
  195. package/dist/global-skills/neon-postgres/references/full-text-search.md +99 -0
  196. package/dist/global-skills/neon-postgres/references/hybrid-search.md +90 -0
  197. package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +172 -0
  198. package/dist/global-skills/neon-postgres/references/vector-search.md +137 -0
  199. package/dist/global-skills/neon-postgres-branches/SKILL.md +3 -3
  200. package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
  201. package/dist/global-skills/onboarding/SKILL.md +8 -6
  202. package/dist/global-skills/resend/SKILL.md +4 -2
  203. package/dist/global-skills/resend/references/broadcasts.md +6 -1
  204. package/dist/global-skills/resend/references/receiving.md +29 -10
  205. package/dist/global-skills/resend/references/sending/email-management.md +14 -4
  206. package/dist/global-skills/resend/references/topics.md +9 -6
  207. package/dist/global-skills/resend/references/usage.md +117 -0
  208. package/dist/global-skills/resend/references/webhooks.md +59 -2
  209. package/dist/global-skills/stripe-best-practices/SKILL.md +35 -29
  210. package/dist/global-skills/stripe-best-practices/references/billing.md +9 -2
  211. package/dist/global-skills/stripe-best-practices/references/payments.md +4 -2
  212. package/dist/global-skills/stripe-best-practices/references/security.md +3 -1
  213. package/dist/global-skills/stripe-best-practices/references/tax.md +39 -20
  214. package/dist/global-skills/supabase/SKILL.md +6 -0
  215. package/dist/global-skills/use-railway/SKILL.md +42 -22
  216. package/dist/global-skills/use-railway/references/analyze-db.md +7 -6
  217. package/dist/global-skills/use-railway/references/cloud-agents.md +70 -0
  218. package/dist/global-skills/use-railway/references/configure.md +17 -2
  219. package/dist/global-skills/use-railway/references/databases.md +107 -0
  220. package/dist/global-skills/use-railway/references/deploy.md +5 -5
  221. package/dist/global-skills/use-railway/references/feature-flags.md +25 -13
  222. package/dist/global-skills/use-railway/references/iac.md +66 -77
  223. package/dist/global-skills/use-railway/references/operate.md +26 -3
  224. package/dist/global-skills/use-railway/references/request.md +31 -23
  225. package/dist/global-skills/use-railway/references/setup.md +16 -5
  226. package/dist/global-skills/use-railway/references/tracing.md +261 -0
  227. package/dist/global-skills/use-railway/references/usage.md +52 -0
  228. package/dist/global-skills/use-railway/scripts/analyze-mongo.py +0 -0
  229. package/dist/global-skills/use-railway/scripts/analyze-mysql.py +0 -0
  230. package/dist/global-skills/use-railway/scripts/analyze-postgres.py +0 -0
  231. package/dist/global-skills/use-railway/scripts/analyze-redis.py +0 -0
  232. package/dist/global-skills/use-railway/scripts/enable-pg-stats.py +0 -0
  233. package/dist/global-skills/use-railway/scripts/pg-extensions.py +0 -0
  234. package/dist/global-skills/use-railway/scripts/railway-api.sh +0 -0
  235. package/dist/global-skills/validate-my-idea/SKILL.md +54 -0
  236. package/dist/global-skills/{feedback → vybekiit-feedback}/SKILL.md +16 -12
  237. package/dist/global-skills/watch-my-app/SKILL.md +53 -0
  238. package/dist/global-skills/workers-best-practices/SKILL.md +36 -103
  239. package/dist/global-skills/workers-best-practices/references/configuration.md +139 -0
  240. package/dist/global-skills/workers-best-practices/references/platform-apis.md +51 -0
  241. package/dist/global-skills/workers-best-practices/references/{rules.md → runtime-patterns.md} +13 -137
  242. package/dist/global-skills/wrangler/SKILL.md +48 -901
  243. package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +19 -15
  244. package/package.json +22 -22
  245. package/dist/global-skills/expo-native-ui/references/animations.md +0 -220
  246. package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +0 -577
  247. package/dist/global-skills/workers-best-practices/references/review.md +0 -174
@@ -15,7 +15,7 @@ to create them.
15
15
  - **Firebase Project**: Created via
16
16
  `npx -y firebase-tools@latest projects:create` (see `firebase-basics`).
17
17
  - **Firebase App**: Created via
18
- `npx -y firebase-tools@latest apps:create <IOS|ANDROID|WEB> <package-name-or-bundle-id>`
18
+ `npx -y firebase-tools@latest apps:create ANDROID <display-name> --package-name=<package-name>`
19
19
 
20
20
  The `google-services.json` file must be present in the Android app's module
21
21
  directory. If missing, get the config using the Firebase CLI:
@@ -57,11 +57,11 @@ plugins {
57
57
  // ... other dependencies
58
58
 
59
59
  // Import the Firebase BoM
60
- implementation(platform("com.google.firebase:firebase-bom:32.7.0"))
60
+ implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
61
61
 
62
62
  // Add the dependencies for Remote Config and Analytics
63
- implementation("com.google.firebase:firebase-config-ktx")
64
- implementation("com.google.firebase:firebase-analytics-ktx")
63
+ implementation("com.google.firebase:firebase-config")
64
+ implementation("com.google.firebase:firebase-analytics")
65
65
  }
66
66
  ```
67
67
 
@@ -75,17 +75,45 @@ effectively.
75
75
  Define default values so your app has functional logic before it ever fetches a
76
76
  template from the server. Create an XML file (e.g.,
77
77
  `res/xml/remote_config_defaults.xml`):
78
- `xml <!-- Example Remote Config Defaults File --> <?xml version="1.0" encoding="utf-8"?> <defaultsMap> <entry> <key>welcome_message</key> <value>Welcome to the app!</value> </entry> <entry> <key>is_feature_enabled</key> <value>false</value> </entry> </defaultsMap> `
78
+ ```xml
79
+ <?xml version="1.0" encoding="utf-8"?>
80
+ <!-- Example Remote Config Defaults File -->
81
+ <defaultsMap>
82
+ <entry>
83
+ <key>welcome_message</key>
84
+ <value>Welcome to the app!</value>
85
+ </entry>
86
+ <entry>
87
+ <key>is_feature_enabled</key>
88
+ <value>false</value>
89
+ </entry>
90
+ </defaultsMap>
91
+ ```
92
+
79
93
  Then, initialize the SDK in your Activity or Application class:
80
94
 
81
- ````
82
95
  ```kotlin
96
+ import com.google.firebase.Firebase
97
+ import com.google.firebase.remoteconfig.remoteConfig
98
+
83
99
  val remoteConfig = Firebase.remoteConfig
84
100
  remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
85
101
  ```
86
- ````
87
102
 
88
103
  ### Fetch and Activate Values
89
104
 
90
105
  To apply values from the cloud, you must fetch them and then activate them.
91
- `kotlin remoteConfig.fetchAndActivate() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { val updated = task.result println("Config params updated: $updated") } else { println("Fetch failed") } // Access a value val message = remoteConfig.getString("welcome_message") } `
106
+
107
+ ```kotlin
108
+ remoteConfig.fetchAndActivate()
109
+ .addOnCompleteListener(this) { task ->
110
+ if (task.isSuccessful) {
111
+ val updated = task.result
112
+ println("Config params updated: $updated")
113
+ } else {
114
+ println("Fetch failed")
115
+ }
116
+ // Access a value
117
+ val message = remoteConfig.getString("welcome_message")
118
+ }
119
+ ```
@@ -16,7 +16,7 @@ Use the `firebase-tools` CLI to set up the project if necessary.
16
16
  1. **Create Firebase Project:** If no project exists, create one:
17
17
  `npx -y firebase-tools@latest projects:create <project-id> --display-name="My Awesome App"`
18
18
  1. **Create Firebase App:** Register the iOS app with the discovered bundle ID:
19
- `npx -y firebase-tools@latest apps:create IOS <bundle-id>`
19
+ `npx -y firebase-tools@latest apps:create IOS <display-name> --bundle-id=<bundle-id>`
20
20
  1. **Link the GoogleService-Info.plist file:** Use the script in the
21
21
  `xcode-project-setup` skill to obtain the config and link.
22
22
 
@@ -43,7 +43,6 @@ effectively in your iOS app.
43
43
  Define default values so your app behaves as intended before it connects to the
44
44
  backend. Create a property list file (e.g., RemoteConfigDefaults.plist):
45
45
 
46
- ````
47
46
  ```xml
48
47
  <?xml version="1.0" encoding="UTF-8"?>
49
48
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -56,24 +55,20 @@ backend. Create a property list file (e.g., RemoteConfigDefaults.plist):
56
55
  </dict>
57
56
  </plist>
58
57
  ```
59
- ````
60
58
 
61
59
  Then, initialize the SDK and set the defaults:
62
60
 
63
- ````
64
61
  ```swift
65
62
  import FirebaseRemoteConfig
66
63
 
67
64
  let remoteConfig = RemoteConfig.remoteConfig()
68
65
  remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
69
66
  ```
70
- ````
71
67
 
72
68
  ### Fetch and Activate Values
73
69
 
74
70
  To retrieve values from the cloud and apply them to your app:
75
71
 
76
- ````
77
72
  ```swift
78
73
  remoteConfig.fetchAndActivate { (status, error) in
79
74
  if status == .successFetchedFromRemote || status == .successUsingPreFetchedData {
@@ -86,4 +81,3 @@ remoteConfig.fetchAndActivate { (status, error) in
86
81
  let message = remoteConfig.configValue(forKey: "welcome_message").stringValue
87
82
  }
88
83
  ```
89
- ````
@@ -37,9 +37,9 @@ operations to bypass it.
37
37
  1. **Type Safety:** Are fields checked with 'is string', 'is int', or 'is
38
38
  timestamp'?
39
39
  1. **Field-Level vs. Identity-Level Security:** Be careful with rules that use
40
- \`hasOnly()\` or \`diff()\`. While these restrict *which* fields can be
40
+ `hasOnly()` or `diff()`. While these restrict *which* fields can be
41
41
  updated, they do NOT restrict *who* can update them unless an ownership check
42
- (e.g., \`resource.data.uid == request.auth.uid\`) is also present. If a rule
42
+ (e.g., `resource.data.uid == request.auth.uid`) is also present. If a rule
43
43
  allows any authenticated user to update fields on another user's document
44
44
  without a corresponding ownership check, it is a data integrity
45
45
  vulnerability.
@@ -67,7 +67,18 @@ single hardcoded admin email (e.g., checking request.auth.token.email ==
67
67
  - **5 (Secure):** Comprehensive validation, strict ownership, and role-based
68
68
  access via secure ACLs.
69
69
 
70
- Return your assessment in JSON format using the following structure: { "score":
71
- 1-5, "summary": "overall assessment", "findings": \[ { "check": "checklist
72
- item", "severity": "critical|major|moderate|minor", "issue": "description",
73
- "recommendation": "fix" } \] }
70
+ Return your assessment in JSON format using the following structure:
71
+ ```json
72
+ {
73
+ "score": 1,
74
+ "summary": "overall assessment",
75
+ "findings": [
76
+ {
77
+ "check": "checklist item",
78
+ "severity": "critical|major|moderate|minor",
79
+ "issue": "description",
80
+ "recommendation": "fix"
81
+ }
82
+ ]
83
+ }
84
+ ```
@@ -1,4 +1,16 @@
1
- ## 1. Generate Firestore Rules
1
+ ---
2
+ name: firestore-rules-creation
3
+ description: >-
4
+ Designs, authors, refactors, and hardens production-grade Cloud Firestore Security Rules (firestore.rules). IMPORTANT: If subagent delegation AND the firestore-rules-author subagent are available in your environment, delegate authoring firestore.rules to the firestore-rules-author subagent. If subagent delegation is unavailable (e.g. not enabled in the IDE), firestore-rules-author is not installed, or you are running inside firestore-rules-author, follow this skill directly.
5
+ metadata:
6
+ category: Databases
7
+ ---
8
+
9
+ # Firestore Security Rules Creation
10
+
11
+ > [!IMPORTANT] **Subagent Delegation vs. Direct Authoring**
12
+ > - **If subagent delegation AND the `firestore-rules-author` subagent are available** in your active environment: **DO NOT** author `firestore.rules` directly in the main agent. Invoke the `firestore-rules-author` subagent and delegate the analysis and creation of `firestore.rules` to it.
13
+ > - **If subagent delegation is unavailable** (e.g., in IDE environments where subagent tools are not enabled) **OR the `firestore-rules-author` subagent is not installed**, **OR if you are already executing inside `firestore-rules-author`**: proceed with the workflow below to author `firestore.rules` directly.
2
14
 
3
15
  You are an expert Firebase Security Rules engineer with deep knowledge of
4
16
  Firestore security best practices. Your task is to generate comprehensive,
@@ -32,8 +44,7 @@ Follow this structured workflow strictly:
32
44
  - CRUD operations (create, read, update, delete)
33
45
  - Authentication patterns (Firebase Auth, custom tokens, anonymous)
34
46
  - Access patterns and business logic rules
35
- 1. **Document your findings** in a untracked file. Refer to this file when
36
- generating the security rules.
47
+ 1. **Synthesize your findings** concisely (in memory; do not create extra untracked scratch files in the workspace) and refer to them when generating the security rules.
37
48
 
38
49
  #### Phase-2: Security Rules Generation
39
50
 
@@ -173,7 +184,7 @@ function isValidList(list, maxSize) {
173
184
  //
174
185
  // Validate optional string (if present, must be string and within length)
175
186
  function isValidOptionalString(field, minLen, maxLen) {
176
- return !('field' in request.resource.data) ||
187
+ return !(field in request.resource.data) ||
177
188
  (request.resource.data[field] is string &&
178
189
  request.resource.data[field].size() >= minLen &&
179
190
  request.resource.data[field].size() <= maxLen);
@@ -345,12 +356,12 @@ match /users/{userId} {
345
356
  pollution. For example, a `tags` array must verify that every item is a string
346
357
  AND that each string is within a reasonable length (e.g., < 20 chars).
347
358
 
348
- - **Permission-Field Lockdown:** Fields that control access (e.g., `editors`,
349
- `viewers`, `roles`, `role`, `ownerId`) **MUST** be immutable for non-owner
350
- editors. In `update` rules, use `fieldUnchanged()` for these fields unless the
351
- `request.auth.uid` matches the document's original owner/creator. This
352
- prevents "Permission Escalation" where a collaborator could grant themselves
353
- higher privileges or remove the owner.
359
+ - **Permission-Field Lockdown:** Fields that control access (e.g., `editors`,
360
+ `viewers`, `roles`, `role`, `ownerId`) **MUST** be immutable for non-owner
361
+ editors. In `update` rules, use `areImmutableFieldsUnchanged()` for these
362
+ fields unless the `request.auth.uid` matches the document's original
363
+ owner/creator. This prevents "Permission Escalation" where a collaborator
364
+ could grant themselves higher privileges or remove the owner.
354
365
 
355
366
  ### Advanced Validation for Business Logic
356
367
 
@@ -358,7 +369,7 @@ Secure rules must enforce the application's business logic. This includes
358
369
  validating field values against a list of allowed options and controlling how
359
370
  and when fields can change.
360
371
 
361
- \#### 1. Enforce Enum Values
372
+ #### 1. Enforce Enum Values
362
373
 
363
374
  If a field should only contain specific values (e.g., a status), validate
364
375
  against a list.
@@ -375,7 +386,7 @@ against a list.
375
386
  allow create: if isValidStatus() && ...
376
387
  ```
377
388
 
378
- \#### 2. Validate State Transitions
389
+ #### 2. Validate State Transitions
379
390
 
380
391
  For `update` operations, you **MUST** validate that a field is changing from a
381
392
  valid previous state to a valid new state. This prevents users from bypassing
@@ -538,7 +549,7 @@ following attack vectors. You MUST document the outcome of each attempt.
538
549
  ones) call the `isValidX()` function? If an `allow update` rule only checks
539
550
  `isOwner()`, it is a CRITICAL vulnerability.
540
551
 
541
- Document each attack attempt and whether it succeeded. If ANY attack succeeds:
552
+ Evaluate each attack attempt mentally (do not create separate untracked attack-log files). If ANY attack succeeds:
542
553
 
543
554
  - Fix the security hole
544
555
  - Regenerate the rules
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: grow-my-customers
3
+ description: Set up or check the five safe customer journeys for welcome, trial reminders, abandoned checkout, upgrades, and win-back.
4
+ ---
5
+
6
+ # Grow my customers
7
+
8
+ Use this skill when the builder wants automatic customer follow-up.
9
+
10
+ ## Rules
11
+
12
+ 1. Open the Journeys screen and check the current status.
13
+ 2. Explain the next single action in plain language, then stop.
14
+ 3. Verify the action worked before continuing.
15
+ 4. Never send a real test message. Turn on local testing and use **Run safe local test**.
16
+ 5. Never weaken permission, unsubscribe, sending-limit, or account-message boundaries.
17
+ 6. If a check fails, say what happened and give one action to fix it.
18
+ 7. After the local test, confirm each saved enrollment is visible on the Journeys screen.
19
+ 8. Record the completed choice in `checklist.md` and update Progress.
20
+
21
+ ## Success
22
+
23
+ Say: "Your customer journeys are protected and ready 🎉" only after the five journey cards show saved status and no real message was sent.
@@ -52,31 +52,31 @@ STEP 6: Set up environment variables.
52
52
 
53
53
  ## Reference files
54
54
 
55
- - `references/react.md` - React feature flags installation - docs
56
- - `references/react-native.md` - React native feature flags installation - docs
57
- - `references/web.md` - Web feature flags installation - docs
58
- - `references/nodejs.md` - Node.js feature flags installation - docs
59
- - `references/python.md` - Python feature flags installation - docs
60
- - `references/django.md` - Django - docs
61
- - `references/flask.md` - Flask - docs
62
- - `references/php.md` - Php feature flags installation - docs
63
- - `references/laravel.md` - Laravel - docs
64
- - `references/ruby.md` - Ruby feature flags installation - docs
65
- - `references/ruby-on-rails.md` - Ruby on rails - docs
66
- - `references/go.md` - Go feature flags installation - docs
67
- - `references/java.md` - Java feature flags installation - docs
68
- - `references/rust.md` - Rust feature flags installation - docs
69
- - `references/dotnet.md` - .net feature flags installation - docs
70
- - `references/dotnet.md` - .net - docs
71
- - `references/elixir.md` - Elixir feature flags installation - docs
72
- - `references/android.md` - Android feature flags installation - docs
73
- - `references/ios.md` - Ios feature flags installation - docs
74
- - `references/usage.md` - Ios SDK usage - docs
75
- - `references/flutter.md` - Flutter feature flags installation - docs
76
- - `references/api.md` - API feature flags installation - docs
77
- - `references/next-js.md` - Next.js - docs
78
- - `references/adding-feature-flag-code.md` - Adding feature flag code - docs
79
- - `references/best-practices.md` - Best practices for production-ready flags - docs
55
+ - `references/react.md` - React feature flags installation
56
+ - `references/react-native.md` - React native feature flags installation
57
+ - `references/web.md` - Web feature flags installation
58
+ - `references/nodejs.md` - Node.js feature flags installation
59
+ - `references/python.md` - Python feature flags installation
60
+ - `references/django.md` - Django
61
+ - `references/flask.md` - Flask
62
+ - `references/php.md` - Php feature flags installation
63
+ - `references/laravel.md` - Laravel
64
+ - `references/ruby.md` - Ruby feature flags installation
65
+ - `references/ruby-on-rails.md` - Ruby on rails
66
+ - `references/go.md` - Go feature flags installation
67
+ - `references/java.md` - Java feature flags installation
68
+ - `references/rust.md` - Rust feature flags installation
69
+ - `references/dotnet.md` - .net feature flags installation
70
+ - `references/dotnet.md` - .net
71
+ - `references/elixir.md` - Elixir feature flags installation
72
+ - `references/android.md` - Android feature flags installation
73
+ - `references/ios.md` - Ios feature flags installation
74
+ - `references/usage.md` - Ios SDK usage
75
+ - `references/flutter.md` - Flutter feature flags installation
76
+ - `references/api.md` - API feature flags installation
77
+ - `references/next-js.md` - Next.js
78
+ - `references/adding-feature-flag-code.md` - Adding feature flag code
79
+ - `references/best-practices.md` - Best practices for production-ready flags
80
80
  - `references/COMMANDMENTS.md` - Framework-specific rules the integration must follow
81
81
 
82
82
  Each platform reference contains SDK-specific installation, flag evaluation, and code examples. Find the one matching the user's stack. If unlisted, use the API reference as a fallback.