Say where the positives really come from, not where they were going to

`calibrate.rs` claimed its positive pairs came from user confirmations "then
burst siblings, since FR-CULL-5 already groups bursts", and repeated it beside
the pair floor: "the positives are bootstrapped from bursts and a handful of
early confirmations". Neither is true and neither ever has been. Nothing in
the workspace pushes a burst pair into a `Pairs`; nothing pushes any pair at
all outside this file's own tests. The sentence was written while both halves
of docs/faces.md §8.1 were being planned together, describing a source that
was going to exist, and it has read since as a description of what the code
does.

The distinction matters more here than in most comments, because this file is
the one place in the subsystem allowed to say what a similarity *means*. A
reader who believes the fit is drawing on bursts believes a young library is
gathering positives on its own, which is precisely the opposite of the state
FR-CULL-9 legislates for — a library with no fit, no valid calibration, and a
reference curve it must not present as a measurement of itself. The floor of
200 positive pairs looks arbitrary under the wrong story and obvious under the
right one: confirmations arrive one at a time, from a person.

So the comment now says what is here — a positive is a pair confirmed onto one
person, and there is no second source — and keeps the burst idea where it
belongs, as §8.1's proposal, with the two reasons it is not in the code: this
crate is handed cosines and cannot see a catalog, and the purity of a burst
pair is a thing to measure before it is a thing to trust.

No behaviour changes; the arithmetic is untouched.
This commit is contained in:
2026-09-06 19:01:50 +02:00
parent 1c5c55b4c9
commit 43652bd613
+18 -8
View File
@@ -21,11 +21,20 @@
//! fails. The exceptions (mirrors, photographs of photographs, collages) are //! fails. The exceptions (mirrors, photographs of photographs, collages) are
//! rare enough to be noise at this scale. //! rare enough to be noise at this scale.
//! //!
//! **Positives have to be earned.** In order of trustworthiness: pairs the user //! **Positives have to be earned.** A positive is a pair of faces the user has
//! has confirmed onto one person; then burst siblings, since FR-CULL-5 already //! confirmed onto one person (FR-CULL-10), and there is no second source: the
//! groups bursts and two faces in adjacent frames are near-certainly the same //! only labelling this subsystem has is the labelling somebody did by hand.
//! person. Nothing else — bootstrapping positives from high cosine is circular, //! Bootstrapping positives from a high cosine is circular — it fits the
//! fitting the calibration to the belief it was supposed to test. //! calibration to the belief it was supposed to test — and that is the whole
//! of the alternative.
//!
//! docs/faces.md §8.1 names one more that would cost no labelling at all: two
//! faces in adjacent frames of one burst are near-certainly the same person,
//! and FR-CULL-5's grouping is sitting there. Nothing draws on it. This crate
//! cannot see a catalog, let alone the bursts in one — it is handed cosines by
//! whoever assembled the pair — and no caller does that assembly on its behalf
//! yet. Until one does, and until the purity of a burst pair is *measured*
//! rather than assumed, the positives are the confirmations and nothing else.
//! //!
//! Which is why a fresh library has **no valid calibration** — no fit of its //! Which is why a fresh library has **no valid calibration** — no fit of its
//! own — and says so. It is not left without a curve: it uses the reference //! own — and says so. It is not left without a curve: it uses the reference
@@ -44,9 +53,10 @@ const BINS: usize = 200;
/// Far stricter than the reference implementation's floor of two positives and /// Far stricter than the reference implementation's floor of two positives and
/// one negative. That floor is reasonable there: its pairs come from a curated /// one negative. That floor is reasonable there: its pairs come from a curated
/// gallery of labelled reference portraits, where a positive pair is /// gallery of labelled reference portraits, where a positive pair is
/// trustworthy by construction. Here the positives are bootstrapped from bursts /// trustworthy by construction. Here every positive is a pair somebody
/// and a handful of early confirmations, and the whole risk is fitting /// confirmed while working through a young library's suggestions — a handful,
/// confidently to too few of them. /// arriving slowly — and the whole risk is fitting confidently to too few of
/// them.
pub const MIN_POSITIVE_PAIRS: u64 = 200; pub const MIN_POSITIVE_PAIRS: u64 = 200;
pub const MIN_NEGATIVE_PAIRS: u64 = 2_000; pub const MIN_NEGATIVE_PAIRS: u64 = 2_000;