pluribus-context 0.3.21 → 0.3.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -3
- package/README.md +2 -2
- package/docs/community-review-packet.md +4 -2
- package/docs/context-budget-receipts.md +150 -0
- package/docs/context-input-evidence.md +397 -0
- package/docs/context-receipts-for-agent-observability.md +177 -0
- package/docs/orchestration-search-receipts.md +102 -0
- package/docs/portability-fidelity-report.md +10 -6
- package/examples/context-input-evidence/AGENTS.md +12 -0
- package/examples/context-input-evidence/agent-overlay-log.jsonl +4 -0
- package/examples/context-input-evidence/agent-overlay-otel-trace.json +548 -0
- package/examples/context-input-evidence/agent-overlay-receipt.ndjson +3 -0
- package/examples/context-input-evidence/agentgateway-progressive-disclosure-otel-trace.json +393 -0
- package/examples/context-input-evidence/agentgateway-progressive-disclosure-receipt.ndjson +4 -0
- package/examples/context-input-evidence/brain-remediation-otel-trace.json +645 -0
- package/examples/context-input-evidence/brain-remediation-receipt.ndjson +7 -0
- package/examples/context-input-evidence/claudekit-mcp-manager-otel-trace.json +417 -0
- package/examples/context-input-evidence/claudekit-mcp-manager-receipt.ndjson +5 -0
- package/examples/context-input-evidence/cli-progressive-disclosure-otel-trace.json +399 -0
- package/examples/context-input-evidence/cli-progressive-disclosure-receipt.ndjson +4 -0
- package/examples/context-input-evidence/compaction-otel-trace.json +711 -0
- package/examples/context-input-evidence/compaction-receipt.ndjson +6 -0
- package/examples/context-input-evidence/context-selection-otel-trace.json +627 -0
- package/examples/context-input-evidence/context-selection-receipt.ndjson +7 -0
- package/examples/context-input-evidence/convert-agent-overlay-log.mjs +156 -0
- package/examples/context-input-evidence/convert-agentgateway-progressive-disclosure-log.mjs +251 -0
- package/examples/context-input-evidence/convert-brain-remediation-log.mjs +241 -0
- package/examples/context-input-evidence/convert-claudekit-mcp-manager-log.mjs +253 -0
- package/examples/context-input-evidence/convert-cli-progressive-disclosure-log.mjs +251 -0
- package/examples/context-input-evidence/convert-compaction-log.mjs +224 -0
- package/examples/context-input-evidence/convert-context-selection-log.mjs +247 -0
- package/examples/context-input-evidence/convert-mcp-tool-search-log.mjs +242 -0
- package/examples/context-input-evidence/convert-memory-consolidation-log.mjs +240 -0
- package/examples/context-input-evidence/convert-memory-governance-delete-log.mjs +223 -0
- package/examples/context-input-evidence/convert-memory-log.mjs +226 -0
- package/examples/context-input-evidence/convert-memory-provenance-log.mjs +263 -0
- package/examples/context-input-evidence/convert-secret-scanning-log.mjs +233 -0
- package/examples/context-input-evidence/convert-session-log.mjs +186 -0
- package/examples/context-input-evidence/convert-skill-log.mjs +161 -0
- package/examples/context-input-evidence/convert-skill-registry-log.mjs +246 -0
- package/examples/context-input-evidence/convert-skill-routing-log.mjs +253 -0
- package/examples/context-input-evidence/convert-subagent-context-budget-log.mjs +267 -0
- package/examples/context-input-evidence/convert-subagent-delegation-log.mjs +264 -0
- package/examples/context-input-evidence/export-otel-trace.mjs +128 -0
- package/examples/context-input-evidence/generate-receipt.mjs +188 -0
- package/examples/context-input-evidence/mcp-tool-search-otel-trace.json +477 -0
- package/examples/context-input-evidence/mcp-tool-search-receipt.ndjson +5 -0
- package/examples/context-input-evidence/memory-consolidation-otel-trace.json +492 -0
- package/examples/context-input-evidence/memory-consolidation-receipt.ndjson +4 -0
- package/examples/context-input-evidence/memory-governance-delete-otel-trace.json +614 -0
- package/examples/context-input-evidence/memory-governance-delete-receipt.ndjson +5 -0
- package/examples/context-input-evidence/memory-otel-trace.json +645 -0
- package/examples/context-input-evidence/memory-provenance-otel-trace.json +711 -0
- package/examples/context-input-evidence/memory-provenance-receipt.ndjson +5 -0
- package/examples/context-input-evidence/memory-receipt.ndjson +4 -0
- package/examples/context-input-evidence/otel-trace.json +1119 -0
- package/examples/context-input-evidence/receipt.ndjson +6 -0
- package/examples/context-input-evidence/sample-agentgateway-progressive-disclosure-log.jsonl +5 -0
- package/examples/context-input-evidence/sample-brain-remediation-log.jsonl +9 -0
- package/examples/context-input-evidence/sample-claudekit-mcp-manager-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-cli-progressive-disclosure-log.jsonl +5 -0
- package/examples/context-input-evidence/sample-compaction-log.jsonl +7 -0
- package/examples/context-input-evidence/sample-context-selection-log.jsonl +7 -0
- package/examples/context-input-evidence/sample-mcp-tool-search-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-memory-consolidation-log.jsonl +5 -0
- package/examples/context-input-evidence/sample-memory-governance-delete-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-memory-provenance-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-memory-retrieval-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-secret-scanning-log.jsonl +7 -0
- package/examples/context-input-evidence/sample-session-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-skill-registry-log.jsonl +5 -0
- package/examples/context-input-evidence/sample-skill-routing-log.jsonl +7 -0
- package/examples/context-input-evidence/sample-subagent-context-budget-log.jsonl +6 -0
- package/examples/context-input-evidence/sample-subagent-delegation-log.jsonl +5 -0
- package/examples/context-input-evidence/secret-scanning-otel-trace.json +794 -0
- package/examples/context-input-evidence/secret-scanning-receipt.ndjson +6 -0
- package/examples/context-input-evidence/session-otel-trace.json +411 -0
- package/examples/context-input-evidence/session-receipt.ndjson +2 -0
- package/examples/context-input-evidence/skill-invocation-log.jsonl +4 -0
- package/examples/context-input-evidence/skill-otel-trace.json +548 -0
- package/examples/context-input-evidence/skill-receipt.ndjson +3 -0
- package/examples/context-input-evidence/skill-registry-otel-trace.json +471 -0
- package/examples/context-input-evidence/skill-registry-receipt.ndjson +5 -0
- package/examples/context-input-evidence/skill-routing-otel-trace.json +567 -0
- package/examples/context-input-evidence/skill-routing-receipt.ndjson +6 -0
- package/examples/context-input-evidence/subagent-context-budget-otel-trace.json +507 -0
- package/examples/context-input-evidence/subagent-context-budget-receipt.ndjson +5 -0
- package/examples/context-input-evidence/subagent-delegation-otel-trace.json +388 -0
- package/examples/context-input-evidence/subagent-delegation-receipt.ndjson +4 -0
- package/package.json +6 -2
- package/schemas/audit-result.schema.json +468 -43
- package/src/commands/audit.js +105 -5
- package/src/utils/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
All notable changes to Pluribus are documented here.
|
|
6
|
+
|
|
7
|
+
- Added an executable subagent delegation receipt demo proving that large child command/tool output stayed isolated and only a bounded summary crossed back into the parent context.
|
|
8
|
+
|
|
9
|
+
## 0.3.25 - 2026-05-23
|
|
10
|
+
|
|
11
|
+
- Re-aligned npm package discovery metadata so the public package description preserves core search terms (`AI context`, `rules sync`, `Claude.md`, `Claude Code`, `Cursor`, and `Copilot instructions`) while retaining the new privacy-safe context receipts positioning.
|
|
12
|
+
- Prepared the npm distribution catch-up from GitHub/local `0.3.24` to public `0.3.25`, so users reached through external PRs can install the current receipt demos and docs via `pluribus-context@latest`.
|
|
13
|
+
|
|
14
|
+
## 0.3.24 - 2026-05-22
|
|
15
|
+
|
|
16
|
+
- Added the `Context receipts for agent observability` guide, positioning privacy-safe receipts as evidence for what crossed an agent context boundary alongside OpenTelemetry spans and agent-run traces.
|
|
17
|
+
- Added executable context receipt demos for context input loading, post-hoc session-log conversion, skill/plugin invocation, AGENTS.md overlays, shared-memory retrieval, memory consolidation, governance delete/forget, self-remediating brain/doctor runs, context compaction, MCP Tool Search, and GitHub MCP secret scanning.
|
|
18
|
+
- Added OpenTelemetry-style trace fixtures that preserve hashes, counts, buckets, lifecycle state, selection/suppression decisions, and audit gaps without exporting raw prompts, secrets, tool outputs, memory bodies, transcripts, or private paths.
|
|
19
|
+
- Extended discovery smoke tracking for external context-observability, MCP, memory, skills, and directory/list feedback channels so artifact-first distribution attempts remain measurable.
|
|
20
|
+
- Updated README/docs links so users and reviewers can find context receipts from the package page and run the shipped examples from the npm tarball.
|
|
21
|
+
|
|
22
|
+
## 0.3.23 - 2026-05-19
|
|
23
|
+
|
|
24
|
+
- Extended `pluribus audit --fidelity-report` with `duplicateLoadEvidence` so reviewers can see the generated candidate, content hash, inferred selected load, and the explicit fact that runtime scanner roots/caches/plugin duplicates are not yet inspected.
|
|
25
|
+
- Added `duplicate-load-selection-not-proven` warnings and semantic markers to avoid treating multi-root skill/rule discovery as safe without a selection/suppression receipt.
|
|
26
|
+
- Updated the audit JSON schema and fidelity docs for duplicate skill/context load receipts inspired by Cursor/Claude duplicate-context reports.
|
|
27
|
+
|
|
28
|
+
## 0.3.22 - 2026-05-19
|
|
29
|
+
|
|
30
|
+
- Extended `pluribus audit --fidelity-report` with `loadEvidence` receipts so reviewers can see whether generated context is expected to enter through native file discovery or a generic agent fallback.
|
|
31
|
+
- Added explicit runtime dedupe uncertainty via `load-dedupe-not-proven` warnings and `runtime-load-dedupe-not-proven` semantic markers, making native-vs-hook-vs-manual duplication an evidence question.
|
|
32
|
+
- Updated the audit JSON schema, community review packet, README shortcut, and portability fidelity docs with `loadedBy`, `effectiveSource`, hook/session-start flags, resume behavior, and dedupe risk.
|
|
33
|
+
|
|
3
34
|
## 0.3.21 - 2026-05-19
|
|
4
35
|
|
|
5
36
|
- Extended `pluribus audit --fidelity-report` with `effectiveContext` evidence so monorepo reviewers can see that built-in targets currently prove repo-root context only, not root→subpath inheritance or path isolation.
|
|
@@ -11,9 +42,6 @@
|
|
|
11
42
|
- Added a 60-second native-vs-fallback smoke to the community review packet so directory/list reviewers can see Bob native `.bob/rules/*.md` differ from OpenClaw/AGENTS.md generic fallback.
|
|
12
43
|
- Extended `npm run review:smoke` to execute that fidelity demo against the published npm package and assert `nativeDiscoverySurface`, `genericFallback`, and `manualActivationRequired` fields.
|
|
13
44
|
|
|
14
|
-
## [Unreleased]
|
|
15
|
-
|
|
16
|
-
All notable changes to Pluribus are documented here.
|
|
17
45
|
|
|
18
46
|
## 0.3.19 — Bob native discovery target
|
|
19
47
|
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ It shows where instructions keep their semantics, where they are downgraded to a
|
|
|
14
14
|
|
|
15
15
|
It is **not** a persistent memory layer, retrieval system, agent orchestrator, or agent-merging framework. Think `CLAUDE.md`, `.cursorrules`, `copilot-instructions.md`, `AGENTS.md` — one intentional context, multiple generated outputs.
|
|
16
16
|
|
|
17
|
-
**Reviewer shortcut:** evaluating Pluribus for a list, newsletter, package roundup, or tool directory? Use the [Community Review Packet](docs/community-review-packet.md) for copy-paste directory submission fields, safety/removability notes, feedback links, and a disposable 60-second smoke test. If you only run one command, try `npx --yes pluribus-context@latest audit --json --fidelity-report` to see native discovery surfaces, generic fallbacks, manual activation requirements, and semantic differences.
|
|
17
|
+
**Reviewer shortcut:** evaluating Pluribus for a list, newsletter, package roundup, or tool directory? Use the [Community Review Packet](docs/community-review-packet.md) for copy-paste directory submission fields, safety/removability notes, feedback links, and a disposable 60-second smoke test. If you only run one command, try `npx --yes pluribus-context@latest audit --json --fidelity-report` to see native discovery surfaces, generic fallbacks, load evidence, duplicate-load selection evidence, manual activation requirements, effective context scope, and semantic differences. For the newer agent-observability wedge, start with [context-budget receipts](docs/context-budget-receipts.md): privacy-safe evidence for what MCP schemas, skills, memory, subagents, CLI help, or summaries actually crossed an agent boundary.
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
@@ -154,7 +154,7 @@ npx --yes pluribus-context@latest sync --dry-run
|
|
|
154
154
|
|
|
155
155
|
If the preview looks right, run `npx --yes pluribus-context@latest sync` to write the tool-specific files.
|
|
156
156
|
|
|
157
|
-
For a fuller walkthrough, see the [Quickstart](docs/quickstart.md). To enforce generated context files in pull requests, use the [CI audit example](docs/ci-audit-example.md); to catch drift before commits leave your machine, use the [Pre-commit Audit Hook](docs/pre-commit-audit.md). If your repo already has `CLAUDE.md`, `.cursorrules`, Copilot instructions, or `AGENTS.md`, run a [Context Drift Audit](docs/context-drift-audit.md) first, try the intentionally drifted [audit example](examples/context-drift-audit/), then follow [Migrate Existing AI Context Files](docs/migrate-existing-context.md). If you switch between Cursor, Claude Code, Copilot, and terminal agents, try the [Cursor ↔ Claude Code context handoff guide](docs/cursor-claude-context-handoff.md) and its [example source file](examples/context-handoff/pluribus.md). If you run multiple AI sessions on the same project, try the [Coordination Contract guide](docs/coordination-contract.md) and its [example source file](examples/coordination-contract/pluribus.md) to keep event-log/scratchpad protocol rules aligned without turning Pluribus into an orchestrator. If you publish AI rules, skills, or instruction bundles as "portable", use the [Portability Fidelity Report](docs/portability-fidelity-report.md) and its [example source file](examples/portability-fidelity/pluribus.md) to make compatibility claims evidence-based instead of self-attested. Before committing shared or generated AI instructions, use the [Context File Review Checklist](docs/context-file-review.md). If you're deciding between Pluribus and a one-way rules converter, see [When to use Pluribus](docs/when-to-use-pluribus.md). If you are debugging "context drift" after compaction or long sessions, start with the [Context Drift Taxonomy](docs/context-drift-taxonomy.md) to separate file drift from runtime precedence drift. If you use MCP memory or knowledge-graph tools, try the [MCP memory handoff demo](docs/memory-mcp-handoff.md) to keep recall/store protocols aligned across AI coding tools without turning Pluribus into a memory server. If you are reviewing Pluribus for a list, newsletter, or tool directory, use the [Community Review Packet](docs/community-review-packet.md) for directory submission fields, a one-line description, safety notes, and a disposable 60-second smoke test. Maintainers can track package/repo discovery with the [Discovery Smoke Checks](docs/discovery-smoke.md).
|
|
157
|
+
For a fuller walkthrough, see the [Quickstart](docs/quickstart.md). To enforce generated context files in pull requests, use the [CI audit example](docs/ci-audit-example.md); to catch drift before commits leave your machine, use the [Pre-commit Audit Hook](docs/pre-commit-audit.md). If your repo already has `CLAUDE.md`, `.cursorrules`, Copilot instructions, or `AGENTS.md`, run a [Context Drift Audit](docs/context-drift-audit.md) first, try the intentionally drifted [audit example](examples/context-drift-audit/), then follow [Migrate Existing AI Context Files](docs/migrate-existing-context.md). If you switch between Cursor, Claude Code, Copilot, and terminal agents, try the [Cursor ↔ Claude Code context handoff guide](docs/cursor-claude-context-handoff.md) and its [example source file](examples/context-handoff/pluribus.md). If you run multiple AI sessions on the same project, try the [Coordination Contract guide](docs/coordination-contract.md) and its [example source file](examples/coordination-contract/pluribus.md) to keep event-log/scratchpad protocol rules aligned without turning Pluribus into an orchestrator. If you evaluate code-search, MCP retrieval, RAG-over-notes, or agent memory tools, use the [Orchestration-layer Search Receipts](docs/orchestration-search-receipts.md) sketch to measure retrieved context from the harness layer without asking retrieval tools to inspect whole transcripts. If you are adding agent observability, traces, or OpenTelemetry-style events, start with [Context Receipts for Agent Observability](docs/context-receipts-for-agent-observability.md), then use the [Context Input Evidence](docs/context-input-evidence.md) sketch and its [executable demos](examples/context-input-evidence/) to separate source bytes, canonical text, delivered hashes, post-hoc session-log receipts, skill/plugin invocation receipts, shared-memory retrieval receipts, self-remediating brain/doctor receipts, and OpenTelemetry-style SpanEvents. If you publish AI rules, skills, or instruction bundles as "portable", use the [Portability Fidelity Report](docs/portability-fidelity-report.md) and its [example source file](examples/portability-fidelity/pluribus.md) to make compatibility claims evidence-based instead of self-attested. Before committing shared or generated AI instructions, use the [Context File Review Checklist](docs/context-file-review.md). If you're deciding between Pluribus and a one-way rules converter, see [When to use Pluribus](docs/when-to-use-pluribus.md). If you are debugging "context drift" after compaction or long sessions, start with the [Context Drift Taxonomy](docs/context-drift-taxonomy.md) to separate file drift from runtime precedence drift. If you use MCP memory or knowledge-graph tools, try the [MCP memory handoff demo](docs/memory-mcp-handoff.md) to keep recall/store protocols aligned across AI coding tools without turning Pluribus into a memory server. If you are reviewing Pluribus for a list, newsletter, or tool directory, use the [Community Review Packet](docs/community-review-packet.md) for directory submission fields, a one-line description, safety notes, and a disposable 60-second smoke test. Maintainers can track package/repo discovery with the [Discovery Smoke Checks](docs/discovery-smoke.md).
|
|
158
158
|
|
|
159
159
|
### Usage
|
|
160
160
|
|
|
@@ -100,7 +100,7 @@ mkdir pluribus-fidelity && cd pluribus-fidelity
|
|
|
100
100
|
npx --yes pluribus-context@latest init --name "Fidelity review" --description "Native vs fallback smoke" --tools bob,openclaw
|
|
101
101
|
npx --yes pluribus-context@latest sync
|
|
102
102
|
npx --yes pluribus-context@latest audit --json --fidelity-report --output fidelity.json
|
|
103
|
-
node -e "const r=require('./fidelity.json'); console.log(r.fidelityReport.targets.map(t => ({ toolId: t.toolId, file: t.files[0], nativeDiscoverySurface: t.nativeDiscoverySurface, genericFallback: t.genericFallback, manualActivationRequired: t.manualActivationRequired, effectiveContextScope: t.effectiveContext?.scope })))"
|
|
103
|
+
node -e "const r=require('./fidelity.json'); console.log(r.fidelityReport.targets.map(t => ({ toolId: t.toolId, file: t.files[0], nativeDiscoverySurface: t.nativeDiscoverySurface, genericFallback: t.genericFallback, manualActivationRequired: t.manualActivationRequired, effectiveContextScope: t.effectiveContext?.scope, loadedBy: t.loadEvidence?.loadedBy, dedupeRisk: t.loadEvidence?.dedupeRisk, duplicateRisk: t.duplicateLoadEvidence?.duplicateRisk, selectedLoad: t.duplicateLoadEvidence?.selectedLoad?.path })))"
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
Expected result:
|
|
@@ -108,7 +108,9 @@ Expected result:
|
|
|
108
108
|
- Bob writes `.bob/rules/pluribus.md` and reports `nativeDiscoverySurface: ".bob/rules/*.md"`, `genericFallback: false`, `manualActivationRequired: false`.
|
|
109
109
|
- OpenClaw writes `AGENTS.md` and reports `nativeDiscoverySurface: "AGENTS.md"`, `genericFallback: true`, `manualActivationRequired: false`.
|
|
110
110
|
- Both targets report `effectiveContext.scope: "repo-root"` and `pathScoped: false`; for monorepos this is a warning that subdirectory inheritance/isolation still needs a separate smoke.
|
|
111
|
-
-
|
|
111
|
+
- Both targets include `loadEvidence`: Bob is `loadedBy: "native-file-discovery"`; OpenClaw is `loadedBy: "generic-agent-file"`; both currently report `dedupeRisk: "unknown"` because Pluribus does not prove runtime deduplication across native files, hooks, generated imports, or manual injection.
|
|
112
|
+
- Both targets include `duplicateLoadEvidence`: the Pluribus generated file is the only candidate Pluribus can name, with a `contentIdentity` hash and `selectedLoad`, but `duplicateRisk: "unknown"` because runtime scanner roots, caches, plugin directories, and sibling tool skill/rule folders are not inspected or suppressed by this smoke.
|
|
113
|
+
- This is the core Pluribus distinction for reviewers: generated file exists is not enough; the report should show whether the target uses native discovery or a generic fallback, how the context is expected to be loaded, and what effective context scope has actually been proven.
|
|
112
114
|
|
|
113
115
|
## Useful links
|
|
114
116
|
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Context-budget receipts
|
|
2
|
+
|
|
3
|
+
Privacy-safe receipts for answering a narrow operational question:
|
|
4
|
+
|
|
5
|
+
> What ate the agent's context before or after the task?
|
|
6
|
+
|
|
7
|
+
This is different from generic token accounting. A context-budget receipt should prove which context surfaces were available, which ones crossed the boundary, which ones stayed deferred or suppressed, and how much budget remained — without exporting raw prompts, tool schemas, tool outputs, memory bodies, file paths, ticket text, secrets, or customer data.
|
|
8
|
+
|
|
9
|
+
## When to use this receipt
|
|
10
|
+
|
|
11
|
+
Use a context-budget receipt when a coding agent looks lazy, fails with `prompt is too long`, or returns a tiny summary after a subagent/tool-heavy step and you need to distinguish:
|
|
12
|
+
|
|
13
|
+
- the user prompt was too large;
|
|
14
|
+
- MCP/tool schemas were eagerly materialized;
|
|
15
|
+
- a skill or rule listing consumed startup budget;
|
|
16
|
+
- memory/search results hydrated too much context;
|
|
17
|
+
- a manager subagent isolated heavy tools correctly;
|
|
18
|
+
- a child subagent pasted raw tool output back into the parent; or
|
|
19
|
+
- a CLI/MCP gateway used progressive disclosure correctly.
|
|
20
|
+
|
|
21
|
+
## Minimum contract
|
|
22
|
+
|
|
23
|
+
A useful receipt starts small:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"event.name": "context.budget.evaluated",
|
|
28
|
+
"component": "subagent_boot | mcp_gateway | cli | mcp_manager | delegation",
|
|
29
|
+
"candidate_count": 566,
|
|
30
|
+
"loaded_count": 2,
|
|
31
|
+
"suppressed_count": 564,
|
|
32
|
+
"delivered_hash_count": 2,
|
|
33
|
+
"startup_token_bucket": "100k-200k",
|
|
34
|
+
"remaining_token_bucket": "0-10k",
|
|
35
|
+
"privacy.raw_prompt_included": false,
|
|
36
|
+
"privacy.raw_schema_included": false,
|
|
37
|
+
"privacy.raw_tool_output_included": false,
|
|
38
|
+
"audit_gap": "proves context boundary, not semantic quality"
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Keep exact counts when they are not sensitive. Bucket token counts and sizes when exact values could reveal private workload shape.
|
|
43
|
+
|
|
44
|
+
## Subagent boot budget
|
|
45
|
+
|
|
46
|
+
Subagents can fail before task #1 if they inherit every MCP schema, skill listing, rule, or memory index from the parent. The receipt should separate:
|
|
47
|
+
|
|
48
|
+
- `available` — what could have been loaded;
|
|
49
|
+
- `loaded` — what actually entered the subagent prompt/context;
|
|
50
|
+
- `suppressed` or `deferred` — what stayed out;
|
|
51
|
+
- `remaining` — coarse budget after bootstrap; and
|
|
52
|
+
- `failure_or_headroom` — whether the subagent had room for tool results.
|
|
53
|
+
|
|
54
|
+
Runnable fixture:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node examples/context-input-evidence/convert-subagent-context-budget-log.mjs
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Public trace:
|
|
61
|
+
|
|
62
|
+
- `examples/context-input-evidence/subagent-context-budget-otel-trace.json`
|
|
63
|
+
|
|
64
|
+
## Delegation boundary
|
|
65
|
+
|
|
66
|
+
A subagent can save parent context at boot and still lose the benefit if raw child output is pasted back into the parent. The receipt should prove:
|
|
67
|
+
|
|
68
|
+
- delegation happened;
|
|
69
|
+
- child output size stayed in the child/subagent store;
|
|
70
|
+
- parent received a bounded summary, not raw output;
|
|
71
|
+
- raw child output was not copied into the receipt; and
|
|
72
|
+
- the audit gap remains explicit: the receipt proves the boundary, not summary correctness.
|
|
73
|
+
|
|
74
|
+
Runnable fixture:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
node examples/context-input-evidence/convert-subagent-delegation-log.mjs
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Public trace:
|
|
81
|
+
|
|
82
|
+
- `examples/context-input-evidence/subagent-delegation-otel-trace.json`
|
|
83
|
+
|
|
84
|
+
## MCP manager isolation
|
|
85
|
+
|
|
86
|
+
When a manager subagent owns hundreds of MCP tools, the parent should see a small request/summary surface, not the whole tool catalog. The receipt should prove:
|
|
87
|
+
|
|
88
|
+
- parent full schemas were not loaded;
|
|
89
|
+
- the manager booted with the tool catalog;
|
|
90
|
+
- one or a small set of tools was selected;
|
|
91
|
+
- unselected schemas stayed suppressed; and
|
|
92
|
+
- only a bounded parent summary returned.
|
|
93
|
+
|
|
94
|
+
Runnable fixture:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
node examples/context-input-evidence/convert-claudekit-mcp-manager-log.mjs
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Public trace:
|
|
101
|
+
|
|
102
|
+
- `examples/context-input-evidence/claudekit-mcp-manager-otel-trace.json`
|
|
103
|
+
|
|
104
|
+
## Progressive disclosure: MCP gateway or CLI
|
|
105
|
+
|
|
106
|
+
If a gateway or CLI avoids context bloat by showing an index/prompt first and expanding one schema/help page later, the receipt should prove the disclosure boundary:
|
|
107
|
+
|
|
108
|
+
- small agent prompt or meta-tool/index loaded at startup;
|
|
109
|
+
- full schemas/specs were not loaded at startup;
|
|
110
|
+
- one command/schema was hydrated on demand;
|
|
111
|
+
- raw args/results stayed out of the receipt; and
|
|
112
|
+
- selected/suppressed counts are visible enough for debugging.
|
|
113
|
+
|
|
114
|
+
Runnable fixtures:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
node examples/context-input-evidence/convert-agentgateway-progressive-disclosure-log.mjs
|
|
118
|
+
node examples/context-input-evidence/convert-cli-progressive-disclosure-log.mjs
|
|
119
|
+
node examples/context-input-evidence/convert-mcp-tool-search-log.mjs
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Public traces:
|
|
123
|
+
|
|
124
|
+
- `examples/context-input-evidence/agentgateway-progressive-disclosure-otel-trace.json`
|
|
125
|
+
- `examples/context-input-evidence/cli-progressive-disclosure-otel-trace.json`
|
|
126
|
+
- `examples/context-input-evidence/mcp-tool-search-otel-trace.json`
|
|
127
|
+
|
|
128
|
+
## Privacy defaults
|
|
129
|
+
|
|
130
|
+
For shareable receipts:
|
|
131
|
+
|
|
132
|
+
- hash or HMAC stable identifiers; prefer HMAC for predictable IDs, paths, user IDs, and audit IDs;
|
|
133
|
+
- fail closed or omit identifier hashes when the HMAC key is missing;
|
|
134
|
+
- bucket large sizes and token counts;
|
|
135
|
+
- never export raw schemas, raw memory, raw prompt, raw tool output, paths, tickets, emails, secrets, or customer-specific strings;
|
|
136
|
+
- include explicit `raw_*_included=false` flags; and
|
|
137
|
+
- include `audit_gap` so readers do not confuse boundary evidence with semantic correctness.
|
|
138
|
+
|
|
139
|
+
## What to ask in a bug report
|
|
140
|
+
|
|
141
|
+
Instead of “why is my subagent bad?”, ask for a receipt or debug JSON that can answer:
|
|
142
|
+
|
|
143
|
+
1. How many tools/skills/rules/memory entries were available?
|
|
144
|
+
2. How many were loaded into the parent?
|
|
145
|
+
3. How many were loaded into the subagent?
|
|
146
|
+
4. How many were suppressed/deferred?
|
|
147
|
+
5. What token bucket remained before the first tool call?
|
|
148
|
+
6. Did raw child output return to the parent, or only a bounded summary?
|
|
149
|
+
|
|
150
|
+
That is the narrow wedge for Pluribus: context-budget evidence across agent boundaries, not another memory store or tool router.
|