@sun-asterisk/sungen 3.2.34 → 3.3.0-alpha.2

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 (889) hide show
  1. package/dist/basis/anchor-grammar.d.ts +32 -0
  2. package/dist/basis/anchor-grammar.d.ts.map +1 -0
  3. package/dist/basis/anchor-grammar.js +82 -0
  4. package/dist/basis/anchor-grammar.js.map +1 -0
  5. package/dist/basis/anchor-hash.d.ts +6 -0
  6. package/dist/basis/anchor-hash.d.ts.map +1 -0
  7. package/dist/basis/anchor-hash.js +28 -0
  8. package/dist/basis/anchor-hash.js.map +1 -0
  9. package/dist/basis/bm51-tables.d.ts +20 -0
  10. package/dist/basis/bm51-tables.d.ts.map +1 -0
  11. package/dist/basis/bm51-tables.js +71 -0
  12. package/dist/basis/bm51-tables.js.map +1 -0
  13. package/dist/basis/extract-spec-anchors.d.ts +39 -0
  14. package/dist/basis/extract-spec-anchors.d.ts.map +1 -0
  15. package/dist/basis/extract-spec-anchors.js +81 -0
  16. package/dist/basis/extract-spec-anchors.js.map +1 -0
  17. package/dist/basis/migration-sentinel.d.ts +47 -0
  18. package/dist/basis/migration-sentinel.d.ts.map +1 -0
  19. package/dist/basis/migration-sentinel.js +219 -0
  20. package/dist/basis/migration-sentinel.js.map +1 -0
  21. package/dist/basis/spec-frontmatter.d.ts +18 -0
  22. package/dist/basis/spec-frontmatter.d.ts.map +1 -0
  23. package/dist/basis/spec-frontmatter.js +55 -0
  24. package/dist/basis/spec-frontmatter.js.map +1 -0
  25. package/dist/basis/spec-sections.d.ts +18 -0
  26. package/dist/basis/spec-sections.d.ts.map +1 -0
  27. package/dist/basis/spec-sections.js +27 -0
  28. package/dist/basis/spec-sections.js.map +1 -0
  29. package/dist/basis/test-basis-schema.d.ts +28 -0
  30. package/dist/basis/test-basis-schema.d.ts.map +1 -0
  31. package/dist/basis/test-basis-schema.js +141 -0
  32. package/dist/basis/test-basis-schema.js.map +1 -0
  33. package/dist/capabilities/discover.d.ts +4 -0
  34. package/dist/capabilities/discover.d.ts.map +1 -1
  35. package/dist/capabilities/discover.js +16 -2
  36. package/dist/capabilities/discover.js.map +1 -1
  37. package/dist/capabilities/registry.d.ts +15 -0
  38. package/dist/capabilities/registry.d.ts.map +1 -1
  39. package/dist/capabilities/registry.js.map +1 -1
  40. package/dist/cli/commands/audit.d.ts.map +1 -1
  41. package/dist/cli/commands/audit.js +10 -5
  42. package/dist/cli/commands/audit.js.map +1 -1
  43. package/dist/cli/commands/capability.d.ts.map +1 -1
  44. package/dist/cli/commands/capability.js +6 -2
  45. package/dist/cli/commands/capability.js.map +1 -1
  46. package/dist/cli/commands/contract-derive-command.d.ts +11 -0
  47. package/dist/cli/commands/contract-derive-command.d.ts.map +1 -0
  48. package/dist/cli/commands/contract-derive-command.js +99 -0
  49. package/dist/cli/commands/contract-derive-command.js.map +1 -0
  50. package/dist/cli/commands/contract.d.ts +17 -0
  51. package/dist/cli/commands/contract.d.ts.map +1 -0
  52. package/dist/cli/commands/contract.js +162 -0
  53. package/dist/cli/commands/contract.js.map +1 -0
  54. package/dist/cli/commands/defect.d.ts +7 -0
  55. package/dist/cli/commands/defect.d.ts.map +1 -0
  56. package/dist/cli/commands/defect.js +68 -0
  57. package/dist/cli/commands/defect.js.map +1 -0
  58. package/dist/cli/commands/delivery.d.ts.map +1 -1
  59. package/dist/cli/commands/delivery.js +96 -12
  60. package/dist/cli/commands/delivery.js.map +1 -1
  61. package/dist/cli/commands/generate.d.ts.map +1 -1
  62. package/dist/cli/commands/generate.js +3 -1
  63. package/dist/cli/commands/generate.js.map +1 -1
  64. package/dist/cli/commands/journey.d.ts.map +1 -1
  65. package/dist/cli/commands/journey.js +43 -15
  66. package/dist/cli/commands/journey.js.map +1 -1
  67. package/dist/cli/commands/next.d.ts +8 -0
  68. package/dist/cli/commands/next.d.ts.map +1 -1
  69. package/dist/cli/commands/next.js +68 -8
  70. package/dist/cli/commands/next.js.map +1 -1
  71. package/dist/cli/commands/triage.d.ts +7 -0
  72. package/dist/cli/commands/triage.d.ts.map +1 -0
  73. package/dist/cli/commands/triage.js +98 -0
  74. package/dist/cli/commands/triage.js.map +1 -0
  75. package/dist/cli/commands/update.d.ts +11 -0
  76. package/dist/cli/commands/update.d.ts.map +1 -1
  77. package/dist/cli/commands/update.js +31 -6
  78. package/dist/cli/commands/update.js.map +1 -1
  79. package/dist/cli/index.js +24 -33
  80. package/dist/cli/index.js.map +1 -1
  81. package/dist/cli/project-sungen-invocation.d.ts +7 -0
  82. package/dist/cli/project-sungen-invocation.d.ts.map +1 -0
  83. package/dist/cli/project-sungen-invocation.js +76 -0
  84. package/dist/cli/project-sungen-invocation.js.map +1 -0
  85. package/dist/contract/approve-contract.d.ts +31 -0
  86. package/dist/contract/approve-contract.d.ts.map +1 -0
  87. package/dist/contract/approve-contract.js +87 -0
  88. package/dist/contract/approve-contract.js.map +1 -0
  89. package/dist/contract/assertion-matcher-vocabulary.d.ts +24 -0
  90. package/dist/contract/assertion-matcher-vocabulary.d.ts.map +1 -0
  91. package/dist/contract/assertion-matcher-vocabulary.js +100 -0
  92. package/dist/contract/assertion-matcher-vocabulary.js.map +1 -0
  93. package/dist/contract/build-contract-verdict.d.ts +32 -0
  94. package/dist/contract/build-contract-verdict.d.ts.map +1 -0
  95. package/dist/contract/build-contract-verdict.js +123 -0
  96. package/dist/contract/build-contract-verdict.js.map +1 -0
  97. package/dist/contract/build-trace-conformance.d.ts +18 -0
  98. package/dist/contract/build-trace-conformance.d.ts.map +1 -0
  99. package/dist/contract/build-trace-conformance.js +153 -0
  100. package/dist/contract/build-trace-conformance.js.map +1 -0
  101. package/dist/contract/classify-contract-change.d.ts +23 -0
  102. package/dist/contract/classify-contract-change.d.ts.map +1 -0
  103. package/dist/contract/classify-contract-change.js +98 -0
  104. package/dist/contract/classify-contract-change.js.map +1 -0
  105. package/dist/contract/classify-contract-unit.d.ts +18 -0
  106. package/dist/contract/classify-contract-unit.d.ts.map +1 -0
  107. package/dist/contract/classify-contract-unit.js +49 -0
  108. package/dist/contract/classify-contract-unit.js.map +1 -0
  109. package/dist/contract/classify-trace-conformance.d.ts +32 -0
  110. package/dist/contract/classify-trace-conformance.d.ts.map +1 -0
  111. package/dist/contract/classify-trace-conformance.js +117 -0
  112. package/dist/contract/classify-trace-conformance.js.map +1 -0
  113. package/dist/contract/contract-git.d.ts +24 -0
  114. package/dist/contract/contract-git.d.ts.map +1 -0
  115. package/dist/contract/contract-git.js +144 -0
  116. package/dist/contract/contract-git.js.map +1 -0
  117. package/dist/contract/contract-hash.d.ts +7 -0
  118. package/dist/contract/contract-hash.d.ts.map +1 -0
  119. package/dist/contract/contract-hash.js +38 -0
  120. package/dist/contract/contract-hash.js.map +1 -0
  121. package/dist/contract/contract-report-file.d.ts +4 -0
  122. package/dist/contract/contract-report-file.d.ts.map +1 -0
  123. package/dist/contract/contract-report-file.js +60 -0
  124. package/dist/contract/contract-report-file.js.map +1 -0
  125. package/dist/contract/contract-schema.d.ts +71 -0
  126. package/dist/contract/contract-schema.d.ts.map +1 -0
  127. package/dist/contract/contract-schema.js +102 -0
  128. package/dist/contract/contract-schema.js.map +1 -0
  129. package/dist/contract/contract-units.d.ts +12 -0
  130. package/dist/contract/contract-units.d.ts.map +1 -0
  131. package/dist/contract/contract-units.js +96 -0
  132. package/dist/contract/contract-units.js.map +1 -0
  133. package/dist/contract/contracts-lock-file.d.ts +24 -0
  134. package/dist/contract/contracts-lock-file.d.ts.map +1 -0
  135. package/dist/contract/contracts-lock-file.js +140 -0
  136. package/dist/contract/contracts-lock-file.js.map +1 -0
  137. package/dist/contract/data-normalize.d.ts +10 -0
  138. package/dist/contract/data-normalize.d.ts.map +1 -0
  139. package/dist/contract/data-normalize.js +110 -0
  140. package/dist/contract/data-normalize.js.map +1 -0
  141. package/dist/contract/derive-free-feature.d.ts +38 -0
  142. package/dist/contract/derive-free-feature.d.ts.map +1 -0
  143. package/dist/contract/derive-free-feature.js +154 -0
  144. package/dist/contract/derive-free-feature.js.map +1 -0
  145. package/dist/contract/field-semantic-redaction.d.ts +21 -0
  146. package/dist/contract/field-semantic-redaction.d.ts.map +1 -0
  147. package/dist/contract/field-semantic-redaction.js +118 -0
  148. package/dist/contract/field-semantic-redaction.js.map +1 -0
  149. package/dist/contract/free-feature-blocks.d.ts +10 -0
  150. package/dist/contract/free-feature-blocks.d.ts.map +1 -0
  151. package/dist/contract/free-feature-blocks.js +94 -0
  152. package/dist/contract/free-feature-blocks.js.map +1 -0
  153. package/dist/contract/lock-secret-guard.d.ts +22 -0
  154. package/dist/contract/lock-secret-guard.d.ts.map +1 -0
  155. package/dist/contract/lock-secret-guard.js +134 -0
  156. package/dist/contract/lock-secret-guard.js.map +1 -0
  157. package/dist/contract/lock-vs-git-head.d.ts +26 -0
  158. package/dist/contract/lock-vs-git-head.d.ts.map +1 -0
  159. package/dist/contract/lock-vs-git-head.js +28 -0
  160. package/dist/contract/lock-vs-git-head.js.map +1 -0
  161. package/dist/contract/normalize-contract-step.d.ts +21 -0
  162. package/dist/contract/normalize-contract-step.d.ts.map +1 -0
  163. package/dist/contract/normalize-contract-step.js +70 -0
  164. package/dist/contract/normalize-contract-step.js.map +1 -0
  165. package/dist/contract/normalize-feature-steps.d.ts +7 -0
  166. package/dist/contract/normalize-feature-steps.d.ts.map +1 -0
  167. package/dist/contract/normalize-feature-steps.js +127 -0
  168. package/dist/contract/normalize-feature-steps.js.map +1 -0
  169. package/dist/contract/oracle-strength.d.ts +12 -0
  170. package/dist/contract/oracle-strength.d.ts.map +1 -0
  171. package/dist/contract/oracle-strength.js +88 -0
  172. package/dist/contract/oracle-strength.js.map +1 -0
  173. package/dist/contract/project-contract-blockers.d.ts +10 -0
  174. package/dist/contract/project-contract-blockers.d.ts.map +1 -0
  175. package/dist/contract/project-contract-blockers.js +73 -0
  176. package/dist/contract/project-contract-blockers.js.map +1 -0
  177. package/dist/contract/record-contract-approval.d.ts +21 -0
  178. package/dist/contract/record-contract-approval.d.ts.map +1 -0
  179. package/dist/contract/record-contract-approval.js +98 -0
  180. package/dist/contract/record-contract-approval.js.map +1 -0
  181. package/dist/contract/render-free-gherkin.d.ts +40 -0
  182. package/dist/contract/render-free-gherkin.d.ts.map +1 -0
  183. package/dist/contract/render-free-gherkin.js +141 -0
  184. package/dist/contract/render-free-gherkin.js.map +1 -0
  185. package/dist/contract/render-trace-sentence.d.ts +20 -0
  186. package/dist/contract/render-trace-sentence.d.ts.map +1 -0
  187. package/dist/contract/render-trace-sentence.js +109 -0
  188. package/dist/contract/render-trace-sentence.js.map +1 -0
  189. package/dist/contract/render-trace-target.d.ts +14 -0
  190. package/dist/contract/render-trace-target.d.ts.map +1 -0
  191. package/dist/contract/render-trace-target.js +70 -0
  192. package/dist/contract/render-trace-target.js.map +1 -0
  193. package/dist/contract/resolve-unit-trace-identities.d.ts +8 -0
  194. package/dist/contract/resolve-unit-trace-identities.d.ts.map +1 -0
  195. package/dist/contract/resolve-unit-trace-identities.js +78 -0
  196. package/dist/contract/resolve-unit-trace-identities.js.map +1 -0
  197. package/dist/contract/trace/collect-trace-evidence.d.ts +33 -0
  198. package/dist/contract/trace/collect-trace-evidence.d.ts.map +1 -0
  199. package/dist/contract/trace/collect-trace-evidence.js +161 -0
  200. package/dist/contract/trace/collect-trace-evidence.js.map +1 -0
  201. package/dist/contract/trace/identity-cache.d.ts +19 -0
  202. package/dist/contract/trace/identity-cache.d.ts.map +1 -0
  203. package/dist/contract/trace/identity-cache.js +104 -0
  204. package/dist/contract/trace/identity-cache.js.map +1 -0
  205. package/dist/contract/trace/select-final-attempt.d.ts +27 -0
  206. package/dist/contract/trace/select-final-attempt.d.ts.map +1 -0
  207. package/dist/contract/trace/select-final-attempt.js +116 -0
  208. package/dist/contract/trace/select-final-attempt.js.map +1 -0
  209. package/dist/contract/trace/snapshot-html-renderer.d.ts +31 -0
  210. package/dist/contract/trace/snapshot-html-renderer.d.ts.map +1 -0
  211. package/dist/contract/trace/snapshot-html-renderer.js +172 -0
  212. package/dist/contract/trace/snapshot-html-renderer.js.map +1 -0
  213. package/dist/contract/trace/snapshot-resolver.d.ts +21 -0
  214. package/dist/contract/trace/snapshot-resolver.d.ts.map +1 -0
  215. package/dist/contract/trace/snapshot-resolver.js +65 -0
  216. package/dist/contract/trace/snapshot-resolver.js.map +1 -0
  217. package/dist/contract/trace/snapshot-store.d.ts +66 -0
  218. package/dist/contract/trace/snapshot-store.d.ts.map +1 -0
  219. package/dist/contract/trace/snapshot-store.js +173 -0
  220. package/dist/contract/trace/snapshot-store.js.map +1 -0
  221. package/dist/contract/trace/target-identity.d.ts +74 -0
  222. package/dist/contract/trace/target-identity.d.ts.map +1 -0
  223. package/dist/contract/trace/target-identity.js +68 -0
  224. package/dist/contract/trace/target-identity.js.map +1 -0
  225. package/dist/contract/trace/test-step-join.d.ts +65 -0
  226. package/dist/contract/trace/test-step-join.d.ts.map +1 -0
  227. package/dist/contract/trace/test-step-join.js +80 -0
  228. package/dist/contract/trace/test-step-join.js.map +1 -0
  229. package/dist/contract/trace/trace-binding.d.ts +21 -0
  230. package/dist/contract/trace/trace-binding.d.ts.map +1 -0
  231. package/dist/contract/trace/trace-binding.js +88 -0
  232. package/dist/contract/trace/trace-binding.js.map +1 -0
  233. package/dist/contract/trace/trace-file-reader.d.ts +41 -0
  234. package/dist/contract/trace/trace-file-reader.d.ts.map +1 -0
  235. package/dist/contract/trace/trace-file-reader.js +161 -0
  236. package/dist/contract/trace/trace-file-reader.js.map +1 -0
  237. package/dist/contract/trace/trace-fingerprint.d.ts +22 -0
  238. package/dist/contract/trace/trace-fingerprint.d.ts.map +1 -0
  239. package/dist/contract/trace/trace-fingerprint.js +96 -0
  240. package/dist/contract/trace/trace-fingerprint.js.map +1 -0
  241. package/dist/contract/trace/trace-identity-resolution.d.ts +26 -0
  242. package/dist/contract/trace/trace-identity-resolution.d.ts.map +1 -0
  243. package/dist/contract/trace/trace-identity-resolution.js +84 -0
  244. package/dist/contract/trace/trace-identity-resolution.js.map +1 -0
  245. package/dist/contract/trace/trace-run-record.d.ts +30 -0
  246. package/dist/contract/trace/trace-run-record.d.ts.map +1 -0
  247. package/dist/contract/trace/trace-run-record.js +121 -0
  248. package/dist/contract/trace/trace-run-record.js.map +1 -0
  249. package/dist/contract/trace/trace-steps.d.ts +19 -0
  250. package/dist/contract/trace/trace-steps.d.ts.map +1 -0
  251. package/dist/contract/trace/trace-steps.js +79 -0
  252. package/dist/contract/trace/trace-steps.js.map +1 -0
  253. package/dist/contract/trace/trace-zip-limits.d.ts +45 -0
  254. package/dist/contract/trace/trace-zip-limits.d.ts.map +1 -0
  255. package/dist/contract/trace/trace-zip-limits.js +52 -0
  256. package/dist/contract/trace/trace-zip-limits.js.map +1 -0
  257. package/dist/contract/trace/trace-zip-reader.d.ts +10 -0
  258. package/dist/contract/trace/trace-zip-reader.d.ts.map +1 -0
  259. package/dist/contract/trace/trace-zip-reader.js +186 -0
  260. package/dist/contract/trace/trace-zip-reader.js.map +1 -0
  261. package/dist/contract/verify-approval-decisions.d.ts +5 -0
  262. package/dist/contract/verify-approval-decisions.d.ts.map +1 -0
  263. package/dist/contract/verify-approval-decisions.js +104 -0
  264. package/dist/contract/verify-approval-decisions.js.map +1 -0
  265. package/dist/decisions/append-decision.d.ts +12 -0
  266. package/dist/decisions/append-decision.d.ts.map +1 -0
  267. package/dist/decisions/append-decision.js +73 -0
  268. package/dist/decisions/append-decision.js.map +1 -0
  269. package/dist/decisions/confirmed-decision-commands.d.ts +41 -0
  270. package/dist/decisions/confirmed-decision-commands.d.ts.map +1 -0
  271. package/dist/decisions/confirmed-decision-commands.js +190 -0
  272. package/dist/decisions/confirmed-decision-commands.js.map +1 -0
  273. package/dist/decisions/decision-file.d.ts +31 -0
  274. package/dist/decisions/decision-file.d.ts.map +1 -0
  275. package/dist/decisions/decision-file.js +139 -0
  276. package/dist/decisions/decision-file.js.map +1 -0
  277. package/dist/decisions/decision-identity.d.ts +12 -0
  278. package/dist/decisions/decision-identity.d.ts.map +1 -0
  279. package/dist/decisions/decision-identity.js +78 -0
  280. package/dist/decisions/decision-identity.js.map +1 -0
  281. package/dist/decisions/decision-integrity-check.d.ts +12 -0
  282. package/dist/decisions/decision-integrity-check.d.ts.map +1 -0
  283. package/dist/decisions/decision-integrity-check.js +102 -0
  284. package/dist/decisions/decision-integrity-check.js.map +1 -0
  285. package/dist/decisions/decision-schema.d.ts +42 -0
  286. package/dist/decisions/decision-schema.d.ts.map +1 -0
  287. package/dist/decisions/decision-schema.js +75 -0
  288. package/dist/decisions/decision-schema.js.map +1 -0
  289. package/dist/decisions/decision-source.d.ts +2 -0
  290. package/dist/decisions/decision-source.d.ts.map +1 -0
  291. package/dist/decisions/decision-source.js +18 -0
  292. package/dist/decisions/decision-source.js.map +1 -0
  293. package/dist/decisions/exclusive-file-create.d.ts +3 -0
  294. package/dist/decisions/exclusive-file-create.d.ts.map +1 -0
  295. package/dist/decisions/exclusive-file-create.js +84 -0
  296. package/dist/decisions/exclusive-file-create.js.map +1 -0
  297. package/dist/decisions/git-head-trust.d.ts +7 -0
  298. package/dist/decisions/git-head-trust.d.ts.map +1 -0
  299. package/dist/decisions/git-head-trust.js +76 -0
  300. package/dist/decisions/git-head-trust.js.map +1 -0
  301. package/dist/decisions/human-confirmation.d.ts +35 -0
  302. package/dist/decisions/human-confirmation.d.ts.map +1 -0
  303. package/dist/decisions/human-confirmation.js +161 -0
  304. package/dist/decisions/human-confirmation.js.map +1 -0
  305. package/dist/decisions/legacy-waiver-migration.d.ts +31 -0
  306. package/dist/decisions/legacy-waiver-migration.d.ts.map +1 -0
  307. package/dist/decisions/legacy-waiver-migration.js +170 -0
  308. package/dist/decisions/legacy-waiver-migration.js.map +1 -0
  309. package/dist/decisions/read-decisions.d.ts +19 -0
  310. package/dist/decisions/read-decisions.d.ts.map +1 -0
  311. package/dist/decisions/read-decisions.js +90 -0
  312. package/dist/decisions/read-decisions.js.map +1 -0
  313. package/dist/decisions/viewpoint-baseline-adapter.d.ts +7 -0
  314. package/dist/decisions/viewpoint-baseline-adapter.d.ts.map +1 -0
  315. package/dist/decisions/viewpoint-baseline-adapter.js +109 -0
  316. package/dist/decisions/viewpoint-baseline-adapter.js.map +1 -0
  317. package/dist/decisions/waiver-decisions.d.ts +24 -0
  318. package/dist/decisions/waiver-decisions.d.ts.map +1 -0
  319. package/dist/decisions/waiver-decisions.js +46 -0
  320. package/dist/decisions/waiver-decisions.js.map +1 -0
  321. package/dist/exporters/csv-exporter.d.ts +4 -0
  322. package/dist/exporters/csv-exporter.d.ts.map +1 -1
  323. package/dist/exporters/csv-exporter.js +1 -1
  324. package/dist/exporters/csv-exporter.js.map +1 -1
  325. package/dist/exporters/feature-parser.d.ts +8 -0
  326. package/dist/exporters/feature-parser.d.ts.map +1 -1
  327. package/dist/exporters/feature-parser.js +12 -0
  328. package/dist/exporters/feature-parser.js.map +1 -1
  329. package/dist/exporters/matrix/build.d.ts +3 -0
  330. package/dist/exporters/matrix/build.d.ts.map +1 -1
  331. package/dist/exporters/matrix/build.js +59 -19
  332. package/dist/exporters/matrix/build.js.map +1 -1
  333. package/dist/exporters/matrix/carry-manual-results.d.ts +19 -0
  334. package/dist/exporters/matrix/carry-manual-results.d.ts.map +1 -1
  335. package/dist/exporters/matrix/carry-manual-results.js +76 -6
  336. package/dist/exporters/matrix/carry-manual-results.js.map +1 -1
  337. package/dist/exporters/matrix/export.d.ts +8 -2
  338. package/dist/exporters/matrix/export.d.ts.map +1 -1
  339. package/dist/exporters/matrix/export.js +16 -3
  340. package/dist/exporters/matrix/export.js.map +1 -1
  341. package/dist/exporters/matrix/gates.d.ts +6 -1
  342. package/dist/exporters/matrix/gates.d.ts.map +1 -1
  343. package/dist/exporters/matrix/gates.js +57 -128
  344. package/dist/exporters/matrix/gates.js.map +1 -1
  345. package/dist/exporters/matrix/render-csv.d.ts.map +1 -1
  346. package/dist/exporters/matrix/render-csv.js +4 -1
  347. package/dist/exporters/matrix/render-csv.js.map +1 -1
  348. package/dist/exporters/matrix/render-gate-overrides-sheet.d.ts +13 -0
  349. package/dist/exporters/matrix/render-gate-overrides-sheet.d.ts.map +1 -0
  350. package/dist/exporters/matrix/render-gate-overrides-sheet.js +44 -0
  351. package/dist/exporters/matrix/render-gate-overrides-sheet.js.map +1 -0
  352. package/dist/exporters/matrix/render-xlsx.d.ts +1 -0
  353. package/dist/exporters/matrix/render-xlsx.d.ts.map +1 -1
  354. package/dist/exporters/matrix/render-xlsx.js +6 -0
  355. package/dist/exporters/matrix/render-xlsx.js.map +1 -1
  356. package/dist/exporters/matrix/types.d.ts +9 -1
  357. package/dist/exporters/matrix/types.d.ts.map +1 -1
  358. package/dist/exporters/matrix/types.js.map +1 -1
  359. package/dist/exporters/matrix/xlsx-cells.js +1 -1
  360. package/dist/exporters/matrix/xlsx-cells.js.map +1 -1
  361. package/dist/exporters/playwright-report-parser.d.ts.map +1 -1
  362. package/dist/exporters/playwright-report-parser.js +1 -0
  363. package/dist/exporters/playwright-report-parser.js.map +1 -1
  364. package/dist/exporters/scenario-merger.d.ts.map +1 -1
  365. package/dist/exporters/scenario-merger.js +2 -0
  366. package/dist/exporters/scenario-merger.js.map +1 -1
  367. package/dist/exporters/types.d.ts +5 -0
  368. package/dist/exporters/types.d.ts.map +1 -1
  369. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  370. package/dist/generators/test-generator/code-generator.js +13 -0
  371. package/dist/generators/test-generator/code-generator.js.map +1 -1
  372. package/dist/graph/evaluate-graph.d.ts +23 -0
  373. package/dist/graph/evaluate-graph.d.ts.map +1 -0
  374. package/dist/graph/evaluate-graph.js +52 -0
  375. package/dist/graph/evaluate-graph.js.map +1 -0
  376. package/dist/graph/locate-finding.d.ts +20 -0
  377. package/dist/graph/locate-finding.d.ts.map +1 -0
  378. package/dist/graph/locate-finding.js +137 -0
  379. package/dist/graph/locate-finding.js.map +1 -0
  380. package/dist/graph/node-decl.d.ts +66 -0
  381. package/dist/graph/node-decl.d.ts.map +1 -0
  382. package/dist/graph/node-decl.js +8 -0
  383. package/dist/graph/node-decl.js.map +1 -0
  384. package/dist/graph/nodes/core-node-catalog.d.ts +7 -0
  385. package/dist/graph/nodes/core-node-catalog.d.ts.map +1 -0
  386. package/dist/graph/nodes/core-node-catalog.js +13 -0
  387. package/dist/graph/nodes/core-node-catalog.js.map +1 -0
  388. package/dist/graph/nodes/test-case-contract-nodes.d.ts +21 -0
  389. package/dist/graph/nodes/test-case-contract-nodes.d.ts.map +1 -0
  390. package/dist/graph/nodes/test-case-contract-nodes.js +59 -0
  391. package/dist/graph/nodes/test-case-contract-nodes.js.map +1 -0
  392. package/dist/graph/nodes/test-case-nodes.d.ts +26 -0
  393. package/dist/graph/nodes/test-case-nodes.d.ts.map +1 -0
  394. package/dist/graph/nodes/test-case-nodes.js +66 -0
  395. package/dist/graph/nodes/test-case-nodes.js.map +1 -0
  396. package/dist/graph/nodes/unit-audit-nodes.d.ts +18 -0
  397. package/dist/graph/nodes/unit-audit-nodes.d.ts.map +1 -0
  398. package/dist/graph/nodes/unit-audit-nodes.js +95 -0
  399. package/dist/graph/nodes/unit-audit-nodes.js.map +1 -0
  400. package/dist/graph/nodes/unit-contract-node.d.ts +21 -0
  401. package/dist/graph/nodes/unit-contract-node.d.ts.map +1 -0
  402. package/dist/graph/nodes/unit-contract-node.js +88 -0
  403. package/dist/graph/nodes/unit-contract-node.js.map +1 -0
  404. package/dist/graph/nodes/unit-design-nodes.d.ts +14 -0
  405. package/dist/graph/nodes/unit-design-nodes.d.ts.map +1 -0
  406. package/dist/graph/nodes/unit-design-nodes.js +91 -0
  407. package/dist/graph/nodes/unit-design-nodes.js.map +1 -0
  408. package/dist/graph/nodes/unit-execution-nodes.d.ts +16 -0
  409. package/dist/graph/nodes/unit-execution-nodes.d.ts.map +1 -0
  410. package/dist/graph/nodes/unit-execution-nodes.js +79 -0
  411. package/dist/graph/nodes/unit-execution-nodes.js.map +1 -0
  412. package/dist/graph/test-case-identity.d.ts +13 -0
  413. package/dist/graph/test-case-identity.d.ts.map +1 -0
  414. package/dist/graph/test-case-identity.js +106 -0
  415. package/dist/graph/test-case-identity.js.map +1 -0
  416. package/dist/graph/test-case-results.d.ts +11 -0
  417. package/dist/graph/test-case-results.d.ts.map +1 -0
  418. package/dist/graph/test-case-results.js +137 -0
  419. package/dist/graph/test-case-results.js.map +1 -0
  420. package/dist/graph/test-case-satisfied.d.ts +25 -0
  421. package/dist/graph/test-case-satisfied.d.ts.map +1 -0
  422. package/dist/graph/test-case-satisfied.js +51 -0
  423. package/dist/graph/test-case-satisfied.js.map +1 -0
  424. package/dist/graph/test-case-state-shape.d.ts +67 -0
  425. package/dist/graph/test-case-state-shape.d.ts.map +1 -0
  426. package/dist/graph/test-case-state-shape.js +3 -0
  427. package/dist/graph/test-case-state-shape.js.map +1 -0
  428. package/dist/graph/test-case-states.d.ts +9 -0
  429. package/dist/graph/test-case-states.d.ts.map +1 -0
  430. package/dist/graph/test-case-states.js +116 -0
  431. package/dist/graph/test-case-states.js.map +1 -0
  432. package/dist/graph/unit-artifact-probes.d.ts +19 -0
  433. package/dist/graph/unit-artifact-probes.d.ts.map +1 -0
  434. package/dist/graph/unit-artifact-probes.js +133 -0
  435. package/dist/graph/unit-artifact-probes.js.map +1 -0
  436. package/dist/graph/unit-state-facts.d.ts +43 -0
  437. package/dist/graph/unit-state-facts.d.ts.map +1 -0
  438. package/dist/graph/unit-state-facts.js +87 -0
  439. package/dist/graph/unit-state-facts.js.map +1 -0
  440. package/dist/harness/audit.d.ts +11 -0
  441. package/dist/harness/audit.d.ts.map +1 -1
  442. package/dist/harness/audit.js +34 -9
  443. package/dist/harness/audit.js.map +1 -1
  444. package/dist/harness/catalog/gate-rules.yaml +647 -0
  445. package/dist/harness/counted-assertions.d.ts +2 -0
  446. package/dist/harness/counted-assertions.d.ts.map +1 -0
  447. package/dist/harness/counted-assertions.js +38 -0
  448. package/dist/harness/counted-assertions.js.map +1 -0
  449. package/dist/harness/defect-draft.d.ts +14 -0
  450. package/dist/harness/defect-draft.d.ts.map +1 -0
  451. package/dist/harness/defect-draft.js +143 -0
  452. package/dist/harness/defect-draft.js.map +1 -0
  453. package/dist/harness/defects.d.ts +24 -0
  454. package/dist/harness/defects.d.ts.map +1 -0
  455. package/dist/harness/defects.js +118 -0
  456. package/dist/harness/defects.js.map +1 -0
  457. package/dist/harness/gates/audit-gate-terms.d.ts +41 -0
  458. package/dist/harness/gates/audit-gate-terms.d.ts.map +1 -0
  459. package/dist/harness/gates/audit-gate-terms.js +72 -0
  460. package/dist/harness/gates/audit-gate-terms.js.map +1 -0
  461. package/dist/harness/gates/audit-gate-verdict.d.ts +31 -0
  462. package/dist/harness/gates/audit-gate-verdict.d.ts.map +1 -0
  463. package/dist/harness/gates/audit-gate-verdict.js +101 -0
  464. package/dist/harness/gates/audit-gate-verdict.js.map +1 -0
  465. package/dist/harness/gates/audit-input-hash.d.ts +4 -0
  466. package/dist/harness/gates/audit-input-hash.d.ts.map +1 -0
  467. package/dist/harness/gates/audit-input-hash.js +96 -0
  468. package/dist/harness/gates/audit-input-hash.js.map +1 -0
  469. package/dist/harness/gates/audit-report-verification.d.ts +41 -0
  470. package/dist/harness/gates/audit-report-verification.d.ts.map +1 -0
  471. package/dist/harness/gates/audit-report-verification.js +236 -0
  472. package/dist/harness/gates/audit-report-verification.js.map +1 -0
  473. package/dist/harness/gates/decisions-hash.d.ts +13 -0
  474. package/dist/harness/gates/decisions-hash.d.ts.map +1 -0
  475. package/dist/harness/gates/decisions-hash.js +72 -0
  476. package/dist/harness/gates/decisions-hash.js.map +1 -0
  477. package/dist/harness/gates/delivery-checklist.d.ts +21 -0
  478. package/dist/harness/gates/delivery-checklist.d.ts.map +1 -0
  479. package/dist/harness/gates/delivery-checklist.js +128 -0
  480. package/dist/harness/gates/delivery-checklist.js.map +1 -0
  481. package/dist/harness/gates/delivery-decision-gate.d.ts +33 -0
  482. package/dist/harness/gates/delivery-decision-gate.d.ts.map +1 -0
  483. package/dist/harness/gates/delivery-decision-gate.js +116 -0
  484. package/dist/harness/gates/delivery-decision-gate.js.map +1 -0
  485. package/dist/harness/gates/delivery-decision-step.d.ts +19 -0
  486. package/dist/harness/gates/delivery-decision-step.d.ts.map +1 -0
  487. package/dist/harness/gates/delivery-decision-step.js +86 -0
  488. package/dist/harness/gates/delivery-decision-step.js.map +1 -0
  489. package/dist/harness/gates/gate-override-report.d.ts +59 -0
  490. package/dist/harness/gates/gate-override-report.d.ts.map +1 -0
  491. package/dist/harness/gates/gate-override-report.js +86 -0
  492. package/dist/harness/gates/gate-override-report.js.map +1 -0
  493. package/dist/harness/gates/gate-override-scope.d.ts +18 -0
  494. package/dist/harness/gates/gate-override-scope.d.ts.map +1 -0
  495. package/dist/harness/gates/gate-override-scope.js +98 -0
  496. package/dist/harness/gates/gate-override-scope.js.map +1 -0
  497. package/dist/harness/gates/gate-override-validation.d.ts +25 -0
  498. package/dist/harness/gates/gate-override-validation.d.ts.map +1 -0
  499. package/dist/harness/gates/gate-override-validation.js +81 -0
  500. package/dist/harness/gates/gate-override-validation.js.map +1 -0
  501. package/dist/harness/gates/gate-rule-catalog.d.ts +24 -0
  502. package/dist/harness/gates/gate-rule-catalog.d.ts.map +1 -0
  503. package/dist/harness/gates/gate-rule-catalog.js +112 -0
  504. package/dist/harness/gates/gate-rule-catalog.js.map +1 -0
  505. package/dist/harness/gates/gate-terms.d.ts +33 -0
  506. package/dist/harness/gates/gate-terms.d.ts.map +1 -0
  507. package/dist/harness/gates/gate-terms.js +41 -0
  508. package/dist/harness/gates/gate-terms.js.map +1 -0
  509. package/dist/harness/gates/in-run-decision-check.d.ts +21 -0
  510. package/dist/harness/gates/in-run-decision-check.d.ts.map +1 -0
  511. package/dist/harness/gates/in-run-decision-check.js +138 -0
  512. package/dist/harness/gates/in-run-decision-check.js.map +1 -0
  513. package/dist/harness/gates/journey-gate-inputs.d.ts +37 -0
  514. package/dist/harness/gates/journey-gate-inputs.d.ts.map +1 -0
  515. package/dist/harness/gates/journey-gate-inputs.js +81 -0
  516. package/dist/harness/gates/journey-gate-inputs.js.map +1 -0
  517. package/dist/harness/gates/migrated-waiver-review.d.ts +6 -0
  518. package/dist/harness/gates/migrated-waiver-review.d.ts.map +1 -0
  519. package/dist/harness/gates/migrated-waiver-review.js +116 -0
  520. package/dist/harness/gates/migrated-waiver-review.js.map +1 -0
  521. package/dist/harness/gates/resolve-rule.d.ts +59 -0
  522. package/dist/harness/gates/resolve-rule.d.ts.map +1 -0
  523. package/dist/harness/gates/resolve-rule.js +41 -0
  524. package/dist/harness/gates/resolve-rule.js.map +1 -0
  525. package/dist/harness/gates/unit-gate-overrides.d.ts +25 -0
  526. package/dist/harness/gates/unit-gate-overrides.d.ts.map +1 -0
  527. package/dist/harness/gates/unit-gate-overrides.js +122 -0
  528. package/dist/harness/gates/unit-gate-overrides.js.map +1 -0
  529. package/dist/harness/journey.d.ts +43 -1
  530. package/dist/harness/journey.d.ts.map +1 -1
  531. package/dist/harness/journey.js +207 -33
  532. package/dist/harness/journey.js.map +1 -1
  533. package/dist/harness/manifest.d.ts +12 -0
  534. package/dist/harness/manifest.d.ts.map +1 -1
  535. package/dist/harness/manifest.js +73 -45
  536. package/dist/harness/manifest.js.map +1 -1
  537. package/dist/harness/next-step.d.ts +37 -6
  538. package/dist/harness/next-step.d.ts.map +1 -1
  539. package/dist/harness/next-step.js +34 -174
  540. package/dist/harness/next-step.js.map +1 -1
  541. package/dist/harness/parse.d.ts +25 -0
  542. package/dist/harness/parse.d.ts.map +1 -1
  543. package/dist/harness/parse.js +38 -13
  544. package/dist/harness/parse.js.map +1 -1
  545. package/dist/harness/provenance.d.ts +29 -0
  546. package/dist/harness/provenance.d.ts.map +1 -1
  547. package/dist/harness/provenance.js +109 -9
  548. package/dist/harness/provenance.js.map +1 -1
  549. package/dist/harness/script-check.d.ts.map +1 -1
  550. package/dist/harness/script-check.js +29 -6
  551. package/dist/harness/script-check.js.map +1 -1
  552. package/dist/harness/sensors.d.ts +14 -3
  553. package/dist/harness/sensors.d.ts.map +1 -1
  554. package/dist/harness/sensors.js +64 -44
  555. package/dist/harness/sensors.js.map +1 -1
  556. package/dist/harness/triage-signals.d.ts +20 -0
  557. package/dist/harness/triage-signals.d.ts.map +1 -0
  558. package/dist/harness/triage-signals.js +30 -0
  559. package/dist/harness/triage-signals.js.map +1 -0
  560. package/dist/harness/triage-unit.d.ts +23 -0
  561. package/dist/harness/triage-unit.d.ts.map +1 -0
  562. package/dist/harness/triage-unit.js +142 -0
  563. package/dist/harness/triage-unit.js.map +1 -0
  564. package/dist/harness/triage.d.ts +28 -0
  565. package/dist/harness/triage.d.ts.map +1 -0
  566. package/dist/harness/triage.js +99 -0
  567. package/dist/harness/triage.js.map +1 -0
  568. package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
  569. package/dist/harness/viewpoint-ledger.js +2 -1
  570. package/dist/harness/viewpoint-ledger.js.map +1 -1
  571. package/dist/hooks/bash-write-targets.d.ts +15 -0
  572. package/dist/hooks/bash-write-targets.d.ts.map +1 -0
  573. package/dist/hooks/bash-write-targets.js +173 -0
  574. package/dist/hooks/bash-write-targets.js.map +1 -0
  575. package/dist/hooks/claude-hook-entry.d.ts +11 -0
  576. package/dist/hooks/claude-hook-entry.d.ts.map +1 -0
  577. package/dist/hooks/claude-hook-entry.js +137 -0
  578. package/dist/hooks/claude-hook-entry.js.map +1 -0
  579. package/dist/hooks/claude-transcript-turn.d.ts +11 -0
  580. package/dist/hooks/claude-transcript-turn.d.ts.map +1 -0
  581. package/dist/hooks/claude-transcript-turn.js +143 -0
  582. package/dist/hooks/claude-transcript-turn.js.map +1 -0
  583. package/dist/hooks/guard-delivery-contract-rule.d.ts +10 -0
  584. package/dist/hooks/guard-delivery-contract-rule.d.ts.map +1 -0
  585. package/dist/hooks/guard-delivery-contract-rule.js +152 -0
  586. package/dist/hooks/guard-delivery-contract-rule.js.map +1 -0
  587. package/dist/hooks/guard-protected-paths.d.ts +9 -0
  588. package/dist/hooks/guard-protected-paths.d.ts.map +1 -0
  589. package/dist/hooks/guard-protected-paths.js +107 -0
  590. package/dist/hooks/guard-protected-paths.js.map +1 -0
  591. package/dist/hooks/guard-rules.d.ts +37 -0
  592. package/dist/hooks/guard-rules.d.ts.map +1 -0
  593. package/dist/hooks/guard-rules.js +61 -0
  594. package/dist/hooks/guard-rules.js.map +1 -0
  595. package/dist/hooks/guard-tty-spoof-rule.d.ts +15 -0
  596. package/dist/hooks/guard-tty-spoof-rule.d.ts.map +1 -0
  597. package/dist/hooks/guard-tty-spoof-rule.js +21 -0
  598. package/dist/hooks/guard-tty-spoof-rule.js.map +1 -0
  599. package/dist/hooks/hand-back-core.d.ts +39 -0
  600. package/dist/hooks/hand-back-core.d.ts.map +1 -0
  601. package/dist/hooks/hand-back-core.js +122 -0
  602. package/dist/hooks/hand-back-core.js.map +1 -0
  603. package/dist/hooks/hook-cli-command.d.ts +9 -0
  604. package/dist/hooks/hook-cli-command.d.ts.map +1 -0
  605. package/dist/hooks/hook-cli-command.js +46 -0
  606. package/dist/hooks/hook-cli-command.js.map +1 -0
  607. package/dist/hooks/hook-registry.d.ts +10 -0
  608. package/dist/hooks/hook-registry.d.ts.map +1 -0
  609. package/dist/hooks/hook-registry.js +24 -0
  610. package/dist/hooks/hook-registry.js.map +1 -0
  611. package/dist/hooks/hook-result-contract.d.ts +50 -0
  612. package/dist/hooks/hook-result-contract.d.ts.map +1 -0
  613. package/dist/hooks/hook-result-contract.js +80 -0
  614. package/dist/hooks/hook-result-contract.js.map +1 -0
  615. package/dist/hooks/hook-toggles.d.ts +10 -0
  616. package/dist/hooks/hook-toggles.d.ts.map +1 -0
  617. package/dist/hooks/hook-toggles.js +107 -0
  618. package/dist/hooks/hook-toggles.js.map +1 -0
  619. package/dist/hooks/pre-tool-guard-hook.d.ts +10 -0
  620. package/dist/hooks/pre-tool-guard-hook.d.ts.map +1 -0
  621. package/dist/hooks/pre-tool-guard-hook.js +105 -0
  622. package/dist/hooks/pre-tool-guard-hook.js.map +1 -0
  623. package/dist/hooks/session-start-unit-state-hook.d.ts +13 -0
  624. package/dist/hooks/session-start-unit-state-hook.d.ts.map +1 -0
  625. package/dist/hooks/session-start-unit-state-hook.js +57 -0
  626. package/dist/hooks/session-start-unit-state-hook.js.map +1 -0
  627. package/dist/hooks/stop-next-step-hook.d.ts +16 -0
  628. package/dist/hooks/stop-next-step-hook.d.ts.map +1 -0
  629. package/dist/hooks/stop-next-step-hook.js +42 -0
  630. package/dist/hooks/stop-next-step-hook.js.map +1 -0
  631. package/dist/hooks/sungen-project-root.d.ts +19 -0
  632. package/dist/hooks/sungen-project-root.d.ts.map +1 -0
  633. package/dist/hooks/sungen-project-root.js +130 -0
  634. package/dist/hooks/sungen-project-root.js.map +1 -0
  635. package/dist/orchestrator/ai-skills/command-partial-includes.d.ts +15 -0
  636. package/dist/orchestrator/ai-skills/command-partial-includes.d.ts.map +1 -0
  637. package/dist/orchestrator/ai-skills/command-partial-includes.js +106 -0
  638. package/dist/orchestrator/ai-skills/command-partial-includes.js.map +1 -0
  639. package/dist/orchestrator/ai-skills/commands.d.ts +5 -1
  640. package/dist/orchestrator/ai-skills/commands.d.ts.map +1 -1
  641. package/dist/orchestrator/ai-skills/commands.js +16 -6
  642. package/dist/orchestrator/ai-skills/commands.js.map +1 -1
  643. package/dist/orchestrator/ai-skills/golden-skills.test.js +29 -0
  644. package/dist/orchestrator/ai-skills/golden-skills.test.js.map +1 -1
  645. package/dist/orchestrator/assets-drift.d.ts +5 -0
  646. package/dist/orchestrator/assets-drift.d.ts.map +1 -1
  647. package/dist/orchestrator/assets-drift.js +12 -3
  648. package/dist/orchestrator/assets-drift.js.map +1 -1
  649. package/dist/orchestrator/claude-hooks-install.d.ts +27 -0
  650. package/dist/orchestrator/claude-hooks-install.d.ts.map +1 -0
  651. package/dist/orchestrator/claude-hooks-install.js +203 -0
  652. package/dist/orchestrator/claude-hooks-install.js.map +1 -0
  653. package/dist/orchestrator/lockstep-version.d.ts +15 -5
  654. package/dist/orchestrator/lockstep-version.d.ts.map +1 -1
  655. package/dist/orchestrator/lockstep-version.js +30 -17
  656. package/dist/orchestrator/lockstep-version.js.map +1 -1
  657. package/dist/orchestrator/project-initializer.d.ts +6 -0
  658. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  659. package/dist/orchestrator/project-initializer.js +24 -0
  660. package/dist/orchestrator/project-initializer.js.map +1 -1
  661. package/dist/orchestrator/screen-manager.d.ts.map +1 -1
  662. package/dist/orchestrator/screen-manager.js +4 -2
  663. package/dist/orchestrator/screen-manager.js.map +1 -1
  664. package/dist/orchestrator/templates/ai-src/commands/add-api.md +2 -0
  665. package/dist/orchestrator/templates/ai-src/commands/add-flow.md +2 -0
  666. package/dist/orchestrator/templates/ai-src/commands/add-screen.md +2 -0
  667. package/dist/orchestrator/templates/ai-src/commands/create-data-test.md +1 -0
  668. package/dist/orchestrator/templates/ai-src/commands/create-test.md +14 -16
  669. package/dist/orchestrator/templates/ai-src/commands/dashboard.md +2 -0
  670. package/dist/orchestrator/templates/ai-src/commands/delivery.md +2 -0
  671. package/dist/orchestrator/templates/ai-src/commands/design.md +2 -0
  672. package/dist/orchestrator/templates/ai-src/commands/feedback.md +2 -0
  673. package/dist/orchestrator/templates/ai-src/commands/locale.md +2 -0
  674. package/dist/orchestrator/templates/ai-src/commands/review.md +2 -0
  675. package/dist/orchestrator/templates/ai-src/commands/run-test.md +14 -10
  676. package/dist/orchestrator/templates/ai-src/config/claude.md +20 -7
  677. package/dist/orchestrator/templates/ai-src/config/copilot.md +20 -7
  678. package/dist/orchestrator/templates/ai-src/partials/hand-back-rule.claude.md +20 -0
  679. package/dist/orchestrator/templates/ai-src/partials/hand-back-rule.codex.md +20 -0
  680. package/dist/orchestrator/templates/ai-src/partials/hand-back-rule.copilot.md +20 -0
  681. package/dist/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +1 -1
  682. package/dist/orchestrator/templates/ai-src/skills/sungen-capture-mobile/SKILL.md +3 -3
  683. package/dist/orchestrator/templates/ai-src/skills/sungen-data-factory/SKILL.md +9 -0
  684. package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +2 -0
  685. package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +1 -1
  686. package/dist/orchestrator/templates/ai-src/skills/sungen-harness-audit/SKILL.md +2 -0
  687. package/dist/orchestrator/templates/claude-hooks/sungen-hook.cjs +64 -0
  688. package/dist/utils/safe-yaml-parse.d.ts +8 -0
  689. package/dist/utils/safe-yaml-parse.d.ts.map +1 -0
  690. package/dist/utils/safe-yaml-parse.js +51 -0
  691. package/dist/utils/safe-yaml-parse.js.map +1 -0
  692. package/package.json +3 -3
  693. package/src/basis/anchor-grammar.ts +83 -0
  694. package/src/basis/anchor-hash.ts +27 -0
  695. package/src/basis/bm51-tables.ts +65 -0
  696. package/src/basis/extract-spec-anchors.ts +95 -0
  697. package/src/basis/migration-sentinel.ts +175 -0
  698. package/src/basis/spec-frontmatter.ts +68 -0
  699. package/src/basis/spec-sections.ts +35 -0
  700. package/src/basis/test-basis-schema.ts +81 -0
  701. package/src/capabilities/discover.ts +15 -2
  702. package/src/capabilities/registry.ts +16 -0
  703. package/src/cli/commands/audit.ts +10 -5
  704. package/src/cli/commands/capability.ts +4 -2
  705. package/src/cli/commands/contract-derive-command.ts +61 -0
  706. package/src/cli/commands/contract.ts +130 -0
  707. package/src/cli/commands/defect.ts +49 -0
  708. package/src/cli/commands/delivery.ts +92 -15
  709. package/src/cli/commands/generate.ts +3 -1
  710. package/src/cli/commands/journey.ts +41 -16
  711. package/src/cli/commands/next.ts +64 -10
  712. package/src/cli/commands/triage.ts +57 -0
  713. package/src/cli/commands/update.ts +35 -8
  714. package/src/cli/index.ts +24 -30
  715. package/src/cli/project-sungen-invocation.ts +39 -0
  716. package/src/contract/approve-contract.ts +94 -0
  717. package/src/contract/assertion-matcher-vocabulary.ts +93 -0
  718. package/src/contract/build-contract-verdict.ts +108 -0
  719. package/src/contract/build-trace-conformance.ts +100 -0
  720. package/src/contract/classify-contract-change.ts +92 -0
  721. package/src/contract/classify-contract-unit.ts +47 -0
  722. package/src/contract/classify-trace-conformance.ts +116 -0
  723. package/src/contract/contract-git.ts +106 -0
  724. package/src/contract/contract-hash.ts +34 -0
  725. package/src/contract/contract-report-file.ts +25 -0
  726. package/src/contract/contract-schema.ts +137 -0
  727. package/src/contract/contract-units.ts +52 -0
  728. package/src/contract/contracts-lock-file.ts +97 -0
  729. package/src/contract/data-normalize.ts +66 -0
  730. package/src/contract/derive-free-feature.ts +120 -0
  731. package/src/contract/field-semantic-redaction.ts +80 -0
  732. package/src/contract/free-feature-blocks.ts +56 -0
  733. package/src/contract/lock-secret-guard.ts +95 -0
  734. package/src/contract/lock-vs-git-head.ts +38 -0
  735. package/src/contract/normalize-contract-step.ts +74 -0
  736. package/src/contract/normalize-feature-steps.ts +93 -0
  737. package/src/contract/oracle-strength.ts +80 -0
  738. package/src/contract/project-contract-blockers.ts +36 -0
  739. package/src/contract/record-contract-approval.ts +70 -0
  740. package/src/contract/render-free-gherkin.ts +113 -0
  741. package/src/contract/render-trace-sentence.ts +98 -0
  742. package/src/contract/render-trace-target.ts +68 -0
  743. package/src/contract/resolve-unit-trace-identities.ts +35 -0
  744. package/src/contract/trace/collect-trace-evidence.ts +109 -0
  745. package/src/contract/trace/identity-cache.ts +61 -0
  746. package/src/contract/trace/select-final-attempt.ts +70 -0
  747. package/src/contract/trace/snapshot-html-renderer.ts +136 -0
  748. package/src/contract/trace/snapshot-resolver.ts +66 -0
  749. package/src/contract/trace/snapshot-store.ts +151 -0
  750. package/src/contract/trace/target-identity.ts +104 -0
  751. package/src/contract/trace/test-step-join.ts +104 -0
  752. package/src/contract/trace/trace-binding.ts +56 -0
  753. package/src/contract/trace/trace-file-reader.ts +133 -0
  754. package/src/contract/trace/trace-fingerprint.ts +68 -0
  755. package/src/contract/trace/trace-identity-resolution.ts +74 -0
  756. package/src/contract/trace/trace-run-record.ts +80 -0
  757. package/src/contract/trace/trace-steps.ts +88 -0
  758. package/src/contract/trace/trace-zip-limits.ts +77 -0
  759. package/src/contract/trace/trace-zip-reader.ts +127 -0
  760. package/src/contract/verify-approval-decisions.ts +60 -0
  761. package/src/decisions/append-decision.ts +35 -0
  762. package/src/decisions/confirmed-decision-commands.ts +149 -0
  763. package/src/decisions/decision-file.ts +93 -0
  764. package/src/decisions/decision-identity.ts +73 -0
  765. package/src/decisions/decision-integrity-check.ts +61 -0
  766. package/src/decisions/decision-schema.ts +76 -0
  767. package/src/decisions/decision-source.ts +14 -0
  768. package/src/decisions/exclusive-file-create.ts +42 -0
  769. package/src/decisions/git-head-trust.ts +32 -0
  770. package/src/decisions/human-confirmation.ts +119 -0
  771. package/src/decisions/legacy-waiver-migration.ts +135 -0
  772. package/src/decisions/read-decisions.ts +61 -0
  773. package/src/decisions/viewpoint-baseline-adapter.ts +74 -0
  774. package/src/decisions/waiver-decisions.ts +56 -0
  775. package/src/exporters/csv-exporter.ts +5 -1
  776. package/src/exporters/feature-parser.ts +12 -0
  777. package/src/exporters/matrix/build.ts +62 -18
  778. package/src/exporters/matrix/carry-manual-results.ts +70 -7
  779. package/src/exporters/matrix/export.ts +17 -2
  780. package/src/exporters/matrix/gates.ts +62 -129
  781. package/src/exporters/matrix/render-csv.ts +4 -1
  782. package/src/exporters/matrix/render-gate-overrides-sheet.ts +50 -0
  783. package/src/exporters/matrix/render-xlsx.ts +6 -0
  784. package/src/exporters/matrix/types.ts +9 -1
  785. package/src/exporters/matrix/xlsx-cells.ts +1 -1
  786. package/src/exporters/playwright-report-parser.ts +1 -0
  787. package/src/exporters/scenario-merger.ts +2 -1
  788. package/src/exporters/types.ts +5 -0
  789. package/src/generators/test-generator/code-generator.ts +13 -0
  790. package/src/graph/evaluate-graph.ts +66 -0
  791. package/src/graph/locate-finding.ts +93 -0
  792. package/src/graph/node-decl.ts +72 -0
  793. package/src/graph/nodes/core-node-catalog.ts +15 -0
  794. package/src/graph/nodes/test-case-contract-nodes.ts +74 -0
  795. package/src/graph/nodes/test-case-nodes.ts +68 -0
  796. package/src/graph/nodes/unit-audit-nodes.ts +95 -0
  797. package/src/graph/nodes/unit-contract-node.ts +89 -0
  798. package/src/graph/nodes/unit-design-nodes.ts +89 -0
  799. package/src/graph/nodes/unit-execution-nodes.ts +77 -0
  800. package/src/graph/test-case-identity.ts +75 -0
  801. package/src/graph/test-case-results.ts +90 -0
  802. package/src/graph/test-case-satisfied.ts +55 -0
  803. package/src/graph/test-case-state-shape.ts +62 -0
  804. package/src/graph/test-case-states.ts +84 -0
  805. package/src/graph/unit-artifact-probes.ts +77 -0
  806. package/src/graph/unit-state-facts.ts +112 -0
  807. package/src/harness/audit.ts +46 -11
  808. package/src/harness/catalog/gate-rules.yaml +647 -0
  809. package/src/harness/counted-assertions.ts +33 -0
  810. package/src/harness/defect-draft.ts +115 -0
  811. package/src/harness/defects.ts +94 -0
  812. package/src/harness/gates/audit-gate-terms.ts +80 -0
  813. package/src/harness/gates/audit-gate-verdict.ts +78 -0
  814. package/src/harness/gates/audit-input-hash.ts +55 -0
  815. package/src/harness/gates/audit-report-verification.ts +201 -0
  816. package/src/harness/gates/decisions-hash.ts +42 -0
  817. package/src/harness/gates/delivery-checklist.ts +120 -0
  818. package/src/harness/gates/delivery-decision-gate.ts +139 -0
  819. package/src/harness/gates/delivery-decision-step.ts +89 -0
  820. package/src/harness/gates/gate-override-report.ts +114 -0
  821. package/src/harness/gates/gate-override-scope.ts +66 -0
  822. package/src/harness/gates/gate-override-validation.ts +75 -0
  823. package/src/harness/gates/gate-rule-catalog.ts +82 -0
  824. package/src/harness/gates/gate-terms.ts +59 -0
  825. package/src/harness/gates/in-run-decision-check.ts +99 -0
  826. package/src/harness/gates/journey-gate-inputs.ts +89 -0
  827. package/src/harness/gates/migrated-waiver-review.ts +68 -0
  828. package/src/harness/gates/resolve-rule.ts +94 -0
  829. package/src/harness/gates/unit-gate-overrides.ts +99 -0
  830. package/src/harness/journey.ts +215 -38
  831. package/src/harness/manifest.ts +69 -45
  832. package/src/harness/next-step.ts +60 -170
  833. package/src/harness/parse.ts +40 -13
  834. package/src/harness/provenance.ts +99 -11
  835. package/src/harness/script-check.ts +27 -6
  836. package/src/harness/sensors.ts +73 -47
  837. package/src/harness/triage-signals.ts +46 -0
  838. package/src/harness/triage-unit.ts +113 -0
  839. package/src/harness/triage.ts +127 -0
  840. package/src/harness/viewpoint-ledger.ts +2 -2
  841. package/src/hooks/bash-write-targets.ts +109 -0
  842. package/src/hooks/claude-hook-entry.ts +85 -0
  843. package/src/hooks/claude-transcript-turn.ts +96 -0
  844. package/src/hooks/guard-delivery-contract-rule.ts +110 -0
  845. package/src/hooks/guard-protected-paths.ts +71 -0
  846. package/src/hooks/guard-rules.ts +98 -0
  847. package/src/hooks/guard-tty-spoof-rule.ts +31 -0
  848. package/src/hooks/hand-back-core.ts +112 -0
  849. package/src/hooks/hook-cli-command.ts +17 -0
  850. package/src/hooks/hook-registry.ts +24 -0
  851. package/src/hooks/hook-result-contract.ts +114 -0
  852. package/src/hooks/hook-toggles.ts +66 -0
  853. package/src/hooks/pre-tool-guard-hook.ts +67 -0
  854. package/src/hooks/session-start-unit-state-hook.ts +56 -0
  855. package/src/hooks/stop-next-step-hook.ts +37 -0
  856. package/src/hooks/sungen-project-root.ts +80 -0
  857. package/src/orchestrator/ai-skills/command-partial-includes.ts +72 -0
  858. package/src/orchestrator/ai-skills/commands.ts +22 -8
  859. package/src/orchestrator/ai-skills/golden-skills.test.ts +23 -0
  860. package/src/orchestrator/assets-drift.ts +12 -5
  861. package/src/orchestrator/claude-hooks-install.ts +168 -0
  862. package/src/orchestrator/lockstep-version.ts +28 -15
  863. package/src/orchestrator/project-initializer.ts +22 -0
  864. package/src/orchestrator/screen-manager.ts +3 -1
  865. package/src/orchestrator/templates/ai-src/commands/add-api.md +2 -0
  866. package/src/orchestrator/templates/ai-src/commands/add-flow.md +2 -0
  867. package/src/orchestrator/templates/ai-src/commands/add-screen.md +2 -0
  868. package/src/orchestrator/templates/ai-src/commands/create-data-test.md +1 -0
  869. package/src/orchestrator/templates/ai-src/commands/create-test.md +14 -16
  870. package/src/orchestrator/templates/ai-src/commands/dashboard.md +2 -0
  871. package/src/orchestrator/templates/ai-src/commands/delivery.md +2 -0
  872. package/src/orchestrator/templates/ai-src/commands/design.md +2 -0
  873. package/src/orchestrator/templates/ai-src/commands/feedback.md +2 -0
  874. package/src/orchestrator/templates/ai-src/commands/locale.md +2 -0
  875. package/src/orchestrator/templates/ai-src/commands/review.md +2 -0
  876. package/src/orchestrator/templates/ai-src/commands/run-test.md +14 -10
  877. package/src/orchestrator/templates/ai-src/config/claude.md +20 -7
  878. package/src/orchestrator/templates/ai-src/config/copilot.md +20 -7
  879. package/src/orchestrator/templates/ai-src/partials/hand-back-rule.claude.md +20 -0
  880. package/src/orchestrator/templates/ai-src/partials/hand-back-rule.codex.md +20 -0
  881. package/src/orchestrator/templates/ai-src/partials/hand-back-rule.copilot.md +20 -0
  882. package/src/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +1 -1
  883. package/src/orchestrator/templates/ai-src/skills/sungen-capture-mobile/SKILL.md +3 -3
  884. package/src/orchestrator/templates/ai-src/skills/sungen-data-factory/SKILL.md +9 -0
  885. package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +2 -0
  886. package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +1 -1
  887. package/src/orchestrator/templates/ai-src/skills/sungen-harness-audit/SKILL.md +2 -0
  888. package/src/orchestrator/templates/claude-hooks/sungen-hook.cjs +64 -0
  889. package/src/utils/safe-yaml-parse.ts +44 -0
