Skip to content

Measurement artifacts carry no provenance, so a calibration silently transplants between files #75

Description

@Railly

Measurement artifacts written during a session (ns_v3.json, energy.json, seams.json, dips.json) record their findings but not what they were measured on. No source path, no duration, no sha, no threshold used.

What it cost

A threshold calibrated on cueva-v4-limpio.wav (a file with pauses remaining) was applied to cueva-fix66-0.25.0-6m57.wav (silence pass already applied). The claim "the interior-energy floor kills 26 of 27 false positives" was true of the first file and false of the second, where it killed 6 of 30. The two files differ by 80 seconds and an entire editing pass, and nothing in the artifact said which one it came from.

The error surfaced only because a later run re-measured from scratch and got a different number.

What would prevent it

Every measurement artifact carries the source it describes:

{
  "source": { "path": "...", "durationMs": 417029, "sha256": "..." },
  "params": { "thresholdDb": -38.6, "windowMs": 30, "minDurationMs": 300 },
  "findings": [ ... ]
}

The session already writes meta.json with vcutVersion for a round, so the precedent exists. The same discipline applied to per-instrument artifacts makes a transplanted calibration visible instead of silent.

Related in spirit: #68 (a round's pre-fold EDL is overwritten, so the pass's own effect cannot be audited afterward).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions