@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,427 @@
1
+ version: "1.1"
2
+ id: scenestart
3
+ name: SceneStart Local-First Demoscene Learning Studio
4
+ status: benchmark
5
+ purpose: >-
6
+ Help a complete beginner or independent maker learn demoscene concepts through direct
7
+ experimentation, compose a coherent timed production, preserve editable work locally,
8
+ export a self-contained offline artifact, and document release provenance without
9
+ implying certification, rights ownership, or competition eligibility.
10
+
11
+ authority:
12
+ behavior: Current SceneStart behavior summarized in SOURCE-EVIDENCE.md overrides historical product plans and visual mockups.
13
+ visual: Current SceneStart components and tokens guide identity, but task completion, readable state, and responsive accessibility override fixed compositions.
14
+ precedence:
15
+ - path: SOURCE-EVIDENCE.md
16
+ role: Current implementation snapshot, behavior boundaries, and source hashes.
17
+ authority: primary
18
+ - path: MANIFEST.md
19
+ role: Benchmark scope, authority order, and clean-room usage rules.
20
+ authority: supporting
21
+ - path: ../../../clean-room-ux-design-spec.md
22
+ role: Independent implementation, provenance, local-first, and abstention requirements.
23
+ authority: supporting
24
+
25
+ actors:
26
+ - id: beginner-maker
27
+ name: Beginner demoscene maker
28
+ goals:
29
+ - See a meaningful visual result before specialist setup becomes a barrier.
30
+ - Understand how parameter changes affect motion, rhythm, depth, and composition.
31
+ - Finish and keep a working production that can be replayed offline.
32
+ responsibilities:
33
+ - Choose a handle and creative direction without treating starter content as proof of originality.
34
+ - Preview and review the complete sequence before export.
35
+ - Preserve downloaded project and production files on their own device.
36
+ - id: independent-producer
37
+ name: Independent producer
38
+ goals:
39
+ - Compose, reorder, preview, save, reopen, and export a multi-scene production.
40
+ - Document contributors, tools, external assets, licences, and run instructions.
41
+ - Distinguish technical readiness from event-specific and rights review.
42
+ responsibilities:
43
+ - Resolve external-asset rights and required credits before release.
44
+ - Test the exported artifact in the intended environment.
45
+ - Check current event rules independently.
46
+ - id: workshop-facilitator
47
+ name: Workshop facilitator
48
+ goals:
49
+ - Guide beginners through a bounded first-success path without accounts or cloud setup.
50
+ - Observe where learners require assistance and whether concepts transfer.
51
+ - Hand each learner an editable and playable artifact they control.
52
+ responsibilities:
53
+ - Avoid presenting estimated completion time as a countdown or guarantee.
54
+ - Record representative-user evidence only with participant consent.
55
+ - Separate observed task outcomes from product analytics or fabricated success claims.
56
+
57
+ outputs:
58
+ - id: editable-project
59
+ name: Editable SceneStart project
60
+ sourceOfTruth: Sanitized version 2 production project with shared identity, palette, and one to eight ordered scenes.
61
+ requiredEvidence:
62
+ - Versioned JSON schema and filename
63
+ - Scene order, effect, message, duration, transition, cue, and parameters
64
+ - Successful parse or actionable rejection
65
+ - id: offline-production
66
+ name: Self-contained browser production
67
+ sourceOfTruth: HTML generated directly from the current sanitized production project.
68
+ requiredEvidence:
69
+ - Current handle, palette, ordered scenes, durations, transitions, and effect parameters
70
+ - Inline playback implementation with start and Escape behavior
71
+ - No runtime network dependencies
72
+ - id: local-progress
73
+ name: Local learning progress
74
+ sourceOfTruth: Versioned browser storage owned by the applicable workshop or learning path.
75
+ requiredEvidence:
76
+ - Completed step, lesson, mission, or requirement identifiers
77
+ - Coercion against the current registry
78
+ - Visible progress derived from stored state
79
+ - id: provenance-ledger
80
+ name: Release provenance ledger
81
+ sourceOfTruth: Current local release state containing assets, creators, sources, licences, modifications, credits, and rights decisions.
82
+ requiredEvidence:
83
+ - Unresolved entries remain visibly unresolved
84
+ - Rights confirmation is explicit and user-controlled
85
+ - No certification claim is inferred from completion
86
+ - id: release-readme
87
+ name: Plain-text release readme
88
+ sourceOfTruth: Deterministic text generated from the current release state and local handle.
89
+ requiredEvidence:
90
+ - Run instructions, target, requirements, contributors, tools, assets, credits, and AI-use disclosure
91
+ - Unresolved rights remain marked
92
+ - SceneStart non-certification disclaimer
93
+
94
+ modes:
95
+ - id: studio-production
96
+ name: Demo Studio
97
+ purpose: Compose and export a complete timed production with direct control over scenes and shared project identity.
98
+ input: Local production fields or a valid version 2 SceneStart JSON project under 64 KB.
99
+ outputs: [editable-project, offline-production]
100
+ - id: guided-workshop
101
+ name: Guided Workshop
102
+ purpose: Complete a six-step opening, build, ending workflow and continue with the same project in Studio.
103
+ input: A valid two-to-eight-character handle and guided parameter decisions.
104
+ outputs: [editable-project, offline-production, local-progress]
105
+ - id: learning-path
106
+ name: Learning Paths
107
+ purpose: Complete bounded concepts and hands-on activities while preserving progress on the current device.
108
+ input: A selected goal, role, lesson, or activity response.
109
+ outputs: [local-progress]
110
+ - id: release-preparation
111
+ name: Release, Rights and Community
112
+ purpose: Document provenance and technical release information without replacing legal, authorship, or event review.
113
+ input: Local contributor, asset, licence, disclosure, run, and checklist information.
114
+ outputs: [provenance-ledger, release-readme, local-progress]
115
+
116
+ stateMachines:
117
+ - id: production-authoring
118
+ initial: loaded
119
+ states:
120
+ - id: loaded
121
+ category: idle
122
+ userVisible: true
123
+ requirement: A valid local default, migrated project, or imported project is visible and editable.
124
+ - id: editing
125
+ category: idle
126
+ userVisible: true
127
+ requirement: Every change updates the current project and preview without disconnecting scene identity or timeline order.
128
+ - id: previewing
129
+ category: loading
130
+ userVisible: true
131
+ requirement: Playback exposes current scene and elapsed time and remains stoppable without losing edits.
132
+ - id: export-ready
133
+ category: success
134
+ userVisible: true
135
+ requirement: At least three valid scenes exist and both editable-project and offline-production actions are available.
136
+ - id: exported
137
+ category: terminal
138
+ userVisible: true
139
+ requirement: The downloaded filename and content derive from the current project without mutating it.
140
+ - id: invalid-project
141
+ category: error
142
+ userVisible: true
143
+ requirement: Invalid, unsupported, unreadable, or oversized files produce an actionable message and preserve the current project.
144
+ transitions:
145
+ - from: loaded
146
+ to: editing
147
+ trigger: Change a project or scene field
148
+ - from: editing
149
+ to: previewing
150
+ trigger: Start production playback
151
+ - from: previewing
152
+ to: editing
153
+ trigger: Pause, restart, finish, or stop playback
154
+ - from: editing
155
+ to: export-ready
156
+ trigger: Project contains at least three valid scenes
157
+ - from: export-ready
158
+ to: exported
159
+ trigger: Save project or export offline HTML
160
+ - from: loaded
161
+ to: invalid-project
162
+ trigger: Open an invalid or unsupported project file
163
+ - from: invalid-project
164
+ to: editing
165
+ trigger: Continue editing the preserved project
166
+ - id: guided-progression
167
+ initial: not-started
168
+ states:
169
+ - id: not-started
170
+ category: idle
171
+ userVisible: true
172
+ requirement: The first task and six-step scope are visible without a countdown.
173
+ - id: in-progress
174
+ category: loading
175
+ userVisible: true
176
+ requirement: Current, completed, and remaining steps are distinguishable and the project is saved locally.
177
+ - id: workshop-complete
178
+ category: success
179
+ userVisible: true
180
+ requirement: Export and Continue in Demo Studio actions use the completed workshop project.
181
+ - id: storage-unavailable
182
+ category: fallback
183
+ userVisible: true
184
+ requirement: The workshop remains usable for the current session and does not claim progress was saved.
185
+ transitions:
186
+ - from: not-started
187
+ to: in-progress
188
+ trigger: Enter a valid handle and continue
189
+ - from: in-progress
190
+ to: workshop-complete
191
+ trigger: Finish the watch-the-whole-arc step
192
+ - from: not-started
193
+ to: storage-unavailable
194
+ trigger: Browser storage is unavailable
195
+ - from: in-progress
196
+ to: storage-unavailable
197
+ trigger: Persisting workshop state fails
198
+ - id: release-documentation
199
+ initial: draft
200
+ states:
201
+ - id: draft
202
+ category: idle
203
+ userVisible: true
204
+ requirement: Release fields, checklist state, and provenance entries remain editable locally.
205
+ - id: rights-unresolved
206
+ category: error
207
+ userVisible: true
208
+ requirement: Incomplete asset provenance is counted and explained without blocking continued documentation.
209
+ - id: documented
210
+ category: success
211
+ userVisible: true
212
+ requirement: The readme reflects current data while retaining the non-certification disclaimer.
213
+ transitions:
214
+ - from: draft
215
+ to: rights-unresolved
216
+ trigger: Add an incomplete or unconfirmed external asset
217
+ - from: rights-unresolved
218
+ to: documented
219
+ trigger: Complete provenance and explicitly confirm rights
220
+ - from: draft
221
+ to: documented
222
+ trigger: Generate readme with no external assets
223
+
224
+ metrics:
225
+ - id: scene-count
226
+ name: Production scene count
227
+ definition: Number of sanitized ordered scenes in the current editable production.
228
+ sourceOfTruth: Current version 2 project scenes array.
229
+ format: count
230
+ evidenceRequired: true
231
+ range: { min: 1, max: 8 }
232
+ - id: production-duration
233
+ name: Production duration
234
+ definition: Sum of current sanitized scene durations, not a separately entered estimate.
235
+ sourceOfTruth: Current project scene durationMs values.
236
+ format: duration
237
+ evidenceRequired: true
238
+ range: { min: 2, max: 480 }
239
+ - id: learning-progress
240
+ name: Learning path progress
241
+ definition: Completed requirements divided by the current path registry total.
242
+ sourceOfTruth: Coerced versioned local progress and current lesson or requirement registry.
243
+ format: percentage
244
+ evidenceRequired: true
245
+ range: { min: 0, max: 100 }
246
+ - id: release-checklist-count
247
+ name: Release checklist completion
248
+ definition: Number of current release checklist items explicitly checked by the producer.
249
+ sourceOfTruth: Current local release checklist record.
250
+ format: count
251
+ evidenceRequired: true
252
+ range: { min: 0, max: 9 }
253
+
254
+ constraints:
255
+ outOfScope:
256
+ - Certifying competition eligibility, originality, authorship, rights ownership, or event acceptance.
257
+ - Replacing specialist trackers, graphics tools, video editors, game engines, or hardware testing.
258
+ - Accounts, social feeds, cloud project storage, marketplace features, or public engagement statistics.
259
+ - Automatic publication or submission of exported work.
260
+ prohibitedClaims:
261
+ - Assembly-ready, competition-compliant, rights-cleared, original, or certified without independent current review.
262
+ - Representative-user success, completion time, or learning effectiveness without consented study evidence.
263
+ - Offline public application operation when only downloaded production artifacts are guaranteed offline.
264
+ - Community scale, popularity, creator counts, or completion statistics without a current source of truth.
265
+ mockData:
266
+ allowedEnvironments: [development, test, demo]
267
+ mustBeLabeled: true
268
+ prohibitedInProduction: true
269
+ fallbackDisclosure: Starter projects, preset effects, example copy, and tutorial state must remain labeled as editable starting material and never be presented as user authorship, rights evidence, or competition readiness.
270
+
271
+ acceptanceCriteria:
272
+ - id: project-state-integrity
273
+ title: Project state remains coherent and recoverable
274
+ severity: blocker
275
+ requirement: Identity, palette, scene order, timing, transitions, messages, cues, and effect parameters share one sanitized project source of truth; invalid imports preserve the current work and explain the rejection.
276
+ evidence: [contract, runtime]
277
+ appliesToModes: [studio-production, guided-workshop]
278
+ - id: offline-export-integrity
279
+ title: Export matches the current production and runs offline
280
+ severity: blocker
281
+ requirement: The downloaded production contains the current sanitized project, meaningful filename, start and Escape controls, deterministic renderers, and no playback-time network dependency.
282
+ evidence: [contract, runtime, export]
283
+ appliesToModes: [studio-production, guided-workshop]
284
+ - id: editable-project-integrity
285
+ title: Editable project download preserves current work
286
+ severity: blocker
287
+ requirement: Saving the project downloads a versioned, size-bounded JSON recipe representing the current production without uploading or mutating it.
288
+ evidence: [contract, runtime, export]
289
+ appliesToModes: [studio-production]
290
+ - id: guided-task-continuity
291
+ title: Guided workshop produces a transferable project
292
+ severity: blocker
293
+ requirement: The six-step route shows current progress, never imposes a countdown, and transfers the same completed project into Studio or offline export.
294
+ evidence: [runtime, screenshot]
295
+ appliesToModes: [guided-workshop]
296
+ - id: learning-progress-persistence
297
+ title: Learning progress is local, derived, and durable
298
+ severity: blocker
299
+ requirement: Completing a lesson updates versioned device-local state, survives navigation, and is recomputed against the current registry instead of duplicated as presentation-only progress.
300
+ evidence: [contract, runtime]
301
+ appliesToModes: [learning-path]
302
+ - id: provenance-workflow-integrity
303
+ title: Release provenance remains explicit
304
+ severity: blocker
305
+ requirement: Incomplete external-asset records remain unresolved until asset, creator, licence, and explicit rights confirmation exist; generated readme output preserves unresolved status and disclosure fields.
306
+ evidence: [contract, runtime, export]
307
+ appliesToModes: [release-preparation]
308
+ - id: honest-product-scope
309
+ title: Product scope and non-certification are explicit
310
+ severity: blocker
311
+ requirement: SceneStart distinguishes technical preparation from legal, originality, authorship, and event review and does not turn checklist completion into certification.
312
+ evidence: [contract, runtime]
313
+ appliesToModes: [studio-production, guided-workshop, learning-path, release-preparation]
314
+ - id: local-first-boundary
315
+ title: Creative state remains local to the user
316
+ severity: blocker
317
+ requirement: Project content, learning progress, workshop state, and provenance data are not sent to an application backend; hosting operations and optional external links are disclosed separately.
318
+ evidence: [contract, manual-review]
319
+ appliesToModes: [studio-production, guided-workshop, learning-path, release-preparation]
320
+ - id: responsive-integrity
321
+ title: Creation and learning tasks reflow without loss
322
+ severity: blocker
323
+ requirement: At 320, 390, 768, 1024, and 1440 CSS pixels, controls, timeline state, preview, progress, provenance fields, and download actions remain readable, operable, and free from page-level horizontal overflow.
324
+ evidence: [runtime, screenshot]
325
+ appliesToModes: [studio-production, guided-workshop, learning-path, release-preparation]
326
+ - id: accessible-operation
327
+ title: Critical workflows are keyboard and assistive-technology operable
328
+ severity: blocker
329
+ requirement: Inputs and controls have accessible names, focus remains visible and unobscured, progress and errors are announced, touch targets remain operable, status is not color-only, and authoring motion respects reduced-motion preferences.
330
+ evidence: [runtime, accessibility]
331
+ appliesToModes: [studio-production, guided-workshop, learning-path, release-preparation]
332
+
333
+ verification:
334
+ journeyFile: journeys.json
335
+ viewports:
336
+ - { name: mobile-320, width: 320, height: 800 }
337
+ - { name: mobile-390, width: 390, height: 844 }
338
+ - { name: tablet-768, width: 768, height: 1024 }
339
+ - { name: desktop-1024, width: 1024, height: 768 }
340
+ - { name: wide-1440, width: 1440, height: 900 }
341
+ bindings:
342
+ - profile: studio-export
343
+ journey: compose-save-export
344
+ actor: independent-producer
345
+ mode: studio-production
346
+ acceptanceCriteria: [project-state-integrity, offline-export-integrity, editable-project-integrity, honest-product-scope, responsive-integrity, accessible-operation]
347
+ - profile: guided-workshop
348
+ journey: complete-guided-production
349
+ actor: beginner-maker
350
+ mode: guided-workshop
351
+ acceptanceCriteria: [project-state-integrity, offline-export-integrity, guided-task-continuity, honest-product-scope, responsive-integrity, accessible-operation]
352
+ - profile: learning-persistence
353
+ journey: complete-and-resume-lesson
354
+ actor: beginner-maker
355
+ mode: learning-path
356
+ acceptanceCriteria: [learning-progress-persistence, honest-product-scope, responsive-integrity, accessible-operation]
357
+ - profile: release-provenance
358
+ journey: document-asset-and-readme
359
+ actor: independent-producer
360
+ mode: release-preparation
361
+ acceptanceCriteria: [provenance-workflow-integrity, honest-product-scope, local-first-boundary, responsive-integrity, accessible-operation]
362
+
363
+ benchmark:
364
+ archetype: full-stack-workflow
365
+ interface: browser
366
+ qualityDimensions:
367
+ - { id: truthful-disclosure, status: required, reason: "Local-first storage, exports, and asset rights require explicit boundaries." }
368
+ - { id: information-design, status: required, reason: "Creators must understand progression, project state, release readiness, and next actions." }
369
+ - { id: visual-system, status: required, reason: "Workshop, Studio, learning, and release surfaces require coherent hierarchy." }
370
+ - { id: accessibility, status: required, reason: "Authoring and learning workflows require keyboard, reflow, and non-color operation." }
371
+ - { id: responsive-structure, status: required, reason: "Core workflows are verified from 320px mobile through wide desktop." }
372
+ - { id: state-integrity, status: required, reason: "Workshop handoff, saved project state, learning progress, and exports must persist." }
373
+ - { id: maintainability, status: required, reason: "Learning, authoring, storage, export, and provenance concerns require stable boundaries." }
374
+ tasks:
375
+ - id: workshop-to-studio
376
+ primary: true
377
+ actor: beginner-maker
378
+ mode: guided-workshop
379
+ intent: Complete the guided production workflow and continue into Studio with the project handle and scenes intact.
380
+ start:
381
+ stateMachine: guided-progression
382
+ state: not-started
383
+ observable: The learner can begin a new guided project from Workshop.
384
+ success:
385
+ stateMachine: guided-progression
386
+ state: workshop-complete
387
+ observable: Workshop is complete and the same project opens in Studio with its creative state preserved.
388
+ evidence: [contract, runtime, manual-review]
389
+ recovery:
390
+ required: true
391
+ failure:
392
+ stateMachine: guided-progression
393
+ state: storage-unavailable
394
+ observable: Local storage failure is disclosed without claiming successful persistence.
395
+ observable: The learner can retain the current in-memory project, retry storage, or export before leaving.
396
+ journey: { profile: guided-workshop, journey: complete-guided-production }
397
+ browser: { route: /workshop, narrowViewport: mobile-320 }
398
+ - id: export-offline-production
399
+ primary: true
400
+ actor: independent-producer
401
+ mode: studio-production
402
+ intent: Save an editable project and export a working offline HTML production without uploading creative data.
403
+ start:
404
+ stateMachine: production-authoring
405
+ state: loaded
406
+ observable: A local project is loaded in Studio and available for editing.
407
+ success:
408
+ stateMachine: production-authoring
409
+ state: exported
410
+ observable: Editable project data and offline HTML are downloaded with the expected project content.
411
+ evidence: [contract, runtime, export, manual-review]
412
+ recovery:
413
+ required: true
414
+ failure:
415
+ stateMachine: production-authoring
416
+ state: invalid-project
417
+ observable: Invalid imported project data is rejected with a visible explanation.
418
+ observable: The producer can return to the intact current project or import a corrected local file.
419
+ journey: { profile: studio-export, journey: compose-save-export }
420
+ browser: { route: /studio, narrowViewport: mobile-320 }
421
+ evidencePolicy:
422
+ missingEvidence: unverified
423
+ failedBehavior: failed
424
+ unsupportedCapability: limitation
425
+ comparison:
426
+ taskContractId: scenestart-production-continuity
427
+ crossContractRanking: false
@@ -0,0 +1,69 @@
1
+ version: "1.0"
2
+ lockfile: package-lock.json
3
+ policy:
4
+ strategicCapabilitiesMustRemainProjectOwned: true
5
+ allowedLicenses: [MIT, ISC, Apache-2.0, BSD-2-Clause, BSD-3-Clause]
6
+ dependencies:
7
+ - name: "@modelcontextprotocol/sdk"
8
+ scope: runtime
9
+ versionRange: "^1.30.0"
10
+ resolvedVersion: "1.30.0"
11
+ license: MIT
12
+ role: replaceable-infrastructure
13
+ boundary: MCP server registration, transports, and protocol client tests.
14
+ fallback: CLI validators and quality-gate commands remain usable without an MCP host.
15
+ replacementTrigger: Protocol incompatibility, unacceptable license change, or unmaintained security risk.
16
+ - name: playwright-core
17
+ scope: runtime
18
+ versionRange: "^1.62.1"
19
+ resolvedVersion: "1.62.1"
20
+ license: Apache-2.0
21
+ role: replaceable-infrastructure
22
+ boundary: Browser launch, page automation, screenshots, and rendered evidence capture.
23
+ fallback: Static architecture audit, contract validation, and explicit runtime-unavailable reporting.
24
+ replacementTrigger: Unsupported target browsers, unacceptable installation cost, or unresolved security risk.
25
+ - name: typescript
26
+ scope: runtime
27
+ versionRange: "^5.9.3"
28
+ resolvedVersion: "5.9.3"
29
+ license: Apache-2.0
30
+ role: replaceable-infrastructure
31
+ boundary: Source parsing for deterministic audits and project compilation.
32
+ fallback: Contract, retrieval, heuristic, and manifest validators do not depend on compiler execution.
33
+ replacementTrigger: Parser incompatibility with supported source syntax or unacceptable license change.
34
+ - name: yaml
35
+ scope: runtime
36
+ versionRange: "^2.9.0"
37
+ resolvedVersion: "2.9.0"
38
+ license: ISC
39
+ role: replaceable-infrastructure
40
+ boundary: Parsing versioned local contracts, manifests, reviews, provenance, and dependency inventories.
41
+ fallback: Every executable contract accepts JSON where its public schema permits it.
42
+ replacementTrigger: Security issue, specification incompatibility, or unacceptable license change.
43
+ - name: zod
44
+ scope: runtime
45
+ versionRange: "^4.4.3"
46
+ resolvedVersion: "4.4.3"
47
+ license: MIT
48
+ role: replaceable-infrastructure
49
+ boundary: Runtime validation and MCP structured-output schemas.
50
+ fallback: Portable JSON Schemas preserve public artifact contracts for independent validators.
51
+ replacementTrigger: Runtime incompatibility, unacceptable bundle cost, or license change.
52
+ - name: "@types/node"
53
+ scope: development
54
+ versionRange: "^26.3.0"
55
+ resolvedVersion: "26.3.0"
56
+ license: MIT
57
+ role: replaceable-infrastructure
58
+ boundary: Compile-time Node.js API declarations only.
59
+ fallback: Pin a compatible declarations release or maintain minimal local declarations temporarily.
60
+ replacementTrigger: Node.js support mismatch or incompatible declaration changes.
61
+ - name: tsx
62
+ scope: development
63
+ versionRange: "^4.23.12"
64
+ resolvedVersion: "4.23.12"
65
+ license: MIT
66
+ role: replaceable-infrastructure
67
+ boundary: Development-only execution of the audit CLI before compilation.
68
+ fallback: Build with TypeScript and run the compiled JavaScript CLI.
69
+ replacementTrigger: Node.js incompatibility, security risk, or unacceptable license change.
@@ -0,0 +1,87 @@
1
+ # Design Intelligence Router
2
+
3
+ Use this maintained module set when a request needs product intake, interface trust, operational information design, visual polish, brand identity, Figma libraries, generated or sourced assets, icon systems, presentations, licensing records, or visual-accessibility review. Keep the root `SKILL.md` authoritative and load only the modules required by the deliverables.
4
+
5
+ ## Required Workflow
6
+
7
+ For an interface system, use this order and record every stage in `design-deliverable.yaml`:
8
+
9
+ 1. Validate the product evidence and generation boundary from `product-design-brief.template.yaml`.
10
+ 2. Compile the brief with `compile_design_plan`, then resolve provisional contract decisions and
11
+ preserve route mapping for the target adapter.
12
+ 3. Validate the product task and product contract.
13
+ 4. Create and validate the truth and data-source contract from `interface-trust.template.yaml`.
14
+ 5. Create and validate the information architecture from `information-design.template.yaml`.
15
+ 6. Declare the interaction and state model.
16
+ 7. Declare the visual direction using `visual-polish.md`.
17
+ 8. Build primitive, semantic, and component token layers.
18
+ 9. When the recompiled plan is implementation-ready and a new independent React fixture is
19
+ appropriate, read `generation-adapter.md` and run only the contained CLI adapter.
20
+ 10. Implement the smallest coherent task path manually when no qualified adapter applies.
21
+ 11. When a product contract needs task progress, recovery, keyboard, export, or offline evidence,
22
+ read `interaction-recovery-verification.md` and declare only applicable executable states.
23
+ 12. Attach deterministic automated verification evidence, including every maintained viewport and
24
+ implemented color scheme for instrumented composition.
25
+ 13. When a generated fixture has a supported architecture or runtime finding, read
26
+ `closed-loop-repair.md` and use the bounded CLI workflow. Stop and restore on repeated failure.
27
+ 14. Request attributable human visual review of rendered output. Automated repair evidence cannot
28
+ satisfy a human obligation.
29
+
30
+ Before this sequence, inspect the existing brand, tokens, components, assets, rights records, and implementation stack. Preserve coherent systems unless redesign is requested. During it, route to the smallest relevant modules, record rights evidence for every distributable asset, and keep unresolved assets out of production output. A declaration validator cannot prove pixels, runtime behavior, legal clearance, usability, or human validation.
31
+
32
+ ## Module Routing
33
+
34
+ | Deliverable | Read |
35
+ |---|---|
36
+ | New product, consequential redesign, audience, task, data, assumptions, or generation readiness | `product-design-brief.md` |
37
+ | Deterministic planning, route proposals, component and state ownership, contract readiness, or verification obligations | `design-plan.md` |
38
+ | Contained generation of a new independent React and TypeScript fixture from an implementation-ready plan | `generation-adapter.md` |
39
+ | Finding-bound repair of a generated React fixture with before and after evidence | `closed-loop-repair.md` |
40
+ | Executable task progress, recovery, keyboard, export, or offline verification | `interaction-recovery-verification.md` |
41
+ | Operational state, external data, generated results, fallback, history, or export provenance | `interface-trust.md` |
42
+ | Operational metrics, findings, charts, hierarchy, long labels, or large collections | `information-design.md` |
43
+ | Visual direction, typography, composition, density, states, motion, charts, or rendered visual review | `visual-polish.md` |
44
+ | Brand identity, logo family, voice, or visual direction | `brand-systems.md` |
45
+ | Figma variables, modes, components, libraries, or handoff | `figma-production.md` |
46
+ | Generated images, illustrations, photos, textures, charts, audio, or video | `asset-generation.md` |
47
+ | Product icons or a custom icon family | `iconography.md` |
48
+ | Presentation deck, report slides, or reusable masters | `presentation-design.md` |
49
+ | Any third-party, generated, commissioned, or user-provided asset | `licensing-and-provenance.md` |
50
+ | Color, contrast, non-color cues, alternatives, or export accessibility | `visual-accessibility.md` |
51
+
52
+ ## Evidence Boundary
53
+
54
+ The design-deliverable manifest is a structured claim with evidence references. Passing validation means the declaration is internally consistent and its recorded token math meets the implemented checks. It does not mean:
55
+
56
+ - Every screen or exported asset uses the declared tokens.
57
+ - A Figma file contains the declared pages, variables, properties, or states.
58
+ - A rights basis is legally sufficient in every jurisdiction or channel.
59
+ - Generated media is free of confusing similarity or third-party claims.
60
+ - Rendered contrast, reading order, alternative text, or interaction behavior passes review.
61
+
62
+ Use source inspection, Figma inspection, export inspection, browser verification, and qualified human review to close those evidence gaps.
63
+
64
+ The product design brief proves that generation inputs are internally consistent, source-traceable,
65
+ and acceptance-covered. It does not prove product desirability, implementation correctness, or
66
+ release readiness.
67
+
68
+ The interface-trust contract has the same boundary. Passing validation proves internal source and disclosure consistency, not that the rendered interface displays the declarations or that an external service is available.
69
+
70
+ The information-design contract proves declaration structure and decision traceability only. It does not prove correct calculations, rendered hierarchy, responsive behavior, or representative-user comprehension.
71
+
72
+ The visual-polish report separates structural pass, verified rendered evidence, attributable human review, and release readiness. Planned screenshots and agent-authored critique never satisfy the latter two gates.
73
+
74
+ The integrated design report also separates generation readiness, contract validation, automated verification, and human review. `passed` means the manifest is internally consistent; only `integration.releaseReady` means every declared V2 gate is complete.
75
+
76
+ ## Completion Gate
77
+
78
+ A design-intelligence deliverable is ready for handoff only when:
79
+
80
+ - The manifest passes with no errors.
81
+ - Every shipped asset has approved rights status and traceable evidence.
82
+ - Token references terminate at valid primitives and declared contrast pairs pass.
83
+ - Semantic icons have accessible names or equivalent visible text.
84
+ - Presentation slides use declared masters and have explicit reading order.
85
+ - Final artifacts have been inspected at their actual size and channel.
86
+ - Interface systems have verified captures at 375, 768, 1024, and 1440 CSS pixels and attributable human review before visual release.
87
+ - Remaining warnings and limitations are reported rather than hidden.
@@ -0,0 +1,66 @@
1
+ # Asset Generation
2
+
3
+ Treat asset creation as a controlled production pipeline. Generate or source real assets only after their role, constraints, evidence, and fallback behavior are known.
4
+
5
+ ## Step 1: Write The Asset Brief
6
+
7
+ For each asset, define:
8
+
9
+ - A stable identifier, one concrete purpose, and the decision or task it supports.
10
+ - Product task and location.
11
+ - Information the asset must communicate.
12
+ - Audience, channel, dimensions, crop behavior, and density.
13
+ - Brand attributes and prohibited traits.
14
+ - Required subject accuracy and details that must remain visible.
15
+ - Background, transparency, safe area, and text-overlay constraints.
16
+ - Alternative-content requirement.
17
+ - Failure behavior: hide decorative media, preserve a text alternative, show a factual placeholder,
18
+ offer retry, or block only when the task cannot remain truthful without the asset.
19
+ - Rights and provenance requirements.
20
+
21
+ Do not use an atmospheric placeholder where users need to inspect a product, person, state, place, or result.
22
+
23
+ ## Step 2: Choose A Production Method
24
+
25
+ Use existing approved assets when they satisfy the brief. Use licensed libraries for commodity imagery or media when terms fit the channels. Commission or create original work when distinctiveness, factual control, or long-term ownership matters. Use generative tools when iteration speed is valuable and the output can be reviewed, corrected, and documented.
26
+
27
+ Keep generation provider-neutral. Record provider, model, prompt artifact, human selection and editing, and every reference asset. Do not use references with pending, rejected, or unknown rights. Do not request imitation of a living artist, competitor identity, protected character, or identifiable private person without an appropriate basis and review.
28
+
29
+ ## Step 3: Generate And Select
30
+
31
+ Generate purposeful variants that test composition, hierarchy, crop, lighting, and brand fit. Do not treat minor seed changes as meaningful exploration.
32
+
33
+ Reject output with:
34
+
35
+ - Incorrect product geometry or UI.
36
+ - Invented text, metrics, controls, logos, or certification marks.
37
+ - Inconsistent hands, faces, perspective, shadows, or reflections.
38
+ - Visual ambiguity at intended size.
39
+ - Inaccessible text baked into imagery.
40
+ - Unclear resemblance or source provenance.
41
+ - A composition that cannot survive responsive cropping.
42
+
43
+ Selection must be based on the brief and not only visual novelty.
44
+
45
+ ## Step 4: Finish The Asset
46
+
47
+ - Retouch factual and visual errors.
48
+ - Rebuild logos, diagrams, charts, and icons as controlled vector or code-native artifacts when appropriate.
49
+ - Remove metadata that should not ship while preserving internal provenance records.
50
+ - Export intended formats and densities.
51
+ - Compress without damaging text, line art, or required detail.
52
+ - Define focal point, crop rules, alt text or equivalent, and fallback behavior.
53
+ - Test on actual backgrounds and viewport ranges.
54
+
55
+ ## Step 5: Record Provenance
56
+
57
+ Every version 2.1 asset record must include purpose, origin, creator, local path, rights status,
58
+ rights basis, evidence, restrictions, attribution when required, alternative-content classification,
59
+ and explicit failure behavior. Generated assets also require model and prompt records, human
60
+ contributions, and reference-rights status.
61
+
62
+ An `approved` label without a source URL or evidence path is invalid. Generated output is not automatically owned, copyrightable, non-infringing, or suitable for every use.
63
+
64
+ ## Validation
65
+
66
+ Run the design-deliverable validator, then inspect the actual asset at 100 percent, intended display size, smallest responsive crop, and highest-risk background. Use human review for product accuracy, resemblance, taste, cultural context, and brand distinctiveness.