pluribus-context 0.3.22 → 0.3.27

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.
Files changed (95) hide show
  1. package/CHANGELOG.md +33 -3
  2. package/README.md +9 -2
  3. package/docs/community-review-packet.md +10 -2
  4. package/docs/context-budget-receipts.md +152 -0
  5. package/docs/context-input-evidence.md +397 -0
  6. package/docs/context-receipts-for-agent-observability.md +177 -0
  7. package/docs/orchestration-search-receipts.md +102 -0
  8. package/docs/portability-fidelity-report.md +4 -2
  9. package/examples/agent-skills/context-receipts/README.md +22 -0
  10. package/examples/agent-skills/context-receipts/SKILL.md +89 -0
  11. package/examples/context-input-evidence/AGENTS.md +12 -0
  12. package/examples/context-input-evidence/agent-overlay-log.jsonl +4 -0
  13. package/examples/context-input-evidence/agent-overlay-otel-trace.json +548 -0
  14. package/examples/context-input-evidence/agent-overlay-receipt.ndjson +3 -0
  15. package/examples/context-input-evidence/agentgateway-progressive-disclosure-otel-trace.json +393 -0
  16. package/examples/context-input-evidence/agentgateway-progressive-disclosure-receipt.ndjson +4 -0
  17. package/examples/context-input-evidence/brain-remediation-otel-trace.json +645 -0
  18. package/examples/context-input-evidence/brain-remediation-receipt.ndjson +7 -0
  19. package/examples/context-input-evidence/claudekit-mcp-manager-otel-trace.json +417 -0
  20. package/examples/context-input-evidence/claudekit-mcp-manager-receipt.ndjson +5 -0
  21. package/examples/context-input-evidence/cli-progressive-disclosure-otel-trace.json +399 -0
  22. package/examples/context-input-evidence/cli-progressive-disclosure-receipt.ndjson +4 -0
  23. package/examples/context-input-evidence/compaction-otel-trace.json +711 -0
  24. package/examples/context-input-evidence/compaction-receipt.ndjson +6 -0
  25. package/examples/context-input-evidence/context-selection-otel-trace.json +627 -0
  26. package/examples/context-input-evidence/context-selection-receipt.ndjson +7 -0
  27. package/examples/context-input-evidence/convert-agent-overlay-log.mjs +156 -0
  28. package/examples/context-input-evidence/convert-agentgateway-progressive-disclosure-log.mjs +251 -0
  29. package/examples/context-input-evidence/convert-brain-remediation-log.mjs +241 -0
  30. package/examples/context-input-evidence/convert-claudekit-mcp-manager-log.mjs +253 -0
  31. package/examples/context-input-evidence/convert-cli-progressive-disclosure-log.mjs +251 -0
  32. package/examples/context-input-evidence/convert-compaction-log.mjs +224 -0
  33. package/examples/context-input-evidence/convert-context-selection-log.mjs +247 -0
  34. package/examples/context-input-evidence/convert-mcp-tool-search-log.mjs +242 -0
  35. package/examples/context-input-evidence/convert-memory-consolidation-log.mjs +240 -0
  36. package/examples/context-input-evidence/convert-memory-governance-delete-log.mjs +223 -0
  37. package/examples/context-input-evidence/convert-memory-log.mjs +226 -0
  38. package/examples/context-input-evidence/convert-memory-provenance-log.mjs +263 -0
  39. package/examples/context-input-evidence/convert-secret-scanning-log.mjs +233 -0
  40. package/examples/context-input-evidence/convert-session-log.mjs +186 -0
  41. package/examples/context-input-evidence/convert-skill-log.mjs +161 -0
  42. package/examples/context-input-evidence/convert-skill-registry-log.mjs +246 -0
  43. package/examples/context-input-evidence/convert-skill-routing-log.mjs +253 -0
  44. package/examples/context-input-evidence/convert-subagent-context-budget-log.mjs +267 -0
  45. package/examples/context-input-evidence/convert-subagent-delegation-log.mjs +264 -0
  46. package/examples/context-input-evidence/export-otel-trace.mjs +128 -0
  47. package/examples/context-input-evidence/generate-receipt.mjs +188 -0
  48. package/examples/context-input-evidence/mcp-tool-search-otel-trace.json +477 -0
  49. package/examples/context-input-evidence/mcp-tool-search-receipt.ndjson +5 -0
  50. package/examples/context-input-evidence/memory-consolidation-otel-trace.json +492 -0
  51. package/examples/context-input-evidence/memory-consolidation-receipt.ndjson +4 -0
  52. package/examples/context-input-evidence/memory-governance-delete-otel-trace.json +614 -0
  53. package/examples/context-input-evidence/memory-governance-delete-receipt.ndjson +5 -0
  54. package/examples/context-input-evidence/memory-otel-trace.json +645 -0
  55. package/examples/context-input-evidence/memory-provenance-otel-trace.json +711 -0
  56. package/examples/context-input-evidence/memory-provenance-receipt.ndjson +5 -0
  57. package/examples/context-input-evidence/memory-receipt.ndjson +4 -0
  58. package/examples/context-input-evidence/otel-trace.json +1119 -0
  59. package/examples/context-input-evidence/receipt.ndjson +6 -0
  60. package/examples/context-input-evidence/sample-agentgateway-progressive-disclosure-log.jsonl +5 -0
  61. package/examples/context-input-evidence/sample-brain-remediation-log.jsonl +9 -0
  62. package/examples/context-input-evidence/sample-claudekit-mcp-manager-log.jsonl +6 -0
  63. package/examples/context-input-evidence/sample-cli-progressive-disclosure-log.jsonl +5 -0
  64. package/examples/context-input-evidence/sample-compaction-log.jsonl +7 -0
  65. package/examples/context-input-evidence/sample-context-selection-log.jsonl +7 -0
  66. package/examples/context-input-evidence/sample-mcp-tool-search-log.jsonl +6 -0
  67. package/examples/context-input-evidence/sample-memory-consolidation-log.jsonl +5 -0
  68. package/examples/context-input-evidence/sample-memory-governance-delete-log.jsonl +6 -0
  69. package/examples/context-input-evidence/sample-memory-provenance-log.jsonl +6 -0
  70. package/examples/context-input-evidence/sample-memory-retrieval-log.jsonl +6 -0
  71. package/examples/context-input-evidence/sample-secret-scanning-log.jsonl +7 -0
  72. package/examples/context-input-evidence/sample-session-log.jsonl +6 -0
  73. package/examples/context-input-evidence/sample-skill-registry-log.jsonl +5 -0
  74. package/examples/context-input-evidence/sample-skill-routing-log.jsonl +7 -0
  75. package/examples/context-input-evidence/sample-subagent-context-budget-log.jsonl +6 -0
  76. package/examples/context-input-evidence/sample-subagent-delegation-log.jsonl +5 -0
  77. package/examples/context-input-evidence/secret-scanning-otel-trace.json +794 -0
  78. package/examples/context-input-evidence/secret-scanning-receipt.ndjson +6 -0
  79. package/examples/context-input-evidence/session-otel-trace.json +411 -0
  80. package/examples/context-input-evidence/session-receipt.ndjson +2 -0
  81. package/examples/context-input-evidence/skill-invocation-log.jsonl +4 -0
  82. package/examples/context-input-evidence/skill-otel-trace.json +548 -0
  83. package/examples/context-input-evidence/skill-receipt.ndjson +3 -0
  84. package/examples/context-input-evidence/skill-registry-otel-trace.json +471 -0
  85. package/examples/context-input-evidence/skill-registry-receipt.ndjson +5 -0
  86. package/examples/context-input-evidence/skill-routing-otel-trace.json +567 -0
  87. package/examples/context-input-evidence/skill-routing-receipt.ndjson +6 -0
  88. package/examples/context-input-evidence/subagent-context-budget-otel-trace.json +507 -0
  89. package/examples/context-input-evidence/subagent-context-budget-receipt.ndjson +5 -0
  90. package/examples/context-input-evidence/subagent-delegation-otel-trace.json +388 -0
  91. package/examples/context-input-evidence/subagent-delegation-receipt.ndjson +4 -0
  92. package/package.json +6 -2
  93. package/schemas/audit-result.schema.json +409 -71
  94. package/src/commands/audit.js +64 -3
  95. package/src/utils/version.js +1 -1
