@nebulacomponents/citable 1.15.1 → 1.17.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 (264) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +18 -5
  3. package/dist/universal/.agents/skills/citable/SKILL.md +51 -1
  4. package/dist/universal/.agents/skills/citable/VERSION +1 -1
  5. package/dist/universal/.agents/skills/citable/commands/README.md +3 -1
  6. package/dist/universal/.agents/skills/citable/commands/governance.md +12 -0
  7. package/dist/universal/.agents/skills/citable/commands/measurement.md +20 -0
  8. package/dist/universal/.agents/skills/citable/commands/reporting.md +16 -0
  9. package/dist/universal/.agents/skills/citable/manifest.json +17 -12
  10. package/dist/universal/.agents/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  11. package/dist/universal/.agents/skills/citable/schemas/experiment.schema.json +1 -1
  12. package/dist/universal/.agents/skills/citable/schemas/finding.schema.json +69 -0
  13. package/dist/universal/.agents/skills/citable/schemas/fleet.schema.json +93 -0
  14. package/dist/universal/.agents/skills/citable/schemas/funnel.schema.json +116 -0
  15. package/dist/universal/.agents/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  16. package/dist/universal/.agents/skills/citable/schemas/observation.schema.json +1 -1
  17. package/dist/universal/.agents/skills/citable/schemas/remediation-verification.schema.json +98 -0
  18. package/dist/universal/.claude/agents/citable/manifest.json +2 -2
  19. package/dist/universal/.claude/skills/citable/SKILL.md +51 -1
  20. package/dist/universal/.claude/skills/citable/VERSION +1 -1
  21. package/dist/universal/.claude/skills/citable/commands/README.md +3 -1
  22. package/dist/universal/.claude/skills/citable/commands/governance.md +12 -0
  23. package/dist/universal/.claude/skills/citable/commands/measurement.md +20 -0
  24. package/dist/universal/.claude/skills/citable/commands/reporting.md +16 -0
  25. package/dist/universal/.claude/skills/citable/manifest.json +17 -12
  26. package/dist/universal/.claude/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  27. package/dist/universal/.claude/skills/citable/schemas/experiment.schema.json +1 -1
  28. package/dist/universal/.claude/skills/citable/schemas/finding.schema.json +69 -0
  29. package/dist/universal/.claude/skills/citable/schemas/fleet.schema.json +93 -0
  30. package/dist/universal/.claude/skills/citable/schemas/funnel.schema.json +116 -0
  31. package/dist/universal/.claude/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  32. package/dist/universal/.claude/skills/citable/schemas/observation.schema.json +1 -1
  33. package/dist/universal/.claude/skills/citable/schemas/remediation-verification.schema.json +98 -0
  34. package/dist/universal/.cursor/skills/citable/SKILL.md +51 -1
  35. package/dist/universal/.cursor/skills/citable/VERSION +1 -1
  36. package/dist/universal/.cursor/skills/citable/commands/README.md +3 -1
  37. package/dist/universal/.cursor/skills/citable/commands/governance.md +12 -0
  38. package/dist/universal/.cursor/skills/citable/commands/measurement.md +20 -0
  39. package/dist/universal/.cursor/skills/citable/commands/reporting.md +16 -0
  40. package/dist/universal/.cursor/skills/citable/manifest.json +17 -12
  41. package/dist/universal/.cursor/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  42. package/dist/universal/.cursor/skills/citable/schemas/experiment.schema.json +1 -1
  43. package/dist/universal/.cursor/skills/citable/schemas/finding.schema.json +69 -0
  44. package/dist/universal/.cursor/skills/citable/schemas/fleet.schema.json +93 -0
  45. package/dist/universal/.cursor/skills/citable/schemas/funnel.schema.json +116 -0
  46. package/dist/universal/.cursor/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  47. package/dist/universal/.cursor/skills/citable/schemas/observation.schema.json +1 -1
  48. package/dist/universal/.cursor/skills/citable/schemas/remediation-verification.schema.json +98 -0
  49. package/dist/universal/.gemini/skills/citable/SKILL.md +51 -1
  50. package/dist/universal/.gemini/skills/citable/VERSION +1 -1
  51. package/dist/universal/.gemini/skills/citable/commands/README.md +3 -1
  52. package/dist/universal/.gemini/skills/citable/commands/governance.md +12 -0
  53. package/dist/universal/.gemini/skills/citable/commands/measurement.md +20 -0
  54. package/dist/universal/.gemini/skills/citable/commands/reporting.md +16 -0
  55. package/dist/universal/.gemini/skills/citable/manifest.json +17 -12
  56. package/dist/universal/.gemini/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  57. package/dist/universal/.gemini/skills/citable/schemas/experiment.schema.json +1 -1
  58. package/dist/universal/.gemini/skills/citable/schemas/finding.schema.json +69 -0
  59. package/dist/universal/.gemini/skills/citable/schemas/fleet.schema.json +93 -0
  60. package/dist/universal/.gemini/skills/citable/schemas/funnel.schema.json +116 -0
  61. package/dist/universal/.gemini/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  62. package/dist/universal/.gemini/skills/citable/schemas/observation.schema.json +1 -1
  63. package/dist/universal/.gemini/skills/citable/schemas/remediation-verification.schema.json +98 -0
  64. package/dist/universal/.github/skills/citable/SKILL.md +51 -1
  65. package/dist/universal/.github/skills/citable/VERSION +1 -1
  66. package/dist/universal/.github/skills/citable/commands/README.md +3 -1
  67. package/dist/universal/.github/skills/citable/commands/governance.md +12 -0
  68. package/dist/universal/.github/skills/citable/commands/measurement.md +20 -0
  69. package/dist/universal/.github/skills/citable/commands/reporting.md +16 -0
  70. package/dist/universal/.github/skills/citable/manifest.json +17 -12
  71. package/dist/universal/.github/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  72. package/dist/universal/.github/skills/citable/schemas/experiment.schema.json +1 -1
  73. package/dist/universal/.github/skills/citable/schemas/finding.schema.json +69 -0
  74. package/dist/universal/.github/skills/citable/schemas/fleet.schema.json +93 -0
  75. package/dist/universal/.github/skills/citable/schemas/funnel.schema.json +116 -0
  76. package/dist/universal/.github/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  77. package/dist/universal/.github/skills/citable/schemas/observation.schema.json +1 -1
  78. package/dist/universal/.github/skills/citable/schemas/remediation-verification.schema.json +98 -0
  79. package/dist/universal/.kiro/skills/citable/SKILL.md +51 -1
  80. package/dist/universal/.kiro/skills/citable/VERSION +1 -1
  81. package/dist/universal/.kiro/skills/citable/commands/README.md +3 -1
  82. package/dist/universal/.kiro/skills/citable/commands/governance.md +12 -0
  83. package/dist/universal/.kiro/skills/citable/commands/measurement.md +20 -0
  84. package/dist/universal/.kiro/skills/citable/commands/reporting.md +16 -0
  85. package/dist/universal/.kiro/skills/citable/manifest.json +17 -12
  86. package/dist/universal/.kiro/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  87. package/dist/universal/.kiro/skills/citable/schemas/experiment.schema.json +1 -1
  88. package/dist/universal/.kiro/skills/citable/schemas/finding.schema.json +69 -0
  89. package/dist/universal/.kiro/skills/citable/schemas/fleet.schema.json +93 -0
  90. package/dist/universal/.kiro/skills/citable/schemas/funnel.schema.json +116 -0
  91. package/dist/universal/.kiro/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  92. package/dist/universal/.kiro/skills/citable/schemas/observation.schema.json +1 -1
  93. package/dist/universal/.kiro/skills/citable/schemas/remediation-verification.schema.json +98 -0
  94. package/dist/universal/.opencode/skills/citable/SKILL.md +51 -1
  95. package/dist/universal/.opencode/skills/citable/VERSION +1 -1
  96. package/dist/universal/.opencode/skills/citable/commands/README.md +3 -1
  97. package/dist/universal/.opencode/skills/citable/commands/governance.md +12 -0
  98. package/dist/universal/.opencode/skills/citable/commands/measurement.md +20 -0
  99. package/dist/universal/.opencode/skills/citable/commands/reporting.md +16 -0
  100. package/dist/universal/.opencode/skills/citable/manifest.json +17 -12
  101. package/dist/universal/.opencode/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  102. package/dist/universal/.opencode/skills/citable/schemas/experiment.schema.json +1 -1
  103. package/dist/universal/.opencode/skills/citable/schemas/finding.schema.json +69 -0
  104. package/dist/universal/.opencode/skills/citable/schemas/fleet.schema.json +93 -0
  105. package/dist/universal/.opencode/skills/citable/schemas/funnel.schema.json +116 -0
  106. package/dist/universal/.opencode/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  107. package/dist/universal/.opencode/skills/citable/schemas/observation.schema.json +1 -1
  108. package/dist/universal/.opencode/skills/citable/schemas/remediation-verification.schema.json +98 -0
  109. package/dist/universal/.pi/agent/skills/citable/SKILL.md +51 -1
  110. package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
  111. package/dist/universal/.pi/agent/skills/citable/commands/README.md +3 -1
  112. package/dist/universal/.pi/agent/skills/citable/commands/governance.md +12 -0
  113. package/dist/universal/.pi/agent/skills/citable/commands/measurement.md +20 -0
  114. package/dist/universal/.pi/agent/skills/citable/commands/reporting.md +16 -0
  115. package/dist/universal/.pi/agent/skills/citable/manifest.json +17 -12
  116. package/dist/universal/.pi/agent/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  117. package/dist/universal/.pi/agent/skills/citable/schemas/experiment.schema.json +1 -1
  118. package/dist/universal/.pi/agent/skills/citable/schemas/finding.schema.json +69 -0
  119. package/dist/universal/.pi/agent/skills/citable/schemas/fleet.schema.json +93 -0
  120. package/dist/universal/.pi/agent/skills/citable/schemas/funnel.schema.json +116 -0
  121. package/dist/universal/.pi/agent/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  122. package/dist/universal/.pi/agent/skills/citable/schemas/observation.schema.json +1 -1
  123. package/dist/universal/.pi/agent/skills/citable/schemas/remediation-verification.schema.json +98 -0
  124. package/dist/universal/.qoder/skills/citable/SKILL.md +51 -1
  125. package/dist/universal/.qoder/skills/citable/VERSION +1 -1
  126. package/dist/universal/.qoder/skills/citable/commands/README.md +3 -1
  127. package/dist/universal/.qoder/skills/citable/commands/governance.md +12 -0
  128. package/dist/universal/.qoder/skills/citable/commands/measurement.md +20 -0
  129. package/dist/universal/.qoder/skills/citable/commands/reporting.md +16 -0
  130. package/dist/universal/.qoder/skills/citable/manifest.json +17 -12
  131. package/dist/universal/.qoder/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  132. package/dist/universal/.qoder/skills/citable/schemas/experiment.schema.json +1 -1
  133. package/dist/universal/.qoder/skills/citable/schemas/finding.schema.json +69 -0
  134. package/dist/universal/.qoder/skills/citable/schemas/fleet.schema.json +93 -0
  135. package/dist/universal/.qoder/skills/citable/schemas/funnel.schema.json +116 -0
  136. package/dist/universal/.qoder/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  137. package/dist/universal/.qoder/skills/citable/schemas/observation.schema.json +1 -1
  138. package/dist/universal/.qoder/skills/citable/schemas/remediation-verification.schema.json +98 -0
  139. package/dist/universal/.rovodev/skills/citable/SKILL.md +51 -1
  140. package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
  141. package/dist/universal/.rovodev/skills/citable/commands/README.md +3 -1
  142. package/dist/universal/.rovodev/skills/citable/commands/governance.md +12 -0
  143. package/dist/universal/.rovodev/skills/citable/commands/measurement.md +20 -0
  144. package/dist/universal/.rovodev/skills/citable/commands/reporting.md +16 -0
  145. package/dist/universal/.rovodev/skills/citable/manifest.json +17 -12
  146. package/dist/universal/.rovodev/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  147. package/dist/universal/.rovodev/skills/citable/schemas/experiment.schema.json +1 -1
  148. package/dist/universal/.rovodev/skills/citable/schemas/finding.schema.json +69 -0
  149. package/dist/universal/.rovodev/skills/citable/schemas/fleet.schema.json +93 -0
  150. package/dist/universal/.rovodev/skills/citable/schemas/funnel.schema.json +116 -0
  151. package/dist/universal/.rovodev/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  152. package/dist/universal/.rovodev/skills/citable/schemas/observation.schema.json +1 -1
  153. package/dist/universal/.rovodev/skills/citable/schemas/remediation-verification.schema.json +98 -0
  154. package/dist/universal/.trae/skills/citable/SKILL.md +51 -1
  155. package/dist/universal/.trae/skills/citable/VERSION +1 -1
  156. package/dist/universal/.trae/skills/citable/commands/README.md +3 -1
  157. package/dist/universal/.trae/skills/citable/commands/governance.md +12 -0
  158. package/dist/universal/.trae/skills/citable/commands/measurement.md +20 -0
  159. package/dist/universal/.trae/skills/citable/commands/reporting.md +16 -0
  160. package/dist/universal/.trae/skills/citable/manifest.json +17 -12
  161. package/dist/universal/.trae/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  162. package/dist/universal/.trae/skills/citable/schemas/experiment.schema.json +1 -1
  163. package/dist/universal/.trae/skills/citable/schemas/finding.schema.json +69 -0
  164. package/dist/universal/.trae/skills/citable/schemas/fleet.schema.json +93 -0
  165. package/dist/universal/.trae/skills/citable/schemas/funnel.schema.json +116 -0
  166. package/dist/universal/.trae/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  167. package/dist/universal/.trae/skills/citable/schemas/observation.schema.json +1 -1
  168. package/dist/universal/.trae/skills/citable/schemas/remediation-verification.schema.json +98 -0
  169. package/dist/universal/.trae-cn/skills/citable/SKILL.md +51 -1
  170. package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
  171. package/dist/universal/.trae-cn/skills/citable/commands/README.md +3 -1
  172. package/dist/universal/.trae-cn/skills/citable/commands/governance.md +12 -0
  173. package/dist/universal/.trae-cn/skills/citable/commands/measurement.md +20 -0
  174. package/dist/universal/.trae-cn/skills/citable/commands/reporting.md +16 -0
  175. package/dist/universal/.trae-cn/skills/citable/manifest.json +17 -12
  176. package/dist/universal/.trae-cn/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
  177. package/dist/universal/.trae-cn/skills/citable/schemas/experiment.schema.json +1 -1
  178. package/dist/universal/.trae-cn/skills/citable/schemas/finding.schema.json +69 -0
  179. package/dist/universal/.trae-cn/skills/citable/schemas/fleet.schema.json +93 -0
  180. package/dist/universal/.trae-cn/skills/citable/schemas/funnel.schema.json +116 -0
  181. package/dist/universal/.trae-cn/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
  182. package/dist/universal/.trae-cn/skills/citable/schemas/observation.schema.json +1 -1
  183. package/dist/universal/.trae-cn/skills/citable/schemas/remediation-verification.schema.json +98 -0
  184. package/dist/universal/manifest.json +208 -148
  185. package/package.json +1 -1
  186. package/schemas/cli-output-envelope.schema.json +30 -0
  187. package/schemas/experiment.schema.json +1 -1
  188. package/schemas/finding.schema.json +69 -0
  189. package/schemas/fleet.schema.json +93 -0
  190. package/schemas/funnel.schema.json +116 -0
  191. package/schemas/mcp-transport-envelope.schema.json +244 -0
  192. package/schemas/observation.schema.json +1 -1
  193. package/schemas/remediation-verification.schema.json +98 -0
  194. package/skill/SKILL.md +51 -1
  195. package/skill/commands/README.md +3 -1
  196. package/skill/commands/governance.md +12 -0
  197. package/skill/commands/measurement.md +20 -0
  198. package/skill/commands/reporting.md +16 -0
  199. package/src/analysis/saliency.js +119 -0
  200. package/src/cli/index.js +651 -13
  201. package/src/commands/attributeImpact.js +54 -0
  202. package/src/commands/audit.js +2 -2
  203. package/src/commands/ciWorkflow.js +63 -0
  204. package/src/commands/compatibility.js +205 -0
  205. package/src/commands/connect.js +3 -0
  206. package/src/commands/context.js +2 -1
  207. package/src/commands/edgeRules.js +196 -0
  208. package/src/commands/edgeSecurity.js +192 -0
  209. package/src/commands/exceptions.js +241 -0
  210. package/src/commands/experimentGuardrails.js +213 -0
  211. package/src/commands/fleet.js +104 -0
  212. package/src/commands/generateLlmsTxt.js +111 -0
  213. package/src/commands/goldenCorpus.js +155 -0
  214. package/src/commands/implementationKit.js +202 -0
  215. package/src/commands/inspectAeo.js +74 -0
  216. package/src/commands/inspectCro.js +142 -0
  217. package/src/commands/inspectGeo.js +52 -0
  218. package/src/commands/inspectSerp.js +317 -0
  219. package/src/commands/lintComponents.js +132 -0
  220. package/src/commands/monitor.js +138 -0
  221. package/src/commands/observe.js +6 -1
  222. package/src/commands/planExperiment.js +120 -0
  223. package/src/commands/previewCro.js +241 -0
  224. package/src/commands/probe.js +70 -0
  225. package/src/commands/remediate.js +461 -0
  226. package/src/commands/reportConsensus.js +48 -0
  227. package/src/commands/testFunnel.js +107 -0
  228. package/src/commands/verifyRemediation.js +204 -0
  229. package/src/commands/visualRegression.js +165 -0
  230. package/src/components/index.js +556 -0
  231. package/src/connectors/index.js +6 -1
  232. package/src/connectors/indexnow.js +431 -0
  233. package/src/connectors/mcp/allowlist.js +107 -0
  234. package/src/connectors/mcp/client.js +239 -0
  235. package/src/connectors/mcp/diagnostics.js +214 -0
  236. package/src/connectors/mcp/gscServer.js +155 -0
  237. package/src/connectors/mcp/http.js +130 -0
  238. package/src/connectors/mcp/index.js +7 -0
  239. package/src/connectors/mcp/pilot.js +138 -0
  240. package/src/connectors/mcp/pilotServer.js +80 -0
  241. package/src/connectors/mcp/sanitizer.js +38 -0
  242. package/src/connectors/mcp/stdio.js +178 -0
  243. package/src/crawler/ipRanges.js +161 -0
  244. package/src/detectors/agent.js +127 -0
  245. package/src/detectors/ans.js +282 -0
  246. package/src/detectors/crawl.js +46 -0
  247. package/src/detectors/cro.js +825 -0
  248. package/src/detectors/cwv.js +38 -1
  249. package/src/detectors/evd.js +101 -0
  250. package/src/detectors/framework.js +32 -2
  251. package/src/detectors/geoReco.js +408 -0
  252. package/src/detectors/index.js +4 -2
  253. package/src/detectors/link.js +112 -1
  254. package/src/detectors/page.js +101 -0
  255. package/src/detectors/schemaData.js +529 -0
  256. package/src/detectors/tech.js +306 -0
  257. package/src/extractor/page.js +186 -2
  258. package/src/extractor/site.js +9 -2
  259. package/src/installer/index.js +45 -2
  260. package/src/monitoring/alertDelivery.js +101 -7
  261. package/src/observations/attribution.js +217 -0
  262. package/src/registries/index.js +14 -0
  263. package/src/reporting/consensus.js +416 -0
  264. package/src/reporting/executiveExport.js +244 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nebulacomponents/citable",
3
- "version": "1.15.1",
3
+ "version": "1.17.0",
4
4
  "description": "Production-grade SEO, AEO, and GEO agent skill with auditable detection, claim governance, evidence validation, and multi-agent installation.",
5
5
  "keywords": [
6
6
  "seo",
@@ -0,0 +1,30 @@
1
+ {
2
+ "$id": "citable://schemas/cli-output-envelope.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "CLI JSON output envelope",
5
+ "description": "Stable envelope for every `citable <command> --json` output. Consumers read `citable_output_schema` for envelope compatibility and read command data from `result`. The envelope version changes only on breaking envelope changes; command payloads evolve backward-compatibly inside result.",
6
+ "type": "object",
7
+ "required": ["citable_output_schema", "tool_version", "generated_at", "result"],
8
+ "properties": {
9
+ "citable_output_schema": {
10
+ "type": "string",
11
+ "pattern": "^\\d+\\.\\d+$",
12
+ "description": "Envelope contract version. 1.0 is the initial stable contract."
13
+ },
14
+ "tool_version": {
15
+ "type": "string",
16
+ "description": "Citable package version that produced the output."
17
+ },
18
+ "command": {
19
+ "type": ["string", "null"],
20
+ "description": "Top-level command that produced this output."
21
+ },
22
+ "generated_at": {
23
+ "type": "string",
24
+ "description": "ISO-8601 timestamp of when the output was generated."
25
+ },
26
+ "result": {
27
+ "description": "Command-specific payload. Structure is defined per command and evolves backward-compatibly within an envelope major version."
28
+ }
29
+ }
30
+ }
@@ -15,7 +15,7 @@
15
15
  "properties": {
16
16
  "experiment_id": { "$ref": "citable://schemas/common.defs.json#/definitions/id" },
17
17
  "hypothesis": { "type": "string", "minLength": 10 },
18
- "discipline": { "type": "array", "items": { "type": "string", "enum": ["seo", "aeo", "geo"] } },
18
+ "discipline": { "type": "array", "items": { "type": "string", "enum": ["seo", "aeo", "geo", "cro"] } },
19
19
  "primary_metric": { "type": "string" },
20
20
  "secondary_metrics": { "type": "array", "items": { "type": "string" } },
21
21
  "prompt_cohort": { "type": "array", "items": { "type": "string" } },
@@ -257,6 +257,75 @@
257
257
  }
258
258
  }
259
259
  },
260
+ "provenance": {
261
+ "type": "object",
262
+ "required": [
263
+ "detector_version",
264
+ "tool_version",
265
+ "evidence_source",
266
+ "methodology",
267
+ "revalidation_required"
268
+ ],
269
+ "properties": {
270
+ "detector_version": {
271
+ "type": "integer",
272
+ "minimum": 1
273
+ },
274
+ "tool_version": {
275
+ "type": "string"
276
+ },
277
+ "source_url": {
278
+ "type": [
279
+ "string",
280
+ "null"
281
+ ]
282
+ },
283
+ "source_file": {
284
+ "type": [
285
+ "string",
286
+ "null"
287
+ ]
288
+ },
289
+ "evidence_selector": {
290
+ "type": [
291
+ "string",
292
+ "null"
293
+ ]
294
+ },
295
+ "evidence_source": {
296
+ "type": "string",
297
+ "enum": [
298
+ "dom_parse",
299
+ "registry",
300
+ "registry+dom_parse",
301
+ "controlled_observation",
302
+ "configuration"
303
+ ]
304
+ },
305
+ "viewport": {
306
+ "type": [
307
+ "string",
308
+ "null"
309
+ ]
310
+ },
311
+ "viewport_note": {
312
+ "type": [
313
+ "string",
314
+ "null"
315
+ ]
316
+ },
317
+ "methodology": {
318
+ "type": "string"
319
+ },
320
+ "revalidation_required": {
321
+ "type": "string",
322
+ "enum": [
323
+ "on_next_audit",
324
+ "human_review_before_action"
325
+ ]
326
+ }
327
+ }
328
+ },
260
329
  "status": {
261
330
  "type": "object",
262
331
  "required": [
@@ -0,0 +1,93 @@
1
+ {
2
+ "$id": "citable://schemas/fleet.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Fleet Properties registry",
5
+ "allOf": [
6
+ {
7
+ "$ref": "citable://schemas/common.defs.json#/definitions/registryFile"
8
+ }
9
+ ],
10
+ "properties": {
11
+ "kind": {
12
+ "const": "fleet"
13
+ },
14
+ "entries": {
15
+ "items": {
16
+ "$ref": "#/definitions/fleetProperty"
17
+ }
18
+ }
19
+ },
20
+ "definitions": {
21
+ "fleetProperty": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "property_id",
26
+ "name",
27
+ "primary_domain",
28
+ "environment",
29
+ "status"
30
+ ],
31
+ "properties": {
32
+ "property_id": {
33
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
34
+ },
35
+ "name": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "description": {
40
+ "type": "string"
41
+ },
42
+ "primary_domain": {
43
+ "type": "string",
44
+ "minLength": 3
45
+ },
46
+ "domains": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "string"
50
+ }
51
+ },
52
+ "environment": {
53
+ "type": "string",
54
+ "enum": [
55
+ "production",
56
+ "staging",
57
+ "development",
58
+ "preview"
59
+ ]
60
+ },
61
+ "base_url": {
62
+ "type": "string"
63
+ },
64
+ "built_output_dir": {
65
+ "type": "string"
66
+ },
67
+ "owner": {
68
+ "type": "string"
69
+ },
70
+ "tags": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "string"
74
+ }
75
+ },
76
+ "audit_schedule": {
77
+ "type": "string"
78
+ },
79
+ "status": {
80
+ "type": "string",
81
+ "enum": [
82
+ "active",
83
+ "paused",
84
+ "archived"
85
+ ]
86
+ },
87
+ "updated": {
88
+ "$ref": "citable://schemas/common.defs.json#/definitions/isoDate"
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "$id": "citable://schemas/funnel.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Conversion Funnel registry",
5
+ "allOf": [
6
+ {
7
+ "$ref": "citable://schemas/common.defs.json#/definitions/registryFile"
8
+ }
9
+ ],
10
+ "properties": {
11
+ "kind": {
12
+ "const": "funnels"
13
+ },
14
+ "entries": {
15
+ "items": {
16
+ "$ref": "#/definitions/funnel"
17
+ }
18
+ }
19
+ },
20
+ "definitions": {
21
+ "funnelStep": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "step_id",
26
+ "url_pattern",
27
+ "role"
28
+ ],
29
+ "properties": {
30
+ "step_id": {
31
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
32
+ },
33
+ "name": {
34
+ "type": "string"
35
+ },
36
+ "url_pattern": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "page_id": {
41
+ "type": "string"
42
+ },
43
+ "role": {
44
+ "type": "string",
45
+ "enum": [
46
+ "entry",
47
+ "consideration",
48
+ "commitment",
49
+ "completion"
50
+ ]
51
+ },
52
+ "expected_cta": {
53
+ "type": "string"
54
+ },
55
+ "preserve_params": {
56
+ "type": "array",
57
+ "items": {
58
+ "type": "string"
59
+ }
60
+ }
61
+ }
62
+ },
63
+ "funnel": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": [
67
+ "funnel_id",
68
+ "name",
69
+ "primary_goal",
70
+ "steps",
71
+ "status"
72
+ ],
73
+ "properties": {
74
+ "funnel_id": {
75
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
76
+ },
77
+ "name": {
78
+ "type": "string",
79
+ "minLength": 3
80
+ },
81
+ "description": {
82
+ "type": "string"
83
+ },
84
+ "primary_goal": {
85
+ "type": "string",
86
+ "minLength": 2
87
+ },
88
+ "target_audience": {
89
+ "type": "string"
90
+ },
91
+ "owner": {
92
+ "type": "string"
93
+ },
94
+ "steps": {
95
+ "type": "array",
96
+ "minItems": 2,
97
+ "items": {
98
+ "$ref": "#/definitions/funnelStep"
99
+ }
100
+ },
101
+ "status": {
102
+ "type": "string",
103
+ "enum": [
104
+ "draft",
105
+ "active",
106
+ "deprecated",
107
+ "archived"
108
+ ]
109
+ },
110
+ "provenance": {
111
+ "$ref": "citable://schemas/common.defs.json#/definitions/provenance"
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,244 @@
1
+ {
2
+ "$id": "citable://schemas/mcp-transport-envelope.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Model Context Protocol evidence transport envelope",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "transport",
10
+ "server",
11
+ "tool",
12
+ "request",
13
+ "response",
14
+ "provenance",
15
+ "authority",
16
+ "status",
17
+ "collected_at"
18
+ ],
19
+ "properties": {
20
+ "schema_version": {
21
+ "const": 1
22
+ },
23
+ "transport": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": [
27
+ "type",
28
+ "protocol_version",
29
+ "timeout_ms",
30
+ "max_bytes"
31
+ ],
32
+ "properties": {
33
+ "type": {
34
+ "type": "string",
35
+ "enum": [
36
+ "stdio",
37
+ "http"
38
+ ]
39
+ },
40
+ "protocol_version": {
41
+ "type": "string",
42
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$|^[0-9]+\\.[0-9]+.*$"
43
+ },
44
+ "timeout_ms": {
45
+ "type": "integer",
46
+ "minimum": 100,
47
+ "maximum": 60000
48
+ },
49
+ "max_bytes": {
50
+ "type": "integer",
51
+ "minimum": 1024,
52
+ "maximum": 10485760
53
+ },
54
+ "retries": {
55
+ "type": "integer",
56
+ "minimum": 0,
57
+ "maximum": 5
58
+ }
59
+ }
60
+ },
61
+ "server": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "required": [
65
+ "server_id",
66
+ "transport_target",
67
+ "allowlisted"
68
+ ],
69
+ "properties": {
70
+ "server_id": {
71
+ "type": "string",
72
+ "pattern": "^[a-z0-9_.-]+$"
73
+ },
74
+ "package_name": {
75
+ "type": [
76
+ "string",
77
+ "null"
78
+ ]
79
+ },
80
+ "pinned_version": {
81
+ "type": [
82
+ "string",
83
+ "null"
84
+ ]
85
+ },
86
+ "transport_target": {
87
+ "type": "string",
88
+ "minLength": 1
89
+ },
90
+ "allowlisted": {
91
+ "type": "boolean"
92
+ },
93
+ "capabilities": {
94
+ "type": "object"
95
+ }
96
+ }
97
+ },
98
+ "tool": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "required": [
102
+ "name",
103
+ "read_only",
104
+ "input_schema_hash"
105
+ ],
106
+ "properties": {
107
+ "name": {
108
+ "type": "string",
109
+ "pattern": "^[a-zA-Z0-9_.-]+$"
110
+ },
111
+ "description": {
112
+ "type": [
113
+ "string",
114
+ "null"
115
+ ]
116
+ },
117
+ "read_only": {
118
+ "type": "boolean"
119
+ },
120
+ "input_schema_hash": {
121
+ "type": "string",
122
+ "pattern": "^[a-f0-9]{64}$"
123
+ },
124
+ "input_schema": {
125
+ "type": "object"
126
+ }
127
+ }
128
+ },
129
+ "request": {
130
+ "type": "object",
131
+ "additionalProperties": false,
132
+ "required": [
133
+ "arguments_hash",
134
+ "arguments"
135
+ ],
136
+ "properties": {
137
+ "arguments_hash": {
138
+ "type": "string",
139
+ "pattern": "^[a-f0-9]{64}$"
140
+ },
141
+ "arguments": {
142
+ "type": "object"
143
+ },
144
+ "authorization_mode": {
145
+ "type": "string",
146
+ "enum": [
147
+ "none",
148
+ "environment",
149
+ "bearer_token",
150
+ "header"
151
+ ]
152
+ },
153
+ "scopes": {
154
+ "type": "array",
155
+ "items": {
156
+ "type": "string"
157
+ }
158
+ }
159
+ }
160
+ },
161
+ "response": {
162
+ "type": "object",
163
+ "additionalProperties": false,
164
+ "required": [
165
+ "raw_sha256",
166
+ "content_bytes",
167
+ "is_error",
168
+ "retention_reason"
169
+ ],
170
+ "properties": {
171
+ "raw_sha256": {
172
+ "type": "string",
173
+ "pattern": "^[a-f0-9]{64}$"
174
+ },
175
+ "content_bytes": {
176
+ "type": "integer",
177
+ "minimum": 0
178
+ },
179
+ "is_error": {
180
+ "type": "boolean"
181
+ },
182
+ "retention_reason": {
183
+ "type": "string",
184
+ "enum": [
185
+ "raw_preserved",
186
+ "hash_locked_only",
187
+ "redacted_sensitive"
188
+ ]
189
+ },
190
+ "content": {
191
+ "type": "array"
192
+ }
193
+ }
194
+ },
195
+ "provenance": {
196
+ "type": "object",
197
+ "additionalProperties": false,
198
+ "required": [
199
+ "adapter_version",
200
+ "normalization_version",
201
+ "sanitized_redactions"
202
+ ],
203
+ "properties": {
204
+ "adapter_version": {
205
+ "type": "string"
206
+ },
207
+ "normalization_version": {
208
+ "type": "string"
209
+ },
210
+ "sanitized_redactions": {
211
+ "type": "integer",
212
+ "minimum": 0
213
+ },
214
+ "duration_ms": {
215
+ "type": "number",
216
+ "minimum": 0
217
+ }
218
+ }
219
+ },
220
+ "authority": {
221
+ "$ref": "citable://schemas/evidence-authority.schema.json"
222
+ },
223
+ "status": {
224
+ "type": "string",
225
+ "enum": [
226
+ "success",
227
+ "incomplete",
228
+ "failed",
229
+ "unsupported",
230
+ "unauthorized"
231
+ ]
232
+ },
233
+ "collected_at": {
234
+ "type": "string",
235
+ "format": "date-time"
236
+ },
237
+ "limitations": {
238
+ "type": "array",
239
+ "items": {
240
+ "type": "string"
241
+ }
242
+ }
243
+ }
244
+ }
@@ -7,7 +7,7 @@
7
7
  "required": ["observation_id", "kind", "state", "collected_at", "collection_method", "confidence", "source", "evidence_hash", "data"],
