> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rkat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Truth Slots

> How to inspect current truth, investigate assertion conflicts, and filter for stale knowledge.

A truth slot records the currently accepted value or values for a governed
claim within a security envelope. Use this guide when a graph value looks
outdated, two sources appear to disagree, or your application needs to explain
why a value is current.

The complete MCP investigation uses `/mcp/full`: `list_truth_slots` is also
available on Agent and Maintenance, but `get_truth_slot_history` is Full-only.
Keep the same principal and space throughout. Replace example IDs with actual
returned IDs. HTTP examples assume local `SKIP_AUTH` development; add a bearer
token when authentication is enabled.

## List truth slots

Query truth slots filtered by subject entity, predicate, or staleness.

<Tabs>
  <Tab title="MCP Tool">
    ```json theme={null}
    {
      "subject_entity_id": "entity:550e8400-e29b-41d4-a716-446655440000",
      "predicate_id": "works_at",
      "limit": 25
    }
    ```

    Tool: `list_truth_slots`
  </Tab>

  <Tab title="curl">
    ```bash theme={null}
    curl -s "http://localhost:3000/v1/truth-slots?limit=25"
    ```
  </Tab>
</Tabs>

MCP `list_truth_slots` returns `data.items`. Each item contains the slot fields
directly, plus `conflict_count` and `has_conflict`; the list response has no
nested `slot` field. REST returns full slots in `results`, with `total` and
`cursor`, without the MCP summary fields:

| Field | Description |
| - | - |
| `slot_key` | Key for the slot type, claim identity, and security envelope |
| `subject_entity` | The entity this truth is about |
| `predicate_id` | The predicate (e.g., `works_at`, `located_in`) |
| `current_values` | The currently accepted value(s) with claim IDs |
| `stale` | Whether the slot needs re-evaluation |
| `conflict_count` | Claim count in the associated conflict group |
| `has_conflict` | Whether an unresolved conflict exists |

## Filter for stale slots

Stale means the slot needs recomputation after its inputs changed. It does not
by itself establish that the current value is false. Set `stale_only: true` to
find slots awaiting evaluation.

<Tabs>
  <Tab title="MCP Tool">
    ```json theme={null}
    {
      "stale_only": true,
      "limit": 50
    }
    ```

    Tool: `list_truth_slots`
  </Tab>

  <Tab title="curl">
    ```bash theme={null}
    curl -s "http://localhost:3000/v1/truth-slots?stale_only=true&limit=50"
    ```
  </Tab>
</Tabs>

## Investigate conflicts

Use `get_truth_slot_history` with a returned slot ID to inspect its conflict
group and available assertion references. This response is an inspection view,
not an exhaustive immutable history of every past decision.

<Tabs>
  <Tab title="MCP Tool">
    ```json theme={null}
    {
      "id": "truth_slot:550e8400-e29b-41d4-a716-446655440000"
    }
    ```

    Tool: `get_truth_slot_history`
  </Tab>

  <Tab title="curl">
    ```bash theme={null}
    curl -s "http://localhost:3000/v1/truth-slots/$SLOT_ID/history"
    ```
  </Tab>
</Tabs>

Set `SLOT_ID` to the complete returned ID for the HTTP example.
The MCP history response contains:

| Field | Description |
| - | - |
| `slot` | The truth slot record |
| `conflict_group` | The conflict group if one exists, including all `claim_ids` |
| `assertions` | Assertion references the handler could resolve and authorize |

REST history returns `slot` and an optional `conflict_group`; it does not return the `assertions` array. All reads use the authenticated space. Add a bearer token when authentication is enabled.

## Interpret the result

First inspect the predicate's semantics with `get_predicate`. Equal values can
corroborate each other. Different values can coexist when the predicate permits
multiple values, or form a conflict when it does not. Claims in different
security envelopes are isolated and do not adjudicate against one another.

An LLM adjudicator, when configured, can corroborate, select a winner, allow
coexistence, supersede a value with validity dates, or request review. Without
an adjudicator, configured deterministic policies provide the fallback. Unknown
semantics do not justify automatically superseding a value.

| Observation | Next question |
| - | - |
| Several current values | Does the predicate allow coexistence? |
| A superseded claim | Which evidence supports the replacement and its time window? |
| `has_conflict: true` | What values actually differ, and is adjudication pending? |
| `stale: true` | Did input changes enqueue recomputation, and is the worker progressing? |
| Empty history assertions | Are the claim references graph records rather than assertion IDs, or are reads restricted? |

Use `search_assertions` with the known `entity_id` to inspect the entity's
resolved claims independently of the history helper. Follow each relevant
claim to its source before presenting a winner as fact. A confidence score is
part of the extraction or adjudication output, not an independent probability
that the claim is true.

See [Truth maintenance](/recall/concepts/truth-maintenance) for the slot model and
[Follow updates and conflicting claims](/recall/guides/putting-it-together-part2) for a
worked investigation.

## Inspect a single assertion

Drill into an individual assertion to see its evidence, resolution status, and linked entities.

<Tabs>
  <Tab title="MCP Tool">
    ```json theme={null}
    {
      "id": "assertion:550e8400-e29b-41d4-a716-446655440000"
    }
    ```

    Tool: `get_assertion`
  </Tab>
</Tabs>

<Accordion title="Advanced: pagination">
  Both `list_truth_slots` and `list_assertions` support cursor-based pagination. Pass the `cursor` value from the previous response's `next_cursor` field to fetch the next page.

  ```json theme={null}
  {
    "predicate_id": "works_at",
    "limit": 25,
    "cursor": "550e8400-e29b-41d4-a716-446655440000"
  }
  ```
</Accordion>

## Next steps

* [Ingesting data](/recall/guides/ingesting-data) -- Feed documents into the extraction pipeline
* [Building graphs](/recall/guides/building-graphs) -- Create entities and relationships manually
* [Event streaming](/recall/guides/event-streaming) -- Monitor extraction and resolution events


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.