tevra-design-kit 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/LICENSE +21 -0
  2. package/PROVENANCE.md +18 -0
  3. package/README.md +251 -2
  4. package/SKILL.md +20 -0
  5. package/THIRD_PARTY_NOTICES.md +23 -0
  6. package/adapters/claude-code/CLAUDE.md +14 -0
  7. package/adapters/codex/AGENTS.md +5 -0
  8. package/adapters/cursor/README.md +5 -0
  9. package/adapters/gemini-cli/README.md +5 -0
  10. package/adapters/github-copilot/README.md +5 -0
  11. package/adapters/kiro/README.md +5 -0
  12. package/adapters/opencode/README.md +5 -0
  13. package/adapters/windsurf/README.md +5 -0
  14. package/dist/packages/cli/src/arguments.d.ts +9 -0
  15. package/dist/packages/cli/src/arguments.js +58 -0
  16. package/dist/packages/cli/src/arguments.js.map +1 -0
  17. package/dist/packages/cli/src/index.d.ts +2 -0
  18. package/dist/packages/cli/src/index.js +132 -0
  19. package/dist/packages/cli/src/index.js.map +1 -0
  20. package/dist/packages/cli/src/project-commands.d.ts +4 -0
  21. package/dist/packages/cli/src/project-commands.js +137 -0
  22. package/dist/packages/cli/src/project-commands.js.map +1 -0
  23. package/dist/packages/cli/src/run-command.d.ts +2 -0
  24. package/dist/packages/cli/src/run-command.js +35 -0
  25. package/dist/packages/cli/src/run-command.js.map +1 -0
  26. package/dist/packages/cli/src/visual-commands.d.ts +5 -0
  27. package/dist/packages/cli/src/visual-commands.js +73 -0
  28. package/dist/packages/cli/src/visual-commands.js.map +1 -0
  29. package/dist/packages/cli/src/workflow-commands.d.ts +2 -0
  30. package/dist/packages/cli/src/workflow-commands.js +73 -0
  31. package/dist/packages/cli/src/workflow-commands.js.map +1 -0
  32. package/dist/packages/contracts/src/index.d.ts +181 -0
  33. package/dist/packages/contracts/src/index.js +3 -0
  34. package/dist/packages/contracts/src/index.js.map +1 -0
  35. package/dist/packages/core/src/analyze.d.ts +6 -0
  36. package/dist/packages/core/src/analyze.js +46 -0
  37. package/dist/packages/core/src/analyze.js.map +1 -0
  38. package/dist/packages/core/src/config.d.ts +4 -0
  39. package/dist/packages/core/src/config.js +39 -0
  40. package/dist/packages/core/src/config.js.map +1 -0
  41. package/dist/packages/core/src/install.d.ts +13 -0
  42. package/dist/packages/core/src/install.js +69 -0
  43. package/dist/packages/core/src/install.js.map +1 -0
  44. package/dist/packages/core/src/router.d.ts +12 -0
  45. package/dist/packages/core/src/router.js +90 -0
  46. package/dist/packages/core/src/router.js.map +1 -0
  47. package/dist/packages/core/src/search.d.ts +12 -0
  48. package/dist/packages/core/src/search.js +31 -0
  49. package/dist/packages/core/src/search.js.map +1 -0
  50. package/dist/packages/core/src/skills.d.ts +7 -0
  51. package/dist/packages/core/src/skills.js +36 -0
  52. package/dist/packages/core/src/skills.js.map +1 -0
  53. package/dist/packages/core/src/workflow.d.ts +3 -0
  54. package/dist/packages/core/src/workflow.js +73 -0
  55. package/dist/packages/core/src/workflow.js.map +1 -0
  56. package/dist/packages/design-context/src/index.d.ts +5 -0
  57. package/dist/packages/design-context/src/index.js +41 -0
  58. package/dist/packages/design-context/src/index.js.map +1 -0
  59. package/dist/packages/design-context/src/migrate.d.ts +2 -0
  60. package/dist/packages/design-context/src/migrate.js +27 -0
  61. package/dist/packages/design-context/src/migrate.js.map +1 -0
  62. package/dist/packages/design-context/src/tokens.d.ts +8 -0
  63. package/dist/packages/design-context/src/tokens.js +65 -0
  64. package/dist/packages/design-context/src/tokens.js.map +1 -0
  65. package/dist/packages/design-context/src/validation.d.ts +1 -0
  66. package/dist/packages/design-context/src/validation.js +22 -0
  67. package/dist/packages/design-context/src/validation.js.map +1 -0
  68. package/dist/packages/design-memory/src/index.d.ts +16 -0
  69. package/dist/packages/design-memory/src/index.js +47 -0
  70. package/dist/packages/design-memory/src/index.js.map +1 -0
  71. package/dist/packages/filesystem/src/index.d.ts +8 -0
  72. package/dist/packages/filesystem/src/index.js +83 -0
  73. package/dist/packages/filesystem/src/index.js.map +1 -0
  74. package/dist/packages/filesystem/src/resources.d.ts +1 -0
  75. package/dist/packages/filesystem/src/resources.js +13 -0
  76. package/dist/packages/filesystem/src/resources.js.map +1 -0
  77. package/dist/packages/performance-qa/src/index.d.ts +24 -0
  78. package/dist/packages/performance-qa/src/index.js +77 -0
  79. package/dist/packages/performance-qa/src/index.js.map +1 -0
  80. package/dist/packages/quality-engine/src/html.d.ts +2 -0
  81. package/dist/packages/quality-engine/src/html.js +15 -0
  82. package/dist/packages/quality-engine/src/html.js.map +1 -0
  83. package/dist/packages/quality-engine/src/index.d.ts +3 -0
  84. package/dist/packages/quality-engine/src/index.js +45 -0
  85. package/dist/packages/quality-engine/src/index.js.map +1 -0
  86. package/dist/packages/registry/src/index.d.ts +49 -0
  87. package/dist/packages/registry/src/index.js +132 -0
  88. package/dist/packages/registry/src/index.js.map +1 -0
  89. package/dist/packages/visual-testing/src/capture.d.ts +12 -0
  90. package/dist/packages/visual-testing/src/capture.js +174 -0
  91. package/dist/packages/visual-testing/src/capture.js.map +1 -0
  92. package/dist/packages/visual-testing/src/checks.d.ts +3 -0
  93. package/dist/packages/visual-testing/src/checks.js +17 -0
  94. package/dist/packages/visual-testing/src/checks.js.map +1 -0
  95. package/dist/packages/visual-testing/src/compare.d.ts +12 -0
  96. package/dist/packages/visual-testing/src/compare.js +85 -0
  97. package/dist/packages/visual-testing/src/compare.js.map +1 -0
  98. package/dist/packages/visual-testing/src/types.d.ts +49 -0
  99. package/dist/packages/visual-testing/src/types.js +2 -0
  100. package/dist/packages/visual-testing/src/types.js.map +1 -0
  101. package/dist/packages/workflow-engine/src/index.d.ts +11 -0
  102. package/dist/packages/workflow-engine/src/index.js +51 -0
  103. package/dist/packages/workflow-engine/src/index.js.map +1 -0
  104. package/docs/agents.md +36 -0
  105. package/docs/architecture.md +86 -0
  106. package/docs/configuration.md +109 -0
  107. package/docs/contributing.md +75 -0
  108. package/docs/security.md +42 -0
  109. package/docs/usage.md +142 -0
  110. package/package.json +85 -4
  111. package/references/accessibility/manual-checklist.md +3 -0
  112. package/references/color-systems/semantic-color.md +3 -0
  113. package/references/design-principles/decision-making.md +3 -0
  114. package/references/frameworks/nextjs.md +3 -0
  115. package/references/frameworks/react-native-expo.md +3 -0
  116. package/references/frameworks/react.md +3 -0
  117. package/references/frameworks/sveltekit.md +3 -0
  118. package/references/frameworks/vue.md +3 -0
  119. package/references/typography/scales.md +3 -0
  120. package/references/ux-patterns/README.md +7 -0
  121. package/references/ux-patterns/UPSTREAM-LICENSE.txt +21 -0
  122. package/references/ux-patterns/catalog.json +221 -0
  123. package/registry/capability-ownership.json +191 -0
  124. package/registry/skills.json +764 -0
  125. package/registry/sources.json +159 -0
  126. package/rubrics/quality-rubric.md +24 -0
  127. package/schemas/capability-ownership.schema.json +69 -0
  128. package/schemas/capture-manifest.schema.json +209 -0
  129. package/schemas/checks.schema.json +83 -0
  130. package/schemas/comparison.schema.json +154 -0
  131. package/schemas/config.schema.json +297 -0
  132. package/schemas/design-context.schema.json +651 -0
  133. package/schemas/design-context.v2.schema.json +395 -0
  134. package/schemas/handoff.schema.json +135 -0
  135. package/schemas/legacy/design-context.master-v1.schema.json +167 -0
  136. package/schemas/legacy/design-context.v1.schema.json +36 -0
  137. package/schemas/memory.schema.json +69 -0
  138. package/schemas/plan.schema.json +139 -0
  139. package/schemas/quality-report.schema.json +151 -0
  140. package/schemas/skill-registry.schema.json +222 -0
  141. package/schemas/sources.schema.json +129 -0
  142. package/skills/accessibility-qa/LICENSE +21 -0
  143. package/skills/accessibility-qa/SKILL.md +56 -0
  144. package/skills/accessibility-qa/references/guide.md +3 -0
  145. package/skills/browser-testing/LICENSE +21 -0
  146. package/skills/browser-testing/SKILL.md +35 -0
  147. package/skills/browser-testing/references/guide.md +11 -0
  148. package/skills/design-direction/LICENSE +21 -0
  149. package/skills/design-direction/SKILL.md +56 -0
  150. package/skills/design-direction/references/guide.md +3 -0
  151. package/skills/design-research/LICENSE +21 -0
  152. package/skills/design-research/SKILL.md +56 -0
  153. package/skills/design-research/references/guide.md +3 -0
  154. package/skills/design-system/LICENSE +21 -0
  155. package/skills/design-system/SKILL.md +56 -0
  156. package/skills/design-system/references/guide.md +3 -0
  157. package/skills/frontend-review/LICENSE +21 -0
  158. package/skills/frontend-review/SKILL.md +35 -0
  159. package/skills/frontend-review/references/guide.md +11 -0
  160. package/skills/interaction-motion/LICENSE +21 -0
  161. package/skills/interaction-motion/SKILL.md +56 -0
  162. package/skills/interaction-motion/references/guide.md +3 -0
  163. package/skills/performance-qa/LICENSE +21 -0
  164. package/skills/performance-qa/SKILL.md +35 -0
  165. package/skills/performance-qa/references/guide.md +9 -0
  166. package/skills/responsive-design/LICENSE +21 -0
  167. package/skills/responsive-design/SKILL.md +56 -0
  168. package/skills/responsive-design/references/guide.md +3 -0
  169. package/skills/ui-builder/LICENSE +21 -0
  170. package/skills/ui-builder/SKILL.md +58 -0
  171. package/skills/ui-builder/references/guide.md +3 -0
  172. package/skills/ui-builder/references/nextjs.md +3 -0
  173. package/skills/ui-builder/references/react-native-expo.md +3 -0
  174. package/skills/ui-builder/references/react.md +3 -0
  175. package/skills/ui-builder/references/sveltekit.md +3 -0
  176. package/skills/ui-builder/references/vue.md +3 -0
  177. package/skills/ui-redesign/LICENSE +21 -0
  178. package/skills/ui-redesign/SKILL.md +56 -0
  179. package/skills/ui-redesign/references/guide.md +3 -0
  180. package/skills/visual-review/LICENSE +21 -0
  181. package/skills/visual-review/SKILL.md +56 -0
  182. package/skills/visual-review/references/guide.md +7 -0
  183. package/templates/direction-decision.md +45 -0
  184. package/templates/research-brief.md +56 -0
  185. package/templates/visual-review.md +46 -0
