@zxyycom/vibe-check 0.0.2 → 0.0.3

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 (670) hide show
  1. package/README.md +36 -5
  2. package/dist/esm/check/check.mjs +4 -0
  3. package/dist/esm/check/check.mjs.map +1 -1
  4. package/dist/esm/check/flag-enablement.mjs +32 -0
  5. package/dist/esm/check/flag-enablement.mjs.map +1 -0
  6. package/dist/esm/check/handoff-provider-identity.mjs +18 -0
  7. package/dist/esm/check/handoff-provider-identity.mjs.map +1 -0
  8. package/dist/esm/check/inherited-collection.mjs +1 -1
  9. package/dist/esm/check/inherited-collection.mjs.map +1 -1
  10. package/dist/esm/check/project-changes.mjs +2 -0
  11. package/dist/esm/check/project-changes.mjs.map +1 -0
  12. package/dist/esm/check/project-context.mjs +2 -0
  13. package/dist/esm/check/project-context.mjs.map +1 -0
  14. package/dist/esm/check-settlement/facts.mjs.map +1 -1
  15. package/dist/esm/check-settlement/record-store.mjs +1 -1
  16. package/dist/esm/check-settlement/record-store.mjs.map +1 -1
  17. package/dist/esm/data-boundary/canonical-data.mjs +36 -7
  18. package/dist/esm/data-boundary/canonical-data.mjs.map +1 -1
  19. package/dist/esm/data-boundary/canonical-json.mjs.map +1 -1
  20. package/dist/esm/data-boundary/closed-values.mjs +28 -4
  21. package/dist/esm/data-boundary/closed-values.mjs.map +1 -1
  22. package/dist/esm/{package-checks/project-files → data-boundary}/config-glob.mjs +3 -3
  23. package/dist/esm/data-boundary/config-glob.mjs.map +1 -0
  24. package/dist/esm/data-boundary/project-path.mjs +19 -0
  25. package/dist/esm/data-boundary/project-path.mjs.map +1 -0
  26. package/dist/esm/index.mjs +12 -5
  27. package/dist/esm/index.mjs.map +1 -1
  28. package/dist/esm/machine-output/v4/atomic-publication.mjs +4 -1
  29. package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -1
  30. package/dist/esm/package-checks/check-authoring.mjs +69 -0
  31. package/dist/esm/package-checks/check-authoring.mjs.map +1 -0
  32. package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs.map +1 -1
  33. package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs.map +1 -1
  34. package/dist/esm/package-checks/command-check/command-check.mjs +55 -0
  35. package/dist/esm/package-checks/command-check/command-check.mjs.map +1 -0
  36. package/dist/esm/package-checks/command-check/contract.mjs +2 -0
  37. package/dist/esm/package-checks/command-check/contract.mjs.map +1 -0
  38. package/dist/esm/package-checks/command-check/execution.mjs +134 -0
  39. package/dist/esm/package-checks/command-check/execution.mjs.map +1 -0
  40. package/dist/esm/package-checks/command-check/options.mjs +284 -0
  41. package/dist/esm/package-checks/command-check/options.mjs.map +1 -0
  42. package/dist/esm/package-checks/command-check/transcript.mjs +26 -0
  43. package/dist/esm/package-checks/command-check/transcript.mjs.map +1 -0
  44. package/dist/esm/package-checks/duplicate-detection/default-check.mjs +9 -11
  45. package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -1
  46. package/dist/esm/package-checks/duplicate-detection/execution.mjs +2 -4
  47. package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -1
  48. package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs +1 -1
  49. package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs.map +1 -1
  50. package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +1 -1
  51. package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -1
  52. package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -1
  53. package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -1
  54. package/dist/esm/package-checks/file-metrics/constructor.mjs +9 -11
  55. package/dist/esm/package-checks/file-metrics/constructor.mjs.map +1 -1
  56. package/dist/esm/package-checks/file-metrics/execution.mjs +2 -4
  57. package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -1
  58. package/dist/esm/package-checks/file-metrics/finding-messages.mjs +1 -1
  59. package/dist/esm/package-checks/file-metrics/finding-messages.mjs.map +1 -1
  60. package/dist/esm/package-checks/file-metrics/options.mjs.map +1 -1
  61. package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -1
  62. package/dist/esm/package-checks/file-metrics/scc/availability.mjs +1 -1
  63. package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -1
  64. package/dist/esm/package-checks/file-metrics/scc/batch-planner.mjs +38 -0
  65. package/dist/esm/package-checks/file-metrics/scc/batch-planner.mjs.map +1 -0
  66. package/dist/esm/package-checks/file-metrics/scc/logical-scan-resources.mjs +35 -0
  67. package/dist/esm/package-checks/file-metrics/scc/logical-scan-resources.mjs.map +1 -0
  68. package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +102 -29
  69. package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -1
  70. package/dist/esm/package-checks/function-metrics/analysis.mjs +7 -2
  71. package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -1
  72. package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs +1 -1
  73. package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs.map +1 -1
  74. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs +1 -3
  75. package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs.map +1 -1
  76. package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs.map +1 -1
  77. package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs +3 -2
  78. package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs.map +1 -1
  79. package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs +6 -6
  80. package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs.map +1 -1
  81. package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs +1 -1
  82. package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs.map +1 -1
  83. package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs +9 -3
  84. package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs.map +1 -1
  85. package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs +12 -7
  86. package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs.map +1 -1
  87. package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs +6 -6
  88. package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs.map +1 -1
  89. package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs +5 -3
  90. package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs.map +1 -1
  91. package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs +2 -0
  92. package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs.map +1 -1
  93. package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs +9 -3
  94. package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs.map +1 -1
  95. package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs +9 -3
  96. package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs.map +1 -1
  97. package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs +3 -1
  98. package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs.map +1 -1
  99. package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs +3 -1
  100. package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs.map +1 -1
  101. package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs +12 -5
  102. package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs.map +1 -1
  103. package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs +20 -8
  104. package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs.map +1 -1
  105. package/dist/esm/package-checks/function-metrics/constructor.mjs +9 -11
  106. package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -1
  107. package/dist/esm/package-checks/function-metrics/execution.mjs +2 -4
  108. package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -1
  109. package/dist/esm/package-checks/function-metrics/finding-messages.mjs +1 -1
  110. package/dist/esm/package-checks/function-metrics/finding-messages.mjs.map +1 -1
  111. package/dist/esm/package-checks/function-metrics/measurement.mjs +3 -1
  112. package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -1
  113. package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -1
  114. package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -1
  115. package/dist/esm/package-checks/host-environment/git.mjs +11 -0
  116. package/dist/esm/package-checks/host-environment/git.mjs.map +1 -1
  117. package/dist/esm/package-checks/host-environment/path.mjs +1 -17
  118. package/dist/esm/package-checks/host-environment/path.mjs.map +1 -1
  119. package/dist/esm/package-checks/host-environment/process/contract.mjs.map +1 -1
  120. package/dist/esm/package-checks/host-environment/process/result.mjs +43 -17
  121. package/dist/esm/package-checks/host-environment/process/result.mjs.map +1 -1
  122. package/dist/esm/package-checks/host-environment/process/runner.mjs +7 -5
  123. package/dist/esm/package-checks/host-environment/process/runner.mjs.map +1 -1
  124. package/dist/esm/package-checks/json-schema-validation/default-check.mjs +9 -11
  125. package/dist/esm/package-checks/json-schema-validation/default-check.mjs.map +1 -1
  126. package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -1
  127. package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs +6 -2
  128. package/dist/esm/package-checks/json-schema-validation/reference-resolver.mjs.map +1 -1
  129. package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs +11 -3
  130. package/dist/esm/package-checks/json-schema-validation/schema-policy.mjs.map +1 -1
  131. package/dist/esm/package-checks/json-validation/default-check.mjs +9 -11
  132. package/dist/esm/package-checks/json-validation/default-check.mjs.map +1 -1
  133. package/dist/esm/package-checks/json-validation/options.mjs.map +1 -1
  134. package/dist/esm/package-checks/local-cache-options.mjs +28 -0
  135. package/dist/esm/package-checks/local-cache-options.mjs.map +1 -0
  136. package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs +37 -45
  137. package/dist/esm/package-checks/maintenance-reminders/maintenance-reminders.mjs.map +1 -1
  138. package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs +3 -1
  139. package/dist/esm/package-checks/maintenance-reminders/maintenance-support.mjs.map +1 -1
  140. package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +19 -33
  141. package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -1
  142. package/dist/esm/package-checks/markdown-link-validation/execution.mjs +1 -1
  143. package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -1
  144. package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs +1 -1
  145. package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs.map +1 -1
  146. package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs +1 -3
  147. package/dist/esm/package-checks/markdown-link-validation/markdown-parser.mjs.map +1 -1
  148. package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +3 -18
  149. package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -1
  150. package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +2 -14
  151. package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -1
  152. package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -1
  153. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs +4 -5
  154. package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs.map +1 -1
  155. package/dist/esm/package-checks/markdown-lint/adapter.mjs +125 -0
  156. package/dist/esm/package-checks/markdown-lint/adapter.mjs.map +1 -0
  157. package/dist/esm/package-checks/markdown-lint/default-check.mjs +37 -0
  158. package/dist/esm/package-checks/markdown-lint/default-check.mjs.map +1 -0
  159. package/dist/esm/package-checks/markdown-lint/execution.mjs +202 -0
  160. package/dist/esm/package-checks/markdown-lint/execution.mjs.map +1 -0
  161. package/dist/esm/package-checks/markdown-lint/final-data.mjs +16 -0
  162. package/dist/esm/package-checks/markdown-lint/final-data.mjs.map +1 -0
  163. package/dist/esm/package-checks/markdown-lint/finding-messages.mjs +72 -0
  164. package/dist/esm/package-checks/markdown-lint/finding-messages.mjs.map +1 -0
  165. package/dist/esm/package-checks/markdown-lint/finding-waiver-identity.mjs +41 -0
  166. package/dist/esm/package-checks/markdown-lint/finding-waiver-identity.mjs.map +1 -0
  167. package/dist/esm/package-checks/markdown-lint/findings-cache.mjs +110 -0
  168. package/dist/esm/package-checks/markdown-lint/findings-cache.mjs.map +1 -0
  169. package/dist/esm/package-checks/markdown-lint/options-resolution.mjs +74 -0
  170. package/dist/esm/package-checks/markdown-lint/options-resolution.mjs.map +1 -0
  171. package/dist/esm/package-checks/markdown-lint/options-validation.mjs +41 -0
  172. package/dist/esm/package-checks/markdown-lint/options-validation.mjs.map +1 -0
  173. package/dist/esm/package-checks/markdown-lint/options.mjs +13 -0
  174. package/dist/esm/package-checks/markdown-lint/options.mjs.map +1 -0
  175. package/dist/esm/package-checks/markdown-lint/records.mjs +65 -0
  176. package/dist/esm/package-checks/markdown-lint/records.mjs.map +1 -0
  177. package/dist/esm/package-checks/markdown-lint/unavailable-reasons.mjs +14 -0
  178. package/dist/esm/package-checks/markdown-lint/unavailable-reasons.mjs.map +1 -0
  179. package/dist/esm/package-checks/project-files/collection.mjs +23 -19
  180. package/dist/esm/package-checks/project-files/collection.mjs.map +1 -1
  181. package/dist/esm/package-checks/project-files/configuration.mjs +1 -1
  182. package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -1
  183. package/dist/esm/package-checks/project-files/gitlink-revision.mjs +2 -5
  184. package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -1
  185. package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +22 -6
  186. package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -1
  187. package/dist/esm/package-checks/project-files/public-collection.mjs +1 -1
  188. package/dist/esm/package-checks/project-files/public-collection.mjs.map +1 -1
  189. package/dist/esm/package-checks/project-files/revision-paths.mjs +3 -3
  190. package/dist/esm/package-checks/project-files/revision-paths.mjs.map +1 -1
  191. package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +11 -15
  192. package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -1
  193. package/dist/esm/package-checks/secret-detection/default-check.mjs +9 -11
  194. package/dist/esm/package-checks/secret-detection/default-check.mjs.map +1 -1
  195. package/dist/esm/package-checks/secret-detection/execution.mjs +2 -2
  196. package/dist/esm/package-checks/secret-detection/execution.mjs.map +1 -1
  197. package/dist/esm/package-checks/secret-detection/input-preparation.mjs +46 -7
  198. package/dist/esm/package-checks/secret-detection/input-preparation.mjs.map +1 -1
  199. package/dist/esm/package-checks/secret-detection/options.mjs.map +1 -1
  200. package/dist/esm/package-checks/secret-detection/records.mjs.map +1 -1
  201. package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs +3 -4
  202. package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs.map +1 -1
  203. package/dist/esm/package-tools/admission-policy/define-admission-policy.mjs +10 -0
  204. package/dist/esm/package-tools/admission-policy/define-admission-policy.mjs.map +1 -0
  205. package/dist/esm/{cache → package-tools/cache}/cache-json-by-key.mjs +13 -14
  206. package/dist/esm/package-tools/cache/cache-json-by-key.mjs.map +1 -0
  207. package/dist/esm/package-tools/finding-presentation/finding-presentation.mjs.map +1 -0
  208. package/dist/esm/{finding-waivers → package-tools/finding-waivers}/reconciliation.mjs +14 -5
  209. package/dist/esm/package-tools/finding-waivers/reconciliation.mjs.map +1 -0
  210. package/dist/esm/package-tools/learned-critical-path/critical-path-ranking.mjs.map +1 -0
  211. package/dist/esm/package-tools/learned-critical-path/duration-model/bounded-history.mjs.map +1 -0
  212. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.mjs +2 -2
  213. package/dist/esm/package-tools/learned-critical-path/duration-model/prediction.mjs.map +1 -0
  214. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.mjs +4 -2
  215. package/dist/esm/package-tools/learned-critical-path/duration-model/preparation.mjs.map +1 -0
  216. package/dist/esm/package-tools/learned-critical-path/duration-model/recording.mjs.map +1 -0
  217. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.mjs +8 -8
  218. package/dist/esm/package-tools/learned-critical-path/duration-model/storage.mjs.map +1 -0
  219. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.mjs +1 -2
  220. package/dist/esm/package-tools/learned-critical-path/selection-layers.mjs.map +1 -0
  221. package/dist/esm/package-tools/learned-critical-path/static-decision.mjs.map +1 -0
  222. package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/strategy.mjs +3 -3
  223. package/dist/esm/package-tools/learned-critical-path/strategy.mjs.map +1 -0
  224. package/dist/esm/project-definition/check-tree/authoring.mjs +8 -5
  225. package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -1
  226. package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs +79 -66
  227. package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs.map +1 -1
  228. package/dist/esm/project-definition/check-tree/flag-conditions.mjs +71 -0
  229. package/dist/esm/project-definition/check-tree/flag-conditions.mjs.map +1 -0
  230. package/dist/esm/project-definition/check-tree/materialization.mjs +13 -8
  231. package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -1
  232. package/dist/esm/project-definition/check-tree/resolution.mjs +7 -6
  233. package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -1
  234. package/dist/esm/project-definition/declarative-snapshot.mjs +2 -1
  235. package/dist/esm/project-definition/declarative-snapshot.mjs.map +1 -1
  236. package/dist/esm/project-definition/project-changes.mjs +70 -0
  237. package/dist/esm/project-definition/project-changes.mjs.map +1 -0
  238. package/dist/esm/project-definition/project-definition-validation.mjs +40 -8
  239. package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -1
  240. package/dist/esm/project-definition/project-definition.mjs +22 -15
  241. package/dist/esm/project-definition/project-definition.mjs.map +1 -1
  242. package/dist/esm/project-definition/scheduler-policy.mjs.map +1 -1
  243. package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs +9 -6
  244. package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs.map +1 -1
  245. package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs.map +1 -1
  246. package/dist/esm/project-run/aggregation.mjs +42 -59
  247. package/dist/esm/project-run/aggregation.mjs.map +1 -1
  248. package/dist/esm/project-run/changes/git.mjs +161 -0
  249. package/dist/esm/project-run/changes/git.mjs.map +1 -0
  250. package/dist/esm/project-run/check-execution/admitted-check-execution.mjs +41 -0
  251. package/dist/esm/project-run/check-execution/admitted-check-execution.mjs.map +1 -0
  252. package/dist/esm/project-run/check-execution/callback.mjs +3 -2
  253. package/dist/esm/project-run/check-execution/callback.mjs.map +1 -1
  254. package/dist/esm/project-run/check-execution/dependencies.mjs +80 -5
  255. package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -1
  256. package/dist/esm/project-run/check-execution/execution-finalization.mjs +5 -3
  257. package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -1
  258. package/dist/esm/project-run/check-execution/execution-settlement.mjs +37 -16
  259. package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -1
  260. package/dist/esm/project-run/check-execution/flag-controls.mjs +15 -7
  261. package/dist/esm/project-run/check-execution/flag-controls.mjs.map +1 -1
  262. package/dist/esm/project-run/check-execution/lifecycle.mjs.map +1 -1
  263. package/dist/esm/project-run/check-execution/{preflight-result.mjs → preparation-result.mjs} +24 -24
  264. package/dist/esm/project-run/check-execution/preparation-result.mjs.map +1 -0
  265. package/dist/esm/project-run/check-execution/{preflight.mjs → preparation.mjs} +52 -52
  266. package/dist/esm/project-run/check-execution/preparation.mjs.map +1 -0
  267. package/dist/esm/project-run/check-execution/ready-check-execution.mjs +71 -0
  268. package/dist/esm/project-run/check-execution/ready-check-execution.mjs.map +1 -0
  269. package/dist/esm/project-run/check-execution/resolved-checks.mjs +27 -164
  270. package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -1
  271. package/dist/esm/project-run/check-execution/scheduled-check-run.mjs +79 -0
  272. package/dist/esm/project-run/check-execution/scheduled-check-run.mjs.map +1 -0
  273. package/dist/esm/project-run/check-execution/terminal-result.mjs +70 -25
  274. package/dist/esm/project-run/check-execution/terminal-result.mjs.map +1 -1
  275. package/dist/esm/project-run/completion/completion.mjs +18 -1
  276. package/dist/esm/project-run/completion/completion.mjs.map +1 -1
  277. package/dist/esm/project-run/controls/contract.mjs.map +1 -1
  278. package/dist/esm/project-run/controls/validation.mjs +7 -54
  279. package/dist/esm/project-run/controls/validation.mjs.map +1 -1
  280. package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs +3 -3
  281. package/dist/esm/project-run/diagnostic-logging/diagnostic-detail-rendering.mjs.map +1 -1
  282. package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs +1 -1
  283. package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs.map +1 -1
  284. package/dist/esm/project-run/invocation/candidate.mjs +17 -13
  285. package/dist/esm/project-run/invocation/candidate.mjs.map +1 -1
  286. package/dist/esm/project-run/invocation/candidates.mjs +26 -0
  287. package/dist/esm/project-run/invocation/candidates.mjs.map +1 -0
  288. package/dist/esm/project-run/invocation/creation.mjs +7 -3
  289. package/dist/esm/project-run/invocation/creation.mjs.map +1 -1
  290. package/dist/esm/project-run/invocation/execution.mjs +98 -0
  291. package/dist/esm/project-run/invocation/execution.mjs.map +1 -0
  292. package/dist/esm/project-run/invocation/run.mjs +13 -112
  293. package/dist/esm/project-run/invocation/run.mjs.map +1 -1
  294. package/dist/esm/project-run/invocation/scheduler.mjs +13 -6
  295. package/dist/esm/project-run/invocation/scheduler.mjs.map +1 -1
  296. package/dist/esm/project-run/outputs/status.mjs +12 -12
  297. package/dist/esm/project-run/outputs/status.mjs.map +1 -1
  298. package/dist/esm/project-run/progress-rendering/presentation.mjs +31 -11
  299. package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -1
  300. package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +11 -4
  301. package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -1
  302. package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +20 -6
  303. package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -1
  304. package/dist/esm/project-run/progress-rendering/renderer.mjs +6 -2
  305. package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -1
  306. package/dist/esm/project-run/project-context.mjs +2 -1
  307. package/dist/esm/project-run/project-context.mjs.map +1 -1
  308. package/dist/esm/project-run/result.mjs +2 -2
  309. package/dist/esm/project-run/result.mjs.map +1 -1
  310. package/dist/esm/project-run/run.mjs.map +1 -1
  311. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph-lookup.mjs +45 -0
  312. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph-lookup.mjs.map +1 -0
  313. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs +9 -4
  314. package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs.map +1 -1
  315. package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs +3 -5
  316. package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs.map +1 -1
  317. package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs +25 -8
  318. package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs.map +1 -1
  319. package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs +8 -8
  320. package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs.map +1 -1
  321. package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -1
  322. package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs +8 -4
  323. package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs.map +1 -1
  324. package/dist/esm/project-run/task-scheduler/measurement/timing.mjs +12 -6
  325. package/dist/esm/project-run/task-scheduler/measurement/timing.mjs.map +1 -1
  326. package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs +3 -1
  327. package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs.map +1 -1
  328. package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs +17 -17
  329. package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs.map +1 -1
  330. package/dist/esm/project-run/task-scheduler/scheduler.mjs +18 -6
  331. package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -1
  332. package/docs/api-mechanics.md +147 -28
  333. package/docs/changelog.md +145 -2
  334. package/docs/checks/duplicate-detection.md +22 -3
  335. package/docs/checks/file-metrics.md +25 -6
  336. package/docs/checks/function-metrics.md +21 -2
  337. package/docs/checks/json-schema-validation.md +25 -4
  338. package/docs/checks/json-validation.md +24 -5
  339. package/docs/checks/maintenance-reminders.md +30 -6
  340. package/docs/checks/markdown-link-validation.md +24 -4
  341. package/docs/checks/markdown-lint.md +167 -0
  342. package/docs/checks/secret-detection.md +31 -7
  343. package/docs/examples/artifacts/mixed-outcomes/definition.ts +10 -10
  344. package/docs/guides/building-project-gate.md +706 -0
  345. package/docs/guides/callbacks.md +81 -22
  346. package/docs/guides/check-dependencies.md +41 -10
  347. package/docs/guides/collecting-project-files.md +7 -7
  348. package/docs/guides/command-check.md +155 -0
  349. package/docs/guides/data-boundaries.md +140 -0
  350. package/docs/guides/extending-check-lifecycle.md +77 -25
  351. package/docs/guides/finding-waivers.md +43 -1
  352. package/docs/guides/learned-scheduling.md +1 -1
  353. package/docs/guides/run-outputs.md +35 -9
  354. package/docs/guides/scheduling.md +15 -15
  355. package/docs/output.md +6 -5
  356. package/package.json +2 -1
  357. package/src/check/check.ts +332 -92
  358. package/src/check/flag-enablement.ts +76 -0
  359. package/src/check/handoff-provider-identity.ts +34 -0
  360. package/src/check/inherited-collection.ts +1 -1
  361. package/src/check/project-changes.ts +14 -0
  362. package/src/check/project-context.ts +11 -0
  363. package/src/check-settlement/facts.ts +1 -1
  364. package/src/check-settlement/record-store.ts +1 -1
  365. package/src/data-boundary/canonical-data.ts +36 -9
  366. package/src/data-boundary/canonical-json.ts +18 -1
  367. package/src/data-boundary/closed-values.ts +26 -6
  368. package/src/data-boundary/config-glob.ts +17 -0
  369. package/src/data-boundary/project-path.ts +21 -0
  370. package/src/index.ts +72 -11
  371. package/src/machine-output/v4/atomic-publication.ts +3 -1
  372. package/src/package-checks/check-authoring.ts +136 -0
  373. package/src/package-checks/code-quality-findings/finding-waiver-authoring.ts +1 -1
  374. package/src/package-checks/code-quality-findings/finding-waiver-evidence.ts +1 -1
  375. package/src/package-checks/command-check/command-check.ts +152 -0
  376. package/src/package-checks/command-check/contract.ts +168 -0
  377. package/src/package-checks/command-check/execution.ts +211 -0
  378. package/src/package-checks/command-check/options.ts +331 -0
  379. package/src/package-checks/command-check/transcript.ts +35 -0
  380. package/src/package-checks/duplicate-detection/default-check.ts +37 -6
  381. package/src/package-checks/duplicate-detection/execution.ts +2 -4
  382. package/src/package-checks/duplicate-detection/finding-messages.ts +2 -2
  383. package/src/package-checks/duplicate-detection/jscpd/availability.ts +1 -1
  384. package/src/package-checks/duplicate-detection/options.ts +6 -3
  385. package/src/package-checks/duplicate-detection/records.ts +1 -1
  386. package/src/package-checks/file-metrics/constructor.ts +29 -6
  387. package/src/package-checks/file-metrics/execution.ts +2 -4
  388. package/src/package-checks/file-metrics/finding-messages.ts +1 -1
  389. package/src/package-checks/file-metrics/options.ts +6 -3
  390. package/src/package-checks/file-metrics/records.ts +1 -1
  391. package/src/package-checks/file-metrics/scc/availability.ts +1 -1
  392. package/src/package-checks/file-metrics/scc/batch-planner.ts +56 -0
  393. package/src/package-checks/file-metrics/scc/logical-scan-resources.ts +59 -0
  394. package/src/package-checks/file-metrics/scc/scanner.ts +134 -32
  395. package/src/package-checks/function-metrics/analysis.ts +7 -2
  396. package/src/package-checks/function-metrics/analyzer/analysis-model.ts +1 -1
  397. package/src/package-checks/function-metrics/analyzer/extension-output.ts +14 -6
  398. package/src/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.ts +1 -3
  399. package/src/package-checks/function-metrics/analyzer/extensions/protocol.ts +3 -3
  400. package/src/package-checks/function-metrics/analyzer/pipeline.ts +4 -2
  401. package/src/package-checks/function-metrics/analyzer/readers/erlang.ts +6 -6
  402. package/src/package-checks/function-metrics/analyzer/readers/fortran.ts +1 -1
  403. package/src/package-checks/function-metrics/analyzer/readers/objc.ts +9 -3
  404. package/src/package-checks/function-metrics/analyzer/readers/php-states.ts +14 -7
  405. package/src/package-checks/function-metrics/analyzer/readers/plsql.ts +8 -4
  406. package/src/package-checks/function-metrics/analyzer/readers/python.ts +4 -3
  407. package/src/package-checks/function-metrics/analyzer/readers/r.ts +2 -1
  408. package/src/package-checks/function-metrics/analyzer/readers/ttcn.ts +9 -3
  409. package/src/package-checks/function-metrics/analyzer/readers/typescript.ts +9 -3
  410. package/src/package-checks/function-metrics/analyzer/readers/zig.ts +2 -1
  411. package/src/package-checks/function-metrics/analyzer/shared/code-reader.ts +3 -1
  412. package/src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts +10 -5
  413. package/src/package-checks/function-metrics/analyzer-worker-port.ts +20 -6
  414. package/src/package-checks/function-metrics/constructor.ts +30 -7
  415. package/src/package-checks/function-metrics/execution.ts +2 -4
  416. package/src/package-checks/function-metrics/finding-messages.ts +2 -2
  417. package/src/package-checks/function-metrics/measurement.ts +3 -1
  418. package/src/package-checks/function-metrics/options.ts +6 -3
  419. package/src/package-checks/function-metrics/records.ts +1 -1
  420. package/src/package-checks/host-environment/git.ts +11 -0
  421. package/src/package-checks/host-environment/path.ts +1 -20
  422. package/src/package-checks/host-environment/process/contract.ts +17 -9
  423. package/src/package-checks/host-environment/process/result.ts +48 -20
  424. package/src/package-checks/host-environment/process/runner.ts +8 -4
  425. package/src/package-checks/json-schema-validation/default-check.ts +38 -5
  426. package/src/package-checks/json-schema-validation/options.ts +4 -1
  427. package/src/package-checks/json-schema-validation/reference-resolver.ts +6 -2
  428. package/src/package-checks/json-schema-validation/schema-policy.ts +10 -5
  429. package/src/package-checks/json-validation/default-check.ts +27 -6
  430. package/src/package-checks/json-validation/options.ts +4 -1
  431. package/src/package-checks/local-cache-options.ts +40 -0
  432. package/src/package-checks/maintenance-reminders/maintenance-reminders.ts +89 -9
  433. package/src/package-checks/maintenance-reminders/maintenance-support.ts +3 -3
  434. package/src/package-checks/markdown-link-validation/default-check.ts +48 -5
  435. package/src/package-checks/markdown-link-validation/execution.ts +1 -1
  436. package/src/package-checks/markdown-link-validation/finding-messages.ts +1 -1
  437. package/src/package-checks/markdown-link-validation/markdown-parser.ts +1 -5
  438. package/src/package-checks/markdown-link-validation/options-resolution.ts +2 -19
  439. package/src/package-checks/markdown-link-validation/options-validation.ts +2 -17
  440. package/src/package-checks/markdown-link-validation/options.ts +6 -7
  441. package/src/package-checks/markdown-link-validation/parse-facts-cache-payload.ts +4 -5
  442. package/src/package-checks/markdown-lint/adapter.ts +167 -0
  443. package/src/package-checks/markdown-lint/default-check.ts +92 -0
  444. package/src/package-checks/markdown-lint/execution.ts +266 -0
  445. package/src/package-checks/markdown-lint/final-data.ts +33 -0
  446. package/src/package-checks/markdown-lint/finding-messages.ts +87 -0
  447. package/src/package-checks/markdown-lint/finding-waiver-identity.ts +54 -0
  448. package/src/package-checks/markdown-lint/findings-cache.ts +141 -0
  449. package/src/package-checks/markdown-lint/options-resolution.ts +102 -0
  450. package/src/package-checks/markdown-lint/options-validation.ts +50 -0
  451. package/src/package-checks/markdown-lint/options.ts +82 -0
  452. package/src/package-checks/markdown-lint/records.ts +132 -0
  453. package/src/package-checks/markdown-lint/unavailable-reasons.ts +33 -0
  454. package/src/package-checks/project-files/collection.ts +38 -22
  455. package/src/package-checks/project-files/config-glob.ts +1 -17
  456. package/src/package-checks/project-files/configuration.ts +1 -1
  457. package/src/package-checks/project-files/gitlink-revision.ts +4 -6
  458. package/src/package-checks/project-files/gitlink-worktree.ts +35 -7
  459. package/src/package-checks/project-files/public-collection.ts +1 -1
  460. package/src/package-checks/project-files/revision-paths.ts +3 -3
  461. package/src/package-checks/project-files/revision-worktree-files.ts +16 -16
  462. package/src/package-checks/secret-detection/default-check.ts +29 -6
  463. package/src/package-checks/secret-detection/execution.ts +2 -2
  464. package/src/package-checks/secret-detection/input-preparation.ts +64 -7
  465. package/src/package-checks/secret-detection/options.ts +5 -2
  466. package/src/package-checks/secret-detection/records.ts +1 -1
  467. package/src/package-checks/secret-detection/secretlint/adapter.ts +3 -4
  468. package/src/package-tools/admission-policy/define-admission-policy.ts +54 -0
  469. package/src/{cache → package-tools/cache}/cache-json-by-key.ts +13 -17
  470. package/src/{check → package-tools/finding-presentation}/finding-presentation.ts +3 -1
  471. package/src/{finding-waivers → package-tools/finding-waivers}/reconciliation.ts +16 -8
  472. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.ts +5 -2
  473. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.ts +5 -3
  474. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.ts +5 -4
  475. package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.ts +9 -10
  476. package/src/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.ts +2 -3
  477. package/src/{learned-critical-path → package-tools/learned-critical-path}/static-decision.ts +1 -1
  478. package/src/{learned-critical-path → package-tools/learned-critical-path}/strategy.ts +7 -4
  479. package/src/project-definition/check-tree/authoring.ts +15 -8
  480. package/src/project-definition/check-tree/check-fields-authoring.ts +106 -91
  481. package/src/project-definition/check-tree/flag-conditions.ts +99 -0
  482. package/src/project-definition/check-tree/materialization.ts +12 -8
  483. package/src/project-definition/check-tree/resolution.ts +13 -15
  484. package/src/project-definition/declarative-snapshot.ts +9 -2
  485. package/src/project-definition/project-changes.ts +112 -0
  486. package/src/project-definition/project-definition-validation.ts +58 -10
  487. package/src/project-definition/project-definition.ts +41 -68
  488. package/src/project-definition/scheduler-policy.ts +6 -3
  489. package/src/project-run/admission-strategy-provider/custom-strategy-preparation.ts +11 -8
  490. package/src/project-run/admission-strategy-provider/prepared-admission-strategy.ts +2 -2
  491. package/src/project-run/aggregation.ts +51 -74
  492. package/src/project-run/changes/git.ts +206 -0
  493. package/src/project-run/check-execution/admitted-check-execution.ts +62 -0
  494. package/src/project-run/check-execution/callback.ts +3 -2
  495. package/src/project-run/check-execution/dependencies.ts +120 -6
  496. package/src/project-run/check-execution/execution-finalization.ts +6 -4
  497. package/src/project-run/check-execution/execution-settlement.ts +88 -29
  498. package/src/project-run/check-execution/flag-controls.ts +22 -8
  499. package/src/project-run/check-execution/lifecycle.ts +14 -6
  500. package/src/project-run/check-execution/{preflight-result.ts → preparation-result.ts} +34 -32
  501. package/src/project-run/check-execution/{preflight.ts → preparation.ts} +92 -84
  502. package/src/project-run/check-execution/ready-check-execution.ts +97 -0
  503. package/src/project-run/check-execution/resolved-checks.ts +40 -219
  504. package/src/project-run/check-execution/scheduled-check-run.ts +119 -0
  505. package/src/project-run/check-execution/terminal-result.ts +108 -29
  506. package/src/project-run/completion/completion.ts +17 -3
  507. package/src/project-run/controls/contract.ts +6 -16
  508. package/src/project-run/controls/validation.ts +7 -60
  509. package/src/project-run/diagnostic-logging/diagnostic-detail-rendering.ts +1 -2
  510. package/src/project-run/diagnostic-logging/observation-rendering.ts +1 -1
  511. package/src/project-run/invocation/candidate.ts +28 -15
  512. package/src/project-run/invocation/candidates.ts +56 -0
  513. package/src/project-run/invocation/creation.ts +7 -3
  514. package/src/project-run/invocation/execution.ts +136 -0
  515. package/src/project-run/invocation/run.ts +15 -179
  516. package/src/project-run/invocation/scheduler.ts +13 -6
  517. package/src/project-run/outputs/status.ts +15 -15
  518. package/src/project-run/progress-rendering/presentation.ts +35 -13
  519. package/src/project-run/progress-rendering/renderer-formatting.ts +20 -7
  520. package/src/project-run/progress-rendering/renderer-lifecycle.ts +23 -6
  521. package/src/project-run/progress-rendering/renderer.ts +10 -4
  522. package/src/project-run/project-context.ts +8 -4
  523. package/src/project-run/result.ts +5 -5
  524. package/src/project-run/run.ts +1 -1
  525. package/src/project-run/task-scheduler/admission-core/compiled-graph-lookup.ts +71 -0
  526. package/src/project-run/task-scheduler/admission-core/compiled-graph.ts +9 -4
  527. package/src/project-run/task-scheduler/admission-core/selection-query.ts +6 -4
  528. package/src/project-run/task-scheduler/admission-core/selection-seed.ts +36 -6
  529. package/src/project-run/task-scheduler/admission-core/selection-transition.ts +17 -8
  530. package/src/project-run/task-scheduler/execution-state.ts +4 -4
  531. package/src/project-run/task-scheduler/measurement/diagnostics.ts +10 -4
  532. package/src/project-run/task-scheduler/measurement/timing.ts +13 -5
  533. package/src/project-run/task-scheduler/scheduler-observation.ts +3 -1
  534. package/src/project-run/task-scheduler/scheduler-terminal-measurement.ts +24 -22
  535. package/src/project-run/task-scheduler/scheduler.ts +23 -6
  536. package/types/check/check.d.ts +178 -67
  537. package/types/check/flag-enablement.d.ts +42 -0
  538. package/types/check/handoff-provider-identity.d.ts +12 -0
  539. package/types/check/project-changes.d.ts +13 -0
  540. package/types/check/project-context.d.ts +10 -0
  541. package/types/check-settlement/facts.d.ts +1 -1
  542. package/types/data-boundary/canonical-data.d.ts +28 -5
  543. package/types/data-boundary/canonical-json.d.ts +18 -1
  544. package/types/data-boundary/closed-values.d.ts +17 -1
  545. package/types/data-boundary/config-glob.d.ts +5 -0
  546. package/types/data-boundary/project-path.d.ts +4 -0
  547. package/types/index.d.ts +27 -11
  548. package/types/package-checks/check-authoring.d.ts +45 -0
  549. package/types/package-checks/code-quality-findings/finding-waiver-authoring.d.ts +1 -1
  550. package/types/package-checks/code-quality-findings/finding-waiver-evidence.d.ts +1 -1
  551. package/types/package-checks/command-check/command-check.d.ts +48 -0
  552. package/types/package-checks/command-check/contract.d.ts +108 -0
  553. package/types/package-checks/command-check/execution.d.ts +7 -0
  554. package/types/package-checks/command-check/options.d.ts +11 -0
  555. package/types/package-checks/command-check/transcript.d.ts +8 -0
  556. package/types/package-checks/duplicate-detection/default-check.d.ts +5 -2
  557. package/types/package-checks/duplicate-detection/finding-messages.d.ts +1 -1
  558. package/types/package-checks/duplicate-detection/options.d.ts +4 -3
  559. package/types/package-checks/duplicate-detection/records.d.ts +1 -1
  560. package/types/package-checks/file-metrics/constructor.d.ts +5 -2
  561. package/types/package-checks/file-metrics/options.d.ts +4 -3
  562. package/types/package-checks/file-metrics/records.d.ts +1 -1
  563. package/types/package-checks/file-metrics/scc/batch-planner.d.ts +18 -0
  564. package/types/package-checks/file-metrics/scc/logical-scan-resources.d.ts +14 -0
  565. package/types/package-checks/function-metrics/analyzer/extensions/protocol.d.ts +3 -3
  566. package/types/package-checks/function-metrics/constructor.d.ts +5 -2
  567. package/types/package-checks/function-metrics/finding-messages.d.ts +1 -1
  568. package/types/package-checks/function-metrics/options.d.ts +4 -3
  569. package/types/package-checks/function-metrics/records.d.ts +1 -1
  570. package/types/package-checks/host-environment/git.d.ts +2 -0
  571. package/types/package-checks/host-environment/path.d.ts +1 -3
  572. package/types/package-checks/host-environment/process/contract.d.ts +17 -9
  573. package/types/package-checks/json-schema-validation/default-check.d.ts +4 -1
  574. package/types/package-checks/json-schema-validation/options.d.ts +2 -1
  575. package/types/package-checks/json-validation/default-check.d.ts +4 -1
  576. package/types/package-checks/json-validation/options.d.ts +2 -1
  577. package/types/package-checks/local-cache-options.d.ts +9 -0
  578. package/types/package-checks/maintenance-reminders/maintenance-reminders.d.ts +11 -2
  579. package/types/package-checks/markdown-link-validation/default-check.d.ts +4 -1
  580. package/types/package-checks/markdown-link-validation/options.d.ts +4 -7
  581. package/types/package-checks/markdown-lint/adapter.d.ts +10 -0
  582. package/types/package-checks/markdown-lint/default-check.d.ts +37 -0
  583. package/types/package-checks/markdown-lint/execution.d.ts +24 -0
  584. package/types/package-checks/markdown-lint/final-data.d.ts +8 -0
  585. package/types/package-checks/markdown-lint/finding-messages.d.ts +6 -0
  586. package/types/package-checks/markdown-lint/finding-waiver-identity.d.ts +3 -0
  587. package/types/package-checks/markdown-lint/findings-cache.d.ts +17 -0
  588. package/types/package-checks/markdown-lint/options-resolution.d.ts +3 -0
  589. package/types/package-checks/markdown-lint/options-validation.d.ts +2 -0
  590. package/types/package-checks/markdown-lint/options.d.ts +65 -0
  591. package/types/package-checks/markdown-lint/records.d.ts +39 -0
  592. package/types/package-checks/markdown-lint/unavailable-reasons.d.ts +3 -0
  593. package/types/package-checks/secret-detection/default-check.d.ts +4 -1
  594. package/types/package-checks/secret-detection/options.d.ts +3 -2
  595. package/types/package-tools/admission-policy/define-admission-policy.d.ts +26 -0
  596. package/types/{check → package-tools/finding-presentation}/finding-presentation.d.ts +3 -1
  597. package/types/{finding-waivers → package-tools/finding-waivers}/reconciliation.d.ts +3 -3
  598. package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/prediction.d.ts +2 -2
  599. package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/preparation.d.ts +1 -1
  600. package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.d.ts +1 -1
  601. package/types/{learned-critical-path → package-tools/learned-critical-path}/selection-layers.d.ts +1 -1
  602. package/types/{learned-critical-path → package-tools/learned-critical-path}/static-decision.d.ts +1 -1
  603. package/types/{learned-critical-path → package-tools/learned-critical-path}/strategy.d.ts +1 -1
  604. package/types/project-definition/check-tree/authoring.d.ts +5 -3
  605. package/types/project-definition/check-tree/check-fields-authoring.d.ts +12 -7
  606. package/types/project-definition/check-tree/flag-conditions.d.ts +5 -0
  607. package/types/project-definition/check-tree/resolution.d.ts +6 -4
  608. package/types/project-definition/declarative-snapshot.d.ts +4 -1
  609. package/types/project-definition/project-changes.d.ts +30 -0
  610. package/types/project-definition/project-definition.d.ts +15 -30
  611. package/types/project-definition/scheduler-policy.d.ts +3 -3
  612. package/types/project-run/admission-strategy-provider/prepared-admission-strategy.d.ts +2 -2
  613. package/types/project-run/aggregation.d.ts +8 -6
  614. package/types/project-run/changes/git.d.ts +14 -0
  615. package/types/project-run/check-execution/admitted-check-execution.d.ts +18 -0
  616. package/types/project-run/check-execution/dependencies.d.ts +3 -0
  617. package/types/project-run/check-execution/execution-finalization.d.ts +1 -1
  618. package/types/project-run/check-execution/execution-settlement.d.ts +15 -7
  619. package/types/project-run/check-execution/flag-controls.d.ts +1 -1
  620. package/types/project-run/check-execution/lifecycle.d.ts +9 -5
  621. package/types/project-run/check-execution/{preflight-result.d.ts → preparation-result.d.ts} +3 -3
  622. package/types/project-run/check-execution/{preflight.d.ts → preparation.d.ts} +10 -9
  623. package/types/project-run/check-execution/ready-check-execution.d.ts +18 -0
  624. package/types/project-run/check-execution/resolved-checks.d.ts +12 -13
  625. package/types/project-run/check-execution/scheduled-check-run.d.ts +10 -0
  626. package/types/project-run/check-execution/terminal-result.d.ts +13 -1
  627. package/types/project-run/completion/completion.d.ts +3 -1
  628. package/types/project-run/controls/contract.d.ts +6 -16
  629. package/types/project-run/invocation/candidates.d.ts +8 -0
  630. package/types/project-run/invocation/execution.d.ts +5 -0
  631. package/types/project-run/invocation/run.d.ts +2 -2
  632. package/types/project-run/outputs/status.d.ts +4 -4
  633. package/types/project-run/progress-rendering/presentation.d.ts +4 -3
  634. package/types/project-run/progress-rendering/renderer-formatting.d.ts +5 -2
  635. package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +2 -0
  636. package/types/project-run/progress-rendering/renderer.d.ts +4 -2
  637. package/types/project-run/project-context.d.ts +3 -3
  638. package/types/project-run/result.d.ts +3 -3
  639. package/types/project-run/run.d.ts +1 -1
  640. package/types/project-run/task-scheduler/admission-core/compiled-graph-lookup.d.ts +10 -0
  641. package/types/project-run/task-scheduler/execution-state.d.ts +4 -4
  642. package/types/project-run/task-scheduler/measurement/diagnostics.d.ts +2 -2
  643. package/types/project-run/task-scheduler/scheduler-terminal-measurement.d.ts +1 -1
  644. package/dist/esm/cache/cache-json-by-key.mjs.map +0 -1
  645. package/dist/esm/check/finding-presentation.mjs.map +0 -1
  646. package/dist/esm/finding-waivers/reconciliation.mjs.map +0 -1
  647. package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs.map +0 -1
  648. package/dist/esm/learned-critical-path/duration-model/prediction.mjs.map +0 -1
  649. package/dist/esm/learned-critical-path/duration-model/preparation.mjs.map +0 -1
  650. package/dist/esm/learned-critical-path/duration-model/recording.mjs.map +0 -1
  651. package/dist/esm/learned-critical-path/duration-model/storage.mjs.map +0 -1
  652. package/dist/esm/learned-critical-path/selection-layers.mjs.map +0 -1
  653. package/dist/esm/learned-critical-path/static-decision.mjs.map +0 -1
  654. package/dist/esm/learned-critical-path/strategy.mjs.map +0 -1
  655. package/dist/esm/package-checks/project-files/config-glob.mjs.map +0 -1
  656. package/dist/esm/project-run/check-execution/preflight-result.mjs.map +0 -1
  657. package/dist/esm/project-run/check-execution/preflight.mjs.map +0 -1
  658. package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs.map +0 -1
  659. package/types/package-checks/project-files/config-glob.d.ts +0 -5
  660. /package/dist/esm/{check → package-tools/finding-presentation}/finding-presentation.mjs +0 -0
  661. /package/dist/esm/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.mjs +0 -0
  662. /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.mjs +0 -0
  663. /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/duration-model/recording.mjs +0 -0
  664. /package/dist/esm/{learned-critical-path → package-tools/learned-critical-path}/static-decision.mjs +0 -0
  665. /package/src/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.ts +0 -0
  666. /package/src/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.ts +0 -0
  667. /package/types/{cache → package-tools/cache}/cache-json-by-key.d.ts +0 -0
  668. /package/types/{project-run/task-scheduler → package-tools/learned-critical-path}/critical-path-ranking.d.ts +0 -0
  669. /package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/bounded-history.d.ts +0 -0
  670. /package/types/{learned-critical-path → package-tools/learned-critical-path}/duration-model/storage.d.ts +0 -0
