Say that all three of FR-CULL-3's bullets are unbuilt, not one

The first draft got this half right and half wrong. It correctly said the
existing histogram and clipping indicators are not FR-CULL-3's, but it
described them as adjacent — as though the work left were mostly focus
peaking and a relocation.

They are not adjacent. The histogram reads AdjustPass's 8-bit output and
counts clipping as r == 255, so it describes the frame the display is
about to show, after the entire develop chain. FR-CULL-3 asks for the
histogram of the sensor data, and gives its reason in the requirement
itself: a rendered image "systematically lies about what is recoverable in
the raw". A readout taken from the render cannot answer that question
however it is presented, which means two of the three bullets need a new
measurement rather than a new placement.

Found by the agent building focus peaking, who had to go looking at the
counters to find out.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 20:36:51 +02:00
co-authored by Claude Opus 5
parent 0d9f802f88
commit 8d5dc423ea
+14 -7
View File
@@ -73,13 +73,20 @@ somebody reads the matrix.
[D11](requirements.md) names culling "the core differentiator". FR-CULL-1, -2, -4 and -8 through -12
are built. Four are not.
**FR-CULL-3 — Raw-truth overlays.** Focus peaking does not exist anywhere; the string appears zero
times in the tree. A histogram and clipping indicators *do* exist, but they are not the ones this
requirement asks for: they live in the develop view under FR-DSP-7, they are threshold readouts
rather than per-pixel overlays on the image, and `develop.rs` says plainly that what they count is
"the levels the display will show" — the pipeline result, not the sensor data. FR-CULL-3 exists
because a culling decision made against a rendered preview is a decision made against the wrong
image. **⟳ in progress** (focus peaking).
**FR-CULL-3 — Raw-truth overlays. All three bullets, unbuilt.** Focus peaking does not exist
anywhere; the string appears zero times in the tree.
The other two are easy to mistake for present, and are not. A histogram and clipping indicators do
exist — `dr-gpu/src/histogram.rs`, `ui/dr-ui/src/histogram.rs`, the panel in `histogram.slint` —
but they are tagged FR-DSP-7 and they answer the opposite question. They read `AdjustPass`'s 8-bit
output and count clipping as `r == 255`, which is to say they describe **the frame the display is
about to show**, after the whole develop chain has run. FR-CULL-3 asks for the histogram of the
*sensor data*, on the explicit grounds that a rendered image "systematically lies about what is
recoverable in the raw". A readout that measures the render cannot answer that however it is
presented, so this is not a matter of moving an existing widget into the culling view.
The requirement exists because a culling decision made against a rendered preview is a decision made
against the wrong image, and the whole of it is still to build. **⟳ in progress** (focus peaking).
**FR-CULL-5 — Burst and near-duplicate grouping.** Absent. Worth knowing before it is built:
`core/dr-face/src/calibrate.rs` already *assumes* it exists — "since FR-CULL-5 already groups