add-cursor-ambassador
Adds Cursor Directory ambassador badges by name or email via Supabase. Resolves the person and sets users.is_ambassador. Use when the user asks to add, grant, or promote an ambassador, ambassador badge, or Cursor Ambassador.
معلومات المصدر
- المستودع
- cursor/community-plugins
- آخر نشاط في المصدر
- ١٩ مايو ٢٠٢٦ في ١٧:٥٦
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ٤٬٠١٦
- التفرعات
- ٦٧١
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- name
- add-cursor-ambassador
- description
- Adds Cursor Directory ambassador badges by name or email via Supabase. Resolves the person and sets users.is_ambassador. Use when the user asks to add, grant, or promote an ambassador, ambassador badge, or Cursor Ambassador.
- disable-model-invocation
- true
# Add Cursor Ambassador
Grant the **Cursor Ambassador** badge (`users.is_ambassador`) for [cursor.directory](https://cursor.directory). The user provides a **name** or **email** (one person per invocation unless they list several).
The person must already have a cursor.directory account.
## Prerequisites
- **Supabase MCP** connected (`user-supabase` server).
- **Project ID**: `knhgkaawjfqqwmsgmxns` (Cursor Directory).
## Workflow
Copy and track progress:
```
- [ ] Step 1: Resolve identifier → user row(s)
- [ ] Step 2: Confirm if multiple matches
- [ ] Step 3: Set is_ambassador = true
- [ ] Step 4: Verify and report profile URL
```
### Step 1: Resolve identifier
**If input looks like an email** (contains `@`), normalize: `trim().toLowerCase()`.
**Lookup by email:**
```sql
SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE lower(email) = lower('<email>')
LIMIT 5;
```
**If input is a name** (or ambiguous), search:
```sql
SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE name ILIKE '%<name>%'
ORDER BY name
LIMIT 20;
```
**If input is a UUID**, treat as user id:
```sql
SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<uuid>'::uuid;
```
Use MCP `execute_sql` with `project_id: knhgkaawjfqqwmsgmxns`.
### Step 2: Disambiguate
| Matches | Action |
| ------- | ------ |
| 0 | Stop. Tell the user no matching account was found. They must sign up first; then run this skill again. |
| 1 | Use that row |
| 2+ | Show a short table (name, slug, email) and ask which person to promote. Do not guess. |
### Step 3: Promote
If `is_ambassador` is already `true`, report they are already an ambassador and link their profile.
Otherwise:
```sql
UPDATE public.users
SET is_ambassador = true
WHERE id = '<user_id>'
RETURNING id, name, slug, email, is_ambassador;
```
Report: **promoted** with profile URL `https://cursor.directory/u/<slug>`.
### Step 4: Verify
```sql
SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<user_id>'::uuid;
```
## Response template
```markdown
## Ambassador: <name or email>
**Status:** promoted | already ambassador | not found
**Profile:** https://cursor.directory/u/<slug>
**Email:** <email>
```
## Removing ambassadors
Only when the user explicitly asks to remove or revoke:
```sql
UPDATE public.users
SET is_ambassador = false
WHERE id = '<user_id>'
RETURNING id, name, slug, email;
```
## Notes
- Badge UI: `AmbassadorBadge` when `is_ambassador` is true; listed under `/members` → Ambassadors tab.
- If the legacy `/api/cron/sync-ambassadors` job is still scheduled in Vercel, disable it so it does not fight manual grants.
## Batch adds
For multiple people, run Steps 1–3 once per person. Summarize results in a table at the end.
عرض على GitHub