skills/brand-name-checker/SKILL.md
Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.
npx skillsauth add luongnv89/skills brand-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).
Use this skill before adopting a product or brand name. To stay within the agent's context budget, lean sections (templates, examples) live in references/*.md and per-source workers live in agents/*.md — only the orchestrator instructions are inlined here.
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. See references/repo-sync.md for the exact git fetch / git pull --rebase commands and stash recovery flow.
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 each major step, emit a status report. The general template, plus per-step examples (Social, Registry, Domain, Trademark, Risk), live in references/step-reports.md. Adapt check names to what the step actually validates; use √ for pass, × for fail.
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.