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,3 @@
1
+ # Manual accessibility evidence
2
+
3
+ Record route/state, viewport, tool/version and result for keyboard order, visible focus, focus restoration, Escape behavior, zoom/reflow, announcements, content meaning and screen-reader navigation. Record target-size exceptions and contrast pairs requiring interpretation. Automated axe results do not establish full WCAG compliance. VoiceOver/TalkBack and native test tools are needed for native surfaces.
@@ -0,0 +1,3 @@
1
+ # Color contracts
2
+
3
+ Separate raw palette values from text, surface, focus, success and danger roles. Check real pairs with contrast tools in each theme and state. Information must not depend on color alone. Native and web color pipelines may differ; validate on the target device. Exported foundations are proposals, not a brand migration.
@@ -0,0 +1,3 @@
1
+ # Evidence and design judgment
2
+
3
+ Start with the user task, existing system and real content. Use references to answer a decision, not to collect styles. Prefer clear hierarchy, deliberate grouping and meaningful contrast. Aesthetic heuristics need context; gradients, cards, rounding and decorative motion are not universally wrong. Record why a direction serves the task and which decisions are approved.
@@ -0,0 +1,3 @@
1
+ # Next.js
2
+
3
+ Read the installed version and retain App/Pages Router ownership. Keep data access and secrets on the server; make the interactive client boundary as small as the task permits. Do not change caching semantics during a visual task. Provide loading/error states with project patterns. Build and run the actual application before browser review. Reference: https://nextjs.org/docs/app/getting-started/server-and-client-components
@@ -0,0 +1,3 @@
1
+ # React Native / Expo
2
+
3
+ Preserve native navigation and data ownership. Use accessibilityRole/Label/State, native focus conventions, safe-area APIs and platform reduced-motion settings. Check font scaling, touch targets and VoiceOver/TalkBack. Use device/simulator tooling such as existing native test suites; Playwright only validates web output, never native views. References: https://reactnative.dev/docs/accessibility and https://docs.expo.dev/guides/accessibility/
@@ -0,0 +1,3 @@
1
+ # React
2
+
3
+ Read project rules and its React best-practices skill first. Keep state with its owner; derive values during render. Effects synchronize external systems and require cleanup; abort stale requests. Use semantic inputs and stable IDs, preserve public props and data contracts. Test actual form and keyboard behavior. Reference: https://react.dev/learn/thinking-in-react
@@ -0,0 +1,3 @@
1
+ # SvelteKit
2
+
3
+ Use installed Svelte conventions. Svelte 5 runes belong in supported component/module contexts. Keep request-specific state out of shared server modules; preserve load/actions and SSR boundaries. Use form semantics and explicit error handling; clean up subscriptions. Build with the chosen adapter and check the served output. Reference: https://svelte.dev/docs/kit/creating-a-project
@@ -0,0 +1,3 @@
1
+ # Vue
2
+
3
+ Keep props/emits contracts stable, use component-owned reactive state and computed derivations, clean up watchers/listeners and preserve async cancellation. Label v-model controls and show validation errors without discarding input. Validate with the project build and browser interaction tests. Reference: https://vuejs.org/guide/essentials/forms.html
@@ -0,0 +1,3 @@
1
+ # Typography
2
+
3
+ Inventory installed fonts, licenses, supported glyphs and reading roles. Build body, label and heading roles around the content. Test Vietnamese diacritics, long words, numbers, zoom and fallback loading. Use fluid sizes with readable bounds or explicit project breakpoints. Do not load remote fonts merely to decorate a local workflow.
@@ -0,0 +1,7 @@
1
+ # Local research index
2
+
3
+ `catalog.json` is a deliberately small maintained knowledge base, not a claim to cover every industry. Each record has stable ID, category, search tags, recommendation, source, confidence and license. Three short UX recommendations are adapted from UI/UX Pro Max under its bundled MIT notice; other records are original Tevra guidance.
4
+
5
+ The TypeScript search engine builds document term counts and corpus document frequencies in memory on each query. Unicode word tokenization, case folding and BM25 (`k1=1.2`, `b=0.75`) rank exact terms; ties use stable IDs. No remote search, embedding service or persistent private index is used. Domain filtering occurs before scoring. Scores describe relevance only. Empty matches remain empty rather than inventing a recommendation.
6
+
7
+ Add/update records with provenance and focused tags, then add a meaningful relevance test. Current-trend claims need a separately dated source. Framework guidance is maintained in `references/frameworks/` and loaded only for the selected stack.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Next Level Builder
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,221 @@
1
+ [
2
+ {
3
+ "id": "upstream-active-navigation",
4
+ "category": "ux",
5
+ "tags": [
6
+ "navigation",
7
+ "active",
8
+ "current",
9
+ "điều hướng"
10
+ ],
11
+ "recommendation": "Indicate the current location beyond color alone.",
12
+ "source": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/main/src/ui-ux-pro-max/data/ux-guidelines.csv",
13
+ "confidence": "reported",
14
+ "license": "MIT"
15
+ },
16
+ {
17
+ "id": "upstream-reduced-motion",
18
+ "category": "motion",
19
+ "tags": [
20
+ "animation",
21
+ "motion",
22
+ "reduced",
23
+ "chuyển động"
24
+ ],
25
+ "recommendation": "Respect reduced-motion preferences while retaining feedback.",
26
+ "source": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/main/src/ui-ux-pro-max/data/ux-guidelines.csv",
27
+ "confidence": "reported",
28
+ "license": "MIT"
29
+ },
30
+ {
31
+ "id": "upstream-loading-feedback",
32
+ "category": "ux",
33
+ "tags": [
34
+ "loading",
35
+ "async",
36
+ "feedback",
37
+ "đang tải"
38
+ ],
39
+ "recommendation": "Show progress feedback while work is pending.",
40
+ "source": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/main/src/ui-ux-pro-max/data/ux-guidelines.csv",
41
+ "confidence": "reported",
42
+ "license": "MIT"
43
+ },
44
+ {
45
+ "id": "form-recovery",
46
+ "category": "ux",
47
+ "tags": [
48
+ "form",
49
+ "error",
50
+ "validation",
51
+ "mobile",
52
+ "biểu mẫu",
53
+ "lỗi"
54
+ ],
55
+ "recommendation": "Keep entered values, associate errors with fields, and focus a meaningful summary after failed submission.",
56
+ "source": "Tevra original",
57
+ "confidence": "inferred",
58
+ "license": "MIT"
59
+ },
60
+ {
61
+ "id": "commerce-choice",
62
+ "category": "product",
63
+ "tags": [
64
+ "commerce",
65
+ "pricing",
66
+ "card",
67
+ "checkout",
68
+ "thanh toán"
69
+ ],
70
+ "recommendation": "Present comparable plan terms and a clear purchase action while preserving currency and selected identifiers.",
71
+ "source": "Tevra original",
72
+ "confidence": "inferred",
73
+ "license": "MIT"
74
+ },
75
+ {
76
+ "id": "dashboard-decisions",
77
+ "category": "product",
78
+ "tags": [
79
+ "dashboard",
80
+ "analytics",
81
+ "chart",
82
+ "table",
83
+ "bảng"
84
+ ],
85
+ "recommendation": "Prioritize the decision users make from the data; provide an accessible tabular alternative to essential charts.",
86
+ "source": "Tevra original",
87
+ "confidence": "inferred",
88
+ "license": "MIT"
89
+ },
90
+ {
91
+ "id": "collaboration-status",
92
+ "category": "product",
93
+ "tags": [
94
+ "collaboration",
95
+ "editor",
96
+ "save",
97
+ "conflict"
98
+ ],
99
+ "recommendation": "Distinguish saved, pending and conflicted changes and provide recovery without discarding work.",
100
+ "source": "Tevra original",
101
+ "confidence": "inferred",
102
+ "license": "MIT"
103
+ },
104
+ {
105
+ "id": "editorial-reading",
106
+ "category": "typography",
107
+ "tags": [
108
+ "content",
109
+ "reading",
110
+ "serif",
111
+ "editorial",
112
+ "font"
113
+ ],
114
+ "recommendation": "Use a readable body face with deliberate measure and hierarchy; add a characterful heading face only when it serves the brand.",
115
+ "source": "Tevra original",
116
+ "confidence": "inferred",
117
+ "license": "MIT"
118
+ },
119
+ {
120
+ "id": "interface-type",
121
+ "category": "typography",
122
+ "tags": [
123
+ "dashboard",
124
+ "sans",
125
+ "typography",
126
+ "numbers",
127
+ "font"
128
+ ],
129
+ "recommendation": "Prefer legible UI type and tabular numerals for comparison; validate Vietnamese glyphs and text scaling.",
130
+ "source": "Tevra original",
131
+ "confidence": "inferred",
132
+ "license": "MIT"
133
+ },
134
+ {
135
+ "id": "semantic-color",
136
+ "category": "color",
137
+ "tags": [
138
+ "palette",
139
+ "light",
140
+ "dark",
141
+ "contrast",
142
+ "color",
143
+ "màu"
144
+ ],
145
+ "recommendation": "Assign semantic text, surface, focus and danger roles before choosing accent colors; test actual contrast pairs in both themes.",
146
+ "source": "Tevra original",
147
+ "confidence": "inferred",
148
+ "license": "MIT"
149
+ },
150
+ {
151
+ "id": "brand-expression",
152
+ "category": "color",
153
+ "tags": [
154
+ "brand",
155
+ "warm",
156
+ "professional",
157
+ "palette"
158
+ ],
159
+ "recommendation": "Keep established brand roles and spend the accent on meaningful actions rather than unrelated decoration.",
160
+ "source": "Tevra original",
161
+ "confidence": "inferred",
162
+ "license": "MIT"
163
+ },
164
+ {
165
+ "id": "responsive-comparison",
166
+ "category": "layout",
167
+ "tags": [
168
+ "responsive",
169
+ "mobile",
170
+ "table",
171
+ "overflow",
172
+ "di động"
173
+ ],
174
+ "recommendation": "Preserve meaningful table comparison with intentional scrolling and a visible affordance; do not clip columns to hide overflow.",
175
+ "source": "Tevra original",
176
+ "confidence": "inferred",
177
+ "license": "MIT"
178
+ },
179
+ {
180
+ "id": "dense-workspace",
181
+ "category": "layout",
182
+ "tags": [
183
+ "density",
184
+ "dashboard",
185
+ "spacing",
186
+ "grid"
187
+ ],
188
+ "recommendation": "Group by task and frequency, preserve keyboard order and keep important actions readable at narrow widths.",
189
+ "source": "Tevra original",
190
+ "confidence": "inferred",
191
+ "license": "MIT"
192
+ },
193
+ {
194
+ "id": "health-sensitive",
195
+ "category": "industry",
196
+ "tags": [
197
+ "health",
198
+ "insurance",
199
+ "medical",
200
+ "bảo hiểm"
201
+ ],
202
+ "recommendation": "Use understandable language and confirmation for consequential choices; domain accuracy needs an authoritative subject-matter source.",
203
+ "source": "Tevra original",
204
+ "confidence": "inferred",
205
+ "license": "MIT"
206
+ },
207
+ {
208
+ "id": "financial-status",
209
+ "category": "industry",
210
+ "tags": [
211
+ "finance",
212
+ "bank",
213
+ "money",
214
+ "currency"
215
+ ],
216
+ "recommendation": "Preserve formatting, transaction state and error recovery; never imply a transfer completed before confirmation.",
217
+ "source": "Tevra original",
218
+ "confidence": "inferred",
219
+ "license": "MIT"
220
+ }
221
+ ]
@@ -0,0 +1,191 @@
1
+ {
2
+ "version": 1,
3
+ "capabilities": [
4
+ {
5
+ "id": "ux.research",
6
+ "primary": "tevra.design-research",
7
+ "supporting": [],
8
+ "stage": 1,
9
+ "constraints": [
10
+ "preserve-approved-scope"
11
+ ],
12
+ "validation": [
13
+ "artifact-evidence",
14
+ "scope-preserved"
15
+ ]
16
+ },
17
+ {
18
+ "id": "visual.direction",
19
+ "primary": "tevra.design-direction",
20
+ "supporting": [
21
+ "tevra.design-research"
22
+ ],
23
+ "stage": 2,
24
+ "constraints": [
25
+ "preserve-approved-scope"
26
+ ],
27
+ "validation": [
28
+ "artifact-evidence",
29
+ "scope-preserved"
30
+ ]
31
+ },
32
+ {
33
+ "id": "design.tokens",
34
+ "primary": "tevra.design-system",
35
+ "supporting": [],
36
+ "stage": 3,
37
+ "constraints": [
38
+ "preserve-approved-scope"
39
+ ],
40
+ "validation": [
41
+ "artifact-evidence",
42
+ "scope-preserved"
43
+ ]
44
+ },
45
+ {
46
+ "id": "frontend.implementation",
47
+ "primary": "tevra.ui-builder",
48
+ "supporting": [
49
+ "tevra.frontend-review"
50
+ ],
51
+ "stage": 4,
52
+ "constraints": [
53
+ "preserve-approved-scope"
54
+ ],
55
+ "validation": [
56
+ "artifact-evidence",
57
+ "scope-preserved"
58
+ ]
59
+ },
60
+ {
61
+ "id": "ui.redesign",
62
+ "primary": "tevra.ui-redesign",
63
+ "supporting": [],
64
+ "stage": 5,
65
+ "constraints": [
66
+ "preserve-approved-scope"
67
+ ],
68
+ "validation": [
69
+ "artifact-evidence",
70
+ "scope-preserved"
71
+ ]
72
+ },
73
+ {
74
+ "id": "responsive.design",
75
+ "primary": "tevra.responsive-design",
76
+ "supporting": [],
77
+ "stage": 6,
78
+ "constraints": [
79
+ "preserve-approved-scope"
80
+ ],
81
+ "validation": [
82
+ "artifact-evidence",
83
+ "scope-preserved"
84
+ ]
85
+ },
86
+ {
87
+ "id": "interaction.motion",
88
+ "primary": "tevra.interaction-motion",
89
+ "supporting": [],
90
+ "stage": 7,
91
+ "constraints": [
92
+ "preserve-approved-scope"
93
+ ],
94
+ "validation": [
95
+ "artifact-evidence",
96
+ "scope-preserved"
97
+ ]
98
+ },
99
+ {
100
+ "id": "visual.regression",
101
+ "primary": "tevra.visual-review",
102
+ "supporting": [],
103
+ "stage": 8,
104
+ "constraints": [
105
+ "preserve-approved-scope"
106
+ ],
107
+ "validation": [
108
+ "artifact-evidence",
109
+ "scope-preserved"
110
+ ]
111
+ },
112
+ {
113
+ "id": "accessibility",
114
+ "primary": "tevra.accessibility-qa",
115
+ "supporting": [],
116
+ "stage": 9,
117
+ "constraints": [
118
+ "preserve-approved-scope"
119
+ ],
120
+ "validation": [
121
+ "artifact-evidence",
122
+ "scope-preserved"
123
+ ]
124
+ },
125
+ {
126
+ "id": "performance",
127
+ "primary": "tevra.performance-qa",
128
+ "supporting": [],
129
+ "stage": 10,
130
+ "constraints": [
131
+ "preserve-approved-scope"
132
+ ],
133
+ "validation": [
134
+ "artifact-evidence",
135
+ "scope-preserved"
136
+ ]
137
+ },
138
+ {
139
+ "id": "browser.testing",
140
+ "primary": "tevra.browser-testing",
141
+ "supporting": [],
142
+ "stage": 11,
143
+ "constraints": [
144
+ "preserve-approved-scope"
145
+ ],
146
+ "validation": [
147
+ "artifact-evidence",
148
+ "scope-preserved"
149
+ ]
150
+ },
151
+ {
152
+ "id": "frontend.review",
153
+ "primary": "tevra.frontend-review",
154
+ "supporting": [],
155
+ "stage": 12,
156
+ "constraints": [
157
+ "preserve-approved-scope"
158
+ ],
159
+ "validation": [
160
+ "artifact-evidence",
161
+ "scope-preserved"
162
+ ]
163
+ },
164
+ {
165
+ "id": "component.architecture",
166
+ "primary": "tevra.frontend-review",
167
+ "supporting": [
168
+ "tevra.ui-builder"
169
+ ],
170
+ "stage": 4,
171
+ "constraints": [
172
+ "existing-framework"
173
+ ],
174
+ "validation": [
175
+ "source-evidence"
176
+ ]
177
+ },
178
+ {
179
+ "id": "seo",
180
+ "primary": null,
181
+ "supporting": [],
182
+ "stage": 10,
183
+ "constraints": [
184
+ "not-automated"
185
+ ],
186
+ "validation": [
187
+ "manual-review-required"
188
+ ]
189
+ }
190
+ ]
191
+ }