skills/name-checker/SKILL.md
Check product and brand names for conflicts across trademarks, domains, social media handles, and package registries (npm, PyPI, Homebrew, apt). Delivers a risk assessment and actionable Proceed, Modify, or Abandon recommendation. Don't use for brainstorming name ideas from scratch, logo design, or filing/registering a trademark.
npx skillsauth add luongnv89/skills name-checkerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Check product and brand names for conflicts across trademarks, domains, social media, and package registries (npm, PyPI, Homebrew, apt).
This skill uses parallel subagents to handle 13+ sequential web fetches across independent sources. Pattern: B (Parallel Workers) + D (Research+Synthesis).
| Agent | Role | Output | |-------|------|--------| | social-checker | Search 6 platforms (Twitter, Instagram, GitHub, LinkedIn, TikTok, Discord) in parallel | JSON: per-platform availability status | | registry-checker | Check npm, PyPI, Homebrew, apt availability with owner info | JSON: per-registry status and owner details | | domain-checker | Check .com, .io, .app, .co, regional TLDs availability | JSON: per-TLD registration status | | trademark-checker | Search WIPO, EUIPO, INPI trademark databases | JSON: conflict analysis per database | | synthesizer | Apply risk matrix and produce final recommendation | Markdown + JSON: Risk level, verdict, alternatives |
Speedup: ~4x faster than sequential approach (13+ web fetches parallelized into 2-3 waves).
Before executing:
Before creating/updating/deleting files in an existing repository, sync the current branch with remote:
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"
If the working tree is not clean, stash first, sync, then restore:
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop
If origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.
Name to analyze provided in $ARGUMENTS. If empty, ask user for the name.
Optionally check for prd.md in project to understand product context.
If an exact social handle is taken, skip Steps 2-4 and jump directly to Step 6 (Recommendation) with an "Abandon" verdict.
Use WebSearch to check handles on:
"@[NAME]" site:twitter.com OR site:x.com"@[NAME]" site:instagram.com"[NAME]" site:facebook.com"[NAME]" site:linkedin.com/company"[NAME]" site:youtube.com"@[NAME]" site:tiktok.comIf exact handle taken: Return NEGATIVE: Exact social handle taken (@platform) and STOP. Suggest different name.
Package registries are first-come-first-served namespaces. Unlike GitHub (which allows duplicate project names), registries enforce unique names — once someone claims "your-name" on PyPI or npm, you cannot publish under that name. This makes registry checks urgent: if the name is taken on a registry you plan to publish to, you either need a different name or a naming variant (e.g., prefix/suffix).
Use WebFetch to check these registries directly:
| Registry | Check URL | Taken if... |
|----------|-----------|-------------|
| npm | https://registry.npmjs.org/[NAME] | Returns JSON with package data (not a 404) |
| PyPI | https://pypi.org/pypi/[NAME]/json | Returns JSON with package data (not a 404) |
| Homebrew | https://formulae.brew.sh/api/formula/[NAME].json | Returns JSON (not a 404) |
| apt | Search: "[NAME]" site:packages.debian.org OR site:packages.ubuntu.com | Package listing found |
For each registry, report:
name-js, py-name) — worth notingIf the name is taken on a registry the user plans to publish to, flag it prominently and suggest variants (e.g., name-cli, name-py, name-lib, prefixed with org scope like @org/name for npm).
Use WebSearch to check:
.com (highest priority).io, .app, .co.eu, .frSearch: site:[NAME].com and "[NAME].com" domain availability
Status:
Use WebSearch for trademark databases:
| Database | Search Query |
|----------|--------------|
| WIPO | "[NAME]" site:branddb.wipo.int |
| EUIPO | "[NAME]" site:euipo.europa.eu |
| INPI (France) | "[NAME]" site:inpi.fr |
Focus on Nice Classes 9, 35, 42 (software/technology). Note if marks are live or expired.
| Risk Level | Criteria | |------------|----------| | Low | Social handles available, .com available/parked, no trademark conflicts, package registries available | | Moderate | Some handles taken (not exact), .com taken but alternatives available, similar trademarks exist, or name taken on a registry the user doesn't plan to use | | High | Multiple handles taken, .com active in same industry, active trademarks in classes 9/35/42, or name taken on a target package registry |
SOCIAL: Clear | NEGATIVE: [reason]
REGISTRY: npm (status) | PyPI (status) | Homebrew (status) | apt (status)
DOMAIN: .com (status) | .io (status) | .app (status)
TM: WIPO (status) | EUIPO (status) | INPI (status)
RISK: [Low/Moderate/High] - [reason]
RECOMMEND: [Proceed/Modify/Abandon] (+ variants if needed)
If prd.md found, add:
Name Fit Assessment:
Alternative Suggestions:
| Name | Rationale | Quick Risk | |------|-----------|------------| | Name1 | Why it fits | Availability | | Name2 | Why it fits | Availability | | Name3 | Why it fits | Availability |
After completing each major step, output a status report in this format:
◆ [Step Name] ([step N of M] — [context])
··································································
[Check 1]: √ pass
[Check 2]: √ pass (note if relevant)
[Check 3]: × fail — [reason]
[Check 4]: √ pass
[Criteria]: √ N/M met
____________________________
Result: PASS | FAIL | PARTIAL
Adapt the check names to match what the step actually validates. Use √ for pass, × for fail, and — to add brief context. The "Criteria" line summarizes how many acceptance criteria were met. The "Result" line gives the overall verdict.
◆ Social Media Check (step 1 of 5 — handle availability)
··································································
Twitter available: √ pass
GitHub available: √ pass
Reddit available: × fail — r/[name] subreddit exists
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
◆ Package Registry (step 2 of 5 — namespace availability)
··································································
npm clear: √ pass
PyPI clear: × fail — package exists (owner: example)
Homebrew clear: √ pass
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
◆ Domain Check (step 3 of 5 — domain availability)
··································································
.com available: × fail — active site in same industry
.dev available: √ pass
.io available: √ pass
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
◆ Trademark Check (step 4 of 5 — trademark conflicts)
··································································
WIPO clear: √ pass — no conflicts in classes 9/35/42
EUIPO clear: √ pass
INPI clear: × fail — similar mark in class 42
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
◆ Risk Assessment (step 5 of 5 — final verdict)
··································································
Trademark risk level: √ pass — Low, no conflicts in classes 9/35/42
Overall risk score: √ pass — Moderate
Recommendation generated: √ pass — Modify: use variant
[Criteria]: √ 3/3 met
____________________________
Result: PASS
SOCIAL: Clear (Twitter, Instagram, GitHub, LinkedIn, TikTok, Discord all available)
REGISTRY: npm (available) | PyPI (TAKEN — owner: example-org, last publish: 2022-03) | Homebrew (available) | apt (available)
DOMAIN: .com (active — unrelated industry) | .io (available) | .app (available)
TM: WIPO (clear) | EUIPO (clear) | INPI (similar mark in class 42 — "Acme Tools SAS", filed 2021)
RISK: Moderate — PyPI name taken on a target registry; .com parked; minor trademark similarity in France
RECOMMEND: Modify — use "acme-cli" (npm/PyPI clear, .com available, no TM conflicts)
my tool → my-tool) before all checks; report both the original and normalized forms.documentation
Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when user asks to ship, cut a release, tag a version, or list changes since last tag. Skip routine commits and marketplace publishing.
development
Review UI for usability issues using Steve Krug's principles and produce a scannable report. Use when asked for a usability audit, UX review, or UI feedback on screenshots, URLs, or code. Don't use for visual/brand design critique, accessibility (WCAG) audits, or backend/API review.
development
Validate app/startup ideas with market, feasibility, commercial, and open-source competitor analysis. Use when asked to evaluate, validate, or score a product idea. Don't use for PRDs, go-to-market plans, or investor decks.
testing
Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI. Use when hardening repos or adding security hooks. Don't use for incident response or cloud security reviews.