Unknowns Registry (Signals)

Audience: Signals and Scanner engineers, policy authors, and operators who triage incomplete coverage. Scope: The data model, API, producers, consumers, and storage for the Unknowns Registry — the Stella Ops subsystem that turns unresolved identities and edges into first-class signals.

The Unknowns Registry captures what Stella Ops cannot yet prove and makes that uncertainty actionable, so gaps in coverage surface as triage-able signals rather than disappearing into silent false negatives.

1. Purpose

When scanners or runtime probes cannot decisively map artifacts, symbols, or package identities, the gap is recorded as an Unknown instead of being dropped. Policy and scoring then incorporate unknowns pressure to avoid silent false negatives.

2. Data model

{
  "unknown_id": "unk:sha256:<type+scope+evidence>",
  "observed_at": "2025-11-20T00:00:00Z",
  "provenance": { "source": "Scanner|Signals|SbomService|Vexer", "host": "runner-42", "scan_id": "scan:..." },
  "scope": { "artifact": { "type": "oci.image", "ref": "registry/app@sha256:..." }, "subpath": "/app/bin/libssl.so.3", "phase": "scan|runtime|build" },
  "unknown_type": "identity_gap|version_conflict|hash_mismatch|missing_edge|runtime_shadow|policy_undecidable",
  "evidence": { "raw": "dynsym missing for libssl.so.3", "signals": ["sym:memcpy", "import:SSL_free"] },
  "transitive": { "depth": 1, "parents": ["pkg:deb/openssl@3.0.2"], "children": [] },
  "confidence": { "p": 0.42, "method": "rule" },
  "exposure_hints": { "surface": ["startup"], "runtime_hits": 0 },
  "status": "open|triaged|suppressed|resolved",
  "labels": ["reachability:possible", "sbom:incomplete"]
}

3. API

The API is idempotent and additive — every write upserts and no endpoint performs a hard delete.

Payloads must include tenant bindings, and must carry CAS URIs when evidence is stored externally.

4. Producers

5. Consumers & scoring

5.1 Multi-Factor Ranking

Unknowns are ranked using a 5-factor scoring algorithm that computes a composite score from:

Based on the composite score, unknowns are assigned to triage bands:

See Unknowns Ranking Algorithm for the complete formula reference.

6. Storage & CAS

7. Integration checkpoints

8. Acceptance criteria