@nebulacomponents/citable 1.18.1 → 1.18.2
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 +30 -0
- package/dist/universal/.agents/skills/citable/SKILL.md +1 -1
- package/dist/universal/.agents/skills/citable/VERSION +1 -1
- package/dist/universal/.agents/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.agents/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.agents/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.agents/skills/citable/manifest.json +11 -9
- package/dist/universal/.agents/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.agents/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.agents/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.claude/agents/citable/manifest.json +2 -2
- package/dist/universal/.claude/skills/citable/SKILL.md +1 -1
- package/dist/universal/.claude/skills/citable/VERSION +1 -1
- package/dist/universal/.claude/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.claude/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.claude/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.claude/skills/citable/manifest.json +11 -9
- package/dist/universal/.claude/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.claude/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.claude/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.cursor/skills/citable/SKILL.md +1 -1
- package/dist/universal/.cursor/skills/citable/VERSION +1 -1
- package/dist/universal/.cursor/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.cursor/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.cursor/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.cursor/skills/citable/manifest.json +11 -9
- package/dist/universal/.cursor/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.cursor/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.cursor/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.gemini/skills/citable/SKILL.md +1 -1
- package/dist/universal/.gemini/skills/citable/VERSION +1 -1
- package/dist/universal/.gemini/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.gemini/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.gemini/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.gemini/skills/citable/manifest.json +11 -9
- package/dist/universal/.gemini/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.gemini/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.gemini/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.github/skills/citable/SKILL.md +1 -1
- package/dist/universal/.github/skills/citable/VERSION +1 -1
- package/dist/universal/.github/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.github/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.github/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.github/skills/citable/manifest.json +11 -9
- package/dist/universal/.github/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.github/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.github/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.kiro/skills/citable/SKILL.md +1 -1
- package/dist/universal/.kiro/skills/citable/VERSION +1 -1
- package/dist/universal/.kiro/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.kiro/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.kiro/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.kiro/skills/citable/manifest.json +11 -9
- package/dist/universal/.kiro/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.kiro/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.kiro/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.opencode/skills/citable/SKILL.md +1 -1
- package/dist/universal/.opencode/skills/citable/VERSION +1 -1
- package/dist/universal/.opencode/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.opencode/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.opencode/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.opencode/skills/citable/manifest.json +11 -9
- package/dist/universal/.opencode/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.opencode/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.opencode/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.pi/agent/skills/citable/SKILL.md +1 -1
- package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
- package/dist/universal/.pi/agent/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.pi/agent/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.pi/agent/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.pi/agent/skills/citable/manifest.json +11 -9
- package/dist/universal/.pi/agent/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.qoder/skills/citable/SKILL.md +1 -1
- package/dist/universal/.qoder/skills/citable/VERSION +1 -1
- package/dist/universal/.qoder/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.qoder/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.qoder/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.qoder/skills/citable/manifest.json +11 -9
- package/dist/universal/.qoder/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.qoder/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.qoder/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.rovodev/skills/citable/SKILL.md +1 -1
- package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
- package/dist/universal/.rovodev/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.rovodev/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.rovodev/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.rovodev/skills/citable/manifest.json +11 -9
- package/dist/universal/.rovodev/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.rovodev/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.rovodev/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.trae/skills/citable/SKILL.md +1 -1
- package/dist/universal/.trae/skills/citable/VERSION +1 -1
- package/dist/universal/.trae/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.trae/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.trae/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.trae/skills/citable/manifest.json +11 -9
- package/dist/universal/.trae/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.trae/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.trae/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/.trae-cn/skills/citable/SKILL.md +1 -1
- package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
- package/dist/universal/.trae-cn/skills/citable/commands/artifact-interchange.md +5 -0
- package/dist/universal/.trae-cn/skills/citable/commands/remediation.md +1 -1
- package/dist/universal/.trae-cn/skills/citable/commands/sow.md +2 -2
- package/dist/universal/.trae-cn/skills/citable/manifest.json +11 -9
- package/dist/universal/.trae-cn/skills/citable/schemas/cro-report.schema.json +112 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/search-report.schema.json +99 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/sow.schema.json +3 -2
- package/dist/universal/manifest.json +136 -112
- package/package.json +2 -1
- package/schemas/cro-report.schema.json +112 -0
- package/schemas/search-report.schema.json +99 -0
- package/schemas/sow.schema.json +3 -2
- package/skill/SKILL.md +1 -1
- package/skill/commands/artifact-interchange.md +5 -0
- package/skill/commands/remediation.md +1 -1
- package/skill/commands/sow.md +2 -2
- package/src/analysis/behavioral.js +5 -4
- package/src/analysis/eeat.js +10 -9
- package/src/analysis/offpage.js +19 -36
- package/src/analysis/readiness.js +8 -2
- package/src/artifacts/verifyCustomerArtifact.js +283 -0
- package/src/cli/index.js +8 -1
- package/src/reporting/executiveCroReport.js +393 -229
- package/src/reporting/executiveExport.js +6 -2
- package/src/reporting/executiveSearchReport.js +519 -271
- package/src/shared/domainUtils.js +140 -0
- package/src/shared/epistemicStatus.js +111 -0
- package/src/shared/evidenceSourceResolver.js +286 -0
- package/src/shared/htmlEscape.js +65 -0
- package/src/shared/runPackageVerifier.js +153 -0
- package/src/sow/admissibilityGate.js +20 -2
- package/src/sow/generateSow.js +125 -159
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "citable://schemas/cro-report.schema.json",
|
|
4
|
+
"title": "Enterprise CRO & Journey Intelligence Executive Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"fact_status",
|
|
8
|
+
"report_title",
|
|
9
|
+
"client_name",
|
|
10
|
+
"target_domain",
|
|
11
|
+
"generated_at",
|
|
12
|
+
"overall_conversion_readiness",
|
|
13
|
+
"pillars",
|
|
14
|
+
"evidence_register",
|
|
15
|
+
"decision_summary",
|
|
16
|
+
"generation_provenance"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"$schema": { "type": "string" },
|
|
20
|
+
"fact_status": { "type": "string" },
|
|
21
|
+
"epistemic_status": { "type": "string" },
|
|
22
|
+
"report_title": { "type": "string" },
|
|
23
|
+
"client_name": { "type": "string" },
|
|
24
|
+
"target_domain": { "type": "string" },
|
|
25
|
+
"generated_at": { "type": "string" },
|
|
26
|
+
"overall_conversion_readiness": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
27
|
+
"epistemological_framework": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"properties": {
|
|
30
|
+
"observation": { "type": "string" },
|
|
31
|
+
"hypothesis": { "type": "string" },
|
|
32
|
+
"causation": { "type": "string" },
|
|
33
|
+
"unknowns": { "type": "string" }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"pillars": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"required": [
|
|
39
|
+
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
|
|
40
|
+
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
|
|
41
|
+
"21", "22", "23", "24", "25"
|
|
42
|
+
],
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"patternProperties": {
|
|
45
|
+
"^[0-9]+$": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"required": ["name", "data"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"name": { "type": "string" },
|
|
50
|
+
"data": {}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"evidence_register": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"required": ["evidence_id", "source", "methodology", "confidence_level"],
|
|
60
|
+
"properties": {
|
|
61
|
+
"evidence_id": { "type": "string", "pattern": "^EVD-CRO-[0-9]+$" },
|
|
62
|
+
"source": { "type": "string" },
|
|
63
|
+
"title": { "type": "string" },
|
|
64
|
+
"observation_date": { "type": "string" },
|
|
65
|
+
"methodology": { "type": "string" },
|
|
66
|
+
"confidence_level": { "type": "string" },
|
|
67
|
+
"data_snapshot": {}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"decision_summary": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"required": [
|
|
74
|
+
"observed_conversion_failures",
|
|
75
|
+
"evidence_supported_hypotheses",
|
|
76
|
+
"causal_findings",
|
|
77
|
+
"unresolved_unknowns",
|
|
78
|
+
"recommended_interventions"
|
|
79
|
+
],
|
|
80
|
+
"properties": {
|
|
81
|
+
"observed_conversion_failures": { "type": "array", "items": { "type": "string" } },
|
|
82
|
+
"evidence_supported_hypotheses": { "type": "array", "items": { "type": "string" } },
|
|
83
|
+
"causal_findings": { "type": "array", "items": { "type": "string" } },
|
|
84
|
+
"unresolved_unknowns": { "type": "array", "items": { "type": "string" } },
|
|
85
|
+
"recommended_interventions": { "type": "array", "items": { "type": "string" } }
|
|
86
|
+
},
|
|
87
|
+
"additionalProperties": false
|
|
88
|
+
},
|
|
89
|
+
"generation_provenance": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"required": [
|
|
92
|
+
"generated_at",
|
|
93
|
+
"generator_version",
|
|
94
|
+
"generation_mode",
|
|
95
|
+
"source_type",
|
|
96
|
+
"synthetic_evidence"
|
|
97
|
+
],
|
|
98
|
+
"properties": {
|
|
99
|
+
"generated_at": { "type": "string" },
|
|
100
|
+
"generator_version": { "type": "string" },
|
|
101
|
+
"generation_mode": { "type": "string", "enum": ["CONTRACTUAL", "DRAFT", "NON_CONTRACTUAL_SAMPLE"] },
|
|
102
|
+
"source_type": { "type": "string" },
|
|
103
|
+
"source_identifier": { "type": ["string", "null"] },
|
|
104
|
+
"source_findings_count": { "type": "integer", "minimum": 0 },
|
|
105
|
+
"integrity_hash": { "type": ["string", "null"] },
|
|
106
|
+
"synthetic_evidence": { "type": "boolean" }
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "citable://schemas/search-report.schema.json",
|
|
4
|
+
"title": "Enterprise Search Intelligence & Governance Executive Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"fact_status",
|
|
8
|
+
"report_title",
|
|
9
|
+
"client_name",
|
|
10
|
+
"target_domain",
|
|
11
|
+
"generated_at",
|
|
12
|
+
"overall_readiness_score",
|
|
13
|
+
"pillars",
|
|
14
|
+
"evidence_register",
|
|
15
|
+
"decision_summary",
|
|
16
|
+
"generation_provenance"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"$schema": { "type": "string" },
|
|
20
|
+
"fact_status": { "type": "string" },
|
|
21
|
+
"epistemic_status": { "type": "string" },
|
|
22
|
+
"report_title": { "type": "string" },
|
|
23
|
+
"client_name": { "type": "string" },
|
|
24
|
+
"target_domain": { "type": "string" },
|
|
25
|
+
"generated_at": { "type": "string" },
|
|
26
|
+
"overall_readiness_score": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
27
|
+
"pillars": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"required": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"],
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"patternProperties": {
|
|
32
|
+
"^[0-9]+$": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["name", "data"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"name": { "type": "string" },
|
|
37
|
+
"data": {}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"evidence_register": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"required": ["evidence_id", "source", "methodology", "confidence_level"],
|
|
47
|
+
"properties": {
|
|
48
|
+
"evidence_id": { "type": "string", "pattern": "^EVD-SRCH-[0-9]+$" },
|
|
49
|
+
"source": { "type": "string" },
|
|
50
|
+
"title": { "type": "string" },
|
|
51
|
+
"observation_date": { "type": "string" },
|
|
52
|
+
"methodology": { "type": "string" },
|
|
53
|
+
"confidence_level": { "type": "string" },
|
|
54
|
+
"data_snapshot": {}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"decision_summary": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": [
|
|
61
|
+
"confirmed_findings",
|
|
62
|
+
"inferred_opportunities",
|
|
63
|
+
"unresolved_unknowns",
|
|
64
|
+
"strategic_risks",
|
|
65
|
+
"actions_requiring_leadership_approval"
|
|
66
|
+
],
|
|
67
|
+
"properties": {
|
|
68
|
+
"confirmed_findings": { "type": "array", "items": { "type": "string" } },
|
|
69
|
+
"inferred_opportunities": { "type": "array", "items": { "type": "string" } },
|
|
70
|
+
"unresolved_unknowns": { "type": "array", "items": { "type": "string" } },
|
|
71
|
+
"strategic_risks": { "type": "array", "items": { "type": "string" } },
|
|
72
|
+
"actions_requiring_leadership_approval": { "type": "array", "items": { "type": "string" } }
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
},
|
|
76
|
+
"generation_provenance": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"required": [
|
|
79
|
+
"generated_at",
|
|
80
|
+
"generator_version",
|
|
81
|
+
"generation_mode",
|
|
82
|
+
"source_type",
|
|
83
|
+
"synthetic_evidence"
|
|
84
|
+
],
|
|
85
|
+
"properties": {
|
|
86
|
+
"generated_at": { "type": "string" },
|
|
87
|
+
"generator_version": { "type": "string" },
|
|
88
|
+
"generation_mode": { "type": "string", "enum": ["CONTRACTUAL", "DRAFT", "NON_CONTRACTUAL_SAMPLE"] },
|
|
89
|
+
"source_type": { "type": "string" },
|
|
90
|
+
"source_identifier": { "type": ["string", "null"] },
|
|
91
|
+
"source_findings_count": { "type": "integer", "minimum": 0 },
|
|
92
|
+
"integrity_hash": { "type": ["string", "null"] },
|
|
93
|
+
"synthetic_evidence": { "type": "boolean" }
|
|
94
|
+
},
|
|
95
|
+
"additionalProperties": false
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"additionalProperties": false
|
|
99
|
+
}
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"additionalProperties": false
|
|
54
54
|
},
|
|
55
|
-
"effective_date": { "type": "string" },
|
|
55
|
+
"effective_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" },
|
|
56
56
|
"term_days": { "type": "integer", "minimum": 1 },
|
|
57
57
|
"currency": { "type": "string", "enum": ["USD"] },
|
|
58
58
|
"currency_minor_unit_exponent": { "type": "integer", "enum": [2] },
|
|
@@ -377,7 +377,8 @@
|
|
|
377
377
|
"evidence_ids": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
|
|
378
378
|
"severity": { "type": "string" },
|
|
379
379
|
"target_subject": { "type": "string" },
|
|
380
|
-
"acceptance_criteria": { "type": "string" }
|
|
380
|
+
"acceptance_criteria": { "type": "string" },
|
|
381
|
+
"acceptance_basis": { "type": "string" }
|
|
381
382
|
},
|
|
382
383
|
"additionalProperties": false
|
|
383
384
|
}
|
|
@@ -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.18.
|
|
10
|
+
version: 1.18.2
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Citable — evidence and change control for search and AI citation readiness
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.18.
|
|
1
|
+
1.18.2
|
|
@@ -7,6 +7,7 @@ external workspaces without changing its canonical bytes.
|
|
|
7
7
|
citable artifacts export <run-id> --output <directory>
|
|
8
8
|
citable artifacts verify --input <directory>
|
|
9
9
|
citable artifacts import --input <directory>
|
|
10
|
+
citable artifacts verify-customer <file>
|
|
10
11
|
```
|
|
11
12
|
|
|
12
13
|
An export contains the original run package plus
|
|
@@ -26,3 +27,7 @@ was authentic, that external observations were representative or complete, or
|
|
|
26
27
|
that an intervention caused an outcome. Hosted tenancy, authentication,
|
|
27
28
|
storage, retention, billing, scheduling, and dashboards are outside this
|
|
28
29
|
contract.
|
|
30
|
+
|
|
31
|
+
Use `citable artifacts verify-customer <file>` to validate customer deliverables
|
|
32
|
+
(SOW, Search, and CRO JSON reports) against their JSON Schemas, verify arithmetic
|
|
33
|
+
consistency (e.g. minor-unit fee totals), and reject unescaped script or event handler injections.
|
|
@@ -12,7 +12,7 @@ The remediation suite provides safe, gated code fixes for deterministic technica
|
|
|
12
12
|
|
|
13
13
|
## 1. Safe Patch Application (`citable remediate`)
|
|
14
14
|
|
|
15
|
-
1. **Framework Detection**: Identifies target source syntax (`jsx`, `tsx`, `vue`, `html`). Fails closed on unknown or ambiguous frameworks.
|
|
15
|
+
1. **Framework Detection**: Identifies target source syntax (`jsx`, `tsx`, `vue`, `svelte`, `html`). Fails closed on unknown or ambiguous frameworks.
|
|
16
16
|
2. **Idempotent AST Patching**: Patches are mathematically verified to be idempotent (`applyPatchDetailed`): applying the patch a second time produces an identical AST (a fixed point).
|
|
17
17
|
3. **Structural Validation Gate**: Runs `validatePatchedSource` to confirm that the patch does not break AST structure, introduce syntax errors, or alter unrelated code blocks.
|
|
18
18
|
4. **Confidence Threshold**: Computes an explicit multi-factor confidence score (`computeConfidence`). `--write` is refused if confidence falls below `0.70`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
command: /citable sow generate [--target <dir|url>] [--run <id>] [--budget <amount>] [--budget-minor <cents>] [--format md|html|json] [--output <path>] [--sample] [--draft]
|
|
3
|
-
purpose: Generate a contractually binding, evidence-traceable enterprise Statement of Work (SOW) from verified audit findings through a formal
|
|
3
|
+
purpose: Generate a contractually binding, evidence-traceable enterprise Statement of Work (SOW) from verified audit findings through a formal 8-gate scope admissibility filter and 7-column traceability matrix.
|
|
4
4
|
preconditions: [at least one finalized audit run with verified findings or live target; sample mode required for synthetic demonstrations]
|
|
5
5
|
failure_behaviour: absent or unverified findings in contractual mode -> NoFindingsError; all findings refused -> NoAdmissibleRequirementsError; non-existent run -> RunNotFoundError; negative or sub-cent budget -> BudgetCalculationError; invariant drift -> SowInvariantError
|
|
6
6
|
artifacts_created: [SOW.md, SOW.html, or SOW.json at specified output path]
|
|
@@ -34,7 +34,7 @@ Acceptance Test (automated closed-loop detector rerun)
|
|
|
34
34
|
|
|
35
35
|
## 2. The Scope Admissibility Gate
|
|
36
36
|
|
|
37
|
-
Audit findings do NOT automatically become contractual obligations. Every candidate finding must pass
|
|
37
|
+
Audit findings do NOT automatically become contractual obligations. Every candidate finding must pass 8 admissibility gates:
|
|
38
38
|
|
|
39
39
|
| Gate | Verification Check | Failure Refusal Code | Contractual Handling |
|
|
40
40
|
| :--- | :--- | :--- | :--- |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "citable",
|
|
3
|
-
"version": "1.18.
|
|
3
|
+
"version": "1.18.2",
|
|
4
4
|
"managedBy": "citable-cli",
|
|
5
5
|
"provider": "cursor",
|
|
6
6
|
"providerName": "Cursor",
|
|
7
7
|
"scope": "bundle",
|
|
8
|
-
"sourcePackage": "@nebulacomponents/citable@1.18.
|
|
8
|
+
"sourcePackage": "@nebulacomponents/citable@1.18.2",
|
|
9
9
|
"variantPath": ".cursor/skills/citable",
|
|
10
10
|
"agentProfiles": {
|
|
11
11
|
"status": "unsupported",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"agents/citable-semantic-reviewer.md": "sha256:77582263a048ea41ae3f7ee326dbd036222fab81ed83bda98034ec83ee21ef2e",
|
|
18
18
|
"agents/citable-sow-architect.md": "sha256:d55cf8bc2ab8f364c0d95ec39fc44406684110d1e4d1ff2e34702ded003094b4",
|
|
19
19
|
"commands/action-findings.md": "sha256:b1d5c4d8d8b1092bc73b99430bea0a2e460031658e42bed33eb94da9a3c0e48f",
|
|
20
|
-
"commands/artifact-interchange.md": "sha256:
|
|
20
|
+
"commands/artifact-interchange.md": "sha256:300062880e141b80ce23024c0a9b309e93a1e2aeb87e22a68860d27388a3acb7",
|
|
21
21
|
"commands/delivery.md": "sha256:3b29250f9e9f84442812e320a70d5d2784b4286e91af3866f99cb6062a85a10f",
|
|
22
22
|
"commands/field-validation.md": "sha256:4f24b2758eef746d704b218364f1e45ee9e07418c8ae111081b1fd41f93dde2d",
|
|
23
23
|
"commands/governance.md": "sha256:41792a2a08930c604cc7b635c23fb3cbdeebc5af610ef38c795f1a412c4a0816",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"commands/page-work.md": "sha256:965a66e59bdf7b0da482d26fade53b3d265885ece5d463fe83b0789ebefaef3e",
|
|
30
30
|
"commands/plan-audit.md": "sha256:69875c9654e13b84566dafb16afe5afe08cffb9f3bded1f2d8d2261ae871c869",
|
|
31
31
|
"commands/README.md": "sha256:683b226020582dd93e24a2fb59ce6264735f44eb26353f977153034a615f871c",
|
|
32
|
-
"commands/remediation.md": "sha256:
|
|
32
|
+
"commands/remediation.md": "sha256:f2a90608079d823b8192aa7acad8a60c923ac02b4e01e5ca653f45e9f52c7998",
|
|
33
33
|
"commands/reporting.md": "sha256:f560f3c8349fcdaf6d3c3a27968016e20ef42ef2473292f7b83260cfb4b3b2e6",
|
|
34
34
|
"commands/reviews.md": "sha256:902904aaa405fe5724cf0662c7a5a36eab9a4fe0eb81cbd95ffa2fff946e0ac8",
|
|
35
|
-
"commands/sow.md": "sha256:
|
|
35
|
+
"commands/sow.md": "sha256:caf4b7e4b9f0e801fbc86f40e6efb8a057d1243dc488b0bc629b8fb2b90c6933",
|
|
36
36
|
"commands/validate-render.md": "sha256:a8e1d04d40b84d57c35039250d98c6a7302cd44a148a8c3b9d9cfb92678c4347",
|
|
37
37
|
"policies/crawler-policy-template.md": "sha256:15c88a4eeb21f53f71e5250dd3eb2d2791a814b304eaefce8bb30e2bdf2e2e59",
|
|
38
38
|
"references/aeo-geo-validation.md": "sha256:4b0041764f2fdbfbff1e1a2907eaed02cf0aef491254a9c98ec9250ff1084e80",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"schemas/corroboration-import.schema.json": "sha256:927983d0590f1ec569e86195d2031be0cd212f9436ff98acca468cbae108d85e",
|
|
72
72
|
"schemas/crawler-identity.schema.json": "sha256:e1e3e6da203a8bc49fba8f9bbde525368891db022d542fc615b677401825351d",
|
|
73
73
|
"schemas/crawler.schema.json": "sha256:1a113dfb80bc6cde904c3ea648c82ea1d88fe50f2c1a0e7175d44abba28ac64e",
|
|
74
|
+
"schemas/cro-report.schema.json": "sha256:270cfe946d3dce007672c5fd5e052f07e3322c85a2bfcc0cd47f34ce569f2fb1",
|
|
74
75
|
"schemas/customer-outcome.schema.json": "sha256:c0cdfee31a692feadb31dc6be734d45ae178ee53f28349c2a9e7504bdfcf9e50",
|
|
75
76
|
"schemas/decision.schema.json": "sha256:7c30f3ad83a6aa0b67ecc51ac6691e5e041b633d01bab17cee2b5218d926204e",
|
|
76
77
|
"schemas/deployment-receipt.schema.json": "sha256:789455907e7f3039fd55ee5b2568e09871128f513f5ddfe1f3afac1a4dd6b2bd",
|
|
@@ -111,13 +112,14 @@
|
|
|
111
112
|
"schemas/sampling-plan.schema.json": "sha256:005f70f149baaacd7de698548d556d3e401c630978748271b0e14a74726dd413",
|
|
112
113
|
"schemas/scenario.schema.json": "sha256:3f5bc2032d08f973600db068f475176a0e4706b33be42f99c778fe755a0ff38b",
|
|
113
114
|
"schemas/schedule.schema.json": "sha256:645df065bf33577a960c0bf8bb97e141e9326840303569468dae8a553d468482",
|
|
115
|
+
"schemas/search-report.schema.json": "sha256:0ae2dad77cf3c6f2abac22a8180d66bde8ebd044ed6324a56329cd12a3c898f2",
|
|
114
116
|
"schemas/source-identity-chain.schema.json": "sha256:a65d9c12eaed1bd6b637c66a2f9362c17287fdfcb454d8676fb611d2d28aa019",
|
|
115
|
-
"schemas/sow.schema.json": "sha256:
|
|
117
|
+
"schemas/sow.schema.json": "sha256:3a3fd6048a747a9bc0cfaea98920376b043616a33c953a9eb8b74d0ae32dded0",
|
|
116
118
|
"schemas/variance.schema.json": "sha256:68389f64f0a3be13ff8951e8eefba9a5c31d0738325cb47e37c1a8435bea48f0",
|
|
117
119
|
"scripts/README.md": "sha256:9eee4e8beb4579a183bd714c9dd24b83abd020753eada5caeffae004739d60b5",
|
|
118
|
-
"SKILL.md": "sha256:
|
|
120
|
+
"SKILL.md": "sha256:a2c2ce3aced71fc2a66f2e46b4a9fcc10b65819dcef58176b2cefe674d6a941b",
|
|
119
121
|
"templates/finding-review.md": "sha256:b270a83d3f015150aac80249ae9314979c0befea39ff92ec455f9a5aaa73404c",
|
|
120
|
-
"VERSION": "sha256:
|
|
122
|
+
"VERSION": "sha256:0a1b17e91d514c0c9e88520e6091e2d52a6faf8296892cad7355ff0723a42914"
|
|
121
123
|
},
|
|
122
|
-
"treeHash": "sha256:
|
|
124
|
+
"treeHash": "sha256:2d4210d9dd26b7952f53964402abf06c8ae12ae43cb8ac5c568f070ab44b0001"
|
|
123
125
|
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "citable://schemas/cro-report.schema.json",
|
|
4
|
+
"title": "Enterprise CRO & Journey Intelligence Executive Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"fact_status",
|
|
8
|
+
"report_title",
|
|
9
|
+
"client_name",
|
|
10
|
+
"target_domain",
|
|
11
|
+
"generated_at",
|
|
12
|
+
"overall_conversion_readiness",
|
|
13
|
+
"pillars",
|
|
14
|
+
"evidence_register",
|
|
15
|
+
"decision_summary",
|
|
16
|
+
"generation_provenance"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"$schema": { "type": "string" },
|
|
20
|
+
"fact_status": { "type": "string" },
|
|
21
|
+
"epistemic_status": { "type": "string" },
|
|
22
|
+
"report_title": { "type": "string" },
|
|
23
|
+
"client_name": { "type": "string" },
|
|
24
|
+
"target_domain": { "type": "string" },
|
|
25
|
+
"generated_at": { "type": "string" },
|
|
26
|
+
"overall_conversion_readiness": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
27
|
+
"epistemological_framework": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"properties": {
|
|
30
|
+
"observation": { "type": "string" },
|
|
31
|
+
"hypothesis": { "type": "string" },
|
|
32
|
+
"causation": { "type": "string" },
|
|
33
|
+
"unknowns": { "type": "string" }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"pillars": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"required": [
|
|
39
|
+
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
|
|
40
|
+
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
|
|
41
|
+
"21", "22", "23", "24", "25"
|
|
42
|
+
],
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"patternProperties": {
|
|
45
|
+
"^[0-9]+$": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"required": ["name", "data"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"name": { "type": "string" },
|
|
50
|
+
"data": {}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"evidence_register": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"required": ["evidence_id", "source", "methodology", "confidence_level"],
|
|
60
|
+
"properties": {
|
|
61
|
+
"evidence_id": { "type": "string", "pattern": "^EVD-CRO-[0-9]+$" },
|
|
62
|
+
"source": { "type": "string" },
|
|
63
|
+
"title": { "type": "string" },
|
|
64
|
+
"observation_date": { "type": "string" },
|
|
65
|
+
"methodology": { "type": "string" },
|
|
66
|
+
"confidence_level": { "type": "string" },
|
|
67
|
+
"data_snapshot": {}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"decision_summary": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"required": [
|
|
74
|
+
"observed_conversion_failures",
|
|
75
|
+
"evidence_supported_hypotheses",
|
|
76
|
+
"causal_findings",
|
|
77
|
+
"unresolved_unknowns",
|
|
78
|
+
"recommended_interventions"
|
|
79
|
+
],
|
|
80
|
+
"properties": {
|
|
81
|
+
"observed_conversion_failures": { "type": "array", "items": { "type": "string" } },
|
|
82
|
+
"evidence_supported_hypotheses": { "type": "array", "items": { "type": "string" } },
|
|
83
|
+
"causal_findings": { "type": "array", "items": { "type": "string" } },
|
|
84
|
+
"unresolved_unknowns": { "type": "array", "items": { "type": "string" } },
|
|
85
|
+
"recommended_interventions": { "type": "array", "items": { "type": "string" } }
|
|
86
|
+
},
|
|
87
|
+
"additionalProperties": false
|
|
88
|
+
},
|
|
89
|
+
"generation_provenance": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"required": [
|
|
92
|
+
"generated_at",
|
|
93
|
+
"generator_version",
|
|
94
|
+
"generation_mode",
|
|
95
|
+
"source_type",
|
|
96
|
+
"synthetic_evidence"
|
|
97
|
+
],
|
|
98
|
+
"properties": {
|
|
99
|
+
"generated_at": { "type": "string" },
|
|
100
|
+
"generator_version": { "type": "string" },
|
|
101
|
+
"generation_mode": { "type": "string", "enum": ["CONTRACTUAL", "DRAFT", "NON_CONTRACTUAL_SAMPLE"] },
|
|
102
|
+
"source_type": { "type": "string" },
|
|
103
|
+
"source_identifier": { "type": ["string", "null"] },
|
|
104
|
+
"source_findings_count": { "type": "integer", "minimum": 0 },
|
|
105
|
+
"integrity_hash": { "type": ["string", "null"] },
|
|
106
|
+
"synthetic_evidence": { "type": "boolean" }
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "citable://schemas/search-report.schema.json",
|
|
4
|
+
"title": "Enterprise Search Intelligence & Governance Executive Report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"fact_status",
|
|
8
|
+
"report_title",
|
|
9
|
+
"client_name",
|
|
10
|
+
"target_domain",
|
|
11
|
+
"generated_at",
|
|
12
|
+
"overall_readiness_score",
|
|
13
|
+
"pillars",
|
|
14
|
+
"evidence_register",
|
|
15
|
+
"decision_summary",
|
|
16
|
+
"generation_provenance"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"$schema": { "type": "string" },
|
|
20
|
+
"fact_status": { "type": "string" },
|
|
21
|
+
"epistemic_status": { "type": "string" },
|
|
22
|
+
"report_title": { "type": "string" },
|
|
23
|
+
"client_name": { "type": "string" },
|
|
24
|
+
"target_domain": { "type": "string" },
|
|
25
|
+
"generated_at": { "type": "string" },
|
|
26
|
+
"overall_readiness_score": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
27
|
+
"pillars": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"required": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"],
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"patternProperties": {
|
|
32
|
+
"^[0-9]+$": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["name", "data"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"name": { "type": "string" },
|
|
37
|
+
"data": {}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"evidence_register": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"required": ["evidence_id", "source", "methodology", "confidence_level"],
|
|
47
|
+
"properties": {
|
|
48
|
+
"evidence_id": { "type": "string", "pattern": "^EVD-SRCH-[0-9]+$" },
|
|
49
|
+
"source": { "type": "string" },
|
|
50
|
+
"title": { "type": "string" },
|
|
51
|
+
"observation_date": { "type": "string" },
|
|
52
|
+
"methodology": { "type": "string" },
|
|
53
|
+
"confidence_level": { "type": "string" },
|
|
54
|
+
"data_snapshot": {}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"decision_summary": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": [
|
|
61
|
+
"confirmed_findings",
|
|
62
|
+
"inferred_opportunities",
|
|
63
|
+
"unresolved_unknowns",
|
|
64
|
+
"strategic_risks",
|
|
65
|
+
"actions_requiring_leadership_approval"
|
|
66
|
+
],
|
|
67
|
+
"properties": {
|
|
68
|
+
"confirmed_findings": { "type": "array", "items": { "type": "string" } },
|
|
69
|
+
"inferred_opportunities": { "type": "array", "items": { "type": "string" } },
|
|
70
|
+
"unresolved_unknowns": { "type": "array", "items": { "type": "string" } },
|
|
71
|
+
"strategic_risks": { "type": "array", "items": { "type": "string" } },
|
|
72
|
+
"actions_requiring_leadership_approval": { "type": "array", "items": { "type": "string" } }
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
},
|
|
76
|
+
"generation_provenance": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"required": [
|
|
79
|
+
"generated_at",
|
|
80
|
+
"generator_version",
|
|
81
|
+
"generation_mode",
|
|
82
|
+
"source_type",
|
|
83
|
+
"synthetic_evidence"
|
|
84
|
+
],
|
|
85
|
+
"properties": {
|
|
86
|
+
"generated_at": { "type": "string" },
|
|
87
|
+
"generator_version": { "type": "string" },
|
|
88
|
+
"generation_mode": { "type": "string", "enum": ["CONTRACTUAL", "DRAFT", "NON_CONTRACTUAL_SAMPLE"] },
|
|
89
|
+
"source_type": { "type": "string" },
|
|
90
|
+
"source_identifier": { "type": ["string", "null"] },
|
|
91
|
+
"source_findings_count": { "type": "integer", "minimum": 0 },
|
|
92
|
+
"integrity_hash": { "type": ["string", "null"] },
|
|
93
|
+
"synthetic_evidence": { "type": "boolean" }
|
|
94
|
+
},
|
|
95
|
+
"additionalProperties": false
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"additionalProperties": false
|
|
99
|
+
}
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"additionalProperties": false
|
|
54
54
|
},
|
|
55
|
-
"effective_date": { "type": "string" },
|
|
55
|
+
"effective_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" },
|
|
56
56
|
"term_days": { "type": "integer", "minimum": 1 },
|
|
57
57
|
"currency": { "type": "string", "enum": ["USD"] },
|
|
58
58
|
"currency_minor_unit_exponent": { "type": "integer", "enum": [2] },
|
|
@@ -377,7 +377,8 @@
|
|
|
377
377
|
"evidence_ids": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
|
|
378
378
|
"severity": { "type": "string" },
|
|
379
379
|
"target_subject": { "type": "string" },
|
|
380
|
-
"acceptance_criteria": { "type": "string" }
|
|
380
|
+
"acceptance_criteria": { "type": "string" },
|
|
381
|
+
"acceptance_basis": { "type": "string" }
|
|
381
382
|
},
|
|
382
383
|
"additionalProperties": false
|
|
383
384
|
}
|
|
@@ -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.18.
|
|
10
|
+
version: 1.18.2
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Citable — evidence and change control for search and AI citation readiness
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.18.
|
|
1
|
+
1.18.2
|
|
@@ -7,6 +7,7 @@ external workspaces without changing its canonical bytes.
|
|
|
7
7
|
citable artifacts export <run-id> --output <directory>
|
|
8
8
|
citable artifacts verify --input <directory>
|
|
9
9
|
citable artifacts import --input <directory>
|
|
10
|
+
citable artifacts verify-customer <file>
|
|
10
11
|
```
|
|
11
12
|
|
|
12
13
|
An export contains the original run package plus
|
|
@@ -26,3 +27,7 @@ was authentic, that external observations were representative or complete, or
|
|
|
26
27
|
that an intervention caused an outcome. Hosted tenancy, authentication,
|
|
27
28
|
storage, retention, billing, scheduling, and dashboards are outside this
|
|
28
29
|
contract.
|
|
30
|
+
|
|
31
|
+
Use `citable artifacts verify-customer <file>` to validate customer deliverables
|
|
32
|
+
(SOW, Search, and CRO JSON reports) against their JSON Schemas, verify arithmetic
|
|
33
|
+
consistency (e.g. minor-unit fee totals), and reject unescaped script or event handler injections.
|
|
@@ -12,7 +12,7 @@ The remediation suite provides safe, gated code fixes for deterministic technica
|
|
|
12
12
|
|
|
13
13
|
## 1. Safe Patch Application (`citable remediate`)
|
|
14
14
|
|
|
15
|
-
1. **Framework Detection**: Identifies target source syntax (`jsx`, `tsx`, `vue`, `html`). Fails closed on unknown or ambiguous frameworks.
|
|
15
|
+
1. **Framework Detection**: Identifies target source syntax (`jsx`, `tsx`, `vue`, `svelte`, `html`). Fails closed on unknown or ambiguous frameworks.
|
|
16
16
|
2. **Idempotent AST Patching**: Patches are mathematically verified to be idempotent (`applyPatchDetailed`): applying the patch a second time produces an identical AST (a fixed point).
|
|
17
17
|
3. **Structural Validation Gate**: Runs `validatePatchedSource` to confirm that the patch does not break AST structure, introduce syntax errors, or alter unrelated code blocks.
|
|
18
18
|
4. **Confidence Threshold**: Computes an explicit multi-factor confidence score (`computeConfidence`). `--write` is refused if confidence falls below `0.70`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
command: /citable sow generate [--target <dir|url>] [--run <id>] [--budget <amount>] [--budget-minor <cents>] [--format md|html|json] [--output <path>] [--sample] [--draft]
|
|
3
|
-
purpose: Generate a contractually binding, evidence-traceable enterprise Statement of Work (SOW) from verified audit findings through a formal
|
|
3
|
+
purpose: Generate a contractually binding, evidence-traceable enterprise Statement of Work (SOW) from verified audit findings through a formal 8-gate scope admissibility filter and 7-column traceability matrix.
|
|
4
4
|
preconditions: [at least one finalized audit run with verified findings or live target; sample mode required for synthetic demonstrations]
|
|
5
5
|
failure_behaviour: absent or unverified findings in contractual mode -> NoFindingsError; all findings refused -> NoAdmissibleRequirementsError; non-existent run -> RunNotFoundError; negative or sub-cent budget -> BudgetCalculationError; invariant drift -> SowInvariantError
|
|
6
6
|
artifacts_created: [SOW.md, SOW.html, or SOW.json at specified output path]
|
|
@@ -34,7 +34,7 @@ Acceptance Test (automated closed-loop detector rerun)
|
|
|
34
34
|
|
|
35
35
|
## 2. The Scope Admissibility Gate
|
|
36
36
|
|
|
37
|
-
Audit findings do NOT automatically become contractual obligations. Every candidate finding must pass
|
|
37
|
+
Audit findings do NOT automatically become contractual obligations. Every candidate finding must pass 8 admissibility gates:
|
|
38
38
|
|
|
39
39
|
| Gate | Verification Check | Failure Refusal Code | Contractual Handling |
|
|
40
40
|
| :--- | :--- | :--- | :--- |
|