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.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Grant the Cursor Ambassador badge (users.is_ambassador) for 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.
user-supabase server).knhgkaawjfqqwmsgmxns (Cursor Directory).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 URLIf input looks like an email (contains @), normalize: trim().toLowerCase().
Lookup by email:
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:
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:
SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<uuid>'::uuid;Use MCP execute_sql with project_id: knhgkaawjfqqwmsgmxns.
| 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. |
If is_ambassador is already true, report they are already an ambassador and link their profile.
Otherwise:
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>.
SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<user_id>'::uuid;## Ambassador: <name or email>
**Status:** promoted | already ambassador | not found
**Profile:** https://cursor.directory/u/<slug>
**Email:** <email>Only when the user explicitly asks to remove or revoke:
UPDATE public.users
SET is_ambassador = false
WHERE id = '<user_id>'
RETURNING id, name, slug, email;AmbassadorBadge when is_ambassador is true; listed under /members → Ambassadors tab./api/cron/sync-ambassadors job is still scheduled in Vercel, disable it so it does not fight manual grants.For multiple people, run Steps 1–3 once per person. Summarize results in a table at the end.
689fcba
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.