@tangle-network/browser-agent-driver 0.29.0 → 0.31.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 (276) hide show
  1. package/dist/brain/index.d.ts +15 -1
  2. package/dist/brain/index.d.ts.map +1 -1
  3. package/dist/brain/index.js +67 -5
  4. package/dist/brain/index.js.map +1 -1
  5. package/dist/cli-ack-patch.d.ts +39 -0
  6. package/dist/cli-ack-patch.d.ts.map +1 -0
  7. package/dist/cli-ack-patch.js +47 -0
  8. package/dist/cli-ack-patch.js.map +1 -0
  9. package/dist/cli-design-audit.d.ts +16 -0
  10. package/dist/cli-design-audit.d.ts.map +1 -1
  11. package/dist/cli-design-audit.js +232 -7
  12. package/dist/cli-design-audit.js.map +1 -1
  13. package/dist/cli-jobs.d.ts +13 -0
  14. package/dist/cli-jobs.d.ts.map +1 -0
  15. package/dist/cli-jobs.js +262 -0
  16. package/dist/cli-jobs.js.map +1 -0
  17. package/dist/cli-patterns.d.ts +26 -0
  18. package/dist/cli-patterns.d.ts.map +1 -0
  19. package/dist/cli-patterns.js +49 -0
  20. package/dist/cli-patterns.js.map +1 -0
  21. package/dist/cli-reports.d.ts +12 -0
  22. package/dist/cli-reports.d.ts.map +1 -0
  23. package/dist/cli-reports.js +97 -0
  24. package/dist/cli-reports.js.map +1 -0
  25. package/dist/cli-ui.d.ts.map +1 -1
  26. package/dist/cli-ui.js +5 -1
  27. package/dist/cli-ui.js.map +1 -1
  28. package/dist/cli.js +52 -2
  29. package/dist/cli.js.map +1 -1
  30. package/dist/config.d.ts +4 -4
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/design/audit/attribution/aggregate.d.ts +16 -0
  33. package/dist/design/audit/attribution/aggregate.d.ts.map +1 -0
  34. package/dist/design/audit/attribution/aggregate.js +81 -0
  35. package/dist/design/audit/attribution/aggregate.js.map +1 -0
  36. package/dist/design/audit/attribution/store.d.ts +36 -0
  37. package/dist/design/audit/attribution/store.d.ts.map +1 -0
  38. package/dist/design/audit/attribution/store.js +108 -0
  39. package/dist/design/audit/attribution/store.js.map +1 -0
  40. package/dist/design/audit/attribution/types.d.ts +13 -0
  41. package/dist/design/audit/attribution/types.d.ts.map +1 -0
  42. package/dist/design/audit/attribution/types.js +10 -0
  43. package/dist/design/audit/attribution/types.js.map +1 -0
  44. package/dist/design/audit/classify-ensemble.d.ts +46 -0
  45. package/dist/design/audit/classify-ensemble.d.ts.map +1 -0
  46. package/dist/design/audit/classify-ensemble.js +207 -0
  47. package/dist/design/audit/classify-ensemble.js.map +1 -0
  48. package/dist/design/audit/ethics/check.d.ts +59 -0
  49. package/dist/design/audit/ethics/check.d.ts.map +1 -0
  50. package/dist/design/audit/ethics/check.js +137 -0
  51. package/dist/design/audit/ethics/check.js.map +1 -0
  52. package/dist/design/audit/ethics/loader.d.ts +21 -0
  53. package/dist/design/audit/ethics/loader.d.ts.map +1 -0
  54. package/dist/design/audit/ethics/loader.js +207 -0
  55. package/dist/design/audit/ethics/loader.js.map +1 -0
  56. package/dist/design/audit/ethics/rules/finance.yaml +37 -0
  57. package/dist/design/audit/ethics/rules/kids.yaml +37 -0
  58. package/dist/design/audit/ethics/rules/legal.yaml +35 -0
  59. package/dist/design/audit/ethics/rules/medical.yaml +36 -0
  60. package/dist/design/audit/evaluate.d.ts +69 -0
  61. package/dist/design/audit/evaluate.d.ts.map +1 -1
  62. package/dist/design/audit/evaluate.js +417 -55
  63. package/dist/design/audit/evaluate.js.map +1 -1
  64. package/dist/design/audit/first-principles-mode.d.ts +42 -0
  65. package/dist/design/audit/first-principles-mode.d.ts.map +1 -0
  66. package/dist/design/audit/first-principles-mode.js +77 -0
  67. package/dist/design/audit/first-principles-mode.js.map +1 -0
  68. package/dist/design/audit/modality/android.d.ts +14 -0
  69. package/dist/design/audit/modality/android.d.ts.map +1 -0
  70. package/dist/design/audit/modality/android.js +18 -0
  71. package/dist/design/audit/modality/android.js.map +1 -0
  72. package/dist/design/audit/modality/html.d.ts +22 -0
  73. package/dist/design/audit/modality/html.d.ts.map +1 -0
  74. package/dist/design/audit/modality/html.js +51 -0
  75. package/dist/design/audit/modality/html.js.map +1 -0
  76. package/dist/design/audit/modality/index.d.ts +8 -0
  77. package/dist/design/audit/modality/index.d.ts.map +1 -0
  78. package/dist/design/audit/modality/index.js +15 -0
  79. package/dist/design/audit/modality/index.js.map +1 -0
  80. package/dist/design/audit/modality/ios.d.ts +16 -0
  81. package/dist/design/audit/modality/ios.d.ts.map +1 -0
  82. package/dist/design/audit/modality/ios.js +19 -0
  83. package/dist/design/audit/modality/ios.js.map +1 -0
  84. package/dist/design/audit/modality/types.d.ts +9 -0
  85. package/dist/design/audit/modality/types.d.ts.map +1 -0
  86. package/dist/design/audit/modality/types.js +9 -0
  87. package/dist/design/audit/modality/types.js.map +1 -0
  88. package/dist/design/audit/patches/index.d.ts +8 -0
  89. package/dist/design/audit/patches/index.d.ts.map +1 -0
  90. package/dist/design/audit/patches/index.js +5 -0
  91. package/dist/design/audit/patches/index.js.map +1 -0
  92. package/dist/design/audit/patches/parse.d.ts +29 -0
  93. package/dist/design/audit/patches/parse.d.ts.map +1 -0
  94. package/dist/design/audit/patches/parse.js +153 -0
  95. package/dist/design/audit/patches/parse.js.map +1 -0
  96. package/dist/design/audit/patches/render.d.ts +20 -0
  97. package/dist/design/audit/patches/render.d.ts.map +1 -0
  98. package/dist/design/audit/patches/render.js +55 -0
  99. package/dist/design/audit/patches/render.js.map +1 -0
  100. package/dist/design/audit/patches/severity-enforcement.d.ts +23 -0
  101. package/dist/design/audit/patches/severity-enforcement.d.ts.map +1 -0
  102. package/dist/design/audit/patches/severity-enforcement.js +42 -0
  103. package/dist/design/audit/patches/severity-enforcement.js.map +1 -0
  104. package/dist/design/audit/patches/validate.d.ts +34 -0
  105. package/dist/design/audit/patches/validate.d.ts.map +1 -0
  106. package/dist/design/audit/patches/validate.js +53 -0
  107. package/dist/design/audit/patches/validate.js.map +1 -0
  108. package/dist/design/audit/patterns/match.d.ts +24 -0
  109. package/dist/design/audit/patterns/match.d.ts.map +1 -0
  110. package/dist/design/audit/patterns/match.js +48 -0
  111. package/dist/design/audit/patterns/match.js.map +1 -0
  112. package/dist/design/audit/patterns/mine.d.ts +31 -0
  113. package/dist/design/audit/patterns/mine.d.ts.map +1 -0
  114. package/dist/design/audit/patterns/mine.js +35 -0
  115. package/dist/design/audit/patterns/mine.js.map +1 -0
  116. package/dist/design/audit/patterns/store.d.ts +14 -0
  117. package/dist/design/audit/patterns/store.d.ts.map +1 -0
  118. package/dist/design/audit/patterns/store.js +53 -0
  119. package/dist/design/audit/patterns/store.js.map +1 -0
  120. package/dist/design/audit/patterns/types.d.ts +53 -0
  121. package/dist/design/audit/patterns/types.d.ts.map +1 -0
  122. package/dist/design/audit/patterns/types.js +13 -0
  123. package/dist/design/audit/patterns/types.js.map +1 -0
  124. package/dist/design/audit/pipeline.d.ts +26 -0
  125. package/dist/design/audit/pipeline.d.ts.map +1 -1
  126. package/dist/design/audit/pipeline.js +131 -4
  127. package/dist/design/audit/pipeline.js.map +1 -1
  128. package/dist/design/audit/rubric/anchor-loader.d.ts +44 -0
  129. package/dist/design/audit/rubric/anchor-loader.d.ts.map +1 -0
  130. package/dist/design/audit/rubric/anchor-loader.js +210 -0
  131. package/dist/design/audit/rubric/anchor-loader.js.map +1 -0
  132. package/dist/design/audit/rubric/anchors/blog.yaml +33 -0
  133. package/dist/design/audit/rubric/anchors/dashboard.yaml +35 -0
  134. package/dist/design/audit/rubric/anchors/docs.yaml +35 -0
  135. package/dist/design/audit/rubric/anchors/ecommerce.yaml +33 -0
  136. package/dist/design/audit/rubric/anchors/marketing.yaml +34 -0
  137. package/dist/design/audit/rubric/anchors/saas-app.yaml +38 -0
  138. package/dist/design/audit/rubric/anchors/social.yaml +33 -0
  139. package/dist/design/audit/rubric/anchors/tool.yaml +33 -0
  140. package/dist/design/audit/rubric/anchors/utility.yaml +33 -0
  141. package/dist/design/audit/rubric/fragments/audience-clinician.md +42 -0
  142. package/dist/design/audit/rubric/fragments/audience-developer.md +40 -0
  143. package/dist/design/audit/rubric/fragments/audience-kids.md +35 -0
  144. package/dist/design/audit/rubric/fragments/audience-vulnerability-minor-facing.md +37 -0
  145. package/dist/design/audit/rubric/fragments/first-principles.md +65 -0
  146. package/dist/design/audit/rubric/fragments/modality-mobile.md +39 -0
  147. package/dist/design/audit/rubric/fragments/modality-tablet.md +35 -0
  148. package/dist/design/audit/rubric/fragments/regulatory-coppa.md +32 -0
  149. package/dist/design/audit/rubric/fragments/regulatory-gdpr.md +33 -0
  150. package/dist/design/audit/rubric/fragments/regulatory-hipaa.md +36 -0
  151. package/dist/design/audit/rubric/fragments/universal-product-intent.md +48 -0
  152. package/dist/design/audit/rubric/loader.d.ts +26 -6
  153. package/dist/design/audit/rubric/loader.d.ts.map +1 -1
  154. package/dist/design/audit/rubric/loader.js +77 -27
  155. package/dist/design/audit/rubric/loader.js.map +1 -1
  156. package/dist/design/audit/rubric/rollup-weights.d.ts +25 -0
  157. package/dist/design/audit/rubric/rollup-weights.d.ts.map +1 -0
  158. package/dist/design/audit/rubric/rollup-weights.js +51 -0
  159. package/dist/design/audit/rubric/rollup-weights.js.map +1 -0
  160. package/dist/design/audit/types.d.ts +28 -0
  161. package/dist/design/audit/types.d.ts.map +1 -1
  162. package/dist/design/audit/v2/build-result.d.ts +47 -0
  163. package/dist/design/audit/v2/build-result.d.ts.map +1 -0
  164. package/dist/design/audit/v2/build-result.js +163 -0
  165. package/dist/design/audit/v2/build-result.js.map +1 -0
  166. package/dist/design/audit/v2/score.d.ts +49 -0
  167. package/dist/design/audit/v2/score.d.ts.map +1 -0
  168. package/dist/design/audit/v2/score.js +211 -0
  169. package/dist/design/audit/v2/score.js.map +1 -0
  170. package/dist/design/audit/v2/types.d.ts +431 -0
  171. package/dist/design/audit/v2/types.d.ts.map +1 -0
  172. package/dist/design/audit/v2/types.js +26 -0
  173. package/dist/design/audit/v2/types.js.map +1 -0
  174. package/dist/discover/index.d.ts +16 -0
  175. package/dist/discover/index.d.ts.map +1 -0
  176. package/dist/discover/index.js +25 -0
  177. package/dist/discover/index.js.map +1 -0
  178. package/dist/discover/wayback.d.ts +49 -0
  179. package/dist/discover/wayback.d.ts.map +1 -0
  180. package/dist/discover/wayback.js +123 -0
  181. package/dist/discover/wayback.js.map +1 -0
  182. package/dist/jobs/anti-bot.d.ts +19 -0
  183. package/dist/jobs/anti-bot.d.ts.map +1 -0
  184. package/dist/jobs/anti-bot.js +64 -0
  185. package/dist/jobs/anti-bot.js.map +1 -0
  186. package/dist/jobs/cost-estimate.d.ts +12 -0
  187. package/dist/jobs/cost-estimate.d.ts.map +1 -0
  188. package/dist/jobs/cost-estimate.js +21 -0
  189. package/dist/jobs/cost-estimate.js.map +1 -0
  190. package/dist/jobs/cost-history.d.ts +19 -0
  191. package/dist/jobs/cost-history.d.ts.map +1 -0
  192. package/dist/jobs/cost-history.js +42 -0
  193. package/dist/jobs/cost-history.js.map +1 -0
  194. package/dist/jobs/index.d.ts +31 -0
  195. package/dist/jobs/index.d.ts.map +1 -0
  196. package/dist/jobs/index.js +37 -0
  197. package/dist/jobs/index.js.map +1 -0
  198. package/dist/jobs/orchestrator.d.ts +42 -0
  199. package/dist/jobs/orchestrator.d.ts.map +1 -0
  200. package/dist/jobs/orchestrator.js +282 -0
  201. package/dist/jobs/orchestrator.js.map +1 -0
  202. package/dist/jobs/queue.d.ts +45 -0
  203. package/dist/jobs/queue.d.ts.map +1 -0
  204. package/dist/jobs/queue.js +114 -0
  205. package/dist/jobs/queue.js.map +1 -0
  206. package/dist/jobs/retry.d.ts +36 -0
  207. package/dist/jobs/retry.d.ts.map +1 -0
  208. package/dist/jobs/retry.js +77 -0
  209. package/dist/jobs/retry.js.map +1 -0
  210. package/dist/jobs/store.d.ts +31 -0
  211. package/dist/jobs/store.d.ts.map +1 -0
  212. package/dist/jobs/store.js +92 -0
  213. package/dist/jobs/store.js.map +1 -0
  214. package/dist/jobs/types.d.ts +106 -0
  215. package/dist/jobs/types.d.ts.map +1 -0
  216. package/dist/jobs/types.js +13 -0
  217. package/dist/jobs/types.js.map +1 -0
  218. package/dist/provider-defaults.d.ts +1 -1
  219. package/dist/provider-defaults.d.ts.map +1 -1
  220. package/dist/provider-defaults.js +8 -0
  221. package/dist/provider-defaults.js.map +1 -1
  222. package/dist/reports/aggregate.d.ts +38 -0
  223. package/dist/reports/aggregate.d.ts.map +1 -0
  224. package/dist/reports/aggregate.js +145 -0
  225. package/dist/reports/aggregate.js.map +1 -0
  226. package/dist/reports/index.d.ts +21 -0
  227. package/dist/reports/index.d.ts.map +1 -0
  228. package/dist/reports/index.js +15 -0
  229. package/dist/reports/index.js.map +1 -0
  230. package/dist/reports/narrate.d.ts +19 -0
  231. package/dist/reports/narrate.d.ts.map +1 -0
  232. package/dist/reports/narrate.js +40 -0
  233. package/dist/reports/narrate.js.map +1 -0
  234. package/dist/reports/templates.d.ts +43 -0
  235. package/dist/reports/templates.d.ts.map +1 -0
  236. package/dist/reports/templates.js +200 -0
  237. package/dist/reports/templates.js.map +1 -0
  238. package/dist/reports/tokens.d.ts +77 -0
  239. package/dist/reports/tokens.d.ts.map +1 -0
  240. package/dist/reports/tokens.js +88 -0
  241. package/dist/reports/tokens.js.map +1 -0
  242. package/dist/reports/tools.d.ts +76 -0
  243. package/dist/reports/tools.d.ts.map +1 -0
  244. package/dist/reports/tools.js +205 -0
  245. package/dist/reports/tools.js.map +1 -0
  246. package/dist/reports/types.d.ts +51 -0
  247. package/dist/reports/types.d.ts.map +1 -0
  248. package/dist/reports/types.js +9 -0
  249. package/dist/reports/types.js.map +1 -0
  250. package/dist/supervisor/critic.d.ts +1 -1
  251. package/dist/supervisor/critic.d.ts.map +1 -1
  252. package/dist/supervisor/critic.js +50 -5
  253. package/dist/supervisor/critic.js.map +1 -1
  254. package/dist/telemetry/client.d.ts +42 -0
  255. package/dist/telemetry/client.d.ts.map +1 -0
  256. package/dist/telemetry/client.js +203 -0
  257. package/dist/telemetry/client.js.map +1 -0
  258. package/dist/telemetry/hash.d.ts +4 -0
  259. package/dist/telemetry/hash.d.ts.map +1 -0
  260. package/dist/telemetry/hash.js +7 -0
  261. package/dist/telemetry/hash.js.map +1 -0
  262. package/dist/telemetry/index.d.ts +6 -0
  263. package/dist/telemetry/index.d.ts.map +1 -0
  264. package/dist/telemetry/index.js +5 -0
  265. package/dist/telemetry/index.js.map +1 -0
  266. package/dist/telemetry/schema.d.ts +85 -0
  267. package/dist/telemetry/schema.d.ts.map +1 -0
  268. package/dist/telemetry/schema.js +13 -0
  269. package/dist/telemetry/schema.js.map +1 -0
  270. package/dist/telemetry/sink.d.ts +46 -0
  271. package/dist/telemetry/sink.d.ts.map +1 -0
  272. package/dist/telemetry/sink.js +97 -0
  273. package/dist/telemetry/sink.js.map +1 -0
  274. package/dist/types.d.ts +5 -5
  275. package/dist/types.d.ts.map +1 -1
  276. package/package.json +5 -1
