# Requirements traceability matrix

<!-- GENERATED FILE - do not edit by hand. -->
<!-- Regenerate: scripts/traceability/traceability-gate.sh -->

**Generated:** 2026-08-08T10:06:24+00:00

Denominators are read from [`requirements.md`](requirements.md) at run time, never hardcoded. Coverage counts a requirement only when it is tagged in source **and** has a verification tier this repo's CI host can execute (`T1, T2, T3, static`).

## Summary

| Metric | Value |
|---|---|
| Source files scanned | 119 |
| TRACES tags found | 239 |
| EXCEPTION tags found | 1 |
| Requirements defined | 72 |
| Requirements covered | 42 |
| **Coverage** | **58.3%** (42/72) |
| Coverage of CI-executable scope | 73.7% (42/57) |
| Tagged but unexecuted in CI | 10 |
| Orphan tags | 0 |

### By type

| Type | Covered | Tagged but unexecuted | Defined |
|---|---|---|---|
| AR | 26 | 1 | 30 |
| DP | 2 | 0 | 8 |
| IR | 8 | 0 | 8 |
| GR | 5 | 0 | 9 |
| VR | 1 | 9 | 17 |

- **UT** tags present (separate taxonomy, not counted in coverage): UT-001, UT-002, UT-003, UT-004, UT-005, UT-101, UT-102, UT-103, UT-104, UT-105, UT-106, UT-107, UT-108, UT-120, UT-121, UT-122, UT-123, UT-124, UT-130, UT-131, UT-132, UT-133, UT-134, UT-135, UT-136, UT-137, UT-138, UT-139, UT-140, UT-141
- **IT** tags present (separate taxonomy, not counted in coverage): IT-001
- **PR** tags present (separate taxonomy, not counted in coverage): PR-002, PR-004
- **SR** tags present (separate taxonomy, not counted in coverage): SR-001, SR-002, SR-003, SR-005

## Not executable in CI

These requirements have no verification tier this repo's CI host can run, so a tag on them is evidence of *intent*, not of verification. They are never counted as covered.

| ID | Tiers | Tagged in source | Requirement |
|---|---|---|---|
| AR-027 | T4 | yes | Throughput acceptable for **arbitrary** gallery size |
| VR-001 | out-of-ci | yes | HDF5 post-inference dump at the embedded-frame boundary |
| VR-002 | out-of-ci | yes | Replay drives the **real** KPN nodes, not a reimplementation |
| VR-003 | out-of-ci | yes | Scoring: micro-F1 against X-Ray, precision/recall logged at every eva… |
| VR-004 | out-of-ci | yes | Reproducible validation corpus with ground truth |
| VR-005 | out-of-ci | yes | Minimum face size study — TPI/FPI vs probe size, gallery held at nati… |
| VR-006 | out-of-ci | no | Re-tune `scene_threshold` once native-rate decode lands |
| VR-007 | out-of-ci | no | Expansion band, clustering threshold, deferred-pass ablation, **and t… |
| VR-008 | out-of-ci | no | Gallery scaling benchmark — throughput vs gallery size |
| VR-010 | out-of-ci | yes | Dump provenance attributes — embedder model, detector settings, `dens… |
| VR-011 | out-of-ci | yes | Rewrite the replay harness for the post-AR-012 output contract |
| VR-012 | T4, out-of-ci | no | Quality-knee study — TPI/FPI vs sharpness and vs pose, as VR-005 did … |
| VR-013 | T4, out-of-ci | yes | Cross-source identification probe — gallery from one recording, probe… |
| VR-015 | out-of-ci | yes | Per-node cost and bottleneck attribution for a run — where the time a… |
| VR-017 | out-of-ci | no | **Vote-lag study** — how often does the matcher fall more than `track… |

**Tagged but unexecuted:** AR-027, VR-001, VR-002, VR-003, VR-004, VR-005, VR-010, VR-011, VR-013, VR-015 — a test exists and is tagged, but this CI host cannot run it. Report those runs separately.

## Orphan tags

A tag naming an ID `requirements.md` does not define. This is what renumbering produces, and what a typo produces.

_None._

## Requirements tracing up to nothing

A register row whose `Traces to` cell names no parent. Work serving no stated goal is how scope creeps in, and it is invisible unless something looks.

_None._

## Recorded exceptions

Deliberate, documented departures from an invariant (`EXCEPTION: XX-nnn <reason>`). Reported separately and never counted as coverage — an exception is a decision to be reviewed, not evidence a requirement is met.

