026-read-side-entity-pointers

Read-side entity pointers: tell the agent, inside its recall results, that memory about a named entity exists

Lifecycle approvedImplementation pendingVerification unknownQualification unknown

Spec 022 turns a session into captured memories, but nothing on the read side tells an agent that the store already holds something about the person or project it just asked about, so the agent answers generically about facts the store knew. This spec adds entity pointers to the existing recall result: when a search asks for them, the server resolves entity names in the query by exact and normalized alias match in the searched scope, with no model call, and returns a small framed block of entity ids, kinds, counts, and last-seen times beside the evidence. The block is untrusted data under 019, bounded in size, counted inside any delivery budget, and opt-in per request. No client hook carries pointers: every client's hook output starts as "not a data position", and the MCP surface stays at seven tools.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-graph/src/pointer.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-graph/tests/pointer.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-graph/testdata/pointers/"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-api/src/pointers.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/aicortex-api/tests/pointers.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "017-entities-and-typed-edges",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-graph/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "020-http-api-and-scopes",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-api/src/search.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "020-http-api-and-scopes",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-api/src/dto.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "021-mcp-server",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-mcp/src/tools.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "021-mcp-server",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-mcp/tests/tools.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "022-client-adapters",
      "unit": {
        "kind": "file",
        "path": "clients/matrix.toml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "022-client-adapters",
      "unit": {
        "kind": "file",
        "path": "clients/README.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "022-client-adapters",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-api/tests/clients.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "025-evidence-delivery-and-token-budget",
      "unit": {
        "kind": "file",
        "path": "crates/aicortex-recall/src/delivery.rs"
      }
    }

Source headings

  1. 026: Read-side entity pointers
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 Resolution
  6. 3.2 The pointer
  7. 3.3 Delivery
  8. 3.4 The client side
  9. 4. Functional requirements
  10. 5. Acceptance criteria
  11. 6. Out of scope
  12. 7. Resolved decisions
  13. Verification

Frozen anchors

No frozen anchors declared.