@nebulacomponents/citable 0.1.0 → 1.2.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 (50) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +8 -2
  3. package/dist/universal/.agents/skills/citable/VERSION +1 -1
  4. package/dist/universal/.agents/skills/citable/manifest.json +5 -5
  5. package/dist/universal/.agents/skills/citable/schemas/finding.schema.json +253 -50
  6. package/dist/universal/.claude/skills/citable/VERSION +1 -1
  7. package/dist/universal/.claude/skills/citable/manifest.json +5 -5
  8. package/dist/universal/.claude/skills/citable/schemas/finding.schema.json +253 -50
  9. package/dist/universal/.cursor/skills/citable/VERSION +1 -1
  10. package/dist/universal/.cursor/skills/citable/manifest.json +5 -5
  11. package/dist/universal/.cursor/skills/citable/schemas/finding.schema.json +253 -50
  12. package/dist/universal/.gemini/skills/citable/VERSION +1 -1
  13. package/dist/universal/.gemini/skills/citable/manifest.json +5 -5
  14. package/dist/universal/.gemini/skills/citable/schemas/finding.schema.json +253 -50
  15. package/dist/universal/.github/skills/citable/VERSION +1 -1
  16. package/dist/universal/.github/skills/citable/manifest.json +5 -5
  17. package/dist/universal/.github/skills/citable/schemas/finding.schema.json +253 -50
  18. package/dist/universal/.kiro/skills/citable/VERSION +1 -1
  19. package/dist/universal/.kiro/skills/citable/manifest.json +5 -5
  20. package/dist/universal/.kiro/skills/citable/schemas/finding.schema.json +253 -50
  21. package/dist/universal/.opencode/skills/citable/VERSION +1 -1
  22. package/dist/universal/.opencode/skills/citable/manifest.json +5 -5
  23. package/dist/universal/.opencode/skills/citable/schemas/finding.schema.json +253 -50
  24. package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
  25. package/dist/universal/.pi/agent/skills/citable/manifest.json +5 -5
  26. package/dist/universal/.pi/agent/skills/citable/schemas/finding.schema.json +253 -50
  27. package/dist/universal/.qoder/skills/citable/VERSION +1 -1
  28. package/dist/universal/.qoder/skills/citable/manifest.json +5 -5
  29. package/dist/universal/.qoder/skills/citable/schemas/finding.schema.json +253 -50
  30. package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
  31. package/dist/universal/.rovodev/skills/citable/manifest.json +5 -5
  32. package/dist/universal/.rovodev/skills/citable/schemas/finding.schema.json +253 -50
  33. package/dist/universal/.trae/skills/citable/VERSION +1 -1
  34. package/dist/universal/.trae/skills/citable/manifest.json +5 -5
  35. package/dist/universal/.trae/skills/citable/schemas/finding.schema.json +253 -50
  36. package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
  37. package/dist/universal/.trae-cn/skills/citable/manifest.json +5 -5
  38. package/dist/universal/.trae-cn/skills/citable/schemas/finding.schema.json +253 -50
  39. package/dist/universal/manifest.json +51 -51
  40. package/package.json +4 -1
  41. package/schemas/finding.schema.json +253 -50
  42. package/src/cli/index.js +7 -0
  43. package/src/commands/selfUpgrade.js +146 -0
  44. package/src/crawler/fetch.js +42 -9
  45. package/src/detectors/agent.js +495 -0
  46. package/src/detectors/cwv.js +171 -0
  47. package/src/detectors/framework.js +1 -1
  48. package/src/detectors/hreflang.js +164 -0
  49. package/src/detectors/index.js +4 -1
  50. package/src/installer/index.js +7 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,74 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.0 — 2026-07-18
