Skip to content

Export privacy-safe context receipts from traces #203

Description

@caioribeiroclw-pixel

claude-tap already captures the most valuable layer for debugging coding agents: the real request/response traffic, diffs, tool calls, token usage, and portable JSONL/HTML artifacts.

One thing I think would be useful on top of that is an optional privacy-safe context receipt export: a derived artifact that proves which context sources were present/transformed/deduped/truncated without including the raw prompts, source code, memory contents, or transcript bodies.

Why this might fit claude-tap:

  • the README positions claude-tap around inspecting exact context and sharing one portable artifact
  • raw traces are excellent locally, but harder to share in issues/PRs because they may contain system prompts, repo code, secrets, memory results, or private transcript text
  • a redacted receipt would let users say “this run loaded these context inputs / these chunks / this tool schema set” with hashes, counts, paths/URIs, and categorical metadata only

A minimal event/record could look like:

{
  "event": "context.input.loaded",
  "conversation_id": "...",
  "kind": "system_prompt|context_file|skill|tool_schema|mcp_result|session_history",
  "source": {
    "path": "AGENTS.md",
    "uri": null,
    "bytes_hash": "sha256:..."
  },
  "delivered": {
    "hash": "sha256:...",
    "estimated_chars": 1200,
    "truncated": false,
    "full_render_status": "available|unavailable_not_materialized"
  },
  "loaded_by": "claude-tap|client|mcp|hook|unknown",
  "activation": "upfront|tool_result|dynamic",
  "duplicate": {
    "dedupe_key": "...",
    "suppression_policy": "suppress_equal_dedupe_key_within_scope|keep_distinct"
  }
}

Non-goals / safety boundary:

  • no raw prompt text
  • no raw source code chunks
  • no raw MCP memory contents
  • no tool arguments/results unless the user explicitly opts into existing raw trace behavior
  • no hosted telemetry requirement; local artifact only is enough

This would complement, not replace, the current raw trace viewer: raw trace for local debugging, receipt export for safer sharing and audit.

I have a small public fixture exploring the shape here, in case useful as prior art: https://github.com/caioribeiroclw-pixel/pluribus/tree/main/examples/context-input-evidence

If this is too far from claude-tap’s scope, that is useful signal too. In that case the cleaner split may be: claude-tap continues to record raw local traces, and an external post-processor converts JSONL traces into redacted context receipts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions