@ztothez/design-engineering 2.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 (513) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +448 -0
  3. package/ROADMAP.md +127 -0
  4. package/SKILL.md +698 -0
  5. package/V2-ROADMAP.md +431 -0
  6. package/V3-ROADMAP.md +605 -0
  7. package/V4-ROADMAP.md +283 -0
  8. package/clean-room-ux-design-spec.md +1431 -0
  9. package/dist/cli/aggregate-gates.d.ts +2 -0
  10. package/dist/cli/aggregate-gates.js +86 -0
  11. package/dist/cli/aggregate-gates.js.map +1 -0
  12. package/dist/cli/assess-maintainer-review.d.ts +2 -0
  13. package/dist/cli/assess-maintainer-review.js +72 -0
  14. package/dist/cli/assess-maintainer-review.js.map +1 -0
  15. package/dist/cli/audit.d.ts +2 -0
  16. package/dist/cli/audit.js +71 -0
  17. package/dist/cli/audit.js.map +1 -0
  18. package/dist/cli/compile-comparison-review.d.ts +2 -0
  19. package/dist/cli/compile-comparison-review.js +154 -0
  20. package/dist/cli/compile-comparison-review.js.map +1 -0
  21. package/dist/cli/compile-plan.d.ts +2 -0
  22. package/dist/cli/compile-plan.js +66 -0
  23. package/dist/cli/compile-plan.js.map +1 -0
  24. package/dist/cli/evaluate-corpus.d.ts +2 -0
  25. package/dist/cli/evaluate-corpus.js +65 -0
  26. package/dist/cli/evaluate-corpus.js.map +1 -0
  27. package/dist/cli/generate-react.d.ts +2 -0
  28. package/dist/cli/generate-react.js +83 -0
  29. package/dist/cli/generate-react.js.map +1 -0
  30. package/dist/cli/index.d.ts +2 -0
  31. package/dist/cli/index.js +58 -0
  32. package/dist/cli/index.js.map +1 -0
  33. package/dist/cli/portfolio.d.ts +2 -0
  34. package/dist/cli/portfolio.js +316 -0
  35. package/dist/cli/portfolio.js.map +1 -0
  36. package/dist/cli/quality-gate.d.ts +2 -0
  37. package/dist/cli/quality-gate.js +131 -0
  38. package/dist/cli/quality-gate.js.map +1 -0
  39. package/dist/cli/repair-react.d.ts +2 -0
  40. package/dist/cli/repair-react.js +163 -0
  41. package/dist/cli/repair-react.js.map +1 -0
  42. package/dist/cli/review-heuristics.d.ts +2 -0
  43. package/dist/cli/review-heuristics.js +68 -0
  44. package/dist/cli/review-heuristics.js.map +1 -0
  45. package/dist/cli/validate-brief.d.ts +2 -0
  46. package/dist/cli/validate-brief.js +58 -0
  47. package/dist/cli/validate-brief.js.map +1 -0
  48. package/dist/cli/validate-comparison.d.ts +2 -0
  49. package/dist/cli/validate-comparison.js +68 -0
  50. package/dist/cli/validate-comparison.js.map +1 -0
  51. package/dist/cli/validate-contract.d.ts +2 -0
  52. package/dist/cli/validate-contract.js +54 -0
  53. package/dist/cli/validate-contract.js.map +1 -0
  54. package/dist/cli/validate-design.d.ts +2 -0
  55. package/dist/cli/validate-design.js +53 -0
  56. package/dist/cli/validate-design.js.map +1 -0
  57. package/dist/cli/validate-information.d.ts +2 -0
  58. package/dist/cli/validate-information.js +53 -0
  59. package/dist/cli/validate-information.js.map +1 -0
  60. package/dist/cli/validate-trust.d.ts +2 -0
  61. package/dist/cli/validate-trust.js +53 -0
  62. package/dist/cli/validate-trust.js.map +1 -0
  63. package/dist/cli/verify-ui.d.ts +2 -0
  64. package/dist/cli/verify-ui.js +181 -0
  65. package/dist/cli/verify-ui.js.map +1 -0
  66. package/dist/src/acceptance/evaluator.d.ts +13 -0
  67. package/dist/src/acceptance/evaluator.js +201 -0
  68. package/dist/src/acceptance/evaluator.js.map +1 -0
  69. package/dist/src/acceptance/loader.d.ts +2 -0
  70. package/dist/src/acceptance/loader.js +18 -0
  71. package/dist/src/acceptance/loader.js.map +1 -0
  72. package/dist/src/acceptance/report.d.ts +2 -0
  73. package/dist/src/acceptance/report.js +18 -0
  74. package/dist/src/acceptance/report.js.map +1 -0
  75. package/dist/src/acceptance/schema.d.ts +64 -0
  76. package/dist/src/acceptance/schema.js +57 -0
  77. package/dist/src/acceptance/schema.js.map +1 -0
  78. package/dist/src/acceptance/types.d.ts +47 -0
  79. package/dist/src/acceptance/types.js +2 -0
  80. package/dist/src/acceptance/types.js.map +1 -0
  81. package/dist/src/aggregate/report.d.ts +2 -0
  82. package/dist/src/aggregate/report.js +33 -0
  83. package/dist/src/aggregate/report.js.map +1 -0
  84. package/dist/src/aggregate/runner.d.ts +2 -0
  85. package/dist/src/aggregate/runner.js +165 -0
  86. package/dist/src/aggregate/runner.js.map +1 -0
  87. package/dist/src/aggregate/schema.d.ts +182 -0
  88. package/dist/src/aggregate/schema.js +54 -0
  89. package/dist/src/aggregate/schema.js.map +1 -0
  90. package/dist/src/aggregate/types.d.ts +57 -0
  91. package/dist/src/aggregate/types.js +2 -0
  92. package/dist/src/aggregate/types.js.map +1 -0
  93. package/dist/src/audit/policy.d.ts +3 -0
  94. package/dist/src/audit/policy.js +45 -0
  95. package/dist/src/audit/policy.js.map +1 -0
  96. package/dist/src/audit/report.d.ts +2 -0
  97. package/dist/src/audit/report.js +32 -0
  98. package/dist/src/audit/report.js.map +1 -0
  99. package/dist/src/audit/rules/accessibility-name.d.ts +2 -0
  100. package/dist/src/audit/rules/accessibility-name.js +64 -0
  101. package/dist/src/audit/rules/accessibility-name.js.map +1 -0
  102. package/dist/src/audit/rules/component-size.d.ts +2 -0
  103. package/dist/src/audit/rules/component-size.js +27 -0
  104. package/dist/src/audit/rules/component-size.js.map +1 -0
  105. package/dist/src/audit/rules/credential-placeholder.d.ts +2 -0
  106. package/dist/src/audit/rules/credential-placeholder.js +83 -0
  107. package/dist/src/audit/rules/credential-placeholder.js.map +1 -0
  108. package/dist/src/audit/rules/helpers.d.ts +16 -0
  109. package/dist/src/audit/rules/helpers.js +64 -0
  110. package/dist/src/audit/rules/helpers.js.map +1 -0
  111. package/dist/src/audit/rules/index.d.ts +2 -0
  112. package/dist/src/audit/rules/index.js +23 -0
  113. package/dist/src/audit/rules/index.js.map +1 -0
  114. package/dist/src/audit/rules/interactive-integrity.d.ts +2 -0
  115. package/dist/src/audit/rules/interactive-integrity.js +111 -0
  116. package/dist/src/audit/rules/interactive-integrity.js.map +1 -0
  117. package/dist/src/audit/rules/mixed-responsibilities.d.ts +2 -0
  118. package/dist/src/audit/rules/mixed-responsibilities.js +39 -0
  119. package/dist/src/audit/rules/mixed-responsibilities.js.map +1 -0
  120. package/dist/src/audit/rules/mock-production-path.d.ts +2 -0
  121. package/dist/src/audit/rules/mock-production-path.js +39 -0
  122. package/dist/src/audit/rules/mock-production-path.js.map +1 -0
  123. package/dist/src/audit/rules/network-state.d.ts +2 -0
  124. package/dist/src/audit/rules/network-state.js +39 -0
  125. package/dist/src/audit/rules/network-state.js.map +1 -0
  126. package/dist/src/audit/rules/operational-claim.d.ts +2 -0
  127. package/dist/src/audit/rules/operational-claim.js +94 -0
  128. package/dist/src/audit/rules/operational-claim.js.map +1 -0
  129. package/dist/src/audit/rules/placeholder-interaction.d.ts +2 -0
  130. package/dist/src/audit/rules/placeholder-interaction.js +46 -0
  131. package/dist/src/audit/rules/placeholder-interaction.js.map +1 -0
  132. package/dist/src/audit/rules/raw-design-values.d.ts +2 -0
  133. package/dist/src/audit/rules/raw-design-values.js +97 -0
  134. package/dist/src/audit/rules/raw-design-values.js.map +1 -0
  135. package/dist/src/audit/scanner.d.ts +2 -0
  136. package/dist/src/audit/scanner.js +215 -0
  137. package/dist/src/audit/scanner.js.map +1 -0
  138. package/dist/src/audit/types.d.ts +62 -0
  139. package/dist/src/audit/types.js +2 -0
  140. package/dist/src/audit/types.js.map +1 -0
  141. package/dist/src/comparison/evaluator.d.ts +2 -0
  142. package/dist/src/comparison/evaluator.js +478 -0
  143. package/dist/src/comparison/evaluator.js.map +1 -0
  144. package/dist/src/comparison/loader.d.ts +3 -0
  145. package/dist/src/comparison/loader.js +26 -0
  146. package/dist/src/comparison/loader.js.map +1 -0
  147. package/dist/src/comparison/maintainer.d.ts +47 -0
  148. package/dist/src/comparison/maintainer.js +218 -0
  149. package/dist/src/comparison/maintainer.js.map +1 -0
  150. package/dist/src/comparison/report.d.ts +2 -0
  151. package/dist/src/comparison/report.js +48 -0
  152. package/dist/src/comparison/report.js.map +1 -0
  153. package/dist/src/comparison/schema.d.ts +464 -0
  154. package/dist/src/comparison/schema.js +502 -0
  155. package/dist/src/comparison/schema.js.map +1 -0
  156. package/dist/src/contracts/archetypes.d.ts +21 -0
  157. package/dist/src/contracts/archetypes.js +102 -0
  158. package/dist/src/contracts/archetypes.js.map +1 -0
  159. package/dist/src/contracts/journeys.d.ts +7 -0
  160. package/dist/src/contracts/journeys.js +32 -0
  161. package/dist/src/contracts/journeys.js.map +1 -0
  162. package/dist/src/contracts/report.d.ts +2 -0
  163. package/dist/src/contracts/report.js +33 -0
  164. package/dist/src/contracts/report.js.map +1 -0
  165. package/dist/src/contracts/schema.d.ts +1038 -0
  166. package/dist/src/contracts/schema.js +385 -0
  167. package/dist/src/contracts/schema.js.map +1 -0
  168. package/dist/src/contracts/validator.d.ts +12 -0
  169. package/dist/src/contracts/validator.js +303 -0
  170. package/dist/src/contracts/validator.js.map +1 -0
  171. package/dist/src/corpus/evaluator.d.ts +2 -0
  172. package/dist/src/corpus/evaluator.js +203 -0
  173. package/dist/src/corpus/evaluator.js.map +1 -0
  174. package/dist/src/corpus/loader.d.ts +2 -0
  175. package/dist/src/corpus/loader.js +20 -0
  176. package/dist/src/corpus/loader.js.map +1 -0
  177. package/dist/src/corpus/report.d.ts +2 -0
  178. package/dist/src/corpus/report.js +33 -0
  179. package/dist/src/corpus/report.js.map +1 -0
  180. package/dist/src/corpus/schema.d.ts +316 -0
  181. package/dist/src/corpus/schema.js +269 -0
  182. package/dist/src/corpus/schema.js.map +1 -0
  183. package/dist/src/design-intelligence/loader.d.ts +2 -0
  184. package/dist/src/design-intelligence/loader.js +21 -0
  185. package/dist/src/design-intelligence/loader.js.map +1 -0
  186. package/dist/src/design-intelligence/report.d.ts +2 -0
  187. package/dist/src/design-intelligence/report.js +36 -0
  188. package/dist/src/design-intelligence/report.js.map +1 -0
  189. package/dist/src/design-intelligence/schema.d.ts +838 -0
  190. package/dist/src/design-intelligence/schema.js +854 -0
  191. package/dist/src/design-intelligence/schema.js.map +1 -0
  192. package/dist/src/design-intelligence/validator.d.ts +2 -0
  193. package/dist/src/design-intelligence/validator.js +1371 -0
  194. package/dist/src/design-intelligence/validator.js.map +1 -0
  195. package/dist/src/design-plan/compiler.d.ts +8 -0
  196. package/dist/src/design-plan/compiler.js +288 -0
  197. package/dist/src/design-plan/compiler.js.map +1 -0
  198. package/dist/src/design-plan/report.d.ts +2 -0
  199. package/dist/src/design-plan/report.js +28 -0
  200. package/dist/src/design-plan/report.js.map +1 -0
  201. package/dist/src/design-plan/schema.d.ts +202 -0
  202. package/dist/src/design-plan/schema.js +76 -0
  203. package/dist/src/design-plan/schema.js.map +1 -0
  204. package/dist/src/generation/loader.d.ts +2 -0
  205. package/dist/src/generation/loader.js +21 -0
  206. package/dist/src/generation/loader.js.map +1 -0
  207. package/dist/src/generation/policy.d.ts +12 -0
  208. package/dist/src/generation/policy.js +62 -0
  209. package/dist/src/generation/policy.js.map +1 -0
  210. package/dist/src/generation/react-typescript.d.ts +6 -0
  211. package/dist/src/generation/react-typescript.js +538 -0
  212. package/dist/src/generation/react-typescript.js.map +1 -0
  213. package/dist/src/generation/report.d.ts +2 -0
  214. package/dist/src/generation/report.js +21 -0
  215. package/dist/src/generation/report.js.map +1 -0
  216. package/dist/src/generation/schema.d.ts +44 -0
  217. package/dist/src/generation/schema.js +50 -0
  218. package/dist/src/generation/schema.js.map +1 -0
  219. package/dist/src/generation/templates/tokens.d.ts +1 -0
  220. package/dist/src/generation/templates/tokens.js +59 -0
  221. package/dist/src/generation/templates/tokens.js.map +1 -0
  222. package/dist/src/heuristics/evaluator.d.ts +2 -0
  223. package/dist/src/heuristics/evaluator.js +65 -0
  224. package/dist/src/heuristics/evaluator.js.map +1 -0
  225. package/dist/src/heuristics/loader.d.ts +2 -0
  226. package/dist/src/heuristics/loader.js +21 -0
  227. package/dist/src/heuristics/loader.js.map +1 -0
  228. package/dist/src/heuristics/report.d.ts +3 -0
  229. package/dist/src/heuristics/report.js +31 -0
  230. package/dist/src/heuristics/report.js.map +1 -0
  231. package/dist/src/heuristics/schema.d.ts +198 -0
  232. package/dist/src/heuristics/schema.js +197 -0
  233. package/dist/src/heuristics/schema.js.map +1 -0
  234. package/dist/src/information-design/loader.d.ts +2 -0
  235. package/dist/src/information-design/loader.js +21 -0
  236. package/dist/src/information-design/loader.js.map +1 -0
  237. package/dist/src/information-design/report.d.ts +2 -0
  238. package/dist/src/information-design/report.js +27 -0
  239. package/dist/src/information-design/report.js.map +1 -0
  240. package/dist/src/information-design/schema.d.ts +370 -0
  241. package/dist/src/information-design/schema.js +329 -0
  242. package/dist/src/information-design/schema.js.map +1 -0
  243. package/dist/src/information-design/validator.d.ts +2 -0
  244. package/dist/src/information-design/validator.js +242 -0
  245. package/dist/src/information-design/validator.js.map +1 -0
  246. package/dist/src/interface-trust/loader.d.ts +2 -0
  247. package/dist/src/interface-trust/loader.js +21 -0
  248. package/dist/src/interface-trust/loader.js.map +1 -0
  249. package/dist/src/interface-trust/report.d.ts +2 -0
  250. package/dist/src/interface-trust/report.js +26 -0
  251. package/dist/src/interface-trust/report.js.map +1 -0
  252. package/dist/src/interface-trust/schema.d.ts +299 -0
  253. package/dist/src/interface-trust/schema.js +238 -0
  254. package/dist/src/interface-trust/schema.js.map +1 -0
  255. package/dist/src/interface-trust/validator.d.ts +2 -0
  256. package/dist/src/interface-trust/validator.js +283 -0
  257. package/dist/src/interface-trust/validator.js.map +1 -0
  258. package/dist/src/portfolio/adapter-report.d.ts +3 -0
  259. package/dist/src/portfolio/adapter-report.js +38 -0
  260. package/dist/src/portfolio/adapter-report.js.map +1 -0
  261. package/dist/src/portfolio/adapters.d.ts +37 -0
  262. package/dist/src/portfolio/adapters.js +325 -0
  263. package/dist/src/portfolio/adapters.js.map +1 -0
  264. package/dist/src/portfolio/evidence.d.ts +9 -0
  265. package/dist/src/portfolio/evidence.js +233 -0
  266. package/dist/src/portfolio/evidence.js.map +1 -0
  267. package/dist/src/portfolio/files.d.ts +8 -0
  268. package/dist/src/portfolio/files.js +77 -0
  269. package/dist/src/portfolio/files.js.map +1 -0
  270. package/dist/src/portfolio/fixture-server.d.ts +11 -0
  271. package/dist/src/portfolio/fixture-server.js +131 -0
  272. package/dist/src/portfolio/fixture-server.js.map +1 -0
  273. package/dist/src/portfolio/loader.d.ts +2 -0
  274. package/dist/src/portfolio/loader.js +21 -0
  275. package/dist/src/portfolio/loader.js.map +1 -0
  276. package/dist/src/portfolio/mcp.d.ts +186 -0
  277. package/dist/src/portfolio/mcp.js +117 -0
  278. package/dist/src/portfolio/mcp.js.map +1 -0
  279. package/dist/src/portfolio/promotion-schema.d.ts +220 -0
  280. package/dist/src/portfolio/promotion-schema.js +148 -0
  281. package/dist/src/portfolio/promotion-schema.js.map +1 -0
  282. package/dist/src/portfolio/promotion.d.ts +4 -0
  283. package/dist/src/portfolio/promotion.js +160 -0
  284. package/dist/src/portfolio/promotion.js.map +1 -0
  285. package/dist/src/portfolio/qualification-schema.d.ts +268 -0
  286. package/dist/src/portfolio/qualification-schema.js +112 -0
  287. package/dist/src/portfolio/qualification-schema.js.map +1 -0
  288. package/dist/src/portfolio/qualification.d.ts +4 -0
  289. package/dist/src/portfolio/qualification.js +157 -0
  290. package/dist/src/portfolio/qualification.js.map +1 -0
  291. package/dist/src/portfolio/registry.d.ts +34 -0
  292. package/dist/src/portfolio/registry.js +240 -0
  293. package/dist/src/portfolio/registry.js.map +1 -0
  294. package/dist/src/portfolio/report.d.ts +4 -0
  295. package/dist/src/portfolio/report.js +47 -0
  296. package/dist/src/portfolio/report.js.map +1 -0
  297. package/dist/src/portfolio/run-schema.d.ts +135 -0
  298. package/dist/src/portfolio/run-schema.js +81 -0
  299. package/dist/src/portfolio/run-schema.js.map +1 -0
  300. package/dist/src/portfolio/runner.d.ts +118 -0
  301. package/dist/src/portfolio/runner.js +423 -0
  302. package/dist/src/portfolio/runner.js.map +1 -0
  303. package/dist/src/portfolio/schema.d.ts +251 -0
  304. package/dist/src/portfolio/schema.js +317 -0
  305. package/dist/src/portfolio/schema.js.map +1 -0
  306. package/dist/src/portfolio/snapshot.d.ts +89 -0
  307. package/dist/src/portfolio/snapshot.js +548 -0
  308. package/dist/src/portfolio/snapshot.js.map +1 -0
  309. package/dist/src/portfolio/taxonomy-schema.d.ts +215 -0
  310. package/dist/src/portfolio/taxonomy-schema.js +74 -0
  311. package/dist/src/portfolio/taxonomy-schema.js.map +1 -0
  312. package/dist/src/portfolio/taxonomy.d.ts +5 -0
  313. package/dist/src/portfolio/taxonomy.js +236 -0
  314. package/dist/src/portfolio/taxonomy.js.map +1 -0
  315. package/dist/src/portfolio/vault.d.ts +53 -0
  316. package/dist/src/portfolio/vault.js +176 -0
  317. package/dist/src/portfolio/vault.js.map +1 -0
  318. package/dist/src/product-brief/loader.d.ts +2 -0
  319. package/dist/src/product-brief/loader.js +21 -0
  320. package/dist/src/product-brief/loader.js.map +1 -0
  321. package/dist/src/product-brief/report.d.ts +2 -0
  322. package/dist/src/product-brief/report.js +22 -0
  323. package/dist/src/product-brief/report.js.map +1 -0
  324. package/dist/src/product-brief/schema.d.ts +367 -0
  325. package/dist/src/product-brief/schema.js +272 -0
  326. package/dist/src/product-brief/schema.js.map +1 -0
  327. package/dist/src/product-brief/validator.d.ts +2 -0
  328. package/dist/src/product-brief/validator.js +251 -0
  329. package/dist/src/product-brief/validator.js.map +1 -0
  330. package/dist/src/product.d.ts +7 -0
  331. package/dist/src/product.js +28 -0
  332. package/dist/src/product.js.map +1 -0
  333. package/dist/src/quality-gate/report.d.ts +2 -0
  334. package/dist/src/quality-gate/report.js +46 -0
  335. package/dist/src/quality-gate/report.js.map +1 -0
  336. package/dist/src/quality-gate/runner.d.ts +2 -0
  337. package/dist/src/quality-gate/runner.js +175 -0
  338. package/dist/src/quality-gate/runner.js.map +1 -0
  339. package/dist/src/quality-gate/schema.d.ts +75 -0
  340. package/dist/src/quality-gate/schema.js +37 -0
  341. package/dist/src/quality-gate/schema.js.map +1 -0
  342. package/dist/src/quality-gate/types.d.ts +49 -0
  343. package/dist/src/quality-gate/types.js +2 -0
  344. package/dist/src/quality-gate/types.js.map +1 -0
  345. package/dist/src/repair/loader.d.ts +2 -0
  346. package/dist/src/repair/loader.js +11 -0
  347. package/dist/src/repair/loader.js.map +1 -0
  348. package/dist/src/repair/policy.d.ts +16 -0
  349. package/dist/src/repair/policy.js +65 -0
  350. package/dist/src/repair/policy.js.map +1 -0
  351. package/dist/src/repair/report.d.ts +2 -0
  352. package/dist/src/repair/report.js +32 -0
  353. package/dist/src/repair/report.js.map +1 -0
  354. package/dist/src/repair/runner.d.ts +17 -0
  355. package/dist/src/repair/runner.js +511 -0
  356. package/dist/src/repair/runner.js.map +1 -0
  357. package/dist/src/repair/schema.d.ts +264 -0
  358. package/dist/src/repair/schema.js +202 -0
  359. package/dist/src/repair/schema.js.map +1 -0
  360. package/dist/src/retrieval/report.d.ts +2 -0
  361. package/dist/src/retrieval/report.js +21 -0
  362. package/dist/src/retrieval/report.js.map +1 -0
  363. package/dist/src/retrieval/schema.d.ts +123 -0
  364. package/dist/src/retrieval/schema.js +77 -0
  365. package/dist/src/retrieval/schema.js.map +1 -0
  366. package/dist/src/retrieval/search.d.ts +26 -0
  367. package/dist/src/retrieval/search.js +415 -0
  368. package/dist/src/retrieval/search.js.map +1 -0
  369. package/dist/src/runtime/advanced-checks.d.ts +6 -0
  370. package/dist/src/runtime/advanced-checks.js +487 -0
  371. package/dist/src/runtime/advanced-checks.js.map +1 -0
  372. package/dist/src/runtime/composition-checks.d.ts +5 -0
  373. package/dist/src/runtime/composition-checks.js +307 -0
  374. package/dist/src/runtime/composition-checks.js.map +1 -0
  375. package/dist/src/runtime/interface-checks.d.ts +12 -0
  376. package/dist/src/runtime/interface-checks.js +224 -0
  377. package/dist/src/runtime/interface-checks.js.map +1 -0
  378. package/dist/src/runtime/policy.d.ts +13 -0
  379. package/dist/src/runtime/policy.js +97 -0
  380. package/dist/src/runtime/policy.js.map +1 -0
  381. package/dist/src/runtime/report.d.ts +2 -0
  382. package/dist/src/runtime/report.js +48 -0
  383. package/dist/src/runtime/report.js.map +1 -0
  384. package/dist/src/runtime/schema.d.ts +406 -0
  385. package/dist/src/runtime/schema.js +308 -0
  386. package/dist/src/runtime/schema.js.map +1 -0
  387. package/dist/src/runtime/types.d.ts +177 -0
  388. package/dist/src/runtime/types.js +2 -0
  389. package/dist/src/runtime/types.js.map +1 -0
  390. package/dist/src/runtime/verifier.d.ts +2 -0
  391. package/dist/src/runtime/verifier.js +1201 -0
  392. package/dist/src/runtime/verifier.js.map +1 -0
  393. package/dist/src/server.d.ts +2 -0
  394. package/dist/src/server.js +1352 -0
  395. package/dist/src/server.js.map +1 -0
  396. package/docs/installation.md +337 -0
  397. package/knowledge-base/INDEX.md +285 -0
  398. package/knowledge-base/benchmarks/aegisops/CALIBRATION.md +52 -0
  399. package/knowledge-base/benchmarks/aegisops/MANIFEST.md +56 -0
  400. package/knowledge-base/benchmarks/aegisops/SOURCE-EVIDENCE.md +45 -0
  401. package/knowledge-base/benchmarks/aegisops/acceptance-criteria.md +42 -0
  402. package/knowledge-base/benchmarks/aegisops/anti-patterns.md +19 -0
  403. package/knowledge-base/benchmarks/aegisops/attestations.template.yaml +3 -0
  404. package/knowledge-base/benchmarks/aegisops/attestations.yaml +115 -0
  405. package/knowledge-base/benchmarks/aegisops/journeys.json +91 -0
  406. package/knowledge-base/benchmarks/aegisops/product-contract.yaml +328 -0
  407. package/knowledge-base/benchmarks/azure-optimizer/SOURCE-EVIDENCE.md +26 -0
  408. package/knowledge-base/benchmarks/azure-optimizer/V2-IMPLEMENTATION.md +39 -0
  409. package/knowledge-base/benchmarks/azure-optimizer/acceptance-criteria.md +23 -0
  410. package/knowledge-base/benchmarks/azure-optimizer/anti-patterns.md +13 -0
  411. package/knowledge-base/benchmarks/azure-optimizer/journeys.json +88 -0
  412. package/knowledge-base/benchmarks/azure-optimizer/product-contract.yaml +216 -0
  413. package/knowledge-base/benchmarks/azure-optimizer/v2-human-review-methodology.yaml +171 -0
  414. package/knowledge-base/benchmarks/azure-optimizer/v2-journeys.json +139 -0
  415. package/knowledge-base/benchmarks/corpus/PROVENANCE.md +21 -0
  416. package/knowledge-base/benchmarks/corpus/README.md +30 -0
  417. package/knowledge-base/benchmarks/corpus/cases/anti-slop-negative/package.json +9 -0
  418. package/knowledge-base/benchmarks/corpus/cases/anti-slop-negative/src/FakeDashboard.tsx +10 -0
  419. package/knowledge-base/benchmarks/corpus/cases/anti-slop-positive/package.json +9 -0
  420. package/knowledge-base/benchmarks/corpus/cases/anti-slop-positive/src/Progress.tsx +15 -0
  421. package/knowledge-base/benchmarks/corpus/cases/architecture-negative/package.json +9 -0
  422. package/knowledge-base/benchmarks/corpus/cases/architecture-negative/src/OperationsPanel.tsx +40 -0
  423. package/knowledge-base/benchmarks/corpus/cases/architecture-positive/package.json +9 -0
  424. package/knowledge-base/benchmarks/corpus/cases/architecture-positive/src/Dashboard.tsx +17 -0
  425. package/knowledge-base/benchmarks/corpus/cases/architecture-positive/src/theme.css +15 -0
  426. package/knowledge-base/benchmarks/corpus/cases/task-incomplete/SOURCE-EVIDENCE.md +3 -0
  427. package/knowledge-base/benchmarks/corpus/cases/task-incomplete/journeys.json +20 -0
  428. package/knowledge-base/benchmarks/corpus/cases/task-incomplete/product-contract.yaml +78 -0
  429. package/knowledge-base/benchmarks/corpus/corpus.schema.yaml +159 -0
  430. package/knowledge-base/benchmarks/corpus/corpus.yaml +209 -0
  431. package/knowledge-base/benchmarks/interface-quality/README.md +26 -0
  432. package/knowledge-base/benchmarks/interface-quality/SOLO-MAINTAINER-TRACK.md +35 -0
  433. package/knowledge-base/benchmarks/interface-quality/comparison-methodology-v1.1.schema.yaml +288 -0
  434. package/knowledge-base/benchmarks/interface-quality/comparison-methodology.schema.yaml +235 -0
  435. package/knowledge-base/benchmarks/interface-quality/comparison-methodology.template.yaml +181 -0
  436. package/knowledge-base/benchmarks/interface-quality/evidence/example-runtime-report.json +11 -0
  437. package/knowledge-base/benchmarks/interface-quality/review-session.schema.yaml +14 -0
  438. package/knowledge-base/benchmarks/interface-quality/review.schema.yaml +296 -0
  439. package/knowledge-base/benchmarks/interface-quality/review.template.yaml +43 -0
  440. package/knowledge-base/benchmarks/portfolio-corpus/ADAPTERS.md +68 -0
  441. package/knowledge-base/benchmarks/portfolio-corpus/PORTFOLIO-RUNNER.md +131 -0
  442. package/knowledge-base/benchmarks/portfolio-corpus/PRODUCT-TASK-CONTRACTS.md +29 -0
  443. package/knowledge-base/benchmarks/portfolio-corpus/PROMOTED-RULES.md +31 -0
  444. package/knowledge-base/benchmarks/portfolio-corpus/archetype-profiles.yaml +26 -0
  445. package/knowledge-base/benchmarks/portfolio-corpus/product-task-profile.schema.yaml +105 -0
  446. package/knowledge-base/benchmarks/portfolio-corpus/registry.schema.yaml +188 -0
  447. package/knowledge-base/benchmarks/portfolio-corpus/registry.template.yaml +63 -0
  448. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/component-size-abstention.json +10 -0
  449. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/component-size-negative.json +10 -0
  450. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/component-size-positive.json +10 -0
  451. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/interactive-integrity-abstention.json +10 -0
  452. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/interactive-integrity-negative.json +10 -0
  453. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/interactive-integrity-positive.json +10 -0
  454. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/raw-design-values-abstention.json +10 -0
  455. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/raw-design-values-negative.json +10 -0
  456. package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/raw-design-values-positive.json +10 -0
  457. package/knowledge-base/benchmarks/portfolio-corpus/rule-holdout-evaluation.template.json +14 -0
  458. package/knowledge-base/benchmarks/portfolio-corpus/rule-promotion-evidence.template.json +24 -0
  459. package/knowledge-base/benchmarks/portfolio-corpus/v3-command-evidence.template.json +17 -0
  460. package/knowledge-base/benchmarks/portfolio-corpus/v3-qualification-evidence.template.json +29 -0
  461. package/knowledge-base/benchmarks/scenestart/CALIBRATION.md +95 -0
  462. package/knowledge-base/benchmarks/scenestart/MANIFEST.md +53 -0
  463. package/knowledge-base/benchmarks/scenestart/SOURCE-EVIDENCE.md +43 -0
  464. package/knowledge-base/benchmarks/scenestart/acceptance-criteria.md +59 -0
  465. package/knowledge-base/benchmarks/scenestart/anti-patterns.md +26 -0
  466. package/knowledge-base/benchmarks/scenestart/attestations.template.yaml +3 -0
  467. package/knowledge-base/benchmarks/scenestart/attestations.yaml +21 -0
  468. package/knowledge-base/benchmarks/scenestart/human-review.md +99 -0
  469. package/knowledge-base/benchmarks/scenestart/human-review.template.md +105 -0
  470. package/knowledge-base/benchmarks/scenestart/journeys.json +141 -0
  471. package/knowledge-base/benchmarks/scenestart/product-contract.yaml +427 -0
  472. package/knowledge-base/dependencies.yaml +69 -0
  473. package/knowledge-base/design-intelligence/MASTER.md +87 -0
  474. package/knowledge-base/design-intelligence/asset-generation.md +66 -0
  475. package/knowledge-base/design-intelligence/brand-systems.md +69 -0
  476. package/knowledge-base/design-intelligence/closed-loop-repair.md +95 -0
  477. package/knowledge-base/design-intelligence/design-deliverable.schema.yaml +1194 -0
  478. package/knowledge-base/design-intelligence/design-deliverable.template.yaml +591 -0
  479. package/knowledge-base/design-intelligence/design-plan.md +78 -0
  480. package/knowledge-base/design-intelligence/design-plan.schema.yaml +621 -0
  481. package/knowledge-base/design-intelligence/figma-production.md +63 -0
  482. package/knowledge-base/design-intelligence/generation-adapter.md +72 -0
  483. package/knowledge-base/design-intelligence/generation-adapter.schema.yaml +47 -0
  484. package/knowledge-base/design-intelligence/iconography.md +46 -0
  485. package/knowledge-base/design-intelligence/information-design.md +104 -0
  486. package/knowledge-base/design-intelligence/information-design.schema.yaml +390 -0
  487. package/knowledge-base/design-intelligence/information-design.template.yaml +281 -0
  488. package/knowledge-base/design-intelligence/interaction-recovery-verification.md +72 -0
  489. package/knowledge-base/design-intelligence/interface-trust.md +103 -0
  490. package/knowledge-base/design-intelligence/interface-trust.schema.yaml +263 -0
  491. package/knowledge-base/design-intelligence/interface-trust.template.yaml +173 -0
  492. package/knowledge-base/design-intelligence/licensing-and-provenance.md +59 -0
  493. package/knowledge-base/design-intelligence/presentation-design.md +56 -0
  494. package/knowledge-base/design-intelligence/product-design-brief.md +67 -0
  495. package/knowledge-base/design-intelligence/product-design-brief.schema.yaml +279 -0
  496. package/knowledge-base/design-intelligence/product-design-brief.template.yaml +225 -0
  497. package/knowledge-base/design-intelligence/repair-request.schema.yaml +95 -0
  498. package/knowledge-base/design-intelligence/repair-request.template.yaml +39 -0
  499. package/knowledge-base/design-intelligence/visual-accessibility.md +56 -0
  500. package/knowledge-base/design-intelligence/visual-polish.md +172 -0
  501. package/knowledge-base/maintained/architecture/MASTER.md +22 -0
  502. package/knowledge-base/maintained/architecture/component-boundaries.md +30 -0
  503. package/knowledge-base/maintained/architecture/product-platforms.md +25 -0
  504. package/knowledge-base/maintained/architecture/quality-attributes-and-evaluation.md +35 -0
  505. package/knowledge-base/maintained/product-patterns/MASTER.md +10 -0
  506. package/knowledge-base/maintained/product-patterns/ai-workspaces.md +26 -0
  507. package/knowledge-base/maintained/product-patterns/operational-dashboards.md +22 -0
  508. package/knowledge-base/provenance.yaml +196 -0
  509. package/knowledge-base/retrieval-scope.yaml +43 -0
  510. package/knowledge-base/usability-evaluation/HEURISTIC_EVALUATION.md +115 -0
  511. package/knowledge-base/usability-evaluation/heuristic-review.schema.yaml +210 -0
  512. package/knowledge-base/usability-evaluation/heuristic-review.template.yaml +37 -0
  513. package/package.json +133 -0
