Skip to content

Research: capture-event provenance envelope for passive memory imports #141

Description

@ajdelaguila

Source signal

Today's outreach around passive memory capture surfaced a recurring design point:

Problem

Data Olympus already supports proposed memory, evidence on proposals, status-aware retrieval, and governed promotion. What is not yet first-class is a normalized capture provenance envelope for integrations that ingest passive hooks, external transcripts, or other automated event streams.

Without that envelope, downstream integrations can blur three different things:

  • a raw captured event;
  • a candidate memory distilled from that event;
  • accepted guidance that may influence future agent behavior.

Proposed research / design

Define an optional capture provenance envelope that can be attached to proposed memories or future import APIs. Candidate fields:

  • capture_event_id
  • capture_source such as claude_code.hook, codex.transcript, external_session
  • source_session
  • source_event_hash
  • derived_memory_hash
  • raw_retention: discarded, redacted, retained
  • classification: fact, decision, preference, task_state, noise
  • privacy_scope: project, user, global
  • candidate_memory_id or target document path
  • promotion_decision_ref
  • why_durable

Acceptance criteria

  • Data Olympus can represent a proposed memory as derived from a captured event without treating that event as accepted guidance.
  • kb_list_pending and proposal review surfaces show enough provenance to answer “why did the agent remember this?”
  • The schema keeps the invariant explicit: captured event is evidence, candidate memory is proposed, accepted guidance is promoted.
  • Existing evidence fields from Research: expose authority and provenance state for retrieved and proposed knowledge #109 are reused or extended rather than duplicated.
  • Documentation includes examples for passive hook ingestion and external-session transcript ingestion.

Non-goals

  • Do not build a Claude Code hook collector in this issue.
  • Do not store raw transcripts by default.
  • Do not create a new authority vocabulary that conflicts with status / in_force.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions