@nebulacomponents/citable 1.20.0 → 1.21.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 (163) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/universal/.agents/skills/citable/SKILL.md +1 -1
  3. package/dist/universal/.agents/skills/citable/VERSION +1 -1
  4. package/dist/universal/.agents/skills/citable/manifest.json +14 -5
  5. package/dist/universal/.agents/skills/citable/schemas/claim-evidence.schema.json +21 -0
  6. package/dist/universal/.agents/skills/citable/schemas/claim-verification.schema.json +18 -0
  7. package/dist/universal/.agents/skills/citable/schemas/derivation.schema.json +18 -0
  8. package/dist/universal/.agents/skills/citable/schemas/external-comparison.schema.json +16 -0
  9. package/dist/universal/.agents/skills/citable/schemas/external-observation.schema.json +32 -0
  10. package/dist/universal/.agents/skills/citable/schemas/prompt-set.schema.json +47 -0
  11. package/dist/universal/.agents/skills/citable/schemas/representation-data.schema.json +21 -0
  12. package/dist/universal/.agents/skills/citable/schemas/research-dataset.schema.json +27 -0
  13. package/dist/universal/.agents/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  14. package/dist/universal/.claude/agents/citable/manifest.json +2 -2
  15. package/dist/universal/.claude/skills/citable/SKILL.md +1 -1
  16. package/dist/universal/.claude/skills/citable/VERSION +1 -1
  17. package/dist/universal/.claude/skills/citable/manifest.json +14 -5
  18. package/dist/universal/.claude/skills/citable/schemas/claim-evidence.schema.json +21 -0
  19. package/dist/universal/.claude/skills/citable/schemas/claim-verification.schema.json +18 -0
  20. package/dist/universal/.claude/skills/citable/schemas/derivation.schema.json +18 -0
  21. package/dist/universal/.claude/skills/citable/schemas/external-comparison.schema.json +16 -0
  22. package/dist/universal/.claude/skills/citable/schemas/external-observation.schema.json +32 -0
  23. package/dist/universal/.claude/skills/citable/schemas/prompt-set.schema.json +47 -0
  24. package/dist/universal/.claude/skills/citable/schemas/representation-data.schema.json +21 -0
  25. package/dist/universal/.claude/skills/citable/schemas/research-dataset.schema.json +27 -0
  26. package/dist/universal/.claude/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  27. package/dist/universal/.cursor/skills/citable/SKILL.md +1 -1
  28. package/dist/universal/.cursor/skills/citable/VERSION +1 -1
  29. package/dist/universal/.cursor/skills/citable/manifest.json +14 -5
  30. package/dist/universal/.cursor/skills/citable/schemas/claim-evidence.schema.json +21 -0
  31. package/dist/universal/.cursor/skills/citable/schemas/claim-verification.schema.json +18 -0
  32. package/dist/universal/.cursor/skills/citable/schemas/derivation.schema.json +18 -0
  33. package/dist/universal/.cursor/skills/citable/schemas/external-comparison.schema.json +16 -0
  34. package/dist/universal/.cursor/skills/citable/schemas/external-observation.schema.json +32 -0
  35. package/dist/universal/.cursor/skills/citable/schemas/prompt-set.schema.json +47 -0
  36. package/dist/universal/.cursor/skills/citable/schemas/representation-data.schema.json +21 -0
  37. package/dist/universal/.cursor/skills/citable/schemas/research-dataset.schema.json +27 -0
  38. package/dist/universal/.cursor/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  39. package/dist/universal/.gemini/skills/citable/SKILL.md +1 -1
  40. package/dist/universal/.gemini/skills/citable/VERSION +1 -1
  41. package/dist/universal/.gemini/skills/citable/manifest.json +14 -5
  42. package/dist/universal/.gemini/skills/citable/schemas/claim-evidence.schema.json +21 -0
  43. package/dist/universal/.gemini/skills/citable/schemas/claim-verification.schema.json +18 -0
  44. package/dist/universal/.gemini/skills/citable/schemas/derivation.schema.json +18 -0
  45. package/dist/universal/.gemini/skills/citable/schemas/external-comparison.schema.json +16 -0
  46. package/dist/universal/.gemini/skills/citable/schemas/external-observation.schema.json +32 -0
  47. package/dist/universal/.gemini/skills/citable/schemas/prompt-set.schema.json +47 -0
  48. package/dist/universal/.gemini/skills/citable/schemas/representation-data.schema.json +21 -0
  49. package/dist/universal/.gemini/skills/citable/schemas/research-dataset.schema.json +27 -0
  50. package/dist/universal/.gemini/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  51. package/dist/universal/.github/skills/citable/SKILL.md +1 -1
  52. package/dist/universal/.github/skills/citable/VERSION +1 -1
  53. package/dist/universal/.github/skills/citable/manifest.json +14 -5
  54. package/dist/universal/.github/skills/citable/schemas/claim-evidence.schema.json +21 -0
  55. package/dist/universal/.github/skills/citable/schemas/claim-verification.schema.json +18 -0
  56. package/dist/universal/.github/skills/citable/schemas/derivation.schema.json +18 -0
  57. package/dist/universal/.github/skills/citable/schemas/external-comparison.schema.json +16 -0
  58. package/dist/universal/.github/skills/citable/schemas/external-observation.schema.json +32 -0
  59. package/dist/universal/.github/skills/citable/schemas/prompt-set.schema.json +47 -0
  60. package/dist/universal/.github/skills/citable/schemas/representation-data.schema.json +21 -0
  61. package/dist/universal/.github/skills/citable/schemas/research-dataset.schema.json +27 -0
  62. package/dist/universal/.github/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  63. package/dist/universal/.kiro/skills/citable/SKILL.md +1 -1
  64. package/dist/universal/.kiro/skills/citable/VERSION +1 -1
  65. package/dist/universal/.kiro/skills/citable/manifest.json +14 -5
  66. package/dist/universal/.kiro/skills/citable/schemas/claim-evidence.schema.json +21 -0
  67. package/dist/universal/.kiro/skills/citable/schemas/claim-verification.schema.json +18 -0
  68. package/dist/universal/.kiro/skills/citable/schemas/derivation.schema.json +18 -0
  69. package/dist/universal/.kiro/skills/citable/schemas/external-comparison.schema.json +16 -0
  70. package/dist/universal/.kiro/skills/citable/schemas/external-observation.schema.json +32 -0
  71. package/dist/universal/.kiro/skills/citable/schemas/prompt-set.schema.json +47 -0
  72. package/dist/universal/.kiro/skills/citable/schemas/representation-data.schema.json +21 -0
  73. package/dist/universal/.kiro/skills/citable/schemas/research-dataset.schema.json +27 -0
  74. package/dist/universal/.kiro/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  75. package/dist/universal/.opencode/skills/citable/SKILL.md +1 -1
  76. package/dist/universal/.opencode/skills/citable/VERSION +1 -1
  77. package/dist/universal/.opencode/skills/citable/manifest.json +14 -5
  78. package/dist/universal/.opencode/skills/citable/schemas/claim-evidence.schema.json +21 -0
  79. package/dist/universal/.opencode/skills/citable/schemas/claim-verification.schema.json +18 -0
  80. package/dist/universal/.opencode/skills/citable/schemas/derivation.schema.json +18 -0
  81. package/dist/universal/.opencode/skills/citable/schemas/external-comparison.schema.json +16 -0
  82. package/dist/universal/.opencode/skills/citable/schemas/external-observation.schema.json +32 -0
  83. package/dist/universal/.opencode/skills/citable/schemas/prompt-set.schema.json +47 -0
  84. package/dist/universal/.opencode/skills/citable/schemas/representation-data.schema.json +21 -0
  85. package/dist/universal/.opencode/skills/citable/schemas/research-dataset.schema.json +27 -0
  86. package/dist/universal/.opencode/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  87. package/dist/universal/.pi/agent/skills/citable/SKILL.md +1 -1
  88. package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
  89. package/dist/universal/.pi/agent/skills/citable/manifest.json +14 -5
  90. package/dist/universal/.pi/agent/skills/citable/schemas/claim-evidence.schema.json +21 -0
  91. package/dist/universal/.pi/agent/skills/citable/schemas/claim-verification.schema.json +18 -0
  92. package/dist/universal/.pi/agent/skills/citable/schemas/derivation.schema.json +18 -0
  93. package/dist/universal/.pi/agent/skills/citable/schemas/external-comparison.schema.json +16 -0
  94. package/dist/universal/.pi/agent/skills/citable/schemas/external-observation.schema.json +32 -0
  95. package/dist/universal/.pi/agent/skills/citable/schemas/prompt-set.schema.json +47 -0
  96. package/dist/universal/.pi/agent/skills/citable/schemas/representation-data.schema.json +21 -0
  97. package/dist/universal/.pi/agent/skills/citable/schemas/research-dataset.schema.json +27 -0
  98. package/dist/universal/.pi/agent/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  99. package/dist/universal/.qoder/skills/citable/SKILL.md +1 -1
  100. package/dist/universal/.qoder/skills/citable/VERSION +1 -1
  101. package/dist/universal/.qoder/skills/citable/manifest.json +14 -5
  102. package/dist/universal/.qoder/skills/citable/schemas/claim-evidence.schema.json +21 -0
  103. package/dist/universal/.qoder/skills/citable/schemas/claim-verification.schema.json +18 -0
  104. package/dist/universal/.qoder/skills/citable/schemas/derivation.schema.json +18 -0
  105. package/dist/universal/.qoder/skills/citable/schemas/external-comparison.schema.json +16 -0
  106. package/dist/universal/.qoder/skills/citable/schemas/external-observation.schema.json +32 -0
  107. package/dist/universal/.qoder/skills/citable/schemas/prompt-set.schema.json +47 -0
  108. package/dist/universal/.qoder/skills/citable/schemas/representation-data.schema.json +21 -0
  109. package/dist/universal/.qoder/skills/citable/schemas/research-dataset.schema.json +27 -0
  110. package/dist/universal/.qoder/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  111. package/dist/universal/.rovodev/skills/citable/SKILL.md +1 -1
  112. package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
  113. package/dist/universal/.rovodev/skills/citable/manifest.json +14 -5
  114. package/dist/universal/.rovodev/skills/citable/schemas/claim-evidence.schema.json +21 -0
  115. package/dist/universal/.rovodev/skills/citable/schemas/claim-verification.schema.json +18 -0
  116. package/dist/universal/.rovodev/skills/citable/schemas/derivation.schema.json +18 -0
  117. package/dist/universal/.rovodev/skills/citable/schemas/external-comparison.schema.json +16 -0
  118. package/dist/universal/.rovodev/skills/citable/schemas/external-observation.schema.json +32 -0
  119. package/dist/universal/.rovodev/skills/citable/schemas/prompt-set.schema.json +47 -0
  120. package/dist/universal/.rovodev/skills/citable/schemas/representation-data.schema.json +21 -0
  121. package/dist/universal/.rovodev/skills/citable/schemas/research-dataset.schema.json +27 -0
  122. package/dist/universal/.rovodev/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  123. package/dist/universal/.trae/skills/citable/SKILL.md +1 -1
  124. package/dist/universal/.trae/skills/citable/VERSION +1 -1
  125. package/dist/universal/.trae/skills/citable/manifest.json +14 -5
  126. package/dist/universal/.trae/skills/citable/schemas/claim-evidence.schema.json +21 -0
  127. package/dist/universal/.trae/skills/citable/schemas/claim-verification.schema.json +18 -0
  128. package/dist/universal/.trae/skills/citable/schemas/derivation.schema.json +18 -0
  129. package/dist/universal/.trae/skills/citable/schemas/external-comparison.schema.json +16 -0
  130. package/dist/universal/.trae/skills/citable/schemas/external-observation.schema.json +32 -0
  131. package/dist/universal/.trae/skills/citable/schemas/prompt-set.schema.json +47 -0
  132. package/dist/universal/.trae/skills/citable/schemas/representation-data.schema.json +21 -0
  133. package/dist/universal/.trae/skills/citable/schemas/research-dataset.schema.json +27 -0
  134. package/dist/universal/.trae/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  135. package/dist/universal/.trae-cn/skills/citable/SKILL.md +1 -1
  136. package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
  137. package/dist/universal/.trae-cn/skills/citable/manifest.json +14 -5
  138. package/dist/universal/.trae-cn/skills/citable/schemas/claim-evidence.schema.json +21 -0
  139. package/dist/universal/.trae-cn/skills/citable/schemas/claim-verification.schema.json +18 -0
  140. package/dist/universal/.trae-cn/skills/citable/schemas/derivation.schema.json +18 -0
  141. package/dist/universal/.trae-cn/skills/citable/schemas/external-comparison.schema.json +16 -0
  142. package/dist/universal/.trae-cn/skills/citable/schemas/external-observation.schema.json +32 -0
  143. package/dist/universal/.trae-cn/skills/citable/schemas/prompt-set.schema.json +47 -0
  144. package/dist/universal/.trae-cn/skills/citable/schemas/representation-data.schema.json +21 -0
  145. package/dist/universal/.trae-cn/skills/citable/schemas/research-dataset.schema.json +27 -0
  146. package/dist/universal/.trae-cn/skills/citable/schemas/search-discovery-data.schema.json +20 -0
  147. package/dist/universal/manifest.json +172 -64
  148. package/package.json +1 -1
  149. package/schemas/claim-evidence.schema.json +21 -0
  150. package/schemas/claim-verification.schema.json +18 -0
  151. package/schemas/derivation.schema.json +18 -0
  152. package/schemas/external-comparison.schema.json +16 -0
  153. package/schemas/external-observation.schema.json +32 -0
  154. package/schemas/prompt-set.schema.json +47 -0
  155. package/schemas/representation-data.schema.json +21 -0
  156. package/schemas/research-dataset.schema.json +27 -0
  157. package/schemas/search-discovery-data.schema.json +20 -0
  158. package/skill/SKILL.md +1 -1
  159. package/src/connectors/gsc.js +4 -0
  160. package/src/discovery/searchConsole.js +186 -0
  161. package/src/evidence/external.js +251 -0
  162. package/src/representation/prompts.js +117 -0
  163. package/src/representation/representation.js +186 -0
@@ -0,0 +1,32 @@
1
+ {
2
+ "$id": "citable://schemas/external-observation.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Provider-neutral external observation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["observation_id", "observation_type", "subject", "source", "collector", "observed_at", "population", "observation_status", "retrieval_status", "data", "evidence_hash"],
8
+ "properties": {
9
+ "observation_id": { "type": "string", "minLength": 1 },
10
+ "observation_type": { "type": "string", "enum": ["PAGE_OBSERVATION", "EXTERNAL_OBSERVATION", "DERIVED_OBSERVATION"] },
11
+ "subject": { "type": "object", "additionalProperties": false, "required": ["type", "id"], "properties": { "type": { "type": "string", "minLength": 1 }, "id": { "type": "string", "minLength": 1 } } },
12
+ "source": { "type": "object", "additionalProperties": false, "required": ["provider", "method", "authority"], "properties": { "provider": { "type": "string", "minLength": 1 }, "method": { "type": "string", "minLength": 1 }, "authority": { "type": "string", "enum": ["first_party", "external_provider", "third_party", "synthetic", "inferred", "unknown"] }, "account_or_property": { "type": ["string", "null"] } } },
13
+ "collector": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
14
+ "parser": { "type": ["object", "null"], "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
15
+ "configuration": { "type": ["object", "null"], "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
16
+ "observed_at": { "type": "string", "format": "date-time" },
17
+ "retrieved_at": { "type": ["string", "null"], "format": "date-time" },
18
+ "executed_at": { "type": ["string", "null"], "format": "date-time" },
19
+ "population": { "$ref": "#/definitions/population" },
20
+ "observation_status": { "type": "string", "enum": ["observed", "not_observed", "incomplete", "indeterminate", "failed"] },
21
+ "retrieval_status": { "type": "string", "enum": ["retrieved", "not_retrieved", "partial", "indeterminate", "failed"] },
22
+ "determination_status": { "type": ["string", "null"], "enum": ["pass", "fail", "warning", "indeterminate", "not_tested", "error", "not_applicable", null] },
23
+ "data": { "type": "object" },
24
+ "context": { "type": "object", "additionalProperties": false, "properties": { "observed": { "type": "object" }, "supplied": { "type": "object" } } },
25
+ "lineage": { "type": "object", "additionalProperties": false, "properties": { "source_evidence": { "type": "array", "items": { "type": "string" } }, "predecessor_references": { "type": "array", "items": { "type": "string" } }, "successor_references": { "type": "array", "items": { "type": "string" } }, "derivation_inputs": { "type": "array", "items": { "type": "string" } }, "package_reference": { "type": ["string", "null"] } } },
26
+ "limitations": { "type": "array", "items": { "type": "string", "minLength": 1 } },
27
+ "evidence_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
28
+ },
29
+ "definitions": {
30
+ "population": { "type": "object", "additionalProperties": false, "required": ["declared", "observed", "retrieved", "evaluated", "unavailable", "failed"], "properties": { "declared": { "type": ["object", "null"], "additionalProperties": false, "properties": { "id": { "type": "string" }, "size": { "type": "integer", "minimum": 0 } } }, "observed": { "type": "integer", "minimum": 0 }, "retrieved": { "type": "integer", "minimum": 0 }, "evaluated": { "type": "integer", "minimum": 0 }, "unavailable": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 } } }
31
+ }
32
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$id": "citable://schemas/prompt-set.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Immutable versioned prompt population",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["prompt_set_id", "prompt_set_version", "purpose", "generation_method", "generated_at", "population_size", "sampling_method", "included_prompts", "excluded_prompts", "intended_population", "limitations", "prompt_set_hash"],
8
+ "properties": {
9
+ "prompt_set_id": { "type": "string", "minLength": 1 },
10
+ "prompt_set_version": { "type": "integer", "minimum": 1 },
11
+ "purpose": { "type": "string", "minLength": 1 },
12
+ "generation_method": { "type": "string", "minLength": 1 },
13
+ "generation_method_version": { "type": ["string", "null"] },
14
+ "generation_input": {},
15
+ "generated_at": { "type": "string", "format": "date-time" },
16
+ "population_size": { "type": "integer", "minimum": 0 },
17
+ "sampling_method": { "type": "string", "minLength": 1 },
18
+ "included_prompts": { "type": "array", "items": { "$ref": "#/definitions/prompt" } },
19
+ "excluded_prompts": { "type": "array", "items": { "$ref": "#/definitions/excludedPrompt" } },
20
+ "intended_population": { "type": "string", "minLength": 1 },
21
+ "limitations": { "type": "array", "items": { "type": "string", "minLength": 1 } },
22
+ "prompt_set_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
23
+ },
24
+ "definitions": {
25
+ "prompt": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "required": ["prompt_id", "prompt_text"],
29
+ "properties": {
30
+ "prompt_id": { "type": "string", "minLength": 1 },
31
+ "prompt_text": { "type": "string", "minLength": 1 },
32
+ "context": { "type": ["object", "null"] },
33
+ "locale": { "type": ["string", "null"] }
34
+ }
35
+ },
36
+ "excludedPrompt": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "required": ["prompt_id", "exclusion_reason"],
40
+ "properties": {
41
+ "prompt_id": { "type": "string", "minLength": 1 },
42
+ "prompt_text": { "type": ["string", "null"] },
43
+ "exclusion_reason": { "type": "string", "minLength": 1 }
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$id": "citable://schemas/representation-data.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Provider-neutral AI representation observation data",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["provider", "product", "surface", "model", "prompt", "prompt_set", "execution", "response", "representation", "evidence_origin"],
8
+ "properties": {
9
+ "provider": { "type": "string", "minLength": 1 },
10
+ "product": { "type": "string", "minLength": 1 },
11
+ "surface": { "type": "string", "minLength": 1 },
12
+ "model": { "type": "object", "additionalProperties": false, "required": ["value", "status"], "properties": { "value": { "type": ["string", "null"] }, "status": { "type": "string", "enum": ["known", "UNKNOWN", "UNAVAILABLE", "NOT_DISCLOSED"] } } },
13
+ "prompt": { "type": "object", "additionalProperties": false, "required": ["prompt_id", "prompt_version", "prompt_text"], "properties": { "prompt_id": { "type": "string", "minLength": 1 }, "prompt_version": { "type": "integer", "minimum": 1 }, "prompt_text": { "type": "string", "minLength": 1 } } },
14
+ "prompt_set": { "type": "object", "additionalProperties": false, "required": ["prompt_set_id", "prompt_set_version"], "properties": { "prompt_set_id": { "type": "string", "minLength": 1 }, "prompt_set_version": { "type": "integer", "minimum": 1 } } },
15
+ "execution": { "type": "object", "additionalProperties": false, "required": ["executed_at", "configuration"], "properties": { "executed_at": { "type": "string", "format": "date-time" }, "configuration": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } } } },
16
+ "response": { "type": "object", "additionalProperties": false, "required": ["status", "response_hash", "parser", "raw_response_retained"], "properties": { "status": { "type": "string", "enum": ["succeeded", "refused", "error", "timeout", "rate_limited", "malformed", "unavailable", "parser_failed"] }, "response_hash": { "type": ["string", "null"], "pattern": "^[a-f0-9]{64}$" }, "parser": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } }, "raw_response_retained": { "type": "boolean" }, "provider_metadata": { "type": "object" } } },
17
+ "representation": { "type": "object", "additionalProperties": false, "required": ["brand_mentioned", "domain_mentioned", "domain_cited", "cited_urls", "mentioned_entities", "cited_domains"], "properties": { "brand_mentioned": { "type": ["boolean", "null"] }, "domain_mentioned": { "type": ["boolean", "null"] }, "domain_cited": { "type": ["boolean", "null"] }, "cited_urls": { "type": "array", "items": { "type": "string", "format": "uri" } }, "mentioned_entities": { "type": "array", "items": { "type": "string" } }, "cited_domains": { "type": "array", "items": { "type": "string" } } } },
18
+ "evidence_origin": { "type": "string", "enum": ["LIVE_PROVIDER", "RECORDED_FIXTURE", "SYNTHETIC_TEST"] },
19
+ "limitations": { "type": "array", "items": { "type": "string" } }
20
+ }
21
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$id": "citable://schemas/research-dataset.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Immutable research dataset",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["dataset_id", "dataset_version", "declared_purpose", "declared_population", "population_size", "inclusion_criteria", "exclusion_criteria", "collection", "source_references", "observation_references", "normalization", "derivation_references", "coverage", "coverage_status", "limitations", "dataset_hash"],
8
+ "properties": {
9
+ "dataset_id": { "type": "string", "minLength": 1 },
10
+ "dataset_version": { "type": "integer", "minimum": 1 },
11
+ "declared_purpose": { "type": "string", "minLength": 1 },
12
+ "declared_population": { "type": "object", "additionalProperties": false, "required": ["type", "id"], "properties": { "type": { "type": "string", "minLength": 1 }, "id": { "type": "string", "minLength": 1 }, "size": { "type": ["integer", "null"], "minimum": 0 } } },
13
+ "population_size": { "type": ["integer", "null"], "minimum": 0 },
14
+ "inclusion_criteria": { "type": "array", "items": { "type": "string" } },
15
+ "exclusion_criteria": { "type": "array", "items": { "type": "string" } },
16
+ "collection": { "type": "object", "additionalProperties": false, "required": ["started_at", "ended_at"], "properties": { "started_at": { "type": "string", "format": "date-time" }, "ended_at": { "type": "string", "format": "date-time" } } },
17
+ "source_references": { "type": "array", "items": { "type": "string" } },
18
+ "source_retrieval_timestamps": { "type": "array", "items": { "type": "string", "format": "date-time" } },
19
+ "observation_references": { "type": "array", "items": { "type": "string" } },
20
+ "normalization": { "type": "object", "additionalProperties": false, "required": ["method", "version"], "properties": { "method": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
21
+ "derivation_references": { "type": "array", "items": { "type": "string" } },
22
+ "coverage": { "type": "object", "additionalProperties": false, "required": ["declared", "retrieved", "evaluated", "unavailable", "failed"], "properties": { "declared": { "type": "integer", "minimum": 0 }, "retrieved": { "type": "integer", "minimum": 0 }, "evaluated": { "type": "integer", "minimum": 0 }, "unavailable": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 } } },
23
+ "coverage_status": { "type": "string", "enum": ["complete_for_declared_population", "partial", "truncated", "indeterminate", "error"] },
24
+ "limitations": { "type": "array", "items": { "type": "string" } },
25
+ "dataset_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
26
+ }
27
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$id": "citable://schemas/search-discovery-data.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Search discovery observation data",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["query", "page", "interval", "metrics", "request", "coverage_status", "evidence_origin"],
8
+ "properties": {
9
+ "query": { "type": ["string", "null"] },
10
+ "page": { "type": ["string", "null"], "format": "uri" },
11
+ "interval": { "type": "object", "additionalProperties": false, "required": ["start_date", "end_date"], "properties": { "start_date": { "type": "string", "format": "date" }, "end_date": { "type": "string", "format": "date" } } },
12
+ "metrics": { "type": "object", "additionalProperties": false, "required": ["impressions", "clicks", "ctr", "average_position"], "properties": { "impressions": { "type": ["number", "null"], "minimum": 0 }, "clicks": { "type": ["number", "null"], "minimum": 0 }, "ctr": { "type": ["number", "null"], "minimum": 0 }, "average_position": { "type": ["number", "null"], "minimum": 0 } } },
13
+ "dimensions": { "type": "object", "additionalProperties": false, "properties": { "country": { "type": ["string", "null"] }, "device": { "type": ["string", "null"] }, "search_appearance": { "type": ["string", "null"] }, "date": { "type": ["string", "null"], "format": "date" } } },
14
+ "request": { "type": "object", "additionalProperties": false, "required": ["property_id", "dimensions", "filters", "row_limit"], "properties": { "property_id": { "type": "string", "minLength": 1 }, "dimensions": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "object" }, "row_limit": { "type": "integer", "minimum": 1, "maximum": 25000 } } },
15
+ "provider_reported": { "type": "object", "additionalProperties": false, "properties": { "row_count": { "type": ["integer", "null"], "minimum": 0 }, "page_start": { "type": "integer", "minimum": 0 } } },
16
+ "response_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
17
+ "coverage_status": { "type": "string", "enum": ["complete", "truncated", "indeterminate", "provider_bounded"] },
18
+ "evidence_origin": { "type": "string", "enum": ["LIVE_PROVIDER", "RECORDED_FIXTURE", "SYNTHETIC_TEST"] }
19
+ }
20
+ }
@@ -7,7 +7,7 @@ description: >
7
7
  generative engine optimization, structured data governance, claim substantiation,
