@agentskit/doc-bridge 1.7.45 → 1.9.0

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 (213) hide show
  1. package/CHANGELOG.md +465 -0
  2. package/CONTRIBUTING.md +23 -0
  3. package/README.md +87 -40
  4. package/SECURITY.md +7 -0
  5. package/action.yml +1 -1
  6. package/bin/ak-docs.js +2 -2
  7. package/bin/ak-verify.js +13 -7
  8. package/dist/cli/program.d.ts +3 -1
  9. package/dist/cli/program.js +15861 -6223
  10. package/dist/cli/program.js.map +1 -1
  11. package/dist/config/index.d.ts +1 -1
  12. package/dist/config/index.js +86 -6
  13. package/dist/config/index.js.map +1 -1
  14. package/dist/{index-BUL0q7s8.d.ts → index-Beor6Yhi.d.ts} +133 -1
  15. package/dist/index.d.ts +9871 -1062
  16. package/dist/index.js +16126 -6125
  17. package/dist/index.js.map +1 -1
  18. package/docs/MARKETPLACE.md +1 -1
  19. package/docs/PRD-documentation-efficiency-study.md +406 -0
  20. package/docs/PRD-knowledge-retrieval-and-enrichment.md +466 -0
  21. package/docs/adr/0002-documentation-audit-boundary.md +22 -0
  22. package/docs/adr/0003-study-protocol-and-historical-evidence.md +40 -0
  23. package/docs/adr/0004-controlled-study-runner.md +25 -0
  24. package/docs/adr/0005-documentation-quality-and-criticality.md +20 -0
  25. package/docs/adr/0006-registry-semantic-grounding.md +20 -0
  26. package/docs/adr/0007-longitudinal-study-metrics.md +21 -0
  27. package/docs/adr/0008-study-verification-boundary.md +21 -0
  28. package/docs/adr/0009-study-provider-cli-adapter.md +25 -0
  29. package/docs/agent-corpus/INDEX.md +12 -1
  30. package/docs/agent-corpus/OVERVIEW.md +25 -0
  31. package/docs/agent-corpus/chat.md +5 -1
  32. package/docs/agent-corpus/cli.md +16 -0
  33. package/docs/agent-corpus/conformance.md +12 -0
  34. package/docs/agent-corpus/doc-bridge.md +47 -0
  35. package/docs/agent-corpus/doctor.md +8 -0
  36. package/docs/agent-corpus/gates.md +4 -0
  37. package/docs/agent-corpus/mcp.md +13 -0
  38. package/docs/agent-corpus/memory.md +4 -0
  39. package/docs/agent-corpus/query.md +33 -0
  40. package/docs/bench/README.md +122 -0
  41. package/docs/bench/retrieval-baseline-v1.json +28 -0
  42. package/docs/bench/retrieval-suite-v1.json +1033 -0
  43. package/docs/chat-and-rag.md +3 -2
  44. package/docs/for-agents.md +9 -1
  45. package/docs/getting-started.md +4 -11
  46. package/docs/guides/gate-ci.md +11 -1
  47. package/docs/guides/install-and-run.md +9 -65
  48. package/docs/index.md +22 -1
  49. package/docs/knowledge-engine-runbook.md +38 -3
  50. package/docs/landing/assets/context-payload-reduction.svg +21 -0
  51. package/docs/landing/assets/controlled-ab-comparison.svg +30 -0
  52. package/docs/landing/index.html +119 -5
  53. package/docs/loop-workflow.md +117 -0
  54. package/docs/mcp.md +6 -1
  55. package/docs/parity/public-claims-v1.json +145 -0
  56. package/docs/playbook/doc-bridge-pattern.md +1 -1
  57. package/docs/query.md +90 -2
  58. package/docs/recipes/index-pipeline.md +1 -1
  59. package/docs/schemas/agent-handoff-v1.md +15 -0
  60. package/docs/schemas/doc-bridge-index-v1.md +65 -0
  61. package/docs/spec/benchmark-v1.md +33 -1
  62. package/docs/spec/cli.md +30 -10
  63. package/docs/spec/config-v1.md +147 -8
  64. package/docs/spec/documentation-audit-v1.md +61 -0
  65. package/docs/spec/enrichment-overlay-v1.md +241 -0
  66. package/docs/spec/graph-signals-v1.md +92 -0
  67. package/docs/spec/incremental-scan-v1.md +102 -0
  68. package/docs/spec/markdown-analyzer-v1.md +73 -0
  69. package/docs/spec/mcp-knowledge-tools-v1.md +147 -0
  70. package/docs/spec/measured-enrichment-v1.md +229 -0
  71. package/docs/spec/public-parity-v1.md +119 -0
  72. package/docs/spec/registry-agents.md +6 -0
  73. package/docs/spec/render-v1.md +122 -0
  74. package/docs/spec/retrieval-index-v1.md +164 -0
  75. package/docs/spec/study-metrics-v1.md +58 -0
  76. package/docs/spec/study-protocol-v1.md +46 -0
  77. package/docs/spec/study-provider-cli-v1.md +116 -0
  78. package/docs/spec/study-runner-v1.md +35 -0
  79. package/docs/spec/study-task-suite-v1.md +41 -0
  80. package/docs/spec/study-verification-v1.md +40 -0
  81. package/docs/study/README.md +84 -0
  82. package/docs/study/ab-adjudicated-cost-analysis-v1.md +29 -0
  83. package/docs/study/ab-adjudicated-cost-plan-v1.json +33 -0
  84. package/docs/study/ab-adjudicated-cost-plan-v2-v1.json +33 -0
  85. package/docs/study/ab-adjudicated-cost-result-v1.json +80 -0
  86. package/docs/study/ab-baseline-analysis-v1.md +21 -0
  87. package/docs/study/ab-baseline-plan-v1.json +33 -0
  88. package/docs/study/ab-baseline-recovery-plan-v1.json +33 -0
  89. package/docs/study/ab-baseline-result-v1.json +79 -0
  90. package/docs/study/documentation-audit-round-2026-08-31.json +183 -0
  91. package/docs/study/historical-evidence-v1.json +252 -0
  92. package/docs/study/observation-ledger-v1.json +30632 -0
  93. package/docs/study/phase3-task-coverage-v1.json +34 -0
  94. package/docs/study/phase4-public-pilot-ledger-v1.json +1344 -0
  95. package/docs/study/phase4-public-pilot-result-v1.json +52 -0
  96. package/docs/study/phase4-public-pilot-run-plan-v1.json +26 -0
  97. package/docs/study/phase4-public-pilot-task-suite-v1.json +71 -0
  98. package/docs/study/pilot-round-2026-08-31.json +46 -0
  99. package/docs/study/protocol-v1.json +90 -0
  100. package/docs/study/publication-gate-v1.md +45 -0
  101. package/docs/study/quality-scorecard-cycle-plan.md +545 -0
  102. package/docs/study/quality-scorecard-v1.json +38 -0
  103. package/docs/study/round-1-adjudicated-smoke-v1.json +30642 -0
  104. package/docs/study/round-1-instrumentation-plan-v1.md +39 -0
  105. package/docs/study/round-2-expanded-adjudication-v1.json +91 -0
  106. package/docs/study/round-2-expanded-validation-v1.md +58 -0
  107. package/docs/study/round-3-evidence-contract-v1.json +75 -0
  108. package/docs/study/round-3-evidence-contract-v1.md +57 -0
  109. package/docs/study/round-4-confirmation-v1.json +75 -0
  110. package/docs/study/round-4-confirmation-v1.md +55 -0
  111. package/docs/study/run-plan-v1.json +33 -0
  112. package/docs/study/semantic-adjudication-cycle-8.md +20 -0
  113. package/docs/study/task-suite-v1.json +96 -0
  114. package/docs/study/token-efficiency-plan-v1.md +337 -0
  115. package/docs/study/token-efficiency-protocol-v2.json +62 -0
  116. package/docs/study/verification-binding-v1.json +27 -0
  117. package/docs/validation-cycle-plan.md +14 -0
  118. package/docs/verification-harness.md +11 -6
  119. package/ecosystem-claims.json +2 -2
  120. package/ecosystem-upstream.json +2 -2
  121. package/ecosystem.json +4 -4
  122. package/mcpb/manifest.json +9 -1
  123. package/package.json +25 -6
  124. package/scripts/check-ecosystem-upstream.mjs +34 -6
  125. package/skills/doc-bridge-handoff/fixtures/synthetic-repo/docs/for-agents/packages/payments.md +7 -0
  126. package/skills/doc-bridge-handoff/scripts/resolve-handoff.mjs +1 -1
  127. package/src/agents/registry-adapter.ts +192 -24
  128. package/src/audit/documentation.ts +513 -0
  129. package/src/bench/baseline.ts +198 -0
  130. package/src/bench/overlay-delta.ts +139 -0
  131. package/src/bench/retrieval.ts +319 -0
  132. package/src/budget/compile.ts +91 -0
  133. package/src/budget/sections.ts +70 -0
  134. package/src/cli/program.ts +684 -74
  135. package/src/cli/usage.ts +71 -0
  136. package/src/config/defaults.ts +1 -0
  137. package/src/config/index.ts +4 -0
  138. package/src/config/schema.ts +117 -2
  139. package/src/conformance/documentation-standard-v1.ts +8 -6
  140. package/src/discovery/areas.ts +182 -0
  141. package/src/discovery/documentation.ts +211 -5
  142. package/src/discovery/identity.ts +24 -0
  143. package/src/discovery/incremental.ts +314 -0
  144. package/src/discovery/inputs.ts +110 -0
  145. package/src/discovery/markdown.ts +481 -0
  146. package/src/discovery/repository.ts +484 -101
  147. package/src/doctor/run-doctor.ts +244 -12
  148. package/src/enrich/approvals.ts +190 -0
  149. package/src/enrich/cache.ts +93 -0
  150. package/src/enrich/context-pack.ts +272 -0
  151. package/src/enrich/overlay.ts +255 -0
  152. package/src/enrich/review.ts +106 -0
  153. package/src/enrich/stage.ts +374 -0
  154. package/src/enrich/stats.ts +100 -0
  155. package/src/enrich/validate.ts +410 -0
  156. package/src/federation/llms.ts +2 -4
  157. package/src/findings/report.ts +103 -0
  158. package/src/graph/build.ts +356 -0
  159. package/src/graph/memory.ts +208 -0
  160. package/src/index-builder/build-handoffs.ts +22 -11
  161. package/src/index-builder/build-index.ts +132 -3
  162. package/src/index-builder/llms-txt.ts +48 -8
  163. package/src/index-builder/project-corpus.ts +111 -0
  164. package/src/index.ts +630 -2
  165. package/src/lib/fuzzy-match.ts +235 -0
  166. package/src/mcp/knowledge.ts +554 -0
  167. package/src/mcp/server.ts +113 -18
  168. package/src/metrics/benchmark.ts +21 -0
  169. package/src/parity/check.ts +309 -0
  170. package/src/parity/claims.ts +259 -0
  171. package/src/parity/resolve.ts +160 -0
  172. package/src/query/handoff.ts +326 -0
  173. package/src/query/load-index.ts +53 -1
  174. package/src/query/query.ts +92 -59
  175. package/src/query/search.ts +289 -92
  176. package/src/query/text.ts +155 -0
  177. package/src/reconciliation/reconcile.ts +101 -10
  178. package/src/render/data.ts +356 -0
  179. package/src/render/engine.ts +398 -0
  180. package/src/render/generated.ts +77 -0
  181. package/src/render/render.ts +209 -0
  182. package/src/render/template-source.ts +52 -0
  183. package/src/render/templates.ts +289 -0
  184. package/src/report/html.ts +2 -2
  185. package/src/retrieval/bm25.ts +161 -0
  186. package/src/retrieval/project.ts +495 -0
  187. package/src/retrieval/rank.ts +383 -0
  188. package/src/retrieval/weights.ts +39 -0
  189. package/src/retriever/doc-bridge-retriever.ts +100 -15
  190. package/src/rules/engine.ts +30 -10
  191. package/src/schemas/agent-handoff.ts +56 -0
  192. package/src/schemas/budget.ts +37 -0
  193. package/src/schemas/doc-bridge-index.ts +53 -2
  194. package/src/schemas/enrichment.ts +369 -0
  195. package/src/schemas/json-schemas.ts +39 -2
  196. package/src/schemas/knowledge.ts +14 -1
  197. package/src/schemas/retrieval-index.ts +152 -0
  198. package/src/shims/graphology.d.ts +91 -0
  199. package/src/study/adjudication.ts +196 -0
  200. package/src/study/execution.ts +350 -0
  201. package/src/study/expectations.ts +219 -0
  202. package/src/study/metrics.ts +467 -0
  203. package/src/study/protocol.ts +271 -0
  204. package/src/study/provider-cli.ts +115 -0
  205. package/src/study/provider-telemetry.ts +47 -0
  206. package/src/study/quality-scorecard.ts +164 -0
  207. package/src/study/runner.ts +461 -0
  208. package/src/study/task-suite.ts +321 -0
  209. package/src/study/verification.ts +134 -0
  210. package/src/validate.ts +1 -4
  211. package/src/version.ts +1 -1
  212. package/src/workflow/engine.ts +36 -11
  213. package/scripts/verification-harness.mjs +0 -482
