Coelevate Documentation
API ReferenceContext Repository

List gaps

Returns the project's gaps, by id.

GET /context/v1/gaps

Returns the project's gaps, by id. A gap is a piece of recorded context debt: something an agent needed that the context did not have. It is not an asset, so it is not listed with assets. By default only open gaps are returned; state asks for the retired ones or both, and kind keeps one sort of debt.

Requires the context:read scope.

Parameters

ParameterLocationRequiredDescription
statequerynoopen (default), retired or all.
kindquerynoOnly gaps of this kind, such as missing_tool.
opened_releasequerynoOnly gaps opened under this release.
closed_releasequerynoOnly gaps closed by this release.

Responses

StatusMeaning
200The request succeeded.
401The token is missing, expired or invalid.
403The token does not carry the scope this operation requires.
404No such project, or the token belongs to a different project.
422The request was not valid: a parameter or the body failed validation.

The 200 response body:

FieldTypeRequiredDescription
gapsarray of GapResponseyesThe gaps asked for, by id.

Shapes

The named shapes used above.

GapResponse

A gap: a piece of recorded context debt, something an agent needed that the context did not have. A gap is not an asset: it has its own versions and its own change journal, is written directly and is never part of a release.

FieldTypeRequiredDescription
closed_releaseinteger or nullnoThe release that covered the gap. Empty while the gap is still open.
content_keystringyesWhat makes two reports one open debt: a digest of the kind and the detail.
detailstringyesWhat is missing and what it was needed for.
evidencestringyesThe excerpt or reasoning that surfaced it.
idstringyesThe gap's id.
kindstringyesA short label for the sort of debt: missing_tool, missing_skill, missing_knowledge or any other short label.
kitsarray of GapKitRecordyesThe kits that carry this gap.
last_changed_bystring or nullnoWho last changed the gap.
last_changed_by_kindstring or nullnoperson or automation.
last_updatedstring or nullnoWhen the gap last changed.
last_updated_bystring or nullnoWhether the last change was made by a person (human) or by an automation (ai).
metadatamap of stringyesThe gap's free-form key-value pairs.
namestring or nullnoThe gap's canonical name, projects/{project}/gaps/{id}. It is null when the id cannot be written in a canonical name.
opened_releaseinteger or nullnoThe context release the gap was opened under. Provenance only: a gap is served from live state.
origin_context_idstring or nullnoThe recorded run it was discovered in.
retiredbooleanyesWhether the gap has been closed.
tagsarray of stringyesThe gap's free-form labels.
versionintegeryesThe gap's version. It moves each time the gap is changed, retired or reverted.

GapKitRecord

A kit that carries a gap.

FieldTypeRequiredDescription
idstringyesThe kit's id.
titlestringyesThe kit's title.
versionintegeryesThe kit version that holds the gap.

Example

curl -sS "$API_URL/context/v1/gaps" \
  -H "Authorization: Bearer $TOKEN"