| Requirement | Location | Reason |
|---|---|---|
| AR-024 | [`src/gallery/gallery_calibration.hpp:165`](../src/gallery/gallery_calibration.hpp#L165) | this asks whether two vectors are THE SAME |

## Register

| ID | Status | Tier | Traces to | Trace state | Tagged in | Requirement |
|---|---|---|---|---|---|---|
| AR-001 | Done | T3 | SR-002 | covered | `src/nodes/face_detector_node.hpp` | Detect faces in sampled frames; emit bbox, confidence, 5-point landma… |
| AR-002 | **Done** — `FaceDet… | T2 | SR-002 | covered | `src/nodes/face_detector_node.hpp`, `tests/test_face_detector_node.cpp`, `tests/test_replay_fixtures.cpp` | Minimum face size **40×40 px** (VR-013 measured end to end; VR-005's … |
| AR-003 | **Done** — `max_fac… | T1, T2, T4 | SR-002 | covered | `src/config.hpp`, `src/nodes/face_detector_node.hpp`, `src/nodes/identity_matcher_node.hpp` | No fixed per-frame face cap — crowd scenes must not lose background c… |
| AR-004 | **Mostly** — node o… | T1, T4 | SR-002 | covered | `scripts/optimizer/replay.py`, `src/benchmark.hpp`, `src/main.cpp`, `src/nodes/identity_matcher_node.hpp`, `src/nodes/scene_detector_node.hpp`, `src/types.hpp`, `tests/test_channel_bytes.cpp`, `tests/test_replay_fixtures.cpp`, `tests/test_scene_detector_node.cpp` | Backpressure: unbounded faces/frame absorbed by slowing, never by dro… |
| AR-005 | **Done** — `umeyama… | T1, T3 | SR-002 | covered | `src/face_utils.hpp`, `src/nodes/face_aligner_node.hpp`, `tests/test_face_utils.cpp` | Align to 112×112 via ArcFace 5-point similarity transform, fitted by … |
| AR-006 | Done | T3 | SR-002 | covered | `src/nodes/embedder_node.hpp` | 512-d L2-normalised embeddings, batched |
| AR-007 | **Done** — `track_a… | T2 | SR-002 | covered | `src/config.hpp`, `src/main.cpp`, `src/nodes/face_tracker_node.hpp`, `src/scene_preview.cpp`, `tests/test_face_tracker.cpp` | Associate detections by IoU + embedding, with **frame-dependent** wei… |
| AR-008 | **Done** — one pool… | T2 | SR-002 | covered | `src/config.hpp`, `src/main.cpp`, `src/nodes/face_tracker_node.hpp`, `src/track_registry.hpp`, `tests/test_face_tracker.cpp`, `tests/test_track_registry.cpp` | One track pool keyed on `last_seen`; no separate revival path |
| AR-009 | Done | T2 | SR-002 | covered | `src/nodes/camera_position_change_detector_node.hpp` | Camera-cut detection (histogram) as an association hint |
| AR-010 | **Done** — decode b… | T2 | SR-002 | covered | `src/main.cpp`, `src/nodes/scene_boundary_annotator_node.hpp`, `src/nodes/scene_detector_node.hpp`, `src/scene_boundaries.hpp`, `tests/test_scene_detector_node.cpp` | Scene-boundary detection (TransNetV2) as an association hint |
| AR-011 | **Done** — both vio… | T1, T2 | SR-002 | covered | `src/config.hpp`, `src/nodes/scene_detector_node.hpp`, `src/scene_boundaries.hpp`, `tests/test_scene_detector_node.cpp` | **Every model is fed the input it was trained for** — cost reduced by… |
| AR-012 | **Done** — `src/tra… | T2 | **SR-002** | covered | `src/config.hpp`, `src/kpn_bindings.cpp`, `src/main.cpp`, `src/nodes/frame_annotation_node.hpp`, `src/nodes/identity_matcher_node.hpp`, `src/nodes/result_sink_node.hpp`, `src/scene_preview.cpp`, `src/track_registry.hpp`, `tests/test_replay_fixtures.cpp`, `tests/test_track_registry.cpp` | Presence follows **track extent**, not per-frame recognition |
| AR-013 | **Done** — `last_se… | T2 | SR-002 | covered | `src/config.hpp`, `src/nodes/frame_annotation_node.hpp`, `src/nodes/identity_matcher_node.hpp`, `src/track_registry.hpp`, `tests/test_replay_fixtures.cpp`, `tests/test_track_registry.cpp` | `last_seen` optional state machine; window ends at last sighting, nev… |
| AR-014 | **Done** — swap clo… | T2 | SR-002 | covered | `src/track_registry.hpp`, `tests/test_track_registry.cpp` | Belief swap A→B terminates the track and starts a new one |
| AR-015 | **Done** — reverse … | T2 | SR-002 | covered | `src/track_registry.hpp`, `tests/test_track_registry.cpp` | Two live tracks owned by one actor ⇒ treat as a detected cut, re-asso… |
| AR-016 | **Done** — `flush()… | T2 | SR-002 | covered | `src/kpn_bindings.cpp`, `src/main.cpp`, `src/nodes/result_sink_node.hpp`, `src/track_registry.hpp`, `tests/test_track_registry.cpp` | All tracks closed at EOF — a film ends with faces on screen |
| AR-017 | **Done** — `DeadTra… | T1, T2 | SR-002 | covered | `src/config.hpp`, `src/nodes/result_sink_node.hpp`, `src/track_registry.hpp`, `tests/test_track_registry.cpp` | Every presence claim carries its belief and identification route |
| AR-018 | **Done** — banded a… | T1, T2 | SR-005 | covered | `src/config.hpp`, `src/gallery/track_gallery.hpp`, `src/nodes/identity_matcher_node.hpp`, `tests/test_track_gallery.cpp` | Per-subject embedding store with banded admission (novel enough, safe… |
| AR-019 | **Done** — all thre… | T2 | SR-005 | covered | `src/gallery/track_gallery.hpp`, `src/nodes/identity_matcher_node.hpp`, `tests/test_track_gallery.cpp` | Per-film gallery annex from owned tracks; acquires the non-frontal vi… |
| AR-020 | Planned | T2 | SR-005 | untagged | - | Deferred re-identification of unknown tracks against the final expand… |
| AR-021 | Planned | T2 | SR-005 | untagged | - | Cluster unknown tracks into one entity per person, under temporal can… |
| AR-022 | Planned | T1, T2 | §4 | untagged | - | Capture still-unidentified tracks: embeddings, metadata, **context cr… |
| AR-023 | **Done** — and the … | T1 | SR-002 | covered | `src/gallery/gallery_calibration.hpp`, `src/nodes/identity_matcher_node.hpp`, `tests/test_calibration.cpp` | Fit sigmoid calibration from intra/inter similarity distributions |
| AR-024 | **Done** — associat… | T1, static | SR-002 | covered | `scripts/ci/check_raw_cosine.py`, `src/config.hpp`, `src/evidence_discount.hpp`, `src/gallery/gallery_calibration.hpp`, `src/gallery/track_gallery.hpp`, `src/main.cpp`, `src/nodes/face_tracker_node.hpp`, `src/nodes/identity_matcher_node.hpp`, `src/scene_preview.cpp`, `tests/test_track_gallery.cpp` | **Always the calibrated probability, never a raw cosine** — exception… |
| AR-025 | **Done** — log-odds… | T1 | SR-002 | covered | `src/config.hpp`, `src/evidence_discount.hpp`, `src/kpn_bindings.cpp`, `src/main.cpp`, `src/nodes/identity_matcher_node.hpp`, `src/track_registry.hpp`, `tests/test_track_registry.cpp` | Per-track Bayesian accumulation in log-odds, with correlated-observat… |
| AR-026 | **In Progress** — t… | T1, T4 | SR-001 | covered | `src/backends/gemm_backend.cpp`, `src/gallery/track_gallery.hpp`, `src/inference/similarity.hpp`, `src/nodes/identity_matcher_node.hpp`, `tests/test_similarity.cpp`, `tests/test_track_gallery.cpp` | All similarity computed as GEMM, including annex and deferred pass |
| AR-027 | Planned | T4 | SR-001 | tagged, unexecuted | `src/backends/gemm_backend.cpp` | Throughput acceptable for **arbitrary** gallery size |
| AR-028 | **Done** — filled i… | T2 | SR-002 | covered | `scripts/optimizer/replay.py`, `src/nodes/embedding_dump_node.hpp`, `src/nodes/face_aligner_node.hpp`, `src/types.hpp`, `tests/test_embedding_dump.cpp`, `tests/test_face_utils.cpp` | **Embedding input quality assessed and carried** — every face scored … |
| AR-029 | **Done** — `crop_sh… | T1 | SR-002 | covered | `src/face_utils.hpp`, `src/nodes/face_aligner_node.hpp`, `tests/test_face_utils.cpp` | Sharpness measure on the **aligned crop** (scale-normalised, so it ca… |
| AR-030 | **In Progress** — m… | T1 | SR-002 | covered | `src/face_utils.hpp`, `src/nodes/face_aligner_node.hpp`, `tests/test_face_utils.cpp` | Visibility measure from the AR-001 5-point landmarks — extreme pose o… |
| DP-001 | **Done, after a rep… | T1, manual | PR-004 | covered | `scripts/optimizer/replay.py`, `src/kpn_bindings.cpp`, `src/main.cpp`, `src/scene_preview.cpp` | One analysis core; modes are front-ends and must not fork pipeline lo… |
| DP-002 | Done | T1, manual | PR-004 | covered | `src/main.cpp` | Batch CLI over one title |
| DP-003 | Planned | T1, manual | PR-004 | untagged | - | On-demand resident service with bounded, observable queue |
| DP-004 | Planned | T1, manual | PR-004 | untagged | - | Opportunistic/idle mode: external trigger, hard stop, implicit re-que… |
| DP-005 | Planned | T1, manual | PR-004 | untagged | - | Native installer, no Docker; Fedora + Arch |
| DP-006 | Planned | T1, manual | PR-003 | untagged | - | Background incremental gallery refresh on a timer |
| DP-007 | **Mostly** — image … | T1, manual | PR-004 | untagged | - | CI builder image, CPU-only, pinned by tag in the Gitea container regi… |
| DP-008 | Planned | T1, manual | PR-004 | untagged | - | Builder images + release jobs per backend (cpu / cuda / rocm); ship b… |
| IR-001 | Done | T1 | SR-003 | covered | `src/kpn_bindings.cpp`, `src/nodes/result_sink_node.hpp` | Emit the JRay truth format as sibling `.jray.json` |
| IR-002 | **Done** — `schema_… | T1 | SR-003 | covered | `src/config.hpp`, `src/main.cpp`, `src/nodes/result_sink_node.hpp`, `src/track_registry.hpp` | Windows carry belief + route; `extraction.*` carries `extinction_sec`… |
| IR-003 | **In Progress** — s… | T1 | SR-003 | covered | `src/kpn_bindings.cpp`, `src/main.cpp` | Output written **after** the deferred pass, not at EOF |
| IR-004 | **Done** — `src/aud… | T1 | SR-003 | covered | `scripts/validation/test_audio_offset.py`, `src/audio_bindings.cpp`, `src/audio_signature.cpp`, `src/audio_signature.hpp`, `tests/test_audio_signature.cpp` | Compute the audio signature exactly per server spec §3 |
| IR-005 | **Done** — `tests/f… | T1 | SR-003 | covered | `src/audio_bindings.cpp`, `src/audio_signature.cpp`, `src/audio_signature.hpp`, `tests/test_audio_signature.cpp` | Golden-vector fixture shared with the plugin repo to prove bit-exactn… |
| IR-006 | Done | T1, manual | SR-001 | covered | `scripts/run_from_jellyfin.py` | Jellyfin round-trip: pull pending queue, push complete results only |
| IR-007 | **Done** | T1 | SR-003 | covered | `src/audio_signature.cpp`, `src/audio_signature.hpp`, `tests/test_audio_signature.cpp` | Media < 120 s: emit no signature, apply no sync offset — identical ru… |
| IR-008 | **Done** | T1 | SR-003 | covered | `src/audio_signature.cpp`, `src/audio_signature.hpp`, `tests/test_audio_signature.cpp` | Emit and honour the signature's own `v1:` version prefix |
| GR-001 | Done | T1, T3 | SR-001, SR-005 | covered | `scripts/make_jellyfin_gallery.py` | Build gallery from Jellyfin library cast, TMDB profile fallback |
| GR-002 | Done | T1, T3 | PR-003 | covered | `scripts/make_jellyfin_gallery.py` | Incremental `--merge` refresh without re-embedding known actors |
| GR-003 | **Done** — `gallery… | T1, T3 | SR-001 | covered | `src/build_gallery.cpp`, `src/gallery/gallery_calibration.hpp`, `src/gallery/gallery_report.hpp`, `tests/test_calibration.cpp` | Report coverage: zero-image actors, under-referenced actors, dedup, c… |
| GR-004 | **Done** — basename… | T1, T3 | SR-001 | covered | `scripts/filter_gallery.py`, `scripts/make_gallery.py`, `scripts/make_jellyfin_gallery.py`, `scripts/movienet_eval.py`, `scripts/optimizer/fetch_missing_actors.py`, `scripts/optimizer/optimize.py`, `scripts/optimizer/reembed_gallery.py`, `scripts/optimizer/replay.py`, `scripts/sae_embed_loader.py`, `scripts/sae_gallery.py`, `scripts/sae_stamp.py`, `scripts/stamp_gallery.py`, `src/config.hpp`, `src/gallery/embedder_stamp.cpp`, `src/gallery/embedder_stamp.hpp`, `src/gallery/gallery_builder.cpp`, `src/gallery/gallery_store.cpp`, `src/kpn_bindings.cpp`, `src/main.cpp`, `src/nodes/embedding_dump_node.hpp`, `src/scene_preview.cpp`, `src/types.hpp`, `tests/test_gallery_store.cpp` | Stamp embedder identity into the gallery; **hard startup error** on m… |
| GR-005 | Done | T1, T3 | **SR-005** | covered | `src/gallery/gallery_store.hpp` | Gallery data never leaves the instance |
| GR-006 | Planned | T1 | SR-005 | untagged | - | Provenance tiers: baked / harvested / confirmed, distinguishable per … |
| GR-007 | Planned | T1 | SR-005 | untagged | - | Persist harvested embeddings **flagged and reviewable**, never silent… |
| GR-008 | Planned | T1 | SR-005 | untagged | - | Flag distributional outliers among an actor's references (poisoning g… |
| GR-009 | TBD | T1 | §4 | untagged | - | Human-confirmed associations persist and improve future extractions |
| VR-001 | Done | out-of-ci | PR-002 | tagged, unexecuted | `src/nodes/embedding_dump_node.hpp`, `tests/test_embedding_dump.cpp`, `tests/test_replay_fixtures.cpp` | HDF5 post-inference dump at the embedded-frame boundary |
| VR-002 | **Done** — includin… | out-of-ci | PR-002 | tagged, unexecuted | `scripts/optimizer/replay.py`, `src/kpn_bindings.cpp`, `tests/test_replay_fixtures.cpp` | Replay drives the **real** KPN nodes, not a reimplementation |
| VR-003 | Done | out-of-ci | PR-002 | tagged, unexecuted | `scripts/optimizer/second_score.py` | Scoring: micro-F1 against X-Ray, precision/recall logged at every eva… |
| VR-004 | Done | out-of-ci | PR-002 | tagged, unexecuted | `scripts/validation/ground_truth.py` | Reproducible validation corpus with ground truth |
| VR-005 | **Done** — knee at … | out-of-ci | PR-002 | tagged, unexecuted | `scripts/validation/min_face_size.py` | Minimum face size study — TPI/FPI vs probe size, gallery held at nati… |
| VR-006 | **Planned, now unbl… | out-of-ci | PR-002 | untagged | - | Re-tune `scene_threshold` once native-rate decode lands |
| VR-007 | **Planned — scope c… | out-of-ci | PR-002 | untagged | - | Expansion band, clustering threshold, deferred-pass ablation, **and t… |
| VR-008 | Planned | out-of-ci | PR-002 | untagged | - | Gallery scaling benchmark — throughput vs gallery size |
| VR-009 | Planned | T1, out-of-ci | PR-002 | untagged | - | Verify accumulated posteriors are calibrated against held-out tracks |
| VR-010 | **Done** — `DumpPro… | out-of-ci | PR-002 | tagged, unexecuted | `src/nodes/embedding_dump_node.hpp` | Dump provenance attributes — embedder model, detector settings, `dens… |
| VR-011 | **Done** — `sae_kpn… | out-of-ci | PR-002 | tagged, unexecuted | `scripts/optimizer/replay.py`, `scripts/optimizer/test_sae_kpn.py`, `src/kpn_bindings.cpp` | Rewrite the replay harness for the post-AR-012 output contract |
| VR-012 | Planned | T4, out-of-ci | PR-002 | untagged | - | Quality-knee study — TPI/FPI vs sharpness and vs pose, as VR-005 did … |
| VR-013 | **In Progress** — h… | T4, out-of-ci | PR-002 | tagged, unexecuted | `experiments/xsource/resolution_sweep.py`, `experiments/xsource/verify_labels.py` | Cross-source identification probe — gallery from one recording, probe… |
| VR-014 | **Done** — 40 rando… | T2, out-of-ci | PR-002 | covered | `scripts/validation/test_audio_offset.py` | Audio-signature **offset recovery on real content** — a known trim re… |
| VR-015 | **Done** — `--bench… | out-of-ci | PR-004 | tagged, unexecuted | `src/backends/trt_backend.cpp`, `src/benchmark.hpp`, `src/config.hpp`, `src/main.cpp`, `tests/test_benchmark.cpp` | Per-node cost and bottleneck attribution for a run — where the time a… |
| VR-016 | **Planned.** The hi… | T2, out-of-ci | PR-002 | untagged | - | **Cut-detection cadence study** — is `cut_threshold` 0.70 meaningful … |
| VR-017 | **Planned.** Channe… | out-of-ci | PR-002 | untagged | - | **Vote-lag study** — how often does the matcher fall more than `track… |

## Detailed mapping

### AR-001

**Locations:** 1

- [`src/nodes/face_detector_node.hpp:2`](../src/nodes/face_detector_node.hpp#L2) — `Unknown`

### AR-002

**Locations:** 3

- [`src/nodes/face_detector_node.hpp:26`](../src/nodes/face_detector_node.hpp#L26) — `explicit FaceDetectorFunc(const Config& cfg)`
- [`tests/test_face_detector_node.cpp:3`](../tests/test_face_detector_node.cpp#L3) — `Unknown`
- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`

### AR-003

**Locations:** 3

- [`src/config.hpp:52`](../src/config.hpp#L52) — `Unknown`
- [`src/nodes/face_detector_node.hpp:64`](../src/nodes/face_detector_node.hpp#L64) — `private:`
- [`src/nodes/identity_matcher_node.hpp:213`](../src/nodes/identity_matcher_node.hpp#L213) — `std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`

### AR-004

**Locations:** 17

- [`src/benchmark.hpp:176`](../src/benchmark.hpp#L176) — `Unknown`
- [`src/benchmark.hpp:472`](../src/benchmark.hpp#L472) — `void print(std::ostream& os, double film_sec) const`
- [`src/benchmark.hpp:522`](../src/benchmark.hpp#L522) — `else if (c.in_fill_pct > 50.0)`
- [`src/main.cpp:106`](../src/main.cpp#L106) — `static constexpr std::size_t kSceneInputDepth = 128;`
- [`src/main.cpp:111`](../src/main.cpp#L111) — `static constexpr std::size_t kSceneInputDepth = 128;`
- [`src/main.cpp:132`](../src/main.cpp#L132) — `static constexpr double kSceneJoinSafety = 2.0;`
- [`src/main.cpp:154`](../src/main.cpp#L154) — `static std::size_t scene_join_depth(float sample_fps)`
- [`src/main.cpp:172`](../src/main.cpp#L172) — `static std::shared_ptr<SceneBoundaries> scene_stats;`
- [`src/main.cpp:451`](../src/main.cpp#L451) — `Unknown`
- [`src/main.cpp:494`](../src/main.cpp#L494) — `std::ofstream bf(cfg.benchmark_path);`
- [`src/nodes/identity_matcher_node.hpp:213`](../src/nodes/identity_matcher_node.hpp#L213) — `std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`
- [`src/nodes/scene_detector_node.hpp:95`](../src/nodes/scene_detector_node.hpp#L95) — `Unknown`
- [`src/types.hpp:189`](../src/types.hpp#L189) — `Unknown`
- [`tests/test_channel_bytes.cpp:3`](../tests/test_channel_bytes.cpp#L3) — `Unknown`
- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`
- [`tests/test_scene_detector_node.cpp:93`](../tests/test_scene_detector_node.cpp#L93) — `Unknown`
- [`scripts/optimizer/replay.py:174`](../scripts/optimizer/replay.py#L174) — `if i < len(frames):`

### AR-005

**Locations:** 3

- [`src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — `Unknown`
- [`src/nodes/face_aligner_node.hpp:8`](../src/nodes/face_aligner_node.hpp#L8) — `Unknown`
- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### AR-006

**Locations:** 1

- [`src/nodes/embedder_node.hpp:21`](../src/nodes/embedder_node.hpp#L21) — `struct EmbedderFunc`

### AR-007

**Locations:** 5

- [`src/config.hpp:160`](../src/config.hpp#L160) — `Unknown`
- [`src/main.cpp:317`](../src/main.cpp#L317) — `Unknown`
- [`src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — `Unknown`
- [`src/scene_preview.cpp:147`](../src/scene_preview.cpp#L147) — `Unknown`
- [`tests/test_face_tracker.cpp:1`](../tests/test_face_tracker.cpp#L1) — `Unknown`

### AR-008

**Locations:** 6

- [`src/config.hpp:160`](../src/config.hpp#L160) — `Unknown`
- [`src/main.cpp:317`](../src/main.cpp#L317) — `Unknown`
- [`src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — `Unknown`
- [`src/track_registry.hpp:145`](../src/track_registry.hpp#L145) — `public:`
- [`tests/test_face_tracker.cpp:1`](../tests/test_face_tracker.cpp#L1) — `Unknown`
- [`tests/test_track_registry.cpp:417`](../tests/test_track_registry.cpp#L417) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`

### AR-009

**Locations:** 1

- [`src/nodes/camera_position_change_detector_node.hpp:30`](../src/nodes/camera_position_change_detector_node.hpp#L30) — `struct CameraPositionChangeDetectorFunc`

### AR-010

**Locations:** 12

- [`src/main.cpp:106`](../src/main.cpp#L106) — `static constexpr std::size_t kSceneInputDepth = 128;`
- [`src/main.cpp:111`](../src/main.cpp#L111) — `static constexpr std::size_t kSceneInputDepth = 128;`
- [`src/main.cpp:504`](../src/main.cpp#L504) — `Unknown`
- [`src/main.cpp:613`](../src/main.cpp#L613) — `return run_net(std::move(net));`
- [`src/main.cpp:645`](../src/main.cpp#L645) — `Unknown`
- [`src/nodes/scene_boundary_annotator_node.hpp:2`](../src/nodes/scene_boundary_annotator_node.hpp#L2) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:38`](../src/nodes/scene_detector_node.hpp#L38) — `static constexpr std::string_view label() { return "scene_detector"; }`
- [`src/nodes/scene_detector_node.hpp:95`](../src/nodes/scene_detector_node.hpp#L95) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:191`](../src/nodes/scene_detector_node.hpp#L191) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:232`](../src/nodes/scene_detector_node.hpp#L232) — `void write_output()`
- [`src/scene_boundaries.hpp:2`](../src/scene_boundaries.hpp#L2) — `Unknown`
- [`tests/test_scene_detector_node.cpp:93`](../tests/test_scene_detector_node.cpp#L93) — `Unknown`

### AR-011

**Locations:** 6

- [`src/config.hpp:138`](../src/config.hpp#L138) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:72`](../src/nodes/scene_detector_node.hpp#L72) — `void operator()(Frame f)`
- [`src/nodes/scene_detector_node.hpp:137`](../src/nodes/scene_detector_node.hpp#L137) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:196`](../src/nodes/scene_detector_node.hpp#L196) — `Unknown`
- [`src/scene_boundaries.hpp:30`](../src/scene_boundaries.hpp#L30) — `public:`
- [`tests/test_scene_detector_node.cpp:4`](../tests/test_scene_detector_node.cpp#L4) — `Unknown`

### AR-012

**Locations:** 17

- [`src/config.hpp:210`](../src/config.hpp#L210) — `Unknown`
- [`src/kpn_bindings.cpp:406`](../src/kpn_bindings.cpp#L406) — `Unknown`
- [`src/main.cpp:317`](../src/main.cpp#L317) — `Unknown`
- [`src/main.cpp:343`](../src/main.cpp#L343) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`
- [`src/main.cpp:519`](../src/main.cpp#L519) — `Unknown`
- [`src/nodes/frame_annotation_node.hpp:2`](../src/nodes/frame_annotation_node.hpp#L2) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:151`](../src/nodes/identity_matcher_node.hpp#L151) — `const GalleryCalibration& calibration() const { return cal_; }`
- [`src/nodes/identity_matcher_node.hpp:173`](../src/nodes/identity_matcher_node.hpp#L173) — `MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [`src/nodes/identity_matcher_node.hpp:306`](../src/nodes/identity_matcher_node.hpp#L306) — `Unknown`
- [`src/nodes/result_sink_node.hpp:50`](../src/nodes/result_sink_node.hpp#L50) — `static constexpr std::string_view label() { return "result_sink"; }`
- [`src/nodes/result_sink_node.hpp:164`](../src/nodes/result_sink_node.hpp#L164) — `struct ActorMeta { std::string name, imdb_id, tmdb_id, jellyfin_id; };`
- [`src/scene_preview.cpp:147`](../src/scene_preview.cpp#L147) — `Unknown`
- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`src/track_registry.hpp:191`](../src/track_registry.hpp#L191) — `void tick(double now) { std::lock_guard g(mu_); tick_locked(now); }`
- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`
- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`
- [`tests/test_track_registry.cpp:376`](../tests/test_track_registry.cpp#L376) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`

### AR-013

**Locations:** 11

- [`src/config.hpp:210`](../src/config.hpp#L210) — `Unknown`
- [`src/nodes/frame_annotation_node.hpp:2`](../src/nodes/frame_annotation_node.hpp#L2) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:173`](../src/nodes/identity_matcher_node.hpp#L173) — `MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`src/track_registry.hpp:145`](../src/track_registry.hpp#L145) — `public:`
- [`src/track_registry.hpp:191`](../src/track_registry.hpp#L191) — `void tick(double now) { std::lock_guard g(mu_); tick_locked(now); }`
- [`src/track_registry.hpp:222`](../src/track_registry.hpp#L222) — `std::lock_guard g(mu_);`
- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`
- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`
- [`tests/test_track_registry.cpp:376`](../tests/test_track_registry.cpp#L376) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`
- [`tests/test_track_registry.cpp:417`](../tests/test_track_registry.cpp#L417) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`

### AR-014

**Locations:** 2

- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`

### AR-015

**Locations:** 2

- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`

### AR-016

**Locations:** 5

- [`src/kpn_bindings.cpp:406`](../src/kpn_bindings.cpp#L406) — `Unknown`
- [`src/main.cpp:343`](../src/main.cpp#L343) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`
- [`src/nodes/result_sink_node.hpp:64`](../src/nodes/result_sink_node.hpp#L64) — `void set_pre_write_hook(std::function<void(double)> fn) { pre_write_ = std::move(fn); }`
- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`

### AR-017

**Locations:** 5

- [`src/config.hpp:181`](../src/config.hpp#L181) — `Unknown`
- [`src/nodes/result_sink_node.hpp:50`](../src/nodes/result_sink_node.hpp#L50) — `static constexpr std::string_view label() { return "result_sink"; }`
- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`src/track_registry.hpp:47`](../src/track_registry.hpp#L47) — `Unknown`
- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`

### AR-018

**Locations:** 5

- [`src/config.hpp:245`](../src/config.hpp#L245) — `Unknown`
- [`src/gallery/track_gallery.hpp:233`](../src/gallery/track_gallery.hpp#L233) — `struct TrackState`
- [`src/gallery/track_gallery.hpp:331`](../src/gallery/track_gallery.hpp#L331) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:136`](../src/nodes/identity_matcher_node.hpp#L136) — `std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`

### AR-019

**Locations:** 7

- [`src/gallery/track_gallery.hpp:136`](../src/gallery/track_gallery.hpp#L136) — `Unknown`
- [`src/gallery/track_gallery.hpp:161`](../src/gallery/track_gallery.hpp#L161) — `Unknown`
- [`src/gallery/track_gallery.hpp:183`](../src/gallery/track_gallery.hpp#L183) — `void set_owner(int track_id, int actor_idx)`
- [`src/nodes/identity_matcher_node.hpp:194`](../src/nodes/identity_matcher_node.hpp#L194) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:316`](../src/nodes/identity_matcher_node.hpp#L316) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:335`](../src/nodes/identity_matcher_node.hpp#L335) — `Unknown`
- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`

### AR-023

**Locations:** 4

- [`src/gallery/gallery_calibration.hpp:2`](../src/gallery/gallery_calibration.hpp#L2) — `Unknown`
- [`src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — `float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [`src/nodes/identity_matcher_node.hpp:143`](../src/nodes/identity_matcher_node.hpp#L143) — `const GalleryCalibration& calibration() const { return cal_; }`
- [`tests/test_calibration.cpp:1`](../tests/test_calibration.cpp#L1) — `Unknown`

### AR-024

**Locations:** 19

- [`src/config.hpp:108`](../src/config.hpp#L108) — `Unknown`
- [`src/config.hpp:160`](../src/config.hpp#L160) — `Unknown`
- [`src/config.hpp:245`](../src/config.hpp#L245) — `Unknown`
- [`src/evidence_discount.hpp:2`](../src/evidence_discount.hpp#L2) — `Unknown`
- [`src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — `float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [`src/gallery/track_gallery.hpp:193`](../src/gallery/track_gallery.hpp#L193) — `void set_owner(int track_id, int actor_idx)`
- [`src/gallery/track_gallery.hpp:233`](../src/gallery/track_gallery.hpp#L233) — `struct TrackState`
- [`src/gallery/track_gallery.hpp:331`](../src/gallery/track_gallery.hpp#L331) — `Unknown`
- [`src/main.cpp:317`](../src/main.cpp#L317) — `Unknown`
- [`src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:29`](../src/nodes/identity_matcher_node.hpp#L29) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:109`](../src/nodes/identity_matcher_node.hpp#L109) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:136`](../src/nodes/identity_matcher_node.hpp#L136) — `std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [`src/nodes/identity_matcher_node.hpp:143`](../src/nodes/identity_matcher_node.hpp#L143) — `const GalleryCalibration& calibration() const { return cal_; }`
- [`src/nodes/identity_matcher_node.hpp:271`](../src/nodes/identity_matcher_node.hpp#L271) — `Unknown`
- [`src/scene_preview.cpp:147`](../src/scene_preview.cpp#L147) — `Unknown`
- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`
- [`tests/test_track_gallery.cpp:414`](../tests/test_track_gallery.cpp#L414) — `TrackGallery tg(expand_cfg());`
- [`scripts/ci/check_raw_cosine.py:4`](../scripts/ci/check_raw_cosine.py#L4) — `Unknown`

### AR-025

**Locations:** 10

- [`src/config.hpp:181`](../src/config.hpp#L181) — `Unknown`
- [`src/evidence_discount.hpp:2`](../src/evidence_discount.hpp#L2) — `Unknown`
- [`src/kpn_bindings.cpp:432`](../src/kpn_bindings.cpp#L432) — `Unknown`
- [`src/main.cpp:325`](../src/main.cpp#L325) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`
- [`src/main.cpp:519`](../src/main.cpp#L519) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:151`](../src/nodes/identity_matcher_node.hpp#L151) — `const GalleryCalibration& calibration() const { return cal_; }`
- [`src/nodes/identity_matcher_node.hpp:306`](../src/nodes/identity_matcher_node.hpp#L306) — `Unknown`
- [`src/track_registry.hpp:191`](../src/track_registry.hpp#L191) — `void tick(double now) { std::lock_guard g(mu_); tick_locked(now); }`
- [`src/track_registry.hpp:222`](../src/track_registry.hpp#L222) — `std::lock_guard g(mu_);`
- [`tests/test_track_registry.cpp:376`](../tests/test_track_registry.cpp#L376) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`

### AR-026

**Locations:** 17

- [`src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — `constexpr int kDim = 512;`
- [`src/backends/gemm_backend.cpp:80`](../src/backends/gemm_backend.cpp#L80) — `int n_gallery() const override { return n_gallery_; }`
- [`src/backends/gemm_backend.cpp:256`](../src/backends/gemm_backend.cpp#L256) — `int n_gallery() const override { return n_gallery_; }`
- [`src/gallery/track_gallery.hpp:50`](../src/gallery/track_gallery.hpp#L50) — `struct TrackGallery`
- [`src/gallery/track_gallery.hpp:85`](../src/gallery/track_gallery.hpp#L85) — `bool enabled() const { return enabled_; }`
- [`src/gallery/track_gallery.hpp:100`](../src/gallery/track_gallery.hpp#L100) — `const float* annex_row(int i) const`
- [`src/gallery/track_gallery.hpp:380`](../src/gallery/track_gallery.hpp#L380) — `static constexpr int kEmbDim = 512;`
- [`src/inference/similarity.hpp:19`](../src/inference/similarity.hpp#L19) — `struct ISimilarityEngine`
- [`src/inference/similarity.hpp:39`](../src/inference/similarity.hpp#L39) — `virtual int n_gallery() const = 0;`
- [`src/nodes/identity_matcher_node.hpp:60`](../src/nodes/identity_matcher_node.hpp#L60) — `struct IdentityMatcherFunc`
- [`src/nodes/identity_matcher_node.hpp:233`](../src/nodes/identity_matcher_node.hpp#L233) — `std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`
- [`src/nodes/identity_matcher_node.hpp:349`](../src/nodes/identity_matcher_node.hpp#L349) — `private:`
- [`tests/test_similarity.cpp:1`](../tests/test_similarity.cpp#L1) — `Unknown`
- [`tests/test_similarity.cpp:85`](../tests/test_similarity.cpp#L85) — `Unknown`
- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`
- [`tests/test_track_gallery.cpp:54`](../tests/test_track_gallery.cpp#L54) — `Embedding annex_view(const TrackGallery& tg, int row)`
- [`tests/test_track_gallery.cpp:364`](../tests/test_track_gallery.cpp#L364) — `TrackGallery tg(expand_cfg());`

### AR-027

**Locations:** 1

- [`src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — `constexpr int kDim = 512;`

### AR-028

**Locations:** 8

- [`src/nodes/embedding_dump_node.hpp:2`](../src/nodes/embedding_dump_node.hpp#L2) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:181`](../src/nodes/embedding_dump_node.hpp#L181) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:296`](../src/nodes/embedding_dump_node.hpp#L296) — `Unknown`
- [`src/nodes/face_aligner_node.hpp:8`](../src/nodes/face_aligner_node.hpp#L8) — `Unknown`
- [`src/types.hpp:62`](../src/types.hpp#L62) — `struct DetectedFace`
- [`tests/test_embedding_dump.cpp:1`](../tests/test_embedding_dump.cpp#L1) — `Unknown`
- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`
- [`scripts/optimizer/replay.py:70`](../scripts/optimizer/replay.py#L70) — `for i in range(len(ts)):`

### AR-029

**Locations:** 4

- [`src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — `Unknown`
- [`src/face_utils.hpp:147`](../src/face_utils.hpp#L147) — `Unknown`
- [`src/nodes/face_aligner_node.hpp:8`](../src/nodes/face_aligner_node.hpp#L8) — `Unknown`
- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### AR-030

**Locations:** 3

- [`src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — `Unknown`
- [`src/nodes/face_aligner_node.hpp:8`](../src/nodes/face_aligner_node.hpp#L8) — `Unknown`
- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### DP-001

**Locations:** 4

- [`src/kpn_bindings.cpp:322`](../src/kpn_bindings.cpp#L322) — `Unknown`
- [`src/main.cpp:3`](../src/main.cpp#L3) — `Unknown`
- [`src/scene_preview.cpp:147`](../src/scene_preview.cpp#L147) — `Unknown`
- [`scripts/optimizer/replay.py:194`](../scripts/optimizer/replay.py#L194) — `Unknown`

### DP-002

**Locations:** 1

- [`src/main.cpp:3`](../src/main.cpp#L3) — `Unknown`

### GR-001

**Locations:** 1

- [`scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — `Unknown`

### GR-002

**Locations:** 1

- [`scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — `Unknown`

### GR-003

**Locations:** 16

- [`src/build_gallery.cpp:87`](../src/build_gallery.cpp#L87) — `Unknown`
- [`src/gallery/gallery_calibration.hpp:80`](../src/gallery/gallery_calibration.hpp#L80) — `struct GalleryCalibrationStats`
- [`src/gallery/gallery_calibration.hpp:145`](../src/gallery/gallery_calibration.hpp#L145) — `std::vector<bool> actor_eligible(n_actors, false);`
- [`src/gallery/gallery_calibration.hpp:307`](../src/gallery/gallery_calibration.hpp#L307) — `Unknown`
- [`src/gallery/gallery_report.hpp:2`](../src/gallery/gallery_report.hpp#L2) — `Unknown`
- [`src/gallery/gallery_report.hpp:52`](../src/gallery/gallery_report.hpp#L52) — `struct GalleryBuildAudit`
- [`src/gallery/gallery_report.hpp:73`](../src/gallery/gallery_report.hpp#L73) — `struct GalleryReport`
- [`src/gallery/gallery_report.hpp:154`](../src/gallery/gallery_report.hpp#L154) — `inline GalleryReport build_gallery_report(const ActorGallery& gallery,`
- [`src/gallery/gallery_report.hpp:295`](../src/gallery/gallery_report.hpp#L295) — `inline nlohmann::json gallery_report_to_json(const GalleryReport& r)`
- [`src/gallery/gallery_report.hpp:361`](../src/gallery/gallery_report.hpp#L361) — `inline GalleryReport gallery_report_from_json(const nlohmann::json& j)`
- [`src/gallery/gallery_report.hpp:446`](../src/gallery/gallery_report.hpp#L446) — `inline void save_gallery_report(const std::string& path, const GalleryReport& r)`
- [`src/gallery/gallery_report.hpp:454`](../src/gallery/gallery_report.hpp#L454) — `inline GalleryReport load_gallery_report(const std::string& path)`
- [`src/gallery/gallery_report.hpp:464`](../src/gallery/gallery_report.hpp#L464) — `return gallery_report_from_json(j);`
- [`tests/test_calibration.cpp:192`](../tests/test_calibration.cpp#L192) — `Embedding unit_axis(int slot)`
- [`tests/test_calibration.cpp:222`](../tests/test_calibration.cpp#L222) — `Unknown`
- [`tests/test_calibration.cpp:248`](../tests/test_calibration.cpp#L248) — `Unknown`

### GR-004

**Locations:** 44

- [`src/config.hpp:62`](../src/config.hpp#L62) — `Unknown`
- [`src/gallery/embedder_stamp.cpp:1`](../src/gallery/embedder_stamp.cpp#L1) — `Unknown`
- [`src/gallery/embedder_stamp.hpp:2`](../src/gallery/embedder_stamp.hpp#L2) — `Unknown`
- [`src/gallery/gallery_builder.cpp:45`](../src/gallery/gallery_builder.cpp#L45) — `ActorGallery build_gallery(const BuildConfig& cfg)`
- [`src/gallery/gallery_store.cpp:82`](../src/gallery/gallery_store.cpp#L82) — `H5::StrType str(H5::PredType::C_S1, H5T_VARIABLE);`
- [`src/gallery/gallery_store.cpp:167`](../src/gallery/gallery_store.cpp#L167) — `H5::DataSpace scalar(H5S_SCALAR);`
- [`src/gallery/gallery_store.cpp:219`](../src/gallery/gallery_store.cpp#L219) — `Unknown`
- [`src/kpn_bindings.cpp:257`](../src/kpn_bindings.cpp#L257) — `Unknown`
- [`src/kpn_bindings.cpp:359`](../src/kpn_bindings.cpp#L359) — `static std::map<std::string, std::shared_ptr<ActorGallery>> cache;`
- [`src/main.cpp:292`](../src/main.cpp#L292) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:127`](../src/nodes/embedding_dump_node.hpp#L127) — `static constexpr std::string_view label() { return "embedding_dump"; }`
- [`src/nodes/embedding_dump_node.hpp:257`](../src/nodes/embedding_dump_node.hpp#L257) — `H5::H5File file(path_, H5F_ACC_TRUNC);`
- [`src/scene_preview.cpp:130`](../src/scene_preview.cpp#L130) — `int main(int argc, char** argv)`
- [`src/types.hpp:173`](../src/types.hpp#L173) — `struct Actor`
- [`tests/test_gallery_store.cpp:182`](../tests/test_gallery_store.cpp#L182) — `TempFile tf("gallery_stamped.h5");`
- [`tests/test_gallery_store.cpp:201`](../tests/test_gallery_store.cpp#L201) — `TempFile tf("gallery_stamped.h5");`
- [`tests/test_gallery_store.cpp:219`](../tests/test_gallery_store.cpp#L219) — `TempFile tf("gallery_unstamped.h5");`
- [`tests/test_gallery_store.cpp:240`](../tests/test_gallery_store.cpp#L240) — `TempFile tf("gallery_json_stamp.json");`
- [`tests/test_gallery_store.cpp:252`](../tests/test_gallery_store.cpp#L252) — `Unknown`
- [`tests/test_gallery_store.cpp:268`](../tests/test_gallery_store.cpp#L268) — `Unknown`
- [`tests/test_gallery_store.cpp:300`](../tests/test_gallery_store.cpp#L300) — `Unknown`
- [`tests/test_gallery_store.cpp:309`](../tests/test_gallery_store.cpp#L309) — `Unknown`
- [`tests/test_gallery_store.cpp:333`](../tests/test_gallery_store.cpp#L333) — `Unknown`
- [`tests/test_gallery_store.cpp:348`](../tests/test_gallery_store.cpp#L348) — `Unknown`
- [`tests/test_gallery_store.cpp:367`](../tests/test_gallery_store.cpp#L367) — `Unknown`
- [`tests/test_gallery_store.cpp:384`](../tests/test_gallery_store.cpp#L384) — `TempFile tf("fake_model.onnx");`
- [`scripts/filter_gallery.py:80`](../scripts/filter_gallery.py#L80) — `if actor_jellyfin_id(a) in cast_ids]`
- [`scripts/make_gallery.py:181`](../scripts/make_gallery.py#L181) — `Unknown`
- [`scripts/make_jellyfin_gallery.py:448`](../scripts/make_jellyfin_gallery.py#L448) — `Unknown`
- [`scripts/make_jellyfin_gallery.py:456`](../scripts/make_jellyfin_gallery.py#L456) — `Unknown`
- [`scripts/movienet_eval.py:65`](../scripts/movienet_eval.py#L65) — `with open(args.gt) as f:`
- [`scripts/optimizer/fetch_missing_actors.py:62`](../scripts/optimizer/fetch_missing_actors.py#L62) — `def fetch(missing_path, out_path, token, build_dir, models_dir, arcface,`
- [`scripts/optimizer/fetch_missing_actors.py:109`](../scripts/optimizer/fetch_missing_actors.py#L109) — `def merge(base_path, add_path, out_path):`
- [`scripts/optimizer/fetch_missing_actors.py:124`](../scripts/optimizer/fetch_missing_actors.py#L124) — `def merge(base_path, add_path, out_path):`
- [`scripts/optimizer/optimize.py:186`](../scripts/optimizer/optimize.py#L186) — `Unknown`
- [`scripts/optimizer/optimize.py:202`](../scripts/optimizer/optimize.py#L202) — `if not Path(f["dump"]).exists():`
- [`scripts/optimizer/reembed_gallery.py:62`](../scripts/optimizer/reembed_gallery.py#L62) — `for i, a in enumerate(ref["actors"], 1):`
- [`scripts/optimizer/replay.py:144`](../scripts/optimizer/replay.py#L144) — `Unknown`
- [`scripts/optimizer/replay.py:337`](../scripts/optimizer/replay.py#L337) — `Unknown`
- [`scripts/sae_embed_loader.py:23`](../scripts/sae_embed_loader.py#L23) — `def resolve_arcface(models_dir: str, arcface: str \| None = None) -> str:`
- [`scripts/sae_gallery.py:171`](../scripts/sae_gallery.py#L171) — `if not _stamp_empty(embedder):`
- [`scripts/sae_gallery.py:200`](../scripts/sae_gallery.py#L200) — `for a in range(len(offset)):`
- [`scripts/sae_stamp.py:3`](../scripts/sae_stamp.py#L3) — `Unknown`
- [`scripts/stamp_gallery.py:4`](../scripts/stamp_gallery.py#L4) — `Unknown`

### GR-005

**Locations:** 1

- [`src/gallery/gallery_store.hpp:15`](../src/gallery/gallery_store.hpp#L15) — `Unknown`

### IR-001

**Locations:** 2

- [`src/kpn_bindings.cpp:261`](../src/kpn_bindings.cpp#L261) — `Unknown`
- [`src/nodes/result_sink_node.hpp:2`](../src/nodes/result_sink_node.hpp#L2) — `Unknown`

### IR-002

**Locations:** 6

- [`src/config.hpp:20`](../src/config.hpp#L20) — `struct Config`
- [`src/main.cpp:343`](../src/main.cpp#L343) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`
- [`src/nodes/result_sink_node.hpp:50`](../src/nodes/result_sink_node.hpp#L50) — `static constexpr std::string_view label() { return "result_sink"; }`
- [`src/nodes/result_sink_node.hpp:123`](../src/nodes/result_sink_node.hpp#L123) — `void write_output()`
- [`src/nodes/result_sink_node.hpp:164`](../src/nodes/result_sink_node.hpp#L164) — `struct ActorMeta { std::string name, imdb_id, tmdb_id, jellyfin_id; };`
- [`src/track_registry.hpp:47`](../src/track_registry.hpp#L47) — `Unknown`

### IR-003

**Locations:** 2

- [`src/kpn_bindings.cpp:406`](../src/kpn_bindings.cpp#L406) — `Unknown`
- [`src/main.cpp:343`](../src/main.cpp#L343) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`

### IR-004

**Locations:** 18

- [`src/audio_bindings.cpp:3`](../src/audio_bindings.cpp#L3) — `Unknown`
- [`src/audio_signature.cpp:3`](../src/audio_signature.cpp#L3) — `Unknown`
- [`src/audio_signature.cpp:280`](../src/audio_signature.cpp#L280) — `std::vector<std::uint8_t> pack_frames(const std::vector<float>& mono)`
- [`src/audio_signature.cpp:335`](../src/audio_signature.cpp#L335) — `std::optional<std::string> signature_from_mono(const std::vector<float>& mono)`
- [`src/audio_signature.cpp:342`](../src/audio_signature.cpp#L342) — `std::optional<std::vector<float>> decode_centre_window(const std::string& path)`
- [`src/audio_signature.cpp:436`](../src/audio_signature.cpp#L436) — `std::optional<std::string> compute_signature(const std::string& path)`
- [`src/audio_signature.hpp:4`](../src/audio_signature.hpp#L4) — `Unknown`
- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:129`](../tests/test_audio_signature.cpp#L129) — `Unknown`
- [`tests/test_audio_signature.cpp:151`](../tests/test_audio_signature.cpp#L151) — `Unknown`
- [`tests/test_audio_signature.cpp:167`](../tests/test_audio_signature.cpp#L167) — `Unknown`
- [`tests/test_audio_signature.cpp:236`](../tests/test_audio_signature.cpp#L236) — `Unknown`
- [`tests/test_audio_signature.cpp:263`](../tests/test_audio_signature.cpp#L263) — `TempWav w("centred300");`
- [`tests/test_audio_signature.cpp:301`](../tests/test_audio_signature.cpp#L301) — `Unknown`
- [`tests/test_audio_signature.cpp:314`](../tests/test_audio_signature.cpp#L314) — `kNumBands * std::log10(1000.0 / kBandLoHz) / std::log10(kBandHiHz / kBandLoHz)));`
- [`tests/test_audio_signature.cpp:328`](../tests/test_audio_signature.cpp#L328) — `std::vector<float> a(kWindowSamples / 50);`
- [`tests/test_audio_signature.cpp:344`](../tests/test_audio_signature.cpp#L344) — `return base64_encode(reinterpret_cast<const std::uint8_t*>(s.data()), s.size());`
- [`scripts/validation/test_audio_offset.py:5`](../scripts/validation/test_audio_offset.py#L5) — `The golden vector (IR-005) proves the *arithmetic* is identical in both`

### IR-005

**Locations:** 6

- [`src/audio_bindings.cpp:3`](../src/audio_bindings.cpp#L3) — `Unknown`
- [`src/audio_signature.cpp:436`](../src/audio_signature.cpp#L436) — `std::optional<std::string> compute_signature(const std::string& path)`
- [`src/audio_signature.hpp:4`](../src/audio_signature.hpp#L4) — `Unknown`
- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:129`](../tests/test_audio_signature.cpp#L129) — `Unknown`
- [`tests/test_audio_signature.cpp:138`](../tests/test_audio_signature.cpp#L138) — `Unknown`

### IR-006

**Locations:** 1

- [`scripts/run_from_jellyfin.py:4`](../scripts/run_from_jellyfin.py#L4) — `Unknown`

### IR-007

**Locations:** 8

- [`src/audio_signature.cpp:3`](../src/audio_signature.cpp#L3) — `Unknown`
- [`src/audio_signature.cpp:342`](../src/audio_signature.cpp#L342) — `std::optional<std::vector<float>> decode_centre_window(const std::string& path)`
- [`src/audio_signature.cpp:436`](../src/audio_signature.cpp#L436) — `std::optional<std::string> compute_signature(const std::string& path)`
- [`src/audio_signature.hpp:4`](../src/audio_signature.hpp#L4) — `Unknown`
- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:201`](../tests/test_audio_signature.cpp#L201) — `TempWav w("short30");`
- [`tests/test_audio_signature.cpp:219`](../tests/test_audio_signature.cpp#L219) — `TempWav w("exact120");`
- [`tests/test_audio_signature.cpp:229`](../tests/test_audio_signature.cpp#L229) — `TempWav w("exact120");`

### IR-008

**Locations:** 7

- [`src/audio_signature.cpp:3`](../src/audio_signature.cpp#L3) — `Unknown`
- [`src/audio_signature.cpp:335`](../src/audio_signature.cpp#L335) — `std::optional<std::string> signature_from_mono(const std::vector<float>& mono)`
- [`src/audio_signature.cpp:436`](../src/audio_signature.cpp#L436) — `std::optional<std::string> compute_signature(const std::string& path)`
- [`src/audio_signature.hpp:4`](../src/audio_signature.hpp#L4) — `Unknown`
- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:129`](../tests/test_audio_signature.cpp#L129) — `Unknown`
- [`tests/test_audio_signature.cpp:167`](../tests/test_audio_signature.cpp#L167) — `Unknown`

### IT-001

**Locations:** 1

- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`

### PR-002

**Locations:** 22

- [`src/kpn_bindings.cpp:6`](../src/kpn_bindings.cpp#L6) — `Unknown`
- [`src/kpn_bindings.cpp:70`](../src/kpn_bindings.cpp#L70) — `namespace nb = nanobind;`
- [`src/kpn_bindings.cpp:261`](../src/kpn_bindings.cpp#L261) — `Unknown`
- [`src/kpn_bindings.cpp:322`](../src/kpn_bindings.cpp#L322) — `Unknown`
- [`src/kpn_bindings.cpp:432`](../src/kpn_bindings.cpp#L432) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:2`](../src/nodes/embedding_dump_node.hpp#L2) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:18`](../src/nodes/embedding_dump_node.hpp#L18) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:133`](../src/nodes/embedding_dump_node.hpp#L133) — `static constexpr std::string_view label() { return "embedding_dump"; }`
- [`src/nodes/embedding_dump_node.hpp:159`](../src/nodes/embedding_dump_node.hpp#L159) — `void operator()(EmbeddedSceneFrame ef)`
- [`src/nodes/embedding_dump_node.hpp:261`](../src/nodes/embedding_dump_node.hpp#L261) — `H5::H5File file(path_, H5F_ACC_TRUNC);`
- [`scripts/optimizer/replay.py:5`](../scripts/optimizer/replay.py#L5) — `Reads an embedding dump (scripts/optimizer/SCHEMA.md), feeds each frame as an`
- [`scripts/optimizer/replay.py:120`](../scripts/optimizer/replay.py#L120) — `ending at the last sighting (AR-013) -- and are byte-for-byte the same`
- [`scripts/optimizer/replay.py:174`](../scripts/optimizer/replay.py#L174) — `if i < len(frames):`
- [`scripts/optimizer/replay.py:194`](../scripts/optimizer/replay.py#L194) — `Unknown`
- [`scripts/optimizer/replay.py:242`](../scripts/optimizer/replay.py#L242) — `Unknown`
- [`scripts/optimizer/replay.py:268`](../scripts/optimizer/replay.py#L268) — `def write_raw_frames(truth: dict, raw_out: str) -> None:`
- [`scripts/optimizer/replay.py:316`](../scripts/optimizer/replay.py#L316) — `def main():`
- [`scripts/optimizer/second_score.py:5`](../scripts/optimizer/second_score.py#L5) — `Unknown`
- [`scripts/optimizer/test_sae_kpn.py:7`](../scripts/optimizer/test_sae_kpn.py#L7) — `Unknown`
- [`scripts/validation/ground_truth.py:24`](../scripts/validation/ground_truth.py#L24) — `Unknown`
- [`experiments/xsource/resolution_sweep.py:4`](../experiments/xsource/resolution_sweep.py#L4) — `Unknown`
- [`experiments/xsource/verify_labels.py:4`](../experiments/xsource/verify_labels.py#L4) — `Unknown`

### PR-004

**Locations:** 24

- [`src/backends/trt_backend.cpp:49`](../src/backends/trt_backend.cpp#L49) — `throw CudaError(std::string(what) + ": " + cudaGetErrorString(e));`
- [`src/benchmark.hpp:2`](../src/benchmark.hpp#L2) — `Unknown`
- [`src/benchmark.hpp:86`](../src/benchmark.hpp#L86) — `namespace sae::bench`
- [`src/benchmark.hpp:107`](../src/benchmark.hpp#L107) — `struct ChannelOccupancy`
- [`src/benchmark.hpp:141`](../src/benchmark.hpp#L141) — `struct NodeCost`
- [`src/benchmark.hpp:176`](../src/benchmark.hpp#L176) — `Unknown`
- [`src/benchmark.hpp:185`](../src/benchmark.hpp#L185) — `Unknown`
- [`src/benchmark.hpp:267`](../src/benchmark.hpp#L267) — `inline std::string verdict(const std::vector<NodeCost>& costs)`
- [`src/benchmark.hpp:315`](../src/benchmark.hpp#L315) — `class BenchmarkRecorder`
- [`src/benchmark.hpp:384`](../src/benchmark.hpp#L384) — `return attribute_cost(final_.nodes, channels(), final_.elapsed_s);`
- [`src/benchmark.hpp:465`](../src/benchmark.hpp#L465) — `void print(std::ostream& os, double film_sec) const`
- [`src/benchmark.hpp:472`](../src/benchmark.hpp#L472) — `void print(std::ostream& os, double film_sec) const`
- [`src/benchmark.hpp:522`](../src/benchmark.hpp#L522) — `else if (c.in_fill_pct > 50.0)`
- [`src/config.hpp:35`](../src/config.hpp#L35) — `Unknown`
- [`src/kpn_bindings.cpp:322`](../src/kpn_bindings.cpp#L322) — `Unknown`
- [`src/main.cpp:3`](../src/main.cpp#L3) — `Unknown`
- [`src/main.cpp:172`](../src/main.cpp#L172) — `static std::shared_ptr<SceneBoundaries> scene_stats;`
- [`src/main.cpp:265`](../src/main.cpp#L265) — `int main(int argc, char** argv)`
- [`src/main.cpp:351`](../src/main.cpp#L351) — `Unknown`
- [`src/main.cpp:425`](../src/main.cpp#L425) — `std::lock_guard<std::mutex> lk(event_mtx);`
- [`src/main.cpp:451`](../src/main.cpp#L451) — `Unknown`
- [`src/main.cpp:464`](../src/main.cpp#L464) — `Unknown`
- [`src/scene_preview.cpp:147`](../src/scene_preview.cpp#L147) — `Unknown`
- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

### SR-001

**Locations:** 79

- [`src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — `constexpr int kDim = 512;`
- [`src/backends/gemm_backend.cpp:80`](../src/backends/gemm_backend.cpp#L80) — `int n_gallery() const override { return n_gallery_; }`
- [`src/backends/gemm_backend.cpp:256`](../src/backends/gemm_backend.cpp#L256) — `int n_gallery() const override { return n_gallery_; }`
- [`src/build_gallery.cpp:87`](../src/build_gallery.cpp#L87) — `Unknown`
- [`src/config.hpp:62`](../src/config.hpp#L62) — `Unknown`
- [`src/gallery/embedder_stamp.cpp:1`](../src/gallery/embedder_stamp.cpp#L1) — `Unknown`
- [`src/gallery/embedder_stamp.hpp:2`](../src/gallery/embedder_stamp.hpp#L2) — `Unknown`
- [`src/gallery/gallery_builder.cpp:45`](../src/gallery/gallery_builder.cpp#L45) — `ActorGallery build_gallery(const BuildConfig& cfg)`
- [`src/gallery/gallery_calibration.hpp:80`](../src/gallery/gallery_calibration.hpp#L80) — `struct GalleryCalibrationStats`
- [`src/gallery/gallery_calibration.hpp:145`](../src/gallery/gallery_calibration.hpp#L145) — `std::vector<bool> actor_eligible(n_actors, false);`
- [`src/gallery/gallery_calibration.hpp:307`](../src/gallery/gallery_calibration.hpp#L307) — `Unknown`
- [`src/gallery/gallery_report.hpp:2`](../src/gallery/gallery_report.hpp#L2) — `Unknown`
- [`src/gallery/gallery_report.hpp:52`](../src/gallery/gallery_report.hpp#L52) — `struct GalleryBuildAudit`
- [`src/gallery/gallery_report.hpp:73`](../src/gallery/gallery_report.hpp#L73) — `struct GalleryReport`
- [`src/gallery/gallery_report.hpp:154`](../src/gallery/gallery_report.hpp#L154) — `inline GalleryReport build_gallery_report(const ActorGallery& gallery,`
- [`src/gallery/gallery_report.hpp:295`](../src/gallery/gallery_report.hpp#L295) — `inline nlohmann::json gallery_report_to_json(const GalleryReport& r)`
- [`src/gallery/gallery_report.hpp:361`](../src/gallery/gallery_report.hpp#L361) — `inline GalleryReport gallery_report_from_json(const nlohmann::json& j)`
- [`src/gallery/gallery_report.hpp:446`](../src/gallery/gallery_report.hpp#L446) — `inline void save_gallery_report(const std::string& path, const GalleryReport& r)`
- [`src/gallery/gallery_report.hpp:454`](../src/gallery/gallery_report.hpp#L454) — `inline GalleryReport load_gallery_report(const std::string& path)`
- [`src/gallery/gallery_report.hpp:464`](../src/gallery/gallery_report.hpp#L464) — `return gallery_report_from_json(j);`
- [`src/gallery/gallery_store.cpp:82`](../src/gallery/gallery_store.cpp#L82) — `H5::StrType str(H5::PredType::C_S1, H5T_VARIABLE);`
- [`src/gallery/gallery_store.cpp:167`](../src/gallery/gallery_store.cpp#L167) — `H5::DataSpace scalar(H5S_SCALAR);`
- [`src/gallery/gallery_store.cpp:219`](../src/gallery/gallery_store.cpp#L219) — `Unknown`
- [`src/gallery/track_gallery.hpp:50`](../src/gallery/track_gallery.hpp#L50) — `struct TrackGallery`
- [`src/gallery/track_gallery.hpp:85`](../src/gallery/track_gallery.hpp#L85) — `bool enabled() const { return enabled_; }`
- [`src/gallery/track_gallery.hpp:100`](../src/gallery/track_gallery.hpp#L100) — `const float* annex_row(int i) const`
- [`src/gallery/track_gallery.hpp:380`](../src/gallery/track_gallery.hpp#L380) — `static constexpr int kEmbDim = 512;`
- [`src/inference/similarity.hpp:19`](../src/inference/similarity.hpp#L19) — `struct ISimilarityEngine`
- [`src/inference/similarity.hpp:39`](../src/inference/similarity.hpp#L39) — `virtual int n_gallery() const = 0;`
- [`src/kpn_bindings.cpp:257`](../src/kpn_bindings.cpp#L257) — `Unknown`
- [`src/kpn_bindings.cpp:359`](../src/kpn_bindings.cpp#L359) — `static std::map<std::string, std::shared_ptr<ActorGallery>> cache;`
- [`src/main.cpp:292`](../src/main.cpp#L292) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:127`](../src/nodes/embedding_dump_node.hpp#L127) — `static constexpr std::string_view label() { return "embedding_dump"; }`
- [`src/nodes/embedding_dump_node.hpp:257`](../src/nodes/embedding_dump_node.hpp#L257) — `H5::H5File file(path_, H5F_ACC_TRUNC);`
- [`src/nodes/identity_matcher_node.hpp:60`](../src/nodes/identity_matcher_node.hpp#L60) — `struct IdentityMatcherFunc`
- [`src/nodes/identity_matcher_node.hpp:233`](../src/nodes/identity_matcher_node.hpp#L233) — `std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`
- [`src/nodes/identity_matcher_node.hpp:349`](../src/nodes/identity_matcher_node.hpp#L349) — `private:`
- [`src/scene_preview.cpp:130`](../src/scene_preview.cpp#L130) — `int main(int argc, char** argv)`
- [`src/types.hpp:173`](../src/types.hpp#L173) — `struct Actor`
- [`tests/test_calibration.cpp:192`](../tests/test_calibration.cpp#L192) — `Embedding unit_axis(int slot)`
- [`tests/test_calibration.cpp:222`](../tests/test_calibration.cpp#L222) — `Unknown`
- [`tests/test_calibration.cpp:248`](../tests/test_calibration.cpp#L248) — `Unknown`
- [`tests/test_gallery_store.cpp:182`](../tests/test_gallery_store.cpp#L182) — `TempFile tf("gallery_stamped.h5");`
- [`tests/test_gallery_store.cpp:201`](../tests/test_gallery_store.cpp#L201) — `TempFile tf("gallery_stamped.h5");`
- [`tests/test_gallery_store.cpp:219`](../tests/test_gallery_store.cpp#L219) — `TempFile tf("gallery_unstamped.h5");`
- [`tests/test_gallery_store.cpp:240`](../tests/test_gallery_store.cpp#L240) — `TempFile tf("gallery_json_stamp.json");`
- [`tests/test_gallery_store.cpp:252`](../tests/test_gallery_store.cpp#L252) — `Unknown`
- [`tests/test_gallery_store.cpp:268`](../tests/test_gallery_store.cpp#L268) — `Unknown`
- [`tests/test_gallery_store.cpp:300`](../tests/test_gallery_store.cpp#L300) — `Unknown`
- [`tests/test_gallery_store.cpp:309`](../tests/test_gallery_store.cpp#L309) — `Unknown`
- [`tests/test_gallery_store.cpp:333`](../tests/test_gallery_store.cpp#L333) — `Unknown`
- [`tests/test_gallery_store.cpp:348`](../tests/test_gallery_store.cpp#L348) — `Unknown`
- [`tests/test_gallery_store.cpp:367`](../tests/test_gallery_store.cpp#L367) — `Unknown`
- [`tests/test_gallery_store.cpp:384`](../tests/test_gallery_store.cpp#L384) — `TempFile tf("fake_model.onnx");`
- [`tests/test_similarity.cpp:1`](../tests/test_similarity.cpp#L1) — `Unknown`
- [`tests/test_similarity.cpp:85`](../tests/test_similarity.cpp#L85) — `Unknown`
- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`
- [`tests/test_track_gallery.cpp:54`](../tests/test_track_gallery.cpp#L54) — `Embedding annex_view(const TrackGallery& tg, int row)`
- [`tests/test_track_gallery.cpp:364`](../tests/test_track_gallery.cpp#L364) — `TrackGallery tg(expand_cfg());`
- [`scripts/filter_gallery.py:80`](../scripts/filter_gallery.py#L80) — `if actor_jellyfin_id(a) in cast_ids]`
- [`scripts/make_gallery.py:181`](../scripts/make_gallery.py#L181) — `Unknown`
- [`scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — `Unknown`
- [`scripts/make_jellyfin_gallery.py:448`](../scripts/make_jellyfin_gallery.py#L448) — `Unknown`
- [`scripts/make_jellyfin_gallery.py:456`](../scripts/make_jellyfin_gallery.py#L456) — `Unknown`
- [`scripts/movienet_eval.py:65`](../scripts/movienet_eval.py#L65) — `with open(args.gt) as f:`
- [`scripts/optimizer/fetch_missing_actors.py:62`](../scripts/optimizer/fetch_missing_actors.py#L62) — `def fetch(missing_path, out_path, token, build_dir, models_dir, arcface,`
- [`scripts/optimizer/fetch_missing_actors.py:109`](../scripts/optimizer/fetch_missing_actors.py#L109) — `def merge(base_path, add_path, out_path):`
- [`scripts/optimizer/fetch_missing_actors.py:124`](../scripts/optimizer/fetch_missing_actors.py#L124) — `def merge(base_path, add_path, out_path):`
- [`scripts/optimizer/optimize.py:186`](../scripts/optimizer/optimize.py#L186) — `Unknown`
- [`scripts/optimizer/optimize.py:202`](../scripts/optimizer/optimize.py#L202) — `if not Path(f["dump"]).exists():`
- [`scripts/optimizer/reembed_gallery.py:62`](../scripts/optimizer/reembed_gallery.py#L62) — `for i, a in enumerate(ref["actors"], 1):`
- [`scripts/optimizer/replay.py:144`](../scripts/optimizer/replay.py#L144) — `Unknown`
- [`scripts/optimizer/replay.py:337`](../scripts/optimizer/replay.py#L337) — `Unknown`
- [`scripts/run_from_jellyfin.py:4`](../scripts/run_from_jellyfin.py#L4) — `Unknown`
- [`scripts/sae_embed_loader.py:23`](../scripts/sae_embed_loader.py#L23) — `def resolve_arcface(models_dir: str, arcface: str \| None = None) -> str:`
- [`scripts/sae_gallery.py:171`](../scripts/sae_gallery.py#L171) — `if not _stamp_empty(embedder):`
- [`scripts/sae_gallery.py:200`](../scripts/sae_gallery.py#L200) — `for a in range(len(offset)):`
- [`scripts/sae_stamp.py:3`](../scripts/sae_stamp.py#L3) — `Unknown`
- [`scripts/stamp_gallery.py:4`](../scripts/stamp_gallery.py#L4) — `Unknown`

### SR-002

**Locations:** 75

- [`src/config.hpp:52`](../src/config.hpp#L52) — `Unknown`
- [`src/config.hpp:108`](../src/config.hpp#L108) — `Unknown`
- [`src/config.hpp:138`](../src/config.hpp#L138) — `Unknown`
- [`src/config.hpp:160`](../src/config.hpp#L160) — `Unknown`
- [`src/config.hpp:181`](../src/config.hpp#L181) — `Unknown`
- [`src/config.hpp:210`](../src/config.hpp#L210) — `Unknown`
- [`src/evidence_discount.hpp:2`](../src/evidence_discount.hpp#L2) — `Unknown`
- [`src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — `Unknown`
- [`src/face_utils.hpp:147`](../src/face_utils.hpp#L147) — `Unknown`
- [`src/gallery/gallery_calibration.hpp:2`](../src/gallery/gallery_calibration.hpp#L2) — `Unknown`
- [`src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — `float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [`src/kpn_bindings.cpp:406`](../src/kpn_bindings.cpp#L406) — `Unknown`
- [`src/main.cpp:106`](../src/main.cpp#L106) — `static constexpr std::size_t kSceneInputDepth = 128;`
- [`src/main.cpp:111`](../src/main.cpp#L111) — `static constexpr std::size_t kSceneInputDepth = 128;`
- [`src/main.cpp:132`](../src/main.cpp#L132) — `static constexpr double kSceneJoinSafety = 2.0;`
- [`src/main.cpp:154`](../src/main.cpp#L154) — `static std::size_t scene_join_depth(float sample_fps)`
- [`src/main.cpp:317`](../src/main.cpp#L317) — `Unknown`
- [`src/main.cpp:325`](../src/main.cpp#L325) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`
- [`src/main.cpp:343`](../src/main.cpp#L343) — `reg_cfg, EvidenceDiscounter(same_person, disc_cfg));`
- [`src/main.cpp:494`](../src/main.cpp#L494) — `std::ofstream bf(cfg.benchmark_path);`
- [`src/main.cpp:504`](../src/main.cpp#L504) — `Unknown`
- [`src/main.cpp:519`](../src/main.cpp#L519) — `Unknown`
- [`src/main.cpp:613`](../src/main.cpp#L613) — `return run_net(std::move(net));`
- [`src/main.cpp:645`](../src/main.cpp#L645) — `Unknown`
- [`src/nodes/camera_position_change_detector_node.hpp:30`](../src/nodes/camera_position_change_detector_node.hpp#L30) — `struct CameraPositionChangeDetectorFunc`
- [`src/nodes/embedder_node.hpp:21`](../src/nodes/embedder_node.hpp#L21) — `struct EmbedderFunc`
- [`src/nodes/embedding_dump_node.hpp:181`](../src/nodes/embedding_dump_node.hpp#L181) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:296`](../src/nodes/embedding_dump_node.hpp#L296) — `Unknown`
- [`src/nodes/face_aligner_node.hpp:8`](../src/nodes/face_aligner_node.hpp#L8) — `Unknown`
- [`src/nodes/face_detector_node.hpp:2`](../src/nodes/face_detector_node.hpp#L2) — `Unknown`
- [`src/nodes/face_detector_node.hpp:26`](../src/nodes/face_detector_node.hpp#L26) — `explicit FaceDetectorFunc(const Config& cfg)`
- [`src/nodes/face_detector_node.hpp:64`](../src/nodes/face_detector_node.hpp#L64) — `private:`
- [`src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — `Unknown`
- [`src/nodes/frame_annotation_node.hpp:2`](../src/nodes/frame_annotation_node.hpp#L2) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:29`](../src/nodes/identity_matcher_node.hpp#L29) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:109`](../src/nodes/identity_matcher_node.hpp#L109) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:143`](../src/nodes/identity_matcher_node.hpp#L143) — `const GalleryCalibration& calibration() const { return cal_; }`
- [`src/nodes/identity_matcher_node.hpp:151`](../src/nodes/identity_matcher_node.hpp#L151) — `const GalleryCalibration& calibration() const { return cal_; }`
- [`src/nodes/identity_matcher_node.hpp:173`](../src/nodes/identity_matcher_node.hpp#L173) — `MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [`src/nodes/identity_matcher_node.hpp:213`](../src/nodes/identity_matcher_node.hpp#L213) — `std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`
- [`src/nodes/identity_matcher_node.hpp:271`](../src/nodes/identity_matcher_node.hpp#L271) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:306`](../src/nodes/identity_matcher_node.hpp#L306) — `Unknown`
- [`src/nodes/result_sink_node.hpp:50`](../src/nodes/result_sink_node.hpp#L50) — `static constexpr std::string_view label() { return "result_sink"; }`
- [`src/nodes/result_sink_node.hpp:64`](../src/nodes/result_sink_node.hpp#L64) — `void set_pre_write_hook(std::function<void(double)> fn) { pre_write_ = std::move(fn); }`
- [`src/nodes/result_sink_node.hpp:164`](../src/nodes/result_sink_node.hpp#L164) — `struct ActorMeta { std::string name, imdb_id, tmdb_id, jellyfin_id; };`
- [`src/nodes/scene_boundary_annotator_node.hpp:2`](../src/nodes/scene_boundary_annotator_node.hpp#L2) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:38`](../src/nodes/scene_detector_node.hpp#L38) — `static constexpr std::string_view label() { return "scene_detector"; }`
- [`src/nodes/scene_detector_node.hpp:72`](../src/nodes/scene_detector_node.hpp#L72) — `void operator()(Frame f)`
- [`src/nodes/scene_detector_node.hpp:95`](../src/nodes/scene_detector_node.hpp#L95) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:137`](../src/nodes/scene_detector_node.hpp#L137) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:191`](../src/nodes/scene_detector_node.hpp#L191) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:196`](../src/nodes/scene_detector_node.hpp#L196) — `Unknown`
- [`src/nodes/scene_detector_node.hpp:232`](../src/nodes/scene_detector_node.hpp#L232) — `void write_output()`
- [`src/scene_boundaries.hpp:2`](../src/scene_boundaries.hpp#L2) — `Unknown`
- [`src/scene_boundaries.hpp:30`](../src/scene_boundaries.hpp#L30) — `public:`
- [`src/scene_preview.cpp:147`](../src/scene_preview.cpp#L147) — `Unknown`
- [`src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — `Unknown`
- [`src/track_registry.hpp:47`](../src/track_registry.hpp#L47) — `Unknown`
- [`src/track_registry.hpp:145`](../src/track_registry.hpp#L145) — `public:`
- [`src/track_registry.hpp:191`](../src/track_registry.hpp#L191) — `void tick(double now) { std::lock_guard g(mu_); tick_locked(now); }`
- [`src/track_registry.hpp:222`](../src/track_registry.hpp#L222) — `std::lock_guard g(mu_);`
- [`src/types.hpp:62`](../src/types.hpp#L62) — `struct DetectedFace`
- [`src/types.hpp:189`](../src/types.hpp#L189) — `Unknown`
- [`tests/test_calibration.cpp:1`](../tests/test_calibration.cpp#L1) — `Unknown`
- [`tests/test_channel_bytes.cpp:3`](../tests/test_channel_bytes.cpp#L3) — `Unknown`
- [`tests/test_embedding_dump.cpp:1`](../tests/test_embedding_dump.cpp#L1) — `Unknown`
- [`tests/test_face_detector_node.cpp:3`](../tests/test_face_detector_node.cpp#L3) — `Unknown`
- [`tests/test_face_tracker.cpp:1`](../tests/test_face_tracker.cpp#L1) — `Unknown`
- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`
- [`tests/test_scene_detector_node.cpp:4`](../tests/test_scene_detector_node.cpp#L4) — `Unknown`
- [`tests/test_scene_detector_node.cpp:93`](../tests/test_scene_detector_node.cpp#L93) — `Unknown`
- [`tests/test_track_registry.cpp:376`](../tests/test_track_registry.cpp#L376) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`
- [`tests/test_track_registry.cpp:417`](../tests/test_track_registry.cpp#L417) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`
- [`scripts/ci/check_raw_cosine.py:4`](../scripts/ci/check_raw_cosine.py#L4) — `Unknown`
- [`scripts/optimizer/replay.py:70`](../scripts/optimizer/replay.py#L70) — `for i in range(len(ts)):`

### SR-003

**Locations:** 9

- [`src/audio_bindings.cpp:3`](../src/audio_bindings.cpp#L3) — `Unknown`
- [`src/audio_signature.cpp:3`](../src/audio_signature.cpp#L3) — `Unknown`
- [`src/audio_signature.hpp:4`](../src/audio_signature.hpp#L4) — `Unknown`
- [`src/config.hpp:20`](../src/config.hpp#L20) — `struct Config`
- [`src/kpn_bindings.cpp:261`](../src/kpn_bindings.cpp#L261) — `Unknown`
- [`src/nodes/result_sink_node.hpp:2`](../src/nodes/result_sink_node.hpp#L2) — `Unknown`
- [`src/nodes/result_sink_node.hpp:50`](../src/nodes/result_sink_node.hpp#L50) — `static constexpr std::string_view label() { return "result_sink"; }`
- [`src/nodes/result_sink_node.hpp:123`](../src/nodes/result_sink_node.hpp#L123) — `void write_output()`
- [`src/track_registry.hpp:47`](../src/track_registry.hpp#L47) — `Unknown`

### SR-005

**Locations:** 15

- [`src/config.hpp:245`](../src/config.hpp#L245) — `Unknown`
- [`src/gallery/gallery_store.hpp:15`](../src/gallery/gallery_store.hpp#L15) — `Unknown`
- [`src/gallery/track_gallery.hpp:136`](../src/gallery/track_gallery.hpp#L136) — `Unknown`
- [`src/gallery/track_gallery.hpp:161`](../src/gallery/track_gallery.hpp#L161) — `Unknown`
- [`src/gallery/track_gallery.hpp:183`](../src/gallery/track_gallery.hpp#L183) — `void set_owner(int track_id, int actor_idx)`
- [`src/gallery/track_gallery.hpp:193`](../src/gallery/track_gallery.hpp#L193) — `void set_owner(int track_id, int actor_idx)`
- [`src/gallery/track_gallery.hpp:233`](../src/gallery/track_gallery.hpp#L233) — `struct TrackState`
- [`src/gallery/track_gallery.hpp:331`](../src/gallery/track_gallery.hpp#L331) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:136`](../src/nodes/identity_matcher_node.hpp#L136) — `std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [`src/nodes/identity_matcher_node.hpp:194`](../src/nodes/identity_matcher_node.hpp#L194) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:316`](../src/nodes/identity_matcher_node.hpp#L316) — `Unknown`
- [`src/nodes/identity_matcher_node.hpp:335`](../src/nodes/identity_matcher_node.hpp#L335) — `Unknown`
- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`
- [`tests/test_track_gallery.cpp:414`](../tests/test_track_gallery.cpp#L414) — `TrackGallery tg(expand_cfg());`
- [`scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — `Unknown`

### UT-001

**Locations:** 3

- [`tests/test_track_registry.cpp:3`](../tests/test_track_registry.cpp#L3) — `Unknown`
- [`tests/test_track_registry.cpp:376`](../tests/test_track_registry.cpp#L376) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`
- [`tests/test_track_registry.cpp:417`](../tests/test_track_registry.cpp#L417) — `TrackRegistry reg(cfg(/*extinction=*/5.0), disc());`

### UT-002

**Locations:** 1

- [`tests/test_face_detector_node.cpp:3`](../tests/test_face_detector_node.cpp#L3) — `Unknown`

### UT-003

**Locations:** 2

- [`tests/test_scene_detector_node.cpp:4`](../tests/test_scene_detector_node.cpp#L4) — `Unknown`
- [`tests/test_scene_detector_node.cpp:93`](../tests/test_scene_detector_node.cpp#L93) — `Unknown`

### UT-004

**Locations:** 2

- [`tests/test_similarity.cpp:1`](../tests/test_similarity.cpp#L1) — `Unknown`
- [`tests/test_similarity.cpp:85`](../tests/test_similarity.cpp#L85) — `Unknown`

### UT-005

**Locations:** 3

- [`tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — `Unknown`
- [`tests/test_track_gallery.cpp:364`](../tests/test_track_gallery.cpp#L364) — `TrackGallery tg(expand_cfg());`
- [`tests/test_track_gallery.cpp:414`](../tests/test_track_gallery.cpp#L414) — `TrackGallery tg(expand_cfg());`

### UT-101

**Locations:** 5

- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:129`](../tests/test_audio_signature.cpp#L129) — `Unknown`
- [`tests/test_audio_signature.cpp:138`](../tests/test_audio_signature.cpp#L138) — `Unknown`
- [`tests/test_audio_signature.cpp:151`](../tests/test_audio_signature.cpp#L151) — `Unknown`
- [`tests/test_audio_signature.cpp:167`](../tests/test_audio_signature.cpp#L167) — `Unknown`

### UT-102

**Locations:** 5

- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:201`](../tests/test_audio_signature.cpp#L201) — `TempWav w("short30");`
- [`tests/test_audio_signature.cpp:219`](../tests/test_audio_signature.cpp#L219) — `TempWav w("exact120");`
- [`tests/test_audio_signature.cpp:229`](../tests/test_audio_signature.cpp#L229) — `TempWav w("exact120");`
- [`tests/test_audio_signature.cpp:236`](../tests/test_audio_signature.cpp#L236) — `Unknown`

### UT-103

**Locations:** 2

- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:263`](../tests/test_audio_signature.cpp#L263) — `TempWav w("centred300");`

### UT-104

**Locations:** 5

- [`tests/test_audio_signature.cpp:3`](../tests/test_audio_signature.cpp#L3) — `Unknown`
- [`tests/test_audio_signature.cpp:301`](../tests/test_audio_signature.cpp#L301) — `Unknown`
- [`tests/test_audio_signature.cpp:314`](../tests/test_audio_signature.cpp#L314) — `kNumBands * std::log10(1000.0 / kBandLoHz) / std::log10(kBandHiHz / kBandLoHz)));`
- [`tests/test_audio_signature.cpp:328`](../tests/test_audio_signature.cpp#L328) — `std::vector<float> a(kWindowSamples / 50);`
- [`tests/test_audio_signature.cpp:344`](../tests/test_audio_signature.cpp#L344) — `return base64_encode(reinterpret_cast<const std::uint8_t*>(s.data()), s.size());`

### UT-105

**Locations:** 1

- [`scripts/validation/test_audio_offset.py:5`](../scripts/validation/test_audio_offset.py#L5) — `The golden vector (IR-005) proves the *arithmetic* is identical in both`

### UT-106

**Locations:** 1

- [`scripts/validation/test_audio_offset.py:5`](../scripts/validation/test_audio_offset.py#L5) — `The golden vector (IR-005) proves the *arithmetic* is identical in both`

### UT-107

**Locations:** 1

- [`scripts/validation/test_audio_offset.py:5`](../scripts/validation/test_audio_offset.py#L5) — `The golden vector (IR-005) proves the *arithmetic* is identical in both`

### UT-108

**Locations:** 1

- [`scripts/validation/test_audio_offset.py:5`](../scripts/validation/test_audio_offset.py#L5) — `The golden vector (IR-005) proves the *arithmetic* is identical in both`

### UT-120

**Locations:** 1

- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

### UT-121

**Locations:** 1

- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

### UT-122

**Locations:** 1

- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

### UT-123

**Locations:** 1

- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

### UT-124

**Locations:** 1

- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

### UT-130

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-131

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-132

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-133

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-134

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-135

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-136

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-137

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-138

**Locations:** 1

- [`tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — `Unknown`

### UT-139

**Locations:** 1

- [`tests/test_embedding_dump.cpp:1`](../tests/test_embedding_dump.cpp#L1) — `Unknown`

### UT-140

**Locations:** 1

- [`tests/test_embedding_dump.cpp:1`](../tests/test_embedding_dump.cpp#L1) — `Unknown`

### UT-141

**Locations:** 1

- [`tests/test_embedding_dump.cpp:1`](../tests/test_embedding_dump.cpp#L1) — `Unknown`

### VR-001

**Locations:** 3

- [`src/nodes/embedding_dump_node.hpp:2`](../src/nodes/embedding_dump_node.hpp#L2) — `Unknown`
- [`tests/test_embedding_dump.cpp:1`](../tests/test_embedding_dump.cpp#L1) — `Unknown`
- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`

### VR-002

**Locations:** 6

- [`src/kpn_bindings.cpp:6`](../src/kpn_bindings.cpp#L6) — `Unknown`
- [`src/kpn_bindings.cpp:322`](../src/kpn_bindings.cpp#L322) — `Unknown`
- [`tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — `Unknown`
- [`scripts/optimizer/replay.py:5`](../scripts/optimizer/replay.py#L5) — `Reads an embedding dump (scripts/optimizer/SCHEMA.md), feeds each frame as an`
- [`scripts/optimizer/replay.py:120`](../scripts/optimizer/replay.py#L120) — `ending at the last sighting (AR-013) -- and are byte-for-byte the same`
- [`scripts/optimizer/replay.py:194`](../scripts/optimizer/replay.py#L194) — `Unknown`

### VR-003

**Locations:** 1

- [`scripts/optimizer/second_score.py:5`](../scripts/optimizer/second_score.py#L5) — `Unknown`

### VR-004

**Locations:** 1

- [`scripts/validation/ground_truth.py:24`](../scripts/validation/ground_truth.py#L24) — `Unknown`

### VR-005

**Locations:** 1

- [`scripts/validation/min_face_size.py:5`](../scripts/validation/min_face_size.py#L5) — `Unknown`

### VR-010

**Locations:** 5

- [`src/nodes/embedding_dump_node.hpp:2`](../src/nodes/embedding_dump_node.hpp#L2) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:18`](../src/nodes/embedding_dump_node.hpp#L18) — `Unknown`
- [`src/nodes/embedding_dump_node.hpp:133`](../src/nodes/embedding_dump_node.hpp#L133) — `static constexpr std::string_view label() { return "embedding_dump"; }`
- [`src/nodes/embedding_dump_node.hpp:159`](../src/nodes/embedding_dump_node.hpp#L159) — `void operator()(EmbeddedSceneFrame ef)`
- [`src/nodes/embedding_dump_node.hpp:261`](../src/nodes/embedding_dump_node.hpp#L261) — `H5::H5File file(path_, H5F_ACC_TRUNC);`

### VR-011

**Locations:** 13

- [`src/kpn_bindings.cpp:6`](../src/kpn_bindings.cpp#L6) — `Unknown`
- [`src/kpn_bindings.cpp:70`](../src/kpn_bindings.cpp#L70) — `namespace nb = nanobind;`
- [`src/kpn_bindings.cpp:261`](../src/kpn_bindings.cpp#L261) — `Unknown`
- [`src/kpn_bindings.cpp:322`](../src/kpn_bindings.cpp#L322) — `Unknown`
- [`src/kpn_bindings.cpp:432`](../src/kpn_bindings.cpp#L432) — `Unknown`
- [`scripts/optimizer/replay.py:5`](../scripts/optimizer/replay.py#L5) — `Reads an embedding dump (scripts/optimizer/SCHEMA.md), feeds each frame as an`
- [`scripts/optimizer/replay.py:120`](../scripts/optimizer/replay.py#L120) — `ending at the last sighting (AR-013) -- and are byte-for-byte the same`
- [`scripts/optimizer/replay.py:174`](../scripts/optimizer/replay.py#L174) — `if i < len(frames):`
- [`scripts/optimizer/replay.py:194`](../scripts/optimizer/replay.py#L194) — `Unknown`
- [`scripts/optimizer/replay.py:242`](../scripts/optimizer/replay.py#L242) — `Unknown`
- [`scripts/optimizer/replay.py:268`](../scripts/optimizer/replay.py#L268) — `def write_raw_frames(truth: dict, raw_out: str) -> None:`
- [`scripts/optimizer/replay.py:316`](../scripts/optimizer/replay.py#L316) — `def main():`
- [`scripts/optimizer/test_sae_kpn.py:7`](../scripts/optimizer/test_sae_kpn.py#L7) — `Unknown`

### VR-013

**Locations:** 2

- [`experiments/xsource/resolution_sweep.py:4`](../experiments/xsource/resolution_sweep.py#L4) — `Unknown`
- [`experiments/xsource/verify_labels.py:4`](../experiments/xsource/verify_labels.py#L4) — `Unknown`

### VR-014

**Locations:** 1

- [`scripts/validation/test_audio_offset.py:5`](../scripts/validation/test_audio_offset.py#L5) — `The golden vector (IR-005) proves the *arithmetic* is identical in both`

### VR-015

**Locations:** 21

- [`src/backends/trt_backend.cpp:49`](../src/backends/trt_backend.cpp#L49) — `throw CudaError(std::string(what) + ": " + cudaGetErrorString(e));`
- [`src/benchmark.hpp:2`](../src/benchmark.hpp#L2) — `Unknown`
- [`src/benchmark.hpp:86`](../src/benchmark.hpp#L86) — `namespace sae::bench`
- [`src/benchmark.hpp:107`](../src/benchmark.hpp#L107) — `struct ChannelOccupancy`
- [`src/benchmark.hpp:141`](../src/benchmark.hpp#L141) — `struct NodeCost`
- [`src/benchmark.hpp:176`](../src/benchmark.hpp#L176) — `Unknown`
- [`src/benchmark.hpp:185`](../src/benchmark.hpp#L185) — `Unknown`
- [`src/benchmark.hpp:267`](../src/benchmark.hpp#L267) — `inline std::string verdict(const std::vector<NodeCost>& costs)`
- [`src/benchmark.hpp:315`](../src/benchmark.hpp#L315) — `class BenchmarkRecorder`
- [`src/benchmark.hpp:384`](../src/benchmark.hpp#L384) — `return attribute_cost(final_.nodes, channels(), final_.elapsed_s);`
- [`src/benchmark.hpp:465`](../src/benchmark.hpp#L465) — `void print(std::ostream& os, double film_sec) const`
- [`src/benchmark.hpp:472`](../src/benchmark.hpp#L472) — `void print(std::ostream& os, double film_sec) const`
- [`src/benchmark.hpp:522`](../src/benchmark.hpp#L522) — `else if (c.in_fill_pct > 50.0)`
- [`src/config.hpp:35`](../src/config.hpp#L35) — `Unknown`
- [`src/main.cpp:172`](../src/main.cpp#L172) — `static std::shared_ptr<SceneBoundaries> scene_stats;`
- [`src/main.cpp:265`](../src/main.cpp#L265) — `int main(int argc, char** argv)`
- [`src/main.cpp:351`](../src/main.cpp#L351) — `Unknown`
- [`src/main.cpp:425`](../src/main.cpp#L425) — `std::lock_guard<std::mutex> lk(event_mtx);`
- [`src/main.cpp:451`](../src/main.cpp#L451) — `Unknown`
- [`src/main.cpp:464`](../src/main.cpp#L464) — `Unknown`
- [`tests/test_benchmark.cpp:3`](../tests/test_benchmark.cpp#L3) — `Unknown`

