An eval model identifier has three parts, and each one moves for a different reason: a family that names the kind of judgement, a version we publish, and a horizon that belongs to your data. The response carries a fourth signal — the fingerprint — which is not part of the identifier and cannot be asked for.
a8 is satisfies: does this output meet the stated criterion?
reference: none of it.
a8 alone means the current version we publish, at the current state of your corrections.| Part | Moved by | Promise |
|---|---|---|
| Family | Us, rarely | A different family is a different question, not a better answer. Families coexist; one never replaces another. |
| Version | Us, planned | Announced. A minor may move verdicts but never the request or response contract; a major changes the contract itself. |
| Horizon | You, by fine-tuning | The model reflects your supervision up to that moment — and nothing after it. @reference is the zero: none of your supervision at all. |
| Fingerprint | Anything, including us unplanned | Observable, never addressable. It changes whenever something that could move a verdict moved. |
Table 1. The four signals, by who controls them. The split is deliberate: your data and our releases move on separate clocks, so neither forces the other.
| When this happens | Family | Version | Horizon | Fingerprint |
|---|---|---|---|---|
| You send a correction | · | · | ✓ | ✓ |
| We correct a bug and retrain | · | · | · | ✓ |
| We publish shared knowledge, or change how evaluation works | · | ✓ | · | ✓ |
| We change the request or response contract | · | ✓ | · | ✓ |
| We introduce a different kind of judgement | ✓ | ✓ | · | ✓ |
Table 2. Row two is the reason the fingerprint exists. A correction has to be able to reach you without breaking the promise a published version made — so it moves nothing addressable, and announces itself in the one signal that is not a promise.
Because the horizon axis has a zero, two models are addressable at any time:
| Model | Ask for | Contains |
|---|---|---|
| Working | a8, or a horizon | The shared baseline plus every correction you have sent. |
| Reference | a8-0-2@reference | The shared baseline alone — what a brand-new account is served. |
Table 3. The same substrate read two ways. Training moves the working model and never touches reference; see horizons §4.
Pinning a8-0-2@{horizon} holds three of the four: the family, the version, and your data. Later fine-tuning does not reach it, and neither does shared knowledge we publish afterwards.
The fourth is not held: a pin freezes what the model learned, not the software that reads it. If we find a defect and correct it, that correction reaches pinned callers too — the alternative would be leaving known-wrong verdicts in place for anyone who had fine-tuned the model at all. When it happens, the fingerprint changes and the identifier does not. That is the signal to re-check a stored baseline.
A horizon belongs to the version that fitted it. When a new minor is published it starts its own line and fine-tunes forward from there — it does not backfill your earlier horizons, so an identifier from one version is not askable under another. Your existing pins keep working on the version that minted them; moving to a new minor means fine-tuning forward on it.