8
8
  crawler policy, entity consistency, content discoverability, or wants a site audited
9
9
  for how search and AI systems will retrieve, understand, cite, or recommend it.
10
- version: 1.20.0
10
+ version: 1.21.0
11
11
  ---
12
12
 
13
13
  # Citable — evidence and change control for search and AI citation readiness
@@ -1 +1 @@
1
- 1.20.0
1
+ 1.21.0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "citable",
3
- "version": "1.20.0",
3
+ "version": "1.21.0",
4
4
  "managedBy": "citable-cli",
5
5
  "provider": "trae",
6
6
  "providerName": "Trae",
7
7
  "scope": "bundle",
8
- "sourcePackage": "@nebulacomponents/citable@1.20.0",
8
+ "sourcePackage": "@nebulacomponents/citable@1.21.0",
9
9
  "variantPath": ".trae/skills/citable",
10
10
  "agentProfiles": {
11
11
  "status": "unsupported",
@@ -65,6 +65,8 @@
65
65
  "schemas/browser-runtime-events.schema.json": "sha256:ff9b6e486ca5a72a6613a4e3e479cd11bcadff52c7481df125aa1670f404a7e4",
66
66
  "schemas/browser-state-observations.schema.json": "sha256:7748b9ed7110834e19c1827bd125c0d0cdb50e2dd89a713da03cd643e9c72843",
67
67
  "schemas/canonical-index-import.schema.json": "sha256:ef633662cb30873242ca356443bc4835afe56bb020208e8f42fa47ac8047b66e",
68
+ "schemas/claim-evidence.schema.json": "sha256:524b4b8d47d58a7c75e5369e9bad55feaaa282c31076631d5f2517ae1328e1cb",
69
+ "schemas/claim-verification.schema.json": "sha256:dc9f5bd2af09fad6fdc40e9e63814825350b74d67b33fd3ed241190e983e91b1",
68
70
  "schemas/claim.schema.json": "sha256:ce79ccbfa34ece9b7a309a6962522ea06a1f44c468b4c472b5c376554a788537",
69
71
  "schemas/cli-output-envelope.schema.json": "sha256:6964e8f2f43618bfd0d7a3f5344b37ebc26f04779796bb8ff4675b935b6208c3",
70
72
  "schemas/collection-result.schema.json": "sha256:d844aa183300abf220030f6a000f297195a06c02f2cd3a4f15a399e317b8c5d8",
@@ -80,6 +82,7 @@
80
82
  "schemas/customer-outcome.schema.json": "sha256:c0cdfee31a692feadb31dc6be734d45ae178ee53f28349c2a9e7504bdfcf9e50",
81
83
  "schemas/decision.schema.json": "sha256:7c30f3ad83a6aa0b67ecc51ac6691e5e041b633d01bab17cee2b5218d926204e",
82
84
  "schemas/deployment-receipt.schema.json": "sha256:789455907e7f3039fd55ee5b2568e09871128f513f5ddfe1f3afac1a4dd6b2bd",
85
+ "schemas/derivation.schema.json": "sha256:89fe01a282cb58eb1c31a9354aae5fef884d6201e6610184dc423995bc37e42d",
83
86
  "schemas/detector-quality.schema.json": "sha256:5e9e1ac80b1198a0ff8fa17b9f7a543d3ccf3ed3d60196152f6ff095cfdebccd",
84
87
  "schemas/entity-graph.schema.json": "sha256:b9cc1312e3c7657d301e63c8dd302d79c7348f245ce3c324eeaa1e796720b74b",
85
88
  "schemas/entity.schema.json": "sha256:ce7cb7a0117a2fbd3032c9f244ab43855b47b285b81313513c3bb3287d37a33b",
@@ -87,6 +90,8 @@
87
90
  "schemas/evidence.schema.json": "sha256:76baec7ad7e89c6952473c01dacb9e3b26953c088331e6314d531ce620df9ec1",
88
91
  "schemas/exception.schema.json": "sha256:c88985494ec66554330fdc5b65d033527d0005acf41f10798b1e831d171f8944",
89
92
  "schemas/experiment.schema.json": "sha256:4b5d16481448597b152269296b67b5776be6f03d8f9afba1833bcee10bf3c05b",
93
+ "schemas/external-comparison.schema.json": "sha256:eecc356ac5696cc3f3b27062d35f084db0cd02cfd80eecfa2ea0024b3b5cfb3f",
94
+ "schemas/external-observation.schema.json": "sha256:960c1de406a11fc959c309932dd081a0d4273bcc3cd14db4f4e21c1125202fa9",
90
95
  "schemas/field-validation-metrics.schema.json": "sha256:bd5daeafc1593f1c4707d75180e1feb1e81d9345a57c1f269eadf13c36cb7012",
91
96
  "schemas/finding.schema.json": "sha256:06c0fc028288319828f124cea6791a7ad69a1bc3aa81c176604a83ca0f2da766",
92
97
  "schemas/fleet.schema.json": "sha256:3bf5772695ae4bb49a8c5fdbedee230ddb1d84aff6a3176eeb41527aca6ef2a5",
@@ -102,6 +107,7 @@
102
107
  "schemas/page.schema.json": "sha256:11d116b22ab79c152cfc7bbbec3a00cebe6dcd8ea2845b0ce819c15111fb0166",
103
108
  "schemas/project.schema.json": "sha256:ea48fdb6480f7047ba4594bd5908bc1f79c1ad6b9a2c204df900959b5f203dc6",
104
109
  "schemas/prompt-result.schema.json": "sha256:b55be47d7d58d7b1dd8c3b1e849e24e55216212c592cde7eb836953379b85737",
110
+ "schemas/prompt-set.schema.json": "sha256:0812b8a946aa2a81018e6bb51baf8a0fe0d99e23048d75d86f97b66a0b74c152",
105
111
  "schemas/prompt.schema.json": "sha256:7f0f50c83a86ac91faa7b79895dbc1fed371e8c0342e18d8c2877cc81f4f0f4c",
106
112
  "schemas/query.schema.json": "sha256:3c0793a8c0c48ab39320416790840b345ea987696f35b1cc364f23245a62aacb",
107
113
  "schemas/regional-network-import.schema.json": "sha256:9dc1062fbab9b98ccc485d605bb7e7d65d21449cccc17005251d4efea910fed0",
@@ -109,6 +115,8 @@
109
115
  "schemas/release-state.schema.json": "sha256:9920f68e538915d0d07044f313a9e410775a38ce9bb46a55d9ebe02970784803",
110
116
  "schemas/remediation-spec.schema.json": "sha256:6fe8cb773702862ba6d261198bb5cc2dca3eca0a2310a60ebddd04377654df8d",
111
117
  "schemas/remediation-verification.schema.json": "sha256:b56560b4f6fd82b9d3db4ad4f7fd0a0e4b289bfebf2e5a02e7c6727d5ba97291",
118
+ "schemas/representation-data.schema.json": "sha256:eef400570f073b49947d640790610e3bc980869d9eaeb1412bcff74a3385cda9",
119
+ "schemas/research-dataset.schema.json": "sha256:f69da3db9d3984e70e5cb3b92de7384c39ea5d10532ad5f5f5a0e5a2c0aa353e",
112
120
  "schemas/review-item.schema.json": "sha256:df532a70385d5031bbc18654f3ccb436dc6e8d402ccf987e58f8f7e3ad2fb3f1",
113
121
  "schemas/review-policy.schema.json": "sha256:b2d176b1886f78c384b25532a0c3eb18548dfbd17f362a305e622bab562a1d04",
114
122
  "schemas/reviewer.schema.json": "sha256:3716697b752575a1277f2c2b318b1f2565de02bf9dce2a0c165567ab5330d18b",
@@ -117,15 +125,16 @@
117
125
  "schemas/sampling-plan.schema.json": "sha256:005f70f149baaacd7de698548d556d3e401c630978748271b0e14a74726dd413",
118
126
  "schemas/scenario.schema.json": "sha256:3f5bc2032d08f973600db068f475176a0e4706b33be42f99c778fe755a0ff38b",
119
127
  "schemas/schedule.schema.json": "sha256:645df065bf33577a960c0bf8bb97e141e9326840303569468dae8a553d468482",
128
+ "schemas/search-discovery-data.schema.json": "sha256:23c45442c55f2a0b5a0b910da03641319a66d3b9b6811892fe30b2b3a9663b80",
120
129
  "schemas/search-report.schema.json": "sha256:d6e837580fdd53365e74d3d8b5101cd5a7d54b72f438155293aac399f676b176",
121
130
  "schemas/source-identity-chain.schema.json": "sha256:a65d9c12eaed1bd6b637c66a2f9362c17287fdfcb454d8676fb611d2d28aa019",
122
131
  "schemas/sow.schema.json": "sha256:3a3fd6048a747a9bc0cfaea98920376b043616a33c953a9eb8b74d0ae32dded0",
123
132
  "schemas/summary.schema.json": "sha256:0c9eb076fe992f351c3963728ba247a003648d8fe637b7cdd3016ba5842199c6",
124
133
  "schemas/variance.schema.json": "sha256:68389f64f0a3be13ff8951e8eefba9a5c31d0738325cb47e37c1a8435bea48f0",
125
134
  "scripts/README.md": "sha256:9eee4e8beb4579a183bd714c9dd24b83abd020753eada5caeffae004739d60b5",
126
- "SKILL.md": "sha256:77d5647c556f0ba398bcb855c7307b004020a9fec0d9ef3b8e143173ccbfb756",
135
+ "SKILL.md": "sha256:4a7e19382de8b39544c392defedb3eee189404f7ba79932c9b13bb0426743def",
127
136
  "templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
128
- "VERSION": "sha256:26ac7beccb7951efb69255974ffc70a13bb2e68ae84dcb5456c3fb46294bdba8"
137
+ "VERSION": "sha256:65a6bd97a4a6b72911ae6c3d45991f4326c95f792e196f8bf74857a557b27585"
129
138
  },
