@kryptosai/mcp-observatory 0.28.0 → 1.28.1

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 (108) hide show
  1. package/COMMERCIAL.md +26 -5
  2. package/README.md +65 -12
  3. package/dist/src/action-receipt.d.ts +20 -0
  4. package/dist/src/action-receipt.js +85 -0
  5. package/dist/src/action-receipt.js.map +1 -0
  6. package/dist/src/audit.d.ts +64 -0
  7. package/dist/src/audit.js +359 -0
  8. package/dist/src/audit.js.map +1 -0
  9. package/dist/src/checks/attack-sim.d.ts +2 -0
  10. package/dist/src/checks/attack-sim.js +12 -0
  11. package/dist/src/checks/attack-sim.js.map +1 -1
  12. package/dist/src/cli.js +8 -1
  13. package/dist/src/cli.js.map +1 -1
  14. package/dist/src/commands/attack-sim.js +54 -2
  15. package/dist/src/commands/attack-sim.js.map +1 -1
  16. package/dist/src/commands/audit.d.ts +2 -0
  17. package/dist/src/commands/audit.js +132 -0
  18. package/dist/src/commands/audit.js.map +1 -0
  19. package/dist/src/commands/init-ci.d.ts +2 -0
  20. package/dist/src/commands/init-ci.js +71 -11
  21. package/dist/src/commands/init-ci.js.map +1 -1
  22. package/dist/src/commands/legacy.js +2 -0
  23. package/dist/src/commands/legacy.js.map +1 -1
  24. package/dist/src/commands/receipt.d.ts +2 -0
  25. package/dist/src/commands/receipt.js +113 -0
  26. package/dist/src/commands/receipt.js.map +1 -0
  27. package/dist/src/commands/scan.js +23 -5
  28. package/dist/src/commands/scan.js.map +1 -1
  29. package/dist/src/commands/score.js +63 -0
  30. package/dist/src/commands/score.js.map +1 -1
  31. package/dist/src/commands/setup-ci-conversion.d.ts +2 -1
  32. package/dist/src/commands/setup-ci-conversion.js +22 -8
  33. package/dist/src/commands/setup-ci-conversion.js.map +1 -1
  34. package/dist/src/commands/test.js +18 -1
  35. package/dist/src/commands/test.js.map +1 -1
  36. package/dist/src/findings.d.ts +1 -0
  37. package/dist/src/findings.js +1 -0
  38. package/dist/src/findings.js.map +1 -1
  39. package/dist/src/index.d.ts +2 -0
  40. package/dist/src/index.js +2 -0
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/receipt.d.ts +100 -0
  43. package/dist/src/receipt.js +375 -0
  44. package/dist/src/receipt.js.map +1 -0
  45. package/dist/src/reporters/attack-sim.js +6 -1
  46. package/dist/src/reporters/attack-sim.js.map +1 -1
  47. package/dist/src/reporters/sarif.js +11 -1
  48. package/dist/src/reporters/sarif.js.map +1 -1
  49. package/dist/src/security-profiles.d.ts +13 -0
  50. package/dist/src/security-profiles.js +59 -0
  51. package/dist/src/security-profiles.js.map +1 -0
  52. package/dist/src/telemetry.d.ts +7 -0
  53. package/dist/src/telemetry.js.map +1 -1
  54. package/docs/10x-agentic-growth-sprint.md +47 -0
  55. package/docs/agent-ecosystem-promotion-plan.md +1 -1
  56. package/docs/agentic-contributor-outreach.md +52 -0
  57. package/docs/code-scanning-demo.md +2 -2
  58. package/docs/commercial-boundary.md +83 -0
  59. package/docs/contributor-proof-cards/README.md +1 -1
  60. package/docs/examples/nsa-mcp-audit-report.md +372 -0
  61. package/docs/examples/nsa-mcp-results.sarif +930 -0
  62. package/docs/examples/nsa-mcp-score.json +13 -0
  63. package/docs/feishu-lark-mcp.md +1 -1
  64. package/docs/github-code-scanning-for-mcp.md +1 -1
  65. package/docs/government-enterprise-pilot.md +93 -0
  66. package/docs/mcp-receipts.md +109 -0
  67. package/docs/mcp-server-safety-index.md +26 -25
  68. package/docs/nsa-mcp-audit-ci.md +88 -0
  69. package/docs/procurement-one-pager.md +74 -0
  70. package/docs/proof.md +2 -2
  71. package/docs/public-guidance-crosswalk.md +48 -0
  72. package/docs/safety-index/artifacts/antv-chart-server.json +41 -23
  73. package/docs/safety-index/artifacts/antv-chart-server.md +23 -10
  74. package/docs/safety-index/artifacts/browsermcp-server.json +38 -20
  75. package/docs/safety-index/artifacts/browsermcp-server.md +23 -10
  76. package/docs/safety-index/artifacts/context7-server.json +85 -28
  77. package/docs/safety-index/artifacts/context7-server.md +35 -22
  78. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +460 -36
  79. package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +31 -18
  80. package/docs/safety-index/artifacts/everything-server.json +38 -20
  81. package/docs/safety-index/artifacts/everything-server.md +25 -12
  82. package/docs/safety-index/artifacts/executeautomation-playwright-server.json +155 -20
  83. package/docs/safety-index/artifacts/executeautomation-playwright-server.md +26 -13
  84. package/docs/safety-index/artifacts/filesystem-server.json +116 -22
  85. package/docs/safety-index/artifacts/filesystem-server.md +27 -14
  86. package/docs/safety-index/artifacts/kubernetes-server.json +252 -27
  87. package/docs/safety-index/artifacts/kubernetes-server.md +44 -18
  88. package/docs/safety-index/artifacts/memory-server.json +39 -21
  89. package/docs/safety-index/artifacts/memory-server.md +24 -11
  90. package/docs/safety-index/artifacts/opentofu-server.json +38 -20
  91. package/docs/safety-index/artifacts/opentofu-server.md +24 -11
  92. package/docs/safety-index/artifacts/playwright-mcp-server.json +140 -20
  93. package/docs/safety-index/artifacts/playwright-mcp-server.md +26 -13
  94. package/docs/safety-index/artifacts/promptopia-server.json +41 -23
  95. package/docs/safety-index/artifacts/promptopia-server.md +26 -13
  96. package/docs/safety-index/artifacts/puppeteer-server.json +77 -34
  97. package/docs/safety-index/artifacts/puppeteer-server.md +45 -32
  98. package/docs/safety-index/artifacts/ref-tools-server.json +38 -20
  99. package/docs/safety-index/artifacts/ref-tools-server.md +22 -9
  100. package/docs/safety-index/artifacts/sequential-thinking-server.json +39 -21
  101. package/docs/safety-index/artifacts/sequential-thinking-server.md +23 -10
  102. package/docs/security-due-diligence.md +87 -0
  103. package/docs/setup-ci-doctor.md +11 -1
  104. package/docs/tool-call-receipts.md +1 -2
  105. package/examples/insecure-mcp-server/mcp-observatory.target.json +13 -0
  106. package/examples/insecure-mcp-server/server.mjs +62 -0
  107. package/package.json +12 -1
  108. package/scripts/postinstall.mjs +22 -7
@@ -2,9 +2,9 @@
2
2
  "artifactType": "run",
3
3
  "schemaVersion": "1.0.0",
4
4
  "gate": "pass",
5
- "runId": "run_2026-07-06T014654306Z_160413b5",
6
- "createdAt": "2026-07-06T01:46:54.306Z",
7
- "toolVersion": "0.26.1",
5
+ "runId": "run_2026-07-06T194948132Z_cb0c4915",
6
+ "createdAt": "2026-07-06T19:49:48.132Z",
7
+ "toolVersion": "0.28.0",
8
8
  "target": {
9
9
  "targetId": "context7-server",
10
10
  "adapter": "local-process",
@@ -22,17 +22,17 @@
22
22
  "whyItMatters": "Documentation retrieval tools can return untrusted text into agent context."
23
23
  },
24
24
  "serverName": "Context7",
25
- "serverVersion": "3.2.2"
25
+ "serverVersion": "3.2.3"
26
26
  },
27
27
  "environment": {
28
- "platform": "darwin 24.0.0",
29
- "nodeVersion": "v25.8.1"
28
+ "platform": "darwin 25.5.0",
29
+ "nodeVersion": "v22.22.1"
30
30
  },
31
31
  "summary": {
32
- "total": 7,
32
+ "total": 8,
33
33
  "pass": 7,
34
34
  "fail": 0,
35
- "partial": 0,
35
+ "partial": 1,
36
36
  "unsupported": 0,
37
37
  "flaky": 0,
38
38
  "skipped": 0,
@@ -43,7 +43,7 @@
43
43
  "id": "tools",
44
44
  "capability": "tools",
45
45
  "status": "pass",
46
- "durationMs": 1.7208330000003116,
46
+ "durationMs": 1.788749999999709,
47
47
  "message": "Advertised capability responded with the minimal expected shape (2 items).",
48
48
  "evidence": [
49
49
  {
@@ -57,7 +57,7 @@
57
57
  "query-docs"
58
58
  ],
59
59
  "diagnostics": [
60
- "Context7 Documentation MCP Server v3.2.2 running on stdio"
60
+ "Context7 Documentation MCP Server v3.2.3 running on stdio"
61
61
  ],
62
62
  "schemas": {
63
63
  "resolve-library-id": {
@@ -87,7 +87,7 @@
87
87
  },
88
88
  "query": {
89
89
  "type": "string",
90
- "description": "The question or task you need help with. Be specific and include relevant details. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad: 'auth' or 'hooks'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query."
90
+ "description": "The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query."
91
91
  }
92
92
  },
93
93
  "required": [
@@ -104,7 +104,7 @@
104
104
  "id": "prompts",
105
105
  "capability": "prompts",
106
106
  "status": "pass",
107
- "durationMs": 0.2972090000002936,
107
+ "durationMs": 0.2839160000003176,
108
108
  "message": "Advertised capability responded with the minimal expected shape (0 items).",
109
109
  "evidence": [
110
110
  {
@@ -115,7 +115,7 @@
115
115
  "itemCount": 0,
116
116
  "identifiers": [],
117
117
  "diagnostics": [
118
- "Context7 Documentation MCP Server v3.2.2 running on stdio"
118
+ "Context7 Documentation MCP Server v3.2.3 running on stdio"
119
119
  ]
120
120
  }
121
121
  ]
@@ -124,7 +124,7 @@
124
124
  "id": "resources",
125
125
  "capability": "resources",
126
126
  "status": "pass",
127
- "durationMs": 0.4392909999996846,
127
+ "durationMs": 0.4017499999999927,
128
128
  "message": "Advertised capability responded with the minimal expected shape (0 items).",
129
129
  "evidence": [
130
130
  {
@@ -135,7 +135,7 @@
135
135
  "itemCount": 0,
136
136
  "identifiers": [],
137
137
  "diagnostics": [
138
- "Context7 Documentation MCP Server v3.2.2 running on stdio"
138
+ "Context7 Documentation MCP Server v3.2.3 running on stdio"
139
139
  ]
140
140
  },
141
141
  {
@@ -146,7 +146,7 @@
146
146
  "itemCount": 0,
147
147
  "identifiers": [],
148
148
  "diagnostics": [
149
- "Context7 Documentation MCP Server v3.2.2 running on stdio"
149
+ "Context7 Documentation MCP Server v3.2.3 running on stdio"
150
150
  ]
151
151
  }
152
152
  ]
@@ -155,7 +155,7 @@
155
155
  "id": "security-lite",
156
156
  "capability": "security-lite",
157
157
  "status": "pass",
158
- "durationMs": 0.023624999999810825,
158
+ "durationMs": 0.02495900000030815,
159
159
  "message": "No security issues detected (lightweight scan).",
160
160
  "evidence": [
161
161
  {
@@ -171,7 +171,7 @@
171
171
  "id": "conformance",
172
172
  "capability": "conformance",
173
173
  "status": "pass",
174
- "durationMs": 0.7742079999998168,
174
+ "durationMs": 1.094916000000012,
175
175
  "message": "All 7 conformance checks passed.",
176
176
  "evidence": [
177
177
  {
@@ -197,7 +197,7 @@
197
197
  "id": "schema-quality",
198
198
  "capability": "schema-quality",
199
199
  "status": "pass",
200
- "durationMs": 0.6652500000000146,
200
+ "durationMs": 0.5149579999997513,
201
201
  "message": "All 2 item(s) have good schema quality.",
202
202
  "evidence": [
203
203
  {
@@ -214,7 +214,7 @@
214
214
  "id": "security",
215
215
  "capability": "security",
216
216
  "status": "pass",
217
- "durationMs": 0.29783299999962765,
217
+ "durationMs": 0.20175000000017462,
218
218
  "message": "No security issues detected.",
219
219
  "evidence": [
220
220
  {
@@ -225,10 +225,66 @@
225
225
  "itemCount": 0
226
226
  }
227
227
  ]
228
+ },
229
+ {
230
+ "id": "attack-sim",
231
+ "capability": "attack-sim",
232
+ "status": "partial",
233
+ "durationMs": 1.0464579999998023,
234
+ "message": "Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low.",
235
+ "evidence": [
236
+ {
237
+ "endpoint": "attack-sim/safe",
238
+ "advertised": true,
239
+ "responded": true,
240
+ "minimalShapePresent": true,
241
+ "itemCount": 2,
242
+ "identifiers": [
243
+ "resolve-library-id",
244
+ "query-docs"
245
+ ],
246
+ "diagnostics": [
247
+ "[medium] tool \"resolve-library-id\" contains agent behavior control text that could steer an agent.",
248
+ "[medium] tool \"query-docs\" contains agent behavior control text that could steer an agent."
249
+ ],
250
+ "findings": [
251
+ {
252
+ "ruleId": "attack-sim/tool-poisoning/agent-behavior-control",
253
+ "attackClass": "tool-poisoning",
254
+ "severity": "medium",
255
+ "itemType": "tool",
256
+ "itemName": "resolve-library-id",
257
+ "message": "tool \"resolve-library-id\" contains agent behavior control text that could steer an agent.",
258
+ "evidence": {
259
+ "path": "description",
260
+ "excerpt": "Resolves a package/product name to a Context7-compatible library ID and returns matching libraries.\n\nYou MUST call this function before 'Query Documentation' tool to obtain a valid Context7-compatible library ID UNLESS the user explicitly p",
261
+ "match": "MUST call this function before 'Query Documentation' tool"
262
+ },
263
+ "recommendation": "Remove hidden or behavioral instructions from MCP metadata; keep descriptions factual and user-visible.",
264
+ "recommendedAction": "gate"
265
+ },
266
+ {
267
+ "ruleId": "attack-sim/tool-poisoning/agent-behavior-control",
268
+ "attackClass": "tool-poisoning",
269
+ "severity": "medium",
270
+ "itemType": "tool",
271
+ "itemName": "query-docs",
272
+ "message": "tool \"query-docs\" contains agent behavior control text that could steer an agent.",
273
+ "evidence": {
274
+ "path": "description",
275
+ "excerpt": "Retrieves and queries up-to-date documentation and code examples from Context7 for any programming library or framework.\n\nYou must call 'Resolve Context7 Library ID' tool first to obtain the exact Context7-compatible library ID required to ",
276
+ "match": "must call 'Resolve Context7 Library ID' tool"
277
+ },
278
+ "recommendation": "Remove hidden or behavioral instructions from MCP metadata; keep descriptions factual and user-visible.",
279
+ "recommendedAction": "gate"
280
+ }
281
+ ]
282
+ }
283
+ ]
228
284
  }
229
285
  ],
230
286
  "healthScore": {
231
- "overall": 100,
287
+ "overall": 97,
232
288
  "grade": "A",
233
289
  "dimensions": [
234
290
  {
@@ -250,10 +306,11 @@
250
306
  {
251
307
  "name": "Security",
252
308
  "weight": 0.2,
253
- "score": 100,
309
+ "score": 87,
254
310
  "details": [
255
311
  "security-lite: pass (100/100)",
256
- "security: pass (100/100)"
312
+ "security: pass (100/100)",
313
+ "attack-sim: partial (60/100)"
257
314
  ]
258
315
  },
259
316
  {
@@ -271,16 +328,16 @@
271
328
  "weight": 0.1,
272
329
  "score": 100,
273
330
  "details": [
274
- "Connect: 817ms",
331
+ "Connect: 753ms",
275
332
  "p95 latency: 2ms (3 operations)"
276
333
  ]
277
334
  }
278
335
  ]
279
336
  },
280
337
  "performanceMetrics": {
281
- "connectMs": 817.0577499999995,
282
- "toolsListMs": 1.7208330000003116,
283
- "promptsListMs": 0.2972090000002936,
284
- "resourcesListMs": 0.4392909999996846
338
+ "connectMs": 753.3337500000002,
339
+ "toolsListMs": 1.788749999999709,
340
+ "promptsListMs": 0.2839160000003176,
341
+ "resourcesListMs": 0.4017499999999927
285
342
  }
286
343
  }
@@ -1,42 +1,42 @@
1
1
  # MCP Observatory Run Report
2
2
 
3
- Generated at 2026-07-06T01:46:54.306Z
3
+ Generated at 2026-07-06T19:49:48.132Z
4
4
 
5
5
  ## Target and Environment Metadata
6
6
 
7
7
  - Target: `context7-server`
8
8
  - Adapter: `local-process`
9
9
  - Command: `npx -y @upstash/context7-mcp`
10
- - Server: `Context7 3.2.2`
11
- - Platform: `darwin 24.0.0`
12
- - Node: `v25.8.1`
10
+ - Server: `Context7 3.2.3`
11
+ - Platform: `darwin 25.5.0`
12
+ - Node: `v22.22.1`
13
13
 
14
14
  ## Executive Summary
15
15
 
16
- **Health Score: 100/100 (A)**
16
+ **Health Score: 97/100 (A)**
17
17
 
18
18
  | Dimension | Score | Weight |
19
19
  | --- | --- | --- |
20
20
  | Protocol Compliance | 100/100 | 30% |
21
21
  | Schema Quality | 100/100 | 20% |
22
- | Security | 100/100 | 20% |
22
+ | Security | 87/100 | 20% |
23
23
  | Reliability | 100/100 | 20% |
24
24
  | Performance | 100/100 | 10% |
25
25
 
26
26
  | Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
27
27
  | --- | --- | --- | --- | --- | --- | --- | --- |
28
- | pass | 7 | 7 | 0 | 0 | 0 | 0 | 0 |
28
+ | pass | 8 | 7 | 0 | 1 | 0 | 0 | 0 |
29
29
 
30
30
  ## At a Glance
31
31
 
32
- - Safety verdict: **Ready** — No blocking MCP compatibility or security issues were detected.
33
- - Top risks: No high-priority risks detected.
32
+ - Safety verdict: **Needs review** — The server is usable, but caveated checks should be reviewed before agents depend on it.
33
+ - Top risks: attack-sim: Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low.
34
34
  - Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
35
35
  - Failing checks: none
36
- - Partial or flaky checks: none
36
+ - Partial or flaky checks: attack-sim
37
37
  - Skipped checks: none
38
38
  - Unsupported checks: none
39
- - Suggested next step: Save this run artifact and diff it against the next meaningful server or package change.
39
+ - Suggested next step: Review the caveated checks next: attack-sim.
40
40
  - CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
41
41
 
42
42
  ## Regressions and Recoveries
@@ -47,13 +47,14 @@ _Use the `diff` command against another run artifact to classify regressions and
47
47
 
48
48
  | Focus | Check | Status | Duration (ms) | Message |
49
49
  | --- | --- | --- | --- | --- |
50
- | healthy | conformance | pass | 0.77 | All 7 conformance checks passed. |
51
- | healthy | prompts | pass | 0.30 | Advertised capability responded with the minimal expected shape (0 items). |
52
- | healthy | resources | pass | 0.44 | Advertised capability responded with the minimal expected shape (0 items). |
53
- | healthy | schema-quality | pass | 0.67 | All 2 item(s) have good schema quality. |
54
- | healthy | security | pass | 0.30 | No security issues detected. |
50
+ | healthy | conformance | pass | 1.09 | All 7 conformance checks passed. |
51
+ | healthy | prompts | pass | 0.28 | Advertised capability responded with the minimal expected shape (0 items). |
52
+ | healthy | resources | pass | 0.40 | Advertised capability responded with the minimal expected shape (0 items). |
53
+ | healthy | schema-quality | pass | 0.51 | All 2 item(s) have good schema quality. |
54
+ | healthy | security | pass | 0.20 | No security issues detected. |
55
55
  | healthy | security-lite | pass | 0.02 | No security issues detected (lightweight scan). |
56
- | healthy | tools | pass | 1.72 | Advertised capability responded with the minimal expected shape (2 items). |
56
+ | healthy | tools | pass | 1.79 | Advertised capability responded with the minimal expected shape (2 items). |
57
+ | review | attack-sim | partial | 1.05 | Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low. |
57
58
 
58
59
  ## Evidence Snippets
59
60
 
@@ -79,7 +80,7 @@ Summary: Advertised capability responded with the minimal expected shape (0 item
79
80
  - Minimal shape present: `true`
80
81
  - Item count: `0`
81
82
  - Identifiers: none
82
- - Diagnostics: Context7 Documentation MCP Server v3.2.2 running on stdio
83
+ - Diagnostics: Context7 Documentation MCP Server v3.2.3 running on stdio
83
84
 
84
85
  ### resources — pass
85
86
 
@@ -91,14 +92,14 @@ Summary: Advertised capability responded with the minimal expected shape (0 item
91
92
  - Minimal shape present: `true`
92
93
  - Item count: `0`
93
94
  - Identifiers: none
94
- - Diagnostics: Context7 Documentation MCP Server v3.2.2 running on stdio
95
+ - Diagnostics: Context7 Documentation MCP Server v3.2.3 running on stdio
95
96
  - Endpoint: `resources/templates/list`
96
97
  - Advertised: `true`
97
98
  - Responded: `true`
98
99
  - Minimal shape present: `true`
99
100
  - Item count: `0`
100
101
  - Identifiers: none
101
- - Diagnostics: Context7 Documentation MCP Server v3.2.2 running on stdio
102
+ - Diagnostics: Context7 Documentation MCP Server v3.2.3 running on stdio
102
103
 
103
104
  ### schema-quality — pass
104
105
 
@@ -146,7 +147,19 @@ Summary: Advertised capability responded with the minimal expected shape (2 item
146
147
  - Minimal shape present: `true`
147
148
  - Item count: `2`
148
149
  - Identifiers: resolve-library-id, query-docs
149
- - Diagnostics: Context7 Documentation MCP Server v3.2.2 running on stdio
150
+ - Diagnostics: Context7 Documentation MCP Server v3.2.3 running on stdio
151
+
152
+ ### attack-sim — partial
153
+
154
+ Summary: Safe attack simulation found 2 finding(s): 0 high, 2 medium, 0 low.
155
+
156
+ - Endpoint: `attack-sim/safe`
157
+ - Advertised: `true`
158
+ - Responded: `true`
159
+ - Minimal shape present: `true`
160
+ - Item count: `2`
161
+ - Identifiers: resolve-library-id, query-docs
162
+ - Diagnostics: [medium] tool "resolve-library-id" contains agent behavior control text that could steer an agent., [medium] tool "query-docs" contains agent behavior control text that could steer an agent.
150
163
 
151
164
  ## Reproduction Commands
152
165
 
@@ -159,5 +172,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
159
172
 
160
173
  - Artifact type: `run`
161
174
  - Schema version: `1.0.0`
162
- - Run ID: `run_2026-07-06T014654306Z_160413b5`
175
+ - Run ID: `run_2026-07-06T194948132Z_cb0c4915`
163
176
  - Gate: `pass`