4
+
5
+ ### Added
6
+
7
+ - **`self-upgrade` command** — checks npm registry for the latest version and upgrades the npx cache if a newer version is available:
8
+ - `npx @nebulacomponents/citable self-upgrade` — check and upgrade
9
+ - `npx @nebulacomponents/citable self-upgrade --check` — check only, no upgrade
10
+ - `npx @nebulacomponents/citable self-upgrade --json` — machine-readable output
11
+ - Uses Node's built-in `fetch` (no extra deps), 10s timeout, graceful offline error
12
+ - **6 new tests** for self-upgrade (current, update-available, registry failure × 2 each for human/JSON output)
13
+
14
+ ### Changed
15
+
16
+ - Test count: 84 → 90
17
+
18
+ ## 1.1.0 — 2026-07-18
19
+
20
+ ### Added
21
+
22
+ - **AGENT namespace** — 10 agent-readiness detectors based on [isitagentready.com](https://isitagentready.com/) checks:
23
+ - **AGENT-001** `AI bot rules absent from robots.txt` — checks for GPTBot, ClaudeBot, PerplexityBot, anthropic-ai, and other AI crawler rules
24
+ - **AGENT-002** `Link response headers absent` — HTTP Link headers for agent discovery (sitemap, MCP, API catalog)
25
+ - **AGENT-003** `llms.txt missing` — llmstxt.org structured Markdown for LLM consumption
26
+ - **AGENT-004** `MCP Server Card not discoverable` — `/.well-known/mcp` for Model Context Protocol server auto-discovery (API sites only)
27
+ - **AGENT-005** `A2A Agent Card not discoverable` — `/.well-known/agent.json` for Google A2A inter-agent discovery (agent sites only)
28
+ - **AGENT-006** `Markdown content negotiation not supported` — `Accept: text/markdown` / Cloudflare Markdown for Agents
29
+ - **AGENT-007** `Web Bot Auth not declared` — Cloudflare Web Bot Auth for authenticated bot access
30
+ - **AGENT-008** `Content-Signals header absent` — Cloudflare Content Signals for AI usage permissions
31
+ - **AGENT-009** `auth.md not present` — `/auth.md` authentication documentation for agent consumers (API/auth sites only)
32
+ - **AGENT-010** `Agentic commerce protocols not declared` — x402, MPP, UCP, ACP payment protocol signals (commerce sites only)
33
+ - **38 new tests** for AGENT detectors
34
+ - **`agent-readiness` discipline** added to finding schema
35
+ - **`file` subject type** added to finding schema
36
+
37
+ ### Changed
38
+
39
+ - Detector count: 102/15 namespaces (0.1.0) → 109/17 (1.0.0) → **119/18 namespaces** (this release)
40
+ - Test count: 46 → 84
41
+
42
+ ## 1.0.0 — 2026-07-18
43
+
44
+ **First production release.**
45
+
46
+ ### Added
47
+
48
+ - **HREFLANG namespace** — 3 detectors for international SEO validation:
49
+ - HREFLANG-001: hreflang link validation (valid hreflang values)
50
+ - HREFLANG-002: self-reference check (page should reference itself)
51
+ - HREFLANG-003: x-default presence (missing default language fallback)
52
+ - **CWV namespace** — 3 infrastructure detectors for Core Web Vitals readiness:
53
+ - CWV-001: LCP potential blockers (render-blocking scripts, images without dimensions)
54
+ - CWV-002: preconnect hints for fonts
55
+ - CWV-003: image optimization checks (format, dimensions, lazy loading)
56
+
57
+ > **Limitation:** no field or lab data collection; the CWV detectors check
58
+ > infrastructure readiness, not performance.
59
+ - **URL fetch resilience** — retry with exponential backoff + jitter, 5xx handling
60
+ - **CI workflow** — GitHub Actions for Node 22 matrix testing
61
+
62
+ ### Changed
63
+
64
+ - **Detector count** — now 109 detectors across 17 namespaces
65
+ - **Documentation** — fixed test count (33 → 46), updated README/CLAUDE.md/AGENTS.md
66
+
67
+ ### Fixed
68
+
69
+ - CI workflow compatibility — use actions@v4, Node 22 (not v6, Node 24)
70
+ - npm-publish workflow — fixed version check for new packages
71
+
3
72
  ## 0.1.0 — 2026-07-18
4
73
 
5
74
  Initial MVP.
package/README.md CHANGED
@@ -16,8 +16,8 @@ generator, not a Lighthouse wrapper, not an "AI visibility score".
16
16
  - **Persistent registries** (`.citable/`): queries, prompts, entities, claims,
17
17
  evidence, pages, crawler policies, competitors, experiments — all
18
18
  JSON-Schema validated with referential integrity and history-preserving saves.
19
- - **102 detectors** across 15 namespaces (TECH, CRAWL, ARCH, PAGE, ANS,
20
- ENTITY, CLAIM, EVD, SCHEMA, LINK, EXT, GEO, RECO, LIFE, MEAS), each with
19
+ - **119 detectors** across 18 namespaces (TECH, CRAWL, ARCH, PAGE, ANS,
20
+ ENTITY, CLAIM, EVD, SCHEMA, LINK, EXT, GEO, RECO, LIFE, MEAS, HREFLANG, CWV, AGENT), each with
21
21
  remediation, verification, severity, and determinism declared.
22
22
  - **Evidence packages** for every run: manifest, findings, report, captured
23
23
  robots/sitemaps/headers/schema/link graph, checksums.
@@ -28,6 +28,12 @@ generator, not a Lighthouse wrapper, not an "AI visibility score".
28
28
  mandatory human-review conditions.
29
29
  - **Multi-agent distribution**: Claude Code, Codex-compatible, Cursor, Gemini,
30
30
  generic — generated from one canonical `skill/` source.
31
+ - **Agent-readiness detectors** (AGENT namespace): agents are both readers
32
+ and writers of your site — `llms.txt` and Markdown content negotiation shape
33
+ what they consume; MCP Server Cards and A2A Agent Cards expose what they can
34
+ invoke; Content-Signals and Web Bot Auth govern the permissions they receive.
35
+ Citable checks all of these in one pass alongside the rest of your
36
+ SEO/AEO/GEO signal surface.
31
37
 
32
38
  ## Install
33
39
 
@@ -1 +1 @@
1
- 0.1.0
1
+ 1.2.0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "citable",
3
- "version": "0.1.0",
3
+ "version": "1.2.0",
4
4
  "managedBy": "citable-cli",
5
5
  "provider": "codex",
6
6
  "providerName": "OpenAI Codex",
7
7
  "scope": "bundle",
8
- "sourcePackage": "@nebulacomponents/citable@0.1.0",
8
+ "sourcePackage": "@nebulacomponents/citable@1.2.0",
9
9
  "variantPath": ".agents/skills/citable",
10
10
  "files": {
11
11
  "commands/ingest.md": "sha256:cf35659aecd9d0e160909003efdbe056864fc5d824c71b4ef0ee801ce07ff598",
@@ -38,7 +38,7 @@
38
38
  "schemas/entity.schema.json": "sha256:12f9222122255c86059185bc66e528e2828b430f7abc5683e6759774eb555553",
39
39
  "schemas/evidence.schema.json": "sha256:a78d39cd1d66c89198b0ecc9af48c8d3d8659c7b5cbb9f96c43d18fcf2b4aeb7",
40
40
  "schemas/experiment.schema.json": "sha256:704ea5c14cd4409c3a1806b8b1c124bcd9f2fe9e313dfa93662889bed0cb6441",
41
- "schemas/finding.schema.json": "sha256:2366bbbd0f6359ecc8d262979b159811ad10d2eaacc4816d5075bc6f7e9efc13",
41
+ "schemas/finding.schema.json": "sha256:85907cd04cd8d2fe24a1e618e0df7160f6d56aa1818db501f345aebce5eb5edb",
42
42
  "schemas/page.schema.json": "sha256:195d2f91d67550627c7047fd8e98d08dc386bc5858a02239d6c23b99193eaac2",
43
43
  "schemas/project.schema.json": "sha256:ea48fdb6480f7047ba4594bd5908bc1f79c1ad6b9a2c204df900959b5f203dc6",
44
44
  "schemas/prompt-result.schema.json": "sha256:b55be47d7d58d7b1dd8c3b1e849e24e55216212c592cde7eb836953379b85737",
@@ -48,7 +48,7 @@
48
48
  "scripts/README.md": "sha256:1c3e952950ef353849621b07c5f615bf7cd20cc5654da4635492a7bd6384e747",
49
49
  "SKILL.md": "sha256:637bb755bca6a2225c5b69edab0b8be7dff294e784d7ce25cec23546b847324c",
50
50
  "templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
51
- "VERSION": "sha256:e9dd8507f4bf0c6f42458e41aea833ad0bd3f6127272335eee9bf4d58541ed67"
51
+ "VERSION": "sha256:1e5b51cde515396a9fa762909cf8ca6584ccc564b325d2eebeea76175fe95c4d"
52
52
  },
53
- "treeHash": "sha256:7b3f30bfd6e7c79f549a4ca9a2269a32afa899a995437ed9b1b8d7e86d562bf2"
53
+ "treeHash": "sha256:ced29038005c4b29321f3ddb6c77cd8749a917b96983da422ed5677443be395a"
54
54
  }