@@ -0,0 +1,14 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: https://local.ztothez-design-engineering/schemas/interface-comparison-review-session-1.0.schema.json
3
+ title: ZtotheZ Interface Comparison Review Session
4
+ description: Portable envelope for draft or completed human-expert and representative-user comparison sessions.
5
+ type: object
6
+ additionalProperties: false
7
+ required: [version, status, session]
8
+ properties:
9
+ version:
10
+ const: "1.0"
11
+ status:
12
+ enum: [draft, complete]
13
+ session:
14
+ $ref: review.schema.yaml#/$defs/session
@@ -0,0 +1,296 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: https://local.ztothez-design-engineering/schemas/interface-comparison-review-1.0.schema.json
3
+ title: ZtotheZ Interface Comparison Review
4
+ description: Version 1.0 review, claim-ledger, retained-artifact, and evidence-provenance contract.
5
+ type: object
6
+ additionalProperties: false
7
+ required: [version, id, methodologyId, preparedAt, preparedBy, candidates, artifacts, stages, sessions, claims]
8
+ properties:
9
+ version:
10
+ const: "1.0"
11
+ id:
12
+ $ref: "#/$defs/id"
13
+ methodologyId:
14
+ $ref: "#/$defs/id"
15
+ preparedAt:
16
+ type: string
17
+ format: date-time
18
+ preparedBy:
19
+ $ref: "#/$defs/preparedBy"
20
+ candidates:
21
+ type: array
22
+ minItems: 2
23
+ maxItems: 12
24
+ items:
25
+ $ref: "#/$defs/id"
26
+ artifacts:
27
+ type: array
28
+ maxItems: 10000
29
+ items:
30
+ $ref: "#/$defs/artifact"
31
+ stages:
32
+ type: array
33
+ maxItems: 100
34
+ items:
35
+ type: object
36
+ additionalProperties: false
37
+ required: [id, candidate, status, evidenceRefs]
38
+ properties:
39
+ id:
40
+ $ref: "#/$defs/id"
41
+ candidate:
42
+ $ref: "#/$defs/evidenceSubject"
43
+ status:
44
+ enum: [pass, fail, partial, not-run]
45
+ evidenceRefs:
46
+ $ref: "#/$defs/idList"
47
+ sessions:
48
+ type: array
49
+ maxItems: 2000
50
+ items:
51
+ $ref: "#/$defs/session"
52
+ claims:
53
+ type: array
54
+ minItems: 1
55
+ maxItems: 10000
56
+ items:
57
+ $ref: "#/$defs/claim"
58
+ $defs:
59
+ id:
60
+ type: string
61
+ pattern: "^[a-z0-9][a-z0-9-]{0,63}$"
62
+ shortText:
63
+ type: string
64
+ minLength: 1
65
+ maxLength: 256
66
+ text:
67
+ type: string
68
+ minLength: 1
69
+ maxLength: 2048
70
+ path:
71
+ type: string
72
+ minLength: 1
73
+ maxLength: 1024
74
+ idList:
75
+ type: array
76
+ maxItems: 100
77
+ items:
78
+ $ref: "#/$defs/id"
79
+ evidenceLevel:
80
+ enum: [automated, ai-assisted-expert, human-expert, representative-user]
81
+ evidenceSubject:
82
+ anyOf:
83
+ - $ref: "#/$defs/id"
84
+ - const: comparison
85
+ preparedBy:
86
+ type: object
87
+ additionalProperties: false
88
+ required: [type, name]
89
+ properties:
90
+ type:
91
+ enum: [agent, human, mixed]
92
+ name:
93
+ $ref: "#/$defs/shortText"
94
+ accessibility:
95
+ type: object
96
+ additionalProperties: false
97
+ required: [standard, version, level, coverage]
98
+ properties:
99
+ standard:
100
+ const: WCAG
101
+ version:
102
+ enum: ["2.1", "2.2"]
103
+ level:
104
+ enum: [A, AA, AAA]
105
+ coverage:
106
+ enum: [sampled-states, declared-routes, full-product]
107
+ artifact:
108
+ type: object
109
+ additionalProperties: false
110
+ required: [id, candidate, stage, kind, path, producer, retained, scope, recordedAt, sourceRevision, sha256]
111
+ allOf:
112
+ - if:
113
+ properties:
114
+ kind:
115
+ const: screenshot
116
+ then:
117
+ required: [capture]
118
+ else:
119
+ not:
120
+ required: [capture]
121
+ properties:
122
+ id:
123
+ $ref: "#/$defs/id"
124
+ candidate:
125
+ $ref: "#/$defs/evidenceSubject"
126
+ stage:
127
+ $ref: "#/$defs/id"
128
+ kind:
129
+ enum: [build-report, typecheck-report, test-report, static-audit, runtime-report, journey-report, screenshot, export, source-inspection, human-review, user-session]
130
+ path:
131
+ $ref: "#/$defs/path"
132
+ producer:
133
+ enum: [automation, agent, human]
134
+ retained:
135
+ type: boolean
136
+ scope:
137
+ type: string
138
+ minLength: 1
139
+ maxLength: 1024
140
+ recordedAt:
141
+ type: string
142
+ format: date-time
143
+ sourceRevision:
144
+ $ref: "#/$defs/shortText"
145
+ sha256:
146
+ type: string
147
+ pattern: "^[a-f0-9]{64}$"
148
+ capture:
149
+ type: object
150
+ additionalProperties: false
151
+ required: [viewport, state, width, height]
152
+ properties:
153
+ viewport:
154
+ $ref: "#/$defs/id"
155
+ state:
156
+ $ref: "#/$defs/id"
157
+ width:
158
+ type: integer
159
+ minimum: 240
160
+ maximum: 3840
161
+ height:
162
+ type: integer
163
+ minimum: 240
164
+ maximum: 5000
165
+ accessibility:
166
+ $ref: "#/$defs/accessibility"
167
+ taskResult:
168
+ type: object
169
+ additionalProperties: false
170
+ required: [task, candidate, outcome, navigationErrors, recoveryAttempts]
171
+ properties:
172
+ task:
173
+ $ref: "#/$defs/id"
174
+ candidate:
175
+ $ref: "#/$defs/id"
176
+ outcome:
177
+ enum: [completed, partial, failed, not-run]
178
+ durationSeconds:
179
+ type: number
180
+ minimum: 0
181
+ maximum: 86400
182
+ navigationErrors:
183
+ type: integer
184
+ minimum: 0
185
+ recoveryAttempts:
186
+ type: integer
187
+ minimum: 0
188
+ comprehensionCorrect:
189
+ type: boolean
190
+ confidence:
191
+ type: integer
192
+ minimum: 1
193
+ maximum: 5
194
+ notes:
195
+ $ref: "#/$defs/text"
196
+ rating:
197
+ type: object
198
+ additionalProperties: false
199
+ required: [candidate, criterion, score, rationale]
200
+ properties:
201
+ candidate:
202
+ $ref: "#/$defs/id"
203
+ criterion:
204
+ $ref: "#/$defs/id"
205
+ score:
206
+ type: integer
207
+ minimum: 0
208
+ maximum: 4
209
+ rationale:
210
+ $ref: "#/$defs/text"
211
+ session:
212
+ type: object
213
+ additionalProperties: false
214
+ required: [id, level, origin, candidateOrder, taskResults, ratings]
215
+ properties:
216
+ id:
217
+ $ref: "#/$defs/id"
218
+ level:
219
+ enum: [ai-assisted-expert, human-expert, representative-user]
220
+ origin:
221
+ enum: [agent-generated, reviewer-supplied]
222
+ contributor:
223
+ $ref: "#/$defs/shortText"
224
+ recordedAt:
225
+ type: string
226
+ format: date-time
227
+ participantId:
228
+ $ref: "#/$defs/id"
229
+ blinding:
230
+ type: object
231
+ additionalProperties: false
232
+ required: [candidateIdentitiesWithheld, priorCandidateExposure, conflicts]
233
+ properties:
234
+ candidateIdentitiesWithheld:
235
+ type: boolean
236
+ priorCandidateExposure:
237
+ type: boolean
238
+ conflicts:
239
+ type: array
240
+ maxItems: 20
241
+ items:
242
+ type: string
243
+ minLength: 1
244
+ maxLength: 512
245
+ candidateOrder:
246
+ type: array
247
+ minItems: 2
248
+ maxItems: 12
249
+ items:
250
+ $ref: "#/$defs/id"
251
+ taskResults:
252
+ type: array
253
+ maxItems: 2000
254
+ items:
255
+ $ref: "#/$defs/taskResult"
256
+ ratings:
257
+ type: array
258
+ maxItems: 2000
259
+ items:
260
+ $ref: "#/$defs/rating"
261
+ claim:
262
+ type: object
263
+ additionalProperties: false
264
+ required: [id, candidate, kind, statement, evidenceType, evidenceRefs, sessionRefs, scope, status, limitations]
265
+ properties:
266
+ id:
267
+ $ref: "#/$defs/id"
268
+ candidate:
269
+ $ref: "#/$defs/evidenceSubject"
270
+ kind:
271
+ enum: [overall-result, stage-result, accessibility-conformance, design-quality, implementation-fact]
272
+ statement:
273
+ $ref: "#/$defs/text"
274
+ evidenceType:
275
+ $ref: "#/$defs/evidenceLevel"
276
+ evidenceRefs:
277
+ $ref: "#/$defs/idList"
278
+ sessionRefs:
279
+ $ref: "#/$defs/idList"
280
+ scope:
281
+ type: string
282
+ minLength: 1
283
+ maxLength: 1024
284
+ status:
285
+ enum: [verified, partial, unverified, contradicted]
286
+ outcome:
287
+ enum: [pass, fail, partial, not-evaluated]
288
+ limitations:
289
+ type: array
290
+ maxItems: 50
291
+ items:
292
+ type: string
293
+ minLength: 1
294
+ maxLength: 1024
295
+ accessibility:
296
+ $ref: "#/$defs/accessibility"
@@ -0,0 +1,43 @@
1
+ version: "1.0"
2
+ id: incomplete-operational-interface-review
3
+ methodologyId: operational-interface-comparison-v1
4
+ preparedAt: 2026-08-26T15:15:00+03:00
5
+ preparedBy:
6
+ type: agent
7
+ name: ZtotheZ Design Engineering
8
+ candidates: [anonymous-a, anonymous-b, anonymous-c, anonymous-d]
9
+ artifacts:
10
+ - id: example-runtime
11
+ candidate: anonymous-a
12
+ stage: browser-verification
13
+ kind: runtime-report
14
+ path: evidence/example-runtime-report.json
15
+ producer: automation
16
+ retained: true
17
+ scope: Synthetic template evidence for one sampled browser state; not product evidence
18
+ recordedAt: 2026-08-26T15:10:00+03:00
19
+ sourceRevision: synthetic-template-v1
20
+ sha256: 90147b28b13930154a1a0a8df490e1cdd19b92b640d4370afcb2dfd65ac6ef8b
21
+ accessibility:
22
+ standard: WCAG
23
+ version: "2.2"
24
+ level: AA
25
+ coverage: sampled-states
26
+ stages:
27
+ - id: browser-verification
28
+ candidate: anonymous-a
29
+ status: partial
30
+ evidenceRefs: [example-runtime]
31
+ sessions: []
32
+ claims:
33
+ - id: template-runtime-exists
34
+ candidate: anonymous-a
35
+ kind: implementation-fact
36
+ statement: The template includes one retained synthetic runtime artifact.
37
+ evidenceType: automated
38
+ evidenceRefs: [example-runtime]
39
+ sessionRefs: []
40
+ scope: Comparison template only
41
+ status: verified
42
+ limitations:
43
+ - This artifact does not describe or certify a product implementation.
@@ -0,0 +1,68 @@
1
+ # Portfolio Stack Adapters
2
+
3
+ Stack adapters convert local registry declarations into bounded benchmark capabilities. They do not
4
+ discover and execute package scripts. The local registry must select an adapter, declare each
5
+ capability, and provide an exact command for every executable stage.
6
+
7
+ ## Supported Adapters
8
+
9
+ | Adapter | Intended project | Browser stages |
10
+ |---|---|---|
11
+ | `react-vite` | React with Vite or TanStack Router | Supported when declared |
12
+ | `nextjs` | Next.js frontend | Supported when declared |
13
+ | `angular` | Angular frontend | Supported when declared |
14
+ | `static-web` | Static HTML, CSS, and JavaScript | Supported when declared |
15
+ | `node-python-fullstack` | Frontend with a Node or Python service | Supported when declared |
16
+ | `python-source` | Source-only Python or desktop tool | Not applicable |
17
+
18
+ Every adapter reports all eight portfolio stages. An undeclared or commandless stage is
19
+ `unsupported`. A stage outside the adapter's product surface is `not-applicable`. Neither status is
20
+ reported as a pass or a product defect.
21
+
22
+ ## Command Contract
23
+
24
+ Declare commands under `project.execution.commands`. Each stage may have at most one command.
25
+
26
+ ```yaml
27
+ technology:
28
+ framework: React with Vite
29
+ packageManager: npm
30
+ entrypoint: package.json
31
+ adapter: react-vite
32
+ capabilities:
33
+ - stage: production-build
34
+ status: supported
35
+ reason: The product has a reviewed production build.
36
+ execution:
37
+ fixtureMode: disconnected
38
+ networkPolicy: denied
39
+ lifecycleScripts: false
40
+ allowedEnvironmentVariables: []
41
+ localPorts: []
42
+ commands:
43
+ - stage: production-build
44
+ command: npm
45
+ arguments: [run, build]
46
+ cwd: .
47
+ timeoutMs: 120000
48
+ maxOutputBytes: 2097152
49
+ allowDependencyNetwork: false
50
+ ```
51
+
52
+ The executor passes arguments directly without a shell. Adapter policy permits only known
53
+ executables and stage-specific package scripts. Direct Node and Python commands must name a
54
+ contained relative script and cannot use eval or command-string flags. The snapshot runner then
55
+ enforces the working-directory boundary, environment allowlist, network policy, timeout, process
56
+ group cleanup, output ceiling, and post-run source mutation check.
57
+
58
+ ## Workflow
59
+
60
+ 1. Validate the local registry.
61
+ 2. Inspect effective capability support with `zz-design portfolio capabilities --project ID`.
62
+ 3. Resolve every warning or accept it as a documented limitation.
63
+ 4. Execute one declared stage with `zz-design portfolio run-stage --project ID --stage STAGE`.
64
+ 5. Treat `unsupported` and `not-applicable` as limitations, never successful product evidence.
65
+ 6. Treat command-policy errors, nonzero exits, and timeouts as failed execution evidence.
66
+
67
+ Original projects remain read-only. All executable commands run in disposable snapshots managed by
68
+ the mutation guard.
@@ -0,0 +1,131 @@
1
+ # Local Portfolio Benchmark Runner
2
+
3
+ The runner benchmarks authorized projects without executing inside their original roots. It creates
4
+ one disposable snapshot per project, runs only commands explicitly declared in the local registry,
5
+ checks the original source digest after execution, and retains a private structured report.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ zz-design portfolio baseline --project PROJECT_ID --run baseline-001
11
+ zz-design portfolio benchmark --cohort development --run development-001
12
+ zz-design portfolio benchmark --cohort holdout --run holdout-001
13
+ zz-design portfolio verify-unchanged --run development-001
14
+ zz-design portfolio report --run development-001
15
+ zz-design portfolio evaluate-rule --candidate rule.json --evidence rule-evidence.json --dev-run development-001 --holdout-run holdout-001
16
+ zz-design portfolio qualify-v3 --evidence qualification-evidence.json --dev-run development-001 --holdout-run holdout-001
17
+ ```
18
+
19
+ Omit `--run` from `baseline` or `benchmark` to generate a timestamped run ID. Reports are written to
20
+ `.ztothez-design-benchmarks/runs/RUN_ID/report.json` with owner-only file permissions. Run IDs may
21
+ contain letters, numbers, periods, underscores, and hyphens.
22
+
23
+ ## Execution Model
24
+
25
+ 1. Validate the local registry and reject unapproved roots or commands.
26
+ 2. Capture the project's source digest and Git revision when available.
27
+ 3. Copy approved files into a disposable workspace.
28
+ 4. Resolve the declared adapter and execute supported stages in fixed order.
29
+ 5. Serve a declared static fixture on an approved loopback port when browser evidence is enabled.
30
+ 6. Run the product contract, static audit, browser journeys, accessibility checks, acceptance
31
+ evaluation, and optional structured heuristic review against the snapshot.
32
+ 7. Stop the fixture server in all success and failure paths.
33
+ 8. Continue to the next project after findings, limitations, or unsafe configuration.
34
+ 9. Compare the original source against its pre-run digest before cleanup.
35
+ 10. Checksum retained reports, screenshots, and exports, then remove the disposable snapshot.
36
+
37
+ The runner never discovers arbitrary package scripts. Network access, lifecycle scripts, allowed
38
+ environment variable names, timeouts, commands, arguments, and working directories come from the
39
+ validated local registry.
40
+
41
+ ## Exit Codes
42
+
43
+ | Code | Meaning |
44
+ | --- | --- |
45
+ | `0` | All applicable stages passed. |
46
+ | `1` | One or more stages produced product or source findings. |
47
+ | `2` | No findings occurred, but evidence is incomplete because a stage was unsupported or not applicable. |
48
+ | `3` | At least one project had unsafe or invalid execution configuration. |
49
+ | `4` | The original source changed or source-integrity verification failed. |
50
+
51
+ Higher-severity integrity and configuration conditions take precedence over findings and
52
+ limitations when a cohort contains mixed results.
53
+
54
+ ## Browser Verification Declaration
55
+
56
+ Declare `verification` only when the snapshot contains a static fixture directory and a complete
57
+ product contract. The port must also appear in `execution.localPorts`, fixture mode must be
58
+ `local-fixture`, and both `local-fixture-server` and `browser-journeys` must be supported capabilities.
59
+ Dynamic services that cannot produce a disconnected static fixture remain an explicit verifier
60
+ limitation rather than receiving a false pass.
61
+
62
+ ## Rule Promotion Evidence
63
+
64
+ Rule promotion is fail closed. It requires complete development and holdout cohort reports plus a
65
+ version 1.0 evidence document. The evidence document binds positive, negative, and abstention
66
+ fixtures; V1/V2, retrieval, corpus, MCP, package, and independence gates; project-specific holdout
67
+ evaluations; documentation; tests; and migration guidance to checksummed repository-relative files.
68
+ The CLI verifies every checksum and rejects missing files, path traversal, and symlink escape before
69
+ evaluating the candidate.
70
+
71
+ A missing holdout project or candidate-specific holdout report is `unverified`, never `unaffected`.
72
+ Recurrence-backed candidates require the candidate report code in every declared authoring
73
+ project's retained development report. Holdout IDs must match the locked cohort exactly. Regression
74
+ or unverified outcomes block promotion, and an all-abstention result cannot establish benefit or
75
+ non-regression.
76
+
77
+ Start from `rule-promotion-evidence.template.json` and use
78
+ `rule-holdout-evaluation.template.json` for each locked holdout. Leave gates failing until their
79
+ artifacts exist, and keep private run evidence under `.ztothez-design-benchmarks/`. The CLI parses
80
+ each referenced holdout report and verifies its candidate, report code, run, project, source digest,
81
+ applicability, execution, regression, and outcome fields; a matching checksum alone is insufficient.
82
+
83
+ ## V3 Qualification Evidence
84
+
85
+ V3 qualification requires explicit checksummed CI and release evidence. No fixture or gate defaults
86
+ to passing. The evaluator enforces 12 eligible projects, five domains, three frontend stacks, four
87
+ archetypes, three locked holdouts, complete development and holdout reports, and executed
88
+ source-only, browser-only, and full-stack paths. Framework names and capability declarations alone
89
+ do not establish a benchmark path.
90
+
91
+ Start from `v3-qualification-evidence.template.json`. The qualification report emits only claims
92
+ whose specific criteria passed. Local qualification remains failed until the ignored registry and
93
+ retained runs satisfy every threshold; synthetic CI tests cannot substitute for the local corpus.
94
+
95
+ Generate a complete local evidence set with:
96
+
97
+ ```bash
98
+ npm run v3:evidence -- \
99
+ --dev-run DEVELOPMENT_RUN \
100
+ --holdout-run HOLDOUT_RUN \
101
+ --output .ztothez-design-benchmarks/evidence/v3-final
102
+ ```
103
+
104
+ Every command report references checksummed stdout and stderr logs. The script executes maintained
105
+ rule fixtures, exact CI categories, package and offline-release checks, browser-only and full-stack
106
+ snapshot fixtures, candidate-specific holdout evaluation, and final qualification. Its output must
107
+ remain under `.ztothez-design-benchmarks/`.
108
+
109
+ `benefited` in a rule holdout report means the candidate rule detected its intended condition in a
110
+ locked product. It does not mean the source product was remediated. `unaffected` means the
111
+ applicable rule executed without that finding. Product source is never changed by this workflow.
112
+
113
+ GitHub Actions runs the public synthetic subset with `--ci-only`. That subset validates the runner's
114
+ execution paths and negative controls; it does not replace the private local corpus or support a
115
+ claim that a private product passed browser or full-stack verification.
116
+
117
+ ## Read-Only MCP Access
118
+
119
+ Local portfolio MCP access is disabled by default. Enable it explicitly for a trusted local MCP
120
+ process:
121
+
122
+ ```bash
123
+ export ZTOTHEZ_DESIGN_PORTFOLIO_MCP=enabled
124
+ export ZTOTHEZ_DESIGN_PORTFOLIO_REGISTRY="$PWD/.ztothez-design-local/portfolio-registry.yaml"
125
+ export ZTOTHEZ_DESIGN_PORTFOLIO_REPORT_ROOT="$PWD/.ztothez-design-benchmarks/runs"
126
+ export ZTOTHEZ_DESIGN_PORTFOLIO_EVIDENCE_ROOT="$PWD/.ztothez-design-benchmarks/evidence"
127
+ ```
128
+
129
+ `list_portfolio_projects` lists IDs and effective capabilities.
130
+ `get_portfolio_benchmark_report` reads a completed run or one project summary. Neither tool exposes
131
+ source roots or starts project commands.
@@ -0,0 +1,29 @@
1
+ # Product Task Contracts
2
+
3
+ Product task contracts prevent a generic dashboard checklist from replacing the actual purpose of
4
+ a product. Contract version `1.1` adds an archetype-aware `benchmark` block to the existing actors,
5
+ modes, states, outputs, acceptance criteria, journeys, and viewports.
6
+
7
+ ## Required Workflow
8
+
9
+ 1. Select the closest archetype from `archetype-profiles.yaml`.
10
+ 2. Declare whether the product surface is browser, desktop, or source-only.
11
+ 3. Mark all seven quality dimensions as required or not applicable and explain every decision.
12
+ 4. Define at least one primary task from observable start state to observable success.
13
+ 5. Define at least one visible failure and recovery path.
14
+ 6. Bind browser tasks to an existing journey, route, and viewport no wider than 768 CSS pixels.
15
+ 7. Keep missing evidence as `unverified`, executed failure as `failed`, and unsupported capability as
16
+ `limitation`.
17
+ 8. Compare implementations only when they share the same task-contract ID, archetype, primary task
18
+ intent, and observable success.
19
+
20
+ ## Evidence Boundary
21
+
22
+ A valid contract proves that the task and evidence requirements are coherent. It does not prove the
23
+ product completed the task. Runtime and acceptance evidence establish behavior later. Missing
24
+ runtime results are not product failures, and an executed failed journey is not a verifier
25
+ limitation.
26
+
27
+ Source-only tools can activate source audit, architecture, state, and maintainability requirements
28
+ without declaring browser routes or responsive evidence. Browser products cannot omit their narrow
29
+ task path or call it not applicable.
@@ -0,0 +1,31 @@
1
+ # V3 Promoted Rule Set
2
+
3
+ These independently authored rules convert recurring portfolio findings into deterministic design-engineering checks. They do not contain project source, product-specific styling, private evidence, or copied third-party implementation.
4
+
5
+ ## Semantic Token Boundary
6
+
7
+ - Report code: `ZTDE-DESIGN-001`
8
+ - Boundary: flag repeated raw color, spacing, and radius values in authored interface styles when semantic tokens should define the visual system.
9
+ - Accept: declared semantic tokens and token references.
10
+ - Abstain: generated drawing code and contexts where literal values are part of a data or canvas operation.
11
+ - Migration: introduce semantic tokens by role, replace repeated literals incrementally, and verify contrast and composition after migration.
12
+
13
+ ## Interactive Control Integrity
14
+
15
+ - Report code: `ZTDE-SLOP-003`
16
+ - Boundary: flag rendered interactive controls that expose an action affordance without an action contract.
17
+ - Accept: controls connected to an explicit event or form behavior.
18
+ - Abstain: test-only fixtures and non-production examples excluded by audit policy.
19
+ - Migration: bind the control to a real task action, provide pending, success, empty, and error states where relevant, then verify keyboard operation.
20
+
21
+ ## Component Review Threshold
22
+
23
+ - Report code: `ZTDE-ARCH-001`
24
+ - Boundary: flag rendering components above the maintained 400-line review threshold.
25
+ - Accept: focused rendering components below the threshold.
26
+ - Abstain: long non-rendering modules where component-size analysis is not applicable.
27
+ - Migration: separate domain state, data access, rendering regions, and reusable controls along existing ownership boundaries. Do not split files mechanically when responsibilities remain coupled.
28
+
29
+ ## Verification
30
+
31
+ Each rule has a maintained positive, negative, and abstention fixture under `rule-fixtures/`. The regression suite materializes every fixture and executes the production repository auditor. Candidate-specific holdout reports and local portfolio evidence remain private and excluded from package output.
@@ -0,0 +1,26 @@
1
+ version: "1.0"
2
+ profiles:
3
+ - id: operational-dashboard
4
+ interfaces: [browser, desktop]
5
+ requiredDimensions: [truthful-disclosure, information-design, visual-system, accessibility, responsive-structure, state-integrity, maintainability]
6
+ - id: ai-workspace
7
+ interfaces: [browser, desktop]
8
+ requiredDimensions: [truthful-disclosure, information-design, visual-system, accessibility, responsive-structure, state-integrity, maintainability]
9
+ - id: content-site
10
+ interfaces: [browser]
11
+ requiredDimensions: [information-design, visual-system, accessibility, responsive-structure, maintainability]
12
+ - id: utility
13
+ interfaces: [browser, desktop, source-only]
14
+ requiredDimensions: [truthful-disclosure, information-design, accessibility, state-integrity, maintainability]
15
+ - id: full-stack-workflow
16
+ interfaces: [browser, desktop]
17
+ requiredDimensions: [truthful-disclosure, information-design, visual-system, accessibility, responsive-structure, state-integrity, maintainability]
18
+
19
+ evidencePolicy:
20
+ missingEvidence: unverified
21
+ failedBehavior: failed
22
+ unsupportedCapability: limitation
23
+
24
+ comparisonPolicy:
25
+ crossContractRanking: false
26
+ requirement: Compare implementations only when archetype, task-contract ID, and observable primary task success match.