Skip to main content
Continue from From a Source to Evidence-Backed Claims. Keep its BASE_URL, elephant_http and elephant_mcp helpers, source/document receipts, and the actual Cedar API entity ID. This tutorial uses the Full MCP profile for truth inspection alongside the REST ingestion calls. The first note said Cedar API depends on Cedar Storage. A second note says the API now uses Cedar Cache for reads while retaining Cedar Storage for writes. That additional value may describe coexistence rather than a contradiction. The job is to inspect the evidence and predicate semantics before deciding.

1. Add the new evidence

Keep the first note intact. Submit this as a distinct source with a distinct rendition key so both pieces of evidence remain inspectable:
Follow the lifecycle as in Part 1. Do not interpret a newly queued source as an already updated graph. Likewise, absence from a new document is not an explicit retraction of an older claim.

2. Compare claims before comparing winners

Select /mcp/full with the same principal and space:
Examples below are tool arguments, not JSON-RPC envelopes. Replace every angle-bracket placeholder with an ID or predicate returned by your server. Call search_assertions for the known component:
With the terminal helper, the same call uses your saved ENTITY_ID:
Use this pattern for each named tool below, passing its argument object to --tool-args-json. See MCP setup if you are continuing in a new shell. Compare each assertion’s value, source provenance, evidence revision, and resolution status. entity_id selects resolved subject/object links and is preferable to a broad text scan when the entity is known. Use a text query if you are investigating unresolved mentions that have no entity link yet. Questions to answer from the returned evidence:
  • Did the second note resolve Cedar API to the same entity as the first?
  • Are the storage and cache dependencies both present?
  • Does the claimed purpose of each dependency agree with the note?
  • Which predicate IDs were assigned, and are those predicates governed?
If the component was duplicated, follow the identity workflow before treating the two entity histories as one.

3. Inspect predicate semantics and truth slots

Use get_predicate with the actual predicate ID from an assertion or relationship:
Then call list_truth_slots:
The response’s data.items contains slot fields directly, plus conflict_count and has_conflict; there is no nested slot object in this list response. Inspect each item’s current_values, stale, and security envelope. A slot groups claims according to its slot type, predicate, and security context; it is not a universal winner for every statement about that entity. Inspect the actual conflict group with get_truth_slot_history, passing the returned slot id:
This tool is available on /mcp/full. Its history includes the slot, an optional conflict group, and any assertion records the handler can resolve and authorize from the claim references. For the full set of entity claims, keep using search_assertions; do not treat the history array as an exhaustive audit log.

4. Explain the result with evidence

Meerkat Recall’s LLM adjudicator can select a winner, allow coexistence, supersede a value with temporal context, or request review. When no adjudicator is configured, deterministic predicate policies provide the fallback. Unknown semantics do not justify automatically replacing one value with another. For the Cedar example, the text explicitly says the storage dependency remains. A useful answer should preserve that qualification and cite the source. If the extracted graph says the API abandoned storage, the pipeline has completed but the interpretation is wrong. Inspect the assertion and extraction guidance; do not repair that by merely changing an assertion’s status to resolved. The following are separate checks:

5. Keep security and history in the explanation

All reads are restricted to the caller’s space and authorization. Claims in different security envelopes do not share a truth-maintenance conflict group. A caller’s missing result can therefore reflect visibility rather than missing storage or a globally resolved conflict. Source revisions preserve what was observed. Truth maintenance describes which values are currently accepted. A derived Living Wiki page adds a publication layer with its own evidence and freshness checks. Publishing a wiki is a separate operation and requires its explicit service authority; ingestion alone does not promise that a new article exists.

Next steps

  • Truth slots explains slot fields and stale-state inspection.
  • MCP workflows covers evidence retrieval, identity review, and predicate governance.
  • Event streaming explains how an application follows committed changes.