@nebulacomponents/citable 1.15.1 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/README.md +18 -5
- package/dist/universal/.agents/skills/citable/SKILL.md +51 -1
- package/dist/universal/.agents/skills/citable/VERSION +1 -1
- package/dist/universal/.agents/skills/citable/commands/README.md +3 -1
- package/dist/universal/.agents/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.agents/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.agents/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.agents/skills/citable/manifest.json +17 -12
- package/dist/universal/.agents/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.agents/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.agents/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.agents/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.agents/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.agents/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.agents/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.agents/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.claude/agents/citable/manifest.json +2 -2
- package/dist/universal/.claude/skills/citable/SKILL.md +51 -1
- package/dist/universal/.claude/skills/citable/VERSION +1 -1
- package/dist/universal/.claude/skills/citable/commands/README.md +3 -1
- package/dist/universal/.claude/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.claude/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.claude/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.claude/skills/citable/manifest.json +17 -12
- package/dist/universal/.claude/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.claude/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.claude/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.claude/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.claude/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.claude/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.claude/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.claude/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.cursor/skills/citable/SKILL.md +51 -1
- package/dist/universal/.cursor/skills/citable/VERSION +1 -1
- package/dist/universal/.cursor/skills/citable/commands/README.md +3 -1
- package/dist/universal/.cursor/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.cursor/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.cursor/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.cursor/skills/citable/manifest.json +17 -12
- package/dist/universal/.cursor/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.cursor/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.cursor/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.cursor/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.cursor/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.cursor/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.cursor/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.cursor/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.gemini/skills/citable/SKILL.md +51 -1
- package/dist/universal/.gemini/skills/citable/VERSION +1 -1
- package/dist/universal/.gemini/skills/citable/commands/README.md +3 -1
- package/dist/universal/.gemini/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.gemini/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.gemini/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.gemini/skills/citable/manifest.json +17 -12
- package/dist/universal/.gemini/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.gemini/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.gemini/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.gemini/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.gemini/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.gemini/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.gemini/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.gemini/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.github/skills/citable/SKILL.md +51 -1
- package/dist/universal/.github/skills/citable/VERSION +1 -1
- package/dist/universal/.github/skills/citable/commands/README.md +3 -1
- package/dist/universal/.github/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.github/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.github/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.github/skills/citable/manifest.json +17 -12
- package/dist/universal/.github/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.github/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.github/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.github/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.github/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.github/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.github/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.github/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.kiro/skills/citable/SKILL.md +51 -1
- package/dist/universal/.kiro/skills/citable/VERSION +1 -1
- package/dist/universal/.kiro/skills/citable/commands/README.md +3 -1
- package/dist/universal/.kiro/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.kiro/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.kiro/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.kiro/skills/citable/manifest.json +17 -12
- package/dist/universal/.kiro/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.kiro/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.kiro/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.kiro/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.kiro/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.kiro/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.kiro/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.kiro/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.opencode/skills/citable/SKILL.md +51 -1
- package/dist/universal/.opencode/skills/citable/VERSION +1 -1
- package/dist/universal/.opencode/skills/citable/commands/README.md +3 -1
- package/dist/universal/.opencode/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.opencode/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.opencode/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.opencode/skills/citable/manifest.json +17 -12
- package/dist/universal/.opencode/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.opencode/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.opencode/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.opencode/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.opencode/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.opencode/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.opencode/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.opencode/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.pi/agent/skills/citable/SKILL.md +51 -1
- package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
- package/dist/universal/.pi/agent/skills/citable/commands/README.md +3 -1
- package/dist/universal/.pi/agent/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.pi/agent/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.pi/agent/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.pi/agent/skills/citable/manifest.json +17 -12
- package/dist/universal/.pi/agent/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.pi/agent/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.pi/agent/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.qoder/skills/citable/SKILL.md +51 -1
- package/dist/universal/.qoder/skills/citable/VERSION +1 -1
- package/dist/universal/.qoder/skills/citable/commands/README.md +3 -1
- package/dist/universal/.qoder/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.qoder/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.qoder/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.qoder/skills/citable/manifest.json +17 -12
- package/dist/universal/.qoder/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.qoder/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.qoder/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.qoder/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.qoder/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.qoder/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.qoder/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.qoder/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.rovodev/skills/citable/SKILL.md +51 -1
- package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
- package/dist/universal/.rovodev/skills/citable/commands/README.md +3 -1
- package/dist/universal/.rovodev/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.rovodev/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.rovodev/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.rovodev/skills/citable/manifest.json +17 -12
- package/dist/universal/.rovodev/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.rovodev/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.rovodev/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.rovodev/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.rovodev/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.rovodev/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.rovodev/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.rovodev/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.trae/skills/citable/SKILL.md +51 -1
- package/dist/universal/.trae/skills/citable/VERSION +1 -1
- package/dist/universal/.trae/skills/citable/commands/README.md +3 -1
- package/dist/universal/.trae/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.trae/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.trae/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.trae/skills/citable/manifest.json +17 -12
- package/dist/universal/.trae/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.trae/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.trae/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.trae/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.trae/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.trae/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.trae/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.trae/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/.trae-cn/skills/citable/SKILL.md +51 -1
- package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
- package/dist/universal/.trae-cn/skills/citable/commands/README.md +3 -1
- package/dist/universal/.trae-cn/skills/citable/commands/governance.md +12 -0
- package/dist/universal/.trae-cn/skills/citable/commands/measurement.md +20 -0
- package/dist/universal/.trae-cn/skills/citable/commands/reporting.md +16 -0
- package/dist/universal/.trae-cn/skills/citable/manifest.json +17 -12
- package/dist/universal/.trae-cn/skills/citable/schemas/cli-output-envelope.schema.json +30 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/experiment.schema.json +1 -1
- package/dist/universal/.trae-cn/skills/citable/schemas/finding.schema.json +69 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/fleet.schema.json +93 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/funnel.schema.json +116 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/mcp-transport-envelope.schema.json +244 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.trae-cn/skills/citable/schemas/remediation-verification.schema.json +98 -0
- package/dist/universal/manifest.json +208 -148
- package/package.json +1 -1
- package/schemas/cli-output-envelope.schema.json +30 -0
- package/schemas/experiment.schema.json +1 -1
- package/schemas/finding.schema.json +69 -0
- package/schemas/fleet.schema.json +93 -0
- package/schemas/funnel.schema.json +116 -0
- package/schemas/mcp-transport-envelope.schema.json +244 -0
- package/schemas/observation.schema.json +1 -1
- package/schemas/remediation-verification.schema.json +98 -0
- package/skill/SKILL.md +51 -1
- package/skill/commands/README.md +3 -1
- package/skill/commands/governance.md +12 -0
- package/skill/commands/measurement.md +20 -0
- package/skill/commands/reporting.md +16 -0
- package/src/analysis/saliency.js +119 -0
- package/src/cli/index.js +651 -13
- package/src/commands/attributeImpact.js +54 -0
- package/src/commands/audit.js +2 -2
- package/src/commands/ciWorkflow.js +63 -0
- package/src/commands/compatibility.js +205 -0
- package/src/commands/connect.js +3 -0
- package/src/commands/context.js +2 -1
- package/src/commands/edgeRules.js +196 -0
- package/src/commands/edgeSecurity.js +192 -0
- package/src/commands/exceptions.js +241 -0
- package/src/commands/experimentGuardrails.js +213 -0
- package/src/commands/fleet.js +104 -0
- package/src/commands/generateLlmsTxt.js +111 -0
- package/src/commands/goldenCorpus.js +155 -0
- package/src/commands/implementationKit.js +202 -0
- package/src/commands/inspectAeo.js +74 -0
- package/src/commands/inspectCro.js +142 -0
- package/src/commands/inspectGeo.js +52 -0
- package/src/commands/inspectSerp.js +317 -0
- package/src/commands/lintComponents.js +132 -0
- package/src/commands/monitor.js +138 -0
- package/src/commands/observe.js +6 -1
- package/src/commands/planExperiment.js +120 -0
- package/src/commands/previewCro.js +241 -0
- package/src/commands/probe.js +70 -0
- package/src/commands/remediate.js +461 -0
- package/src/commands/reportConsensus.js +48 -0
- package/src/commands/testFunnel.js +107 -0
- package/src/commands/verifyRemediation.js +204 -0
- package/src/commands/visualRegression.js +165 -0
- package/src/components/index.js +556 -0
- package/src/connectors/index.js +6 -1
- package/src/connectors/indexnow.js +431 -0
- package/src/connectors/mcp/allowlist.js +107 -0
- package/src/connectors/mcp/client.js +239 -0
- package/src/connectors/mcp/diagnostics.js +214 -0
- package/src/connectors/mcp/gscServer.js +155 -0
- package/src/connectors/mcp/http.js +130 -0
- package/src/connectors/mcp/index.js +7 -0
- package/src/connectors/mcp/pilot.js +138 -0
- package/src/connectors/mcp/pilotServer.js +80 -0
- package/src/connectors/mcp/sanitizer.js +38 -0
- package/src/connectors/mcp/stdio.js +178 -0
- package/src/crawler/ipRanges.js +161 -0
- package/src/detectors/agent.js +127 -0
- package/src/detectors/ans.js +282 -0
- package/src/detectors/crawl.js +46 -0
- package/src/detectors/cro.js +825 -0
- package/src/detectors/cwv.js +38 -1
- package/src/detectors/evd.js +101 -0
- package/src/detectors/framework.js +32 -2
- package/src/detectors/geoReco.js +408 -0
- package/src/detectors/index.js +4 -2
- package/src/detectors/link.js +112 -1
- package/src/detectors/page.js +101 -0
- package/src/detectors/schemaData.js +529 -0
- package/src/detectors/tech.js +306 -0
- package/src/extractor/page.js +186 -2
- package/src/extractor/site.js +9 -2
- package/src/installer/index.js +45 -2
- package/src/monitoring/alertDelivery.js +101 -7
- package/src/observations/attribution.js +217 -0
- package/src/registries/index.js +14 -0
- package/src/reporting/consensus.js +416 -0
- package/src/reporting/executiveExport.js +244 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "citable://schemas/remediation-verification.schema.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Remediation verification record",
|
|
5
|
+
"description": "Closed-loop evidence that a detector finding was addressed: before-run finding, applied patch, re-run detector result, and verdict. Proves only that the detector no longer reports the same subject; it never proves a conversion or outcome guarantee.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"verification_id", "timestamp", "status", "tool_version",
|
|
9
|
+
"source_run_id", "detector_id", "subject", "verdict",
|
|
10
|
+
"provenance", "limitations"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"verification_id": { "type": "string", "pattern": "^VR-[0-9]{14,20}-[a-z0-9]{2,8}$" },
|
|
14
|
+
"timestamp": { "type": "string" },
|
|
15
|
+
"status": { "type": "string", "enum": ["verified", "not_resolved", "blocked", "patch_refused"] },
|
|
16
|
+
"tool_version": { "type": "string" },
|
|
17
|
+
"repository_commit": { "type": ["string", "null"] },
|
|
18
|
+
"source_run_id": { "type": ["string", "null"], "minLength": 1 },
|
|
19
|
+
"recheck_run_id": { "type": ["string", "null"] },
|
|
20
|
+
"detector_id": { "type": ["string", "null"] },
|
|
21
|
+
"subject": {
|
|
22
|
+
"type": ["object", "null"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"type": { "type": "string" },
|
|
25
|
+
"identifier": { "type": ["string", "null"] }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"verdict": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"required": ["resolved"],
|
|
31
|
+
"properties": {
|
|
32
|
+
"resolved": { "type": "boolean" },
|
|
33
|
+
"before_finding_ids": { "type": "array", "items": { "type": "string" } },
|
|
34
|
+
"after_finding_ids": { "type": "array", "items": { "type": "string" } },
|
|
35
|
+
"new_regressions": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"items": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"required": ["finding_id", "detector_id", "severity", "summary"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"finding_id": { "type": "string" },
|
|
42
|
+
"detector_id": { "type": "string" },
|
|
43
|
+
"severity": { "type": "string" },
|
|
44
|
+
"summary": { "type": "string" }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"resolution_definition": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "States the exact resolution criterion used; detector absence is not an outcome guarantee."
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"patch": {
|
|
55
|
+
"type": ["object", "null"],
|
|
56
|
+
"properties": {
|
|
57
|
+
"target_file": { "type": "string" },
|
|
58
|
+
"framework": { "type": ["string", "null"] },
|
|
59
|
+
"patcher_class": { "type": ["string", "null"] },
|
|
60
|
+
"confidence": { "type": ["number", "null"] },
|
|
61
|
+
"validation_passed": { "type": "boolean" },
|
|
62
|
+
"applied": { "type": "boolean" },
|
|
63
|
+
"refusal_reason": { "type": ["string", "null"] },
|
|
64
|
+
"rollback_snapshot": { "type": ["string", "null"] },
|
|
65
|
+
"before_sha256": { "type": ["string", "null"] },
|
|
66
|
+
"after_sha256": { "type": ["string", "null"] }
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"provenance": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"required": ["command", "recheck_target", "detectors_run"],
|
|
72
|
+
"properties": {
|
|
73
|
+
"command": { "type": "string" },
|
|
74
|
+
"recheck_target": { "type": ["string", "null"] },
|
|
75
|
+
"detectors_run": { "type": "array", "items": { "type": "string" } },
|
|
76
|
+
"detectors_skipped": {
|
|
77
|
+
"type": "array",
|
|
78
|
+
"items": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"properties": {
|
|
81
|
+
"detector_id": { "type": "string" },
|
|
82
|
+
"reason": { "type": "string" }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"recheck_errors": { "type": "array", "items": { "type": "string" } },
|
|
87
|
+
"recheck_warnings": { "type": "array", "items": { "type": "string" } }
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"limitations": {
|
|
91
|
+
"type": "array",
|
|
92
|
+
"items": { "type": "string" },
|
|
93
|
+
"minItems": 1
|
|
94
|
+
},
|
|
95
|
+
"bundle_dir": { "type": ["string", "null"] },
|
|
96
|
+
"bundle_checksums": { "type": "object" }
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -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.
|
|
10
|
+
version: 1.17.0
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Citable — evidence and change control for search and AI citation readiness
|
|
@@ -97,6 +97,7 @@ citable compare-snapshots [runA runB]
|
|
|
97
97
|
citable action-plan [run-id] # ordered actions, blockers, semantic gates, verification
|
|
98
98
|
citable observe <mode> [options] # render/index/citation/log/probe/passage/consensus/performance/stance evidence
|
|
99
99
|
citable observe stance --input <citations|prompts.json> [--entity <id>]
|
|
100
|
+
citable observe attribution --input <citations|prompts.json> [--entity <id>]
|
|
100
101
|
citable observe bing --dataset <search_performance|ai_performance> --input <csv|json>
|
|
101
102
|
citable observe probes --target <url> [--region <label>]
|
|
102
103
|
citable observe network --input <regional-network-import.json>
|
|
@@ -107,6 +108,7 @@ citable apply --input <spec> [--write] # reviewed, hash-locked remediation; dry
|
|
|
107
108
|
citable monitor [runA runB] [--webhook <url>] [--min-severity <sev>] # observation regression alerts
|
|
108
109
|
citable report dashboard [--last N] [--since <run-id>] # cross-run evidence trend (Markdown + HTML)
|
|
109
110
|
citable report share-of-voice [--last N] [--since <run-id>] # competitor citation share (Markdown + HTML)
|
|
111
|
+
citable report consensus [--last N] [--since <run-id>] # canonical discovery consensus matrix (Markdown + HTML)
|
|
110
112
|
citable metrics import --provider <name> --input <csv|json>
|
|
111
113
|
citable connect status
|
|
112
114
|
citable connect configure --provider <gsc|ga4|wordpress|webflow> --connection-id <id> --property-id <id> [--credential-env <name>] [--write]
|
|
@@ -116,6 +118,8 @@ citable connect sync --connection-id <id> --start-date YYYY-MM-DD --end-date YYY
|
|
|
116
118
|
citable connect read --connection-id <id> --target-id <id>
|
|
117
119
|
citable connect apply --connection-id <id> --input <cms-spec.json> [--write]
|
|
118
120
|
citable connect disconnect --connection-id <id> [--write]
|
|
121
|
+
citable connect indexnow [--urls <file|list>] [--sitemap <url|file>] [--host <host>] [--key <key>] [--key-location <url>] [--skip-key-verify] [--endpoint <url>] [--write]
|
|
122
|
+
citable connect mcp [--server <id>] [--tool <name>] [--args <json>] [--transport <stdio|http>] [--target <cmd|url>]
|
|
119
123
|
citable objectives init --input <json|yaml> [--write]
|
|
120
124
|
citable objectives validate
|
|
121
125
|
citable evaluate [objective-id] [--ref-date YYYY-MM-DD]
|
|
@@ -134,9 +138,18 @@ citable corpus evaluate --input <acceptance-corpus.json>
|
|
|
134
138
|
citable corpus publish --input <acceptance-corpus.json> --output <public-corpus.json>
|
|
135
139
|
citable corpus receipt --run <run-id> [--input <execution-context.json>]
|
|
136
140
|
citable corpus compare-receipts <receipt-a.json> <receipt-b.json>
|
|
141
|
+
citable corpus benchmark [--corpus <dir>] [--output <report.json>] # labeled golden fixtures → per-detector precision/recall gate
|
|
137
142
|
citable artifacts export <run-id> --output <directory>
|
|
138
143
|
citable artifacts verify --input <directory>
|
|
139
144
|
citable artifacts import --input <directory>
|
|
145
|
+
citable inspect cro <page> --target <dir|url> # CRO readiness: CTAs, forms, payment-wallet vs authentication readiness, modeled saliency indices
|
|
146
|
+
citable preview cro <page> [--export <file.html>] # split-screen before/remediated sandbox (layout-contract checked; accessibility-aware)
|
|
147
|
+
citable remediate --finding <id> [--target <file>] [--write] # production-safe patch: framework detection, unified diff, static validation, confidence gate, rollback snapshot; semantic copy changes always refuse automated write
|
|
148
|
+
citable verify remediation --run <run-id> --finding <id> [--target <file>] [--apply] # closed loop: re-run the detector and emit a before/after evidence bundle (schema remediation-verification)
|
|
149
|
+
citable verify page <page> --target <dir|url> # all detectors scoped to one page; pass = no detector currently reports it, never an outcome guarantee
|
|
150
|
+
citable check experiment <id> [--observed-control N --observed-variant N --days-running N] # SRM, stopping, power, contamination; lifecycle: planned|running|inconclusive|validated
|
|
151
|
+
citable compatibility # Node engine, optional adapters, browser, framework, registries, edge size limits
|
|
152
|
+
citable kit export --run <run-id> --finding <id> [--target <file>] # customer-ready implementation kit (finding, diff, evidence, acceptance tests, deployment, limitations)
|
|
140
153
|
```
|
|
141
154
|
|
|
142
155
|
Audit scopes: `technical seo aeo geo architecture entity claims evidence schema
|
|
@@ -190,6 +203,43 @@ monitoring interpretation.
|
|
|
190
203
|
Use `commands/field-validation.md` for acceptance-corpus authorization,
|
|
191
204
|
sanitization, publication refusal, reproducibility, and evidence boundaries.
|
|
192
205
|
|
|
206
|
+
## CRO remediation loop (audit → explain → remediate → verify → hand off)
|
|
207
|
+
|
|
208
|
+
The CRO suite completes the loop. Rules that govern every step:
|
|
209
|
+
|
|
210
|
+
1. **Safe patches only.** `remediate --write` is gated on framework detection,
|
|
211
|
+
static structural validation, idempotency, and an explicit confidence
|
|
212
|
+
threshold. Semantic microcopy replacements are refused for automated write
|
|
213
|
+
(fact ≠ inference): they require a human editorial decision. Every write
|
|
214
|
+
creates a rollback snapshot under `.citable/remediation/snapshots/`.
|
|
215
|
+
2. **A written patch is not a verified repair.** Run
|
|
216
|
+
`verify remediation --run <run-id> --finding <id>`. Resolution means the
|
|
217
|
+
detector no longer reports the same subject — never a conversion guarantee.
|
|
218
|
+
The verification bundle is schema-validated
|
|
219
|
+
(`schemas/remediation-verification.schema.json`).
|
|
220
|
+
3. **Payment wallets ≠ authentication.** Apple Pay/Google Pay/PayPal are
|
|
221
|
+
payment methods; WebAuthn/passkeys are account authentication. Report them
|
|
222
|
+
separately (`inspect cro` returns `payment_wallet_readiness` and
|
|
223
|
+
`authentication_readiness`). Never use "biometric readiness" as a claim.
|
|
224
|
+
4. **Modeled indices are labeled.** Friction Surface Area, CTA Conspicuity
|
|
225
|
+
Index, and gaze-path ordering are heuristic indices over captured DOM
|
|
226
|
+
conditions — not observed user behavior and not revenue estimates. Slide
|
|
227
|
+
decks and kits must keep measured (deterministic findings) and modeled
|
|
228
|
+
(indices, projections) in separate, labeled categories. No latency,
|
|
229
|
+
speed, or "percentage eliminated" figure may be stated without a
|
|
230
|
+
documented measurement methodology.
|
|
231
|
+
5. **Referral fragments are untrusted input.** ScentBeacon-style components
|
|
232
|
+
may match referrer/`:~:text=` against a fixed allowlist to detect the
|
|
233
|
+
referral state; raw values are never rendered, persisted, or transmitted.
|
|
234
|
+
Dynamic claim text must come from registry-bound developer props.
|
|
235
|
+
6. **Experiments carry guardrails.** `check experiment` reports SRM, stopping
|
|
236
|
+
early, underpowered samples, contamination, and unsupported revenue
|
|
237
|
+
attribution, and derives one lifecycle of `planned`, `running`,
|
|
238
|
+
`inconclusive`, or `validated` — never "winner".
|
|
239
|
+
7. **Machine-readable output is a contract.** `--json` wraps every command
|
|
240
|
+
payload in the `citable_output_schema` 1.0 envelope
|
|
241
|
+
(`schemas/cli-output-envelope.schema.json`).
|
|
242
|
+
|
|
193
243
|
## Command workflows
|
|
194
244
|
|
|
195
245
|
Detailed per-command workflows live in `commands/`. Follow them; they define
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.17.0
|
|
@@ -23,14 +23,16 @@ intent, not executability, so statuses are strict:
|
|
|
23
23
|
| /citable action-plan | implemented — writes ordered, source-run-bound action artifacts outside immutable evidence packages |
|
|
24
24
|
| /citable observe | implemented — render, index, citation, crawler-log, passage, consensus, performance, corroboration, and stance evidence |
|
|
25
25
|
| /citable apply | implemented — reviewed, hash-locked source replacements; dry run by default |
|
|
26
|
-
| /citable connect status / configure / discover / validate / sync / read / apply / disconnect | implemented — GA4, GSC, WordPress,
|
|
26
|
+
| /citable connect status / configure / discover / validate / sync / read / apply / disconnect / indexnow / mcp | implemented — GA4, GSC, WordPress, Webflow, IndexNow, and allowlisted read-only MCP transport adapters |
|
|
27
27
|
| /citable monitor | implemented — compares immutable observation runs and emits evidence-linked alerts |
|
|
28
28
|
| /citable report dashboard | implemented — folds each run's recorded summary into a cross-run Markdown/HTML trend; derives no new findings and no combined score |
|
|
29
29
|
| /citable report share-of-voice | implemented — joins competitor registry against recorded citation observations to compute verified share-of-citation |
|
|
30
|
+
| /citable report consensus | implemented — synthesizes observed canonical signals across publisher headers, tags, sitemaps, and search engines |
|
|
30
31
|
| /citable metrics import | implemented — validates declared CSV/JSON metrics and writes immutable observations |
|
|
31
32
|
| /citable objectives init / validate | implemented — user-owned metric selection, cohorts, windows, and guardrails |
|
|
32
33
|
| /citable evaluate | implemented — independent baseline/evaluation comparisons with inconclusive handling |
|
|
33
34
|
| /citable governance validate / evaluate | implemented — validates reviewer and exception authority and emits immutable dispositions without changing failed findings |
|
|
35
|
+
| /citable exceptions list / renew / invalidate | implemented — governed exception lifecycle, renewal limits, authority validation, and audit logging |
|
|
34
36
|
| /citable reviews queue / prioritize / plan / sample / evaluate | implemented — materiality queues, reproducible sampling, stale-decision checks, and independent disagreement adjudication |
|
|
35
37
|
| /citable schedules run / project github | implemented — canonical scheduled audits and hash-bound non-authoritative GitHub projections |
|
|
36
38
|
| /citable observe media | implemented — bounded PDF, transcript, image-context, optional OCR, and declared claim-link evidence |
|
|
@@ -15,3 +15,15 @@ the exception is expired, revoked, superseded, conflicted, unauthorized, or
|
|
|
15
15
|
over-renewed; required roles are absent; or more than one active exception
|
|
16
16
|
matches a finding. Reviewer records are declarations and do not independently
|
|
17
17
|
prove real-world identity, competence, independence, or legal authority.
|
|
18
|
+
|
|
19
|
+
## Governed exception lifecycle
|
|
20
|
+
|
|
21
|
+
Use `citable exceptions <list|renew|invalidate>` to inspect and maintain exceptions in `.citable/registries/exceptions.yaml`:
|
|
22
|
+
|
|
23
|
+
- `citable exceptions list [--expired] [--expiring-soon <days>] [--ref-date YYYY-MM-DD]`:
|
|
24
|
+
Surfaces active, expiring soon, expired, and revoked exceptions with remaining days and renewal counters. Expired exceptions fail closed.
|
|
25
|
+
- `citable exceptions renew --id <exception-id> --until <YYYY-MM-DD> --reviewer <reviewer-id> [--evidence <id>] [--note <text>] [--write]`:
|
|
26
|
+
Extends expiration under strict reviewer authority checks, policy renewal caps, and max duration limits. Appends an immutable renewal event to the exception's audit history.
|
|
27
|
+
- `citable exceptions invalidate --id <exception-id> --reason <text> --reviewer <reviewer-id> [--write]`:
|
|
28
|
+
Revokes an active exception with mandatory justification, recording the actor and note in the audit trail.
|
|
29
|
+
|
|
@@ -42,6 +42,13 @@ rows restricted to the `Organic Search` default channel group and inherits the
|
|
|
42
42
|
property's reporting identity, thresholding, attribution, and consent choices.
|
|
43
43
|
Neither source establishes that an intervention caused an observed change.
|
|
44
44
|
|
|
45
|
+
`citable connect indexnow` validates and submits discovered or changed URLs directly to
|
|
46
|
+
IndexNow participating engines (Bing, Yandex, Seznam, Naver). It is dry run by default;
|
|
47
|
+
`--write` performs submission. It validates host ownership via pre-flight key verification,
|
|
48
|
+
batches submissions up to 10,000 URLs per protocol chunk, and saves immutable delivery
|
|
49
|
+
receipts under `.citable/monitoring/deliveries/`. An accepted IndexNow submission proves engine
|
|
50
|
+
receipt of the URL list only; it does not prove crawling, indexing, or citation.
|
|
51
|
+
|
|
45
52
|
# measure seo
|
|
46
53
|
Inputs the operator exports (Search Console/Bing/analytics CSV or JSON).
|
|
47
54
|
Workflow: validate segmentation (brand vs non-brand, intent, page type,
|
|
@@ -94,3 +101,16 @@ types in the narrative-accuracy rubric; SEV-map material ones; follow the
|
|
|
94
101
|
correction runbook (capture → materiality → source lineage → verify internal
|
|
95
102
|
truth → correct owned → escalate external → recrawl request → retest cohort →
|
|
96
103
|
preserve before/after → residual risk).
|
|
104
|
+
|
|
105
|
+
# MCP evidence transport
|
|
106
|
+
|
|
107
|
+
1. Run `citable connect mcp --server <id> --tool <name> [--args <json>] [--transport <stdio|http>] [--target <url>]`
|
|
108
|
+
to collect evidence via an allowlisted read-only MCP transport adapter.
|
|
109
|
+
2. The transport enforces strict security boundaries:
|
|
110
|
+
- Server allowlist: only explicitly declared servers (e.g. `citable-evidence-pilot`, `gsc-mcp`) are permitted; untrusted servers fail closed.
|
|
111
|
+
- Read-only tools: only tools declared `read_only: true` can be invoked; state-changing tools are refused.
|
|
112
|
+
- Public network boundary: remote HTTP connections enforce HTTPS and reject private, loopback, or non-public IP destinations.
|
|
113
|
+
- Secret sanitization: bearer tokens, API keys, and credential headers are scrubbed from request arguments and responses.
|
|
114
|
+
- Hashes and provenance: argument hashes (`sha256`) and raw payload hashes (`sha256`) are recorded in `mcp-transport-envelope.json`.
|
|
115
|
+
3. Refusal boundary: MCP operates strictly as a transport into the immutable observation model. An MCP response does not confer evidence authority, authenticity, completeness, or ranking guarantees.
|
|
116
|
+
|
|
@@ -55,3 +55,19 @@ any observed change to a specific intervention.
|
|
|
55
55
|
4. Outputs are written to `.citable/reports/share-of-voice.md` and
|
|
56
56
|
`.citable/reports/share-of-voice.html`.
|
|
57
57
|
|
|
58
|
+
# Canonical discovery consensus reporting
|
|
59
|
+
|
|
60
|
+
1. Run `citable report consensus [--last N] [--since <run-id>]` to evaluate
|
|
61
|
+
alignment across observed publisher canonical signals (HTML `rel="canonical"`,
|
|
62
|
+
Open Graph URL, sitemaps, HTTP Link headers) and external engine-observed
|
|
63
|
+
canonical URLs recorded in `observe consensus` / `canonical_freshness` runs.
|
|
64
|
+
2. The consensus matrix maps target URLs against publisher declarations and
|
|
65
|
+
engine selections (Google, Bing, Perplexity, etc.) to expose divergences and
|
|
66
|
+
unresolved canonical conflicts (e.g. `TECH-019`).
|
|
67
|
+
3. Outputs are written to `.citable/reports/consensus.md` and
|
|
68
|
+
`.citable/reports/consensus.html`.
|
|
69
|
+
4. Refusal boundary: Never guarantee crawling, indexing, or ranking outcomes.
|
|
70
|
+
Publisher canonical declarations are treated as advisory hints to engines, not
|
|
71
|
+
authoritative index guarantees. Divergences are reported as factual observations,
|
|
72
|
+
never fabricated or interpolated.
|
|
73
|
+
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "citable",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"managedBy": "citable-cli",
|
|
5
5
|
"provider": "qoder",
|
|
6
6
|
"providerName": "Qoder",
|
|
7
7
|
"scope": "bundle",
|
|
8
|
-
"sourcePackage": "@nebulacomponents/citable@1.
|
|
8
|
+
"sourcePackage": "@nebulacomponents/citable@1.17.0",
|
|
9
9
|
"variantPath": ".qoder/skills/citable",
|
|
10
10
|
"agentProfiles": {
|
|
11
11
|
"status": "unsupported",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"commands/artifact-interchange.md": "sha256:18d56fbfa6bb3f23f08593a9a8135e51c268618b049e53c793969b68000875c3",
|
|
19
19
|
"commands/delivery.md": "sha256:3b29250f9e9f84442812e320a70d5d2784b4286e91af3866f99cb6062a85a10f",
|
|
20
20
|
"commands/field-validation.md": "sha256:4f24b2758eef746d704b218364f1e45ee9e07418c8ae111081b1fd41f93dde2d",
|
|
21
|
-
"commands/governance.md": "sha256:
|
|
21
|
+
"commands/governance.md": "sha256:41792a2a08930c604cc7b635c23fb3cbdeebc5af610ef38c795f1a412c4a0816",
|
|
22
22
|
"commands/ingest.md": "sha256:cf35659aecd9d0e160909003efdbe056864fc5d824c71b4ef0ee801ce07ff598",
|
|
23
|
-
"commands/measurement.md": "sha256:
|
|
23
|
+
"commands/measurement.md": "sha256:85506abeaade17884290396f029f399a30d6b503dcb730db698d0ab9b3b5de62",
|
|
24
24
|
"commands/media-evidence.md": "sha256:f2218feabe3360a2c9d569a5fa9b70d4b33a83a270d657151635e6f404fb34e0",
|
|
25
25
|
"commands/observe-and-act.md": "sha256:32ad048f14610de0e9a00a7faf27ff18ec0d892f5b20d568f519e44a7ffc0faf",
|
|
26
26
|
"commands/optimize-page.md": "sha256:35866f3d7cdeef0376ea7a7d7036085a9b9cf95bbb300ecf4bd77610ebd74d85",
|
|
27
27
|
"commands/page-work.md": "sha256:965a66e59bdf7b0da482d26fade53b3d265885ece5d463fe83b0789ebefaef3e",
|
|
28
28
|
"commands/plan-audit.md": "sha256:69875c9654e13b84566dafb16afe5afe08cffb9f3bded1f2d8d2261ae871c869",
|
|
29
|
-
"commands/README.md": "sha256:
|
|
30
|
-
"commands/reporting.md": "sha256:
|
|
29
|
+
"commands/README.md": "sha256:9c25573c8af30a8cf02f450f5f3812769aca01ebb422d600e830e78955f18c4a",
|
|
30
|
+
"commands/reporting.md": "sha256:ae89f8620acfef645d52bfe715efa332fdb8f464d890e45240ea341b24adb985",
|
|
31
31
|
"commands/reviews.md": "sha256:902904aaa405fe5724cf0662c7a5a36eab9a4fe0eb81cbd95ffa2fff946e0ac8",
|
|
32
32
|
"commands/validate-render.md": "sha256:a8e1d04d40b84d57c35039250d98c6a7302cd44a148a8c3b9d9cfb92678c4347",
|
|
33
33
|
"policies/crawler-policy-template.md": "sha256:15c88a4eeb21f53f71e5250dd3eb2d2791a814b304eaefce8bb30e2bdf2e2e59",
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"schemas/browser-evidence-plan.schema.json": "sha256:81ef14f665b4a00f01afb747576faeb06025722e5c15a36eff3d17e59e978851",
|
|
59
59
|
"schemas/canonical-index-import.schema.json": "sha256:ef633662cb30873242ca356443bc4835afe56bb020208e8f42fa47ac8047b66e",
|
|
60
60
|
"schemas/claim.schema.json": "sha256:ce79ccbfa34ece9b7a309a6962522ea06a1f44c468b4c472b5c376554a788537",
|
|
61
|
+
"schemas/cli-output-envelope.schema.json": "sha256:6964e8f2f43618bfd0d7a3f5344b37ebc26f04779796bb8ff4675b935b6208c3",
|
|
61
62
|
"schemas/common.defs.json": "sha256:ac66081df6b86f652e066ea868edecfcd36cdd1b1c81e55a1e3af880f671b727",
|
|
62
63
|
"schemas/competitor.schema.json": "sha256:2f6fd7e4543846bde56ff4dc62bb41fa366889787b794a7cdb0bff1a3392e591",
|
|
63
64
|
"schemas/config.schema.json": "sha256:a87f3bb0087de09035b9f2dafea66e32e4fcc2e3e329abcd0fd8a5ec33318f2a",
|
|
@@ -75,16 +76,19 @@
|
|
|
75
76
|
"schemas/evidence-authority.schema.json": "sha256:4f8165a37304ebab019e1c2dfec13f1168ecf89ce9bec88f7dca9c8554e39ac0",
|
|
76
77
|
"schemas/evidence.schema.json": "sha256:76baec7ad7e89c6952473c01dacb9e3b26953c088331e6314d531ce620df9ec1",
|
|
77
78
|
"schemas/exception.schema.json": "sha256:c88985494ec66554330fdc5b65d033527d0005acf41f10798b1e831d171f8944",
|
|
78
|
-
"schemas/experiment.schema.json": "sha256:
|
|
79
|
+
"schemas/experiment.schema.json": "sha256:4b5d16481448597b152269296b67b5776be6f03d8f9afba1833bcee10bf3c05b",
|
|
79
80
|
"schemas/field-validation-metrics.schema.json": "sha256:bd5daeafc1593f1c4707d75180e1feb1e81d9345a57c1f269eadf13c36cb7012",
|
|
80
|
-
"schemas/finding.schema.json": "sha256:
|
|
81
|
+
"schemas/finding.schema.json": "sha256:1775425b9b989dd4ffc0c607eb9d64e95cad2124f9058f83ef78b0b0030e209f",
|
|
82
|
+
"schemas/fleet.schema.json": "sha256:3bf5772695ae4bb49a8c5fdbedee230ddb1d84aff6a3176eeb41527aca6ef2a5",
|
|
83
|
+
"schemas/funnel.schema.json": "sha256:6c368f29296ac45f5d52bb3a2f95fa935a1f30f3d53aae846156e9aa4c8ec59c",
|
|
81
84
|
"schemas/initiative.schema.json": "sha256:491f6cc022c7ac1f9ea9ac9ddfcd270cb49c390e2601fe1e73aa6192a9e7689a",
|
|
82
85
|
"schemas/intervention.schema.json": "sha256:fcf28e117b207e64ffc96088aa70a95370841a2a9fa43ecb1c82b34c2058a818",
|
|
83
86
|
"schemas/kpi.schema.json": "sha256:a45e2178ac03a97692b2c1dd667abde6b25b936c73ba0c32e4e98becb3d9d1c2",
|
|
87
|
+
"schemas/mcp-transport-envelope.schema.json": "sha256:5b6290e7eff2c8fa486ce30a0a0e589dc516170dc6c8f7e921b59deee157b974",
|
|
84
88
|
"schemas/media-manifest.schema.json": "sha256:3f37301aab9e913fa7febb15c720ed6384b106f12cef8d26cdd12d93fd85b41f",
|
|
85
89
|
"schemas/metric.schema.json": "sha256:2ada648e7274a8d78cc9d6e7ed616f91faa79cf9ed07613e2c1fc53b247aac8d",
|
|
86
90
|
"schemas/objective.schema.json": "sha256:94404dc95d04a6641ea7b9654317d0222793251ad44d3dfd2875738622a36025",
|
|
87
|
-
"schemas/observation.schema.json": "sha256:
|
|
91
|
+
"schemas/observation.schema.json": "sha256:8b0751ae086b39a4228ce95bc2e58065d30db24625b263f697506434363ba9be",
|
|
88
92
|
"schemas/page.schema.json": "sha256:11d116b22ab79c152cfc7bbbec3a00cebe6dcd8ea2845b0ce819c15111fb0166",
|
|
89
93
|
"schemas/project.schema.json": "sha256:ea48fdb6480f7047ba4594bd5908bc1f79c1ad6b9a2c204df900959b5f203dc6",
|
|
90
94
|
"schemas/prompt-result.schema.json": "sha256:b55be47d7d58d7b1dd8c3b1e849e24e55216212c592cde7eb836953379b85737",
|
|
@@ -94,6 +98,7 @@
|
|
|
94
98
|
"schemas/release-manifest.schema.json": "sha256:962be645e790b5f3dc6f6ea455e187492d727dcb91d00f91e4e25b40e2dbc360",
|
|
95
99
|
"schemas/release-state.schema.json": "sha256:9920f68e538915d0d07044f313a9e410775a38ce9bb46a55d9ebe02970784803",
|
|
96
100
|
"schemas/remediation-spec.schema.json": "sha256:6fe8cb773702862ba6d261198bb5cc2dca3eca0a2310a60ebddd04377654df8d",
|
|
101
|
+
"schemas/remediation-verification.schema.json": "sha256:b4e4f3ce8d72ef64cdb879a86b6afe9220e2d9e4d13ed3486348cc8ee38e1319",
|
|
97
102
|
"schemas/review-item.schema.json": "sha256:df532a70385d5031bbc18654f3ccb436dc6e8d402ccf987e58f8f7e3ad2fb3f1",
|
|
98
103
|
"schemas/review-policy.schema.json": "sha256:b2d176b1886f78c384b25532a0c3eb18548dfbd17f362a305e622bab562a1d04",
|
|
99
104
|
"schemas/reviewer.schema.json": "sha256:3716697b752575a1277f2c2b318b1f2565de02bf9dce2a0c165567ab5330d18b",
|
|
@@ -105,9 +110,9 @@
|
|
|
105
110
|
"schemas/source-identity-chain.schema.json": "sha256:a65d9c12eaed1bd6b637c66a2f9362c17287fdfcb454d8676fb611d2d28aa019",
|
|
106
111
|
"schemas/variance.schema.json": "sha256:68389f64f0a3be13ff8951e8eefba9a5c31d0738325cb47e37c1a8435bea48f0",
|
|
107
112
|
"scripts/README.md": "sha256:9eee4e8beb4579a183bd714c9dd24b83abd020753eada5caeffae004739d60b5",
|
|
108
|
-
"SKILL.md": "sha256:
|
|
113
|
+
"SKILL.md": "sha256:f39e0863bbcaf178c46afed4ae95834451d96e6b1d07af3883733de707e692ea",
|
|
109
114
|
"templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
|
|
110
|
-
"VERSION": "sha256:
|
|
115
|
+
"VERSION": "sha256:00afc49f1599e59129a59b64c2b019de3fe35300c05bb9d96cb25002576ff43b"
|
|
111
116
|
},
|
|
112
|
-
"treeHash": "sha256:
|
|
117
|
+
"treeHash": "sha256:e4c2165da7ae3106c3bfa358445d2e51dd974f656d058bc03f22fd0604d2d4b3"
|
|
113
118
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "citable://schemas/cli-output-envelope.schema.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "CLI JSON output envelope",
|
|
5
|
+
"description": "Stable envelope for every `citable <command> --json` output. Consumers read `citable_output_schema` for envelope compatibility and read command data from `result`. The envelope version changes only on breaking envelope changes; command payloads evolve backward-compatibly inside result.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["citable_output_schema", "tool_version", "generated_at", "result"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"citable_output_schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"pattern": "^\\d+\\.\\d+$",
|
|
12
|
+
"description": "Envelope contract version. 1.0 is the initial stable contract."
|
|
13
|
+
},
|
|
14
|
+
"tool_version": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Citable package version that produced the output."
|
|
17
|
+
},
|
|
18
|
+
"command": {
|
|
19
|
+
"type": ["string", "null"],
|
|
20
|
+
"description": "Top-level command that produced this output."
|
|
21
|
+
},
|
|
22
|
+
"generated_at": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "ISO-8601 timestamp of when the output was generated."
|
|
25
|
+
},
|
|
26
|
+
"result": {
|
|
27
|
+
"description": "Command-specific payload. Structure is defined per command and evolves backward-compatibly within an envelope major version."
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"properties": {
|
|
16
16
|
"experiment_id": { "$ref": "citable://schemas/common.defs.json#/definitions/id" },
|
|
17
17
|
"hypothesis": { "type": "string", "minLength": 10 },
|
|
18
|
-
"discipline": { "type": "array", "items": { "type": "string", "enum": ["seo", "aeo", "geo"] } },
|
|
18
|
+
"discipline": { "type": "array", "items": { "type": "string", "enum": ["seo", "aeo", "geo", "cro"] } },
|
|
19
19
|
"primary_metric": { "type": "string" },
|
|
20
20
|
"secondary_metrics": { "type": "array", "items": { "type": "string" } },
|
|
21
21
|
"prompt_cohort": { "type": "array", "items": { "type": "string" } },
|
|
@@ -257,6 +257,75 @@
|
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
259
|
},
|
|
260
|
+
"provenance": {
|
|
261
|
+
"type": "object",
|
|
262
|
+
"required": [
|
|
263
|
+
"detector_version",
|
|
264
|
+
"tool_version",
|
|
265
|
+
"evidence_source",
|
|
266
|
+
"methodology",
|
|
267
|
+
"revalidation_required"
|
|
268
|
+
],
|
|
269
|
+
"properties": {
|
|
270
|
+
"detector_version": {
|
|
271
|
+
"type": "integer",
|
|
272
|
+
"minimum": 1
|
|
273
|
+
},
|
|
274
|
+
"tool_version": {
|
|
275
|
+
"type": "string"
|
|
276
|
+
},
|
|
277
|
+
"source_url": {
|
|
278
|
+
"type": [
|
|
279
|
+
"string",
|
|
280
|
+
"null"
|
|
281
|
+
]
|
|
282
|
+
},
|
|
283
|
+
"source_file": {
|
|
284
|
+
"type": [
|
|
285
|
+
"string",
|
|
286
|
+
"null"
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"evidence_selector": {
|
|
290
|
+
"type": [
|
|
291
|
+
"string",
|
|
292
|
+
"null"
|
|
293
|
+
]
|
|
294
|
+
},
|
|
295
|
+
"evidence_source": {
|
|
296
|
+
"type": "string",
|
|
297
|
+
"enum": [
|
|
298
|
+
"dom_parse",
|
|
299
|
+
"registry",
|
|
300
|
+
"registry+dom_parse",
|
|
301
|
+
"controlled_observation",
|
|
302
|
+
"configuration"
|
|
303
|
+
]
|
|
304
|
+
},
|
|
305
|
+
"viewport": {
|
|
306
|
+
"type": [
|
|
307
|
+
"string",
|
|
308
|
+
"null"
|
|
309
|
+
]
|
|
310
|
+
},
|
|
311
|
+
"viewport_note": {
|
|
312
|
+
"type": [
|
|
313
|
+
"string",
|
|
314
|
+
"null"
|
|
315
|
+
]
|
|
316
|
+
},
|
|
317
|
+
"methodology": {
|
|
318
|
+
"type": "string"
|
|
319
|
+
},
|
|
320
|
+
"revalidation_required": {
|
|
321
|
+
"type": "string",
|
|
322
|
+
"enum": [
|
|
323
|
+
"on_next_audit",
|
|
324
|
+
"human_review_before_action"
|
|
325
|
+
]
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
},
|
|
260
329
|
"status": {
|
|
261
330
|
"type": "object",
|
|
262
331
|
"required": [
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "citable://schemas/fleet.schema.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Fleet Properties registry",
|
|
5
|
+
"allOf": [
|
|
6
|
+
{
|
|
7
|
+
"$ref": "citable://schemas/common.defs.json#/definitions/registryFile"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"kind": {
|
|
12
|
+
"const": "fleet"
|
|
13
|
+
},
|
|
14
|
+
"entries": {
|
|
15
|
+
"items": {
|
|
16
|
+
"$ref": "#/definitions/fleetProperty"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"definitions": {
|
|
21
|
+
"fleetProperty": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"required": [
|
|
25
|
+
"property_id",
|
|
26
|
+
"name",
|
|
27
|
+
"primary_domain",
|
|
28
|
+
"environment",
|
|
29
|
+
"status"
|
|
30
|
+
],
|
|
31
|
+
"properties": {
|
|
32
|
+
"property_id": {
|
|
33
|
+
"$ref": "citable://schemas/common.defs.json#/definitions/id"
|
|
34
|
+
},
|
|
35
|
+
"name": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
},
|
|
39
|
+
"description": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"primary_domain": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 3
|
|
45
|
+
},
|
|
46
|
+
"domains": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "string"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"environment": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": [
|
|
55
|
+
"production",
|
|
56
|
+
"staging",
|
|
57
|
+
"development",
|
|
58
|
+
"preview"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"base_url": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"built_output_dir": {
|
|
65
|
+
"type": "string"
|
|
66
|
+
},
|
|
67
|
+
"owner": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"tags": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"audit_schedule": {
|
|
77
|
+
"type": "string"
|
|
78
|
+
},
|
|
79
|
+
"status": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"enum": [
|
|
82
|
+
"active",
|
|
83
|
+
"paused",
|
|
84
|
+
"archived"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"updated": {
|
|
88
|
+
"$ref": "citable://schemas/common.defs.json#/definitions/isoDate"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|