Methodology

Candidate collection

  1. Your seed word becomes the first candidate.
  2. Wordnik contributes synonyms and related words for the seed.
  3. Injected candidates — callers (including future agent clients) may supply their own synonym/creative alternatives, which receive their own provenance and never consume AI quota.
  4. Creative generation (optional, signed-in users) asks a language model for structured suggestions.

All candidates are normalized (trimmed, lowercased, whitespace-collapsed) and deduplicated. When several sources produce the same name, the result keeps a set of provenance labels.

Where checks run

Go has no official JSON search API, so its bare-word results come from the pkg.go.dev search page and are flagged as fuzzy leads to verify — never definitive. If pkg.go.dev blocks or rate-limits the request, the result is an honest unknown, never available. A full module path (e.g. github.com/x/y) is checked exactly against the Go module proxy instead.

Availability classification

Every registry maps upstream responses to one of four verdicts:

Result Meaning
taken The registry returned metadata proving the name exists (for Maven and Packagist, under any group or vendor).
available The registry returned its documented not-found response for a valid name, or a search-style result set conclusively contained no exact match.
invalid The name fails the registry’s own naming rules; we never queried the registry for it.
unknown Timeout, rate limit, or any response that doesn’t prove presence or absence. We never guess.

Registry-specific normalization applies before checking (for example PyPI collapses foo_bar and foo-bar to the same project per PEP 503). Every availability answer includes the time it was checked and the exact name that was checked. “Available” is an observation, not a reservation — each registry remains the authority on publishing.

What we deliberately don’t do