@@ -0,0 +1,1033 @@
1
+ {
2
+ "evalFormatVersion": "2026-04",
3
+ "name": "doc-bridge-retrieval-v1",
4
+ "description": "Golden retrieval queries for this repository: exported symbols, file and directory paths, natural-language questions in English and Portuguese, and ownership routing. A case passes when one of its expected targets appears in the ranking; a target matches a result by entity id or by repository path, so the suite survives the entity-identity changes in KR-01 through KR-06.",
5
+ "tags": [
6
+ "retrieval",
7
+ "doc-bridge",
8
+ "deterministic"
9
+ ],
10
+ "cases": [
11
+ {
12
+ "id": "symbol-search-index",
13
+ "input": "searchIndex",
14
+ "expected": {
15
+ "regex": {
16
+ "body": "src/query/search\\.ts"
17
+ }
18
+ },
19
+ "metadata": {
20
+ "expectedTargets": [
21
+ "src/query/search.ts"
22
+ ],
23
+ "lang": "en",
24
+ "kind": "symbol"
25
+ }
26
+ },
27
+ {
28
+ "id": "symbol-reconcile-knowledge",
29
+ "input": "reconcileKnowledge",
30
+ "expected": {
31
+ "regex": {
32
+ "body": "src/reconciliation/reconcile\\.ts"
33
+ }
34
+ },
35
+ "metadata": {
36
+ "expectedTargets": [
37
+ "src/reconciliation/reconcile.ts"
38
+ ],
39
+ "lang": "en",
40
+ "kind": "symbol"
41
+ }
42
+ },
43
+ {
44
+ "id": "symbol-discover-repository",
45
+ "input": "discoverRepository",
46
+ "expected": {
47
+ "regex": {
48
+ "body": "src/discovery/repository\\.ts"
49
+ }
50
+ },
51
+ "metadata": {
52
+ "expectedTargets": [
53
+ "src/discovery/repository.ts"
54
+ ],
55
+ "lang": "en",
56
+ "kind": "symbol"
57
+ }
58
+ },
59
+ {
60
+ "id": "symbol-build-index",
61
+ "input": "buildDocBridgeIndex",
62
+ "expected": {
63
+ "regex": {
64
+ "body": "src/index-builder/build-index\\.ts"
65
+ }
66
+ },
67
+ "metadata": {
68
+ "expectedTargets": [
69
+ "src/index-builder/build-index.ts"
70
+ ],
71
+ "lang": "en",
72
+ "kind": "symbol"
73
+ }
74
+ },
75
+ {
76
+ "id": "symbol-run-workflow",
77
+ "input": "runWorkflow",
78
+ "expected": {
79
+ "regex": {
80
+ "body": "src/workflow/engine\\.ts"
81
+ }
82
+ },
83
+ "metadata": {
84
+ "expectedTargets": [
85
+ "src/workflow/engine.ts"
86
+ ],
87
+ "lang": "en",
88
+ "kind": "symbol"
89
+ }
90
+ },
91
+ {
92
+ "id": "symbol-handle-mcp-request",
93
+ "input": "handleMcpRequest",
94
+ "expected": {
95
+ "regex": {
96
+ "body": "src/mcp/server\\.ts"
97
+ }
98
+ },
99
+ "metadata": {
100
+ "expectedTargets": [
101
+ "src/mcp/server.ts"
102
+ ],
103
+ "lang": "en",
104
+ "kind": "symbol"
105
+ }
106
+ },
107
+ {
108
+ "id": "symbol-audit-documentation",
109
+ "input": "auditDocumentation",
110
+ "expected": {
111
+ "regex": {
112
+ "body": "src/audit/documentation\\.ts"
113
+ }
114
+ },
115
+ "metadata": {
116
+ "expectedTargets": [
117
+ "src/audit/documentation.ts"
118
+ ],
119
+ "lang": "en",
120
+ "kind": "symbol"
121
+ }
122
+ },
123
+ {
124
+ "id": "symbol-evaluate-rules",
125
+ "input": "evaluateRules",
126
+ "expected": {
127
+ "regex": {
128
+ "body": "src/rules/engine\\.ts"
129
+ }
130
+ },
131
+ "metadata": {
132
+ "expectedTargets": [
133
+ "src/rules/engine.ts"
134
+ ],
135
+ "lang": "en",
136
+ "kind": "symbol"
137
+ }
138
+ },
139
+ {
140
+ "id": "symbol-run-doctor",
141
+ "input": "runDoctor",
142
+ "expected": {
143
+ "regex": {
144
+ "body": "src/doctor/run-doctor\\.ts"
145
+ }
146
+ },
147
+ "metadata": {
148
+ "expectedTargets": [
149
+ "src/doctor/run-doctor.ts"
150
+ ],
151
+ "lang": "en",
152
+ "kind": "symbol"
153
+ }
154
+ },
155
+ {
156
+ "id": "symbol-run-gates",
157
+ "input": "runGates",
158
+ "expected": {
159
+ "regex": {
160
+ "body": "src/gates/run-gates\\.ts"
161
+ }
162
+ },
163
+ "metadata": {
164
+ "expectedTargets": [
165
+ "src/gates/run-gates.ts"
166
+ ],
167
+ "lang": "en",
168
+ "kind": "symbol"
169
+ }
170
+ },
171
+ {
172
+ "id": "symbol-apply-fix-proposal",
173
+ "input": "applyFixProposal",
174
+ "expected": {
175
+ "regex": {
176
+ "body": "src/fixes/proposals\\.ts"
177
+ }
178
+ },
179
+ "metadata": {
180
+ "expectedTargets": [
181
+ "src/fixes/proposals.ts"
182
+ ],
183
+ "lang": "en",
184
+ "kind": "symbol"
185
+ }
186
+ },
187
+ {
188
+ "id": "symbol-create-registry-adapter",
189
+ "input": "createRegistryAgentAdapter",
190
+ "expected": {
191
+ "regex": {
192
+ "body": "src/agents/registry-adapter\\.ts"
193
+ }
194
+ },
195
+ "metadata": {
196
+ "expectedTargets": [
197
+ "src/agents/registry-adapter.ts"
198
+ ],
199
+ "lang": "en",
200
+ "kind": "symbol"
201
+ }
202
+ },
203
+ {
204
+ "id": "symbol-retrieve-chunks",
205
+ "input": "retrieveDocBridgeChunks",
206
+ "expected": {
207
+ "regex": {
208
+ "body": "src/retriever/doc-bridge-retriever\\.ts"
209
+ }
210
+ },
211
+ "metadata": {
212
+ "expectedTargets": [
213
+ "src/retriever/doc-bridge-retriever.ts"
214
+ ],
215
+ "lang": "en",
216
+ "kind": "symbol"
217
+ }
218
+ },
219
+ {
220
+ "id": "symbol-scan-agent-corpus",
221
+ "input": "scanAgentCorpus",
222
+ "expected": {
223
+ "regex": {
224
+ "body": "src/index-builder/scan-corpus\\.ts"
225
+ }
226
+ },
227
+ "metadata": {
228
+ "expectedTargets": [
229
+ "src/index-builder/scan-corpus.ts"
230
+ ],
231
+ "lang": "en",
232
+ "kind": "symbol"
233
+ }
234
+ },
235
+ {
236
+ "id": "symbol-parse-frontmatter",
237
+ "input": "parseFrontmatter",
238
+ "expected": {
239
+ "regex": {
240
+ "body": "src/lib/markdown\\.ts"
241
+ }
242
+ },
243
+ "metadata": {
244
+ "expectedTargets": [
245
+ "src/lib/markdown.ts"
246
+ ],
247
+ "lang": "en",
248
+ "kind": "symbol"
249
+ }
250
+ },
251
+ {
252
+ "id": "symbol-index-stale-error",
253
+ "input": "IndexStaleError",
254
+ "expected": {
255
+ "regex": {
256
+ "body": "src/query/load-index\\.ts"
257
+ }
258
+ },
259
+ "metadata": {
260
+ "expectedTargets": [
261
+ "src/query/load-index.ts"
262
+ ],
263
+ "lang": "en",
264
+ "kind": "symbol"
265
+ }
266
+ },
267
+ {
268
+ "id": "symbol-classify-memory",
269
+ "input": "classifyMemoryCandidates",
270
+ "expected": {
271
+ "regex": {
272
+ "body": "src/memory/pipeline\\.ts"
273
+ }
274
+ },
275
+ "metadata": {
276
+ "expectedTargets": [
277
+ "src/memory/pipeline.ts"
278
+ ],
279
+ "lang": "en",
280
+ "kind": "symbol"
281
+ }
282
+ },
283
+ {
284
+ "id": "symbol-parse-declarations",
285
+ "input": "parseDocumentationDeclarations",
286
+ "expected": {
287
+ "regex": {
288
+ "body": "src/discovery/documentation\\.ts"
289
+ }
290
+ },
291
+ "metadata": {
292
+ "expectedTargets": [
293
+ "src/discovery/documentation.ts"
294
+ ],
295
+ "lang": "en",
296
+ "kind": "symbol"
297
+ }
298
+ },
299
+ {
300
+ "id": "symbol-run-retrieval-bench",
301
+ "input": "runRetrievalBench",
302
+ "expected": {
303
+ "regex": {
304
+ "body": "src/bench/retrieval\\.ts"
305
+ }
306
+ },
307
+ "metadata": {
308
+ "expectedTargets": [
309
+ "src/bench/retrieval.ts"
310
+ ],
311
+ "lang": "en",
312
+ "kind": "symbol"
313
+ }
314
+ },
315
+ {
316
+ "id": "symbol-mcp-tools",
317
+ "input": "MCP_TOOLS",
318
+ "expected": {
319
+ "regex": {
320
+ "body": "src/mcp/server\\.ts"
321
+ }
322
+ },
323
+ "metadata": {
324
+ "expectedTargets": [
325
+ "src/mcp/server.ts"
326
+ ],
327
+ "lang": "en",
328
+ "kind": "symbol"
329
+ }
330
+ },
331
+ {
332
+ "id": "path-mcp-server",
333
+ "input": "src/mcp/server.ts",
334
+ "expected": {
335
+ "regex": {
336
+ "body": "src/mcp/server\\.ts"
337
+ }
338
+ },
339
+ "metadata": {
340
+ "expectedTargets": [
341
+ "src/mcp/server.ts"
342
+ ],
343
+ "lang": "en",
344
+ "kind": "path"
345
+ }
346
+ },
347
+ {
348
+ "id": "path-query-dir",
349
+ "input": "src/query",
350
+ "expected": {
351
+ "regex": {
352
+ "body": "src/query|src/query/search\\.ts|src/query/query\\.ts|doc-bridge-query"
353
+ }
354
+ },
355
+ "metadata": {
356
+ "expectedTargets": [
357
+ "src/query",
358
+ "src/query/search.ts",
359
+ "src/query/query.ts",
360
+ "doc-bridge-query"
361
+ ],
362
+ "lang": "en",
363
+ "kind": "path"
364
+ }
365
+ },
366
+ {
367
+ "id": "path-reconcile",
368
+ "input": "src/reconciliation/reconcile.ts",
369
+ "expected": {
370
+ "regex": {
371
+ "body": "src/reconciliation/reconcile\\.ts"
372
+ }
373
+ },
374
+ "metadata": {
375
+ "expectedTargets": [
376
+ "src/reconciliation/reconcile.ts"
377
+ ],
378
+ "lang": "en",
379
+ "kind": "path"
380
+ }
381
+ },
382
+ {
383
+ "id": "path-workflow-engine",
384
+ "input": "src/workflow/engine.ts",
385
+ "expected": {
386
+ "regex": {
387
+ "body": "src/workflow/engine\\.ts"
388
+ }
389
+ },
390
+ "metadata": {
391
+ "expectedTargets": [
392
+ "src/workflow/engine.ts"
393
+ ],
394
+ "lang": "en",
395
+ "kind": "path"
396
+ }
397
+ },
398
+ {
399
+ "id": "path-knowledge-schema",
400
+ "input": "src/schemas/knowledge.ts",
401
+ "expected": {
402
+ "regex": {
403
+ "body": "src/schemas/knowledge\\.ts"
404
+ }
405
+ },
406
+ "metadata": {
407
+ "expectedTargets": [
408
+ "src/schemas/knowledge.ts"
409
+ ],
410
+ "lang": "en",
411
+ "kind": "path"
412
+ }
413
+ },
414
+ {
415
+ "id": "path-config-schema",
416
+ "input": "src/config/schema.ts",
417
+ "expected": {
418
+ "regex": {
419
+ "body": "src/config/schema\\.ts"
420
+ }
421
+ },
422
+ "metadata": {
423
+ "expectedTargets": [
424
+ "src/config/schema.ts"
425
+ ],
426
+ "lang": "en",
427
+ "kind": "path"
428
+ }
429
+ },
430
+ {
431
+ "id": "path-report-html",
432
+ "input": "src/report/html.ts",
433
+ "expected": {
434
+ "regex": {
435
+ "body": "src/report/html\\.ts"
436
+ }
437
+ },
438
+ "metadata": {
439
+ "expectedTargets": [
440
+ "src/report/html.ts"
441
+ ],
442
+ "lang": "en",
443
+ "kind": "path"
444
+ }
445
+ },
446
+ {
447
+ "id": "path-runbook-doc",
448
+ "input": "docs/knowledge-engine-runbook.md",
449
+ "expected": {
450
+ "regex": {
451
+ "body": "docs/knowledge-engine-runbook\\.md"
452
+ }
453
+ },
454
+ "metadata": {
455
+ "expectedTargets": [
456
+ "docs/knowledge-engine-runbook.md"
457
+ ],
458
+ "lang": "en",
459
+ "kind": "path"
460
+ }
461
+ },
462
+ {
463
+ "id": "q-add-mcp-tool",
464
+ "input": "where do I add a new MCP tool",
465
+ "expected": {
466
+ "regex": {
467
+ "body": "src/mcp|src/mcp/server\\.ts|docs/mcp\\.md|doc-bridge-mcp|docs/agent-corpus/mcp\\.md"
468
+ }
469
+ },
470
+ "metadata": {
471
+ "expectedTargets": [
472
+ "src/mcp",
473
+ "src/mcp/server.ts",
474
+ "docs/mcp.md",
475
+ "doc-bridge-mcp",
476
+ "docs/agent-corpus/mcp.md"
477
+ ],
478
+ "lang": "en",
479
+ "kind": "question"
480
+ }
481
+ },
482
+ {
483
+ "id": "q-workflow-transitions",
484
+ "input": "where are workflow transitions persisted",
485
+ "expected": {
486
+ "regex": {
487
+ "body": "src/workflow/engine\\.ts|docs/knowledge-engine-runbook\\.md"
488
+ }
489
+ },
490
+ "metadata": {
491
+ "expectedTargets": [
492
+ "src/workflow/engine.ts",
493
+ "docs/knowledge-engine-runbook.md"
494
+ ],
495
+ "lang": "en",
496
+ "kind": "question"
497
+ }
498
+ },
499
+ {
500
+ "id": "q-reconcile-declared-observed",
501
+ "input": "how does reconciliation compare declared and observed relations",
502
+ "expected": {
503
+ "regex": {
504
+ "body": "src/reconciliation/reconcile\\.ts|docs/knowledge-engine-runbook\\.md"
505
+ }
506
+ },
507
+ "metadata": {
508
+ "expectedTargets": [
509
+ "src/reconciliation/reconcile.ts",
510
+ "docs/knowledge-engine-runbook.md"
511
+ ],
512
+ "lang": "en",
513
+ "kind": "question"
514
+ }
515
+ },
516
+ {
517
+ "id": "q-index-freshness",
518
+ "input": "how does the gate detect a stale index",
519
+ "expected": {
520
+ "regex": {
521
+ "body": "src/gates/run-gates\\.ts|src/query/load-index\\.ts|docs/guides/gate-ci\\.md|doc-bridge-gates"
522
+ }
523
+ },
524
+ "metadata": {
525
+ "expectedTargets": [
526
+ "src/gates/run-gates.ts",
527
+ "src/query/load-index.ts",
528
+ "docs/guides/gate-ci.md",
529
+ "doc-bridge-gates"
530
+ ],
531
+ "lang": "en",
532
+ "kind": "question"
533
+ }
534
+ },
535
+ {
536
+ "id": "q-registry-agent-grounding",
537
+ "input": "how is a registry agent proposal validated against evidence",
538
+ "expected": {
539
+ "regex": {
540
+ "body": "src/agents/registry-adapter\\.ts|docs/adr/0006-registry-semantic-grounding\\.md"
541
+ }
542
+ },
543
+ "metadata": {
544
+ "expectedTargets": [
545
+ "src/agents/registry-adapter.ts",
546
+ "docs/adr/0006-registry-semantic-grounding.md"
547
+ ],
548
+ "lang": "en",
549
+ "kind": "question"
550
+ }
551
+ },
552
+ {
553
+ "id": "q-handoff-shape",
554
+ "input": "what fields does an agent handoff contain",
555
+ "expected": {
556
+ "regex": {
557
+ "body": "docs/schemas/agent-handoff-v1\\.md|src/schemas/agent-handoff\\.ts"
558
+ }
559
+ },
560
+ "metadata": {
561
+ "expectedTargets": [
562
+ "docs/schemas/agent-handoff-v1.md",
563
+ "src/schemas/agent-handoff.ts"
564
+ ],
565
+ "lang": "en",
566
+ "kind": "question"
567
+ }
568
+ },
569
+ {
570
+ "id": "q-memory-promotion",
571
+ "input": "how does agent memory become a documentation draft",
572
+ "expected": {
573
+ "regex": {
574
+ "body": "src/memory/pipeline\\.ts|docs/guides/memory-pipeline\\.md|doc-bridge-memory|docs/agent-corpus/memory\\.md"
575
+ }
576
+ },
577
+ "metadata": {
578
+ "expectedTargets": [
579
+ "src/memory/pipeline.ts",
580
+ "docs/guides/memory-pipeline.md",
581
+ "doc-bridge-memory",
582
+ "docs/agent-corpus/memory.md"
583
+ ],
584
+ "lang": "en",
585
+ "kind": "question"
586
+ }
587
+ },
588
+ {
589
+ "id": "q-doc-audit-limits",
590
+ "input": "what does the documentation audit leave not analyzed",
591
+ "expected": {
592
+ "regex": {
593
+ "body": "src/audit/documentation\\.ts|docs/adr/0002-documentation-audit-boundary\\.md"
594
+ }
595
+ },
596
+ "metadata": {
597
+ "expectedTargets": [
598
+ "src/audit/documentation.ts",
599
+ "docs/adr/0002-documentation-audit-boundary.md"
600
+ ],
601
+ "lang": "en",
602
+ "kind": "question"
603
+ }
604
+ },
605
+ {
606
+ "id": "q-configure-ownership",
607
+ "input": "how do I configure ownership and checks for a package",
608
+ "expected": {
609
+ "regex": {
610
+ "body": "docs/spec/config-v1\\.md|src/config/schema\\.ts|doc-bridge\\.config\\.json"
611
+ }
612
+ },
613
+ "metadata": {
614
+ "expectedTargets": [
615
+ "docs/spec/config-v1.md",
616
+ "src/config/schema.ts",
617
+ "doc-bridge.config.json"
618
+ ],
619
+ "lang": "en",
620
+ "kind": "question"
621
+ }
622
+ },
623
+ {
624
+ "id": "q-install-and-run",
625
+ "input": "how do I install and run doc bridge for the first time",
626
+ "expected": {
627
+ "regex": {
628
+ "body": "docs/getting-started\\.md|docs/guides/install-and-run\\.md"
629
+ }
630
+ },
631
+ "metadata": {
632
+ "expectedTargets": [
633
+ "docs/getting-started.md",
634
+ "docs/guides/install-and-run.md"
635
+ ],
636
+ "lang": "en",
637
+ "kind": "question"
638
+ }
639
+ },
640
+ {
641
+ "id": "q-chat-and-rag",
642
+ "input": "how do I enable optional chat and rag",
643
+ "expected": {
644
+ "regex": {
645
+ "body": "docs/chat-and-rag\\.md|src/intelligence/rag\\.ts|doc-bridge-chat|docs/agent-corpus/chat\\.md"
646
+ }
647
+ },
648
+ "metadata": {
649
+ "expectedTargets": [
650
+ "docs/chat-and-rag.md",
651
+ "src/intelligence/rag.ts",
652
+ "doc-bridge-chat",
653
+ "docs/agent-corpus/chat.md"
654
+ ],
655
+ "lang": "en",
656
+ "kind": "question"
657
+ }
658
+ },
659
+ {
660
+ "id": "q-contribute",
661
+ "input": "how do I run the tests before opening a pull request",
662
+ "expected": {
663
+ "regex": {
664
+ "body": "CONTRIBUTING\\.md"
665
+ }
666
+ },
667
+ "metadata": {
668
+ "expectedTargets": [
669
+ "CONTRIBUTING.md"
670
+ ],
671
+ "lang": "en",
672
+ "kind": "question"
673
+ }
674
+ },
675
+ {
676
+ "id": "q-report-offline",
677
+ "input": "how is the html report rendered offline",
678
+ "expected": {
679
+ "regex": {
680
+ "body": "src/report/html\\.ts|docs/knowledge-engine-runbook\\.md"
681
+ }
682
+ },
683
+ "metadata": {
684
+ "expectedTargets": [
685
+ "src/report/html.ts",
686
+ "docs/knowledge-engine-runbook.md"
687
+ ],
688
+ "lang": "en",
689
+ "kind": "question"
690
+ }
691
+ },
692
+ {
693
+ "id": "q-analyzer-plugin",
694
+ "input": "how do I add an analyzer for another language",
695
+ "expected": {
696
+ "regex": {
697
+ "body": "docs/spec/analyzer-plugin-v1\\.md|src/plugins/contract\\.ts"
698
+ }
699
+ },
700
+ "metadata": {
701
+ "expectedTargets": [
702
+ "docs/spec/analyzer-plugin-v1.md",
703
+ "src/plugins/contract.ts"
704
+ ],
705
+ "lang": "en",
706
+ "kind": "question"
707
+ }
708
+ },
709
+ {
710
+ "id": "q-study-method",
711
+ "input": "what does the efficiency study actually measure",
712
+ "expected": {
713
+ "regex": {
714
+ "body": "docs/study/README\\.md"
715
+ }
716
+ },
717
+ "metadata": {
718
+ "expectedTargets": [
719
+ "docs/study/README.md"
720
+ ],
721
+ "lang": "en",
722
+ "kind": "question"
723
+ }
724
+ },
725
+ {
726
+ "id": "q-privacy",
727
+ "input": "what does the mcp server read from my repository",
728
+ "expected": {
729
+ "regex": {
730
+ "body": "PRIVACY\\.md|docs/mcp\\.md"
731
+ }
732
+ },
733
+ "metadata": {
734
+ "expectedTargets": [
735
+ "PRIVACY.md",
736
+ "docs/mcp.md"
737
+ ],
738
+ "lang": "en",
739
+ "kind": "question"
740
+ }
741
+ },
742
+ {
743
+ "id": "pt-workflow-transitions",
744
+ "input": "onde ficam as transições do workflow",
745
+ "expected": {
746
+ "regex": {
747
+ "body": "src/workflow/engine\\.ts|docs/knowledge-engine-runbook\\.md"
748
+ }
749
+ },
750
+ "metadata": {
751
+ "expectedTargets": [
752
+ "src/workflow/engine.ts",
753
+ "docs/knowledge-engine-runbook.md"
754
+ ],
755
+ "lang": "pt",
756
+ "kind": "question"
757
+ }
758
+ },
759
+ {
760
+ "id": "pt-add-mcp-tool",
761
+ "input": "como adiciono uma nova ferramenta MCP",
762
+ "expected": {
763
+ "regex": {
764
+ "body": "src/mcp|src/mcp/server\\.ts|docs/mcp\\.md|doc-bridge-mcp|docs/agent-corpus/mcp\\.md"
765
+ }
766
+ },
767
+ "metadata": {
768
+ "expectedTargets": [
769
+ "src/mcp",
770
+ "src/mcp/server.ts",
771
+ "docs/mcp.md",
772
+ "doc-bridge-mcp",
773
+ "docs/agent-corpus/mcp.md"
774
+ ],
775
+ "lang": "pt",
776
+ "kind": "question"
777
+ }
778
+ },
779
+ {
780
+ "id": "pt-index-build",
781
+ "input": "como o índice é construído a partir da documentação",
782
+ "expected": {
783
+ "regex": {
784
+ "body": "src/index-builder/build-index\\.ts|docs/recipes/index-pipeline\\.md|doc-bridge-index|docs/agent-corpus/INDEX\\.md"
785
+ }
786
+ },
787
+ "metadata": {
788
+ "expectedTargets": [
789
+ "src/index-builder/build-index.ts",
790
+ "docs/recipes/index-pipeline.md",
791
+ "doc-bridge-index",
792
+ "docs/agent-corpus/INDEX.md"
793
+ ],
794
+ "lang": "pt",
795
+ "kind": "question"
796
+ }
797
+ },
798
+ {
799
+ "id": "pt-ownership-config",
800
+ "input": "onde configuro o dono e os checks de um pacote",
801
+ "expected": {
802
+ "regex": {
803
+ "body": "docs/spec/config-v1\\.md|src/config/schema\\.ts|doc-bridge\\.config\\.json"
804
+ }
805
+ },
806
+ "metadata": {
807
+ "expectedTargets": [
808
+ "docs/spec/config-v1.md",
809
+ "src/config/schema.ts",
810
+ "doc-bridge.config.json"
811
+ ],
812
+ "lang": "pt",
813
+ "kind": "question"
814
+ }
815
+ },
816
+ {
817
+ "id": "pt-reconcile",
818
+ "input": "como a reconciliação compara documentação e código",
819
+ "expected": {
820
+ "regex": {
821
+ "body": "src/reconciliation/reconcile\\.ts|docs/knowledge-engine-runbook\\.md"
822
+ }
823
+ },
824
+ "metadata": {
825
+ "expectedTargets": [
826
+ "src/reconciliation/reconcile.ts",
827
+ "docs/knowledge-engine-runbook.md"
828
+ ],
829
+ "lang": "pt",
830
+ "kind": "question"
831
+ }
832
+ },
833
+ {
834
+ "id": "pt-gate-stale",
835
+ "input": "como o gate descobre que o índice está velho",
836
+ "expected": {
837
+ "regex": {
838
+ "body": "src/gates/run-gates\\.ts|src/query/load-index\\.ts|docs/guides/gate-ci\\.md|doc-bridge-gates"
839
+ }
840
+ },
841
+ "metadata": {
842
+ "expectedTargets": [
843
+ "src/gates/run-gates.ts",
844
+ "src/query/load-index.ts",
845
+ "docs/guides/gate-ci.md",
846
+ "doc-bridge-gates"
847
+ ],
848
+ "lang": "pt",
849
+ "kind": "question"
850
+ }
851
+ },
852
+ {
853
+ "id": "pt-memory",
854
+ "input": "como a memória do agente vira documentação",
855
+ "expected": {
856
+ "regex": {
857
+ "body": "src/memory/pipeline\\.ts|docs/guides/memory-pipeline\\.md|doc-bridge-memory|docs/agent-corpus/memory\\.md"
858
+ }
859
+ },
860
+ "metadata": {
861
+ "expectedTargets": [
862
+ "src/memory/pipeline.ts",
863
+ "docs/guides/memory-pipeline.md",
864
+ "doc-bridge-memory",
865
+ "docs/agent-corpus/memory.md"
866
+ ],
867
+ "lang": "pt",
868
+ "kind": "question"
869
+ }
870
+ },
871
+ {
872
+ "id": "pt-doctor-score",
873
+ "input": "como a nota do doctor é calculada",
874
+ "expected": {
875
+ "regex": {
876
+ "body": "src/doctor/run-doctor\\.ts|doc-bridge-doctor|docs/agent-corpus/doctor\\.md"
877
+ }
878
+ },
879
+ "metadata": {
880
+ "expectedTargets": [
881
+ "src/doctor/run-doctor.ts",
882
+ "doc-bridge-doctor",
883
+ "docs/agent-corpus/doctor.md"
884
+ ],
885
+ "lang": "pt",
886
+ "kind": "question"
887
+ }
888
+ },
889
+ {
890
+ "id": "pt-primeiros-passos",
891
+ "input": "como começo a usar o doc bridge no meu repositório",
892
+ "expected": {
893
+ "regex": {
894
+ "body": "docs/getting-started\\.md|docs/guides/install-and-run\\.md"
895
+ }
896
+ },
897
+ "metadata": {
898
+ "expectedTargets": [
899
+ "docs/getting-started.md",
900
+ "docs/guides/install-and-run.md"
901
+ ],
902
+ "lang": "pt",
903
+ "kind": "question"
904
+ }
905
+ },
906
+ {
907
+ "id": "pt-conformance",
908
+ "input": "como rodo a conformidade do padrão de documentação",
909
+ "expected": {
910
+ "regex": {
911
+ "body": "src/conformance/documentation-standard-v1\\.ts|doc-bridge-conformance|docs/agent-corpus/conformance\\.md"
912
+ }
913
+ },
914
+ "metadata": {
915
+ "expectedTargets": [
916
+ "src/conformance/documentation-standard-v1.ts",
917
+ "doc-bridge-conformance",
918
+ "docs/agent-corpus/conformance.md"
919
+ ],
920
+ "lang": "pt",
921
+ "kind": "question"
922
+ }
923
+ },
924
+ {
925
+ "id": "own-cli",
926
+ "input": "who owns the ak-docs command line surface",
927
+ "expected": {
928
+ "regex": {
929
+ "body": "doc-bridge-cli|src/cli|docs/agent-corpus/cli\\.md"
930
+ }
931
+ },
932
+ "metadata": {
933
+ "expectedTargets": [
934
+ "doc-bridge-cli",
935
+ "src/cli",
936
+ "docs/agent-corpus/cli.md"
937
+ ],
938
+ "lang": "en",
939
+ "kind": "ownership"
940
+ }
941
+ },
942
+ {
943
+ "id": "own-mcp",
944
+ "input": "who owns the mcp stdio server",
945
+ "expected": {
946
+ "regex": {
947
+ "body": "doc-bridge-mcp|src/mcp|docs/agent-corpus/mcp\\.md"
948
+ }
949
+ },
950
+ "metadata": {
951
+ "expectedTargets": [
952
+ "doc-bridge-mcp",
953
+ "src/mcp",
954
+ "docs/agent-corpus/mcp.md"
955
+ ],
956
+ "lang": "en",
957
+ "kind": "ownership"
958
+ }
959
+ },
960
+ {
961
+ "id": "own-index",
962
+ "input": "who owns corpus scanning and handoff generation",
963
+ "expected": {
964
+ "regex": {
965
+ "body": "doc-bridge-index|src/index-builder|docs/agent-corpus/INDEX\\.md"
966
+ }
967
+ },
968
+ "metadata": {
969
+ "expectedTargets": [
970
+ "doc-bridge-index",
971
+ "src/index-builder",
972
+ "docs/agent-corpus/INDEX.md"
973
+ ],
974
+ "lang": "en",
975
+ "kind": "ownership"
976
+ }
977
+ },
978
+ {
979
+ "id": "own-query",
980
+ "input": "who owns deterministic package queries and document search",
981
+ "expected": {
982
+ "regex": {
983
+ "body": "doc-bridge-query|src/query|docs/agent-corpus/query\\.md"
984
+ }
985
+ },
986
+ "metadata": {
987
+ "expectedTargets": [
988
+ "doc-bridge-query",
989
+ "src/query",
990
+ "docs/agent-corpus/query.md"
991
+ ],
992
+ "lang": "en",
993
+ "kind": "ownership"
994
+ }
995
+ },
996
+ {
997
+ "id": "own-gates",
998
+ "input": "who owns freshness and link quality gates",
999
+ "expected": {
1000
+ "regex": {
1001
+ "body": "doc-bridge-gates|src/gates|docs/agent-corpus/gates\\.md"
1002
+ }
1003
+ },
1004
+ "metadata": {
1005
+ "expectedTargets": [
1006
+ "doc-bridge-gates",
1007
+ "src/gates",
1008
+ "docs/agent-corpus/gates.md"
1009
+ ],
1010
+ "lang": "en",
1011
+ "kind": "ownership"
1012
+ }
1013
+ },
1014
+ {
1015
+ "id": "own-memory",
1016
+ "input": "who owns the memory ingestion and promotion pipeline",
1017
+ "expected": {
1018
+ "regex": {
1019
+ "body": "doc-bridge-memory|src/memory|docs/agent-corpus/memory\\.md"
1020
+ }
1021
+ },
1022
+ "metadata": {
1023
+ "expectedTargets": [
1024
+ "doc-bridge-memory",
1025
+ "src/memory",
1026
+ "docs/agent-corpus/memory.md"
1027
+ ],
1028
+ "lang": "en",
1029
+ "kind": "ownership"
1030
+ }
1031
+ }
1032
+ ]
1033
+ }