Skip to content
FunCoding

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.

Star
4,000
Last commit
Sep 11, 2026

.cursor/skills/add-cursor-ambassador/SKILL.md

View on GitHub

Add Cursor Ambassador

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.

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:

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.

Step 2: Disambiguate

MatchesAction
0Stop. Tell the user no matching account was found. They must sign up first; then run this skill again.
1Use 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:

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

SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<user_id>'::uuid;

Response template

## 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:

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.

Similar Skills

subagent-driven-development

OBobra/superpowers298k2,631 new stars in the last 7 days

chief-of-staff

MAmattpocock/skills288k10,178 new stars in the last 7 days

setup-matt-pocock-skills

MAmattpocock/skills288k10,178 new stars in the last 7 days

ask-matt

MAmattpocock/skills288k10,178 new stars in the last 7 days

agent-eval

AFaffaan-m/ECC278k4,046 new stars in the last 7 days

autonomous-agent-harness

AFaffaan-m/ECC278k4,046 new stars in the last 7 days