Skip to content
SlashClone

Product rename checklist

@slashclone/product-rename-checklist

Rename a product across code, copy, CLI, plugins, and docs without breaking anything: one name constant, a careful sweep, and a list of strings that must keep the old name (signing labels, key-derivation labels, OAuth client ids, stored rule ids, migrations). Shows the plan and asks before it edits.

SkillDevOpsv0.1.0 (latest)
Activity
New: be the first to try it
  1. 1---
  2. 2name: product-rename-checklist
  3. 3description: Rename a product or brand across a codebase (copy, CLI, packages, plugins, env vars, URLs, docs) safely. Use when a project changes its name and every user-facing place must follow without breaking signatures, secrets, stored data, or history.
  4. 4---
  5. 5
  6. 6# Product rename checklist
  7. 7
  8. 8Goal: every place a person sees the old name shows the new one, and nothing that depends on the old string breaks.
  9. 9
  10. 10## 1. Map it before changing anything
  11. 121. Find the name in every form: display ("OldName"), lowercase ("oldname"), uppercase env prefixes (`OLDNAME_`), domains, package scopes, file names, routes, and class names. Count hits per folder so the size of the job is clear.
  12. 132. Find where the name is defined. If there is no single constant, create one (name, display name, logo text, domain) and make code read from it.
  13. 143. Ask which history docs keep the old name on purpose (naming notes, changelogs, progress logs). Those get a note about the decision, not a rewrite.
  14. 16## 2. Decide what must not change
  15. 18Changing these breaks things for existing users or data. List them, keep them, and say why in the summary:
  16. 20- **Signing and hashing domain strings** (for example `oldname-sig-v1`). Changing them invalidates every existing signature.
  17. 21- **Key-derivation labels and salts** (HKDF info strings, telemetry salts). Changing them changes derived secrets and ids.
  18. 22- **OAuth client ids and registered redirect names.**
  19. 23- **Ids stored in the database:** scanner rule ids, event names, JSON markers inside stored documents.
  20. 24- **Database migrations.** Never edit an applied migration.
  21. 25- **Seeds for generated art or tests,** if changing them changes something people have already seen.
  22. 26- **Internal package scopes and class names,** unless the owner wants them changed too. They are invisible to users and cost a lot to rename.
  23. 28## 3. Change the name
  24. 301. Set the constants. Remember that derived names move too: the CLI binary, config folder, lock file name, env var prefix, keychain service, user agent, crawler name.
  25. 312. Sweep the rest with explicit, ordered replacements: specific forms first (domains, env prefixes, file names), then the display name, then the lowercase word with boundaries so it does not match inside identifiers you are keeping.
  26. 32 - In zsh, `for f in $FILES` does not split on newlines. Loop with `while IFS= read -r f` instead, or nothing gets rewritten.
  27. 33 - Watch for false matches: `oldname.com` (a competitor's domain in a history note) is not your new domain.
  28. 343. Rename files and routes that carry the name with `git mv`, and update every import and test that points at them.
  29. 354. Update user-facing copy by hand where the old name was part of a sentence, so it still reads well.
  30. 365. Rename plugin and marketplace manifests, skill folders, Docker and deploy app names, and sample URLs in tests.
  31. 376. Delete generated caches that hold old paths (framework type caches), or typecheck fails on files that no longer exist.
  32. 39## 4. Check it
  33. 411. Grep for every old form again. Each remaining hit must be on the keep list or in a history doc.
  34. 422. Run lint, typecheck, and tests. Fix test fixtures where the sweep changed an expected value but not its input.
  35. 433. Open the app: header, titles, page metadata, icons, emails, CLI help, and any page that shows commands.
  36. 444. Write down the breaking changes for local users (new env var names, lock file name, plugin id) in the changelog.
  37. 46## Rules
  38. 48- Show the map and the keep list, and get a yes before editing.
  39. 49- One commit for the rename, with the keep list in its message.
  40. 50- Never change signing, key-derivation, or stored identifiers without a migration plan the owner approved.