@@ -0,0 +1,38 @@
1
+ type: saas-app
2
+ score_9_10:
3
+ criteria:
4
+ - Domain object visible above the fold (tasks, deployments, conversations, files)
5
+ - One visually-dominant primary action per page state
6
+ - Empty states preview real product (sample rows, setup checklists, status timelines), not generic illustrations
7
+ - Action hierarchy = product hierarchy; no decorative buttons competing with workflow
8
+ - Trust details visible where commitment exists (price, permissions, undo, audit trail)
9
+ fixtures:
10
+ - fixture:linear-app
11
+ - fixture:figma-file-ui
12
+ - fixture:notion-editor
13
+ - fixture:superhuman
14
+ - fixture:github-pr-view
15
+ score_7_8:
16
+ criteria:
17
+ - Most criteria from 9-10 with one or two minor gaps
18
+ - Polish gaps that don't block job completion
19
+ - Domain objects present but action hierarchy slightly diffuse
20
+ fixtures:
21
+ - fixture:airtable-grid
22
+ - fixture:notion-database
23
+ score_5_6:
24
+ criteria:
25
+ - Functional but generic component-library assembly
26
+ - No domain object above the fold OR action hierarchy unclear
27
+ - Empty states show illustrations + platitudes instead of product preview
28
+ - Multiple equal-weight CTAs without a dominant primary
29
+ fixtures:
30
+ - fixture:generic-dashboard
31
+ score_3_4:
32
+ criteria:
33
+ - No primary job inferable from screen
34
+ - Equal-weight CTAs blocking workflow
35
+ - Decorative elements actively distract from product surface
36
+ - Page reads as a marketing/setup stub rather than an operational product
37
+ fixtures:
38
+ - fixture:no-primary-action
@@ -0,0 +1,33 @@
1
+ type: social
2
+ score_9_10:
3
+ criteria:
4
+ - Feed prioritizes real content (posts, conversations) over chrome and ads
5
+ - Compose surface is one click away and primary in the layout
6
+ - Identity signals (verified accounts, profile preview, follower counts) consistent and lightweight
7
+ - State transitions (like, reply, repost) feel instant and reversible
8
+ - Empty states preview what the feed will look like with a few followed accounts
9
+ fixtures:
10
+ - fixture:threads-web
11
+ - fixture:bluesky-web
12
+ - fixture:substack-inline
13
+ score_7_8:
14
+ criteria:
15
+ - Solid feed and compose flow but reply chains are visually flat
16
+ - Identity signals inconsistent across surfaces
17
+ - Empty states use illustrations rather than previewing real content
18
+ fixtures:
19
+ - fixture:generic-microblog
20
+ score_5_6:
21
+ criteria:
22
+ - Feed cluttered with chrome (rails, ads, suggestions) competing with content
23
+ - Compose buried two clicks deep
24
+ - Action affordances (reply, like, share) are equal weight with no clear primary
25
+ fixtures:
26
+ - fixture:cluttered-feed
27
+ score_3_4:
28
+ criteria:
29
+ - Page reads as ad inventory with content squeezed in
30
+ - No clear primary feed; multiple surfaces compete
31
+ - Identity signals fake or absent (anonymous content with no provenance)
32
+ fixtures:
33
+ - fixture:ad-heavy-feed
@@ -0,0 +1,33 @@
1
+ type: tool
2
+ score_9_10:
3
+ criteria:
4
+ - Single-purpose surface — the input and output relationship is immediate and obvious
5
+ - Keyboard-first interaction (shortcuts, focus management, paste support)
6
+ - Output is copyable, exportable, and shareable without modal interruption
7
+ - Recent results, history, or undo always available
8
+ - State (input, processing, output, error) handled explicitly with clear transitions
9
+ fixtures:
10
+ - fixture:linear-command-palette
11
+ - fixture:github-pr-view
12
+ - fixture:raycast
13
+ score_7_8:
14
+ criteria:
15
+ - Tool works well but lacks keyboard affordances or history
16
+ - Output exportable but with extra clicks
17
+ - Error states present but generic
18
+ fixtures:
19
+ - fixture:generic-converter
20
+ score_5_6:
21
+ criteria:
22
+ - Form-and-submit pattern with reload-style output
23
+ - No keyboard shortcuts, no history, no undo
24
+ - Loading and error states use defaults
25
+ fixtures:
26
+ - fixture:basic-tool-form
27
+ score_3_4:
28
+ criteria:
29
+ - Multi-step flow for what should be a single action
30
+ - Output requires manual selection/copy
31
+ - No error handling — failures show generic browser errors
32
+ fixtures:
33
+ - fixture:broken-tool
@@ -0,0 +1,33 @@
1
+ type: utility
2
+ score_9_10:
3
+ criteria:
4
+ - Status, configuration, or admin surface that exposes the operational object directly (deploy, build, job, account)
5
+ - Real state (running, succeeded, failed, queued) with timestamps and durations
6
+ - Action affordances (retry, rollback, configure, audit) match the operational verbs of the system
7
+ - Logs, diagnostics, or detail panels are one click from the summary
8
+ - Empty states preview what real activity will look like
9
+ fixtures:
10
+ - fixture:vercel-deployment-status
11
+ - fixture:cloudflare-dashboard
12
+ - fixture:github-actions
13
+ score_7_8:
14
+ criteria:
15
+ - Status surface clear but action affordances are generic (Edit/Save instead of Retry/Rollback)
16
+ - Logs accessible but require navigation
17
+ - Empty states use illustrations rather than previewing activity
18
+ fixtures:
19
+ - fixture:generic-admin
20
+ score_5_6:
21
+ criteria:
22
+ - Status indicators are decorative pills without timestamps or durations
23
+ - Logs and diagnostics buried in modals
24
+ - Forms-of-forms pattern instead of operational verbs
25
+ fixtures:
26
+ - fixture:basic-settings-page
27
+ score_3_4:
28
+ criteria:
29
+ - Status is text only — no visual signal of failure or success
30
+ - No way to retry, rollback, or audit from the surface
31
+ - Settings sprawl with no IA, no search
32
+ fixtures:
33
+ - fixture:settings-sprawl
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: audience-clinician
3
+ title: Clinician Audience
4
+ weight: high
5
+ applies-when:
6
+ audience: [clinician]
7
+ ---
8
+
9
+ This surface is used by clinical professionals (physicians, nurses, pharmacists,
10
+ therapists) in high-stakes decision-making contexts. Standard consumer-UX
11
+ heuristics are insufficient — apply the following additional lens.
12
+
13
+ INFORMATION DENSITY
14
+ - Clinicians tolerate and often require high information density. Sparse
15
+ consumer-style layouts that hide detail behind progressive disclosure are
16
+ friction, not polish.
17
+ - Data tables, lab result grids, medication lists must be fully visible without
18
+ expand/collapse. If key data is folded, score `content_ia` lower.
19
+
20
+ WORKFLOW EFFICIENCY
21
+ - Clinicians context-switch constantly (patient to patient, chart to EHR to
22
+ order entry). Keyboard navigation, dense primary actions, and minimal
23
+ confirmation dialogs for routine operations are expected.
24
+ - If standard consumer patterns (fat CTAs, step-by-step wizards) dominate
25
+ routine tasks, score `workflow` lower.
26
+
27
+ CRITICAL VALUE FLAGGING
28
+ - Out-of-range lab values, drug interactions, and alert states must be
29
+ immediately visible with high visual contrast — not just color. Include
30
+ icon + text pattern redundancy.
31
+ - Missing or weak critical-value flagging is a major finding in `trust_clarity`.
32
+
33
+ AUDIT TRAIL AND ATTRIBUTION
34
+ - Clinician workflows require visible "who did what, when" — last modified by,
35
+ order placed by, cosigned by. This is both regulatory and practical.
36
+ - If attributable actions lack visible provenance, that is a major finding in
37
+ `trust_clarity`.
38
+
39
+ DO NOT penalize for:
40
+ - Dense information layouts (this is intentional)
41
+ - Lack of illustrations or hero imagery
42
+ - Technical terminology appropriate to the audience
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: audience-developer
3
+ title: Developer Audience
4
+ weight: medium
5
+ applies-when:
6
+ audience: [developer]
7
+ ---
8
+
9
+ This surface is used by software engineers and technical practitioners.
10
+
11
+ INFORMATION OVER DECORATION
12
+ - Code samples, CLI commands, API endpoints, and technical specifications must
13
+ be immediately accessible — not gated behind tabs, scrolling, or "Request
14
+ Demo" flows. If core technical content requires navigation to find, score
15
+ `content_ia` lower.
16
+
17
+ COPY-PASTE HYGIENE
18
+ - Every code block must have a visible copy button or be selectable without
19
+ capturing surrounding prose. Missing copy affordance is a minor-to-major
20
+ finding in `workflow` depending on frequency.
21
+
22
+ DARK MODE AND TERMINAL AESTHETICS
23
+ - Developers default to dark environments. A light-only surface with no dark
24
+ mode is a `visual_craft` minor finding. A surface that actively breaks
25
+ (illegible code contrast) in dark mode is major.
26
+
27
+ AUTHENTICATION PATHS
28
+ - API keys, tokens, and credentials should be displayed with
29
+ mask-by-default + reveal-on-click. Showing credentials in plaintext by
30
+ default is a critical `trust_clarity` finding.
31
+
32
+ SEARCH AS PRIMARY NAVIGATION
33
+ - Technical docs and reference surfaces must have a prominent, keyboard-
34
+ accessible search. If Cmd/Ctrl-K does not open search, that is a major
35
+ finding in `workflow`.
36
+
37
+ DO NOT penalize for:
38
+ - Dense information layouts
39
+ - Monospace typography sections
40
+ - Minimal illustration or marketing copy
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: audience-kids
3
+ title: Kids Audience
4
+ weight: critical
5
+ applies-when:
6
+ audience: [kids]
7
+ ---
8
+
9
+ This surface is used by or targeted at minors. Apply the following additional
10
+ lens. Note: ethics rules in Layer 7 enforce hard score floors independently
11
+ of rubric scoring — both layers apply simultaneously.
12
+
13
+ AGE-APPROPRIATE LANGUAGE AND IMAGERY
14
+ - Copy must be readable at the stated age level. Technical jargon, legalese,
15
+ or implicit social pressure ("Your friends are waiting!") are major findings
16
+ in `content_ia`.
17
+ - Imagery should be appropriate for the age group. Mature themes, even subtle
18
+ ones, are critical findings in `trust_clarity`.
19
+
20
+ FRICTION-SYMMETRIC FLOWS
21
+ - Actions that benefit the operator (in-app purchase, data sharing, account
22
+ creation) must have equal or greater friction than their reversal
23
+ (cancellation, data deletion, account closure).
24
+ - Any flow where it is easier to spend money / share data than to undo is a
25
+ critical finding in `workflow`.
26
+
27
+ PARENTAL CONTROLS VISIBILITY
28
+ - If the app collects data from minors, parental consent or control mechanisms
29
+ must be visible without buried navigation. If absent: major finding in
30
+ `trust_clarity`.
31
+
32
+ DO NOT penalize for:
33
+ - Simplified language and larger touch targets
34
+ - Reduced information density appropriate to age
35
+ - Bright color palettes and playful illustration styles
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: audience-vulnerability-minor-facing
3
+ title: Minor-Facing Audience Vulnerability
4
+ weight: critical
5
+ applies-when:
6
+ audienceVulnerability: [minor-facing]
7
+ ---
8
+
9
+ This surface directly interacts with users who are minors or who are
10
+ unaccompanied minors in a supervised context (e.g. school software, children's
11
+ gaming, education platforms). The vulnerability is that the minor may not fully
12
+ understand consent, financial consequence, or data implications. Apply this
13
+ lens in addition to audience-kids and regulatory-coppa fragments.
14
+
15
+ DARK PATTERN PROHIBITION — ENFORCED
16
+ Every dark pattern is a critical finding when directed at minors. Dark patterns
17
+ to look for:
18
+ - Confirmshaming ("No thanks, I don't want to save money")
19
+ - Fake urgency ("Only 2 left! Timer expires in 03:42")
20
+ - Hidden costs revealed at final checkout step
21
+ - Forced continuity (subscription auto-enrolled without explicit confirmation)
22
+ - Misdirection (styled "X" button that is actually an ad click)
23
+
24
+ IRREVERSIBILITY DISCLOSURE
25
+ - Any action that is irreversible (purchase, deletion, sharing to others) must
26
+ be labeled explicitly. "Delete" without "This cannot be undone" is a major
27
+ finding in `trust_clarity`.
28
+
29
+ SOCIAL COMPARISON AS PRESSURE
30
+ - Leaderboards, "Your friends have X" notifications, or streak-loss warnings
31
+ designed to create anxiety are major `trust_clarity` findings when the
32
+ audience is minors.
33
+
34
+ REPORTING AND BLOCKING CONTROLS
35
+ - If the surface allows social interaction (messaging, comments, reactions),
36
+ visible reporting and blocking controls are required. Absent: major finding
37
+ in `trust_clarity`.
@@ -0,0 +1,65 @@
1
+ ---
2
+ id: first-principles
3
+ title: First-Principles Fallback
4
+ weight: critical
5
+ applies-when:
6
+ universal: false
7
+ ---
8
+
9
+ You haven't seen this pattern before. Do not fabricate a classification.
10
+ Audit against the universal product principles only. Score per-dimension as
11
+ usual, but set `rollup.confidence = "low"` and emit a top-level
12
+ `novel_pattern_signal` describing what you observed, so this surface can be
13
+ mined into a new fragment after enough fleet exposure.
14
+
15
+ 1. PRIMARY JOB CLARITY (5 sec test)
16
+ - Within 5 seconds, can a stranger name what this page is for?
17
+ - If no: severity major; finding category `product_intent`.
18
+
19
+ 2. PRIMARY ACTION OBVIOUSNESS
20
+ - Is there one visually-dominant action this page is built around?
21
+ - Are competing actions visually subordinate?
22
+ - If equal-weight: severity major; finding category `product_intent`.
23
+
24
+ 3. STATE PREVIEW
25
+ - Are empty/loading/error states designed, or browser-default / placeholder?
26
+ - Do empty states preview the real product, or show generic illustrations?
27
+ - If generic: severity major; finding category `product_intent`.
28
+
29
+ 4. TRUST BEFORE COMMITMENT
30
+ - Does the page ask the user to commit (money, identity, deploy, share)?
31
+ - If yes: are price, permissions, scope, undo path visible BEFORE the
32
+ commit button?
33
+ - If no: severity critical; finding category `trust_clarity`.
34
+
35
+ 5. RECOVERY FROM FAILURE
36
+ - Can the user undo their last action?
37
+ - Is there a clear path forward when something fails?
38
+ - If no: severity major; finding category `workflow`.
39
+
40
+ GUARDRAILS:
41
+ - Do not invent domain-specific findings ("this dashboard needs charts").
42
+ You don't know the domain. Stick to the five principles.
43
+ - Do not anchor on marketing-page heuristics (hero copy, illustrations,
44
+ social proof). They don't apply.
45
+ - If a principle simply doesn't apply (e.g. there is no commitment on this
46
+ page), say so explicitly rather than scoring it generically.
47
+
48
+ RESPOND WITH ONLY a JSON object of the form:
49
+ {
50
+ "scores": {
51
+ "product_intent": { "score": <1-10>, "range": [<lo>, <hi>], "confidence": "low", "summary": "<one sentence>", "primaryFindings": [] },
52
+ "visual_craft": { ... },
53
+ "trust_clarity": { ... },
54
+ "workflow": { ... },
55
+ "content_ia": { ... }
56
+ },
57
+ "rollup": { "score": <1-10>, "range": [<lo>, <hi>], "confidence": "low", "rule": "first-principles", "weights": { "product_intent": 0.30, "workflow": 0.25, "visual_craft": 0.20, "content_ia": 0.15, "trust_clarity": 0.10 } },
58
+ "findings": [ ... ],
59
+ "novel_pattern_signal": {
60
+ "observedSignals": [
61
+ { "label": "<short-label>", "evidence": "<what you saw>", "confidence": <0..1> }
62
+ ]
63
+ },
64
+ "first_principles_mode": true
65
+ }
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: modality-mobile
3
+ title: Mobile Modality
4
+ weight: medium
5
+ applies-when:
6
+ modality: [mobile]
7
+ ---
8
+
9
+ This surface is evaluated at a mobile viewport (≤480px wide). Apply the
10
+ following lens on top of page-type and domain fragments.
11
+
12
+ TOUCH TARGET SIZING
13
+ - Interactive elements must meet minimum 44×44pt touch targets (WCAG 2.5.5
14
+ AAA; Apple HIG minimum). Anything below 32pt is a major finding in
15
+ `workflow`. Count the number of undersized targets — if >3 on a single
16
+ screen, escalate to critical.
17
+
18
+ THUMB-ZONE REACHABILITY
19
+ - Primary actions must be reachable in the bottom 60% of a 375px screen
20
+ one-handed. A primary CTA pinned to the top of the viewport is a major
21
+ `workflow` finding.
22
+
23
+ HORIZONTAL SCROLL AVOIDANCE
24
+ - Content must not require horizontal scroll on a 375px viewport. Tables
25
+ that overflow without a scroll affordance are major `workflow` findings.
26
+
27
+ FONT LEGIBILITY
28
+ - Body text must be ≥16px (browser zoom notwithstanding). Text smaller than
29
+ 14px is a major `visual_craft` finding. Text below 12px is critical.
30
+
31
+ FORM INPUT KEYBOARD
32
+ - Input fields must trigger the appropriate virtual keyboard type (numeric
33
+ for phone/postcode, email for email, tel for phone numbers). Wrong keyboard
34
+ type is a minor `workflow` finding per field.
35
+
36
+ DO NOT penalize for:
37
+ - Navigation patterns specific to mobile (hamburger, bottom tab bar)
38
+ - Reduced visible surface area compared to desktop
39
+ - Single-column layouts
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: modality-tablet
3
+ title: Tablet Modality
4
+ weight: low
5
+ applies-when:
6
+ modality: [tablet]
7
+ ---
8
+
9
+ This surface is evaluated at a tablet viewport (481–1024px wide). Apply this
10
+ lens on top of page-type and domain fragments.
11
+
12
+ LAYOUT ADAPTATION
13
+ - The layout must actually adapt between mobile and desktop — not simply
14
+ scale a mobile layout or stretch a desktop layout. A layout that is
15
+ identical to either breakpoint is a minor `visual_craft` finding.
16
+
17
+ SPLIT-VIEW AND SIDEBAR OPPORTUNITIES
18
+ - Tablet viewports often benefit from master-detail or sidebar-content
19
+ patterns rather than single-column stacks. If the content hierarchy would
20
+ benefit from a persistent sidebar and none is present, that is a minor
21
+ `workflow` finding.
22
+
23
+ TOUCH AND POINTER HYBRID
24
+ - Tablet users may use touch or pointer. Touch targets must still meet the
25
+ 44pt minimum. Hover-only affordances without touch fallbacks are major
26
+ `workflow` findings.
27
+
28
+ LANDSCAPE AND PORTRAIT PARITY
29
+ - Key interactions must work in both orientations. If a primary action is
30
+ unreachable in landscape (below fold with no scroll), that is a major
31
+ `workflow` finding.
32
+
33
+ DO NOT penalize for:
34
+ - Adapting typography slightly smaller than mobile maximums
35
+ - Showing more information density than the mobile equivalent
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: regulatory-coppa
3
+ title: COPPA Regulatory Context
4
+ weight: critical
5
+ applies-when:
6
+ regulatoryContext: [coppa]
7
+ ---
8
+
9
+ This surface is subject to COPPA (Children's Online Privacy Protection Act).
10
+ Apply this lens when the audience includes or may include users under 13. The
11
+ ethics gate (Layer 7) independently enforces hard score floors for missing
12
+ age gates and dark patterns — both apply simultaneously.
13
+
14
+ VERIFIABLE PARENTAL CONSENT
15
+ - If this surface collects personal data from users who may be under 13,
16
+ a verifiable parental consent mechanism must be visible and functional.
17
+ Absent: critical finding in `trust_clarity`.
18
+
19
+ AGE GATE INTEGRITY
20
+ - Age gates must require date-of-birth entry, not a single yes/no question
21
+ ("Are you 13 or older?"). A single-question age gate is a major finding —
22
+ it is trivially bypassed.
23
+
24
+ DATA COLLECTION DISCLOSURE
25
+ - A clear, plain-English summary of what data is collected and why must be
26
+ visible before any data collection begins. Buried in a privacy policy does
27
+ not satisfy this requirement. Absent: major finding in `content_ia`.
28
+
29
+ PROHIBITION ON BEHAVIORAL TARGETING
30
+ - No behavioral advertising or cross-site tracking may be enabled for users
31
+ under 13. If third-party tracking scripts are present without age-based
32
+ gating: critical finding in `trust_clarity`.
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: regulatory-gdpr
3
+ title: GDPR Regulatory Context
4
+ weight: high
5
+ applies-when:
6
+ regulatoryContext: [gdpr]
7
+ ---
8
+
9
+ This surface is subject to GDPR. Apply the following lens in addition to other
10
+ applicable fragments. Note: the ethics gate (Layer 7) independently enforces a
11
+ score floor for missing consent mechanisms — both apply.
12
+
13
+ CONSENT MECHANISM QUALITY
14
+ - Cookie consent banners must offer granular controls (necessary / analytics /
15
+ marketing) with equal visual prominence. An "Accept all" button that is
16
+ larger or more prominent than "Manage preferences" is a major `trust_clarity`
17
+ finding.
18
+ - Pre-ticked checkboxes are a critical finding — they are unlawful under GDPR.
19
+
20
+ DATA SUBJECT RIGHTS ACCESS
21
+ - Users must be able to find their data rights (access, deletion, portability,
22
+ correction) without more than 2 navigation steps from any page. If the
23
+ privacy page is not reachable from the footer, that is a major finding in
24
+ `content_ia`.
25
+
26
+ LEGAL BASIS TRANSPARENCY
27
+ - If the page collects personal data, the legal basis (consent, legitimate
28
+ interest, contract) must be stated. Absent: minor finding in `trust_clarity`.
29
+
30
+ DATA RETENTION
31
+ - If retention periods are disclosed (they should be), they must be
32
+ understandable to a non-lawyer. Legal boilerplate with no plain-English
33
+ summary is a minor finding in `content_ia`.
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: regulatory-hipaa
3
+ title: HIPAA Regulatory Context
4
+ weight: high
5
+ applies-when:
6
+ regulatoryContext: [hipaa]
7
+ ---
8
+
9
+ This surface handles Protected Health Information (PHI) and is subject to HIPAA
10
+ technical safeguards. Apply this lens in addition to domain-specific fragments.
11
+
12
+ SESSION SECURITY VISIBILITY
13
+ - Automatic session timeout must be visible to the user (countdown or clear
14
+ logout trigger). Invisible timeout with hard logout is a major `workflow`
15
+ finding.
16
+ - If the surface shows PHI and has no visible session indicator, that is a
17
+ major `trust_clarity` finding.
18
+
19
+ MINIMUM NECESSARY DATA
20
+ - Only the minimum necessary PHI should be visible on any given screen.
21
+ Dashboards that show full SSN, full DOB, or complete medication histories
22
+ when partial identifiers suffice are major `trust_clarity` findings.
23
+
24
+ AUDIT LOG ACCESS
25
+ - If this surface allows modification of PHI, a visible "audit log" or
26
+ "activity history" link must be accessible to the user. Absent: minor
27
+ finding in `trust_clarity`.
28
+
29
+ DATA EXPORT LABELING
30
+ - Export buttons (CSV, PDF, print) must label the output as PHI with a
31
+ handling reminder. Unlabeled PHI export is a minor finding.
32
+
33
+ DO NOT penalize for:
34
+ - Explicit data masking that adds cognitive load (masks protect PHI)
35
+ - Confirmation dialogs on irreversible PHI operations
36
+ - Conservative color coding that prioritizes legibility over aesthetics
@@ -0,0 +1,48 @@
1
+ ---
2
+ id: universal-product-intent
3
+ title: Product Intent & Outcome Fit
4
+ weight: critical
5
+ dimension: product-clarity
6
+ applies-when:
7
+ universal: true
8
+ ---
9
+
10
+ PRODUCT INTENT AUDIT — judge the screen by the job it must do, not by generic prettiness.
11
+
12
+ Before scoring, infer these from the screenshot and classification:
13
+ - Primary audience: who is this for right now?
14
+ - Primary job: what must this page help them accomplish?
15
+ - Primary action: what should they do next?
16
+ - Stakes: what can go wrong if the UI is unclear? Money, trust, data loss, wrong deployment, wasted time, safety, legal/medical risk, brand trust, or simple confusion.
17
+ - Success path: what is the shortest believable path from landing on this screen to completing the job?
18
+
19
+ Then evaluate brutally:
20
+ - Does the page make the primary job obvious within 5 seconds?
21
+ - Is the main action visually and semantically dominant, or is it buried among equal-weight controls?
22
+ - Does the content shown match the user's intent, or is it filler, meta copy, marketing fluff, or generic component-library scaffolding?
23
+ - Are empty/loading/disconnected states still useful previews of the real product, or do they make the product look unfinished?
24
+ - Does the information architecture match the audience's mental model?
25
+ - Are trust-critical details visible before commitment: price, permissions, data source, provenance, verification, risk, status, ownership, or next steps?
26
+ - Does the design use the domain's natural artifacts? Examples: ledgers and receipts for finance, logs and deployments for devtools, product cards and checkout for ecommerce, source/code/examples for developer products, clinical clarity for health, creator/social proof for social products.
27
+
28
+ WHAT TO PUNISH:
29
+ - Vague dashboards that show containers instead of decisions.
30
+ - Copy that explains the UI rather than helping the user act.
31
+ - Equal-weight buttons for unequal actions.
32
+ - Generic empty states where real state previews, sample rows, setup checklists, or status timelines would communicate the product.
33
+ - Decorative graphics that block or distract from the job.
34
+ - Beautiful surfaces that do not clarify what the product does.
35
+ - Navigation chrome that feels more important than the workflow.
36
+
37
+ WHAT TO REWARD:
38
+ - One obvious primary action per page state.
39
+ - Real domain objects above the fold: deployments, jobs, payouts, orders, patients, tasks, files, incidents, products, conversations, etc.
40
+ - Clear state machines: draft → pending → active → failed → complete.
41
+ - Trust-building detail where risk exists.
42
+ - Progressive disclosure: simple first screen, serious detail available when needed.
43
+ - Visual hierarchy driven by the product model, not by arbitrary cards.
44
+
45
+ SCORING IMPACT:
46
+ - If users cannot tell what the product is for or what to do next, cap the page at 6 no matter how clean it looks.
47
+ - If the screen is visually polished but mostly generic scaffolding, cap it at 7.
48
+ - 8+ requires product specificity: the page must feel designed for this exact product, audience, and workflow.
@@ -6,6 +6,19 @@
6
6
  * `~/.bad/rubrics/` for user fragments). No code changes required.