@@ -1,17 +1,18 @@
1
1
  # 编写会正确结算的自定义 Check
2
2
 
3
- 本专题面向需要把项目规则接入 Vibe Check 的调用方:选择 `preflight` 或 `execution`,读取 callback 输入,返回可信终态,并在需要时发布补充事实。先能用一个普通 `execution` 完成规则;只有必须在执行前准备或验证 options 时才增加 `preflight`。一次 Run 的公共生命周期、输出优先级和完整结果模型见 [API 机制](../api-mechanics.md)。
3
+ 本专题面向需要把项目规则接入 Vibe Check 的调用方:选择 `prepare` 或 `execute`,读取 callback 输入,返回可信终态,并在需要时发布补充事实。先能用一个普通 `execute` 完成规则;只有必须在执行前准备或验证 options 时才增加 `prepare`。一次 Run 的公共生命周期、输出优先级和完整结果模型见 [API 机制](../api-mechanics.md)。
4
4
 
5
5
  ## 选择扩展点
6
6
 
7
7
  | 需求 | 使用方式 | 不要用它做什么 |
8
8
  | --- | --- | --- |
9
- | 规则可直接测量并结算 | `execution(context)` | 不要在 callback 外留下未等待的工作。 |
10
- | 执行前验证或把 authoring options 变成 invocation-local 的准备值 | `preflight(options, signal)` 后接 `execution(context)` | 它不是全局启动 hook;只在本 Check 已获准入后运行。 |
9
+ | 规则可直接测量并结算 | `execute(context)` | 不要在 callback 外留下未等待的工作。 |
10
+ | 执行前验证或把 authoring options 变成 invocation-local 的准备值 | `prepare(options, signal, project?)` 后接 `execute(context)` | 它不是全局启动 hook;只在本 Check 已获准入后运行。 |
11
11
  | 保存不决定终态的逐项事实 | `context.records.report({ id }, data)` | Record 不能替代 `passed`、`failed`、`not-applicable` 或 `unavailable`。 |
