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
- 최근 소스 활동
- 2026년 5월 19일 17:56
- 감지된 SKILL.md 언어
- 영어
- 스타
- 4,005
- 포크
- 669
설치 방법
기본적으로 소스를 먼저 확인하는 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에서 보기