130
- "treeHash": "sha256:d2abaf43458900a402f054172a8c35811b99cab2272c7503d72ea01b7ed1285b"
139
+ "treeHash": "sha256:ee414162970cefa47e9b417814c0611133618987449c16027607d679f451bdb9"
131
140
  }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$id": "citable://schemas/claim-evidence.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Claim to evidence lineage",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["claim_id", "claim_version", "proposition", "declared_scope", "evidence_references", "observation_references", "dataset_references", "derivation_references", "assertion", "limitations", "claim_hash"],
8
+ "properties": {
9
+ "claim_id": { "type": "string", "minLength": 1 },
10
+ "claim_version": { "type": "integer", "minimum": 1 },
11
+ "proposition": { "type": "string", "minLength": 3 },
12
+ "declared_scope": { "type": "object", "additionalProperties": false, "required": ["type", "generalization"], "properties": { "type": { "type": "string", "enum": ["observation", "dataset", "declared_population"] }, "observation_reference": { "type": "string" }, "dataset_reference": { "type": "string" }, "generalization": { "type": "string", "enum": ["bounded", "universal"] } } },
13
+ "evidence_references": { "type": "array", "items": { "type": "string" } },
14
+ "observation_references": { "type": "array", "items": { "type": "string" } },
15
+ "dataset_references": { "type": "array", "items": { "type": "string" } },
16
+ "derivation_references": { "type": "array", "items": { "type": "string" } },
17
+ "assertion": { "type": "object" },
18
+ "limitations": { "type": "array", "items": { "type": "string" } },
19
+ "claim_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
20
+ }
21
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$id": "citable://schemas/claim-verification.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Bounded claim verification result",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["claim_id", "claim_version", "overall", "proposition_support", "scope_support", "reasons", "lineage"],
8
+ "properties": {
9
+ "claim_id": { "type": "string" },
10
+ "claim_version": { "type": "integer", "minimum": 1 },
11
+ "overall": { "type": "string", "enum": ["SUPPORTED", "PARTIALLY_SUPPORTED", "UNSUPPORTED", "CONTRADICTED", "INDETERMINATE", "NOT_OBSERVED"] },
12
+ "proposition_support": { "type": "string", "enum": ["SUPPORTED", "PARTIALLY_SUPPORTED", "UNSUPPORTED", "CONTRADICTED", "INDETERMINATE", "NOT_OBSERVED"] },
13
+ "scope_support": { "type": "string", "enum": ["SUPPORTED", "PARTIALLY_SUPPORTED", "UNSUPPORTED", "INDETERMINATE", "NOT_OBSERVED"] },
14
+ "reasons": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["code", "message"], "properties": { "code": { "type": "string" }, "message": { "type": "string" } } } },
15
+ "lineage": { "type": "object", "additionalProperties": false, "required": ["claim_reference", "observation_references", "dataset_references", "derivation_references"], "properties": { "claim_reference": { "type": "string" }, "observation_references": { "type": "array", "items": { "type": "string" } }, "dataset_references": { "type": "array", "items": { "type": "string" } }, "derivation_references": { "type": "array", "items": { "type": "string" } } } },
16
+ "limitations": { "type": "array", "items": { "type": "string" } }
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$id": "citable://schemas/derivation.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Evidence derivation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["derivation_id", "derivation_version", "operation", "input_observation_references", "result", "implementation", "derivation_hash"],
8
+ "properties": {
9
+ "derivation_id": { "type": "string", "minLength": 1 },
10
+ "derivation_version": { "type": "integer", "minimum": 1 },
11
+ "operation": { "type": "string", "minLength": 1 },
12
+ "input_observation_references": { "type": "array", "minItems": 1, "items": { "type": "string" } },
13
+ "predicate": { "type": "object", "additionalProperties": false, "required": ["path", "operator", "value"], "properties": { "path": { "type": "string" }, "operator": { "type": "string", "enum": ["equals"] }, "value": {} } },
14
+ "result": { "type": "object" },
15
+ "implementation": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string" }, "version": { "type": "string" } } },
16
+ "derivation_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
17
+ }
18
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$id": "citable://schemas/external-comparison.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "External evidence comparison",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["comparison_id", "left_reference", "right_reference", "status", "dimensions", "limitations"],
8
+ "properties": {
9
+ "comparison_id": { "type": "string", "minLength": 1 },
10
+ "left_reference": { "type": "string", "minLength": 1 },
11
+ "right_reference": { "type": "string", "minLength": 1 },
12
+ "status": { "type": "string", "enum": ["COMPARABLE", "PARTIALLY_COMPARABLE", "NOT_COMPARABLE", "INDETERMINATE"] },
13
+ "dimensions": { "type": "object", "additionalProperties": { "type": "string", "enum": ["match", "mismatch", "missing", "unknown"] } },
14
+ "limitations": { "type": "array", "items": { "type": "string" } }
15
+ }
16
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$id": "citable://schemas/external-observation.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Provider-neutral external observation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["observation_id", "observation_type", "subject", "source", "collector", "observed_at", "population", "observation_status", "retrieval_status", "data", "evidence_hash"],
8
+ "properties": {
9
+ "observation_id": { "type": "string", "minLength": 1 },
10
+ "observation_type": { "type": "string", "enum": ["PAGE_OBSERVATION", "EXTERNAL_OBSERVATION", "DERIVED_OBSERVATION"] },
11
+ "subject": { "type": "object", "additionalProperties": false, "required": ["type", "id"], "properties": { "type": { "type": "string", "minLength": 1 }, "id": { "type": "string", "minLength": 1 } } },
12
+ "source": { "type": "object", "additionalProperties": false, "required": ["provider", "method", "authority"], "properties": { "provider": { "type": "string", "minLength": 1 }, "method": { "type": "string", "minLength": 1 }, "authority": { "type": "string", "enum": ["first_party", "external_provider", "third_party", "synthetic", "inferred", "unknown"] }, "account_or_property": { "type": ["string", "null"] } } },
13
+ "collector": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
14
+ "parser": { "type": ["object", "null"], "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
15
+ "configuration": { "type": ["object", "null"], "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
16
+ "observed_at": { "type": "string", "format": "date-time" },
17
+ "retrieved_at": { "type": ["string", "null"], "format": "date-time" },
18
+ "executed_at": { "type": ["string", "null"], "format": "date-time" },
19
+ "population": { "$ref": "#/definitions/population" },
20
+ "observation_status": { "type": "string", "enum": ["observed", "not_observed", "incomplete", "indeterminate", "failed"] },
21
+ "retrieval_status": { "type": "string", "enum": ["retrieved", "not_retrieved", "partial", "indeterminate", "failed"] },
22
+ "determination_status": { "type": ["string", "null"], "enum": ["pass", "fail", "warning", "indeterminate", "not_tested", "error", "not_applicable", null] },
23
+ "data": { "type": "object" },
24
+ "context": { "type": "object", "additionalProperties": false, "properties": { "observed": { "type": "object" }, "supplied": { "type": "object" } } },
25
+ "lineage": { "type": "object", "additionalProperties": false, "properties": { "source_evidence": { "type": "array", "items": { "type": "string" } }, "predecessor_references": { "type": "array", "items": { "type": "string" } }, "successor_references": { "type": "array", "items": { "type": "string" } }, "derivation_inputs": { "type": "array", "items": { "type": "string" } }, "package_reference": { "type": ["string", "null"] } } },
26
+ "limitations": { "type": "array", "items": { "type": "string", "minLength": 1 } },
27
+ "evidence_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
28
+ },
29
+ "definitions": {
30
+ "population": { "type": "object", "additionalProperties": false, "required": ["declared", "observed", "retrieved", "evaluated", "unavailable", "failed"], "properties": { "declared": { "type": ["object", "null"], "additionalProperties": false, "properties": { "id": { "type": "string" }, "size": { "type": "integer", "minimum": 0 } } }, "observed": { "type": "integer", "minimum": 0 }, "retrieved": { "type": "integer", "minimum": 0 }, "evaluated": { "type": "integer", "minimum": 0 }, "unavailable": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 } } }
31
+ }
32
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$id": "citable://schemas/prompt-set.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Immutable versioned prompt population",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["prompt_set_id", "prompt_set_version", "purpose", "generation_method", "generated_at", "population_size", "sampling_method", "included_prompts", "excluded_prompts", "intended_population", "limitations", "prompt_set_hash"],
8
+ "properties": {
9
+ "prompt_set_id": { "type": "string", "minLength": 1 },
10
+ "prompt_set_version": { "type": "integer", "minimum": 1 },
11
+ "purpose": { "type": "string", "minLength": 1 },
12
+ "generation_method": { "type": "string", "minLength": 1 },
13
+ "generation_method_version": { "type": ["string", "null"] },
14
+ "generation_input": {},
15
+ "generated_at": { "type": "string", "format": "date-time" },
16
+ "population_size": { "type": "integer", "minimum": 0 },
17
+ "sampling_method": { "type": "string", "minLength": 1 },
18
+ "included_prompts": { "type": "array", "items": { "$ref": "#/definitions/prompt" } },
19
+ "excluded_prompts": { "type": "array", "items": { "$ref": "#/definitions/excludedPrompt" } },
20
+ "intended_population": { "type": "string", "minLength": 1 },
21
+ "limitations": { "type": "array", "items": { "type": "string", "minLength": 1 } },
22
+ "prompt_set_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
23
+ },
24
+ "definitions": {
25
+ "prompt": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "required": ["prompt_id", "prompt_text"],
29
+ "properties": {
30
+ "prompt_id": { "type": "string", "minLength": 1 },
31
+ "prompt_text": { "type": "string", "minLength": 1 },
32
+ "context": { "type": ["object", "null"] },
33
+ "locale": { "type": ["string", "null"] }
34
+ }
35
+ },
36
+ "excludedPrompt": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "required": ["prompt_id", "exclusion_reason"],
40
+ "properties": {
41
+ "prompt_id": { "type": "string", "minLength": 1 },
42
+ "prompt_text": { "type": ["string", "null"] },
43
+ "exclusion_reason": { "type": "string", "minLength": 1 }
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$id": "citable://schemas/representation-data.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Provider-neutral AI representation observation data",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["provider", "product", "surface", "model", "prompt", "prompt_set", "execution", "response", "representation", "evidence_origin"],
8
+ "properties": {
9
+ "provider": { "type": "string", "minLength": 1 },
10
+ "product": { "type": "string", "minLength": 1 },
11
+ "surface": { "type": "string", "minLength": 1 },
12
+ "model": { "type": "object", "additionalProperties": false, "required": ["value", "status"], "properties": { "value": { "type": ["string", "null"] }, "status": { "type": "string", "enum": ["known", "UNKNOWN", "UNAVAILABLE", "NOT_DISCLOSED"] } } },
13
+ "prompt": { "type": "object", "additionalProperties": false, "required": ["prompt_id", "prompt_version", "prompt_text"], "properties": { "prompt_id": { "type": "string", "minLength": 1 }, "prompt_version": { "type": "integer", "minimum": 1 }, "prompt_text": { "type": "string", "minLength": 1 } } },
14
+ "prompt_set": { "type": "object", "additionalProperties": false, "required": ["prompt_set_id", "prompt_set_version"], "properties": { "prompt_set_id": { "type": "string", "minLength": 1 }, "prompt_set_version": { "type": "integer", "minimum": 1 } } },
15
+ "execution": { "type": "object", "additionalProperties": false, "required": ["executed_at", "configuration"], "properties": { "executed_at": { "type": "string", "format": "date-time" }, "configuration": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } } } },
16
+ "response": { "type": "object", "additionalProperties": false, "required": ["status", "response_hash", "parser", "raw_response_retained"], "properties": { "status": { "type": "string", "enum": ["succeeded", "refused", "error", "timeout", "rate_limited", "malformed", "unavailable", "parser_failed"] }, "response_hash": { "type": ["string", "null"], "pattern": "^[a-f0-9]{64}$" }, "parser": { "type": "object", "additionalProperties": false, "required": ["id", "version"], "properties": { "id": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } }, "raw_response_retained": { "type": "boolean" }, "provider_metadata": { "type": "object" } } },
17
+ "representation": { "type": "object", "additionalProperties": false, "required": ["brand_mentioned", "domain_mentioned", "domain_cited", "cited_urls", "mentioned_entities", "cited_domains"], "properties": { "brand_mentioned": { "type": ["boolean", "null"] }, "domain_mentioned": { "type": ["boolean", "null"] }, "domain_cited": { "type": ["boolean", "null"] }, "cited_urls": { "type": "array", "items": { "type": "string", "format": "uri" } }, "mentioned_entities": { "type": "array", "items": { "type": "string" } }, "cited_domains": { "type": "array", "items": { "type": "string" } } } },
18
+ "evidence_origin": { "type": "string", "enum": ["LIVE_PROVIDER", "RECORDED_FIXTURE", "SYNTHETIC_TEST"] },
19
+ "limitations": { "type": "array", "items": { "type": "string" } }
20
+ }
21
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$id": "citable://schemas/research-dataset.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Immutable research dataset",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["dataset_id", "dataset_version", "declared_purpose", "declared_population", "population_size", "inclusion_criteria", "exclusion_criteria", "collection", "source_references", "observation_references", "normalization", "derivation_references", "coverage", "coverage_status", "limitations", "dataset_hash"],
8
+ "properties": {
9
+ "dataset_id": { "type": "string", "minLength": 1 },
10
+ "dataset_version": { "type": "integer", "minimum": 1 },
11
+ "declared_purpose": { "type": "string", "minLength": 1 },
12
+ "declared_population": { "type": "object", "additionalProperties": false, "required": ["type", "id"], "properties": { "type": { "type": "string", "minLength": 1 }, "id": { "type": "string", "minLength": 1 }, "size": { "type": ["integer", "null"], "minimum": 0 } } },
13
+ "population_size": { "type": ["integer", "null"], "minimum": 0 },
14
+ "inclusion_criteria": { "type": "array", "items": { "type": "string" } },
15
+ "exclusion_criteria": { "type": "array", "items": { "type": "string" } },
16
+ "collection": { "type": "object", "additionalProperties": false, "required": ["started_at", "ended_at"], "properties": { "started_at": { "type": "string", "format": "date-time" }, "ended_at": { "type": "string", "format": "date-time" } } },
17
+ "source_references": { "type": "array", "items": { "type": "string" } },
18
+ "source_retrieval_timestamps": { "type": "array", "items": { "type": "string", "format": "date-time" } },
19
+ "observation_references": { "type": "array", "items": { "type": "string" } },
20
+ "normalization": { "type": "object", "additionalProperties": false, "required": ["method", "version"], "properties": { "method": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 } } },
21
+ "derivation_references": { "type": "array", "items": { "type": "string" } },
22
+ "coverage": { "type": "object", "additionalProperties": false, "required": ["declared", "retrieved", "evaluated", "unavailable", "failed"], "properties": { "declared": { "type": "integer", "minimum": 0 }, "retrieved": { "type": "integer", "minimum": 0 }, "evaluated": { "type": "integer", "minimum": 0 }, "unavailable": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 } } },
23
+ "coverage_status": { "type": "string", "enum": ["complete_for_declared_population", "partial", "truncated", "indeterminate", "error"] },
24
+ "limitations": { "type": "array", "items": { "type": "string" } },
25
+ "dataset_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
26
+ }
27
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$id": "citable://schemas/search-discovery-data.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Search discovery observation data",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["query", "page", "interval", "metrics", "request", "coverage_status", "evidence_origin"],
8
+ "properties": {
9
+ "query": { "type": ["string", "null"] },
10
+ "page": { "type": ["string", "null"], "format": "uri" },
11
+ "interval": { "type": "object", "additionalProperties": false, "required": ["start_date", "end_date"], "properties": { "start_date": { "type": "string", "format": "date" }, "end_date": { "type": "string", "format": "date" } } },
12
+ "metrics": { "type": "object", "additionalProperties": false, "required": ["impressions", "clicks", "ctr", "average_position"], "properties": { "impressions": { "type": ["number", "null"], "minimum": 0 }, "clicks": { "type": ["number", "null"], "minimum": 0 }, "ctr": { "type": ["number", "null"], "minimum": 0 }, "average_position": { "type": ["number", "null"], "minimum": 0 } } },
13
+ "dimensions": { "type": "object", "additionalProperties": false, "properties": { "country": { "type": ["string", "null"] }, "device": { "type": ["string", "null"] }, "search_appearance": { "type": ["string", "null"] }, "date": { "type": ["string", "null"], "format": "date" } } },
14
+ "request": { "type": "object", "additionalProperties": false, "required": ["property_id", "dimensions", "filters", "row_limit"], "properties": { "property_id": { "type": "string", "minLength": 1 }, "dimensions": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "object" }, "row_limit": { "type": "integer", "minimum": 1, "maximum": 25000 } } },
15
+ "provider_reported": { "type": "object", "additionalProperties": false, "properties": { "row_count": { "type": ["integer", "null"], "minimum": 0 }, "page_start": { "type": "integer", "minimum": 0 } } },
16
+ "response_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
17
+ "coverage_status": { "type": "string", "enum": ["complete", "truncated", "indeterminate", "provider_bounded"] },
18
+ "evidence_origin": { "type": "string", "enum": ["LIVE_PROVIDER", "RECORDED_FIXTURE", "SYNTHETIC_TEST"] }
19
+ }
20
+ }
@@ -7,7 +7,7 @@ description: >
7
7
  generative engine optimization, structured data governance, claim substantiation,
8
8
  crawler policy, entity consistency, content discoverability, or wants a site audited
9
9
  for how search and AI systems will retrieve, understand, cite, or recommend it.
10
- version: 1.20.0
10
+ version: 1.21.0
11
11
  ---
12
12
 
13
13
  # Citable — evidence and change control for search and AI citation readiness
@@ -1 +1 @@
1
- 1.20.0
1
+ 1.21.0