Expand description
Pure findings.json -> Vec<Entity>, Vec<Note>, Vec<Edge> mapper.
ingest_findings_json validates the entire input before constructing any
output record, so a malformed file never yields a partial batch. Record
identity is a content-derived UUIDv5 hash of the validated finding record
(observed_at excluded), so re-ingesting the same findings.json under
the same CodeIngestOptions reproduces the same entity, note, and edge
IDs, while a content change (severity, evidence, impact, …) produces a
new finding id rather than colliding with the prior record.
Only severity and confidence values, the evidence shape, and
failure_scenario presence are governed at ingest time — they reject
unknown/malformed values by design (ADR-085 D4 “fail closed; no silent
coercion”). Every other field (categories, standard, refs,
priority, raw audit status, impact, recommendation,
verification) is tolerated per ADR-085 Amendment 1 A1: ingest neither
rejects nor coerces them, it preserves whatever JSON value was provided
and omits the key when the field is absent. Raw status is preserved
verbatim under properties.audit_status — it has no agreed mapping to
the finding lifecycle (kind_status) yet.
Structs§
- Code
Ingest Batch - Output of a successful ingest: deterministic entity/note/edge records ready for the caller to persist through existing storage/runtime paths.
- Code
Ingest Options - Options controlling one
ingest_findings_jsoncall.
Constants§
- CODE_
INGEST_ NAMESPACE - UUIDv5 namespace for all code-pack ingest identity, derived from
Uuid::new_v5(Uuid::NAMESPACE_URL, b"https://github.com/ohdearquant/khive/adr/085/code-pack/v1").
Functions§
- ingest_
findings_ json - Map a
findings.jsondocument into deterministic KG records.