Skip to content

0001 — Project name: evalstand

  • Status: accepted
  • Date: 2026-09-01

Context

The project needed a public name before scaffolding, because the name propagates into pyproject.toml, the src/ layout, the CLI command, the import path, and every document.

Two constraints applied. First, the name had to be genuinely free — on PyPI and on GitHub — so the package could be published without a rename later. Second, it had to be the project's own name. The working title pyevalite prefixed another project's name, which reads as a fork and positions the work as derivative rather than independent.

Availability was checked against the PyPI JSON API (/pypi/<name>/json, where HTTP 404 means free) and the GitHub repository search API.

Candidates rejected because the name was already taken on PyPI:

Name Status
evalrig taken — 0.0.1, "A test rig for AI evaluations" (2026-02-09)
proofmark taken — 0.1.1, "Structured LLM output that has been tested" (2026-08-17)
proofbench taken — config-driven eval harness
evalforge taken — LLM agent evaluation harness
evalloop taken — closed-loop eval monitoring
rubricon taken — specification-first generation for LLMs
evalbench, assay, plumbline, rigor, tessera taken — various

The first six are in this project's own problem space, which makes them unusable regardless of squatting status: users would confuse the packages.

Decision

The project is named evalstand.

Verified on 2026-09-01: PyPI returns 404, and GitHub repository search returns 0 name matches.

The name refers to a test stand — the rig an engineer mounts an engine on to measure it under controlled conditions. That is what this tool is for.

Binding naming rule: the string evalite must not appear in any package name, module name, directory name, filename, class name, function name, or CLI command. A single attribution footnote at the bottom of the README is the only permitted occurrence in the shipped repository.

Consequences

  • The package, CLI command, and import path are all evalstand.
  • Reserved on PyPI as 0.0.0.dev0 on 2026-09-01, since names in this space are being claimed quickly. Note that a .dev suffix does not stop pip install evalstand from installing the placeholder: pip skips pre-releases only when a stable release also exists. The placeholder is therefore yanked — a yanked release holds the name but is not installable unless pinned exactly.
  • The name does not signal "LLM" on its own; the description and README carry that.