knowledge-gaps
knowledge-gaps

Answer a knowledge gap, in part or in full

Changed on

Attach facts of the gap's POT that answer it, with how much of the question they cover. A partial answer leaves the gap in the queue with what is already known attached, for the next person to complete. A complete one records the answerer's claim; the state still moves only through /transitions, so the integrator can ask the question again before resolving. Refused with 409 on a resolved, dismissed or duplicate gap (reopen it first), and with 422 when a fact is not in the gap's POT.

post/knowledge-gaps/{gap_id}/answers

Request

Path parameters

gap_idstring uuid required

Request body

actorstring required

Who answered.

contributor_idstring uuid nullable

The registered contributor behind the facts, if any.

completeness'partial' | 'complete' required

partial keeps the gap open for someone else with this answer attached; complete says it answers the question (the integrator still drives the state).

fact_idsstring[] required

Facts of the gap's POT that carry the answer (a contribution, a document's facts).

notestring nullable

Response

Successful Response

gap_idstring uuid

UUIDv7 — chronologically sortable.

workspace_idstring uuid required

Owning workspace; multi-tenant isolation key.

pot_idstring uuid required

POT the question was asked against.

query_textstring required
contextstring nullable

The asker's case (where, what they see, what they tried); null when none was given. Gaps written before 0.7.24.0 have none.

requester_idstring required
domainstring required
trigger'low_confidence' | 'no_coverage' | 'manual'
trigger_scorenumber nullable
state'open' | 'routed' | 'ingested' | 'resolved' | 'expired' | 'dismissed' | 'duplicate' | 'reopened'
assigned_tostring nullable

Opaque id of the expert/DRI the integrator routed to. Core stores, never decides, this value.

resolved_cluster_idstring uuid nullable

Deprecated, always null: a hook for a Knowledge Cluster that was never built. Kept so stored items and clients keep validating.

capsule_idstring uuid nullable

Deprecated, always null in production: set only by the Capsules coverage evaluation, behind capsules_enabled (off). Marks the ORIGIN only; the trigger vocabulary is unchanged, so existing integrator payloads keep validating.

idempotency_keystring nullable
timeout_atstring date-time nullable

Deprecated, always null: no route sets it and the core never expires a gap; an SLA is the integrator's, which drives the gap to 'expired' itself.

created_atstring date-time
updated_atstring date-time
resolved_atstring date-time nullable

Changes