@@ -0,0 +1,647 @@
1
+ # Gate-rule catalog (P0 phases 02 + 04) — read by `resolveRule` (src/harness/gates/resolve-rule.ts).
2
+ # Spec: docs/spec/sungen_orchestration_engine_spec.md OES-11 · docs/spec/sungen_durable_orchestration_spec.md DOS-13/14.
3
+ #
4
+ # Code computes each gate's CONDITION; the severity below decides what a met condition costs. With no
5
+ # gate-override decision in force the result equals the behavior before the catalog existed:
6
+ # error blocks (audit gate / render / delivery) review blocks the official render; --preview allowed
7
+ # warning prints and renders info prints only (reachable through an override)
8
+ # Sensors map error→fail, warning→warn. A claim/depth `error` blocks only when its ratio is under the focus
9
+ # threshold (DEPTH_THRESHOLDS); `smoke` focus downgrades the verdict to warn.
10
+ # Two independent axes (OES-11): block-vs-advisory follows `severity`; overridable-vs-not follows `kind`.
11
+ # kind: hard never overridable (offAllowed is always false) kind: soft overridable with a reason
12
+ # offAllowed the closed set of soft rules a gate-override may switch off entirely — ratified in phase 04:
13
+ # matrix.gate-w.{dimensions-missing,dimensions-long,wording-smell}, matrix.gate-c.too-many-variants,
14
+ # claim.negative-absence — all advisory (warning) lints of reviewability/wording or a known-noisy
15
+ # heuristic; switching one off can hide noise, never a blocking defect.
16
+ # since: "<=3.2.34" = present in the release that was inventoried (exact origin not recorded); "p0" = new in P0.
17
+ #
18
+ # Every gate site in the gate files names its rule id literally (exporters/matrix/gates.ts, exporters/matrix/build.ts
19
+ # for gate R, harness/sensors.ts, harness/audit.ts, harness/script-check.ts, harness/journey.ts) and carries no severity of
20
+ # its own; tests/gates/gate-catalog-shape.run.ts proves both, and that each of the 65 sites the phase-02 stub
21
+ # inventoried still maps to the same rule (the stub's `points[]` now live in tests/gates/fixtures/
22
+ # legacy-gate-points.json). Narrative audit findings carry no severity decision and are not catalogued.
23
+ # There is no `oracle.source-weakening` rule: it does not exist in src (red-team #6).
24
+
25
+ rules:
26
+ # ───────────────────────── delivery coverage matrix (exporters/matrix/gates.ts) ─────────────────────────
27
+ - id: matrix.gate-a.background-when-then
28
+ stage: deliver
29
+ severity: error
30
+ kind: hard
31
+ rationale: "A Background holding When/Then steps hides the action and the oracle from every scenario that inherits it, so the delivered Expected column cannot be derived (Gate A)."
32
+ fix: "Move the action and oracle steps into the scenarios; keep only Given setup in Background."
33
+ since: "<=3.2.34"
34
+ offAllowed: false
35
+ - id: matrix.gate-a.no-vp-id
36
+ stage: deliver
37
+ severity: error
38
+ kind: hard
39
+ rationale: "Matrix variants are addressed by VP-id; a scenario without one cannot be grouped, dispositioned or traced to a viewpoint (Gate A)."
40
+ fix: "Prefix the scenario name with its viewpoint id, VP-<CATEGORY>-NNN."
41
+ since: "<=3.2.34"
42
+ offAllowed: false
43
+ - id: matrix.gate-a.no-oracle
44
+ stage: deliver
45
+ severity: error
46
+ kind: hard
47
+ rationale: "A variant with no Then step (or a manual one with no Observable/Oracle lines) has no observable oracle, so it cannot be delivered as a test case (Gate A)."
48
+ fix: "Add a Then step, or numbered 'N. Observable: …' lines under the manual '# Tester verifies:' block."
49
+ since: "<=3.2.34"
50
+ offAllowed: false
51
+ - id: matrix.gate-a.unlabeled-manual-oracle
52
+ stage: deliver
53
+ severity: warning
54
+ kind: soft
55
+ rationale: "A manual oracle found only in an unlabeled comment is exported verbatim into Expected and reads as generated text."
56
+ fix: "Write the '# Tester verifies:' block as numbered 'N. Observable: …' lines."
57
+ since: "<=3.2.34"
58
+ offAllowed: false
59
+ - id: matrix.gate-a.duplicate-vp-id
60
+ stage: deliver
61
+ severity: error
62
+ kind: hard
63
+ rationale: "Two scenarios under one VP-id ship as two rows with one testcase id and let a run result attach to the wrong scenario (#694); id reuse is never negotiable."
64
+ fix: "Give each scenario its own sequence number within its category, then regenerate."
65
+ since: "<=3.2.34"
66
+ offAllowed: false
67
+ - id: matrix.gate-b.ref-matches-nothing
68
+ stage: deliver
69
+ severity: error
70
+ kind: hard
71
+ rationale: "A map group that references a variant the .feature no longer has makes the delivered grouping describe tests that do not exist (Gate B)."
72
+ fix: "Update or remove the stale reference in the delivery map."
73
+ since: "<=3.2.34"
74
+ offAllowed: false
75
+ - id: matrix.gate-b.double-mapped
76
+ stage: deliver
77
+ severity: error
78
+ kind: hard
79
+ rationale: "A variant in two groups is counted twice in coverage; exactly one owner is required (Gate B)."
80
+ fix: "Keep the variant in one group only."
81
+ since: "<=3.2.34"
82
+ offAllowed: false
83
+ - id: matrix.gate-b.unmapped
84
+ stage: deliver
85
+ severity: error
86
+ kind: hard
87
+ rationale: "Delivery requires 100% source disposition: every variant is in a group or carries an explicit disposition, otherwise coverage silently drops it (Gate B)."
88
+ fix: "Add the variant to a group or give it a disposition in the delivery map."
89
+ since: "<=3.2.34"
90
+ offAllowed: false
91
+ - id: matrix.gate-b.grouped-and-disposed
92
+ stage: deliver
93
+ severity: error
94
+ kind: hard
95
+ rationale: "A variant that is both grouped and disposed has two contradictory fates in the deliverable (Gate B)."
96
+ fix: "Pick one: drop the disposition or the group membership."
97
+ since: "<=3.2.34"
98
+ offAllowed: false
99
+ - id: matrix.gate-b.stale-disposition
100
+ stage: deliver
101
+ severity: warning
102
+ kind: soft
103
+ rationale: "A disposition for a VP-id with no scenario is leftover noise that can hide real mapping drift."
104
+ fix: "Delete the stale disposition entry."
105
+ since: "<=3.2.34"
106
+ offAllowed: false
107
+ - id: matrix.gate-c.mixed-layers
108
+ stage: deliver
109
+ severity: error
110
+ kind: hard
111
+ rationale: "Grouping variants from different test layers makes one deliverable row claim two kinds of evidence (Gate C hard signature)."
112
+ fix: "Split the group by test layer."
113
+ since: "<=3.2.34"
114
+ offAllowed: false
115
+ - id: matrix.gate-c.precondition-profiles
116
+ stage: deliver
117
+ severity: review
118
+ kind: soft
119
+ rationale: "Equivalence of variants with different preconditions was inferred, not declared; QA must confirm it (Gate C heuristic)."
120
+ fix: "Confirm the grouping is safe (sungen delivery --approve) or split the group."
121
+ since: "<=3.2.34"
122
+ offAllowed: false
123
+ - id: matrix.gate-c.oracle-shapes
124
+ stage: deliver
125
+ severity: review
126
+ kind: soft
127
+ rationale: "Variants asserting different oracle shapes may not be one oracle family; the grouping was inferred (Gate C heuristic)."
128
+ fix: "Confirm they are one oracle family (approve) or split the group."
129
+ since: "<=3.2.34"
130
+ offAllowed: false
131
+ - id: matrix.gate-c.sequence-sensitive
132
+ stage: deliver
133
+ severity: review
134
+ kind: soft
135
+ rationale: "An ordered, sequence-sensitive scenario grouped with others can pass in a different order than the customer reads; it stays solo unless QA confirms."
136
+ fix: "Keep it as a solo item, or confirm the group (approve)."
137
+ since: "<=3.2.34"
138
+ offAllowed: false
139
+ - id: matrix.gate-c.too-many-variants
140
+ stage: deliver
141
+ severity: warning
142
+ kind: soft
143
+ rationale: "A group above MAX_VARIANTS_PER_ITEM is hard to review; the warning is a reviewability lint, not a correctness check."
144
+ fix: "Split the group into smaller items."
145
+ since: "<=3.2.34"
146
+ offAllowed: true
147
+ - id: matrix.gate-d.no-precondition
148
+ stage: deliver
149
+ severity: error
150
+ kind: hard
151
+ rationale: "A tester cannot establish the start state without a Background, auth tag or Given (api-first variants are exempt), so the case is not executable (Gate D)."
152
+ fix: "Add a Background, an auth tag or a Given step."
153
+ since: "<=3.2.34"
154
+ offAllowed: false
155
+ - id: matrix.gate-d.no-trigger
156
+ stage: deliver
157
+ severity: error
158
+ kind: hard
159
+ rationale: "A variant with no When step (or Setup/Action comment for manual) has no action a tester can perform (Gate D)."
160
+ fix: "Add the When step, or Setup/Action comment lines for a manual case."
161
+ since: "<=3.2.34"
162
+ offAllowed: false
163
+ - id: matrix.gate-d.unresolved-var
164
+ stage: deliver
165
+ severity: error
166
+ kind: hard
167
+ rationale: "A {{var}} that resolves nowhere makes the variant not reproducible for a tester (Gate D)."
168
+ fix: "Add the key to test-data, or bind it at run time with remember … as."
169
+ since: "<=3.2.34"
170
+ offAllowed: false
171
+ - id: matrix.gate-d.template-token-remains
172
+ stage: deliver
173
+ severity: error
174
+ kind: hard
175
+ rationale: "A template token surviving into a rendered cell makes the export non-deterministic for a tester (Gate D, review B-04)."
176
+ fix: "Resolve the token in test-data or reword the step so no {{…}} reaches the output."
177
+ since: "<=3.2.34"
178
+ offAllowed: false
179
+ - id: matrix.gate-e.map-unstamped
180
+ stage: deliver
181
+ severity: review
182
+ kind: soft
183
+ rationale: "Approved groups with no stamped map fingerprint cannot prove the reviewed wording is the delivered wording (Gate E)."
184
+ fix: "Run sungen delivery --approve to record the reviewed wording."
185
+ since: "<=3.2.34"
186
+ offAllowed: false
187
+ - id: matrix.gate-e.map-drift
188
+ stage: deliver
189
+ severity: review
190
+ kind: soft
191
+ rationale: "Map wording or grouping edited after approval must be re-reviewed, not silently published (Gate E, review GAP-09)."
192
+ fix: "Re-review the map, then sungen delivery --approve."
193
+ since: "<=3.2.34"
194
+ offAllowed: false
195
+ - id: matrix.gate-e.variant-unstamped
196
+ stage: deliver
197
+ severity: review
198
+ kind: soft
199
+ rationale: "An approved group whose variant has no stamped fingerprint cannot detect later drift (Gate E)."
200
+ fix: "Run sungen delivery --approve after review."
201
+ since: "<=3.2.34"
202
+ offAllowed: false
203
+ - id: matrix.gate-e.variant-drift
204
+ stage: deliver
205
+ severity: review
206
+ kind: soft
207
+ rationale: "A variant changed since its group was approved; the approval no longer covers what will be delivered (Gate E)."
208
+ fix: "Re-review the grouping, then approve again."
209
+ since: "<=3.2.34"
210
+ offAllowed: false
211
+ - id: matrix.gate-g.groups-proposed
212
+ stage: deliver
213
+ severity: review
214
+ kind: soft
215
+ rationale: "The official render needs every group approved by QA; --preview renders the rest with a DRAFT watermark (Gate G)."
216
+ fix: "Approve the proposed groups, or render with --preview."
217
+ since: "<=3.2.34"
218
+ offAllowed: false
219
+ - id: matrix.gate-k.category-mismatch
220
+ stage: deliver
221
+ severity: warning
222
+ kind: soft
223
+ rationale: "A VP-SEC or VP-NFR scenario filed under another category empties the Coverage sheet's security/nfr column and reports a gap the unit does not have (Gate K)."
224
+ fix: "Set the group's category to the one the source viewpoint class decides."
225
+ since: "<=3.2.34"
226
+ offAllowed: false
227
+ - id: matrix.gate-w.dimensions-missing
228
+ stage: deliver
229
+ severity: warning
230
+ kind: soft
231
+ rationale: "A parent row with more than three variants and no dimensions digest forces the reviewer to expand it to learn what it covers; a readability lint."
232
+ fix: "Add a short dimensions digest, for example 'required x3 · format x9'."
233
+ since: "<=3.2.34"
234
+ offAllowed: true
235
+ - id: matrix.gate-w.dimensions-long
236
+ stage: deliver
237
+ severity: warning
238
+ kind: soft
239
+ rationale: "A dimensions digest over 120 characters stops being a digest; a readability lint."
240
+ fix: "Shorten the dimensions digest to 120 characters or fewer."
241
+ since: "<=3.2.34"
242
+ offAllowed: true
243
+ - id: matrix.gate-w.wording-smell
244
+ stage: deliver
245
+ severity: warning
246
+ kind: soft
247
+ rationale: "Intent/oracle/dimensions text containing {{tokens}}, generator labels, DSL phrasing or [selector] refs reads machine-generated to the customer; a wording lint."
248
+ fix: "Rewrite the field in plain product language using the visible UI label."
249
+ since: "<=3.2.34"
250
+ offAllowed: true
251
+ - id: matrix.gate-r.requirement-gap
252
+ stage: deliver
253
+ severity: warning
254
+ kind: soft
255
+ rationale: "A requirement id from requirements/spec.md with no tracing variant and no recorded status is a coverage gap the deliverable would hide (Gate R, exporters/matrix/build.ts)."
256
+ fix: "Tag the scenario that proves it with @spec:<id>, or record a status in the delivery map's requirements: section."
257
+ since: "<=3.2.34"
258
+ offAllowed: false
259
+ - id: matrix.gate-r.covered-unbacked
260
+ stage: deliver
261
+ severity: warning
262
+ kind: soft
263
+ rationale: "A requirement declared covered with no variant tracing to it is prose, not traceability — nothing notices when the proving scenario changes (Gate R)."
264
+ fix: "Add @spec:<id> to the scenario that proves it, or use covered_elsewhere / partially_covered with a named reference."
265
+ since: "<=3.2.34"
266
+ offAllowed: false
267
+
268
+ # ───────────────────────── claim-proof sensor (harness/sensors.ts CLAIM_RULES) ─────────────────────────
269
+ # A scenario TITLE makes a claim; its STEPS must prove it. `error` rows block only when the unit's claim
270
+ # ratio is below the focus threshold; `warning` rows never block.
271
+ - id: claim.unchanged-preserved
272
+ stage: create
273
+ severity: warning
274
+ kind: soft
275
+ rationale: "'Unchanged/preserved' is an exactness claim; a `contains` substring match cannot tell unchanged from prefixed (#599)."
276
+ fix: "Swap `contains {{v}}` for `with {{v}}` on the continuity rows, or reword the title."
277
+ since: "<=3.2.34"
278
+ offAllowed: false
279
+ - id: claim.ordering-sort
280
+ stage: create
281
+ severity: error
282
+ kind: soft
283
+ rationale: "An order claim is invisible to a presence check; the steps must assert rows in sequence or the sort state (#810)."
284
+ fix: "Assert the expected row order with `table match data:`, `is sorted ascending|descending`, or positional row checks."
285
+ since: "<=3.2.34"
286
+ offAllowed: false
287
+ - id: claim.limit-cap
288
+ stage: create
289
+ severity: error
290
+ kind: soft
291
+ rationale: "A limit/cap claim is a count claim; presence of the list does not prove the boundary."
292
+ fix: "Assert the count at the cap, or the rejection when one more is attempted."
293
+ since: "<=3.2.34"
294
+ offAllowed: false
295
+ - id: claim.all-every-each
296
+ stage: create
297
+ severity: error
298
+ kind: soft
299
+ rationale: "An all/every/each claim needs an assertion across all matched elements, not one."
300
+ fix: "Use `User see all …` or the all-card DSL for per-card structure."
301
+ since: "<=3.2.34"
302
+ offAllowed: false
303
+ - id: claim.only-belong-to
304
+ stage: create
305
+ severity: warning
306
+ kind: soft
307
+ rationale: "An only/belongs-to claim needs an all-match; 'no item outside the facet' is often UI-limited."
308
+ fix: "Use `User see all … contains …`, verify through API/DB, or mark @manual with a reason."
309
+ since: "<=3.2.34"
310
+ offAllowed: false
311
+ - id: claim.single-exactly-one
312
+ stage: create
313
+ severity: error
314
+ kind: soft
315
+ rationale: "A 'single/exactly one' claim is a quantity claim; presence does not prove the count."
316
+ fix: "Assert the count (count is 1) instead of presence."
317
+ since: "<=3.2.34"
318
+ offAllowed: false
319
+ - id: claim.correct-matching-identity
320
+ stage: create
321
+ severity: error
322
+ kind: soft
323
+ rationale: "A correct/matching/same claim needs capture and compare; asserting only the target proves nothing about the source."
324
+ fix: "`User remember … as {{v}}` on the source, then assert {{v}} on the target."
325
+ since: "<=3.2.34"
326
+ offAllowed: false
327
+ - id: claim.changes-toggles
328
+ stage: create
329
+ severity: warning
330
+ kind: soft
331
+ rationale: "A changes/toggles claim needs a state delta, otherwise before and after cannot be told apart."
332
+ fix: "Capture the before-state and assert the after-state differs, or assert the visible-to-hidden transition."
333
+ since: "<=3.2.34"
334
+ offAllowed: false
335
+ - id: claim.no-side-effect
336
+ stage: create
337
+ severity: error
338
+ kind: soft
339
+ rationale: "The absence of a state-changing action (no duplicate, no re-submit) is not observable from a positive page assertion; it needs a count or contrast proof."
340
+ fix: "Prove the record/request count is unchanged, or mark @manual with a setup-action-assert-no-duplicate oracle."
341
+ since: "<=3.2.34"
342
+ offAllowed: false
343
+ - id: claim.hidden-rejected
344
+ stage: create
345
+ severity: error
346
+ kind: soft
347
+ rationale: "A hidden/closed/rejected claim needs the absence asserted, not an unrelated visible element."
348
+ fix: "Assert the `… is hidden` state the title claims."
349
+ since: "<=3.2.34"
350
+ offAllowed: false
351
+ - id: claim.cleared-emptied
352
+ stage: create
353
+ severity: error
354
+ kind: soft
355
+ rationale: "A cleared/emptied claim needs the value shown to be gone, not just that the action ran."
356
+ fix: "Return to the screen and assert the field is empty."
357
+ since: "<=3.2.34"
358
+ offAllowed: false
359
+ - id: claim.restored-preserved
360
+ stage: create
361
+ severity: warning
362
+ kind: soft
363
+ rationale: "A restored/persists claim needs the value re-asserted after the transition."
364
+ fix: "Assert the field still holds the typed value after the reload or return."
365
+ since: "<=3.2.34"
366
+ offAllowed: false
367
+ - id: claim.independent-separate
368
+ stage: create
369
+ severity: warning
370
+ kind: soft
371
+ rationale: "Independence across tabs or contexts is rarely expressible in the DSL and needs a multi-context proof."
372
+ fix: "Prove it with tab A versus tab B, or mark @manual with a clear setup, action and oracle."
373
+ since: "<=3.2.34"
374
+ offAllowed: false
375
+ - id: claim.sanitized-inert
376
+ stage: create
377
+ severity: warning
378
+ kind: soft
379
+ rationale: "A sanitized/inert claim needs the payload shown as literal text and no execution."
380
+ fix: "Assert the field value equals the payload and that nothing was triggered."
381
+ since: "<=3.2.34"
382
+ offAllowed: false
383
+ - id: claim.announces-aria
384
+ stage: create
385
+ severity: warning
386
+ kind: soft
387
+ rationale: "An announces/aria claim is usually not DSL-expressible; it needs an aria assertion or a screen-reader oracle."
388
+ fix: "Assert aria attributes if possible, else @manual with an NVDA/VoiceOver oracle."
389
+ since: "<=3.2.34"
390
+ offAllowed: false
391
+ - id: claim.negative-absence
392
+ stage: create
393
+ severity: warning
394
+ kind: soft
395
+ rationale: "A catch-all heuristic for negative titles; a positive proxy is sometimes a valid negative proof, so it stays advisory and may be switched off."
396
+ fix: "Assert the contrast (hidden, empty, error shown, count unchanged) or mark @manual."
397
+ since: "<=3.2.34"
398
+ offAllowed: true
399
+ - id: claim.partial-proof
400
+ stage: create
401
+ severity: warning
402
+ kind: soft
403
+ rationale: "The right proof shape exists but only on a singular element under an each/every claim; a partial proof."
404
+ fix: "Wrap the actions with the all-card DSL `User see all [Card] contain [Action]`."
405
+ since: "<=3.2.34"
406
+ offAllowed: false
407
+
408
+ # ───────────────────────── audit gate (harness/audit.ts gateStatus) ─────────────────────────
409
+ - id: audit.viewpoint-coverage
410
+ stage: create
411
+ severity: error
412
+ kind: soft
413
+ rationale: "A page-type viewpoint theme with no scenario (missing) or only visibility (shallow) fails the design gate."
414
+ fix: "Add the missing scenarios, or deepen the shallow ones with a data assertion."
415
+ since: "<=3.2.34"
416
+ offAllowed: false
417
+ - id: audit.assertion-depth
418
+ stage: create
419
+ severity: error
420
+ kind: soft
421
+ rationale: "Data-correctness scenarios must assert data, not visibility; under the focus threshold the gate fails (warn only for smoke)."
422
+ fix: "Add a real data assertion to the shallow business-critical scenarios."
423
+ since: "<=3.2.34"
424
+ offAllowed: false
425
+ - id: audit.claim-proof
426
+ stage: create
427
+ severity: error
428
+ kind: soft
429
+ rationale: "Under the focus threshold, with at least one fail-level unproven claim, titles that claim more than their steps prove fail the gate (CLAIM-UNPROVEN; otherwise CLAIM-WEAK warns)."
430
+ fix: "Make the steps prove what the title claims, or reword the title."
431
+ since: "<=3.2.34"
432
+ offAllowed: false
433
+ - id: audit.spec-coverage
434
+ stage: create
435
+ severity: error
436
+ kind: soft
437
+ rationale: "Spec clauses and must-have requirements with no scenario fail the gate (verdict computed in spec-coverage.ts)."
438
+ fix: "Add scenarios for the uncovered requirements, or confirm they are out of scope."
439
+ since: "<=3.2.34"
440
+ offAllowed: false
441
+ - id: audit.taxonomy-mismatch
442
+ stage: create
443
+ severity: error
444
+ kind: soft
445
+ rationale: "When scenarios use IDs the project's test-viewpoint.md does not declare, coverage and traceability measure the wrong thing."
446
+ fix: "Use the viewpoint file's IDs in scenario names, or update the viewpoint file."
447
+ since: "<=3.2.34"
448
+ offAllowed: false
449
+ - id: audit.gate-sensor-error
450
+ stage: create
451
+ severity: error
452
+ kind: hard
453
+ rationale: "A capability-registered gate sensor (api, db, …) reporting an error-level finding fails the shared gate. Hard since the phase-04 review: the finding is the driver's own verdict, which a project-level override cannot second-guess."
454
+ fix: "Fix the finding the sensor names; its message carries its own code and remedy."
455
+ since: "<=3.2.34"
456
+ offAllowed: false
457
+ - id: audit.scenario-id-reuse
458
+ stage: create
459
+ severity: error
460
+ kind: hard
461
+ rationale: "Two different scenarios under one VP id reach the customer as two rows with one testcase id and let a run result attach to the wrong scenario (#694); id reuse is never negotiable."
462
+ fix: "Give each scenario its own sequence number within its category, then regenerate."
463
+ since: "<=3.2.34"
464
+ offAllowed: false
465
+
466
+ # ───────────────────────── faithfulness (harness/script-check.ts status) ─────────────────────────
467
+ - id: script.no-spec
468
+ stage: generate
469
+ severity: error
470
+ kind: hard
471
+ rationale: "With no committed generated spec nothing shows the Gherkin was compiled, so no later gate can be trusted (#387)."
472
+ fix: "Run sungen generate (or /sungen:run-test) first."
473
+ since: "<=3.2.34"
474
+ offAllowed: false
475
+ - id: script.count-mismatch
476
+ stage: generate
477
+ severity: error
478
+ kind: hard
479
+ rationale: "The automated scenario count differs from the test() blocks, so the suite no longer maps 1:1 to the Gherkin (#387)."
480
+ fix: "Regenerate the spec; never hand-edit generated code."
481
+ since: "<=3.2.34"
482
+ offAllowed: false
483
+ - id: script.missing-in-spec
484
+ stage: generate
485
+ severity: error
486
+ kind: hard
487
+ rationale: "A scenario with no test() block is a stale spec: the testcase is reported but never runs (#387)."
488
+ fix: "Regenerate the spec from the .feature."
489
+ since: "<=3.2.34"
490
+ offAllowed: false
491
+ - id: script.extra-in-spec
492
+ stage: generate
493
+ severity: error
494
+ kind: hard
495
+ rationale: "A test() with no scenario is a hand-edited spec: code the QA never reviewed in Gherkin (#387)."
496
+ fix: "Delete the extra test or add its scenario to the .feature, then regenerate."
497
+ since: "<=3.2.34"
498
+ offAllowed: false
499
+ - id: script.drift
500
+ stage: generate
501
+ severity: error
502
+ kind: hard
503
+ rationale: "The committed spec differs from a fresh regenerate: it was hand-edited or the .feature changed without sungen generate, so the code no longer reflects the Gherkin (#387)."
504
+ fix: "Run sungen generate and commit the regenerated spec; do not edit it by hand."
505
+ since: "<=3.2.34"
506
+ offAllowed: false
507
+ - id: script.bypass
508
+ stage: generate
509
+ severity: error
510
+ kind: hard
511
+ rationale: "A non-manual test with zero assertions, or a step that emitted no code, is present but proves nothing; masking it would fake an automated testcase (#387)."
512
+ fix: "Make the Gherkin assert something and regenerate, or mark the scenario @manual with a reason."
513
+ since: "<=3.2.34"
514
+ offAllowed: false
515
+
516
+ # ───────────────────────── phase gates (harness/journey.ts PHASE_REQUIRED) ─────────────────────────
517
+ # A required obligation that is neither satisfied nor waived halts the phase. Waiver is today's override.
518
+ - id: journey.phase-create
519
+ stage: create
520
+ severity: error
521
+ kind: soft
522
+ rationale: "Post-create halt: spec, coverage, depth and trace obligations must be satisfied or waived with a reason."
523
+ fix: "Self-correct the open obligation, or waive it with a reason (sungen journey --waive)."
524
+ since: "<=3.2.34"
525
+ offAllowed: false
526
+ - id: journey.phase-run
527
+ stage: run
528
+ severity: error
529
+ kind: soft
530
+ rationale: "Post-run halt: the design obligations plus automation coverage must be satisfied or waived with a reason."
531
+ fix: "Self-correct (repair / run-test), or waive with a reason."
532
+ since: "<=3.2.34"
533
+ offAllowed: false
534
+ - id: journey.phase-deliver
535
+ stage: deliver
536
+ severity: error
537
+ kind: soft
538
+ rationale: "Pre-delivery halt: everything automated must be satisfied or waived with a reason, plus the single human sign-off, which is given (sungen journey --signoff), never waived."
539
+ fix: "Close or waive the open obligations, then a human signs off: sungen journey --screen <unit> --signoff --by <name>."
540
+ since: "<=3.2.34"
541
+ offAllowed: false
542
+
543
+ # ───────────────────────── new P0 rules (decision.* + gate.override-rejected wired in phase 04; contract.* in 06/08) ─────────────────────────
544
+ - id: contract.hash-changed
545
+ stage: run
546
+ severity: review
547
+ kind: hard
548
+ rationale: "The normalized scenario changed but not for the worse (DOS-14.4); QA must re-approve, and the rule is locked at review so it can be neither downgraded nor switched off."
549
+ fix: "Review the change and run sungen contract approve (TTY)."
550
+ since: "p0"
551
+ offAllowed: false
552
+ - id: contract.lock-uncommitted
553
+ stage: run
554
+ severity: error
555
+ kind: hard
556
+ rationale: "A lock entry that differs from git HEAD was not reviewed in a commit; an agent could have edited it to match a weakened test (DOS-14.4)."
557
+ fix: "Commit the lock change through review, or restore it from git."
558
+ since: "p0"
559
+ offAllowed: false
560
+ - id: contract.oracle-weakened
561
+ stage: run
562
+ severity: error
563
+ kind: hard
564
+ rationale: "A check was made weaker than the approved contract; the run can still be green, which is exactly the failure the contract exists to catch (#387, DOS-14.4)."
565
+ fix: "Restore the stronger assertion, or have QA approve the weaker contract (TTY)."
566
+ since: "p0"
567
+ offAllowed: false
568
+ - id: contract.target-changed
569
+ stage: run
570
+ severity: error
571
+ kind: hard
572
+ rationale: "The element being checked changed relative to the approved contract (DOS-14.4); the test may now prove something else."
573
+ fix: "Restore the original target, or have QA approve the change (TTY)."
574
+ since: "p0"
575
+ offAllowed: false
576
+ - id: contract.assertion-lost
577
+ stage: run
578
+ severity: error
579
+ kind: hard
580
+ rationale: "An approved assertion disappeared; the scenario passes with less proof than QA signed off (DOS-14.4)."
581
+ fix: "Restore the assertion, or have QA approve its removal (TTY)."
582
+ since: "p0"
583
+ offAllowed: false
584
+ - id: contract.opaque-step
585
+ stage: run
586
+ severity: review
587
+ kind: hard
588
+ rationale: "A check on a JS value, API or canvas result is not tied to an element and cannot be compared automatically (DOS-14.6); it always goes to review and is locked at review."
589
+ fix: "QA reviews the verbatim step and its file:line, then approves."
590
+ since: "p0"
591
+ offAllowed: false
592
+ - id: contract.nondeterministic
593
+ stage: run
594
+ severity: warning
595
+ kind: soft
596
+ rationale: "Two runs of the same test took different branches; the derived steps may not be stable (DOS-14.6)."
597
+ fix: "Remove the branch or make the data deterministic; compare the two traces."
598
+ since: "p0"
599
+ offAllowed: false
600
+ - id: contract.unproven
601
+ stage: run
602
+ severity: error
603
+ kind: hard
604
+ rationale: "A free or impl:code test has no usable trace, so its contract match is unknown; absence of evidence is never clean (DOS-14.6). Applies only to those two implementation paths."
605
+ fix: "Re-run with --trace on, then sungen contract check --trace."
606
+ since: "p0"
607
+ offAllowed: false
608
+ - id: contract.inconclusive
609
+ stage: run
610
+ severity: warning
611
+ kind: soft
612
+ rationale: "The last attempt did not pass or the trace was cut short, so conformance cannot be judged this run (DOS-14.6)."
613
+ fix: "Re-run until the test passes with a complete trace."
614
+ since: "p0"
615
+ offAllowed: false
616
+ - id: decision.id-reuse
617
+ stage: create
618
+ severity: error
619
+ kind: hard
620
+ rationale: "A decision id is the hash of its content; the same id with different content means the append-only record was rewritten (DOS-13)."
621
+ fix: "Restore the original entry; record the new decision as a new entry that supersedes it."
622
+ since: "p0"
623
+ offAllowed: false
624
+ - id: decision.mutated
625
+ stage: create
626
+ severity: error
627
+ kind: hard
628
+ rationale: "A decision already in git HEAD was edited or deleted; the decision layer is append-only so history stays auditable (DOS-13)."
629
+ fix: "Restore the entry from git and add a superseding entry instead."
630
+ since: "p0"
631
+ offAllowed: false
632
+ - id: decision.in-run
633
+ stage: deliver
634
+ severity: error
635
+ kind: hard
636
+ rationale: "A waiver, gate-override or contract-approval created inside the run being delivered, or not yet in git HEAD, lets the run approve itself (DOS-13, red-team #3)."
637
+ fix: "Commit the decision through review before delivering, or pass --accept-in-run on a TTY with confirmation."
638
+ since: "p0"
639
+ offAllowed: false
640
+ - id: gate.override-rejected
641
+ stage: create
642
+ severity: error
643
+ kind: hard
644
+ rationale: "An override that targets a hard rule, uses a wildcard scope, lacks a reason of at least 15 characters, or switches off a rule outside the offAllowed set is invalid and must not silently widen the gate (OES-11)."
645
+ fix: "Narrow the scope to one unit, give a real reason, and override only soft rules."
646
+ since: "p0"
647
+ offAllowed: false
@@ -0,0 +1,2 @@
1
+ export declare function countedAssertions(stepsText: string): number;
2
+ //# sourceMappingURL=counted-assertions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"counted-assertions.d.ts","sourceRoot":"","sources":["../../src/harness/counted-assertions.ts"],"names":[],"mappings":"AAqBA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAW3D"}