@@ -3,54 +3,184 @@
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Finding",
5
5
  "type": "object",
6
- "required": ["finding_id", "detector_id", "run_id", "timestamp", "discipline", "subject", "observation", "classification", "remediation", "verification", "status"],
6
+ "required": [
7
+ "finding_id",
8
+ "detector_id",
9
+ "run_id",
10
+ "timestamp",
11
+ "discipline",
12
+ "subject",
13
+ "observation",
14
+ "classification",
15
+ "remediation",
16
+ "verification",
17
+ "status"
18
+ ],
7
19
  "properties": {
8
- "finding_id": { "$ref": "citable://schemas/common.defs.json#/definitions/id" },
9
- "detector_id": { "$ref": "citable://schemas/common.defs.json#/definitions/id" },
10
- "run_id": { "type": "string" },
11
- "timestamp": { "type": "string" },
12
- "discipline": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": ["seo", "aeo", "geo"] } },
20
+ "finding_id": {
21
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
22
+ },
23
+ "detector_id": {
24
+ "$ref": "citable://schemas/common.defs.json#/definitions/id"
25
+ },
26
+ "run_id": {
27
+ "type": "string"
28
+ },
29
+ "timestamp": {
30
+ "type": "string"
31
+ },
32
+ "discipline": {
33
+ "type": "array",
34
+ "minItems": 1,
35
+ "items": {
36
+ "type": "string",
37
+ "enum": [
38
+ "seo",
39
+ "aeo",
40
+ "geo",
41
+ "agent-readiness"
42
+ ]
43
+ }
44
+ },
13
45
  "subject": {
14
46
  "type": "object",
15
- "required": ["type", "identifier"],
47
+ "required": [
48
+ "type",
49
+ "identifier"
50
+ ],
16
51
  "properties": {
17
- "type": { "type": "string", "enum": ["url", "page", "source_file", "registry_entry", "site", "schema_block", "link", "crawler", "claim", "evidence", "entity", "prompt", "query", "experiment", "run"] },
18
- "identifier": { "type": "string" },
19
- "url": { "type": "string" },
20
- "source_file": { "type": "string" },
21
- "source_location": { "type": "string" },
22
- "rendered_selector": { "type": "string" }
52
+ "type": {
53
+ "type": "string",
54
+ "enum": [
55
+ "url",
56
+ "page",
57
+ "source_file",
58
+ "registry_entry",
59
+ "site",
60
+ "schema_block",
61
+ "link",
62
+ "crawler",
63
+ "claim",
64
+ "evidence",
65
+ "entity",
66
+ "prompt",
67
+ "query",
68
+ "experiment",
69
+ "run",
70
+ "file"
71
+ ]
72
+ },
73
+ "identifier": {
74
+ "type": "string"
75
+ },
76
+ "url": {
77
+ "type": "string"
78
+ },
79
+ "source_file": {
80
+ "type": "string"
81
+ },
82
+ "source_location": {
83
+ "type": "string"
84
+ },
85
+ "rendered_selector": {
86
+ "type": "string"
87
+ }
23
88
  }
24
89
  },
25
90
  "observation": {
26
91
  "type": "object",
27
- "required": ["summary", "evidence"],
92
+ "required": [
93
+ "summary",
94
+ "evidence"
95
+ ],
28
96
  "properties": {
29
- "summary": { "type": "string", "minLength": 1 },
30
- "evidence": { "type": "array", "minItems": 1, "items": { "type": "string" } },
97
+ "summary": {
98
+ "type": "string",
99
+ "minLength": 1
100
+ },
101
+ "evidence": {
102
+ "type": "array",
103
+ "minItems": 1,
104
+ "items": {
105
+ "type": "string"
106
+ }
107
+ },
31
108
  "captured_value": {},
32
109
  "expected_value": {}
33
110
  }
34
111
  },
35
112
  "classification": {
36
113
  "type": "object",
37
- "required": ["finding_type", "severity", "confidence", "deterministic", "impact"],
114
+ "required": [
115
+ "finding_type",
116
+ "severity",
117
+ "confidence",
118
+ "deterministic",
119
+ "impact"
120
+ ],
38
121
  "properties": {
39
- "finding_type": { "type": "string", "enum": ["deterministic_observation", "evidence_backed_semantic_finding", "probabilistic_inference", "strategic_hypothesis", "experiment_result", "untestable_condition"] },
40
- "severity": { "type": "string", "enum": ["critical", "high", "medium", "low", "informational", "experimental"] },
41
- "confidence": { "type": "string", "enum": ["confirmed", "high", "medium", "low", "unknown"] },
42
- "deterministic": { "type": "boolean" },
122
+ "finding_type": {
123
+ "type": "string",
124
+ "enum": [
125
+ "deterministic_observation",
126
+ "evidence_backed_semantic_finding",
127
+ "probabilistic_inference",
128
+ "strategic_hypothesis",
129
+ "experiment_result",
130
+ "untestable_condition"
131
+ ]
132
+ },
133
+ "severity": {
134
+ "type": "string",
135
+ "enum": [
136
+ "critical",
137
+ "high",
138
+ "medium",
139
+ "low",
140
+ "informational",
141
+ "experimental"
142
+ ]
143
+ },
144
+ "confidence": {
145
+ "type": "string",
146
+ "enum": [
147
+ "confirmed",
148
+ "high",
149
+ "medium",
150
+ "low",
151
+ "unknown"
152
+ ]
153
+ },
154
+ "deterministic": {
155
+ "type": "boolean"
156
+ },
43
157
  "impact": {
44
158
  "type": "object",
45
159
  "properties": {
46
- "retrieval": { "$ref": "#/definitions/impactLevel" },
47
- "ranking": { "$ref": "#/definitions/impactLevel" },
48
- "citation": { "$ref": "#/definitions/impactLevel" },
49
- "representation": { "$ref": "#/definitions/impactLevel" },
50
- "legal": { "$ref": "#/definitions/impactLevel" },
51
- "reputational": { "$ref": "#/definitions/impactLevel" },
52
- "conversion": { "$ref": "#/definitions/impactLevel" },
53
- "maintainability": { "$ref": "#/definitions/impactLevel" }
160
+ "retrieval": {
161
+ "$ref": "#/definitions/impactLevel"
162
+ },
163
+ "ranking": {
164
+ "$ref": "#/definitions/impactLevel"
165
+ },
166
+ "citation": {
167
+ "$ref": "#/definitions/impactLevel"
168
+ },
169
+ "representation": {
170
+ "$ref": "#/definitions/impactLevel"
171
+ },
172
+ "legal": {
173
+ "$ref": "#/definitions/impactLevel"
174
+ },
175
+ "reputational": {
176
+ "$ref": "#/definitions/impactLevel"
177
+ },
178
+ "conversion": {
179
+ "$ref": "#/definitions/impactLevel"
180
+ },
181
+ "maintainability": {
182
+ "$ref": "#/definitions/impactLevel"
183
+ }
54
184
  }
55
185
  }
56
186
  }
@@ -58,44 +188,117 @@
58
188
  "reasoning": {
59
189
  "type": "object",
60
190
  "properties": {
61
- "applicable_requirement": { "type": "string" },
62
- "explanation": { "type": "string" },
63
- "assumptions": { "type": "array", "items": { "type": "string" } },
64
- "limitations": { "type": "array", "items": { "type": "string" } }
191
+ "applicable_requirement": {
192
+ "type": "string"
193
+ },
194
+ "explanation": {
195
+ "type": "string"
196
+ },
197
+ "assumptions": {
198
+ "type": "array",
199
+ "items": {
200
+ "type": "string"
201
+ }
202
+ },
203
+ "limitations": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "string"
207
+ }
208
+ }
65
209
  }
66
210
  },