8
8
  "properties": {
9
9
  "observation_id": { "type": "string", "minLength": 1 },
10
- "kind": { "type": "string", "enum": ["render", "browser_journey", "index", "citation", "citation_review", "crawler_log", "crawler_probe", "regional_network", "bing_webmaster", "passage", "canonical_freshness", "performance", "corroboration", "metric", "media_pdf", "media_transcript", "media_image", "representation_drift", "stance"] },
10
+ "kind": { "type": "string", "enum": ["render", "browser_journey", "index", "citation", "citation_review", "crawler_log", "crawler_probe", "regional_network", "bing_webmaster", "passage", "canonical_freshness", "performance", "corroboration", "metric", "media_pdf", "media_transcript", "media_image", "representation_drift", "stance", "mcp_transport", "attribution"] },
11
11
  "state": { "type": "string", "enum": ["observed", "not_observed", "not_evidenced", "incomplete", "review_required", "failed"] },
12
12
  "collected_at": { "type": "string", "format": "date-time" },
13
13
  "collection_method": { "type": "string", "enum": ["live_api", "browser", "owner_import", "synthetic_fetch", "static_analysis", "human_review"] },
@@ -0,0 +1,98 @@
1
+ {
2
+ "$id": "citable://schemas/remediation-verification.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Remediation verification record",
5
+ "description": "Closed-loop evidence that a detector finding was addressed: before-run finding, applied patch, re-run detector result, and verdict. Proves only that the detector no longer reports the same subject; it never proves a conversion or outcome guarantee.",
6
+ "type": "object",
7
+ "required": [
8
+ "verification_id", "timestamp", "status", "tool_version",
9
+ "source_run_id", "detector_id", "subject", "verdict",
10
+ "provenance", "limitations"
11
+ ],
12
+ "properties": {
13
+ "verification_id": { "type": "string", "pattern": "^VR-[0-9]{14,20}-[a-z0-9]{2,8}$" },
14
+ "timestamp": { "type": "string" },
15
+ "status": { "type": "string", "enum": ["verified", "not_resolved", "blocked", "patch_refused"] },
16
+ "tool_version": { "type": "string" },
17
+ "repository_commit": { "type": ["string", "null"] },
18
+ "source_run_id": { "type": ["string", "null"], "minLength": 1 },
19
+ "recheck_run_id": { "type": ["string", "null"] },
20
+ "detector_id": { "type": ["string", "null"] },
21
+ "subject": {
22
+ "type": ["object", "null"],
23
+ "properties": {
24
+ "type": { "type": "string" },
25
+ "identifier": { "type": ["string", "null"] }
26
+ }
27
+ },
28
+ "verdict": {
29
+ "type": "object",
30
+ "required": ["resolved"],
31
+ "properties": {
32
+ "resolved": { "type": "boolean" },
33
+ "before_finding_ids": { "type": "array", "items": { "type": "string" } },
34
+ "after_finding_ids": { "type": "array", "items": { "type": "string" } },
35
+ "new_regressions": {
36
+ "type": "array",
37
+ "items": {
38
+ "type": "object",
39
+ "required": ["finding_id", "detector_id", "severity", "summary"],
40
+ "properties": {
41
+ "finding_id": { "type": "string" },
42
+ "detector_id": { "type": "string" },
43
+ "severity": { "type": "string" },
44
+ "summary": { "type": "string" }
45
+ }
46
+ }
47
+ },
48
+ "resolution_definition": {
49
+ "type": "string",
50
+ "description": "States the exact resolution criterion used; detector absence is not an outcome guarantee."
51
+ }
52
+ }
53
+ },
54
+ "patch": {
55
+ "type": ["object", "null"],
56
+ "properties": {
57
+ "target_file": { "type": "string" },
58
+ "framework": { "type": ["string", "null"] },
59
+ "patcher_class": { "type": ["string", "null"] },
60
+ "confidence": { "type": ["number", "null"] },
61
+ "validation_passed": { "type": "boolean" },
62
+ "applied": { "type": "boolean" },
63
+ "refusal_reason": { "type": ["string", "null"] },
64
+ "rollback_snapshot": { "type": ["string", "null"] },
65
+ "before_sha256": { "type": ["string", "null"] },
66
+ "after_sha256": { "type": ["string", "null"] }
67
+ }
68
+ },
69
+ "provenance": {
70
+ "type": "object",
71
+ "required": ["command", "recheck_target", "detectors_run"],
72
+ "properties": {
73
+ "command": { "type": "string" },
74
+ "recheck_target": { "type": ["string", "null"] },
75
+ "detectors_run": { "type": "array", "items": { "type": "string" } },
76
+ "detectors_skipped": {
77
+ "type": "array",
78
+ "items": {
79
+ "type": "object",
80
+ "properties": {
81
+ "detector_id": { "type": "string" },
82
+ "reason": { "type": "string" }
83
+ }
84
+ }
85
+ },
86
+ "recheck_errors": { "type": "array", "items": { "type": "string" } },
87
+ "recheck_warnings": { "type": "array", "items": { "type": "string" } }
88
+ }
89
+ },
90
+ "limitations": {
91
+ "type": "array",
92
+ "items": { "type": "string" },
93
+ "minItems": 1
94
+ },
95
+ "bundle_dir": { "type": ["string", "null"] },
96
+ "bundle_checksums": { "type": "object" }
97
+ }
98
+ }