@@ -0,0 +1,159 @@
1
+ {
2
+ "version": 1,
3
+ "sources": [
4
+ {
5
+ "id": "taste-skill",
6
+ "repository": "https://github.com/Leonxlnx/taste-skill",
7
+ "revision": "98565e65bc3274ddf6eb0838734341714057178b",
8
+ "revisionStatus": "content-verified",
9
+ "inspectedRef": "98565e65bc3274ddf6eb0838734341714057178b",
10
+ "inspectedAt": "2026-10-23",
11
+ "license": "MIT",
12
+ "licenseStatus": "root-text-verified-on-main",
13
+ "declaredLicense": "MIT",
14
+ "copyright": "Copyright (c) 2026 Leonxlnx",
15
+ "reuse": "inspiration",
16
+ "inspectedPaths": [
17
+ "skills/taste-skill/SKILL.md",
18
+ "LICENSE"
19
+ ],
20
+ "evidence": [
21
+ "https://github.com/Leonxlnx/taste-skill/commits/main/",
22
+ "https://raw.githubusercontent.com/Leonxlnx/taste-skill/main/LICENSE"
23
+ ],
24
+ "excludedAssets": [
25
+ "logos",
26
+ "screenshots",
27
+ "fonts",
28
+ "remote-assets"
29
+ ],
30
+ "limitations": [
31
+ "Full recursive file-level license audit unavailable; no upstream assets or scripts vendored."
32
+ ]
33
+ },
34
+ {
35
+ "id": "ui-ux-pro-max",
36
+ "repository": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill",
37
+ "revision": "0720614e6e4e2c190f68ff4ab0a71faa0fa70b4a",
38
+ "revisionStatus": "discovered-content-unavailable",
39
+ "inspectedRef": "main",
40
+ "inspectedAt": "2026-10-23",
41
+ "license": "MIT",
42
+ "licenseStatus": "root-text-verified-on-main",
43
+ "declaredLicense": "MIT",
44
+ "copyright": "Copyright (c) 2024 Next Level Builder",
45
+ "reuse": "adapted",
46
+ "inspectedPaths": [
47
+ "src/ui-ux-pro-max/scripts/core.py",
48
+ "LICENSE"
49
+ ],
50
+ "evidence": [
51
+ "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/commits/main/",
52
+ "https://raw.githubusercontent.com/nextlevelbuilder/ui-ux-pro-max-skill/main/LICENSE"
53
+ ],
54
+ "excludedAssets": [
55
+ "logos",
56
+ "screenshots",
57
+ "fonts",
58
+ "remote-assets"
59
+ ],
60
+ "limitations": [
61
+ "Full recursive file-level license audit unavailable; no upstream assets or scripts vendored.",
62
+ "Pinned raw content returned cache miss; main inspection is not attributed to this SHA."
63
+ ]
64
+ },
65
+ {
66
+ "id": "vercel-agent-skills",
67
+ "repository": "https://github.com/vercel-labs/agent-skills",
68
+ "revision": "050e24cd7b2d54cef2e9f2f6a39da152dd70fbb5",
69
+ "revisionStatus": "discovered-content-unavailable",
70
+ "inspectedRef": "main",
71
+ "inspectedAt": "2026-10-23",
72
+ "license": null,
73
+ "licenseStatus": "metadata-only",
74
+ "declaredLicense": "MIT",
75
+ "copyright": null,
76
+ "reuse": "inspiration",
77
+ "inspectedPaths": [
78
+ "skills/react-best-practices/SKILL.md",
79
+ "LICENSE"
80
+ ],
81
+ "evidence": [
82
+ "https://github.com/vercel-labs/agent-skills/commits/main/",
83
+ "https://raw.githubusercontent.com/vercel-labs/agent-skills/main/skills/react-best-practices/SKILL.md"
84
+ ],
85
+ "excludedAssets": [
86
+ "logos",
87
+ "screenshots",
88
+ "fonts",
89
+ "remote-assets"
90
+ ],
91
+ "limitations": [
92
+ "Full recursive file-level license audit unavailable; no upstream assets or scripts vendored.",
93
+ "Pinned raw content returned cache miss; main inspection is not attributed to this SHA."
94
+ ]
95
+ },
96
+ {
97
+ "id": "web-quality-skills",
98
+ "repository": "https://github.com/addyosmani/web-quality-skills",
99
+ "revision": "c3cd7e0443125c55237d50105cdc8454e9e8f83d",
100
+ "revisionStatus": "discovered-content-unavailable",
101
+ "inspectedRef": "main",
102
+ "inspectedAt": "2026-10-23",
103
+ "license": "MIT",
104
+ "licenseStatus": "root-text-verified-on-main",
105
+ "declaredLicense": "MIT",
106
+ "copyright": "Copyright (c) 2026 Addy Osmani",
107
+ "reuse": "inspiration",
108
+ "inspectedPaths": [
109
+ "skills/performance/SKILL.md",
110
+ "LICENSE"
111
+ ],
112
+ "evidence": [
113
+ "https://github.com/addyosmani/web-quality-skills/commits/main/",
114
+ "https://raw.githubusercontent.com/addyosmani/web-quality-skills/main/LICENSE"
115
+ ],
116
+ "excludedAssets": [
117
+ "logos",
118
+ "screenshots",
119
+ "fonts",
120
+ "remote-assets"
121
+ ],
122
+ "limitations": [
123
+ "Full recursive file-level license audit unavailable; no upstream assets or scripts vendored.",
124
+ "Pinned raw content returned cache miss; main inspection is not attributed to this SHA."
125
+ ]
126
+ },
127
+ {
128
+ "id": "playwright",
129
+ "repository": "https://github.com/microsoft/playwright",
130
+ "revision": "14c2dcf1ec955532aa861ecd039b23b9acc53a97",
131
+ "revisionStatus": "discovered-content-unavailable",
132
+ "inspectedRef": "main",
133
+ "inspectedAt": "2026-10-23",
134
+ "license": "Apache-2.0",
135
+ "licenseStatus": "root-text-verified-on-main",
136
+ "declaredLicense": "Apache-2.0",
137
+ "copyright": "Copyright (c) Microsoft Corporation",
138
+ "reuse": "dependency",
139
+ "inspectedPaths": [
140
+ "packages/playwright/package.json",
141
+ "LICENSE"
142
+ ],
143
+ "evidence": [
144
+ "https://github.com/microsoft/playwright/commits/main/",
145
+ "https://raw.githubusercontent.com/microsoft/playwright/main/LICENSE"
146
+ ],
147
+ "excludedAssets": [
148
+ "logos",
149
+ "screenshots",
150
+ "fonts",
151
+ "remote-assets"
152
+ ],
153
+ "limitations": [
154
+ "Full recursive file-level license audit unavailable; no upstream assets or scripts vendored.",
155
+ "Pinned raw content returned cache miss; main inspection is not attributed to this SHA."
156
+ ]
157
+ }
158
+ ]
159
+ }
@@ -0,0 +1,24 @@
1
+ # Evidence-based quality rubric
2
+
3
+ | Category | Default weight | Evidence |
4
+ | --- | ---: | --- |
5
+ | Visual hierarchy | 15 | Purpose and next action clear at tested widths |
6
+ | Typography | 10 | Readable roles, locale glyphs and content fit |
7
+ | Layout and spacing | 15 | Deliberate grouping without clipping |
8
+ | Design consistency | 15 | Approved tokens, components and states |
9
+ | Responsive behavior | 15 | Real viewport/state evidence |
10
+ | Accessibility | 15 | Automated plus executed manual checks |
11
+ | Interaction quality | 10 | Real behavior, feedback and recovery |
12
+ | Performance | 5 | Measurements or clearly bounded source evidence |
13
+
14
+ Weights are configurable and total 100. Scores 0–4 describe judgment: 0 task blocked, 1 major issues, 2 partial usability, 3 scoped criteria met, 4 demonstrated strengths. Every executed check needs evidence. Scores below 3 require specific findings and corrections. Missing categories remain unscored.
15
+
16
+ Separate deterministic tests, automated heuristics, AI-assisted judgment and human approval. The engine uses the lowest submitted score per category, weights it on a 100-point scale, and defaults to threshold 75. Arithmetic is deterministic; aesthetic judgments remain subjective. Explicit minScore 0 allows an automation-only gate while keeping missing scores unscored.
17
+
18
+ Failed critical checks always block. Required IDs must actually pass: visual-diff, axe, overflow and functional-tests by default. Missing/unverified required checks block. Pixel changes may be intentional; review and approve them before replacing a baseline. Never average away functional failures or severe accessibility barriers.
19
+
20
+ Unexecuted screen-reader, native, motion and performance checks stay visible. Automated PASS never establishes complete WCAG compliance.
21
+
22
+ ## Default weights
23
+
24
+ Hierarchy 15, typography 10, layout 15, consistency 10, responsive 15, accessibility 15, functional 10 and performance 10. Legacy `interaction` scores remain accepted for existing configurations with a default weight of zero. Existing project weights are preserved. Performance metric checks have no subjective design score. Required/critical failures and missing required evidence still block PASS regardless of aggregate score.
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "required": [
6
+ "version",
7
+ "capabilities"
8
+ ],
9
+ "properties": {
10
+ "version": {
11
+ "const": 1
12
+ },
13
+ "capabilities": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "required": [
19
+ "id",
20
+ "primary",
21
+ "supporting",
22
+ "stage",
23
+ "constraints",
24
+ "validation"
25
+ ],
26
+ "properties": {
27
+ "id": {
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "primary": {
32
+ "type": [
33
+ "string",
34
+ "null"
35
+ ]
36
+ },
37
+ "supporting": {
38
+ "type": "array",
39
+ "items": {
40
+ "type": "string",
41
+ "minLength": 1
42
+ },
43
+ "uniqueItems": true
44
+ },
45
+ "stage": {
46
+ "type": "integer",
47
+ "minimum": 1
48
+ },
49
+ "constraints": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "minLength": 1
54
+ },
55
+ "uniqueItems": true
56
+ },
57
+ "validation": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string",
61
+ "minLength": 1
62
+ },
63
+ "uniqueItems": true
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,209 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "version": {
7
+ "const": 1
8
+ },
9
+ "kind": {
10
+ "enum": [
11
+ "baseline",
12
+ "current"
13
+ ]
14
+ },
15
+ "createdAt": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "format": "date-time"
19
+ },
20
+ "configHash": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "contextRevision": {
25
+ "type": "integer",
26
+ "minimum": 0,
27
+ "maximum": 1000000
28
+ },
29
+ "browserVersion": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "entries": {
34
+ "type": "array",
35
+ "items": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "properties": {
39
+ "id": {
40
+ "type": "string",
41
+ "pattern": "^[a-z0-9-]+$"
42
+ },
43
+ "route": {
44
+ "type": "string",
45
+ "minLength": 1
46
+ },
47
+ "state": {
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ "viewport": {
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "properties": {
55
+ "name": {
56
+ "type": "string",
57
+ "minLength": 1
58
+ },
59
+ "width": {
60
+ "type": "integer",
61
+ "minimum": 240,
62
+ "maximum": 7680
63
+ },
64
+ "height": {
65
+ "type": "integer",
66
+ "minimum": 240,
67
+ "maximum": 4320
68
+ }
69
+ },
70
+ "required": [
71
+ "name",
72
+ "width",
73
+ "height"
74
+ ]
75
+ },
76
+ "file": {
77
+ "type": "string",
78
+ "minLength": 1
79
+ },
80
+ "masks": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string",
84
+ "minLength": 1
85
+ },
86
+ "minItems": 0
87
+ },
88
+ "overflow": {
89
+ "type": "array",
90
+ "items": {
91
+ "type": "string",
92
+ "minLength": 1
93
+ },
94
+ "minItems": 0
95
+ },
96
+ "smallTargets": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "string",
100
+ "minLength": 1
101
+ },
102
+ "minItems": 0
103
+ },
104
+ "axeViolations": {
105
+ "type": "array",
106
+ "items": {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "properties": {
110
+ "id": {
111
+ "type": "string",
112
+ "minLength": 1
113
+ },
114
+ "impact": {
115
+ "type": "string",
116
+ "minLength": 1
117
+ },
118
+ "targets": {
119
+ "type": "array",
120
+ "items": {
121
+ "type": "string",
122
+ "minLength": 1
123
+ },
124
+ "minItems": 0
125
+ },
126
+ "help": {
127
+ "type": "string",
128
+ "minLength": 1
129
+ }
130
+ },
131
+ "required": [
132
+ "id",
133
+ "impact",
134
+ "targets",
135
+ "help"
136
+ ]
137
+ },
138
+ "minItems": 0
139
+ },
140
+ "incompleteRules": {
141
+ "type": "array",
142
+ "items": {
143
+ "type": "string",
144
+ "minLength": 1
145
+ },
146
+ "minItems": 0
147
+ },
148
+ "pageErrors": {
149
+ "type": "array",
150
+ "items": {
151
+ "type": "string",
152
+ "minLength": 1
153
+ },
154
+ "minItems": 0
155
+ },
156
+ "imageHash": {
157
+ "type": "string",
158
+ "pattern": "^[a-f0-9]{64}$"
159
+ },
160
+ "consoleErrors": {
161
+ "type": "array",
162
+ "items": {
163
+ "type": "string"
164
+ }
165
+ },
166
+ "networkErrors": {
167
+ "type": "array",
168
+ "items": {
169
+ "type": "string"
170
+ }
171
+ },
172
+ "assertions": {
173
+ "type": "integer",
174
+ "minimum": 0
175
+ }
176
+ },
177
+ "required": [
178
+ "id",
179
+ "route",
180
+ "state",
181
+ "viewport",
182
+ "file",
183
+ "masks",
184
+ "overflow",
185
+ "smallTargets",
186
+ "axeViolations",
187
+ "incompleteRules",
188
+ "pageErrors",
189
+ "imageHash"
190
+ ]
191
+ },
192
+ "minItems": 1
193
+ },
194
+ "runId": {
195
+ "type": "string",
196
+ "minLength": 1
197
+ }
198
+ },
199
+ "required": [
200
+ "version",
201
+ "kind",
202
+ "createdAt",
203
+ "configHash",
204
+ "contextRevision",
205
+ "browserVersion",
206
+ "entries",
207
+ "runId"
208
+ ]
209
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "array",
4
+ "items": {
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "id": {
9
+ "type": "string",
10
+ "minLength": 1
11
+ },
12
+ "category": {
13
+ "enum": [
14
+ "hierarchy",
15
+ "typography",
16
+ "layout",
17
+ "consistency",
18
+ "responsive",
19
+ "accessibility",
20
+ "interaction",
21
+ "performance",
22
+ "functional"
23
+ ]
24
+ },
25
+ "kind": {
26
+ "enum": [
27
+ "deterministic",
28
+ "heuristic",
29
+ "ai",
30
+ "human"
31
+ ]
32
+ },
33
+ "status": {
34
+ "enum": [
35
+ "passed",
36
+ "failed",
37
+ "unverified"
38
+ ]
39
+ },
40
+ "severity": {
41
+ "enum": [
42
+ "critical",
43
+ "major",
44
+ "minor"
45
+ ]
46
+ },
47
+ "score": {
48
+ "type": "number",
49
+ "minimum": 0,
50
+ "maximum": 4
51
+ },
52
+ "evidence": {
53
+ "type": "array",
54
+ "items": {
55
+ "type": "string",
56
+ "minLength": 1
57
+ },
58
+ "minItems": 0
59
+ },
60
+ "issue": {
61
+ "type": "string"
62
+ },
63
+ "component": {
64
+ "type": "string"
65
+ },
66
+ "correction": {
67
+ "type": "string"
68
+ }
69
+ },
70
+ "required": [
71
+ "id",
72
+ "category",
73
+ "kind",
74
+ "status",
75
+ "severity",
76
+ "evidence",
77
+ "issue",
78
+ "component",
79
+ "correction"
80
+ ]
81
+ },
82
+ "minItems": 0
83
+ }
@@ -0,0 +1,154 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "version": {
7
+ "const": 1
8
+ },
9
+ "createdAt": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "format": "date-time"
13
+ },
14
+ "comparisons": {
15
+ "type": "array",
16
+ "items": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "properties": {
20
+ "id": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "ratio": {
25
+ "type": "number",
26
+ "minimum": 0,
27
+ "maximum": 1
28
+ },
29
+ "differentPixels": {
30
+ "type": "integer",
31
+ "minimum": 0,
32
+ "maximum": 40000000
33
+ },
34
+ "sizeMismatch": {
35
+ "type": "boolean"
36
+ },
37
+ "diff": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "passed": {
42
+ "type": "boolean"
43
+ }
44
+ },
45
+ "required": [
46
+ "id",
47
+ "ratio",
48
+ "differentPixels",
49
+ "sizeMismatch",
50
+ "diff",
51
+ "passed"
52
+ ]
53
+ },
54
+ "minItems": 1
55
+ },
56
+ "checks": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "object",
60
+ "additionalProperties": false,
61
+ "properties": {
62
+ "id": {
63
+ "type": "string",
64
+ "minLength": 1
65
+ },
66
+ "category": {
67
+ "enum": [
68
+ "hierarchy",
69
+ "typography",
70
+ "layout",
71
+ "consistency",
72
+ "responsive",
73
+ "accessibility",
74
+ "interaction",
75
+ "performance"
76
+ ]
77
+ },
78
+ "kind": {
79
+ "enum": [
80
+ "deterministic",
81
+ "heuristic",
82
+ "ai",
83
+ "human"
84
+ ]
85
+ },
86
+ "status": {
87
+ "enum": [
88
+ "passed",
89
+ "failed",
90
+ "unverified"
91
+ ]
92
+ },
93
+ "severity": {
94
+ "enum": [
95
+ "critical",
96
+ "major",
97
+ "minor"
98
+ ]
99
+ },
100
+ "score": {
101
+ "type": "number",
102
+ "minimum": 0,
103
+ "maximum": 4
104
+ },
105
+ "evidence": {
106
+ "type": "array",
107
+ "items": {
108
+ "type": "string",
109
+ "minLength": 1
110
+ },
111
+ "minItems": 0
112
+ },
113
+ "issue": {
114
+ "type": "string"
115
+ },
116
+ "component": {
117
+ "type": "string"
118
+ },
119
+ "correction": {
120
+ "type": "string"
121
+ }
122
+ },
123
+ "required": [
124
+ "id",
125
+ "category",
126
+ "kind",
127
+ "status",
128
+ "severity",
129
+ "evidence",
130
+ "issue",
131
+ "component",
132
+ "correction"
133
+ ]
134
+ },
135
+ "minItems": 1
136
+ },
137
+ "currentManifestHash": {
138
+ "type": "string",
139
+ "minLength": 1
140
+ },
141
+ "settingsHash": {
142
+ "type": "string",
143
+ "minLength": 1
144
+ }
145
+ },
146
+ "required": [
147
+ "version",
148
+ "createdAt",
149
+ "comparisons",
150
+ "checks",
151
+ "currentManifestHash",
152
+ "settingsHash"
153
+ ]
154
+ }