67
211
  "remediation": {
68
212
  "type": "object",
69
- "required": ["preferred"],
213
+ "required": [
214
+ "preferred"
215
+ ],
70
216
  "properties": {
71
- "preferred": { "type": "string" },
72
- "alternatives": { "type": "array", "items": { "type": "string" } },
73
- "unsafe_shortcuts": { "type": "array", "items": { "type": "string" } },
74
- "owner": { "type": ["string", "null"] },
75
- "review_required": { "type": "boolean" }
217
+ "preferred": {
218
+ "type": "string"
219
+ },
220
+ "alternatives": {
221
+ "type": "array",
222
+ "items": {
223
+ "type": "string"
224
+ }
225
+ },
226
+ "unsafe_shortcuts": {
227
+ "type": "array",
228
+ "items": {
229
+ "type": "string"
230
+ }
231
+ },
232
+ "owner": {
233
+ "type": [
234
+ "string",
235
+ "null"
236
+ ]
237
+ },
238
+ "review_required": {
239
+ "type": "boolean"
240
+ }
76
241
  }
77
242
  },
78
243
  "verification": {
79
244
  "type": "object",
80
- "required": ["method"],
245
+ "required": [
246
+ "method"
247
+ ],
81
248
  "properties": {
82
- "method": { "type": "string" },
83
- "expected_result": { "type": "string" },
84
- "detector_to_rerun": { "type": "string" }
249
+ "method": {
250
+ "type": "string"
251
+ },
252
+ "expected_result": {
253
+ "type": "string"
254
+ },
255
+ "detector_to_rerun": {
256
+ "type": "string"
257
+ }
85
258
  }
86
259
  },