@@ -0,0 +1,471 @@
1
+ {
2
+ "resourceSpans": [
3
+ {
4
+ "resource": {
5
+ "attributes": [
6
+ {
7
+ "key": "service.name",
8
+ "value": {
9
+ "stringValue": "pluribus-skill-registry-demo"
10
+ }
11
+ },
12
+ {
13
+ "key": "service.version",
14
+ "value": {
15
+ "stringValue": "0.0.0-fixture"
16
+ }
17
+ },
18
+ {
19
+ "key": "deployment.environment.name",
20
+ "value": {
21
+ "stringValue": "local-fixture"
22
+ }
23
+ }
24
+ ]
25
+ },
26
+ "scopeSpans": [
27
+ {
28
+ "scope": {
29
+ "name": "pluribus.skill_registry.demo",
30
+ "version": "0.0.0-fixture"
31
+ },
32
+ "spans": [
33
+ {
34
+ "traceId": "19fee04b0e1ba9040906b101d983460e",
35
+ "spanId": "9732e64ff95dcefb",
36
+ "parentSpanId": "",
37
+ "name": "agent.session",
38
+ "kind": 1,
39
+ "startTimeUnixNano": "1779541200000000000",
40
+ "endTimeUnixNano": "1779541204001000000",
41
+ "attributes": [
42
+ {
43
+ "key": "session.id",
44
+ "value": {
45
+ "stringValue": "demo-session-skill-registry"
46
+ }
47
+ },
48
+ {
49
+ "key": "gen_ai.conversation.id",
50
+ "value": {
51
+ "stringValue": "demo-conversation-skill-registry"
52
+ }
53
+ },
54
+ {
55
+ "key": "gen_ai.agent.name",
56
+ "value": {
57
+ "stringValue": "autogpt-copilot"
58
+ }
59
+ },
60
+ {
61
+ "key": "gen_ai.operation.name",
62
+ "value": {
63
+ "stringValue": "agent_session"
64
+ }
65
+ }
66
+ ],
67
+ "events": [
68
+ {
69
+ "name": "context.skill.registry.index.loaded",
70
+ "timeUnixNano": "1779541200000000000",
71
+ "attributes": [
72
+ {
73
+ "key": "session.id",
74
+ "value": {
75
+ "stringValue": "demo-session-skill-registry"
76
+ }
77
+ },
78
+ {
79
+ "key": "gen_ai.conversation.id",
80
+ "value": {
81
+ "stringValue": "demo-conversation-skill-registry"
82
+ }
83
+ },
84
+ {
85
+ "key": "context.skill.registry.scope",
86
+ "value": {
87
+ "stringValue": "user"
88
+ }
89
+ },
90
+ {
91
+ "key": "context.skill.privacy.raw_body_exported",
92
+ "value": {
93
+ "boolValue": false
94
+ }
95
+ },
96
+ {
97
+ "key": "context.skill.audit_gap",
98
+ "value": {
99
+ "stringValue": "receipt proves registry/index/read/injection boundary, not semantic skill quality"
100
+ }
101
+ },
102
+ {
103
+ "key": "context.skill.index.strategy",
104
+ "value": {
105
+ "stringValue": "outermost_available_skills_index"
106
+ }
107
+ },
108
+ {
109
+ "key": "context.skill.candidate_count",
110
+ "value": {
111
+ "intValue": "12"
112
+ }
113
+ },
114
+ {
115
+ "key": "context.skill.indexed_count",
116
+ "value": {
117
+ "intValue": "12"
118
+ }
119
+ },
120
+ {
121
+ "key": "context.skill.index.hash",
122
+ "value": {
123
+ "stringValue": "sha256:0040df244d04b02aa0703e6eaaf1a14f4b3a375463e5ac9a3c9d061b49bf9e53"
124
+ }
125
+ },
126
+ {
127
+ "key": "context.skill.index.token_bucket",
128
+ "value": {
129
+ "stringValue": "1k-2k"
130
+ }
131
+ },
132
+ {
133
+ "key": "context.skill.body.token_bucket",
134
+ "value": {
135
+ "stringValue": "not_loaded"
136
+ }
137
+ },
138
+ {
139
+ "key": "context.skill.cache.status",
140
+ "value": {
141
+ "stringValue": "hit"
142
+ }
143
+ },
144
+ {
145
+ "key": "context.skill.injection.policy",
146
+ "value": {
147
+ "stringValue": "index_only_until_read"
148
+ }
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "name": "context.skill.registry.skill.stored",
154
+ "timeUnixNano": "1779541201000000000",
155
+ "attributes": [
156
+ {
157
+ "key": "session.id",
158
+ "value": {
159
+ "stringValue": "demo-session-skill-registry"
160
+ }
161
+ },
162
+ {
163
+ "key": "gen_ai.conversation.id",
164
+ "value": {
165
+ "stringValue": "demo-conversation-skill-registry"
166
+ }
167
+ },
168
+ {
169
+ "key": "context.skill.registry.scope",
170
+ "value": {
171
+ "stringValue": "user"
172
+ }
173
+ },
174
+ {
175
+ "key": "context.skill.privacy.raw_body_exported",
176
+ "value": {
177
+ "boolValue": false
178
+ }
179
+ },
180
+ {
181
+ "key": "context.skill.audit_gap",
182
+ "value": {
183
+ "stringValue": "receipt proves registry/index/read/injection boundary, not semantic skill quality"
184
+ }
185
+ },
186
+ {
187
+ "key": "context.skill.id_hash",
188
+ "value": {
189
+ "stringValue": "sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d"
190
+ }
191
+ },
192
+ {
193
+ "key": "context.skill.source",
194
+ "value": {
195
+ "stringValue": "self_distilled"
196
+ }
197
+ },
198
+ {
199
+ "key": "context.skill.store.reason",
200
+ "value": {
201
+ "stringValue": "user_approved_reusable_workflow"
202
+ }
203
+ },
204
+ {
205
+ "key": "context.skill.body.hash",
206
+ "value": {
207
+ "stringValue": "sha256:e5084dfa5b20fd3852c472532245a457f9e534b03ec70658452bb40444a32a7d"
208
+ }
209
+ },
210
+ {
211
+ "key": "context.skill.body.token_bucket",
212
+ "value": {
213
+ "stringValue": "2k-4k"
214
+ }
215
+ },
216
+ {
217
+ "key": "context.skill.write.status",
218
+ "value": {
219
+ "stringValue": "stored"
220
+ }
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "name": "context.skill.registry.skill.read",
226
+ "timeUnixNano": "1779541202000000000",
227
+ "attributes": [
228
+ {
229
+ "key": "session.id",
230
+ "value": {
231
+ "stringValue": "demo-session-skill-registry"
232
+ }
233
+ },
234
+ {
235
+ "key": "gen_ai.conversation.id",
236
+ "value": {
237
+ "stringValue": "demo-conversation-skill-registry"
238
+ }
239
+ },
240
+ {
241
+ "key": "context.skill.registry.scope",
242
+ "value": {
243
+ "stringValue": "user"
244
+ }
245
+ },
246
+ {
247
+ "key": "context.skill.privacy.raw_body_exported",
248
+ "value": {
249
+ "boolValue": false
250
+ }
251
+ },
252
+ {
253
+ "key": "context.skill.audit_gap",
254
+ "value": {
255
+ "stringValue": "receipt proves registry/index/read/injection boundary, not semantic skill quality"
256
+ }
257
+ },
258
+ {
259
+ "key": "context.skill.id_hash",
260
+ "value": {
261
+ "stringValue": "sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d"
262
+ }
263
+ },
264
+ {
265
+ "key": "context.skill.read.reason",
266
+ "value": {
267
+ "stringValue": "task_matches_skill_index"
268
+ }
269
+ },
270
+ {
271
+ "key": "context.skill.body.hash",
272
+ "value": {
273
+ "stringValue": "sha256:e5084dfa5b20fd3852c472532245a457f9e534b03ec70658452bb40444a32a7d"
274
+ }
275
+ },
276
+ {
277
+ "key": "context.skill.body.token_bucket",
278
+ "value": {
279
+ "stringValue": "2k-4k"
280
+ }
281
+ },
282
+ {
283
+ "key": "context.skill.read.status",
284
+ "value": {
285
+ "stringValue": "read"
286
+ }
287
+ }
288
+ ]
289
+ },
290
+ {
291
+ "name": "context.skill.registry.skill.injected",
292
+ "timeUnixNano": "1779541203000000000",
293
+ "attributes": [
294
+ {
295
+ "key": "session.id",
296
+ "value": {
297
+ "stringValue": "demo-session-skill-registry"
298
+ }
299
+ },
300
+ {
301
+ "key": "gen_ai.conversation.id",
302
+ "value": {
303
+ "stringValue": "demo-conversation-skill-registry"
304
+ }
305
+ },
306
+ {
307
+ "key": "context.skill.registry.scope",
308
+ "value": {
309
+ "stringValue": "user"
310
+ }
311
+ },
312
+ {
313
+ "key": "context.skill.privacy.raw_body_exported",
314
+ "value": {
315
+ "boolValue": false
316
+ }
317
+ },
318
+ {
319
+ "key": "context.skill.audit_gap",
320
+ "value": {
321
+ "stringValue": "receipt proves registry/index/read/injection boundary, not semantic skill quality"
322
+ }
323
+ },
324
+ {
325
+ "key": "context.skill.id_hash",
326
+ "value": {
327
+ "stringValue": "sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d"
328
+ }
329
+ },
330
+ {
331
+ "key": "context.skill.injection.reason",
332
+ "value": {
333
+ "stringValue": "selected_after_index_match"
334
+ }
335
+ },
336
+ {
337
+ "key": "context.skill.delivered.hash",
338
+ "value": {
339
+ "stringValue": "sha256:be0e7791bca3f55829bc569968a3982c79f1bc5d09c37cdc983ea3c2c0f20355"
340
+ }
341
+ },
342
+ {
343
+ "key": "context.skill.delivered.token_bucket",
344
+ "value": {
345
+ "stringValue": "2k-4k"
346
+ }
347
+ },
348
+ {
349
+ "key": "context.skill.delivery.status",
350
+ "value": {
351
+ "stringValue": "delivered"
352
+ }
353
+ },
354
+ {
355
+ "key": "context.skill.suppressed_count",
356
+ "value": {
357
+ "intValue": "11"
358
+ }
359
+ }
360
+ ]
361
+ },
362
+ {
363
+ "name": "context.skill.registry.reuse.evaluated",
364
+ "timeUnixNano": "1779541204000000000",
365
+ "attributes": [
366
+ {
367
+ "key": "session.id",
368
+ "value": {
369
+ "stringValue": "demo-session-skill-registry"
370
+ }
371
+ },
372
+ {
373
+ "key": "gen_ai.conversation.id",
374
+ "value": {
375
+ "stringValue": "demo-conversation-skill-registry"
376
+ }
377
+ },
378
+ {
379
+ "key": "context.skill.registry.scope",
380
+ "value": {
381
+ "stringValue": "user"
382
+ }
383
+ },
384
+ {
385
+ "key": "context.skill.privacy.raw_body_exported",
386
+ "value": {
387
+ "boolValue": false
388
+ }
389
+ },
390
+ {
391
+ "key": "context.skill.audit_gap",
392
+ "value": {
393
+ "stringValue": "receipt proves registry/index/read/injection boundary, not semantic skill quality"
394
+ }
395
+ },
396
+ {
397
+ "key": "decision.id_hash",
398
+ "value": {
399
+ "stringValue": "sha256:6722788fec10014473b5f64e1f198ddf343d2f86366ecf8ae315865254bc4e55"
400
+ }
401
+ },
402
+ {
403
+ "key": "context.skill.id_hash",
404
+ "value": {
405
+ "stringValue": "sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d"
406
+ }
407
+ },
408
+ {
409
+ "key": "context.skill.selected_count",
410
+ "value": {
411
+ "intValue": "1"
412
+ }
413
+ },
414
+ {
415
+ "key": "context.skill.suppressed_count",
416
+ "value": {
417
+ "intValue": "11"
418
+ }
419
+ },
420
+ {
421
+ "key": "context.skill.relevance.decisive_count",
422
+ "value": {
423
+ "intValue": "0"
424
+ }
425
+ },
426
+ {
427
+ "key": "context.skill.relevance.supporting_count",
428
+ "value": {
429
+ "intValue": "1"
430
+ }
431
+ },
432
+ {
433
+ "key": "context.skill.relevance.unused_count",
434
+ "value": {
435
+ "intValue": "0"
436
+ }
437
+ },
438
+ {
439
+ "key": "context.skill.relevance.unknown_count",
440
+ "value": {
441
+ "intValue": "0"
442
+ }
443
+ },
444
+ {
445
+ "key": "context.skill.relevance.accounted_count",
446
+ "value": {
447
+ "intValue": "1"
448
+ }
449
+ },
450
+ {
451
+ "key": "context.skill.relevance.invariant",
452
+ "value": {
453
+ "stringValue": "selected_count == decisive_count + supporting_count + unused_count + unknown_count"
454
+ }
455
+ },
456
+ {
457
+ "key": "context.skill.relevance.outcome",
458
+ "value": {
459
+ "stringValue": "supporting"
460
+ }
461
+ }
462
+ ]
463
+ }
464
+ ]
465
+ }
466
+ ]
467
+ }
468
+ ]
469
+ }
470
+ ]
471
+ }
@@ -0,0 +1,5 @@
1
+ {"trace_id":"19fee04b0e1ba9040906b101d983460e","span_id":"9732e64ff95dcefb","name":"context.skill.registry.index.loaded","time":"2026-05-23T13:00:00.000Z","attributes":{"session.id":"demo-session-skill-registry","gen_ai.conversation.id":"demo-conversation-skill-registry","context.skill.registry.scope":"user","context.skill.privacy.raw_body_exported":false,"context.skill.audit_gap":"receipt proves registry/index/read/injection boundary, not semantic skill quality","context.skill.index.strategy":"outermost_available_skills_index","context.skill.candidate_count":12,"context.skill.indexed_count":12,"context.skill.index.hash":"sha256:0040df244d04b02aa0703e6eaaf1a14f4b3a375463e5ac9a3c9d061b49bf9e53","context.skill.index.token_bucket":"1k-2k","context.skill.body.token_bucket":"not_loaded","context.skill.cache.status":"hit","context.skill.injection.policy":"index_only_until_read"}}
2
+ {"trace_id":"19fee04b0e1ba9040906b101d983460e","span_id":"9732e64ff95dcefb","name":"context.skill.registry.skill.stored","time":"2026-05-23T13:00:01.000Z","attributes":{"session.id":"demo-session-skill-registry","gen_ai.conversation.id":"demo-conversation-skill-registry","context.skill.registry.scope":"user","context.skill.privacy.raw_body_exported":false,"context.skill.audit_gap":"receipt proves registry/index/read/injection boundary, not semantic skill quality","context.skill.id_hash":"sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d","context.skill.source":"self_distilled","context.skill.store.reason":"user_approved_reusable_workflow","context.skill.body.hash":"sha256:e5084dfa5b20fd3852c472532245a457f9e534b03ec70658452bb40444a32a7d","context.skill.body.token_bucket":"2k-4k","context.skill.write.status":"stored"}}
3
+ {"trace_id":"19fee04b0e1ba9040906b101d983460e","span_id":"9732e64ff95dcefb","name":"context.skill.registry.skill.read","time":"2026-05-23T13:00:02.000Z","attributes":{"session.id":"demo-session-skill-registry","gen_ai.conversation.id":"demo-conversation-skill-registry","context.skill.registry.scope":"user","context.skill.privacy.raw_body_exported":false,"context.skill.audit_gap":"receipt proves registry/index/read/injection boundary, not semantic skill quality","context.skill.id_hash":"sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d","context.skill.read.reason":"task_matches_skill_index","context.skill.body.hash":"sha256:e5084dfa5b20fd3852c472532245a457f9e534b03ec70658452bb40444a32a7d","context.skill.body.token_bucket":"2k-4k","context.skill.read.status":"read"}}
4
+ {"trace_id":"19fee04b0e1ba9040906b101d983460e","span_id":"9732e64ff95dcefb","name":"context.skill.registry.skill.injected","time":"2026-05-23T13:00:03.000Z","attributes":{"session.id":"demo-session-skill-registry","gen_ai.conversation.id":"demo-conversation-skill-registry","context.skill.registry.scope":"user","context.skill.privacy.raw_body_exported":false,"context.skill.audit_gap":"receipt proves registry/index/read/injection boundary, not semantic skill quality","context.skill.id_hash":"sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d","context.skill.injection.reason":"selected_after_index_match","context.skill.delivered.hash":"sha256:be0e7791bca3f55829bc569968a3982c79f1bc5d09c37cdc983ea3c2c0f20355","context.skill.delivered.token_bucket":"2k-4k","context.skill.delivery.status":"delivered","context.skill.suppressed_count":11}}
5
+ {"trace_id":"19fee04b0e1ba9040906b101d983460e","span_id":"9732e64ff95dcefb","name":"context.skill.registry.reuse.evaluated","time":"2026-05-23T13:00:04.000Z","attributes":{"session.id":"demo-session-skill-registry","gen_ai.conversation.id":"demo-conversation-skill-registry","context.skill.registry.scope":"user","context.skill.privacy.raw_body_exported":false,"context.skill.audit_gap":"receipt proves registry/index/read/injection boundary, not semantic skill quality","decision.id_hash":"sha256:6722788fec10014473b5f64e1f198ddf343d2f86366ecf8ae315865254bc4e55","context.skill.id_hash":"sha256:58aed07d0c9ebf769dad46035239d95b730a7f40ddb759ee7824698551ab8e3d","context.skill.selected_count":1,"context.skill.suppressed_count":11,"context.skill.relevance.decisive_count":0,"context.skill.relevance.supporting_count":1,"context.skill.relevance.unused_count":0,"context.skill.relevance.unknown_count":0,"context.skill.relevance.accounted_count":1,"context.skill.relevance.invariant":"selected_count == decisive_count + supporting_count + unused_count + unknown_count","context.skill.relevance.outcome":"supporting"}}