@decantr/registry 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,255 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://decantr.ai/schemas/content-health-report.v1.json",
4
+ "title": "Decantr Content Health Report",
5
+ "type": "object",
6
+ "required": [
7
+ "$schema",
8
+ "generatedAt",
9
+ "contentRoot",
10
+ "status",
11
+ "score",
12
+ "summary",
13
+ "content",
14
+ "references",
15
+ "quality",
16
+ "ci",
17
+ "findings"
18
+ ],
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "$schema": {
22
+ "const": "https://decantr.ai/schemas/content-health-report.v1.json"
23
+ },
24
+ "generatedAt": {
25
+ "type": "string",
26
+ "format": "date-time"
27
+ },
28
+ "contentRoot": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "status": {
33
+ "enum": [
34
+ "healthy",
35
+ "warning",
36
+ "error"
37
+ ]
38
+ },
39
+ "score": {
40
+ "type": "integer",
41
+ "minimum": 0,
42
+ "maximum": 100
43
+ },
44
+ "summary": {
45
+ "type": "object",
46
+ "required": [
47
+ "itemCount",
48
+ "validCount",
49
+ "errorCount",
50
+ "warnCount",
51
+ "infoCount",
52
+ "findingCount",
53
+ "ignoredCount",
54
+ "contentDirectoryCount"
55
+ ],
56
+ "additionalProperties": false,
57
+ "properties": {
58
+ "itemCount": { "type": "integer", "minimum": 0 },
59
+ "validCount": { "type": "integer", "minimum": 0 },
60
+ "errorCount": { "type": "integer", "minimum": 0 },
61
+ "warnCount": { "type": "integer", "minimum": 0 },
62
+ "infoCount": { "type": "integer", "minimum": 0 },
63
+ "findingCount": { "type": "integer", "minimum": 0 },
64
+ "ignoredCount": { "type": "integer", "minimum": 0 },
65
+ "contentDirectoryCount": { "type": "integer", "minimum": 0 }
66
+ }
67
+ },
68
+ "content": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object",
72
+ "required": [
73
+ "type",
74
+ "directory",
75
+ "itemCount",
76
+ "validCount",
77
+ "errorCount",
78
+ "warnCount",
79
+ "infoCount",
80
+ "ignoredCount"
81
+ ],
82
+ "additionalProperties": false,
83
+ "properties": {
84
+ "type": { "$ref": "#/$defs/contentType" },
85
+ "directory": { "$ref": "#/$defs/apiContentType" },
86
+ "itemCount": { "type": "integer", "minimum": 0 },
87
+ "validCount": { "type": "integer", "minimum": 0 },
88
+ "errorCount": { "type": "integer", "minimum": 0 },
89
+ "warnCount": { "type": "integer", "minimum": 0 },
90
+ "infoCount": { "type": "integer", "minimum": 0 },
91
+ "ignoredCount": { "type": "integer", "minimum": 0 }
92
+ }
93
+ }
94
+ },
95
+ "references": {
96
+ "type": "object",
97
+ "required": [
98
+ "checked",
99
+ "missing",
100
+ "missingByType"
101
+ ],
102
+ "additionalProperties": false,
103
+ "properties": {
104
+ "checked": { "type": "integer", "minimum": 0 },
105
+ "missing": { "type": "integer", "minimum": 0 },
106
+ "missingByType": {
107
+ "type": "object",
108
+ "required": [
109
+ "pattern",
110
+ "theme",
111
+ "blueprint",
112
+ "archetype",
113
+ "shell"
114
+ ],
115
+ "additionalProperties": false,
116
+ "properties": {
117
+ "pattern": { "type": "integer", "minimum": 0 },
118
+ "theme": { "type": "integer", "minimum": 0 },
119
+ "blueprint": { "type": "integer", "minimum": 0 },
120
+ "archetype": { "type": "integer", "minimum": 0 },
121
+ "shell": { "type": "integer", "minimum": 0 }
122
+ }
123
+ }
124
+ }
125
+ },
126
+ "quality": {
127
+ "type": "object",
128
+ "required": [
129
+ "patternVisualBriefCoverage",
130
+ "patternInteractionCoverage",
131
+ "themeDecoratorCoverage",
132
+ "blueprintPersonalityCoverage",
133
+ "blueprintVoiceCoverage",
134
+ "archetypePageBriefCoverage"
135
+ ],
136
+ "additionalProperties": false,
137
+ "properties": {
138
+ "patternVisualBriefCoverage": { "$ref": "#/$defs/percentage" },
139
+ "patternInteractionCoverage": { "$ref": "#/$defs/percentage" },
140
+ "themeDecoratorCoverage": { "$ref": "#/$defs/percentage" },
141
+ "blueprintPersonalityCoverage": { "$ref": "#/$defs/percentage" },
142
+ "blueprintVoiceCoverage": { "$ref": "#/$defs/percentage" },
143
+ "archetypePageBriefCoverage": { "$ref": "#/$defs/percentage" }
144
+ }
145
+ },
146
+ "ci": {
147
+ "type": "object",
148
+ "required": [
149
+ "recommendedCommand",
150
+ "failOn"
151
+ ],
152
+ "additionalProperties": false,
153
+ "properties": {
154
+ "recommendedCommand": { "type": "string", "minLength": 1 },
155
+ "failOn": {
156
+ "enum": [
157
+ "error",
158
+ "warn",
159
+ "none"
160
+ ]
161
+ }
162
+ }
163
+ },
164
+ "findings": {
165
+ "type": "array",
166
+ "items": { "$ref": "#/$defs/finding" }
167
+ }
168
+ },
169
+ "$defs": {
170
+ "contentType": {
171
+ "enum": [
172
+ "pattern",
173
+ "theme",
174
+ "blueprint",
175
+ "archetype",
176
+ "shell"
177
+ ]
178
+ },
179
+ "apiContentType": {
180
+ "enum": [
181
+ "patterns",
182
+ "themes",
183
+ "blueprints",
184
+ "archetypes",
185
+ "shells"
186
+ ]
187
+ },
188
+ "percentage": {
189
+ "type": "number",
190
+ "minimum": 0,
191
+ "maximum": 1
192
+ },
193
+ "severity": {
194
+ "enum": [
195
+ "error",
196
+ "warn",
197
+ "info"
198
+ ]
199
+ },
200
+ "finding": {
201
+ "type": "object",
202
+ "required": [
203
+ "id",
204
+ "source",
205
+ "category",
206
+ "severity",
207
+ "message",
208
+ "evidence",
209
+ "remediation"
210
+ ],
211
+ "additionalProperties": false,
212
+ "properties": {
213
+ "id": { "type": "string", "minLength": 1 },
214
+ "source": {
215
+ "enum": [
216
+ "schema",
217
+ "reference",
218
+ "quality",
219
+ "coverage",
220
+ "content"
221
+ ]
222
+ },
223
+ "category": { "type": "string", "minLength": 1 },
224
+ "severity": { "$ref": "#/$defs/severity" },
225
+ "message": { "type": "string", "minLength": 1 },
226
+ "evidence": {
227
+ "type": "array",
228
+ "items": { "type": "string" }
229
+ },
230
+ "file": { "type": "string" },
231
+ "type": { "$ref": "#/$defs/contentType" },
232
+ "itemId": { "type": "string" },
233
+ "rule": { "type": "string" },
234
+ "suggestedFix": { "type": "string" },
235
+ "remediation": {
236
+ "type": "object",
237
+ "required": [
238
+ "summary",
239
+ "prompt",
240
+ "commands"
241
+ ],
242
+ "additionalProperties": false,
243
+ "properties": {
244
+ "summary": { "type": "string", "minLength": 1 },
245
+ "prompt": { "type": "string", "minLength": 1 },
246
+ "commands": {
247
+ "type": "array",
248
+ "items": { "type": "string", "minLength": 1 }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
@@ -42,6 +42,35 @@
42
42
  "null"
43
43
  ]
44
44
  },
45
+ "thumbnail": {
46
+ "anyOf": [
47
+ {
48
+ "type": "object",
49
+ "required": [
50
+ "src",
51
+ "alt"
52
+ ],
53
+ "properties": {
54
+ "src": {
55
+ "$ref": "https://decantr.ai/schemas/common.v1.json#/$defs/nonEmptyString"
56
+ },
57
+ "alt": {
58
+ "$ref": "https://decantr.ai/schemas/common.v1.json#/$defs/nonEmptyString"
59
+ },
60
+ "width": {
61
+ "type": "number"
62
+ },
63
+ "height": {
64
+ "type": "number"
65
+ }
66
+ },
67
+ "additionalProperties": false
68
+ },
69
+ {
70
+ "type": "null"
71
+ }
72
+ ]
73
+ },
45
74
  "url": {
46
75
  "type": [
47
76
  "string",