87
260
  "status": {
88
261
  "type": "object",
89
- "required": ["state"],
262
+ "required": [
263
+ "state"
264
+ ],
90
265
  "properties": {
91
- "state": { "type": "string", "enum": ["open", "acknowledged", "in_remediation", "resolved", "accepted_risk", "false_positive"] },
92
- "first_seen": { "type": "string" },
93
- "last_seen": { "type": "string" },
94
- "resolved_at": { "type": ["string", "null"] }
266
+ "state": {
267
+ "type": "string",
268
+ "enum": [
269
+ "open",
270
+ "acknowledged",
271
+ "in_remediation",
272
+ "resolved",
273
+ "accepted_risk",
274
+ "false_positive"
275
+ ]
276
+ },
277
+ "first_seen": {
278
+ "type": "string"
279
+ },
280
+ "last_seen": {
281
+ "type": "string"
282
+ },
283
+ "resolved_at": {
284
+ "type": [
285
+ "string",
286
+ "null"
287
+ ]
288
+ }
95
289
  }
96
290
  }
97
291
  },
98
292
  "definitions": {
99
- "impactLevel": { "type": "string", "enum": ["none", "low", "medium", "high", "unknown"] }
293
+ "impactLevel": {
294
+ "type": "string",
295
+ "enum": [
296
+ "none",
297
+ "low",
298
+ "medium",
299
+ "high",
300
+ "unknown"
301
+ ]
302
+ }
100
303
  }
