feat: add measured detection review loop
This commit is contained in:
@@ -196,6 +196,28 @@ diagnostic reference-envelope comparison are persisted in the existing
|
||||
`quality_checks.findings_json`; `parameters_json.coverage_policy` records the
|
||||
evaluation policy used for reproducibility.
|
||||
|
||||
### detection_reviews
|
||||
|
||||
- `id uuid primary key`
|
||||
- `project_id uuid references projects(id) on delete cascade`
|
||||
- `quality_check_id uuid references quality_checks(id) on delete cascade`
|
||||
- `analysis_run_id uuid nullable references analysis_runs(id) on delete set null`
|
||||
- `evidence_role text not null` (`false_positive` or `false_negative`)
|
||||
- `evidence_feature_id text not null`
|
||||
- `detection_id uuid nullable references detections(id) on delete set null`
|
||||
- `reference_feature_id uuid nullable references vector_features(id) on delete set null`
|
||||
- `decision text not null default 'unreviewed'`
|
||||
- `notes text nullable`
|
||||
- `reviewed_by text not null default 'operator'`
|
||||
- `created_at timestamptz`
|
||||
- `updated_at timestamptz`
|
||||
|
||||
The unique key is `(quality_check_id, evidence_role, evidence_feature_id)`.
|
||||
Indexes cover project, quality check, analysis run and decision. Reviews
|
||||
classify persisted QA evidence only; they do not replace or modify Detection,
|
||||
VectorFeature, QualityCheck or Metric records. Unreviewed, reference-gap,
|
||||
imagery-uncertain and QA-alignment cases are not training labels.
|
||||
|
||||
### exports
|
||||
|
||||
- `id uuid primary key`
|
||||
|
||||
Reference in New Issue
Block a user