7
7
  */
8
8
  import type { PageClassification, RubricFragment, ComposedRubric } from '../types.js';
9
+ import type { AudienceTag, ModalityTag, RegulatoryContextTag, AudienceVulnerabilityTag } from '../v2/types.js';
10
+ /**
11
+ * Operator-supplied context for Layer 6 composable predicate matching.
12
+ * When provided, fragments whose `applies-when.audience | modality |
13
+ * regulatoryContext | audienceVulnerability` overlap with these values are
14
+ * included in the composed rubric alongside the classification-matched set.
15
+ */
16
+ export interface RubricContext {
17
+ audience?: AudienceTag[];
18
+ modality?: ModalityTag[];
19
+ regulatoryContext?: RegulatoryContextTag[];
20
+ audienceVulnerability?: AudienceVulnerabilityTag[];
21
+ }
9
22
  /**
10
23
  * Parse a markdown fragment file into a RubricFragment.
11
24
  * Frontmatter format:
@@ -25,22 +38,29 @@ export declare function parseFragment(filePath: string): RubricFragment;
25
38
  */
26
39
  export declare function loadFragments(dir?: string): RubricFragment[];
27
40
  /**
28
- * Predicate evaluator. Returns true if the fragment applies to the classification.
41
+ * Predicate evaluator. Returns true if the fragment applies to the classification
42
+ * or the optional Layer 6 context (audience / modality / regulatoryContext /
43
+ * audienceVulnerability hints).
29
44
  *
30
45
  * Universal fragments always apply.
31
- * Type/domain/maturity/designSystem predicates are AND-combined: all listed
32
- * fields must match. Within a field, the classification value must be in the
33
- * fragment's allowed set.
46
+ * Predicate groups are OR-combined at the group level: a fragment fires if ANY
47
+ * one of its predicate groups matches. Within a group, list membership is used
48
+ * (the classification/context value must appear in the fragment's allowed set).
49
+ *
50
+ * Layer 6 predicates are additive: they can cause a fragment to fire even when
51
+ * no type/domain predicate matches, enabling composition across independent
52
+ * predicate dimensions.
34
53
  */