12
12
  | 读取已声明上游结果 | `dependsOn` 或 `observes`,再从 `context.dependencies` 读取 | 不能读取未声明、传递或任意已运行的 Check。 |
13
+ | 向 direct prerequisite consumer 交接 same-Run reference | 在 provider 上声明 `handoff: true`,并在 `passed` result 返回 `handoff` | 不能用它发布到 RunResult、machine、progress、diagnostic 或 cache;不扩大 `observes` 权限。 |
13
14
 
14
- `defineCheck(...)` 定义的 object 是公开 authoring surface。`execution`、`preflight`、`parseData` 都是调用方实现的受信任回调。Product 只提供各自声明的输入;回调独立执行的 I/O 仍由调用方负责。
15
+ `defineCheck(...)` 定义的 object 是公开 authoring surface。`prepare`、`execute`、`parseData` 都是调用方实现的受信任回调。Product 只提供各自声明的输入;回调独立执行的 I/O 仍由调用方负责。
15
16
 
16
17
  ## 定义 Check
17
18
 
@@ -34,13 +35,13 @@ const licensePolicy = defineCheck({
34
35
  checkId: "license-policy",
35
36
  displayName: "License policy",
36
37
  options: { denied: ["GPL-3.0-only"] },
37
- preflight(options) {
38
+ prepare(options) {
38
39
  return hasValidLicensePolicyOptions(options)
39
40
  ? { status: "success", preparedOptions: options }
40
41
  : { status: "failure", action: "block", reason: { code: "invalid-options" } };
41
42
  },
42
- visibility: "attention",
43
- execution({ options, records, signal }) {
43
+ omitQuietPassedRow: true,
44
+ execute({ options, records, signal }) {
44
45
  if (signal.aborted) return { status: "unavailable", reason: { code: "cancelled" } };
45
46
 
46
47
  const deniedCount = options.denied.length;
@@ -57,51 +58,102 @@ const licensePolicy = defineCheck({
57
58
  });
58
59
  ```
59
60
 
61
+ ### 省略安静通过行
62
+
63
+ 把 `omitQuietPassedRow: true` 写在 **executable Check** 上,可在它安静通过时省略其
64
+ settled row。它不是一般 boolean 开关:公开类型和 closed runtime grammar 只接受字面量
65
+ `true`;省略或自有 `undefined` 都表示默认 `false`。container 不能声明它,它也不会继承给
66
+ children;`false`、旧 `visibility` 字段和其它值都会使 Definition validation 失败。
67
+
68
+ 需要按调用方自己的条件启用时,组合对象以加入或省略字段,不要把条件结果赋给该字段:
69
+
70
+ 例如,在 Check object 中写
71
+ `...(shouldReduceSuccessfulOutput ? { omitQuietPassedRow: true as const } : {})`;条件为否时字段不存在,
72
+ 条件为真时才加入 literal opt-in。
73
+
74
+ 这里的**安静通过**精确定义为 `status: "passed"`,且该次 settlement 接受的 Records 和
75
+ messages 都为空。final `data` 不参与判定;`recordPreviewLimit`、`messagePreviewLimit`、
76
+ formatter 返回的文本和终端截断也不会把已有 accepted detail 变成安静通过。非通过 outcome,
77
+ 或带任一 accepted Record/message 的通过,都会保留 settled presentation。具体终端格式、计数
78
+ 与默认输出边界见[进度呈现](run-outputs.md#progress-rendering)。
79
+
60
80
  ## 按 flag 选择 Check
61
81
 
62
- `enabledByFlags` 只决定本次 Run 是否选择 executable Check;它不是权限、环境检测或 callback 内的条件替代。该字段的完整公开 grammar 是:
82
+ `enabledByFlags` 决定 executable Check 是否参与本次 Run;它不替代权限、环境检测或 callback 内的业务条件。先选最简单的
83
+ 正向写法:单个 token 使用 `when: "token"`;组合 token 时导入 builder;只有命中的 downstream Check 还需要启动其
84
+ `dependsOn` prerequisite 时才加入 `propagateDependsOn: true`。
63
85
 
64
86
  ```ts
65
- {
66
- flags: ["token", ...],
67
- mode: "all" | "any" | "none" | "not-all",
68
- propagateDependsOn?: true
69
- }
87
+ import { all, any, changeFlag, defineCheck } from "@zxyycom/vibe-check";
88
+
89
+ const sourceAware = defineCheck({
90
+ checkId: "source-aware",
91
+ displayName: "Source aware",
92
+ enabledByFlags: {
93
+ when: any(all("required", changeFlag("source")), "force"),
94
+ propagateDependsOn: true
95
+ },
96
+ execute: () => ({ status: "passed", data: {} })
97
+ });
70
98
  ```
71
99
 
72
- `enabledByFlags` 只可写在 executable Check 上,container 不接受也不向 children 继承它;额外字段或非法 mode 会在 author work 前使 Definition validation 失败。`flags` 必须是无空洞的非空列表,每个 token 是非空字符串;Product 会复制、去重、稳定排序并冻结它。其它未声明 tokens 不影响 predicate。没有 `enabledByFlags` 的 executable Check 默认被选择。 `all` 要求全部声明 token 存在,`any` 要求至少一个存在,`none` 要求全部不存在,`not-all` 要求至少一个不存在;它们都不是“恰好一个”的条件。predicate 不命中且未被下述依赖传播带入时,Check 在自己的 preflight / execution 前以 `not-applicable / flag-condition-not-matched` 结算,duration 为 `null`。
100
+ ### Condition grammar
101
+
102
+ `CheckFlagCondition` 是 builder、raw JSON、Definition snapshot 与 evaluator 共用的唯一递归 AST;非空字符串
103
+ 本身就是 atom leaf。
104
+
105
+ | 要表达什么 | 写法 | 约束 |
106
+ | --- | --- | --- |
107
+ | 单个 token | `when: "token"` | token 非空;只测试 presence。 |
108
+ | 全部、任一、全无、非全、恰一 | `all`、`any`、`none`、`notAll`、`exactlyOne` | 每个 builder 至少接收一个字符串或嵌套 condition。 |
109
+ | 反转一个 condition | `not(condition)` | 只接收一个 condition。 |
110
+ | 生成或序列化 set condition | raw `{ kind, conditions }` | `kind` 为 `all` / `any` / `none` / `not-all` / `exactly-one`;`conditions` 是非空列表。 |
111
+ | 生成或序列化 unary condition | raw `{ kind: "not", condition }` | `condition` 是唯一 child。 |
112
+
113
+ Definition 复制、验证并冻结这个 AST;set child 的顺序和重复次数保留,因此重复 child 仍影响
114
+ `exactlyOne`。`changeFlag(id)` 只生成受保护的 `vibe-check:change:<id>` string token(literal `id` 保留 literal type);
115
+ 它不读取 Git。使用该 token 时,Definition 必须在同一 `changes.flags` 声明 `id`,否则在 author work 前失败。需要
116
+ Git source、regions 与 `project.changes` evidence 时,使用[按文件变化选择 Check](../api-mechanics.md#按文件变化选择-check)。
117
+
118
+ ### Selection and propagation
119
+
120
+ 没有 `enabledByFlags` 的 executable Check 默认参与选择。condition 命中时 Check 参与选择;不命中且未被传播带入时,
121
+ 它在 preparation/execution 前以 `not-applicable / flag-condition-not-matched` 结算,duration 为 `null`。
73
122
 
74
- 只有字面量 `propagateDependsOn: true` 才会把命中 root 的**传递** `dependsOn` prerequisite 一并加入本次选择;省略字段保持仅选择 direct match 的行为,不能写 `false`。这份传递闭包覆盖其中 dependency 自己的 flag predicate miss:被带入的 dependency 会继续正常调度,而不会先因 flag 结算为 `not-applicable`。`observes` 不参与该扩展选择;未被选择的 dependency 才仍可成为 `not-applicable` outcome,dependent 的 hard prerequisite 是否通过仍由 Scheduler 处理。需要带值 flag、恰好一个或嵌套布尔条件时,在 `execution` 中基于 `context.project.flags` 做项目自己的解释,并继续用 preflight/execution 结算真正的环境条件。
123
+ `propagateDependsOn: true` 只把命中 root 的传递 `dependsOn` closure 加入本次选择。被带入的 dependency 即使自身
124
+ condition 不命中也按普通 lifecycle 调度;`observes` 永不进入 closure,hard prerequisite 是否通过仍由 Scheduler 决定。
125
+ 省略 propagation 保持 direct-match selection。Definition 拥有 closed validation、snapshot/fingerprint;Run 拥有
126
+ effective selection 和 callback projection。
75
127
 
76
- ## `preflight`:准备、阻止或带 fallback 继续
128
+ ## `prepare`:准备、阻止或带 fallback 继续
77
129
 
78
- `preflight(options, signal)` 收到 authoring options 的深度只读视图和这次 Run 的同一取消 signal。authored 与 prepared options 同形时可省略 preflight;两种 shape 不同时,TypeScript 要求提供它。它只能返回以下三种结果(每种都可附有序 `messages`):
130
+ `prepare(options, signal, project?)` 收到 authoring options 的深度只读视图、这次 Run 的同一取消 signal,以及同 `execute` 一致的只读 project context。Product 每次 Run 都传入第三参数;公开 callback 类型把它标为 optional,以兼容调用方直接调用既有两参数 callback。需要读取它时先处理 optional value,而不是推断配置 `changes` 时 Product 会省略 project。authored 与 prepared options 同形时可省略 `prepare`;两种 shape 不同时,TypeScript 要求提供它。它只能返回以下三种结果(每种都可附有序 `messages`):
79
131
 
80
- - `{ status: "success", preparedOptions }`:把准备后的 object 交给 `execution` 的 `context.options`。
81
- - `{ status: "failure", action: "block", reason }`:本 Check 使用该 reason 直接结算为 `unavailable`,不接受 `fallback`,不会运行 `execution`。
132
+ - `{ status: "success", preparedOptions }`:把准备后的 object 交给 `execute` 的 `context.options`。
133
+ - `{ status: "failure", action: "block", reason }`:本 Check 使用该 reason 直接结算为 `unavailable`,不接受 `fallback`,不会运行 `execute`。
82
134
  - `{ status: "failure", action: "continue", fallback, reason, messages? }`:以 `fallback` 继续执行。`reason` 是 Check-owned diagnostic identity,不会单独形成 outcome;需要让调用方观察准备诊断时,在 `messages` 返回说明,随后仍以 execution 的 terminal outcome 为准。
83
135
 
84
- 准备值只属于本次 invocation,Product 会 canonicalize 并冻结后再交给 `execution`;不要修改传入 options,也不要把它当作跨 Run 缓存。preflight throw/reject 使用 `preflight-threw`,非法结果/message/reason 或非 canonical prepared/fallback 使用 `invalid-preflight-result`,只使本项 `unavailable`,不是整个 Definition 的配置错误。block 或 preparation failure 尚未开始 author execution,duration 为 `null`;已经接受的 preparation messages 仍保留。execution 的 throw、非法返回值和 Record 写入错误也会由 Product 结算为本项不可用。
136
+ 准备值只属于本次 invocation,Product 会 canonicalize 并冻结后再交给 `execute`;不要修改传入 options,也不要把它当作跨 Run 缓存。preparation throw/reject 使用 `preparation-threw`,非法结果/message/reason 或非 canonical prepared/fallback 使用 `invalid-preparation-result`,只使本项 `unavailable`,不是整个 Definition 的配置错误。block 或 preparation failure 尚未开始 author execution,duration 为 `null`;已经接受的 preparation messages 仍保留。execution 的 throw、非法返回值和 Record 写入错误也会由 Product 结算为本项不可用。
85
137
 
86
- ## `execution` 可读取与可写入的内容
138
+ ## `execute` 可读取与可写入的内容
87
139
 
88
- `execution(context)` 的输入是 Product 提供、不可变或受控的 callback context:
140
+ `execute(context)` 的输入是 Product 提供、不可变或受控的 callback context:
89
141
 
90
142
  | 输入 | 可以做什么 | 边界 |
91
143
  | --- | --- | --- |
92
144
  | `invocationId` | 关联本次 Run 的工作。 | 同一次 Run 的 callback 使用相同 ID,不是跨 Run state。 |
93
145
  | `options` | 使用本 Check 已准备的 options。 | 不修改;不是原始 authoring object。 |
94
- | `project.root` / `project.flags` | 使用本次规范化的绝对根目录和 flags。 | Product 只按 token presence 做选择;项目可自行解释完整 flags,但它们不证明环境或权限。 |
146
+ | `project.root` / `project.flags` / `project.changes` | 使用本次规范化的绝对根目录、同一 effective flag 集,以及已配置时同一次冻结的 change result。 | caller token 与 derived change token 在注入后都只按 presence 参与选择和 callback;`changes` evidence 不证明环境或权限。 |
95
147
  | `dependencies` | 读取已声明 direct `dependsOn` / `observes` 的终态。 | `get` 不授权未声明或传递依赖;`list` 不是全局执行历史。 |
96
148
  | `artifactDirectory` | 写本 Check 的 invocation-local artifact;未授权时为 `null`。 | 不推导 sibling、machine、diagnostic 或跨 Run state 的路径。 |
97
149
  | `records` | 发布 object-shaped supplemental facts。 | 每个 ID 仅在本 Check 内唯一,且不会决定 status。 |
98
150
  | `signal` | 在可等待工作中协作退出。 | 取消后不要启动背景工作或把部分结果伪装为通过。 |
99
151
 
100
- 成功与失败都必须返回 object-shaped final `data`;`not-applicable` 表示当前没有适用工作,`unavailable` 表示无法形成可信结果并必须带稳定 `reason.code`。`messages` 是有序的人读补充信息,不保证每个 outcome 都有;把完整或敏感详情留在调用方拥有的安全位置,不要依赖 progress 文本保存事实。
152
+ 成功与失败都必须返回 object-shaped final `data`;`not-applicable` 表示当前没有适用工作,`unavailable` 表示无法形成可信结果并必须带稳定 `reason.code`。声明 `handoff: true` 的 provider 还必须在 `passed` 返回同型 non-null object/function `handoff`;其它 branch 和 ordinary Check 不能携带该字段。`messages` 是有序的人读补充信息,不保证每个 outcome 都有;把完整或敏感详情留在调用方拥有的安全位置,不要依赖 progress 文本保存事实。
101
153
 
102
154
  ## 依赖与取消的实践
103
155
 
104
- 必须取得上游成功 data 才能开始时,声明 `dependsOn`,并先检查 `dependencies.get(id).ok`;上游未提供 data 时返回 `unavailable`,而不是猜测空值。需要等上游无论何种终态都结算后再审计时,声明 `observes`,用 `dependencies.list()` 处理各项 outcome。需要恢复 provider 的业务类型时,调用 provider Check 的 `parseData`。完整示例和读取授权见[依赖数据指南](check-dependencies.md)。
156
+ 必须取得上游成功 data 才能开始时,声明 `dependsOn`,并先检查 `dependencies.get(id).ok`;上游未提供 data 时返回 `unavailable`,而不是猜测空值。需要等上游无论何种终态都结算后再审计时,声明 `observes`,用 `dependencies.list()` 处理各项 outcome。需要保留 provider reference identity 时,provider-aware `dependencies.get(provider)` 只对 direct `dependsOn` 成功;继续调用 provider Check 的 `parseData(read.data)`,不要把 parser 用于 `read.handoff`。完整示例、immutable observation 和 explicit resource cleanup 边界见[依赖数据指南](check-dependencies.md)。
105
157
 
106
158
  对 `fetch`、子进程或自有异步 API,把 `signal` 传下去;若已取消,尽快停止并返回 `unavailable`。Vibe Check 不会取消调用方没有连接 signal 的外部工作,也不替调用方回收文件、网络或子进程资源。
107
159
 
@@ -21,6 +21,14 @@ const reconciled = reconcileFindingWaivers({
21
21
  });
22
22
  ```
23
23
 
24
+ ## 输入与默认值
25
+
26
+ `waivers` 可省略;省略或传入 `undefined` 都等同于 `[]`,表示没有配置豁免。例如
27
+ `reconcileFindingWaivers({ findings, identify })` 仍验证每项 Finding identity,将全部 Finding 标为
28
+ `actionable`,返回空 `waiverAudits`,并保留原 Finding 的顺序与引用。
29
+
30
+ `findings` 与 `identify` 仍必填;`null`、非数组及非法 waiver 配置仍抛出 `TypeError`,不会被当作无豁免。
31
+
24
32
  ## identity 与 audit
25
33
 
26
34
  `identify(finding)` 对输入顺序中的每个原 finding 接收完整 finding。调用方自行选择稳定的语义
@@ -39,7 +47,41 @@ configured waiver 都在完整集合上获得 audit:`0` 次匹配是 `unused`
39
47
  ## 随包 Check 的采用边界
40
48
 
41
49
  [`fileMetrics`](../checks/file-metrics.md)、[`functionMetrics`](../checks/function-metrics.md)、
42
- [`duplicateDetection`](../checks/duplicate-detection.md) 与 [`secretDetection`](../checks/secret-detection.md)
50
+ [`duplicateDetection`](../checks/duplicate-detection.md)、[`secretDetection`](../checks/secret-detection.md)
51
+ 与 [`markdownLint`](../checks/markdown-lint.md)
43
52
  提供原生 `findingWaivers` option,其 authoring 为 closed `{ identity, reason }`。它们先形成完整、可信的 Finding 集合再对账;waiver 不缩小 scanner/detector input、不删除原 Finding,也不把 `unavailable` 伪装成 audit。其它随包 Check 暂无同名原生 option。
44
53
 
45
54
  各 Check 指南完整定义自己的 identity grammar、可 waiver scope、Record/message/final-data 与 status effect。`secretDetection` 的 identity 不含 secret 值、message、line 或 hash,且不能豁免 coverage gap 或 `unavailable`;reason 会作为 evidence 发布,不能包含敏感材料。
55
+
56
+ ## 为 Markdown lint 声明精确例外
57
+
58
+ 人工确认某条 lint Finding 是可接受的例外后,将其公开 Record data 的 `path`、`rule`、完整 `range` 复制到 identity,再说明接受原因。下例 Record 值仅作示意;实际应复制本次检查的证据,不应动态豁免所有扫描结果。
59
+
60
+ ```ts
61
+ import {
62
+ markdownLint as lintWithWaivers,
63
+ type MarkdownLintRecordData,
64
+ type MarkdownLintFindingWaiver
65
+ } from "@zxyycom/vibe-check";
66
+
67
+ // 示例:已人工复核的一条 Record data,实际使用时复制自己检查得到的值。
68
+ const reviewedFinding: MarkdownLintRecordData = {
69
+ kind: "lint-finding",
70
+ path: "docs/legacy.md",
71
+ rule: "fenced-code-language",
72
+ range: { start: { line: 8, column: 1 }, end: { line: 8, column: 1 } }
73
+ };
74
+ const { path, rule, range } = reviewedFinding;
75
+ const acceptedException: MarkdownLintFindingWaiver = {
76
+ identity: { path, rule, range },
77
+ reason: "此处演示未指定语言的原始围栏,保留例外并继续检查其它 Finding。"
78
+ };
79
+ const lintWithAcceptedException = lintWithWaivers({
80
+ findingPolicy: "blocking",
81
+ findingWaivers: [acceptedException]
82
+ });
83
+ // 将 lintWithAcceptedException 加入项目 checks;不是删除原 Finding。
84
+ void lintWithAcceptedException;
85
+ ```
86
+
87
+ 将返回的 Check 放入项目的 `checks` 后,完整 lint 才会对账。唯一匹配保留 Finding 并附 waiver reason,未匹配或多匹配产生可见 audit;行列漂移不会自动迁移配置。计数、缓存组合及失败边界由 [Markdown lint 指南](../checks/markdown-lint.md#精确-finding-waiver)完整定义。
@@ -16,7 +16,7 @@ function scheduledCheck(checkId: string) {
16
16
  return defineCheck({
17
17
  checkId,
18
18
  displayName: checkId,
19
- execution: () => ({ status: "passed" as const, data: {} })
19
+ execute: () => ({ status: "passed" as const, data: {} })
20
20
  });
21
21
  }
22
22
 
@@ -49,7 +49,7 @@ const headAndTail: ProgressPreviewFormatter = ({ text, maxCodePoints }) => {
49
49
  const detail = defineCheck({
50
50
  checkId: "detail",
51
51
  displayName: "Detail",
52
- execution: ({ records }) => {
52
+ execute: ({ records }) => {
53
53
  records.report({ id: "long-detail" }, { text: "a verbose diagnostic value" });
54
54
  return { status: "passed", data: {} };
55
55
  }
@@ -75,10 +75,34 @@ formatter 返回空字符串仍是一条呈现项;throw 或返回非字符串
75
75
 
76
76
  ## Progress rendering
77
77
 
78
- TTY 使用可更新的 running region;plain output 与 `TERM=dumb` 只追加 settled presentation。每个可见 settled row 保留 measured duration 或 `not run`;完整、canonical-ordered `RunResult.checkDurations` 仍保留所有 Check,未执行项为 `null`。`visibility: "attention"` 只隐藏既无 accepted Record 也无 author/captured message 的 passed settled row,不隐藏 running Check。
78
+ TTY 使用可更新的 running region;plain output 与 `TERM=dumb` 从不输出 running row,只追加
79
+ settled presentation。每个可见 settled row 保留 measured duration 或 `not run`;完整、
80
+ canonical-ordered `RunResult.checkDurations` 仍保留所有 Check,未执行项为 `null`。
81
+
82
+ 启用 `omitQuietPassedRow: true` 的 executable Check 在 TTY 中运行时仍可见,但 running row 与
83
+ 所有保留的 settled row 都使用无编号的 `· <name>` 格式。它安静通过时不写 settled row;安静
84
+ 通过是 `passed` 且 accepted Records/messages 均为空,final data、preview limit、formatter 文本和
85
+ 终端截断不改变这个判定。带 accepted detail 的通过,以及 `failed`、`not-applicable`、`unavailable`
86
+ 都保留为无编号 settled row,并继续使用既有 duration、reason、detail、escaping 和颜色规则。
87
+
88
+ 没有该策略的 row 继续显示 `[n/total]`。`n` 是全部 executable Checks 的全局 completion
89
+ accounting:每次 settlement 都推进,即使对应 quiet-pass row 被省略,因此保留的普通 row 可以跳号;
90
+ 它不是可见结果行的 ID。flag-condition-not-matched 仍按既有 Definition 顺序进入原因聚合块,
91
+ 不形成 running row;该聚合优先于 quiet-pass 省略。
92
+
93
+ 至少一个 normalized executable Check 启用该策略时,header 精确追加
94
+ `· <configured> configured for quiet-pass omission`,例如 `total 12 checks · 3 configured for quiet-pass omission`。
95
+ 这里的 `configured` 是静态声明数,包含本次因 flags 未匹配而未启动的 Check。final summary 在
96
+ 既有 `elapsed` 前精确追加 `quiet-pass rows omitted: <actual>`;`actual` 只计 renderer 实际省略的
97
+ quiet pass,不计 flag mismatch、未完成的潜在省略或任一保留 row。因此两个数可以不同。没有
98
+ configured Check 时,header、final summary、terminal 与 progress tee 的既有 bytes 保持不变。
79
99
 
80
100
  flag control barrier 结束后,因 `enabledByFlags` 未匹配而未启动的 Checks 以一个原因块分组呈现,而非逐项 settled row;dependency activation 带入的 Check 不在该组。两种显示压缩都不改变 Check facts、accounting 或结果。配置 `progressLogFile` 时,同一 rendered bytes 先写 terminal、再写 file;file setup/write/close failure 使 progress output failed,但不吞掉 terminal presentation。
81
101
 
102
+ 这项呈现策略不新增或改写 `RunResult`、machine schema 或 Check lifecycle facts;它只改变人读
103
+ row 的保留和编号格式。当前已发布版本的 [changelog](../changelog.md) 历史不由这项规则改写;
104
+ 升级说明由相应发布变更按实际版本净差异维护。
105
+
82
106
  ## 日志与输出目标
83
107
 
84
108
  machine publication 与 diagnostic logging 的 `directory` 都是调用方选择的非空、无 U+0000 的受信任 target:相对路径从 effective `projectRoot` 解析,绝对路径直接使用;它们不提供 containment 或 sandbox 语义。`progressLogFile` 使用相同的路径规则。
@@ -124,22 +148,24 @@ getter 来寻找更深字段。诊断不回显被拒绝的值;unknown key 诊
124
148
 
125
149
  channel setup、write 或 close failure 只使对应 output failed,不改写已经形成的 Check/Record facts,也不阻断其它 output 结算。
126
150
 
127
- 当 primary Run 已正常完成时,output failure 使结果成为 `kind: "output"`;多个 failure 依次选择 progress rendering、machine publication、diagnostic logging、measurement hooks 的第一个作为 diagnostic。`scheduler-measurement-hooks-failed` 因而只表示 measurement hook 是按该顺序选中的 failure;cancellation 或 execution diagnostic 保持原有 primary result,hook failure 仍在 `outputs.measurementHooks.status` 可见。
151
+ `checkAggregation` 不是 output formatter,也不产生 output status。它在完整 Check settlement 后、正常 final progress summary 与 machine publication 前同步解释有效 Check 列表。若该函数抛错、返回 Promise/thenable 或非法四态值,`run(...)` 直接拒绝:Product 会关闭本次 diagnostic/progress writer,但不呈现正常成功 summary、不发布正常 machine result,也不返回可读取 output status 的 `RunResult`。调用方应处理这个 Promise rejection;它不能靠 `kind: "output"` 恢复。
152
+
153
+ 当 primary Run 已正常完成时,output failure 使结果成为 `kind: "output"`;多个 failure 依次选择 progress rendering、machine publication、diagnostic logging、terminal effects 的第一个作为 diagnostic。`scheduler-terminal-effects-failed` 因而只表示 terminal effect 是按该顺序选中的 failure;cancellation 或 execution diagnostic 保持原有 primary result,terminal-effect failure 仍在 `outputs.terminalEffects.status` 可见。
128
154
 
129
155
  ### Diagnostic channel 状态
130
156
 
131
157
  `outputs.diagnosticLogging` 的形状为 `{ enabled, status, channels }`,其中 `channels` 是 `core`、`scheduler` 的 `{ enabled, status, file }` map。禁用 channel 的 `file` 为 `null`;启用 channel 即使创建文件失败也保留预先计算的 `path.relative(projectRoot, resolvedFile)`,因此 root 外 target 可含 `..`,跨卷时平台可以返回 absolute path。任一 enabled channel failed 时 aggregate status 为 `failed`,只有全部 enabled channel succeeded 时为 `succeeded`。
132
158
 
133
- ### Measurement hook 状态
159
+ ### Terminal effect 状态
134
160
 
135
- `scheduler.measurementHooks` 在 Definition 中配置,不能由 RunControls 注入或覆盖。终态观察交付给调用方配置的 generic Hooks 与 prepared strategy 的 public `complete`;调用顺序和 context 见[调度专题](scheduling.md#观察终态-measurement)。
161
+ `scheduler.terminalEffects` 在 Definition 中配置,不能由 RunControls 注入或覆盖。终态观察交付给调用方配置的 Definition effects 与 prepared strategy 的 public `terminalEffect`;调用顺序和 context 见[调度专题](scheduling.md#交付终态-measurement)。
136
162
 
137
- `outputs.measurementHooks` 的形状为 `{ enabled, status }`:
163
+ `outputs.terminalEffects` 的形状为 `{ enabled, status }`:
138
164
 
139
165
  | 条件 | `enabled` / `status` |
140
166
  | --- | --- |
141
- | normalized `scheduler.measurementHooks` 非空,或 successful prepared strategy 实际提供 `complete` | `enabled: true`。 |
167
+ | normalized `scheduler.terminalEffects` 非空,或 successful prepared strategy 实际提供 `terminalEffect` | `enabled: true`。 |
142
168
  | 两者都没有 | `enabled: false`,`status: "disabled"`。 |
143
169
  | enabled Run 没有 sealed terminal sequence | `status: "not-run"`。 |
144
- | sealed sequence 中所有 generic Hooks 与可选 public `complete` 都成功 | `status: "succeeded"`。 |
145
- | 任一 generic Hook 或 `complete` throw/reject | `status: "failed"`;后续 `complete` success 不会覆盖已记录的 generic failure。 |
170
+ | sealed sequence 中所有 Definition effects 与可选 public `terminalEffect` 都成功 | `status: "succeeded"`。 |
171
+ | 任一 Definition effect 或 `terminalEffect` throw/reject | `status: "failed"`;后续 `terminalEffect` success 不会覆盖已记录的 Definition-effect failure。 |
@@ -1,6 +1,6 @@
1
1
  # 按项目约束调度 Check
2
2
 
3
- 本专题面向已经有多个自定义 Check、需要表达并发约束、改变 ready task 的选择顺序的调用方。默认 `{ kind: "static" }` 已经遵守依赖、mutex、root/scoped 并行预算、named resource capacity 和取消;只有这些不变式之外的**选择偏好**需要项目规则时,才使用 custom policy(包括 learned helper 返回的 prepared strategy)。Check 自己的 options、preflight、execution 与取消处理见[编写自定义 Check](extending-check-lifecycle.md)。
3
+ 本专题面向已经有多个自定义 Check、需要表达并发约束、改变 ready task 的选择顺序的调用方。默认 `{ kind: "static" }` 已经遵守依赖、mutex、root/scoped 并行预算、named resource capacity 和取消;只有这些不变式之外的**选择偏好**需要项目规则时,才使用 custom policy(包括 learned helper 返回的 prepared strategy)。Check 自己的 options、preparation、execution 与取消处理见[编写自定义 Check](extending-check-lifecycle.md)。
4
4
 
5
5
  ## 选择正确的工具
6
6
 
@@ -10,10 +10,10 @@
10
10
  | 为可计数共享资源声明并发容量 | `scheduler.resourceCapacities` 与 Check 的 `resourceClaims` | capacity 与 claim 都是本次 Run 的静态 units。 |
11
11
  | 只指定静态相对顺序 | Check 的 `admissionPriority` | 在 Scheduler 的 relation、mutex、容量和取消约束内排序 ready Task。 |
12
12
  | 每次 ready selection 根据当前事实选择一个 task | `scheduler.admissionPolicy` 的 `custom/simple` strategy | 向 Scheduler 提交一个 selection proposal。 |
13
- | 先异步准备本 Run 专用决策 closure,或在终态 measurement 后收尾 | `custom/prepared` strategy | `prepare` 形成 Run-local closure,`complete` 消费 terminal measurement。 |
13
+ | 先异步准备本 Run 专用决策 closure,或在终态 measurement 后收尾 | `custom/prepared` strategy | `prepare` 形成 Run-local closure,`terminalEffect` 消费 terminal measurement。 |
14
14
  | 对独立静态图比较假设分支 | [`createAdmissionGraph(...)`](simulating-admission.md) | 不执行 Check;在独立专题中建立并比较 immutable successor。 |
15
15
  | 多次运行后按本地时长历史改善选择 | `createLearnedCriticalPathStrategy(...)` 作为 `custom/prepared` strategy | 使用调用方管理的本地 history 形成选择偏好。 |
16
- | Run 结束后保存项目自己的调度统计 | `scheduler.measurementHooks` | 接收冻结的 terminal measurement 作为 side effect 输入。 |
16
+ | Run 结束后保存项目自己的调度统计 | `scheduler.terminalEffects` | 接收冻结的 terminal measurement 作为 side effect 输入。 |
17
17
 
18
18
  `admissionPriority` 必须是有符号 safe integer;Check 节点省略时继承最近显式祖先值,没有祖先声明时为 `0`。
19
19
 
@@ -29,14 +29,14 @@ const firstAudit = defineCheck({
29
29
  displayName: "First audit",
30
30
  mutex: ["exclusive-audit"],
31
31
  resourceClaims: { worker: 1, capacityUnits: 2 },
32
- execution: () => ({ status: "passed", data: {} })
32
+ execute: () => ({ status: "passed", data: {} })
33
33
  });
34
34
 
35
35
  const secondAudit = defineCheck({
36
36
  checkId: "second-audit",
37
37
  displayName: "Second audit",
38
38
  mutex: ["exclusive-audit"],
39
- execution: () => ({ status: "passed", data: {} })
39
+ execute: () => ({ status: "passed", data: {} })
40
40
  });
41
41
 
42
42
  export default defineConfig({
@@ -64,7 +64,7 @@ const executionOrder: string[] = [];
64
64
  const compile = defineCheck({
65
65
  checkId: "compile",
66
66
  displayName: "Compile",
67
- execution() {
67
+ execute() {
68
68
  executionOrder.push("compile");
69
69
  return { status: "passed", data: {} };
70
70
  }
@@ -75,7 +75,7 @@ const publish = defineCheck({
75
75
  checkId: "publish",
76
76
  dependsOn: [compile.checkId],
77
77
  displayName: "Publish",
78
- execution() {
78
+ execute() {
79
79
  executionOrder.push("publish");
80
80
  return { status: "passed", data: {} };
81
81
  }
@@ -132,11 +132,11 @@ custom `decide(context)` 可通过 `context.measurement` 读取当前 decision b
132
132
  - `measurementCount` 是当前已捕获 action observation 的数量。
133
133
  - `measurementAt(index)` 只读取这个 context 冻结的 prefix;`0 <= index < measurementCount` 之外返回 `undefined`。每项说明上一次 accepted `select` 或 `wait` 后的 effects 与 interval,不声明某个 action 导致了时长、critical path 或 CPU 使用。
134
134
 
135
- 用它在**在线选择**时比较当前累计事实;不要把它当作完整逐 Task 历史或终态报告。需要 Run 结束后的完整 graph、settled tasks 与 raw measurement,改用下面的 `scheduler.measurementHooks`;prepared strategy 的 `complete` 同样只在有 terminal measurement 时运行。
135
+ 用它在**在线选择**时比较当前累计事实;不要把它当作完整逐 Task 历史或终态报告。需要 Run 结束后的完整 graph、settled tasks 与 raw measurement,改用下面的 `scheduler.terminalEffects`;prepared strategy 的 `terminalEffect` 同样只在有 terminal measurement 时运行。
136
136
 
137
137
  ## 已准备的 custom strategy
138
138
 
139
- 需要在 Scheduler 开始前异步读取调用方自己的配置,并把结果形成本 Run 专用 decision closure 时,使用 `{ kind: "prepared", prepare }`。每个 graph-ready Run 最多调用一次 `prepare`;它返回同步 `decide` 和可选的 `complete(terminal)`。下例优先选择可准入的 `second`,否则选择第一个可准入候选,并在 `complete` 中保存终态任务计数:
139
+ 需要在 Scheduler 开始前异步读取调用方自己的配置,并把结果形成本 Run 专用 decision closure 时,使用 `{ kind: "prepared", prepare }`。每个 graph-ready Run 最多调用一次 `prepare`;它返回同步 `decide` 和可选的 `terminalEffect(terminal)`。下例优先选择可准入的 `second`,否则选择第一个可准入候选,并在 `terminalEffect` 中保存终态任务计数:
140
140
 
141
141
  ```ts
142
142
  import { defineAdmissionPolicy, defineCheck, defineConfig, run } from "@zxyycom/vibe-check";
@@ -147,7 +147,7 @@ function scheduledCheck(checkId: string) {
147
147
  return defineCheck({
148
148
  checkId,
149
149
  displayName: checkId,
150
- execution: () => ({ status: "passed" as const, data: {} })
150
+ execute: () => ({ status: "passed" as const, data: {} })
151
151
  });
152
152
  }
153
153
 
@@ -167,7 +167,7 @@ const strategy = defineAdmissionPolicy({
167
167
  ? { kind: "wait" as const }
168
168
  : { kind: "select" as const, taskId: next.taskId };
169
169
  },
170
- complete(terminal) {
170
+ terminalEffect(terminal) {
171
171
  settledTaskCount = terminal.execution.settledTasks.length;
172
172
  }
173
173
  };
@@ -193,13 +193,13 @@ if (result.kind !== "completed" || settledTaskCount !== 2) {
193
193
 
194
194
  策略需要的配置、logger 或 clock 由调用方提供并捕获在 closure 中;context 只提供调度事实,真实 Task 启动与结算由 Scheduler 控制。准备失败与终态收尾边界如下。
195
195
 
196
- ### 观察终态 measurement
196
+ ### 交付终态 measurement
197
197
 
198
- 任何 scheduler policy 都可配置 `scheduler.measurementHooks`。每个 hook 在 Scheduler 已有 terminal measurement 后收到冻结的 `{ graph, execution, rawMeasurement }`;它适合调用方自己的统计、记录或后续处理,不能修改 Task、Check facts、aggregate 或选择历史。若同时配置 generic hook 与 prepared `complete`,generic hooks 先结算,随后才调用 `complete`。如果任一 hook 或 `complete` 抛错或 reject,`result.outputs.measurementHooks.status` 为 `failed`;Check facts 不变,原本正常完成的 Run 可映射为 `kind: "output"`,已有 `cancelled` / `execution` 主结果保持不变。
198
+ 任何 scheduler policy 都可配置 `scheduler.terminalEffects`。每个 effect 在 Scheduler 已有 terminal measurement 后收到冻结的 `{ graph, execution, rawMeasurement }`;它适合调用方自己的统计、记录或后续处理,不能修改 Task、Check facts、aggregate 或选择历史。若同时配置 Definition effect 与 prepared `terminalEffect`,Definition effects 先结算,随后才调用 `terminalEffect`。如果任一 effect 或 `terminalEffect` 抛错或 reject,`result.outputs.terminalEffects.status` 为 `failed`;Check facts 不变,原本正常完成的 Run 可映射为 `kind: "output"`,已有 `cancelled` / `execution` 主结果保持不变。
199
199
 
200
- 终态 measurement 不同于 `decide` 所读 `context.measurement` 的在线观察前缀。需要逐项业务数据、失败原因或 Records 时,在 Check 的 `execution` 中形成事实,再从 `RunResult` 读取。
200
+ 终态 measurement 不同于 `decide` 所读 `context.measurement` 的在线观察前缀。需要逐项业务数据、失败原因或 Records 时,在 Check 的 `execute` 中形成事实,再从 `RunResult` 读取。
201
201
 
202
- `prepare` 只在 graph 已有效且 Run 尚未于 pre-work / planning 取消后调用;它没有 cancellation signal、timeout 或“必有 complete”的 cleanup 保证。prepare reject 会结束为 `admission-strategy-preparation-failed`。一旦 Run 进入 Scheduler,正常结束、取消或 policy fault 的 drain 只要 seal 出 terminal measurement,都会在 generic hooks 后调用 `complete`;早期 setup / execution failure 没有 terminal measurement 时不会调用它。因此不要在 `prepare` 中取得必须依赖 `complete` 释放的资源。
202
+ `prepare` 只在 graph 已有效且 Run 尚未于 pre-work / planning 取消后调用;它没有 cancellation signal、timeout 或“必有 terminalEffect”的 cleanup 保证。prepare reject 会结束为 `admission-strategy-preparation-failed`。一旦 Run 进入 Scheduler,正常结束、取消或 policy fault 的 drain 只要 seal 出 terminal measurement,都会在 Definition effects 后调用 `terminalEffect`;早期 setup / execution failure 没有 terminal measurement 时不会调用它。因此不要在 `prepare` 中取得必须依赖 `terminalEffect` 释放的资源。
203
203
 
204
204
  保存后续 Run 会使用的 caller-owned data 时,先根据自己的目标定义“可接受样本”。`rawMeasurement.timing.availability === "available"` 只证明终态 timing facts 可读,不证明 Run quality 成功;`settledTasks.kind === "completed"` 是 Scheduler settlement,不等于 Check `passed`,且 context 不提供 `RunResult.kind`。若业务只允许成功 Run,先暂存候选,在 `run(...)` 返回后同时核对 `result.kind` 与业务要求的 Check outcomes 或 aggregate,再决定是否提交。`kind: "completed"` 本身不表示质量检查全部通过。
205
205
 
package/docs/output.md CHANGED
@@ -31,8 +31,9 @@ Check-local parser。
31
31
  也启用,二者共享该 instant。两项 output 都禁用时,Run 不读取或序列化 wall clock。每个 Check row 包含
32
32
  `checkId`、`displayName` 和一种 terminal outcome:`passed` / `failed` 带 object-shaped final `data`;
33
33
  `not-applicable` / `unavailable` 带受控 reason,前者可以省略 reason。Aggregation、所有 Run output status 与
34
- diagnostic channel files、duration、author terminal messages、Product-captured Check console messages、visibility 和
35
- progress presentation 不属于 machine fields。
34
+ diagnostic channel files、duration、author terminal messages、Product-captured Check console messages、
35
+ `omitQuietPassedRow` 人读呈现策略和 progress presentation 不属于 machine fields。quiet-pass row 的省略、
36
+ 无编号格式及 configured/actual 计数都不改变 terminal Check facts 或 v4 publication。
36
37
 
37
38
  每个 `records.ndjson` row 的结构是:
38
39
 
@@ -63,7 +64,7 @@ canonical replacement 已发生后的 handled failure 会清理可能混合的 c
63
64
 
64
65
  两个 canonical files 是独立 filesystem paths,rename 不提供跨路径原子可见性。并发 reader 可能观察到 mixed
65
66
  generation,因此必须按完整集合执行 fingerprint validation;需要 generation pointer、reader lock 或跨路径 atomic
66
- visibility 的系统,应在 Vibe Check 契约之外建立自己的读取协议。
67
+ 原子可见性的系统,应在 Vibe Check 契约之外建立自己的读取协议。
67
68
 
68
69
  ## 随包材料与版本
69
70
 
@@ -78,9 +79,9 @@ visibility 的系统,应在 Vibe Check 契约之外建立自己的读取协议
78
79
 
79
80
  示例的输入与结果可按三条路径核对:
80
81
 
81
- - `jsonValidation` 显式检查 `package.json`,保留默认 source/exclude;自定义 provider 在空 authored files 时以 preflight fallback 继续并通过。
82
+ - `jsonValidation` 显式检查 `package.json`,保留默认 source/exclude;自定义 provider 在空 authored files 时以 preparation fallback 继续并通过。
82
83
  - 递归 workflow 继承 manifest dependency;policy 用 `inherit` 追加 provider,解析两份 upstream data,再形成 failed data 与两条 Records。container 不产生 Check row。
83
- - 另两项分别直接 `not-applicable` 与被本项 preflight block 为 `unavailable`,不阻挡无 relation 的其它 Check。preflight 和 policy messages 仅进入 `RunResult.checkMessages`。
84
+ - 另两项分别直接 `not-applicable` 与被本项 preparation block 为 `unavailable`,不阻挡无 relation 的其它 Check。preparation 和 policy messages 仅进入 `RunResult.checkMessages`。
84
85
 
85
86
  checked-in outputs 在只含有效 `package.json` 的隔离 root 中执行该 Definition 后生成,仅把 invocation ID 与 timestamp 固定为文档值。直接 `run(definition)` 会根据你的实际 `package.json` 形成结果和本次 metadata,并更新 project root 下 `artifacts/vibe-check` 中的两份 canonical files;示例 facts 不是对任意项目结果的保证。
86
87
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zxyycom/vibe-check",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "通用 TypeScript 质量门禁工具,提供可组合 Check、类型安全 API 和结构化结果。",
5
5
  "keywords": [
6
6
  "quality-gate",
@@ -49,6 +49,7 @@
49
49
  "github-slugger": "2.0.0",
50
50
  "immutable": "5.1.9",
51
51
  "jscpd": "^5.1.1",
52
+ "markdownlint": "0.41.1",
52
53
  "mdast-util-from-markdown": "2.0.3",
53
54
  "mdast-util-frontmatter": "2.0.1",
54
55
  "mdast-util-gfm": "3.1.0",