context-receipts
Emit privacy-safe receipts for context selection, deferral, hydration, compaction, pruning, delegation, usage attribution, and boundary handoffs.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Emit privacy-safe receipts for context selection, deferral, hydration, compaction, pruning, delegation, usage attribution, and boundary handoffs.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Emit privacy-safe evidence attestations for agent actions, reviews, memory answers, handoffs, scores, approvals, and tool dispatches.
Emit privacy-safe receipts for context selection, deferral, hydration, compaction, pruning, delegation, usage attribution, and boundary handoffs.
Use when a task must obey a hard project policy, such as "do not generate tests for internal services", "do not call production APIs", or "do not edit generated files". Emits a privacy-safe receipt before writes and after guard checks.
Use when a task must obey a hard project policy, such as "do not generate tests for internal services", "do not call production APIs", or "do not edit generated files". Emits a privacy-safe receipt before writes and after guard checks.
基于 SOC 职业分类
| name | context-receipts |
| description | Emit privacy-safe receipts for context selection, deferral, hydration, compaction, pruning, delegation, usage attribution, and boundary handoffs. |
Use this skill when an agent workflow claims to save context by selecting, deferring, hydrating, summarizing, compacting, pruning, delegating, attributing usage, or isolating context.
The job is not to log the private content. The job is to emit a small receipt that lets a reviewer answer:
what crossed the context boundary, what stayed out, and what audit gap remains?
Never include raw prompts, raw tool schemas, raw tool arguments, raw tool results, raw skill bodies, memory bodies, secrets, customer names, or full transcripts in the receipt.
Prefer:
audit_gap field when the receipt proves routing but not semantic correctness.For MCP Tool Search, lazy tool loading, or progressive disclosure, emit enough evidence to answer these seven checks:
Minimal JSONL event names:
{"event":"mcp.tool_index.loaded","loaded_server_count":12,"loaded_tool_index_count":84,"full_schema_count":0,"suppressed_tool_count":84,"raw_schema_copied":false,"startup_token_bucket":"lt_1k"}
{"event":"mcp.tool_search.performed","query_hash":"sha256:...","query_category":"repo_search","candidate_tool_count":5,"selected_tool_id":"github.search_code","raw_query_copied":false}
{"event":"mcp.tool_definition.loaded","tool_id":"github.search_code","hydrate_reason":"selected_after_tool_search","suppressed_tool_count":83,"definition_token_bucket":"1k_2k","raw_schema_copied":false}
{"event":"mcp.tool_call.completed","tool_id":"github.search_code","args_hash":"sha256:...","result_token_bucket":"2k_4k","raw_args_copied":false,"raw_result_copied":false,"status":"ok"}
For MCP dynamic discovery, gateways, admin/Purview-style audit trails, or runtime tool catalogs, separate discovery from activation:
accepted, blocked_by_rai, blocked_by_xpia, schema_invalid, or entitlement_filtered;Minimal JSON shape:
{
"receipt_type": "pluribus.mcp_tool_surface_diff_receipt.v1",
"runtime_discovery": {
"trigger": "turn_start|admin_refresh|tool_search|manual_refresh",
"before_catalog_hash": "sha256:...",
"after_catalog_hash": "sha256:..."
},
"summary": {
"discovered_count": 3,
"activated_count": 1,
"withheld_count": 1,
"blocked_count": 1
},
"privacy": {
"raw_schemas_copied": false,
"raw_prompts_copied": false,
"raw_results_copied": false
},
"audit_gap": "proves tool-surface boundary, not semantic usefulness"
}
For GraphRAG, memory, code search, transcript review, or baseline-first workflows, separate retrieval from attention:
Minimal JSON shape:
{
"receipt_type": "pluribus.context_attention_receipt.v1",
"required_context_ids": ["ctx:auth-boundary", "ctx:migration-plan"],
"delivered_context_ids": ["ctx:auth-boundary", "ctx:migration-plan"],
"acknowledged_before_plan_ids": ["ctx:auth-boundary", "ctx:migration-plan"],
"cited_before_edit_ids": ["ctx:auth-boundary"],
"missing_context_stop": "stop_before_edit",
"privacy": {
"raw_context_copied": false,
"raw_transcript_copied": false
},
"audit_gap": "proves required context was acknowledged/cited, not that the edit is correct"
}
For skills, rules, AGENTS.md overlays, or instruction files, answer:
Minimal event names:
context.skill.registry.index.loadedcontext.skill.registry.skill.readcontext.skill.registry.skill.injectedcontext.input.loadedcontext.input.candidate_suppressedFor role-specific subagents or per-agent MCP configs, prove the policy boundary before debugging model quality:
Minimal JSONL event names:
{"event":"subagent.mcp_policy.applied","subagent_role":"testing","available_server_count":2,"available_servers_hash":"sha256:...","excluded_server_count":5,"excluded_servers_hash":"sha256:...","policy_source":"role_config","raw_server_names_copied":false}
{"event":"subagent.context_boot.evaluated","subagent_role":"testing","loaded_tool_definition_count":0,"deferred_tool_definition_count":48,"startup_token_bucket":"50k_75k","raw_schema_copied":false,"audit_gap":"proves injection boundary, not tool relevance"}
For subagents that should inherit MCP through ToolSearch, distinguish policy, declaration, and runtime filtering:
tools: declaration wildcard, explicit include, or exclusion style?ToolSearch declared and was it actually exposed in the subagent tool surface?Minimal JSONL event names:
{"event":"subagent.toolsearch.propagation.evaluated","spawn_path":"Task","tools_declaration_shape":"enumerated_include","toolsearch_declared":false,"toolsearch_exposed":false,"mcp_servers_available_bucket":"0","deferred_tool_definitions_bucket":"0","filtered_by":"frontmatter_tools_policy_or_runtime_filter","raw_tool_schemas_copied":false}
{"event":"subagent.toolsearch.matrix.completed","tested_axis":"tools_frontmatter_shape","audit_gap":"proves ToolSearch exposure, not semantic tool relevance or runtime call success"}
For semantic code search, repo RAG, or MCP tools such as Claude Context, separate "search returned" from "agent context loaded":
Minimal JSONL event names:
{"event":"code.index.snapshot.used","snapshot_id_hash":"sha256:...","codebase_path_hash":"sha256:...","indexed_chunk_count_bucket":"over_1k","raw_codebase_path_copied":false}
{"event":"code.search.performed","query_hash":"sha256:...","query_category":"auth_debug","candidate_count_bucket":"over_1k","raw_query_copied":false}
{"event":"code.search.result.returned","rank":1,"chunk_id_hash":"sha256:...","chunk_text_hash":"sha256:...","path_hash":"sha256:...","score_bucket":"high","stale":false,"raw_code_copied":false}
{"event":"context.input.loaded","kind":"retrieved_code_chunks","loaded_chunk_count":3,"suppressed_chunk_count":2,"suppression_reasons":["duplicate","stale_snapshot_chunk"],"raw_code_copied":false}
For /usage, /context, /doctor, or other context-budget breakdowns, map each displayed category to evidence that can be reviewed without exposing private content:
Minimal JSONL event names:
{"event":"context.usage.window.measured","window":"current_session","total_token_bucket":"100k_150k","raw_prompts_copied":false}
{"event":"context.usage.category.attributed","category":"mcp_server","component_hash":"sha256:...","loaded_token_bucket":"10k_25k","deferred_definition_count":42,"hydrated_definition_count":3,"raw_schema_copied":false}
{"event":"context.usage.breakdown.completed","categories":["skills","subagents","plugins","mcp_server"],"audit_gap":"proves attribution buckets, not whether each component was necessary"}
For context-cleaning, pruning, compaction, or doctor/guard tools, answer:
Minimal JSONL event names:
{"event":"context.prune.started","prescription":"balanced","trigger":"manual_dry_run","before_token_bucket":"150k_200k","raw_transcript_copied":false}
{"event":"context.prune.strategy.evaluated","strategy":"tool-output-trim","candidate_bucket":"10_25","changed_bucket":"5_10","protected_bucket":"1_5","raw_tool_output_copied":false}
{"event":"context.prune.completed","after_token_bucket":"75k_100k","backup_verified":true,"protected_summary_count":2,"raw_text_copied":false,"audit_gap":"proves pruning/protection counts, not semantic disposability"}
For failed compaction, also prove transaction safety:
Minimal JSONL event names:
{"event":"context.compaction.summary.attempted","summary_call_status":"failed_rate_limited","candidate_summary_available":false,"raw_error_copied":false}
{"event":"context.compaction.rollback.completed","swap_committed":false,"original_context_preserved":true,"deferred_tool_registry_restored":true,"system_reminder_queue_restored":true,"replayed_system_reminder_count":0}
{"event":"context.compaction.transaction.completed","status":"rolled_back","authoritative_state":"pre_compaction_context","post_tokens_recorded_as_success":false,"raw_context_copied":false}
For subagents, manager agents, or child workers, answer:
Minimal event names:
subagent.delegation.requestedsubagent.tool_output.capturedsubagent.summary.returnedparent.context_budget.evaluatedA receipt is useful if a maintainer can debug one of these failures without seeing private content:
A receipt is not enough if it only says “Tool Search enabled” or “used subagent”. It must prove the boundary behavior.