@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
package/V3-ROADMAP.md ADDED
@@ -0,0 +1,605 @@
1
+ # ZtotheZ Design Engineering V3 Roadmap
2
+
3
+ V3 turns the user's existing product portfolio into a local, evidence-producing benchmark program.
4
+ Its purpose is to test whether ZtotheZ Design Engineering generalizes across real product domains,
5
+ stacks, interface types, and maturity levels without modifying, copying, or packaging the original
6
+ projects.
7
+
8
+ [`SKILL.md`](SKILL.md) remains the authoritative operating instruction. [`ROADMAP.md`](ROADMAP.md)
9
+ and [`V2-ROADMAP.md`](V2-ROADMAP.md) remain the evidence records for the completed V1 and V2
10
+ engineering programs. V3 must preserve every V1 and V2 quality, evidence, packaging, and clean-room
11
+ boundary.
12
+
13
+ ## Status Definitions
14
+
15
+ - **Done:** every deliverable and completion criterion has current passing evidence.
16
+ - **Partial:** implementation exists, but at least one required criterion is incomplete.
17
+ - **Not started:** no roadmap-specific implementation evidence exists.
18
+ - **Deferred:** deliberately outside the current release scope and not a release blocker.
19
+
20
+ ## Program Outcome
21
+
22
+ V3 must answer four questions with reproducible evidence:
23
+
24
+ 1. Does the system find useful, accurate design-engineering problems across unrelated products?
25
+ 2. Does it abstain when a rule is unsupported, inapplicable, or cannot be verified?
26
+ 3. Do promoted rules improve held-out products without overfitting to Azure Optimizer, AegisOPS,
27
+ SceneStart, or one frontend stack?
28
+ 4. Can all benchmarking run without changing an original project or exposing private source, data,
29
+ screenshots, credentials, or client information?
30
+
31
+ V3 is a benchmark and system-improvement program. It is not permission to refactor the source
32
+ projects, ingest them into the distributable knowledge base, train on their implementation, or
33
+ publish their artifacts.
34
+
35
+ ## Source Classes
36
+
37
+ The local registry may discover candidates from these user-authorized root classes:
38
+
39
+ | Root class | Intended benchmark value | Default handling |
40
+ |---|---|---|
41
+ | `Studio/clients/` | Client sites and production-facing workflows | Private, local-only, explicit project opt-in |
42
+ | `Studio/fullstack/` | Full-stack products, portfolio sites, and alternate implementations | Local-only, canonical project selection |
43
+ | `Studio/personal/` | Personal tools and complex application workflows | Private, exclude user data and credentials |
44
+ | `Studio/portfolio/` | Existing AegisOPS, Azure Optimizer, SceneStart, and visual baselines | Reuse existing contracts where available |
45
+ | `AI/` | AI workspaces, analysis tools, and mixed-stack systems | First-party projects only; exclude vendor, model, and research mirrors |
46
+ | `apps/` | Active utility applications and shared design-system consumers | Deduplicate against personal and shared roots |
47
+
48
+ Absolute paths belong only in a gitignored local registry. They must never appear in the npm
49
+ package, offline release, public evidence, retrieval index, or generated knowledge documents.
50
+
51
+ ## Non-Negotiable Safety Rules
52
+
53
+ 1. Treat every registered source root as read-only.
54
+ 2. Never run installs, formatters, builds, tests, migrations, development servers, browser sessions,
55
+ or cleanup commands with an original project as the working directory.
56
+ 3. Run executable stages only in a disposable snapshot owned by this repository's local benchmark
57
+ workspace.
58
+ 4. Record source state before and after every run. Fail the run if tracked content, untracked
59
+ content, file metadata covered by policy, or repository status changes.
60
+ 5. Never read or copy `.env` files, credentials, keys, browser profiles, databases, uploads, user
61
+ records, model weights, dependency trees, build output, or operating-system metadata.
62
+ 6. Do not contact production services. Browser journeys use declared local fixtures, mocks, or
63
+ disconnected states with truthful disclosure.
64
+ 7. Do not publish client artifacts or private screenshots. Publication requires an explicit
65
+ per-project policy in the local registry.
66
+ 8. Do not add project source to BM25 retrieval, MCP knowledge reads, package files, release archives,
67
+ or skill instructions.
68
+ 9. Do not copy project-specific code, components, visual styling, content, or brand assets into the
69
+ maintained system. Promote only independently authored, generalized rules supported by evidence.
70
+ 10. Remediation output is advisory. Emit reports or patch files into the benchmark workspace and
71
+ apply nothing to an original project without a separate explicit user request.
72
+
73
+ ## Roadmap Items
74
+
75
+ ### 1. Local Corpus Registry And Classification
76
+
77
+ Status: **Done**
78
+
79
+ Implemented evidence: `knowledge-base/benchmarks/portfolio-corpus/` contains a portable version 1.0
80
+ schema and machine-neutral template. `src/portfolio/` validates the runtime schema, canonical root
81
+ and project paths, ownership, confidentiality, publication policy, cohorts, capabilities, path
82
+ patterns, entrypoints, duplicate and nested roots, duplicate projects, and real-path containment.
83
+ The `portfolio validate-registry` and `portfolio inventory` CLI commands expose local reports without
84
+ including absolute paths. The ignored local registry defines all six approved root classes and
85
+ enables only AegisOPS, Azure Optimizer, and SceneStart, which already have maintained benchmark
86
+ contracts. Metadata-only discovery currently identifies 20 manifest-bearing candidates after
87
+ vendor, research, dependency, model, backup, and comparison-tree exclusions.
88
+
89
+ Create a versioned public schema and a gitignored local registry. Discovery may report candidate
90
+ metadata, but a project becomes benchmark-eligible only after an explicit registry entry declares
91
+ its boundaries.
92
+
93
+ Required registry fields:
94
+
95
+ - Stable project ID and canonical real path.
96
+ - Ownership: `first-party`, `client-authorized`, `third-party-reference`, or `unknown`.
97
+ - Confidentiality: `public`, `private-local`, or `restricted`.
98
+ - Publication policy for source excerpts, screenshots, machine reports, and aggregate metrics.
99
+ - Product domain, interface archetype, intended users, and primary tasks.
100
+ - Framework, package manager, application entrypoint, and supported benchmark stages.
101
+ - Fixture mode, allowed environment variables, local ports, and network policy.
102
+ - Include and exclude paths, with an explanation for every nonstandard inclusion.
103
+ - Source revision, dirty-state disclosure, and canonicalization key.
104
+ - Development-cohort, holdout-cohort, or excluded status.
105
+
106
+ Required behavior:
107
+
108
+ - Resolve every path through `realpath` and reject roots outside the six locally approved classes.
109
+ - Deduplicate mirrors, backups, symlinks, generated copies, and projects appearing under both
110
+ `Studio/personal/` and `apps/`.
111
+ - Exclude dependency trees, build artifacts, backups, captures, models, research mirrors, IDE
112
+ distributions, and third-party comparison repositories by default.
113
+ - Require explicit review before enabling any `Studio/clients/` project.
114
+ - Preserve an exclusion reason instead of silently dropping an ineligible project.
115
+
116
+ Planned artifacts:
117
+
118
+ - `knowledge-base/benchmarks/portfolio-corpus/registry.schema.yaml`
119
+ - `knowledge-base/benchmarks/portfolio-corpus/registry.template.yaml`
120
+ - `.ztothez-design-local/portfolio-registry.yaml`
121
+ - `src/portfolio/`
122
+ - `zz-design portfolio inventory`
123
+ - `zz-design portfolio validate-registry`
124
+
125
+ Completion criteria:
126
+
127
+ - Every selected project has one canonical identity and explicit policy.
128
+ - Duplicate, nested, unknown-origin, and disallowed roots fail validation.
129
+ - The distributable template contains no machine-specific absolute path.
130
+ - Tests cover symlink escapes, path traversal, duplicate roots, private publication, and missing
131
+ ownership.
132
+
133
+ ### 2. Read-Only Snapshot And Mutation Guard
134
+
135
+ Status: **Done**
136
+
137
+ Implemented evidence: `src/portfolio/snapshot.ts` captures deterministic source and scoped Git
138
+ state, preserves pre-existing dirty worktrees, records metadata-only guards for prohibited content,
139
+ copies only approved files, translates contained symlinks into the snapshot, rejects escaping
140
+ symlinks, verifies source state after copying and on close, and removes failed or completed
141
+ snapshots by default. The Linux process boundary uses Bubblewrap with the snapshot as the only
142
+ writable project mount, no original-source mount, network isolation by default, an environment
143
+ allowlist, disabled package lifecycle scripts by default, output ceilings, timeouts, and detached
144
+ process-group cleanup. Unsupported hosts fail explicitly instead of running without isolation.
145
+
146
+ Fourteen focused registry and snapshot tests cover traversal, ownership, duplicates, private paths,
147
+ secret and dependency exclusion, internal and external symlinks, source mutation, callback failure,
148
+ dirty and require-clean Git states, source-path denial inside the process sandbox, network policy,
149
+ and timeout cleanup. A real create-and-delete SceneStart snapshot copied 230 approved entries and
150
+ closed with the original source digest unchanged. No build, test, formatter, or application command
151
+ was run in that original project.
152
+
153
+ Build a non-destructive execution boundary before running any project command. Static source checks
154
+ may open approved files read-only. Every command that can write must run in an isolated snapshot.
155
+
156
+ Snapshot workflow:
157
+
158
+ 1. Resolve and validate the registered source root.
159
+ 2. Capture a pre-run source manifest with relative path, type, size, mode, modification time,
160
+ symlink target, and SHA-256 for approved regular files.
161
+ 3. Capture Git status when the source is a Git worktree without requiring it to be clean.
162
+ 4. Copy only approved source files into a unique workspace under
163
+ `.ztothez-design-benchmarks/workspaces/`.
164
+ 5. Reject symlinks that resolve outside the source root.
165
+ 6. Inject only declared fixture environment values into the snapshot.
166
+ 7. Run installs, builds, tests, servers, and browser verification inside the snapshot.
167
+ 8. Stop child processes and retain only policy-approved evidence.
168
+ 9. Recompute the original source manifest and Git status.
169
+ 10. Fail with a source-mutation error if any covered value changed.
170
+
171
+ Safety requirements:
172
+
173
+ - Original working trees may already be dirty. Preserve and compare that state; never clean it.
174
+ - Never call `git reset`, `git checkout`, `git clean`, package installation, or a formatter in an
175
+ original source root.
176
+ - Dependency lifecycle scripts are disabled by default and may be enabled only for a reviewed
177
+ adapter inside the snapshot.
178
+ - Network access is denied by default. An adapter may allow dependency installation, but product
179
+ runtime traffic remains local and fixture-bound.
180
+ - Benchmark cancellation and failure must still stop servers and perform the post-run mutation
181
+ check.
182
+
183
+ Completion criteria:
184
+
185
+ - A negative fixture that attempts to write into its source root is detected and fails.
186
+ - A dirty source repository remains byte-for-byte and status-for-status unchanged.
187
+ - Snapshot creation excludes secrets, data, dependencies, output, and external symlinks.
188
+ - Interrupted runs clean up processes without deleting or changing original files.
189
+
190
+ ### 3. Stack And Capability Adapters
191
+
192
+ Status: **Done**
193
+
194
+ Implemented evidence: `src/portfolio/adapters.ts` defines six declarative adapters for React with
195
+ Vite or TanStack Router, Next.js, Angular, static web tools, Node plus Python full-stack products,
196
+ and source-only Python or desktop tools. Every adapter reports all eight benchmark capabilities as
197
+ `supported`, `unsupported`, or `not-applicable`. A supported executable stage requires both a
198
+ registry capability declaration and an exact registry command. Source audit is the only built-in
199
+ stage. Missing commands remain explicit limitations, while adapter, package-manager, stage, script,
200
+ path, and network-policy conflicts fail adapter validation.
201
+
202
+ The version 1.0 local registry contract now supports an explicit adapter and bounded per-stage
203
+ commands with relative working directories, timeouts, output ceilings, and dependency-network
204
+ declarations. Adapter policy permits only known executables and stage-specific package scripts.
205
+ Direct Node and Python execution requires a contained relative script and rejects eval flags and
206
+ parent traversal. Arguments are passed without a shell, and execution delegates to the Item 2
207
+ Bubblewrap snapshot boundary for environment allowlisting, network isolation, process-group
208
+ termination, diagnostic stream separation, and post-run source verification.
209
+
210
+ `zz-design portfolio capabilities --project ID` reports effective support without exposing local
211
+ paths. `zz-design portfolio run-stage --project ID --stage STAGE` executes only a validated command
212
+ inside a disposable snapshot and returns distinct passed, failed, timed-out, unsupported, and
213
+ not-applicable results. The three enabled local benchmarks now declare their stack adapters; their
214
+ undeclared executable commands are reported honestly as limitations rather than guessed from
215
+ package files.
216
+
217
+ Five focused adapter tests execute React/Vite, Next.js, Angular, and Node plus Python fixtures in
218
+ snapshots, verify source-only Python audit behavior, reject missing and unsafe commands, confirm
219
+ stdout and stderr separation, and prove timeout cleanup with unchanged source state. The complete
220
+ 84-test suite, registry validation, clean-room independence check, package check, and diff check
221
+ pass. The adapter guide and portable registry schema are included in the package and provenance
222
+ manifest, while the machine-specific local registry remains excluded.
223
+
224
+ Support the corpus through declarative adapters rather than one hard-coded JavaScript workflow.
225
+ Initial adapters should cover the stacks found during discovery:
226
+
227
+ - React with Vite or TanStack Router.
228
+ - Next.js frontend applications.
229
+ - Angular applications.
230
+ - Static HTML, CSS, and JavaScript tools.
231
+ - Frontend plus Node or Python service applications.
232
+ - Source-only Python or desktop tools where browser verification is not applicable.
233
+
234
+ Each adapter must report capabilities independently:
235
+
236
+ ```text
237
+ sourceAudit
238
+ typecheck
239
+ lint
240
+ unitTest
241
+ productionBuild
242
+ localFixtureServer
243
+ browserJourneys
244
+ exportVerification
245
+ ```
246
+
247
+ An unavailable or inapplicable capability must be reported as `unsupported` or `not-applicable`, not
248
+ as passed and not as a product failure. Commands come from the local registry and adapter policy;
249
+ the benchmark runner must not guess and execute arbitrary package scripts.
250
+
251
+ Completion criteria:
252
+
253
+ - At least three frontend stacks and one full-stack fixture execute in snapshots.
254
+ - Source-only projects can produce useful audit evidence without browser claims.
255
+ - Missing commands, unsupported platforms, and unavailable services produce explicit limitations.
256
+ - Adapter tests prove command containment, timeout handling, process cleanup, and diagnostic output
257
+ separation.
258
+
259
+ ### 4. Product-Task Benchmark Contracts
260
+
261
+ Status: **Done**
262
+
263
+ Implemented evidence: product-contract version `1.1` adds an archetype-aware `benchmark` profile
264
+ while preserving version `1.0` compatibility for legacy corpus fixtures. The profile declares one
265
+ of five archetypes, browser, desktop, or source-only interface scope, all seven V2 quality
266
+ dimensions as required or not applicable with reasons, primary product tasks, observable start and
267
+ success states, visible failure and recovery behavior, evidence requirements, comparison identity,
268
+ and a fixed evidence policy. Browser tasks must bind to an existing journey and verification
269
+ binding, a route, and a declared viewport no wider than 768 CSS pixels.
270
+
271
+ `src/contracts/archetypes.ts` owns the five independently authored archetype definitions and rejects
272
+ unsupported interface combinations or missing required dimensions. `src/contracts/validator.ts`
273
+ validates task actor, mode, state-machine, success-state, failure-state, journey, verification
274
+ binding, viewport, and duplicate references. Reports expose a `ready`, `legacy`, or `invalid` task
275
+ model plus primary, recovery, and narrow-viewport counts. Acceptance evaluation preserves the
276
+ declared boundary: absent journey evidence is `unverified`, executed failed behavior is `failed`,
277
+ and adapter-unavailable behavior remains a `limitation` rather than product evidence.
278
+
279
+ The portable artifacts under `knowledge-base/benchmarks/portfolio-corpus/` include
280
+ `PRODUCT-TASK-CONTRACTS.md`, `product-task-profile.schema.yaml`, and
281
+ `archetype-profiles.yaml`. The root skill, README, knowledge index, MCP product-contract report,
282
+ package, and provenance manifest route the same model. Comparison logic rejects legacy contracts,
283
+ different task-contract IDs, different archetypes, and materially different primary task intent or
284
+ observable success.
285
+
286
+ AegisOPS and Azure Optimizer now expose ready operational-dashboard task models. SceneStart exposes
287
+ a ready full-stack-workflow model with separate Workshop-to-Studio continuity and offline export
288
+ tasks. Each retained benchmark declares at least one primary task, failure and recovery state, and
289
+ narrow browser path using its existing actors, modes, state machines, journeys, bindings, and
290
+ viewports. No original portfolio source was read or changed for this migration.
291
+
292
+ Focused tests validate all five archetypes in positive and negative form, reject missing primary,
293
+ recovery, browser, dimension, state, and narrow-viewport declarations, validate all three real
294
+ benchmarks, reject unrelated product ranking, and distinguish missing evidence from executed
295
+ failure. The complete 90-test suite, clean-room independence check, package check, installed MCP
296
+ smoke, and diff check pass. The package contains 381 files; provenance covers 97 artifacts and
297
+ reference isolation inspects 206 files.
298
+
299
+ Benchmark products against their actual purpose instead of applying a generic dashboard checklist.
300
+ Each enabled project needs a compact local contract describing users, tasks, data boundaries,
301
+ routes, states, and observable completion.
302
+
303
+ Required archetype profiles:
304
+
305
+ - Operational dashboard or control surface.
306
+ - AI workspace, analysis tool, or generated-result workflow.
307
+ - Content, portfolio, or client-facing website.
308
+ - Utility, converter, tracker, or personal productivity application.
309
+ - Full-stack transactional or multi-user workflow.
310
+
311
+ Every profile reuses the V2 trust, information, visual, accessibility, responsive, state, and
312
+ maintainability dimensions but activates only relevant requirements. Product contracts must define
313
+ task success from observable state, not screenshot appearance or implementation-specific selectors
314
+ alone.
315
+
316
+ Completion criteria:
317
+
318
+ - At least four archetype profiles validate against positive and negative fixtures.
319
+ - Each real benchmark declares at least one primary task, one failure or recovery state, and one
320
+ narrow-viewport path when a browser interface exists.
321
+ - Contracts distinguish missing evidence from failed product behavior.
322
+ - No project is ranked against another project with a materially different task contract.
323
+
324
+ ### 5. Local Portfolio Benchmark Runner
325
+
326
+ Status: **Done**
327
+
328
+ Implemented evidence:
329
+
330
+ - `src/portfolio/runner.ts` executes every selected project independently inside a disposable
331
+ snapshot, retains `report.json`, and verifies the original source digest after execution.
332
+ - `zz-design portfolio baseline`, `benchmark`, `verify-unchanged`, and `report` are implemented.
333
+ - Reports retain registry and source digests, revisions, adapter identity, declared commands and
334
+ timeouts, environment policy, timestamps, exit status, fixture state, browser viewports,
335
+ structured findings and limitations, artifact checksums, and a normalized result fingerprint.
336
+ - Exit codes distinguish findings, limitations, unsafe configuration, and source mutation.
337
+ - `tests/portfolio-runner.test.ts` proves mixed-stack continuation, report retention, deterministic
338
+ fixture fingerprints, unsafe-project isolation, post-run source verification, loopback fixture
339
+ readiness, consolidated quality-gate delegation, four-viewport capture, checksummed screenshots,
340
+ and fixture shutdown.
341
+ - Optional structured heuristic reviews preserve unresolved severity 3-4 acceptance work.
342
+ - `list_portfolio_projects` and `get_portfolio_benchmark_report` provide explicitly enabled,
343
+ read-only MCP summaries without absolute roots or benchmark execution.
344
+
345
+ Create one orchestrator that executes approved stages, records exact provenance, and delegates to
346
+ the existing contract, audit, browser, acceptance, heuristic, and quality-gate modules.
347
+
348
+ Planned commands:
349
+
350
+ ```text
351
+ zz-design portfolio inventory
352
+ zz-design portfolio baseline --project PROJECT_ID
353
+ zz-design portfolio benchmark --cohort development
354
+ zz-design portfolio benchmark --cohort holdout
355
+ zz-design portfolio verify-unchanged --run RUN_ID
356
+ zz-design portfolio report --run RUN_ID
357
+ ```
358
+
359
+ Planned MCP behavior:
360
+
361
+ - List registered project IDs and declared capabilities without exposing absolute paths.
362
+ - Read completed structured benchmark reports.
363
+ - Explain findings and evidence limitations.
364
+ - Never mutate source or start an executable benchmark through knowledge-retrieval tools.
365
+ - Require explicit local enablement before exposing private report summaries.
366
+
367
+ Every run records the tool version, registry digest, source digest, source revision, adapter,
368
+ commands, environment policy, timestamps, exit status, timeouts, browser viewport, fixture state,
369
+ findings, limitations, and artifact checksums.
370
+
371
+ Completion criteria:
372
+
373
+ - One command can benchmark a mixed-stack cohort without entering original roots.
374
+ - A failed project does not stop evidence retention for other projects.
375
+ - Exit codes distinguish product findings, verifier limitations, unsafe configuration, and source
376
+ mutation.
377
+ - Reports are deterministic for identical fixtures and normalize machine-specific paths.
378
+
379
+ Completion evidence: all criteria are covered by `portfolio-runner.test.ts`,
380
+ `portfolio-fixture-server.test.ts`, `portfolio-mcp.test.ts`, and the MCP regression suite.
381
+
382
+ ### 6. Private Evidence Vault And Publication Controls
383
+
384
+ Status: **Done**
385
+
386
+ Implemented evidence:
387
+
388
+ - `src/portfolio/vault.ts` classifies evidence (`private-raw`, `redacted-report`, `approved-screenshot`, `public-synthetic`, `aggregate-metrics`), scans for secrets and prohibited absolute paths before retention, redacts machine paths/query parameters, enforces screenshot publication policy, and provides `deleteProjectEvidence`.
389
+ - `src/portfolio/run-schema.ts` extends `artifactSchema` with `evidenceClass`, `policyDecision`, and `sourceDigest`, updating report version to `1.2.0`.
390
+ - `src/portfolio/runner.ts` enforces pre-retention scanning, output redaction, screenshot opt-in policy, and artifact provenance binding.
391
+ - `cli/portfolio.ts` provides `zz-design portfolio prune-evidence --run ID [--project ID]`.
392
+ - `tests/portfolio-vault.test.ts` proves secret/path leakage detection, machine path redaction, screenshot opt-in enforcement, evidence pruning without schema corruption, and exclusion boundaries across packaging, Git, BM25 retrieval, and MCP tools.
393
+
394
+ Keep full local evidence outside the distributable package. Store it under
395
+ `.ztothez-design-benchmarks/`, indexed by run ID and project ID, with checksums and retention rules.
396
+
397
+ Evidence classes:
398
+
399
+ - Private raw source observations and logs.
400
+ - Redacted local machine reports.
401
+ - Screenshots and exports approved for local review.
402
+ - Public synthetic fixtures.
403
+ - Aggregate release metrics that contain no private project identity or content.
404
+
405
+ Required controls:
406
+
407
+ - Scan retained text for secrets and prohibited absolute paths before accepting a run.
408
+ - Redact environment values, query parameters, user records, local usernames, and source roots.
409
+ - Keep screenshot retention disabled for private client projects unless explicitly enabled.
410
+ - Bind every retained artifact to its source digest and policy decision.
411
+ - Prevent local registries, snapshots, private reports, and screenshots from entering npm packaging,
412
+ offline release, Git, BM25 retrieval, or MCP exact-file knowledge access.
413
+ - Permit deletion of a project's local evidence without damaging aggregate schema validity.
414
+
415
+ Completion criteria:
416
+
417
+ - Package, provenance, independence, and archive-removal tests prove local evidence exclusion.
418
+ - Secret and path leakage fixtures fail before evidence is retained.
419
+ - Public summaries remain valid after all private evidence is removed.
420
+ - Client projects default to zero publishable artifacts.
421
+
422
+ ### 7. Cross-Product Evaluation And Failure Taxonomy
423
+
424
+ Status: **Done**
425
+
426
+ Implemented evidence:
427
+
428
+ - `src/portfolio/taxonomy-schema.ts` defines schemas for 9 core dimensions (`product-task`, `interface-trust`, `information-design`, `visual-polish`, `accessibility`, `responsive`, `architecture`, `runtime-reliability`, `audit-precision`), per-project/dimension metrics, recurrence taxonomy, maintainer annotations, and comparison validation.
429
+ - `src/portfolio/taxonomy.ts` implements `evaluateCrossProductTaxonomy` (mapping run stages and findings to dimensions, building recurrence taxonomy, stack/archetype coverage, and applying maintainer false-positive/negative annotations without deleting original findings) and `validateCrossProjectComparison` (validating baseline vs candidate comparability).
430
+ - `cli/portfolio.ts` provides `zz-design portfolio cross-product --run ID [--annotations PATH]`.
431
+ - `src/portfolio/mcp.ts` exposes `getCrossProductEvaluationForMcp` for opt-in read-only MCP access.
432
+ - `tests/portfolio-taxonomy.test.ts` proves 9-dimension breakdown without vanity score collapsing, limitation/abstention isolation from pass/fail totals, recurrence failure grouping across projects/domains, maintainer false-positive annotations without finding deletion, and strict cross-project baseline comparison validation.
433
+
434
+ Measure system behavior across projects without collapsing unrelated products into one vanity score.
435
+ Keep per-project and per-dimension results visible.
436
+
437
+ Core dimensions:
438
+
439
+ - Product-task completeness and state continuity.
440
+ - Truthful disclosure and data provenance.
441
+ - Information hierarchy and decision support.
442
+ - Visual-system consistency and composition evidence.
443
+ - Accessibility and keyboard operation.
444
+ - Responsive structure and text reflow.
445
+ - Architecture, coupling, and maintainability.
446
+ - Runtime reliability, recovery, and export integrity where applicable.
447
+ - Audit precision, actionable remediation, and correct abstention.
448
+
449
+ Required measures:
450
+
451
+ - Eligible checks, passed checks, findings, limitations, and abstentions per project.
452
+ - Finding recurrence across independent projects and product domains.
453
+ - Confirmed false-positive and false-negative records.
454
+ - Rule coverage by stack and archetype.
455
+ - Baseline-to-candidate deltas only when task, state, fixture, viewport, and tool version are
456
+ comparable.
457
+
458
+ Do not declare an overall aesthetic winner across unrelated products. Do not treat more findings as
459
+ proof that one project or stack is worse. Reports must distinguish product defects, unavailable
460
+ evidence, adapter gaps, and quality-gate defects.
461
+
462
+ Completion criteria:
463
+
464
+ - The taxonomy groups repeated failures without hiding project-specific context.
465
+ - Aggregate reports cannot count unsupported checks as passes or failures.
466
+ - Tests reject invalid cross-project comparisons and mixed baseline conditions.
467
+ - Maintainer corrections can label false positives without deleting the original finding.
468
+
469
+ ### 8. Rule Promotion And Holdout Validation
470
+
471
+ Status: **Done**
472
+
473
+ Implemented evidence:
474
+
475
+ - `src/portfolio/promotion-schema.ts` now requires checksummed positive, negative, abstention,
476
+ existing-gate, promoted-artifact, and project-specific holdout evidence.
477
+ - `src/portfolio/promotion.ts` fails closed when cohort reports, source digests, fixture evidence,
478
+ required gates, or exact holdout coverage are missing. All-holdout abstention cannot establish
479
+ benefit or non-regression, and reports state whether evaluation completed.
480
+ - `cli/portfolio.ts` requires `--evidence`; MCP reads candidates and evidence only from its
481
+ configured private evidence root and verifies every referenced checksum.
482
+ - Focused tests cover promotion, rejection, missing evidence, incomplete recurrence, failed gates,
483
+ holdout regression, all-holdout abstention, traversal, checksum failure, and symlink escape.
484
+ - Local development run `v3-development-20260828-r6` and holdout run
485
+ `v3-holdout-20260828-r4` use the same locked registry digest, cover all 12 projects, retain zero
486
+ unsafe configurations and zero source mutations, and pass post-run source verification.
487
+ - Three independently authored recurrence candidates completed the full path and were promoted:
488
+ semantic token boundaries (`ZTDE-DESIGN-001`), interactive control integrity
489
+ (`ZTDE-SLOP-003`), and the component review threshold (`ZTDE-ARCH-001`).
490
+ - Nine maintained fixture specifications execute against the production audit engine. Their
491
+ positive, negative, and abstention outcomes pass deterministic regression coverage.
492
+ - Each candidate has checksummed candidate-specific reports for all three locked holdouts. The
493
+ retained results distinguish detected rule benefit from unaffected products; regression and
494
+ abstention paths remain covered by the fail-closed promotion regression suite.
495
+ - Documentation, report codes, tests, and migration guidance are retained in
496
+ `knowledge-base/benchmarks/portfolio-corpus/PROMOTED-RULES.md` and the maintained fixture set.
497
+
498
+ Use the development cohort to discover candidate improvements, then test them against projects that
499
+ were not used to author the rule.
500
+
501
+ A candidate rule may enter the maintained system only when:
502
+
503
+ 1. It is independently authored and does not reproduce project implementation or proprietary
504
+ content.
505
+ 2. The failure appears in at least three eligible projects across at least two product domains, or
506
+ a standards-backed safety requirement independently justifies it.
507
+ 3. A focused positive fixture and negative fixture demonstrate the intended boundary.
508
+ 4. False-positive analysis identifies legitimate exceptions and an abstention path.
509
+ 5. Existing V1, V2, retrieval, corpus, MCP, package, and independence tests remain passing.
510
+ 6. At least one held-out project benefits or remains correctly unaffected.
511
+ 7. The original projects remain unchanged.
512
+
513
+ The runner must preserve rejected candidate rules and their reason. It must not tune thresholds until
514
+ all current projects pass, and a project finding does not authorize automatic source remediation.
515
+
516
+ Completion criteria:
517
+
518
+ - Development and holdout cohorts are locked before candidate-rule evaluation.
519
+ - At least three evidence-supported rule candidates complete the full promotion or rejection path.
520
+ - Holdout results identify regressions, unaffected products, and correct abstentions.
521
+ - Promoted rules include documentation, deterministic tests, report codes, and migration guidance.
522
+
523
+ ### 9. V3 Qualification, CI, And Release
524
+
525
+ Status: **Done**
526
+
527
+ Implemented evidence:
528
+
529
+ - Qualification evidence is versioned, portable, checksummed, traversal-protected, and required by
530
+ both CLI and read-only MCP evaluation. Missing evidence and missing reports cannot default to pass.
531
+ - The evaluator enforces every numeric threshold, exact cohort coverage, source digests, zero source
532
+ mutation, explicit release gates, six CI fixture categories, three complete rule evaluations,
533
+ private-distribution evidence, benchmark execution paths, and prohibited claim boundaries.
534
+ - The finalized local registry validates with 12 eligible projects, 12 domains, 8 declared frontend
535
+ stacks, 5 archetypes, and 3 locked holdouts. Both retained cohort reports have complete project
536
+ coverage and pass post-run source verification.
537
+ - Local qualification against development run `v3-development-20260828-r6` and holdout run
538
+ `v3-holdout-20260828-r4` passes all criteria with 12 eligible projects, 12 domains, 8 stacks,
539
+ 5 archetypes, 3 locked holdouts, 0 source mutations, and 0 private-distribution violations.
540
+ - Source-only evidence comes from the authorized local corpus. Browser-only and Node plus Python
541
+ full-stack execution are exercised through public synthetic products inside the same disposable
542
+ snapshot, process isolation, and source-mutation boundaries used by the portfolio runner. They
543
+ validate execution infrastructure without claiming a private product passed those stages.
544
+ - Checksummed command reports bind exact CI, release, benchmark-path, package, offline-release,
545
+ archive-removal, and privacy checks to retained stdout and stderr logs.
546
+ - `npm run v3:evidence` reproduces the private local evidence and final redacted report. The ignored
547
+ evidence root contains 3 complete promotion reports and a V3 qualification report with all 14
548
+ criteria passing and no prohibited claims.
549
+ - GitHub Actions executes `npm run v3:evidence -- --ci-only` and retains the eight-category public
550
+ synthetic evidence artifact. No local registry, portfolio source, or private report enters CI.
551
+
552
+ Qualify the benchmark system without placing private local projects on GitHub Actions. CI uses only
553
+ synthetic fixtures and explicitly approved public benchmark artifacts. Real portfolio runs remain
554
+ local, and release evidence contains only redacted aggregate summaries.
555
+
556
+ V3 qualification targets:
557
+
558
+ - At least 12 eligible first-party or client-authorized projects.
559
+ - At least five product domains, three frontend stacks, and four interface archetypes.
560
+ - At least three locked holdout projects not used to author promoted rules.
561
+ - At least one source-only, one browser-only, and one full-stack benchmark path.
562
+ - Zero detected changes in every original source root before and after each run.
563
+ - Zero private paths, secrets, client content, or project source files in the npm and offline release.
564
+ - All existing V1 and V2 gates remain passing.
565
+
566
+ Required CI fixtures:
567
+
568
+ - Registry traversal, duplicate-root, and ownership violations.
569
+ - Snapshot mutation, external symlink, secret-copy, and interrupted-process violations.
570
+ - Adapter success, unsupported capability, timeout, and failed build cases.
571
+ - Cross-product comparison misuse and unsupported-score inflation.
572
+ - Private evidence packaging and retrieval leakage.
573
+ - Rule-promotion success, rejection, false-positive, and holdout-regression paths.
574
+
575
+ V3 may be marked done when the targets pass and the retained report supports only these claims:
576
+
577
+ - The benchmark runner operated non-destructively on the declared corpus.
578
+ - The quality system produced evidence across the declared stacks and domains.
579
+ - Promoted rules passed their fixtures and locked holdout evaluation.
580
+ - Private source and evidence were excluded from distribution.
581
+
582
+ V3 must not claim independent human validation, representative-user validation, universal design
583
+ quality, or superiority over every external tool unless separate evidence explicitly supports that
584
+ claim.
585
+
586
+ ## Execution Order
587
+
588
+ Implement Items 1 and 2 first. No real project command may run before both registry validation and
589
+ the mutation guard pass their negative fixtures.
590
+
591
+ Then implement Items 3 through 6 and baseline a small development cohort using disposable
592
+ snapshots. Expand to the full eligible corpus only after evidence privacy and process cleanup pass.
593
+
594
+ Implement Items 7 and 8 from retained baseline evidence. Lock the holdout cohort before promoting
595
+ any new rule. Complete Item 9 only after local qualification and public synthetic CI both pass.
596
+
597
+ ## Current Status
598
+
599
+ Items 1 through 9 are **Done**.
600
+
601
+ The portfolio runner produced complete development and locked-holdout reports for all 12 authorized
602
+ projects with unchanged original sources. Three independently authored rules completed executable
603
+ fixture and candidate-specific holdout evaluation. The final local report passes every V3
604
+ qualification criterion, while public CI exercises only synthetic fixtures and approved maintained
605
+ artifacts.