pluribus-context 0.3.22 → 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.
Files changed (93) hide show
  1. package/CHANGELOG.md +25 -3
  2. package/README.md +2 -2
  3. package/docs/community-review-packet.md +2 -1
  4. package/docs/context-budget-receipts.md +150 -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/context-input-evidence/AGENTS.md +12 -0
  10. package/examples/context-input-evidence/agent-overlay-log.jsonl +4 -0
  11. package/examples/context-input-evidence/agent-overlay-otel-trace.json +548 -0
  12. package/examples/context-input-evidence/agent-overlay-receipt.ndjson +3 -0
  13. package/examples/context-input-evidence/agentgateway-progressive-disclosure-otel-trace.json +393 -0
  14. package/examples/context-input-evidence/agentgateway-progressive-disclosure-receipt.ndjson +4 -0
  15. package/examples/context-input-evidence/brain-remediation-otel-trace.json +645 -0
  16. package/examples/context-input-evidence/brain-remediation-receipt.ndjson +7 -0
  17. package/examples/context-input-evidence/claudekit-mcp-manager-otel-trace.json +417 -0
  18. package/examples/context-input-evidence/claudekit-mcp-manager-receipt.ndjson +5 -0
  19. package/examples/context-input-evidence/cli-progressive-disclosure-otel-trace.json +399 -0
  20. package/examples/context-input-evidence/cli-progressive-disclosure-receipt.ndjson +4 -0
  21. package/examples/context-input-evidence/compaction-otel-trace.json +711 -0
  22. package/examples/context-input-evidence/compaction-receipt.ndjson +6 -0
  23. package/examples/context-input-evidence/context-selection-otel-trace.json +627 -0
  24. package/examples/context-input-evidence/context-selection-receipt.ndjson +7 -0
  25. package/examples/context-input-evidence/convert-agent-overlay-log.mjs +156 -0
  26. package/examples/context-input-evidence/convert-agentgateway-progressive-disclosure-log.mjs +251 -0
  27. package/examples/context-input-evidence/convert-brain-remediation-log.mjs +241 -0
  28. package/examples/context-input-evidence/convert-claudekit-mcp-manager-log.mjs +253 -0
  29. package/examples/context-input-evidence/convert-cli-progressive-disclosure-log.mjs +251 -0
  30. package/examples/context-input-evidence/convert-compaction-log.mjs +224 -0
  31. package/examples/context-input-evidence/convert-context-selection-log.mjs +247 -0
  32. package/examples/context-input-evidence/convert-mcp-tool-search-log.mjs +242 -0
  33. package/examples/context-input-evidence/convert-memory-consolidation-log.mjs +240 -0
  34. package/examples/context-input-evidence/convert-memory-governance-delete-log.mjs +223 -0
  35. package/examples/context-input-evidence/convert-memory-log.mjs +226 -0
  36. package/examples/context-input-evidence/convert-memory-provenance-log.mjs +263 -0
  37. package/examples/context-input-evidence/convert-secret-scanning-log.mjs +233 -0
  38. package/examples/context-input-evidence/convert-session-log.mjs +186 -0
  39. package/examples/context-input-evidence/convert-skill-log.mjs +161 -0
  40. package/examples/context-input-evidence/convert-skill-registry-log.mjs +246 -0
  41. package/examples/context-input-evidence/convert-skill-routing-log.mjs +253 -0
  42. package/examples/context-input-evidence/convert-subagent-context-budget-log.mjs +267 -0
  43. package/examples/context-input-evidence/convert-subagent-delegation-log.mjs +264 -0
  44. package/examples/context-input-evidence/export-otel-trace.mjs +128 -0
  45. package/examples/context-input-evidence/generate-receipt.mjs +188 -0
  46. package/examples/context-input-evidence/mcp-tool-search-otel-trace.json +477 -0
  47. package/examples/context-input-evidence/mcp-tool-search-receipt.ndjson +5 -0
  48. package/examples/context-input-evidence/memory-consolidation-otel-trace.json +492 -0
  49. package/examples/context-input-evidence/memory-consolidation-receipt.ndjson +4 -0
  50. package/examples/context-input-evidence/memory-governance-delete-otel-trace.json +614 -0
  51. package/examples/context-input-evidence/memory-governance-delete-receipt.ndjson +5 -0
  52. package/examples/context-input-evidence/memory-otel-trace.json +645 -0
  53. package/examples/context-input-evidence/memory-provenance-otel-trace.json +711 -0
  54. package/examples/context-input-evidence/memory-provenance-receipt.ndjson +5 -0
  55. package/examples/context-input-evidence/memory-receipt.ndjson +4 -0
  56. package/examples/context-input-evidence/otel-trace.json +1119 -0
  57. package/examples/context-input-evidence/receipt.ndjson +6 -0
  58. package/examples/context-input-evidence/sample-agentgateway-progressive-disclosure-log.jsonl +5 -0
  59. package/examples/context-input-evidence/sample-brain-remediation-log.jsonl +9 -0
  60. package/examples/context-input-evidence/sample-claudekit-mcp-manager-log.jsonl +6 -0
  61. package/examples/context-input-evidence/sample-cli-progressive-disclosure-log.jsonl +5 -0
  62. package/examples/context-input-evidence/sample-compaction-log.jsonl +7 -0
  63. package/examples/context-input-evidence/sample-context-selection-log.jsonl +7 -0
  64. package/examples/context-input-evidence/sample-mcp-tool-search-log.jsonl +6 -0
  65. package/examples/context-input-evidence/sample-memory-consolidation-log.jsonl +5 -0
  66. package/examples/context-input-evidence/sample-memory-governance-delete-log.jsonl +6 -0
  67. package/examples/context-input-evidence/sample-memory-provenance-log.jsonl +6 -0
  68. package/examples/context-input-evidence/sample-memory-retrieval-log.jsonl +6 -0
  69. package/examples/context-input-evidence/sample-secret-scanning-log.jsonl +7 -0
  70. package/examples/context-input-evidence/sample-session-log.jsonl +6 -0
  71. package/examples/context-input-evidence/sample-skill-registry-log.jsonl +5 -0
  72. package/examples/context-input-evidence/sample-skill-routing-log.jsonl +7 -0
  73. package/examples/context-input-evidence/sample-subagent-context-budget-log.jsonl +6 -0
  74. package/examples/context-input-evidence/sample-subagent-delegation-log.jsonl +5 -0
  75. package/examples/context-input-evidence/secret-scanning-otel-trace.json +794 -0
  76. package/examples/context-input-evidence/secret-scanning-receipt.ndjson +6 -0
  77. package/examples/context-input-evidence/session-otel-trace.json +411 -0
  78. package/examples/context-input-evidence/session-receipt.ndjson +2 -0
  79. package/examples/context-input-evidence/skill-invocation-log.jsonl +4 -0
  80. package/examples/context-input-evidence/skill-otel-trace.json +548 -0
  81. package/examples/context-input-evidence/skill-receipt.ndjson +3 -0
  82. package/examples/context-input-evidence/skill-registry-otel-trace.json +471 -0
  83. package/examples/context-input-evidence/skill-registry-receipt.ndjson +5 -0
  84. package/examples/context-input-evidence/skill-routing-otel-trace.json +567 -0
  85. package/examples/context-input-evidence/skill-routing-receipt.ndjson +6 -0
  86. package/examples/context-input-evidence/subagent-context-budget-otel-trace.json +507 -0
  87. package/examples/context-input-evidence/subagent-context-budget-receipt.ndjson +5 -0
  88. package/examples/context-input-evidence/subagent-delegation-otel-trace.json +388 -0
  89. package/examples/context-input-evidence/subagent-delegation-receipt.ndjson +4 -0
  90. package/package.json +6 -2
  91. package/schemas/audit-result.schema.json +409 -71
  92. package/src/commands/audit.js +64 -3
  93. package/src/utils/version.js +1 -1
@@ -0,0 +1,548 @@
1
+ {
2
+ "resourceSpans": [
3
+ {
4
+ "resource": {
5
+ "attributes": [
6
+ {
7
+ "key": "service.name",
8
+ "value": {
9
+ "stringValue": "pluribus-context-input-evidence"
10
+ }
11
+ },
12
+ {
13
+ "key": "telemetry.sdk.language",
14
+ "value": {
15
+ "stringValue": "javascript"
16
+ }
17
+ },
18
+ {
19
+ "key": "pluribus.demo",
20
+ "value": {
21
+ "stringValue": "skill-context-receipts"
22
+ }
23
+ }
24
+ ]
25
+ },
26
+ "scopeSpans": [
27
+ {
28
+ "scope": {
29
+ "name": "pluribus.context-input-evidence",
30
+ "version": "0.0.0-demo"
31
+ },
32
+ "spans": [
33
+ {
34
+ "traceId": "demo-trace-skill-context-receipts",
35
+ "spanId": "demo-session-skill-receipts",
36
+ "name": "agent.session",
37
+ "kind": "SPAN_KIND_INTERNAL",
38
+ "startTimeUnixNano": "0",
39
+ "endTimeUnixNano": "0",
40
+ "attributes": [
41
+ {
42
+ "key": "session.id",
43
+ "value": {
44
+ "stringValue": "demo-session-skill-receipts"
45
+ }
46
+ },
47
+ {
48
+ "key": "gen_ai.conversation.id",
49
+ "value": {
50
+ "stringValue": "demo-session-skill-receipts"
51
+ }
52
+ },
53
+ {
54
+ "key": "agent.name",
55
+ "value": {
56
+ "stringValue": "cowork"
57
+ }
58
+ },
59
+ {
60
+ "key": "workspace.name",
61
+ "value": {
62
+ "stringValue": "example-org"
63
+ }
64
+ },
65
+ {
66
+ "key": "privacy.raw_context_recorded",
67
+ "value": {
68
+ "boolValue": false
69
+ }
70
+ }
71
+ ],
72
+ "events": [
73
+ {
74
+ "name": "context.skill.invoked",
75
+ "timeUnixNano": "0",
76
+ "attributes": [
77
+ {
78
+ "key": "context.input.kind",
79
+ "value": {
80
+ "stringValue": "skill"
81
+ }
82
+ },
83
+ {
84
+ "key": "context.skill.id",
85
+ "value": {
86
+ "stringValue": "knowledge-work.weekly-brief"
87
+ }
88
+ },
89
+ {
90
+ "key": "context.skill.name",
91
+ "value": {
92
+ "stringValue": "weekly-brief"
93
+ }
94
+ },
95
+ {
96
+ "key": "context.skill.plugin",
97
+ "value": {
98
+ "stringValue": "knowledge-work-plugins"
99
+ }
100
+ },
101
+ {
102
+ "key": "context.input.source.path",
103
+ "value": {
104
+ "stringValue": ".claude/plugins/knowledge-work/weekly-brief/SKILL.md"
105
+ }
106
+ },
107
+ {
108
+ "key": "context.input.source.bytes_hash",
109
+ "value": {
110
+ "stringValue": "sha256:830061a54d44c390714c42b3190c26ee33de83b555f9cd4c31803a3dc6990b2d"
111
+ }
112
+ },
113
+ {
114
+ "key": "context.input.delivered.hash",
115
+ "value": {
116
+ "stringValue": "sha256:e4cb05b1c118c2047ae4a3a602446afa70e4611a6d6ef86f947f8fddba5a104d"
117
+ }
118
+ },
119
+ {
120
+ "key": "session.id",
121
+ "value": {
122
+ "stringValue": "demo-session-skill-receipts"
123
+ }
124
+ },
125
+ {
126
+ "key": "gen_ai.conversation.id",
127
+ "value": {
128
+ "stringValue": "demo-session-skill-receipts"
129
+ }
130
+ },
131
+ {
132
+ "key": "context.input.loaded_by",
133
+ "value": {
134
+ "stringValue": "skill-runtime"
135
+ }
136
+ },
137
+ {
138
+ "key": "context.input.activation",
139
+ "value": {
140
+ "stringValue": "manual_slash_command"
141
+ }
142
+ },
143
+ {
144
+ "key": "context.input.hook_event",
145
+ "value": {
146
+ "stringValue": "none"
147
+ }
148
+ },
149
+ {
150
+ "key": "context.input.scope",
151
+ "value": {
152
+ "stringValue": "plugin"
153
+ }
154
+ },
155
+ {
156
+ "key": "context.input.applies_to",
157
+ "value": {
158
+ "stringValue": "cowork"
159
+ }
160
+ },
161
+ {
162
+ "key": "context.input.why_loaded",
163
+ "value": {
164
+ "stringValue": "/weekly-brief"
165
+ }
166
+ },
167
+ {
168
+ "key": "context.input.expected_benefit",
169
+ "value": {
170
+ "stringValue": "make skill adoption and ROI visible without logging the skill body"
171
+ }
172
+ },
173
+ {
174
+ "key": "context.input.eval_gap",
175
+ "value": {
176
+ "stringValue": "outcome quality still requires a downstream task-result/eval metric"
177
+ }
178
+ },
179
+ {
180
+ "key": "context.input.duplicate.dedupe_key",
181
+ "value": {
182
+ "stringValue": "conversation:knowledge-work.weekly-brief:manual_slash_command:none:sha256:e4cb05b1c118c2047ae4a3a602446afa70e4611a6d6ef86f947f8fddba5a104d"
183
+ }
184
+ },
185
+ {
186
+ "key": "context.input.duplicate.dedupe_scope",
187
+ "value": {
188
+ "stringValue": "conversation"
189
+ }
190
+ },
191
+ {
192
+ "key": "context.input.duplicate.suppression_policy",
193
+ "value": {
194
+ "stringValue": "suppress_equal_dedupe_key_within_scope"
195
+ }
196
+ },
197
+ {
198
+ "key": "context.input.duplicate.role",
199
+ "value": {
200
+ "stringValue": "selected"
201
+ }
202
+ },
203
+ {
204
+ "key": "context.input.duplicate.candidate_count",
205
+ "value": {
206
+ "intValue": 1
207
+ }
208
+ },
209
+ {
210
+ "key": "privacy.raw_context_recorded",
211
+ "value": {
212
+ "boolValue": false
213
+ }
214
+ },
215
+ {
216
+ "key": "privacy.raw_prompt_recorded",
217
+ "value": {
218
+ "boolValue": false
219
+ }
220
+ },
221
+ {
222
+ "key": "privacy.raw_tool_args_recorded",
223
+ "value": {
224
+ "boolValue": false
225
+ }
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "name": "context.skill.invoked",
231
+ "timeUnixNano": "0",
232
+ "attributes": [
233
+ {
234
+ "key": "context.input.kind",
235
+ "value": {
236
+ "stringValue": "skill"
237
+ }
238
+ },
239
+ {
240
+ "key": "context.skill.id",
241
+ "value": {
242
+ "stringValue": "engineering.review-checklist"
243
+ }
244
+ },
245
+ {
246
+ "key": "context.skill.name",
247
+ "value": {
248
+ "stringValue": "review-checklist"
249
+ }
250
+ },
251
+ {
252
+ "key": "context.skill.plugin",
253
+ "value": {
254
+ "stringValue": "repo-local-skills"
255
+ }
256
+ },
257
+ {
258
+ "key": "context.input.source.path",
259
+ "value": {
260
+ "stringValue": ".agents/skills/review-checklist/SKILL.md"
261
+ }
262
+ },
263
+ {
264
+ "key": "context.input.source.bytes_hash",
265
+ "value": {
266
+ "stringValue": "sha256:5cf40439ab667da8d5870d2497d84531ab73eb7f2aca64bf090fbbc1a4b9de19"
267
+ }
268
+ },
269
+ {
270
+ "key": "context.input.delivered.hash",
271
+ "value": {
272
+ "stringValue": "sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48"
273
+ }
274
+ },
275
+ {
276
+ "key": "session.id",
277
+ "value": {
278
+ "stringValue": "demo-session-skill-receipts"
279
+ }
280
+ },
281
+ {
282
+ "key": "gen_ai.conversation.id",
283
+ "value": {
284
+ "stringValue": "demo-session-skill-receipts"
285
+ }
286
+ },
287
+ {
288
+ "key": "context.input.loaded_by",
289
+ "value": {
290
+ "stringValue": "hook"
291
+ }
292
+ },
293
+ {
294
+ "key": "context.input.activation",
295
+ "value": {
296
+ "stringValue": "hook_post_commit"
297
+ }
298
+ },
299
+ {
300
+ "key": "context.input.hook_event",
301
+ "value": {
302
+ "stringValue": "post_commit"
303
+ }
304
+ },
305
+ {
306
+ "key": "context.input.scope",
307
+ "value": {
308
+ "stringValue": "repo"
309
+ }
310
+ },
311
+ {
312
+ "key": "context.input.applies_to",
313
+ "value": {
314
+ "stringValue": "cowork"
315
+ }
316
+ },
317
+ {
318
+ "key": "context.input.why_loaded",
319
+ "value": {
320
+ "stringValue": "git:post-commit"
321
+ }
322
+ },
323
+ {
324
+ "key": "context.input.expected_benefit",
325
+ "value": {
326
+ "stringValue": "prove deterministic hook-driven skill loads separately from manual skill use"
327
+ }
328
+ },
329
+ {
330
+ "key": "context.input.eval_gap",
331
+ "value": {
332
+ "stringValue": "trace proves load; it does not prove review quality without follow-up outcome events"
333
+ }
334
+ },
335
+ {
336
+ "key": "context.input.duplicate.dedupe_key",
337
+ "value": {
338
+ "stringValue": "conversation:engineering.review-checklist:hook_post_commit:post_commit:sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48"
339
+ }
340
+ },
341
+ {
342
+ "key": "context.input.duplicate.dedupe_scope",
343
+ "value": {
344
+ "stringValue": "conversation"
345
+ }
346
+ },
347
+ {
348
+ "key": "context.input.duplicate.suppression_policy",
349
+ "value": {
350
+ "stringValue": "suppress_equal_dedupe_key_within_scope"
351
+ }
352
+ },
353
+ {
354
+ "key": "context.input.duplicate.role",
355
+ "value": {
356
+ "stringValue": "selected"
357
+ }
358
+ },
359
+ {
360
+ "key": "context.input.duplicate.candidate_count",
361
+ "value": {
362
+ "intValue": 2
363
+ }
364
+ },
365
+ {
366
+ "key": "privacy.raw_context_recorded",
367
+ "value": {
368
+ "boolValue": false
369
+ }
370
+ },
371
+ {
372
+ "key": "privacy.raw_prompt_recorded",
373
+ "value": {
374
+ "boolValue": false
375
+ }
376
+ },
377
+ {
378
+ "key": "privacy.raw_tool_args_recorded",
379
+ "value": {
380
+ "boolValue": false
381
+ }
382
+ }
383
+ ]
384
+ },
385
+ {
386
+ "name": "context.skill.invoked",
387
+ "timeUnixNano": "0",
388
+ "attributes": [
389
+ {
390
+ "key": "context.input.kind",
391
+ "value": {
392
+ "stringValue": "skill"
393
+ }
394
+ },
395
+ {
396
+ "key": "context.skill.id",
397
+ "value": {
398
+ "stringValue": "engineering.review-checklist"
399
+ }
400
+ },
401
+ {
402
+ "key": "context.skill.name",
403
+ "value": {
404
+ "stringValue": "review-checklist"
405
+ }
406
+ },
407
+ {
408
+ "key": "context.skill.plugin",
409
+ "value": {
410
+ "stringValue": "global-skill-cache"
411
+ }
412
+ },
413
+ {
414
+ "key": "context.input.source.path",
415
+ "value": {
416
+ "stringValue": "~/.claude/skills/review-checklist/SKILL.md"
417
+ }
418
+ },
419
+ {
420
+ "key": "context.input.source.bytes_hash",
421
+ "value": {
422
+ "stringValue": "sha256:5cf40439ab667da8d5870d2497d84531ab73eb7f2aca64bf090fbbc1a4b9de19"
423
+ }
424
+ },
425
+ {
426
+ "key": "context.input.delivered.hash",
427
+ "value": {
428
+ "stringValue": "sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48"
429
+ }
430
+ },
431
+ {
432
+ "key": "session.id",
433
+ "value": {
434
+ "stringValue": "demo-session-skill-receipts"
435
+ }
436
+ },
437
+ {
438
+ "key": "gen_ai.conversation.id",
439
+ "value": {
440
+ "stringValue": "demo-session-skill-receipts"
441
+ }
442
+ },
443
+ {
444
+ "key": "context.input.loaded_by",
445
+ "value": {
446
+ "stringValue": "hook"
447
+ }
448
+ },
449
+ {
450
+ "key": "context.input.activation",
451
+ "value": {
452
+ "stringValue": "hook_post_commit"
453
+ }
454
+ },
455
+ {
456
+ "key": "context.input.hook_event",
457
+ "value": {
458
+ "stringValue": "post_commit"
459
+ }
460
+ },
461
+ {
462
+ "key": "context.input.scope",
463
+ "value": {
464
+ "stringValue": "plugin"
465
+ }
466
+ },
467
+ {
468
+ "key": "context.input.applies_to",
469
+ "value": {
470
+ "stringValue": "cowork"
471
+ }
472
+ },
473
+ {
474
+ "key": "context.input.why_loaded",
475
+ "value": {
476
+ "stringValue": "git:post-commit"
477
+ }
478
+ },
479
+ {
480
+ "key": "context.input.expected_benefit",
481
+ "value": {
482
+ "stringValue": "avoid loading duplicate skill prompts from cache and repo roots"
483
+ }
484
+ },
485
+ {
486
+ "key": "context.input.eval_gap",
487
+ "value": {
488
+ "stringValue": "suppression receipt does not prove the runtime actually suppressed every scanner root"
489
+ }
490
+ },
491
+ {
492
+ "key": "context.input.duplicate.dedupe_key",
493
+ "value": {
494
+ "stringValue": "conversation:engineering.review-checklist:hook_post_commit:post_commit:sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48"
495
+ }
496
+ },
497
+ {
498
+ "key": "context.input.duplicate.dedupe_scope",
499
+ "value": {
500
+ "stringValue": "conversation"
501
+ }
502
+ },
503
+ {
504
+ "key": "context.input.duplicate.suppression_policy",
505
+ "value": {
506
+ "stringValue": "suppress_equal_dedupe_key_within_scope"
507
+ }
508
+ },
509
+ {
510
+ "key": "context.input.duplicate.role",
511
+ "value": {
512
+ "stringValue": "suppressed"
513
+ }
514
+ },
515
+ {
516
+ "key": "context.input.duplicate.candidate_count",
517
+ "value": {
518
+ "intValue": 2
519
+ }
520
+ },
521
+ {
522
+ "key": "privacy.raw_context_recorded",
523
+ "value": {
524
+ "boolValue": false
525
+ }
526
+ },
527
+ {
528
+ "key": "privacy.raw_prompt_recorded",
529
+ "value": {
530
+ "boolValue": false
531
+ }
532
+ },
533
+ {
534
+ "key": "privacy.raw_tool_args_recorded",
535
+ "value": {
536
+ "boolValue": false
537
+ }
538
+ }
539
+ ]
540
+ }
541
+ ]
542
+ }
543
+ ]
544
+ }
545
+ ]
546
+ }
547
+ ]
548
+ }
@@ -0,0 +1,3 @@
1
+ {"trace_id":"demo-trace-skill-context-receipts","span_id":"demo-session-skill-receipts","name":"context.skill.invoked","time":"2026-05-21T13:00:04.000Z","attributes":{"context.input.kind":"skill","context.skill.id":"knowledge-work.weekly-brief","context.skill.name":"weekly-brief","context.skill.plugin":"knowledge-work-plugins","context.input.source.path":".claude/plugins/knowledge-work/weekly-brief/SKILL.md","context.input.source.bytes_hash":"sha256:830061a54d44c390714c42b3190c26ee33de83b555f9cd4c31803a3dc6990b2d","context.input.delivered.hash":"sha256:e4cb05b1c118c2047ae4a3a602446afa70e4611a6d6ef86f947f8fddba5a104d","session.id":"demo-session-skill-receipts","gen_ai.conversation.id":"demo-session-skill-receipts","context.input.loaded_by":"skill-runtime","context.input.activation":"manual_slash_command","context.input.hook_event":"none","context.input.scope":"plugin","context.input.applies_to":"cowork","context.input.why_loaded":"/weekly-brief","context.input.expected_benefit":"make skill adoption and ROI visible without logging the skill body","context.input.eval_gap":"outcome quality still requires a downstream task-result/eval metric","context.input.duplicate.dedupe_key":"conversation:knowledge-work.weekly-brief:manual_slash_command:none:sha256:e4cb05b1c118c2047ae4a3a602446afa70e4611a6d6ef86f947f8fddba5a104d","context.input.duplicate.dedupe_scope":"conversation","context.input.duplicate.suppression_policy":"suppress_equal_dedupe_key_within_scope","context.input.duplicate.role":"selected","context.input.duplicate.candidate_count":1,"privacy.raw_context_recorded":false,"privacy.raw_prompt_recorded":false,"privacy.raw_tool_args_recorded":false}}
2
+ {"trace_id":"demo-trace-skill-context-receipts","span_id":"demo-session-skill-receipts","name":"context.skill.invoked","time":"2026-05-21T13:00:08.000Z","attributes":{"context.input.kind":"skill","context.skill.id":"engineering.review-checklist","context.skill.name":"review-checklist","context.skill.plugin":"repo-local-skills","context.input.source.path":".agents/skills/review-checklist/SKILL.md","context.input.source.bytes_hash":"sha256:5cf40439ab667da8d5870d2497d84531ab73eb7f2aca64bf090fbbc1a4b9de19","context.input.delivered.hash":"sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48","session.id":"demo-session-skill-receipts","gen_ai.conversation.id":"demo-session-skill-receipts","context.input.loaded_by":"hook","context.input.activation":"hook_post_commit","context.input.hook_event":"post_commit","context.input.scope":"repo","context.input.applies_to":"cowork","context.input.why_loaded":"git:post-commit","context.input.expected_benefit":"prove deterministic hook-driven skill loads separately from manual skill use","context.input.eval_gap":"trace proves load; it does not prove review quality without follow-up outcome events","context.input.duplicate.dedupe_key":"conversation:engineering.review-checklist:hook_post_commit:post_commit:sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48","context.input.duplicate.dedupe_scope":"conversation","context.input.duplicate.suppression_policy":"suppress_equal_dedupe_key_within_scope","context.input.duplicate.role":"selected","context.input.duplicate.candidate_count":2,"privacy.raw_context_recorded":false,"privacy.raw_prompt_recorded":false,"privacy.raw_tool_args_recorded":false}}
3
+ {"trace_id":"demo-trace-skill-context-receipts","span_id":"demo-session-skill-receipts","name":"context.skill.invoked","time":"2026-05-21T13:00:08.500Z","attributes":{"context.input.kind":"skill","context.skill.id":"engineering.review-checklist","context.skill.name":"review-checklist","context.skill.plugin":"global-skill-cache","context.input.source.path":"~/.claude/skills/review-checklist/SKILL.md","context.input.source.bytes_hash":"sha256:5cf40439ab667da8d5870d2497d84531ab73eb7f2aca64bf090fbbc1a4b9de19","context.input.delivered.hash":"sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48","session.id":"demo-session-skill-receipts","gen_ai.conversation.id":"demo-session-skill-receipts","context.input.loaded_by":"hook","context.input.activation":"hook_post_commit","context.input.hook_event":"post_commit","context.input.scope":"plugin","context.input.applies_to":"cowork","context.input.why_loaded":"git:post-commit","context.input.expected_benefit":"avoid loading duplicate skill prompts from cache and repo roots","context.input.eval_gap":"suppression receipt does not prove the runtime actually suppressed every scanner root","context.input.duplicate.dedupe_key":"conversation:engineering.review-checklist:hook_post_commit:post_commit:sha256:18f762dbea51098adddca46b83c209f3d53752b1f62946d0f0e05635c03dce48","context.input.duplicate.dedupe_scope":"conversation","context.input.duplicate.suppression_policy":"suppress_equal_dedupe_key_within_scope","context.input.duplicate.role":"suppressed","context.input.duplicate.candidate_count":2,"privacy.raw_context_recorded":false,"privacy.raw_prompt_recorded":false,"privacy.raw_tool_args_recorded":false}}