101
- }
304
+ }
@@ -1 +1 @@
1
- 0.1.0
1
+ 1.2.0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "citable",
3
- "version": "0.1.0",
3
+ "version": "1.2.0",
4
4
  "managedBy": "citable-cli",
5
5
  "provider": "claude",
6
6
  "providerName": "Claude Code",
7
7
  "scope": "bundle",
8
- "sourcePackage": "@nebulacomponents/citable@0.1.0",
8
+ "sourcePackage": "@nebulacomponents/citable@1.2.0",
9
9
  "variantPath": ".claude/skills/citable",
10
10
  "files": {
11
11
  "commands/ingest.md": "sha256:cf35659aecd9d0e160909003efdbe056864fc5d824c71b4ef0ee801ce07ff598",
@@ -38,7 +38,7 @@
38
38
  "schemas/entity.schema.json": "sha256:12f9222122255c86059185bc66e528e2828b430f7abc5683e6759774eb555553",
39
39
  "schemas/evidence.schema.json": "sha256:a78d39cd1d66c89198b0ecc9af48c8d3d8659c7b5cbb9f96c43d18fcf2b4aeb7",
40
40
  "schemas/experiment.schema.json": "sha256:704ea5c14cd4409c3a1806b8b1c124bcd9f2fe9e313dfa93662889bed0cb6441",
41
- "schemas/finding.schema.json": "sha256:2366bbbd0f6359ecc8d262979b159811ad10d2eaacc4816d5075bc6f7e9efc13",
41
+ "schemas/finding.schema.json": "sha256:85907cd04cd8d2fe24a1e618e0df7160f6d56aa1818db501f345aebce5eb5edb",
42
42
  "schemas/page.schema.json": "sha256:195d2f91d67550627c7047fd8e98d08dc386bc5858a02239d6c23b99193eaac2",
43
43
  "schemas/project.schema.json": "sha256:ea48fdb6480f7047ba4594bd5908bc1f79c1ad6b9a2c204df900959b5f203dc6",
44
44
  "schemas/prompt-result.schema.json": "sha256:b55be47d7d58d7b1dd8c3b1e849e24e55216212c592cde7eb836953379b85737",
@@ -48,7 +48,7 @@
48
48
  "scripts/README.md": "sha256:1c3e952950ef353849621b07c5f615bf7cd20cc5654da4635492a7bd6384e747",
49
49
  "SKILL.md": "sha256:637bb755bca6a2225c5b69edab0b8be7dff294e784d7ce25cec23546b847324c",
50
50
  "templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
51
- "VERSION": "sha256:e9dd8507f4bf0c6f42458e41aea833ad0bd3f6127272335eee9bf4d58541ed67"
51
+ "VERSION": "sha256:1e5b51cde515396a9fa762909cf8ca6584ccc564b325d2eebeea76175fe95c4d"
52
52
  },
53
- "treeHash": "sha256:7b3f30bfd6e7c79f549a4ca9a2269a32afa899a995437ed9b1b8d7e86d562bf2"
53
+ "treeHash": "sha256:ced29038005c4b29321f3ddb6c77cd8749a917b96983da422ed5677443be395a"
54
54
  }