35
- export declare function fragmentApplies(fragment: RubricFragment, classification: PageClassification): boolean;
54
+ export declare function fragmentApplies(fragment: RubricFragment, classification: PageClassification, ctx?: RubricContext): boolean;
36
55
  /**
37
56
  * Compose a rubric from a classification.
38
57
  *
39
58
  * @param classification - the page classification
40
59
  * @param fragments - all loaded fragments (defaults to builtin)
41
60
  * @param userFragmentsDir - optional path to user-supplied fragments
61
+ * @param ctx - optional Layer 6 context for audience/modality/regulatory predicates
42
62
  */
43
- export declare function composeRubric(classification: PageClassification, fragments?: RubricFragment[], userFragmentsDir?: string): ComposedRubric;
63
+ export declare function composeRubric(classification: PageClassification, fragments?: RubricFragment[], userFragmentsDir?: string, ctx?: RubricContext): ComposedRubric;
44
64
  /**
45
65
  * Compose a rubric from an explicit profile name (for `--profile` override).
46
66
  * Loads only the matching type fragment + universal fragments.
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/design/audit/rubric/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EAEf,MAAM,aAAa,CAAA;AAYpB;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAiB9D;AAkED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAA8B,GAAG,cAAc,EAAE,CAMnF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,kBAAkB,GACjC,OAAO,CA4BT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,kBAAkB,EAClC,SAAS,CAAC,EAAE,cAAc,EAAE,EAC5B,gBAAgB,CAAC,EAAE,MAAM,GACxB,cAAc,CAgChB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,cAAc,EAAE,GACnC,cAAc,CAsBhB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/design/audit/rubric/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EAEf,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,gBAAgB,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,iBAAiB,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAC1C,qBAAqB,CAAC,EAAE,wBAAwB,EAAE,CAAA;CACnD;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAiB9D;AAkED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAA8B,GAAG,cAAc,EAAE,CAMnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,kBAAkB,EAClC,GAAG,CAAC,EAAE,aAAa,GAClB,OAAO,CA2CT;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,kBAAkB,EAClC,SAAS,CAAC,EAAE,cAAc,EAAE,EAC5B,gBAAgB,CAAC,EAAE,MAAM,EACzB,GAAG,CAAC,EAAE,aAAa,GAClB,cAAc,CAgChB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,cAAc,EAAE,GACnC,cAAc,CA0BhB"}