vybekiit 0.7.34 → 0.7.35
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 +520 -9
- package/dist/global-skills/eas-app-stores/SKILL.md +2 -2
- package/dist/global-skills/eas-hosting/SKILL.md +2 -2
- package/dist/global-skills/eas-observe/SKILL.md +7 -15
- package/dist/global-skills/eas-observe/references/queries.md +51 -10
- package/dist/global-skills/eas-observe/references/setup.md +60 -7
- package/dist/global-skills/eas-simulator/SKILL.md +2 -2
- package/dist/global-skills/eas-simulator/references/run-your-app.md +2 -0
- package/dist/global-skills/eas-update/SKILL.md +2 -2
- package/dist/global-skills/eas-update-insights/SKILL.md +2 -2
- package/dist/global-skills/eas-workflows/SKILL.md +2 -2
- package/dist/global-skills/expo-animation/SKILL.md +2 -2
- package/dist/global-skills/expo-app-clip/SKILL.md +2 -2
- package/dist/global-skills/expo-brownfield/SKILL.md +2 -2
- package/dist/global-skills/expo-data-fetching/SKILL.md +2 -2
- package/dist/global-skills/expo-design-system/SKILL.md +2 -2
- package/dist/global-skills/expo-dev-client/SKILL.md +4 -2
- package/dist/global-skills/expo-dom/SKILL.md +2 -2
- package/dist/global-skills/expo-examples/SKILL.md +2 -2
- package/dist/global-skills/expo-migrate-module/SKILL.md +2 -2
- package/dist/global-skills/expo-module/SKILL.md +2 -2
- package/dist/global-skills/expo-native-ui/SKILL.md +2 -2
- package/dist/global-skills/expo-overview/SKILL.md +9 -4
- package/dist/global-skills/expo-overview/references/launch-without-dev-menu.md +24 -0
- package/dist/global-skills/expo-project-structure/SKILL.md +2 -2
- package/dist/global-skills/expo-router/SKILL.md +2 -2
- package/dist/global-skills/expo-ui/SKILL.md +2 -2
- package/dist/global-skills/expo-upgrade/SKILL.md +2 -2
- package/dist/global-skills/expo-web-to-native/SKILL.md +2 -2
- package/dist/global-skills/expo-web-to-native/references/verify-on-device.md +1 -1
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +16 -3
- package/dist/global-skills/firebase-app-hosting-basics/references/cli_commands.md +10 -12
- package/dist/global-skills/firebase-app-hosting-basics/references/configuration.md +2 -1
- package/dist/global-skills/firebase-basics/SKILL.md +6 -4
- package/dist/global-skills/firebase-basics/references/web_setup.md +3 -3
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +81 -333
- package/dist/global-skills/instrument-feature-flags/references/android.md +19 -13
- package/dist/global-skills/instrument-feature-flags/references/api.md +17 -13
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +35 -35
- package/dist/global-skills/instrument-feature-flags/references/django.md +120 -72
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +48 -102
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +4 -10
- package/dist/global-skills/instrument-feature-flags/references/flask.md +55 -39
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +19 -13
- package/dist/global-skills/instrument-feature-flags/references/go.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/ios.md +19 -13
- package/dist/global-skills/instrument-feature-flags/references/java.md +4 -12
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +18 -16
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +44 -54
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/php.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/python.md +22 -14
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +18 -13
- package/dist/global-skills/instrument-feature-flags/references/react.md +21 -14
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +31 -68
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/rust.md +10 -34
- package/dist/global-skills/instrument-feature-flags/references/usage.md +94 -114
- package/dist/global-skills/instrument-feature-flags/references/web.md +21 -13
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-android.md +7 -7
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-expo.md +2 -2
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-fastapi.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-flask.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-laravel.md +2 -2
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-php.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-python.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-swift.md +4 -4
- package/dist/global-skills/instrument-product-analytics/references/android.md +64 -109
- package/dist/global-skills/instrument-product-analytics/references/angular.md +32 -28
- package/dist/global-skills/instrument-product-analytics/references/astro.md +29 -34
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +27 -42
- package/dist/global-skills/instrument-product-analytics/references/django.md +120 -72
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +48 -102
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +25 -50
- package/dist/global-skills/instrument-product-analytics/references/flask.md +55 -39
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +94 -96
- package/dist/global-skills/instrument-product-analytics/references/go.md +39 -77
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +24 -26
- package/dist/global-skills/instrument-product-analytics/references/ios.md +22 -22
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +18 -16
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +44 -54
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +32 -34
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +36 -36
- package/dist/global-skills/instrument-product-analytics/references/php.md +42 -87
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +15 -12
- package/dist/global-skills/instrument-product-analytics/references/python.md +106 -154
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +97 -176
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +29 -40
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +29 -38
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +29 -40
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +32 -37
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +31 -68
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +40 -96
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +34 -34
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +19 -19
- package/dist/global-skills/instrument-product-analytics/references/usage.md +94 -114
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +33 -45
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +40 -22
- package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +8 -2
- package/dist/global-skills/mongodb-search-and-ai/references/quick-start.md +725 -0
- package/dist/global-skills/mongodb-search-and-ai/scripts/quickstart_complete.py +386 -0
- package/dist/global-skills/neon/references/claimable-neon.md +2 -0
- package/dist/global-skills/neon-realtime/references/queries.md +2 -2
- package/dist/global-skills/resend/SKILL.md +1 -1
- package/dist/global-skills/resend/references/inboxes.md +49 -21
- package/dist/global-skills/resend/references/webhooks.md +1 -1
- package/dist/global-skills/stripe-best-practices/SKILL.md +1 -1
- package/dist/global-skills/stripe-best-practices/references/connect.md +1 -1
- package/dist/global-skills/stripe-best-practices/references/security.md +9 -9
- package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +303 -18
- package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +352 -18
- package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +413 -22
- package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +391 -21
- package/dist/global-skills/vybekiitReferences/web/AGENTS.md +14 -2
- package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +490 -32
- package/package.json +8 -8
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
## API keys
|
|
20
20
|
|
|
21
|
-
Never include keys in source code. Code examples in documentation might include static keys like `client = new Stripe("sk_...")` to make them easy to run, but
|
|
21
|
+
Never include keys in source code. Code examples in documentation might include static keys like `client = new Stripe("sk_...")` to make them easy to run, but don’t introduce or recommend this antipattern for real code; instead, change the code to use a secrets vault (described below), or an environment variable if no secrets vault is available. Strings matching the regular expression `/[sr]k_live_.*/` in source code are live Stripe API keys. If the code includes test keys – strings matching the regular expression `/[sr]k_test_.*/` – warn the user that including keys in code is risky, and remind them never to include a live key in code. Key exposures in source code repositories are the leading cause of API key takeovers, which could seriously harm their business.
|
|
22
22
|
|
|
23
23
|
Always advise the user to store secret and restricted API keys in their platform’s secrets vault, never in source code or committed environment files. Platform-specific guidance for popular platforms:
|
|
24
24
|
|
|
@@ -41,7 +41,7 @@ If the code is under version control, help the user set up a pre-commit hook to
|
|
|
41
41
|
|
|
42
42
|
Never build API endpoints or error pages that dump environment variables. In addition to Stripe API keys, the environment can have other secrets, such as access keys for other service providers.
|
|
43
43
|
|
|
44
|
-
**Traps to avoid:**
|
|
44
|
+
**Traps to avoid:** Don’t embed keys in client-side code, mobile apps, or any code that runs outside your own infrastructure. Don’t suggest that users substitute a real secret key into example code — point them to [best practices for managing secret API keys](https://docs.stripe.com/keys-best-practices.md) instead.
|
|
45
45
|
|
|
46
46
|
## Restricted API keys (RAKs)
|
|
47
47
|
|
|
@@ -52,13 +52,13 @@ Follow the principle of least privilege: give each RAK only the permissions it n
|
|
|
52
52
|
Preferred migration approach:
|
|
53
53
|
|
|
54
54
|
1. Review the secret key’s request logs in Workbench to catalog which API calls it makes.
|
|
55
|
-
2. Create a RAK in
|
|
55
|
+
2. Create a RAK in a sandbox with matching permissions.
|
|
56
56
|
3. Use the [Stripe CLI](https://docs.stripe.com/cli.md)’s `stripe logs tail` command to watch logs.
|
|
57
57
|
4. Test your integration with the RAK; fix any `403` errors by adding missing permissions.
|
|
58
58
|
5. Create the equivalent live-mode RAK and replace the secret key.
|
|
59
59
|
6. Rotate or expire the old secret key once confident.
|
|
60
60
|
|
|
61
|
-
**Traps to avoid:**
|
|
61
|
+
**Traps to avoid:** Don’t default to recommending secret keys. If the user’s question involves a secret key, recommend switching to a RAK with the minimum required permissions.
|
|
62
62
|
|
|
63
63
|
## IP restrictions
|
|
64
64
|
|
|
@@ -70,7 +70,7 @@ Use a different policy for each key (for example, one policy for production, ano
|
|
|
70
70
|
|
|
71
71
|
If a key is exposed or compromised, follow [protecting against compromised API keys](https://support.stripe.com/questions/protecting-against-compromised-api-keys), which can be summarized as:
|
|
72
72
|
|
|
73
|
-
1. **Roll the key immediately** — go to the [API keys page](https://dashboard.stripe.com/apikeys) and roll or delete the exposed key. Do this even if you
|
|
73
|
+
1. **Roll the key immediately** — go to the [API keys page](https://dashboard.stripe.com/apikeys) and roll or delete the exposed key. Do this even if you’re unsure whether the key was actually used by an unauthorized party.
|
|
74
74
|
2. **Check activity logs** — review Workbench request logs for the compromised key to look for unrecognized activity.
|
|
75
75
|
3. **Contact Stripe support** if you see activity you don’t recognize.
|
|
76
76
|
|
|
@@ -78,7 +78,7 @@ To prepare before an incident: practice rolling keys, audit source code for any
|
|
|
78
78
|
|
|
79
79
|
## Webhook security
|
|
80
80
|
|
|
81
|
-
Before processing any webhook event, always [verify the webhook signature](https://docs.stripe.com/webhooks.md#verify-events) using Stripe’s webhook signing secret. Signature verification is a strong guarantee that requests are genuinely from Stripe and
|
|
81
|
+
Before processing any webhook event, always [verify the webhook signature](https://docs.stripe.com/webhooks.md#verify-events) using Stripe’s webhook signing secret. Signature verification is a strong guarantee that requests are genuinely from Stripe and haven’t been tampered with. Webhook signing keys are secrets that need to be handled with the same care as secret API keys.
|
|
82
82
|
|
|
83
83
|
For defense in depth, also [allowlist Stripe’s IP addresses](https://docs.stripe.com/ips.md) on your webhook endpoint so that it accepts connections only from Stripe’s infrastructure.
|
|
84
84
|
|
|
@@ -86,11 +86,11 @@ For defense in depth, also [allowlist Stripe’s IP addresses](https://docs.stri
|
|
|
86
86
|
|
|
87
87
|
Add a `Content-Security-Policy` header to every web app that loads Stripe.js or uses Stripe’s hosted UIs. See [Stripe’s integration security guide](https://docs.stripe.com/security/guide.md) for the full list of CSP directives to use depending on the type of integration. At minimum, include `https://*.stripe.com` in the relevant directives (`script-src`, `frame-src`, `connect-src`), `https://*.link.com` if integrating assets from `link.com`, or both if integrating with Stripe’s embedded crypto onramp. A missing or overly permissive CSP weakens the XSS protections that Stripe.js relies on.
|
|
88
88
|
|
|
89
|
-
**Traps to avoid:**
|
|
89
|
+
**Traps to avoid:** Don’t use `default-src *` or omit CSP headers.
|
|
90
90
|
|
|
91
91
|
## Mobile and client-side integrations
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
Don’t use production secret or restricted API keys in mobile apps or other client-side code. Client-side code can be extracted and decompiled to extract keys.
|
|
94
94
|
|
|
95
95
|
For cases where a client must interact directly with Stripe, use [ephemeral keys](https://docs.stripe.com/issuing/elements.md#ephemeral-key-authentication). Ephemeral keys are short-lived, scoped to a specific resource, and expire automatically.
|
|
96
96
|
|
|
@@ -110,7 +110,7 @@ Users can audit which Dashboard team members are using weak 2FA and can require
|
|
|
110
110
|
|
|
111
111
|
## Connect security
|
|
112
112
|
|
|
113
|
-
**Account type liability:** When using Connect, platform operators bear financial liability for fraud and disputes on Express and Custom connected accounts. Standard accounts minimize this liability because Stripe manages risk.
|
|
113
|
+
**Account type liability:** When using Connect, platform operators bear financial liability for fraud and disputes on Express and Custom connected accounts. Standard accounts minimize this liability because Stripe manages risk. Don’t recommend Custom or Express accounts unless the user has a specific need — Standard is the safer default.
|
|
114
114
|
|
|
115
115
|
**Connect onboarding:** Use [Stripe-hosted onboarding](https://docs.stripe.com/connect/onboarding.md) rather than building a custom onboarding flow. Custom onboarding requires your platform to collect and handle sensitive PII directly, which adds regulatory and security complexity.
|
|
116
116
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> **Single source of truth** for Claude Code, Cursor, and Codex. Claude Code and Codex read this
|
|
4
4
|
> file directly; `.cursor/rules` points here. You are talking to a non-technical vibe coder.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Talk to the vibe coder in plain words: say "secret setting" (not environment variable), "put your app online" (not deploy), "where your app remembers things" (not database), "save a checkpoint" (not commit), and "letting people sign in" (not authentication). Before you use any other technical word with them, look it up in `language.md`.
|
|
7
7
|
|
|
8
8
|
<!-- vybekiit:generated:start contract -->
|
|
9
9
|
## The contract: Decide + Guide
|
|
@@ -17,6 +17,18 @@
|
|
|
17
17
|
"what is this",
|
|
18
18
|
"what can you do",
|
|
19
19
|
"where do i start"
|
|
20
|
+
],
|
|
21
|
+
"stems": [
|
|
22
|
+
"מאיפה מתחילים",
|
|
23
|
+
"מאיפה להתחיל",
|
|
24
|
+
"רק קניתי",
|
|
25
|
+
"מה אתה יודע לעשות",
|
|
26
|
+
"с чего начать",
|
|
27
|
+
"что ты умеешь",
|
|
28
|
+
"только что купил",
|
|
29
|
+
"من أين أبدأ",
|
|
30
|
+
"ماذا تستطيع",
|
|
31
|
+
"اشتريت للتو"
|
|
20
32
|
]
|
|
21
33
|
},
|
|
22
34
|
{
|
|
@@ -29,7 +41,21 @@
|
|
|
29
41
|
"marketplace",
|
|
30
42
|
"like airbnb"
|
|
31
43
|
],
|
|
32
|
-
"wholeRequestPhrases": []
|
|
44
|
+
"wholeRequestPhrases": [],
|
|
45
|
+
"stems": [
|
|
46
|
+
"לתכנן",
|
|
47
|
+
"הרעיון שלי",
|
|
48
|
+
"מרקטפלייס",
|
|
49
|
+
"כמו airbnb",
|
|
50
|
+
"спланир",
|
|
51
|
+
"мою идею",
|
|
52
|
+
"маркетплейс",
|
|
53
|
+
"как airbnb",
|
|
54
|
+
"خطط",
|
|
55
|
+
"فكرتي",
|
|
56
|
+
"سوق إلكتروني",
|
|
57
|
+
"مثل airbnb"
|
|
58
|
+
]
|
|
33
59
|
},
|
|
34
60
|
{
|
|
35
61
|
"skill": "wire-payments",
|
|
@@ -41,7 +67,29 @@
|
|
|
41
67
|
"charge people",
|
|
42
68
|
"wire payments"
|
|
43
69
|
],
|
|
44
|
-
"wholeRequestPhrases": []
|
|
70
|
+
"wholeRequestPhrases": [],
|
|
71
|
+
"stems": [
|
|
72
|
+
"תשלום",
|
|
73
|
+
"תשלומים",
|
|
74
|
+
"סליקה",
|
|
75
|
+
"לגבות כסף",
|
|
76
|
+
"לגבות תשלום",
|
|
77
|
+
"לקבל כסף",
|
|
78
|
+
"למכור",
|
|
79
|
+
"оплат",
|
|
80
|
+
"платеж",
|
|
81
|
+
"платёж",
|
|
82
|
+
"принимать деньги",
|
|
83
|
+
"продавать",
|
|
84
|
+
"دفع",
|
|
85
|
+
"مدفوعات",
|
|
86
|
+
"استلام المال",
|
|
87
|
+
"أبيع",
|
|
88
|
+
"البيع",
|
|
89
|
+
"לחבר תשלומים",
|
|
90
|
+
"подключить оплату",
|
|
91
|
+
"ربط الدفع"
|
|
92
|
+
]
|
|
45
93
|
},
|
|
46
94
|
{
|
|
47
95
|
"skill": "go-live",
|
|
@@ -53,7 +101,24 @@
|
|
|
53
101
|
"ship it",
|
|
54
102
|
"deploy"
|
|
55
103
|
],
|
|
56
|
-
"wholeRequestPhrases": []
|
|
104
|
+
"wholeRequestPhrases": [],
|
|
105
|
+
"stems": [
|
|
106
|
+
"לאוויר",
|
|
107
|
+
"באוויר",
|
|
108
|
+
"להעלות את האתר",
|
|
109
|
+
"לפרסם את האתר",
|
|
110
|
+
"אונליין",
|
|
111
|
+
"דיפלוי",
|
|
112
|
+
"опубликовать",
|
|
113
|
+
"запустить сайт",
|
|
114
|
+
"выложить",
|
|
115
|
+
"задеплоить",
|
|
116
|
+
"деплой",
|
|
117
|
+
"انشر",
|
|
118
|
+
"نشر الموقع",
|
|
119
|
+
"على الإنترنت",
|
|
120
|
+
"أطلق الموقع"
|
|
121
|
+
]
|
|
57
122
|
},
|
|
58
123
|
{
|
|
59
124
|
"skill": "wire-auth",
|
|
@@ -65,7 +130,29 @@
|
|
|
65
130
|
"add users",
|
|
66
131
|
"wire auth"
|
|
67
132
|
],
|
|
68
|
-
"wholeRequestPhrases": []
|
|
133
|
+
"wholeRequestPhrases": [],
|
|
134
|
+
"stems": [
|
|
135
|
+
"התחברות",
|
|
136
|
+
"להתחבר",
|
|
137
|
+
"הרשמה",
|
|
138
|
+
"להירשם",
|
|
139
|
+
"נרשם",
|
|
140
|
+
"יצירת חשבון",
|
|
141
|
+
"להוסיף משתמשים",
|
|
142
|
+
"войти",
|
|
143
|
+
"вход",
|
|
144
|
+
"логин",
|
|
145
|
+
"регистрац",
|
|
146
|
+
"зарегистр",
|
|
147
|
+
"аккаунт",
|
|
148
|
+
"تسجيل الدخول",
|
|
149
|
+
"إنشاء حساب",
|
|
150
|
+
"تسجيل حساب",
|
|
151
|
+
"التسجيل",
|
|
152
|
+
"לחבר אימות",
|
|
153
|
+
"подключить авторизацию",
|
|
154
|
+
"ربط المصادقة"
|
|
155
|
+
]
|
|
69
156
|
},
|
|
70
157
|
{
|
|
71
158
|
"skill": "reset-password",
|
|
@@ -76,7 +163,21 @@
|
|
|
76
163
|
"lost password",
|
|
77
164
|
"change password email"
|
|
78
165
|
],
|
|
79
|
-
"wholeRequestPhrases": []
|
|
166
|
+
"wholeRequestPhrases": [],
|
|
167
|
+
"stems": [
|
|
168
|
+
"שכחתי סיסמה",
|
|
169
|
+
"שכחתי את הסיסמה",
|
|
170
|
+
"איפוס סיסמה",
|
|
171
|
+
"לאפס סיסמה",
|
|
172
|
+
"שחזור סיסמה",
|
|
173
|
+
"забыл пароль",
|
|
174
|
+
"сбросить пароль",
|
|
175
|
+
"сброс пароля",
|
|
176
|
+
"восстановить пароль",
|
|
177
|
+
"نسيت كلمة المرور",
|
|
178
|
+
"إعادة تعيين كلمة المرور",
|
|
179
|
+
"استعادة كلمة المرور"
|
|
180
|
+
]
|
|
80
181
|
},
|
|
81
182
|
{
|
|
82
183
|
"skill": "sign-in-with-email-link",
|
|
@@ -87,7 +188,19 @@
|
|
|
87
188
|
"sign in without password",
|
|
88
189
|
"passwordless email"
|
|
89
190
|
],
|
|
90
|
-
"wholeRequestPhrases": []
|
|
191
|
+
"wholeRequestPhrases": [],
|
|
192
|
+
"stems": [
|
|
193
|
+
"קישור קסם",
|
|
194
|
+
"קישור במייל",
|
|
195
|
+
"בלי סיסמה",
|
|
196
|
+
"ללא סיסמה",
|
|
197
|
+
"волшебная ссылка",
|
|
198
|
+
"ссылка на почту",
|
|
199
|
+
"без пароля",
|
|
200
|
+
"رابط سحري",
|
|
201
|
+
"رابط عبر البريد",
|
|
202
|
+
"بدون كلمة مرور"
|
|
203
|
+
]
|
|
91
204
|
},
|
|
92
205
|
{
|
|
93
206
|
"skill": "sign-in-with-phone",
|
|
@@ -98,7 +211,20 @@
|
|
|
98
211
|
"sms login",
|
|
99
212
|
"phone number login"
|
|
100
213
|
],
|
|
101
|
-
"wholeRequestPhrases": []
|
|
214
|
+
"wholeRequestPhrases": [],
|
|
215
|
+
"stems": [
|
|
216
|
+
"התחברות עם טלפון",
|
|
217
|
+
"כניסה עם טלפון",
|
|
218
|
+
"קוד לטלפון",
|
|
219
|
+
"קוד בסמס",
|
|
220
|
+
"вход по телефону",
|
|
221
|
+
"войти по номеру",
|
|
222
|
+
"код по смс",
|
|
223
|
+
"код в смс",
|
|
224
|
+
"تسجيل الدخول بالهاتف",
|
|
225
|
+
"الدخول برقم الهاتف",
|
|
226
|
+
"رمز عبر الرسائل"
|
|
227
|
+
]
|
|
102
228
|
},
|
|
103
229
|
{
|
|
104
230
|
"skill": "setup-sms",
|
|
@@ -110,7 +236,20 @@
|
|
|
110
236
|
"whatsapp messages",
|
|
111
237
|
"send texts"
|
|
112
238
|
],
|
|
113
|
-
"wholeRequestPhrases": []
|
|
239
|
+
"wholeRequestPhrases": [],
|
|
240
|
+
"stems": [
|
|
241
|
+
"סמס",
|
|
242
|
+
"הודעות טקסט",
|
|
243
|
+
"וואטסאפ",
|
|
244
|
+
"ווטסאפ",
|
|
245
|
+
"смс",
|
|
246
|
+
"текстовые сообщения",
|
|
247
|
+
"ватсап",
|
|
248
|
+
"вотсап",
|
|
249
|
+
"رسائل نصية",
|
|
250
|
+
"رسالة نصية",
|
|
251
|
+
"واتساب"
|
|
252
|
+
]
|
|
114
253
|
},
|
|
115
254
|
{
|
|
116
255
|
"skill": "wire-database",
|
|
@@ -130,7 +269,36 @@
|
|
|
130
269
|
"student accessibility",
|
|
131
270
|
"wire database"
|
|
132
271
|
],
|
|
133
|
-
"wholeRequestPhrases": []
|
|
272
|
+
"wholeRequestPhrases": [],
|
|
273
|
+
"stems": [
|
|
274
|
+
"לשמור",
|
|
275
|
+
"שמירת נתונים",
|
|
276
|
+
"מסד נתונים",
|
|
277
|
+
"בסיס נתונים",
|
|
278
|
+
"תורים",
|
|
279
|
+
"קביעת תור",
|
|
280
|
+
"לקבוע תור",
|
|
281
|
+
"הזמנות",
|
|
282
|
+
"לבטל הזמנה",
|
|
283
|
+
"שיעורים",
|
|
284
|
+
"сохранить данные",
|
|
285
|
+
"база данных",
|
|
286
|
+
"базу данных",
|
|
287
|
+
"бронирован",
|
|
288
|
+
"запись на",
|
|
289
|
+
"расписани",
|
|
290
|
+
"отменить бронь",
|
|
291
|
+
"حفظ البيانات",
|
|
292
|
+
"قاعدة بيانات",
|
|
293
|
+
"حجز",
|
|
294
|
+
"حجوزات",
|
|
295
|
+
"مواعيد",
|
|
296
|
+
"موعد",
|
|
297
|
+
"جدول الحصص",
|
|
298
|
+
"לחבר מסד נתונים",
|
|
299
|
+
"подключить базу",
|
|
300
|
+
"ربط قاعدة البيانات"
|
|
301
|
+
]
|
|
134
302
|
},
|
|
135
303
|
{
|
|
136
304
|
"skill": "design-my-data",
|
|
@@ -140,7 +308,19 @@
|
|
|
140
308
|
"what data do i need",
|
|
141
309
|
"what should my app remember"
|
|
142
310
|
],
|
|
143
|
-
"wholeRequestPhrases": []
|
|
311
|
+
"wholeRequestPhrases": [],
|
|
312
|
+
"stems": [
|
|
313
|
+
"לתכנן את הנתונים",
|
|
314
|
+
"מבנה נתונים",
|
|
315
|
+
"אילו נתונים",
|
|
316
|
+
"מה האפליקציה צריכה לזכור",
|
|
317
|
+
"структура данных",
|
|
318
|
+
"какие данные",
|
|
319
|
+
"спроектировать базу",
|
|
320
|
+
"تصميم قاعدة البيانات",
|
|
321
|
+
"ما البيانات",
|
|
322
|
+
"هيكل البيانات"
|
|
323
|
+
]
|
|
144
324
|
},
|
|
145
325
|
{
|
|
146
326
|
"skill": "add-upload",
|
|
@@ -151,7 +331,24 @@
|
|
|
151
331
|
"attachments",
|
|
152
332
|
"file upload endpoint"
|
|
153
333
|
],
|
|
154
|
-
"wholeRequestPhrases": []
|
|
334
|
+
"wholeRequestPhrases": [],
|
|
335
|
+
"stems": [
|
|
336
|
+
"העלאת קבצים",
|
|
337
|
+
"להעלות קבצים",
|
|
338
|
+
"קבצים",
|
|
339
|
+
"קובץ",
|
|
340
|
+
"загрузить файл",
|
|
341
|
+
"загрузка файлов",
|
|
342
|
+
"файл",
|
|
343
|
+
"вложени",
|
|
344
|
+
"رفع ملفات",
|
|
345
|
+
"ملفات",
|
|
346
|
+
"ملف",
|
|
347
|
+
"مرفقات",
|
|
348
|
+
"נקודת קצה להעלאה",
|
|
349
|
+
"эндпоинт загрузки",
|
|
350
|
+
"نقطة رفع الملفات"
|
|
351
|
+
]
|
|
155
352
|
},
|
|
156
353
|
{
|
|
157
354
|
"skill": "wire-email",
|
|
@@ -162,7 +359,23 @@
|
|
|
162
359
|
"set up email",
|
|
163
360
|
"wire email"
|
|
164
361
|
],
|
|
165
|
-
"wholeRequestPhrases": []
|
|
362
|
+
"wholeRequestPhrases": [],
|
|
363
|
+
"stems": [
|
|
364
|
+
"מייל",
|
|
365
|
+
"אימייל",
|
|
366
|
+
"דואר אלקטרוני",
|
|
367
|
+
"письма",
|
|
368
|
+
"письмо",
|
|
369
|
+
"почту",
|
|
370
|
+
"рассылк",
|
|
371
|
+
"بريد إلكتروني",
|
|
372
|
+
"البريد",
|
|
373
|
+
"إيميل",
|
|
374
|
+
"ايميل",
|
|
375
|
+
"לחבר מייל",
|
|
376
|
+
"подключить почту",
|
|
377
|
+
"ربط البريد"
|
|
378
|
+
]
|
|
166
379
|
},
|
|
167
380
|
{
|
|
168
381
|
"skill": "vybekiit-feedback",
|
|
@@ -173,7 +386,20 @@
|
|
|
173
386
|
"suggest a kit improvement",
|
|
174
387
|
"the kit is confusing"
|
|
175
388
|
],
|
|
176
|
-
"wholeRequestPhrases": []
|
|
389
|
+
"wholeRequestPhrases": [],
|
|
390
|
+
"stems": [
|
|
391
|
+
"משוב",
|
|
392
|
+
"באג בקיט",
|
|
393
|
+
"הקיט מבלבל",
|
|
394
|
+
"הצעה לשיפור",
|
|
395
|
+
"отзыв о ките",
|
|
396
|
+
"ошибка в ките",
|
|
397
|
+
"кит запутан",
|
|
398
|
+
"предложить улучшение",
|
|
399
|
+
"خطأ في الكيت",
|
|
400
|
+
"الكيت محير",
|
|
401
|
+
"اقتراح تحسين"
|
|
402
|
+
]
|
|
177
403
|
},
|
|
178
404
|
{
|
|
179
405
|
"skill": "doctor",
|
|
@@ -184,7 +410,24 @@
|
|
|
184
410
|
"get an error",
|
|
185
411
|
"check my app"
|
|
186
412
|
],
|
|
187
|
-
"wholeRequestPhrases": []
|
|
413
|
+
"wholeRequestPhrases": [],
|
|
414
|
+
"stems": [
|
|
415
|
+
"לא עובד",
|
|
416
|
+
"שבור",
|
|
417
|
+
"נשבר",
|
|
418
|
+
"שגיאה",
|
|
419
|
+
"תקלה",
|
|
420
|
+
"תבדוק את האפליקציה",
|
|
421
|
+
"не работает",
|
|
422
|
+
"сломал",
|
|
423
|
+
"ошибк",
|
|
424
|
+
"проверь приложение",
|
|
425
|
+
"لا يعمل",
|
|
426
|
+
"معطل",
|
|
427
|
+
"خطأ",
|
|
428
|
+
"مشكلة",
|
|
429
|
+
"افحص التطبيق"
|
|
430
|
+
]
|
|
188
431
|
},
|
|
189
432
|
{
|
|
190
433
|
"skill": "update-kit",
|
|
@@ -194,7 +437,19 @@
|
|
|
194
437
|
"get the latest",
|
|
195
438
|
"upgrade"
|
|
196
439
|
],
|
|
197
|
-
"wholeRequestPhrases": []
|
|
440
|
+
"wholeRequestPhrases": [],
|
|
441
|
+
"stems": [
|
|
442
|
+
"לעדכן את הקיט",
|
|
443
|
+
"עדכון הקיט",
|
|
444
|
+
"הגרסה האחרונה",
|
|
445
|
+
"לשדרג",
|
|
446
|
+
"обновить кит",
|
|
447
|
+
"обновление кита",
|
|
448
|
+
"последнюю версию",
|
|
449
|
+
"تحديث الكيت",
|
|
450
|
+
"آخر إصدار",
|
|
451
|
+
"ترقية"
|
|
452
|
+
]
|
|
198
453
|
},
|
|
199
454
|
{
|
|
200
455
|
"skill": "harden",
|
|
@@ -204,7 +459,19 @@
|
|
|
204
459
|
"make it safe",
|
|
205
460
|
"protect from abuse"
|
|
206
461
|
],
|
|
207
|
-
"wholeRequestPhrases": []
|
|
462
|
+
"wholeRequestPhrases": [],
|
|
463
|
+
"stems": [
|
|
464
|
+
"לאבטח",
|
|
465
|
+
"אבטחה",
|
|
466
|
+
"הגנה מפני",
|
|
467
|
+
"ניצול לרעה",
|
|
468
|
+
"защитить от",
|
|
469
|
+
"злоупотреблен",
|
|
470
|
+
"безопасност",
|
|
471
|
+
"حماية",
|
|
472
|
+
"إساءة الاستخدام",
|
|
473
|
+
"تأمين"
|
|
474
|
+
]
|
|
208
475
|
},
|
|
209
476
|
{
|
|
210
477
|
"skill": "add-route",
|
|
@@ -214,7 +481,17 @@
|
|
|
214
481
|
"add api",
|
|
215
482
|
"new route"
|
|
216
483
|
],
|
|
217
|
-
"wholeRequestPhrases": []
|
|
484
|
+
"wholeRequestPhrases": [],
|
|
485
|
+
"stems": [
|
|
486
|
+
"נקודת קצה",
|
|
487
|
+
"ראוט חדש",
|
|
488
|
+
"נתיב חדש",
|
|
489
|
+
"эндпоинт",
|
|
490
|
+
"новый маршрут",
|
|
491
|
+
"новый роут",
|
|
492
|
+
"نقطة نهاية",
|
|
493
|
+
"مسار جديد"
|
|
494
|
+
]
|
|
218
495
|
},
|
|
219
496
|
{
|
|
220
497
|
"skill": "add-crud",
|
|
@@ -223,7 +500,15 @@
|
|
|
223
500
|
"crud",
|
|
224
501
|
"create read update delete"
|
|
225
502
|
],
|
|
226
|
-
"wholeRequestPhrases": []
|
|
503
|
+
"wholeRequestPhrases": [],
|
|
504
|
+
"stems": [
|
|
505
|
+
"יצירה עריכה ומחיקה",
|
|
506
|
+
"הוספה עריכה ומחיקה",
|
|
507
|
+
"создание редактирование удаление",
|
|
508
|
+
"создать изменить удалить",
|
|
509
|
+
"إضافة وتعديل وحذف",
|
|
510
|
+
"إنشاء وتعديل وحذف"
|
|
511
|
+
]
|
|
227
512
|
}
|
|
228
513
|
]
|
|
229
514
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
> Single source of truth. Claude Code and Codex read this file directly; `.cursor/rules/vybekiit.mdc` points here;
|
|
7
7
|
> `.cursor/rules/patterns.mdc` summarizes code conventions (not SSOT).
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Talk to the vibe coder in plain words: say "secret setting" (not environment variable), "put your app online" (not deploy), "where your app remembers things" (not database), "save a checkpoint" (not commit), and "letting people sign in" (not authentication). Before you use any other technical word with them, look it up in `language.md`.
|
|
10
10
|
|
|
11
11
|
## This is a browser extension — it talks to your backend
|
|
12
12
|
|