@nebulacomponents/citable 0.1.0 → 1.1.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 (48) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +2 -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/crawler/fetch.js +42 -9
  43. package/src/detectors/agent.js +495 -0
  44. package/src/detectors/cwv.js +171 -0
  45. package/src/detectors/framework.js +1 -1
  46. package/src/detectors/hreflang.js +164 -0
  47. package/src/detectors/index.js +4 -1
  48. package/src/installer/index.js +7 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.1.0 — 2026-07-18
4
+
5
+ ### Added
6
+
7
+ - **AGENT namespace** — 10 agent-readiness detectors based on [isitagentready.com](https://isitagentready.com/) checks:
8
+ - **AGENT-001** `AI bot rules absent from robots.txt` — checks for GPTBot, ClaudeBot, PerplexityBot, anthropic-ai, and other AI crawler rules
9
+ - **AGENT-002** `Link response headers absent` — HTTP Link headers for agent discovery (sitemap, MCP, API catalog)
10
+ - **AGENT-003** `llms.txt missing` — llmstxt.org structured Markdown for LLM consumption
11
+ - **AGENT-004** `MCP Server Card not discoverable` — `/.well-known/mcp` for Model Context Protocol server auto-discovery (API sites only)
12
+ - **AGENT-005** `A2A Agent Card not discoverable` — `/.well-known/agent.json` for Google A2A inter-agent discovery (agent sites only)
13
+ - **AGENT-006** `Markdown content negotiation not supported` — `Accept: text/markdown` / Cloudflare Markdown for Agents
14
+ - **AGENT-007** `Web Bot Auth not declared` — Cloudflare Web Bot Auth for authenticated bot access
15
+ - **AGENT-008** `Content-Signals header absent` — Cloudflare Content Signals for AI usage permissions
16
+ - **AGENT-009** `auth.md not present` — `/auth.md` authentication documentation for agent consumers (API/auth sites only)
17
+ - **AGENT-010** `Agentic commerce protocols not declared` — x402, MPP, UCP, ACP payment protocol signals (commerce sites only)
18
+ - **38 new tests** for AGENT detectors
19
+ - **`agent-readiness` discipline** added to finding schema
20
+ - **`file` subject type** added to finding schema
21
+
22
+ ### Changed
23
+
24
+ - Detector count: 109 → 119 across 18 namespaces
25
+ - Test count: 46 → 84
26
+
27
+ ## 1.0.0 — 2026-07-18
28
+
29
+ **First production release.**
30
+
31
+ ### Added
32
+
33
+ - **HREFLANG namespace** — 3 detectors for international SEO validation:
34
+ - HREFLANG-001: hreflang link validation (valid hreflang values)
35
+ - HREFLANG-002: self-reference check (page should reference itself)
36
+ - HREFLANG-003: x-default presence (missing default language fallback)
37
+ - **CWV namespace** — 3 infrastructure detectors for Core Web Vitals readiness:
38
+ - CWV-001: LCP potential blockers (render-blocking scripts, images without dimensions)
39
+ - CWV-002: preconnect hints for fonts
40
+ - CWV-003: image optimization checks (format, dimensions, lazy loading)
41
+ - **URL fetch resilience** — retry with exponential backoff + jitter, 5xx handling
42
+ - **CI workflow** — GitHub Actions for Node 22 matrix testing
43
+
44
+ ### Changed
45
+
46
+ - **Detector count** — now 109 detectors across 17 namespaces
47
+ - **Documentation** — fixed test count (33 → 46), updated README/CLAUDE.md/AGENTS.md
48
+
49
+ ### Fixed
50
+
51
+ - CI workflow compatibility — use actions@v4, Node 22 (not v6, Node 24)
52
+ - npm-publish workflow — fixed version check for new packages
53
+
3
54
  ## 0.1.0 — 2026-07-18
4
55
 
5
56
  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
+ - **109 detectors** across 17 namespaces (TECH, CRAWL, ARCH, PAGE, ANS,
20
+ ENTITY, CLAIM, EVD, SCHEMA, LINK, EXT, GEO, RECO, LIFE, MEAS, HREFLANG, CWV), 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.
@@ -1 +1 @@
1
- 0.1.0
1
+ 1.1.0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "citable",
3
- "version": "0.1.0",
3
+ "version": "1.1.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.1.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:1575e1af4a95f12f70b4ee6a6adce8160953d93ea17dc2611b90883ccc3ad3b8"
52
52
  },
53
- "treeHash": "sha256:7b3f30bfd6e7c79f549a4ca9a2269a32afa899a995437ed9b1b8d7e86d562bf2"
53
+ "treeHash": "sha256:1984fdb279446bdc9e2c81673a1c521564d6ed9f0cc74e8eee62e7cacb7c2843"
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.1.0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "citable",
3
- "version": "0.1.0",
3
+ "version": "1.1.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.1.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:1575e1af4a95f12f70b4ee6a6adce8160953d93ea17dc2611b90883ccc3ad3b8"
52
52
  },
53
- "treeHash": "sha256:7b3f30bfd6e7c79f549a4ca9a2269a32afa899a995437ed9b1b8d7e86d562bf2"
53
+ "treeHash": "sha256:1984fdb279446bdc9e2c81673a1c521564d6ed9f0cc74e8eee62e7cacb7c2843"
54
54
  }