-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshadow-report-schema.json
More file actions
124 lines (124 loc) · 3.99 KB
/
shadow-report-schema.json
File metadata and controls
124 lines (124 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Shadow Score Report",
"description": "Schema for Shadow Score reports conforming to Shadow Score Spec v1.0.0",
"type": "object",
"required": ["shadow_score_spec_version", "report", "sealed_tests", "failures"],
"properties": {
"shadow_score_spec_version": {
"type": "string",
"description": "Version of the Shadow Score Spec this report conforms to",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"report": {
"type": "object",
"required": ["shadow_score", "level"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this run/report"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp of report generation"
},
"specification": {
"type": "string",
"description": "Path or identifier of the specification document"
},
"shadow_score": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Computed Shadow Score as a percentage"
},
"level": {
"type": "string",
"enum": ["perfect", "minor", "moderate", "significant", "critical"],
"description": "Shadow Score classification level"
},
"sealed_hash": {
"type": "string",
"description": "SHA-256 hash of sealed test directory for tamper evidence"
}
}
},
"sealed_tests": {
"type": "object",
"required": ["total", "passed", "failed"],
"properties": {
"total": { "type": "integer", "minimum": 0 },
"passed": { "type": "integer", "minimum": 0 },
"failed": { "type": "integer", "minimum": 0 }
}
},
"open_tests": {
"type": "object",
"properties": {
"total": { "type": "integer", "minimum": 0 },
"passed": { "type": "integer", "minimum": 0 },
"failed": { "type": "integer", "minimum": 0 }
}
},
"failures": {
"type": "array",
"items": {
"type": "object",
"required": ["test_name", "message"],
"properties": {
"test_name": {
"type": "string",
"description": "Name of the failing sealed test"
},
"category": {
"type": "string",
"enum": ["happy_path", "edge_case", "error_handling", "security", "unknown"],
"description": "Test category classification"
},
"expected": {
"type": "string",
"description": "Expected result"
},
"actual": {
"type": "string",
"description": "Actual result"
},
"message": {
"type": "string",
"description": "Human-readable failure description (shared during hardening)"
}
}
}
},
"coverage_comparison": {
"type": "object",
"description": "Category-level comparison between sealed and open tests",
"properties": {
"happy_path": { "$ref": "#/definitions/category_comparison" },
"edge_case": { "$ref": "#/definitions/category_comparison" },
"error_handling": { "$ref": "#/definitions/category_comparison" },
"security": { "$ref": "#/definitions/category_comparison" }
}
},
"hardening": {
"type": "object",
"properties": {
"cycles_completed": { "type": "integer", "minimum": 0 },
"max_cycles": { "type": "integer", "minimum": 1 },
"initial_shadow_score": { "type": "number", "minimum": 0, "maximum": 100 },
"final_shadow_score": { "type": "number", "minimum": 0, "maximum": 100 }
}
}
},
"definitions": {
"category_comparison": {
"type": "object",
"properties": {
"open": { "type": "integer", "minimum": 0 },
"sealed": { "type": "integer", "minimum": 0 },
"delta": { "type": "integer" }
}
}
}
}