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.
Early-Exit Rule applies (see Subagent Architecture above): an exact social handle taken skips Steps 2-4 straight 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 (Early-Exit Rule): 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.tools
Run Herdr loops for one open GitHub issue (resolve→review→fix) or an existing PR (review→lazy fixer) until CLEAN. Don't use for plain resolution without review, review-only/no-fix requests, backlog automation, or merging.
tools
Manage AI agent fleets in Herdr: split root + sub-agents into one tab as a tiled grid, message/wait/read via herdr CLI, steer any pane. Use for Herdr multi-agent fleets. Don't use for tmux, screen, or non-Herdr terminals.
development
Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.
testing
Generate a diagram and route to the right engine — draw.io XML (precise, editable, C4, swimlanes) or Excalidraw JSON (hand-drawn, sketch, wireframes). One entry for flowcharts, architecture, ER, sequence, mind maps. Don't use for Mermaid or slides.