# ADR-0009 — Keep the name `ablate`

**Status:** accepted · **Date:** 2026-07-26

## Context

Working name was TBD; the repo is already `ablate`. The name appears in `uvx ablate`, the PyPI
package, the GitHub Action, and every screenshot.

## Decision

Keep `ablate`. Command `ablate`, org `ablate-dev`, PyPI distribution `ablate-cli`.

> **Amended 2026-07-27.** This originally read "Package `ablate`". Both of the
> names this ADR assumed were free had been taken by the time anyone went to
> claim them:
>
> - **PyPI `ablate`** belongs to an unrelated deep-learning experiment reporter
>   (v0.2.3). Adjacent enough to be genuinely confusing, so the distribution is
>   `ablate-cli`. The import package and the command are unchanged; only the
>   install name differs, and `uvx ablate` becomes
>   `uvx --from ablate-cli ablate`.
> - **`github.com/ablate-ai`** belongs to an unrelated project. The org is
>   `ablate-dev`, which also matches the `ci@ablate.dev` identity the CI
>   workflows had been using since M1.
>
> The Consequences section below had this exactly right — "register the PyPI
> name and the GitHub org before the first public commit; both are cheap and
> both are unrecoverable if taken between now and launch." The advice was
> correct and was not followed. Worth leaving in place as written rather than
> softening it.

## Rationale

- It names the differentiating operation ([02-scope.md](../02-scope.md): the feature that, if
  cut, kills the product). A name that describes the headline feature does marketing work for
  free.
- It is a real English word with the right connotation — controlled removal to see what a system
  needs — and the ML-adjacent audience already knows "ablation study." That is precisely the
  frame you want in a reader's head.
- Short, unambiguous to type, no vowel-dropping cuteness, no vendor name embedded (important:
  anything containing "claude" would be both a trademark problem and a lie once the Codex adapter
  ships).

## Rejected alternatives

| Name | Why not |
|---|---|
| `claudemd-test`, `agentsmd-lint` | Vendor-locked in a tool whose moat is cross-vendor. Also trademark-adjacent. |
| `contextlint`, `promptlint` | Implies static analysis, which is AgentLinter's territory — and actively misdescribes an empirical tool. |
| `configbench` | "Bench" implies a fixed public benchmark, the opposite of "your repo, your tasks." |
| `earn` / `keep` (from "earn their keep") | Cute, unsearchable, and collides with a hundred things. |

## Risks accepted

- **Searchability.** "ablate" collides with medical ablation and generic ML ablation studies.
  Mitigated by always writing it with the tagline attached in public copy, and by owning a
  distinctive domain.
- **Verb collision in the CLI.** `ablate ablate CLAUDE.md` reads badly. Accept it, and provide
  `ablate sections` as a documented alias for the ablation command so the awkward form is never
  the one in a screenshot.

## Consequences

Register the PyPI name and the GitHub org before the first public commit. Both are cheap and
both are unrecoverable if taken between now and launch.

*(Both were taken. See the amendment above. The remaining names — `ablate-dev` on GitHub,
`ablate-cli` on PyPI — are still unclaimed as of 2026-07-27 and should be registered now, not
after the next milestone.)*
