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.dev0on 2026-09-01, since names in this space are being claimed quickly. Note that a.devsuffix does not stoppip install evalstandfrom 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.