@dommaker/harness 1.8.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +10 -13
  3. package/dist/cli/commands/check.d.ts +3 -3
  4. package/dist/cli/commands/check.d.ts.map +1 -1
  5. package/dist/cli/commands/check.js +41 -78
  6. package/dist/cli/commands/check.js.map +1 -1
  7. package/dist/cli/commands/constraints-report.d.ts +2 -10
  8. package/dist/cli/commands/constraints-report.d.ts.map +1 -1
  9. package/dist/cli/commands/constraints-report.js +4 -57
  10. package/dist/cli/commands/constraints-report.js.map +1 -1
  11. package/dist/cli/commands/constraints-retire.d.ts +9 -23
  12. package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
  13. package/dist/cli/commands/constraints-retire.js +39 -121
  14. package/dist/cli/commands/constraints-retire.js.map +1 -1
  15. package/dist/cli/commands/constraints.d.ts +3 -8
  16. package/dist/cli/commands/constraints.d.ts.map +1 -1
  17. package/dist/cli/commands/constraints.js +8 -23
  18. package/dist/cli/commands/constraints.js.map +1 -1
  19. package/dist/cli/commands/definitions.js +2 -2
  20. package/dist/cli/commands/init.d.ts +0 -32
  21. package/dist/cli/commands/init.d.ts.map +1 -1
  22. package/dist/cli/commands/init.js +7 -149
  23. package/dist/cli/commands/init.js.map +1 -1
  24. package/dist/cli/commands/report.d.ts.map +1 -1
  25. package/dist/cli/commands/report.js +14 -17
  26. package/dist/cli/commands/report.js.map +1 -1
  27. package/dist/cli/commands/scaffold-templates.d.ts +0 -2
  28. package/dist/cli/commands/scaffold-templates.d.ts.map +1 -1
  29. package/dist/cli/commands/scaffold-templates.js +2 -37
  30. package/dist/cli/commands/scaffold-templates.js.map +1 -1
  31. package/dist/cli/commands/scaffold.d.ts +0 -2
  32. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  33. package/dist/cli/commands/scaffold.js +0 -10
  34. package/dist/cli/commands/scaffold.js.map +1 -1
  35. package/dist/cli/commands/status.js +10 -10
  36. package/dist/cli/commands/status.js.map +1 -1
  37. package/dist/cli/commands/sync-docs/agents-syncer.d.ts +0 -2
  38. package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
  39. package/dist/cli/commands/sync-docs/agents-syncer.js +4 -23
  40. package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
  41. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +22 -0
  42. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
  43. package/dist/cli/commands/sync-docs/capabilities-syncer.js +113 -8
  44. package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
  45. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
  46. package/dist/cli/commands/sync-docs/index.js +36 -4
  47. package/dist/cli/commands/sync-docs/index.js.map +1 -1
  48. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  49. package/dist/core/constraints/capabilities-parser.js +16 -4
  50. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  51. package/dist/core/constraints/checker.d.ts +15 -24
  52. package/dist/core/constraints/checker.d.ts.map +1 -1
  53. package/dist/core/constraints/checker.js +33 -72
  54. package/dist/core/constraints/checker.js.map +1 -1
  55. package/dist/core/constraints/checkers/docs-freshness.js +1 -1
  56. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
  57. package/dist/core/constraints/checkers/governance-presence.d.ts +2 -1
  58. package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
  59. package/dist/core/constraints/checkers/governance-presence.js +4 -3
  60. package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
  61. package/dist/core/constraints/checkers/index.d.ts +1 -1
  62. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  63. package/dist/core/constraints/checkers/index.js +4 -8
  64. package/dist/core/constraints/checkers/index.js.map +1 -1
  65. package/dist/core/constraints/checkers/iron-flags.d.ts +3 -4
  66. package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
  67. package/dist/core/constraints/checkers/iron-flags.js +4 -5
  68. package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
  69. package/dist/core/constraints/checkers/no-test-simplification.js +1 -1
  70. package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
  71. package/dist/core/constraints/checkers/types.d.ts +1 -1
  72. package/dist/core/constraints/checkers/types.js +1 -1
  73. package/dist/core/constraints/definitions/guidelines.d.ts +4 -4
  74. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  75. package/dist/core/constraints/definitions/guidelines.js +9 -25
  76. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  77. package/dist/core/constraints/definitions/iron-laws.d.ts +4 -4
  78. package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
  79. package/dist/core/constraints/definitions/iron-laws.js +10 -81
  80. package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
  81. package/dist/core/constraints/definitions.d.ts +7 -9
  82. package/dist/core/constraints/definitions.d.ts.map +1 -1
  83. package/dist/core/constraints/definitions.js +13 -16
  84. package/dist/core/constraints/definitions.js.map +1 -1
  85. package/dist/core/constraints/index.d.ts +2 -5
  86. package/dist/core/constraints/index.d.ts.map +1 -1
  87. package/dist/core/constraints/index.js +3 -13
  88. package/dist/core/constraints/index.js.map +1 -1
  89. package/dist/core/constraints/injection-writer.d.ts +10 -38
  90. package/dist/core/constraints/injection-writer.d.ts.map +1 -1
  91. package/dist/core/constraints/injection-writer.js +17 -54
  92. package/dist/core/constraints/injection-writer.js.map +1 -1
  93. package/dist/core/constraints/run-env.d.ts +1 -10
  94. package/dist/core/constraints/run-env.d.ts.map +1 -1
  95. package/dist/core/constraints/run-env.js +1 -22
  96. package/dist/core/constraints/run-env.js.map +1 -1
  97. package/dist/core/constraints/usage-report.d.ts +5 -7
  98. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  99. package/dist/core/constraints/usage-report.js +5 -10
  100. package/dist/core/constraints/usage-report.js.map +1 -1
  101. package/dist/core/effective-constraints.d.ts +12 -22
  102. package/dist/core/effective-constraints.d.ts.map +1 -1
  103. package/dist/core/effective-constraints.js +13 -30
  104. package/dist/core/effective-constraints.js.map +1 -1
  105. package/dist/core/index.d.ts +2 -2
  106. package/dist/core/index.d.ts.map +1 -1
  107. package/dist/core/index.js +3 -9
  108. package/dist/core/index.js.map +1 -1
  109. package/dist/core/project-config-loader.d.ts +4 -42
  110. package/dist/core/project-config-loader.d.ts.map +1 -1
  111. package/dist/core/project-config-loader.js +16 -125
  112. package/dist/core/project-config-loader.js.map +1 -1
  113. package/dist/core/validators/passes-gate.d.ts +2 -2
  114. package/dist/core/validators/passes-gate.js +6 -6
  115. package/dist/core/validators/passes-gate.js.map +1 -1
  116. package/dist/hooks/bootstrap.d.ts +9 -12
  117. package/dist/hooks/bootstrap.d.ts.map +1 -1
  118. package/dist/hooks/bootstrap.js +9 -31
  119. package/dist/hooks/bootstrap.js.map +1 -1
  120. package/dist/hooks/index.d.ts +5 -7
  121. package/dist/hooks/index.d.ts.map +1 -1
  122. package/dist/hooks/index.js +4 -10
  123. package/dist/hooks/index.js.map +1 -1
  124. package/dist/index.d.ts +9 -12
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +10 -23
  127. package/dist/index.js.map +1 -1
  128. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  129. package/dist/monitoring/trace-analyzer.js +11 -12
  130. package/dist/monitoring/trace-analyzer.js.map +1 -1
  131. package/dist/monitoring/traces.d.ts +4 -4
  132. package/dist/monitoring/traces.d.ts.map +1 -1
  133. package/dist/monitoring/traces.js +8 -8
  134. package/dist/monitoring/traces.js.map +1 -1
  135. package/dist/presets/standard.d.ts +8 -10
  136. package/dist/presets/standard.d.ts.map +1 -1
  137. package/dist/presets/standard.js +10 -16
  138. package/dist/presets/standard.js.map +1 -1
  139. package/dist/types/constraint.d.ts +24 -35
  140. package/dist/types/constraint.d.ts.map +1 -1
  141. package/dist/types/constraint.js +8 -7
  142. package/dist/types/constraint.js.map +1 -1
  143. package/dist/types/passes-gate.d.ts +5 -5
  144. package/dist/types/passes-gate.d.ts.map +1 -1
  145. package/dist/types/project-config.d.ts +8 -66
  146. package/dist/types/project-config.d.ts.map +1 -1
  147. package/dist/types/project-config.js +3 -2
  148. package/dist/types/project-config.js.map +1 -1
  149. package/dist/types/trace.d.ts +8 -10
  150. package/dist/types/trace.d.ts.map +1 -1
  151. package/package.json +2 -2
  152. package/src/CONTEXT.md +3 -3
  153. package/src/__tests__/checker-extra.test.ts +37 -61
  154. package/src/__tests__/checker.test.ts +10 -115
  155. package/src/__tests__/effective-constraints.test.ts +18 -83
  156. package/src/__tests__/iron-laws.test.ts +71 -90
  157. package/src/__tests__/passes-gate-check.test.ts +2 -2
  158. package/src/__tests__/project-config-loader-extra.test.ts +22 -123
  159. package/src/__tests__/project-config-loader.test.ts +5 -33
  160. package/src/__tests__/public-exports.test.ts +31 -11
  161. package/src/__tests__/public-type-surface.test.ts +2 -13
  162. package/src/__tests__/public-value-surface.test.ts +1 -7
  163. package/src/__tests__/skip-semantics.test.ts +21 -37
  164. package/src/__tests__/trace-analyzer-extra.test.ts +14 -14
  165. package/src/__tests__/trace-analyzer.test.ts +21 -21
  166. package/src/__tests__/trace-collector.test.ts +22 -22
  167. package/src/__tests__/traces.test.ts +27 -28
  168. package/src/cli/commands/CONTEXT.md +12 -9
  169. package/src/cli/commands/__tests__/check-read-count.test.ts +4 -15
  170. package/src/cli/commands/__tests__/check-skip-output.test.ts +14 -14
  171. package/src/cli/commands/__tests__/check.test.ts +14 -31
  172. package/src/cli/commands/__tests__/constraints-report.test.ts +12 -80
  173. package/src/cli/commands/__tests__/constraints-retire.test.ts +42 -231
  174. package/src/cli/commands/__tests__/init-governance-io.test.ts +12 -58
  175. package/src/cli/commands/__tests__/init-ondisk.test.ts +12 -20
  176. package/src/cli/commands/__tests__/init.test.ts +0 -11
  177. package/src/cli/commands/__tests__/project-path-anchoring.test.ts +2 -2
  178. package/src/cli/commands/__tests__/registry.test.ts +39 -3
  179. package/src/cli/commands/__tests__/report-extra.test.ts +4 -4
  180. package/src/cli/commands/__tests__/report.test.ts +1 -1
  181. package/src/cli/commands/__tests__/scaffold.test.ts +4 -14
  182. package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +3 -3
  183. package/src/cli/commands/__tests__/status-extra.test.ts +14 -14
  184. package/src/cli/commands/__tests__/status.test.ts +12 -12
  185. package/src/cli/commands/__tests__/sync-docs-agents.test.ts +1 -1
  186. package/src/cli/commands/__tests__/sync-docs-table-layout.test.ts +259 -0
  187. package/src/cli/commands/check.ts +43 -82
  188. package/src/cli/commands/constraints-report.ts +4 -59
  189. package/src/cli/commands/constraints-retire.ts +49 -154
  190. package/src/cli/commands/constraints.ts +11 -26
  191. package/src/cli/commands/definitions.ts +2 -2
  192. package/src/cli/commands/init.ts +8 -179
  193. package/src/cli/commands/report.ts +19 -23
  194. package/src/cli/commands/scaffold-templates.ts +1 -37
  195. package/src/cli/commands/scaffold.ts +0 -11
  196. package/src/cli/commands/status.ts +10 -10
  197. package/src/cli/commands/sync-docs/agents-syncer.ts +4 -25
  198. package/src/cli/commands/sync-docs/capabilities-syncer.ts +139 -9
  199. package/src/cli/commands/sync-docs/index.ts +41 -4
  200. package/src/core/CONTEXT.md +9 -9
  201. package/src/core/constraints/__tests__/capability-counts.test.ts +5 -5
  202. package/src/core/constraints/__tests__/collect-constraints.test.ts +13 -8
  203. package/src/core/constraints/__tests__/git-evidence.test.ts +4 -7
  204. package/src/core/constraints/__tests__/injection-writer.test.ts +8 -61
  205. package/src/core/constraints/__tests__/run-env.test.ts +5 -34
  206. package/src/core/constraints/__tests__/trace-injection.test.ts +1 -1
  207. package/src/core/constraints/capabilities-parser.ts +17 -5
  208. package/src/core/constraints/checker.ts +39 -88
  209. package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +5 -8
  210. package/src/core/constraints/checkers/__tests__/governance-presence.test.ts +1 -53
  211. package/src/core/constraints/checkers/__tests__/iron-flags.test.ts +5 -25
  212. package/src/core/constraints/checkers/docs-freshness.ts +1 -1
  213. package/src/core/constraints/checkers/governance-presence.ts +4 -3
  214. package/src/core/constraints/checkers/index.ts +4 -10
  215. package/src/core/constraints/checkers/iron-flags.ts +3 -12
  216. package/src/core/constraints/checkers/no-test-simplification.ts +1 -1
  217. package/src/core/constraints/checkers/types.ts +1 -1
  218. package/src/core/constraints/definitions/guidelines.ts +8 -25
  219. package/src/core/constraints/definitions/iron-laws.ts +9 -82
  220. package/src/core/constraints/definitions.ts +14 -15
  221. package/src/core/constraints/index.ts +4 -19
  222. package/src/core/constraints/injection-writer.ts +16 -61
  223. package/src/core/constraints/run-env.ts +1 -33
  224. package/src/core/constraints/usage-report.ts +8 -15
  225. package/src/core/effective-constraints.ts +14 -45
  226. package/src/core/index.ts +3 -10
  227. package/src/core/project-config-loader.ts +20 -145
  228. package/src/core/validators/passes-gate.ts +6 -6
  229. package/src/failure/CONTEXT.md +1 -1
  230. package/src/hooks/CONTEXT.md +12 -22
  231. package/src/hooks/__tests__/bootstrap.test.ts +24 -75
  232. package/src/hooks/bootstrap.ts +9 -48
  233. package/src/hooks/index.ts +5 -20
  234. package/src/index.ts +9 -31
  235. package/src/monitoring/__tests__/trace-file-anchoring.test.ts +1 -1
  236. package/src/monitoring/__tests__/traces.test.ts +22 -22
  237. package/src/monitoring/trace-analyzer.ts +12 -13
  238. package/src/monitoring/traces.ts +8 -8
  239. package/src/presets/__tests__/standard.test.ts +12 -16
  240. package/src/presets/standard.ts +14 -23
  241. package/src/types/__tests__/types.test.ts +3 -3
  242. package/src/types/constraint.ts +26 -40
  243. package/src/types/passes-gate.ts +5 -5
  244. package/src/types/project-config.ts +8 -77
  245. package/src/types/trace.ts +8 -11
  246. package/dist/core/constraints/agent-prompt-renderer.d.ts +0 -32
  247. package/dist/core/constraints/agent-prompt-renderer.d.ts.map +0 -1
  248. package/dist/core/constraints/agent-prompt-renderer.js +0 -55
  249. package/dist/core/constraints/agent-prompt-renderer.js.map +0 -1
  250. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +0 -6
  251. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +0 -1
  252. package/dist/core/constraints/checkers/no-bypass-checkpoint.js +0 -40
  253. package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +0 -1
  254. package/dist/core/constraints/definitions/prompts.d.ts +0 -12
  255. package/dist/core/constraints/definitions/prompts.d.ts.map +0 -1
  256. package/dist/core/constraints/definitions/prompts.js +0 -400
  257. package/dist/core/constraints/definitions/prompts.js.map +0 -1
  258. package/dist/core/constraints/injection-drift.d.ts +0 -61
  259. package/dist/core/constraints/injection-drift.d.ts.map +0 -1
  260. package/dist/core/constraints/injection-drift.js +0 -131
  261. package/dist/core/constraints/injection-drift.js.map +0 -1
  262. package/dist/core/constraints/injection-renderer.d.ts +0 -23
  263. package/dist/core/constraints/injection-renderer.d.ts.map +0 -1
  264. package/dist/core/constraints/injection-renderer.js +0 -44
  265. package/dist/core/constraints/injection-renderer.js.map +0 -1
  266. package/dist/hooks/config.d.ts +0 -30
  267. package/dist/hooks/config.d.ts.map +0 -1
  268. package/dist/hooks/config.js +0 -34
  269. package/dist/hooks/config.js.map +0 -1
  270. package/dist/hooks/pipeline.d.ts +0 -54
  271. package/dist/hooks/pipeline.d.ts.map +0 -1
  272. package/dist/hooks/pipeline.js +0 -173
  273. package/dist/hooks/pipeline.js.map +0 -1
  274. package/dist/hooks/registry.d.ts +0 -70
  275. package/dist/hooks/registry.d.ts.map +0 -1
  276. package/dist/hooks/registry.js +0 -141
  277. package/dist/hooks/registry.js.map +0 -1
  278. package/dist/hooks/types.d.ts +0 -113
  279. package/dist/hooks/types.d.ts.map +0 -1
  280. package/dist/hooks/types.js +0 -9
  281. package/dist/hooks/types.js.map +0 -1
  282. package/src/__tests__/hooks-pipeline.test.ts +0 -201
  283. package/src/cli/commands/__tests__/check-drift.test.ts +0 -158
  284. package/src/cli/commands/__tests__/init-injection.test.ts +0 -466
  285. package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +0 -129
  286. package/src/core/constraints/__tests__/injection-drift.test.ts +0 -247
  287. package/src/core/constraints/agent-prompt-renderer.ts +0 -67
  288. package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +0 -76
  289. package/src/core/constraints/checkers/no-bypass-checkpoint.ts +0 -40
  290. package/src/core/constraints/definitions/prompts.ts +0 -414
  291. package/src/core/constraints/injection-drift.ts +0 -142
  292. package/src/core/constraints/injection-renderer.ts +0 -44
  293. package/src/hooks/__tests__/config.test.ts +0 -19
  294. package/src/hooks/__tests__/pipeline.test.ts +0 -195
  295. package/src/hooks/__tests__/registry.test.ts +0 -115
  296. package/src/hooks/config.ts +0 -33
  297. package/src/hooks/pipeline.ts +0 -202
  298. package/src/hooks/registry.ts +0 -166
  299. package/src/hooks/types.ts +0 -120
package/CHANGELOG.md CHANGED
@@ -6,6 +6,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.10.0] - 2026-09-20
10
+
11
+ ### Changes
12
+ - refactor(constraints)!: 删 kind=prompt/promptInjection 面,severity 显式化,文本注入层关停(studio#605)
13
+ - chore(constraints): 内置注入规则瘦身——删除 11 条冗余/矛盾/不可执行文本规则
14
+
15
+ ## [1.9.0] - 2026-09-20
16
+
17
+ ### BREAKING
18
+ 记账口径 = ADR-0022 追记(breaking 落 master 即记,避免下次发版无据);发布级别 = 下一个 **minor**(ADR-0027 决策 2,沿用 ADR-0022「breaking 内容按 minor 号发布」先例,不进 major):
19
+ - **#170**(ADR-0027):包根公开面删除 hooks 管线——值符号 `HookRegistry` / `HookPipeline` / `assertHookRegistryClosed` / `toErrorStrategy` 四个 + 类型 `HookDefinition` / `HookConfig` / `EffectiveHook` / `HookErrorStrategy` / `HookExecutionRecord` / `HookPhase` / `HookResult` / `PipelineResult` 八个;`HarnessBootstrap` 收缩 `hooks` / `pipeline` 两字段、`bootstrapHarness` / `bootstrapHarnessSync` 收缩 `hookDefinitions` / `hookConfigs` 两参数。迁移路径 = 删引用。保留面只有 `bootstrapHarness` / `bootstrapHarnessSync` / `HarnessBootstrap` 三符号。
20
+ ### Changes
21
+ - refactor(hooks)!: hooks 管线面整体删除——`src/hooks/{registry,pipeline,config,types}.ts` 四文件连同公共面 12 个符号一并退场,`src/hooks/` 只剩 bootstrap 组合根(#170,执行票;裁决 = #169 三项人类裁定 2026-09-17,记 ADR-0027:①范围整体删(只删 `runOne` 被否——会留下零消费者的注册闭环,日后还要再开一刀)②minor 同车 ③hooks 管线不算 harness 独立供给)——原委:#167 的 `runOne` 随 1.8.1 发布当日其唯一需求方消失,studio#562 裁决 studio hooks 层整体删除;双仓事实核查(ADR-0027)——harness 内部四符号仅在 `src/index.ts` 被 re-export,CLI/bin/其余 src 零调用方;studio 侧消费全部位于已删的 hooks 层(本票开工前实测:`packages`/`apps`/`scripts` 对 `HookRegistry` / `HookPipeline` / `assertHookRegistryClosed` / `toErrorStrategy` / `HookConfig` 零命中,studio-shared `runtime/bootstrap.ts` 只剩初始化)。落地:`src/hooks/index.ts` barrel 收为 bootstrap 三符号;`src/index.ts` 导出段(原「Hooks 管线」)随之收缩并改标为运行环境引导;`bootstrap.ts` 删 `HookRegistry` / `HookPipeline` 装配与 `registerInitialHooks`(含 #159「给定义不给 `HookConfig` 声明表即抛错」闸——声明表语义随管线面一同消失)、`HarnessBootstrap` 返回值由 6 字段减为 4。**消费方影响单列**:bootstrap 唯一生产调用方(studio,经 studio-shared)为**无参调用且不访问被删字段**,因此零迁移成本、编译不受影响(已核 `HarnessBootstrap` 在 studio-shared 仅作类型持有/转发);`./hooks` 从来不在 `package.json` 的 `exports` 内,除包根外无第二个入口需清。**对外行为变化**(**breaking**,定级细节见上「BREAKING」节):包根删 4 值符号 + 8 类型、`HarnessBootstrap` 形状变更、`bootstrapHarness*` 减两形参。测试:三道公共面冻结闸条目同步——`public-exports.test.ts` 摘 4 个值符号并新增两条 **barrel 源形状负钉**(钉 12 个已删符号名不再出现于 `src/hooks/index.ts` 与 `src/index.ts`;与两道全量清单闸的分工是「回灌时红名直接指到 barrel,不必从清单 diff 反推」,`export *` 已被 `sub-barrels-explicit.test.ts` 禁到 src 下全部目录 barrel,故 barrel 源形状即全可达面)、`public-type-surface.test.ts` 包根类型清单摘 8 项、`public-value-surface.test.ts` 零改动(hooks 不住子路径入口,实测改动前后均绿);`src/hooks/__tests__/{registry,pipeline,config}.test.ts` 与 `src/__tests__/hooks-pipeline.test.ts` 四文件随迁删除;`bootstrap.test.ts` 改写为新形状(返回值键集合逐字冻结 `['checker','mergedConstraints','projectPath','sessions']` + 已删 `hooks` / `pipeline` 两字段 `@ts-expect-error` 编译期钉,照 ADR-0022 对 AC-007 的双钉手法)。**先红后绿**:闸与测试先改、源码后删,改完测试即 4 项红(`public-type-surface` 清单多出 8 项、`public-exports` 运行时键集合与两条 barrel 钉、`bootstrap.test.ts` 套件 TS2578 不可运行),删码后复绿;`layering.test.ts` 的 `hooks` 下行许可集合按上界语义不动(bootstrap 组合根本就装配 context/core/monitoring,实际依赖面收窄不报)。文档:`src/hooks/CONTEXT.md` 改写为 bootstrap 单面口径(管线面四导出、闭环与映射约定、'ignore' 收敛史全部撤下,只留「要重开须先按 ADR-0022 判据重新裁决」的指路);`src/CONTEXT.md` 术语「插件」行摘掉 hook 一族;`CAPABILITIES.md` 的 `## Hooks` 段换为 `## Runtime Bootstrap`;`README.md` 核心能力表的「Hook 管线」行换为「运行环境引导」行(同一能力表的既有陈旧行「上下文/监控 = …会话压缩…」属 ADR-0022 那车漏改,本票未动);`CLAUDE.md` 架构表 `src/hooks/` 行与「Hook 声明与实现必须注册表闭环」约定条改写为删除裁决记录(后者属手写治理段,改动理由与出处随本条留痕);`docs/adr/0002-registry-closed-loop.md` 按该文件自己的先例(2026-09-15 门禁侧收缩时在状态行加「部分失效」注记 + 文末「后续变更」节)补 hook 侧同形状注记与「后续变更(2026-09-18)」节——**状态行与追加节是活文档,正文既有条目一字未改**。纯历史快照(`docs/public-exports-review.md`、`docs/2026-08-*` 研究报告、`.scratch/`、既有 ADR 正文)按 ADR-0022 决策 4「不回改历史快照」口径未动。验收:`npm test` 全量 **184 套件 / 2630 passed / 6 skipped**、`npx jest --coverage --no-cache` 全局 **95.53% stmts**(较 CHANGELOG 上一条记录的 95.4% 不降;branches 84.58、functions 82.65、lines 96.36)、`tsc --noEmit` 与 `eslint src` 零错、`npm run build` 绿且产物面实测——`require('./dist/index.js')` 对 12 个已删符号零命中、`bootstrapHarnessSync.length === 1`、`dist/index.d.ts` 零 `Hook*` 类型、`node bin/harness.js check` 通过(铁律 3/3、指导原则 3/3)、`sync-docs --check` 零内容漂移。
22
+ - fix(sync-docs): 撤下模块登记时整行删除 + 表格排版收拢正本(#171)——原缺陷:`capabilities-syncer.ts` 删幽灵行用 `content.replace(/^\|…$/gm, '')`,`m` 下 `^…$` 只框住行内容、**不含行尾换行**,删完在表格中间留一个空行;CommonMark 以空行断表,于是每撤一次登记就把一张能力表多切一刀(studio 存量实测 40 处表格内空行)。同函数末尾既有的 `\n{3,}→\n\n` 够不着——删一行只产两个换行。落地:① 删除改按行 split/filter/join,行尾随之消失(CRLF 由行内正则尾部 `\r?` 保持与旧 `m` 相同的匹配面);② 新增排版收拢正本 `normalizeCapabilitiesTableLayout(content)`(模块内导出,不进包公共面)——规则①删两侧都是表格行的空行段、规则②收掉无数据行的表头+分隔行,**表格外的段落空行不动**、**围栏代码块(``` / ~~~)内的行在收拢一侧整体豁免**(CAPABILITIES.md 是手写文档,块内「表头+分隔行」示例按②会被判空表并删掉正文:实测一块 8 行正文被收成 6 行,`--check` 还为此判红),且两条规则**跑到不动点**——规则互相制造触发点(①吃掉两张空表之间那个空行后,②在同一轮只收得掉后一张),不迭代就一次收不干净、`--check` 修完仍红(实测需两轮);③ 收拢排在增删**之后**(先收拢会误删「本轮要往空表里补新行」的表头),而既有的一处 `\n{3,}→\n\n` 折叠由「增删之后」移到**收拢之后**并删去增删分支内的重复折叠(收掉一张夹在两段散文之间的空表本身会新产 `\n\n\n`);④ 幽灵行删除一侧**刻意不认围栏**,与收拢一侧口径故意不同:登记条目由 `core/constraints/capabilities-parser` 全文扫描得出(ADR-0009),围栏内的行同样算登记项——只让删除豁免围栏,块内示例引用的已删文件会永远报成幽灵条目且 `--check` 修不掉(实测该半改法令收敛闸转红);两侧同认围栏属改 ADR-0009 登记面并连带影响 docs_freshness 判定,另票裁决。⑤ `--check` 与写模式共用同一正本,判定面 = 返回内容与入参是否不同,故 check 报得出、fix 必清得掉(ADR-0009「check/fix 同规则才收敛」口径,不重演 2026-08-04 studio PR #44 的永不收敛)。**对外行为变化 2 处**:① 写模式对含脏排版文件的产出由「保留空行」变为「收拢成连续表格行 + 收掉空表」(生成物排版);② `sync-docs --check` 判定面**收紧**——此前对表格排版脏行静默放过(issue 实测:手工清掉 39 处后 `--check` 仍 exit 0),现判红并在 reason 里点名空行数与空表张数;`--json` 加性新增 `summary.tableLayoutDirty` 与顶层 `tableLayout: {blankLines, emptyTables}`,命令语法、旗帜集合、退出码取值面、包公共导出面零变化。**定级待 ship 时人裁**:先例 = ADR-0025/#142 对 `sync-docs --check` 语义收紧标 `!`,本条同属该收紧面;差别在收紧后果一条命令即可自愈(写模式必清得掉,下游不必手改文档)。测试:`__tests__/sync-docs-table-layout.test.ts` 13 项——四种撤登形状(中间行/目录条目行/末行/CRLF)+ 存量脏行「check 判红 → 写模式收拢 → check 复绿」+ 空表连表头一起收掉 + 两张空表相邻一次收干净(不动点)+ 收拢后不留三连换行 + 围栏内示例行按幽灵行处理且 check 收敛(钉取舍的另一半)+ 四条反向闸(有新行不误删表头、表格外段落空行不动、代码块内空表不被收、代码块内表格样式行不被收拢)。**先红后绿**:上述四条新闸对 #171 的上一版实现(commit `16eaf2c`)逐条实测转红(两条代码块豁免闸分别报「空表 1 张」「表格内空行 1 处」),改码后复绿;收敛闸另经反证——把幽灵行删除改成认围栏即转红(块内示例成了永久幽灵条目),故还原为不豁免并留注释。**核实后判定不属本票的三项**:① 「`--check` 报了但写模式一次收不干净」与「收拢后残留三连换行」为 `16eaf2c` 实测真缺陷,本票修;② module 模式下整张表被收空后下一次写会走「无表格」分支自动补一整张目录表(与「目录条目需人工策划登记」冲突)——**非本票引入**:修复前的产物形状(幽灵行变空行、表头仍在)经 `parseCapabilitiesFiles` 同样解析为空集,实测两版行为一致,另票;③ 4 空格缩进代码块(无围栏标记)内的表格样式行仍会被收拢——缩进 ≥4 在 CommonMark 里与缩进表格本身歧义,现有豁免取保守侧(宁可不动),记录不修。端到端核实:临时 git 工程撤一个目录登记行 → `git diff` 为纯删行、表格内空行 0、复跑 `--check` exit 0;studio 真实 `CAPABILITIES.md` 过正本函数 → 40 处收为 0 处、幂等、非空行内容逐字保留,harness 自身 `CAPABILITIES.md` 判定不变(零误报);同类清空行写法全仓仅此一处站点(`--compact` 路径按下标 filter 删除,本就纯删行)。文档:`src/cli/commands/CONTEXT.md` 记 #171 条目(根因 + 判定与修复共用正本 + 代码块豁免理由)。验收:`npx jest` 全量 **185 套件 / 2643 passed / 6 skipped**、`tsc --noEmit` 与 `eslint src` 零错、`npm run build` 绿、`node bin/harness.js check` 铁律 3/3 + 指导原则 3/3、`sync-docs --check --agents` 零漂移;端到端另测「两张空表 + 一个待登记文件」形状一次 `sync-docs` 即收干净且复跑 `--check` exit 0(不动点前需两轮)。
23
+ - test(cli): `registry.test.ts` 的 knowledge 别名冒烟自带夹具库根——原缺陷:该用例 spawn 真实 bin 跑 `knowledge ls --json` 却**不隔离数据面**,读的是操作机的真实知识库(本机实测 221 条 / 1.35MB JSON),而 CI 全新 checkout 上该库为空——同一份断言两侧取数规模差三个数量级,只有大的一侧崩。2026-09-20 发版(1.9.0 前置 `env CI=true npm test`)即以此形状暴露:子进程 stdout 越过 `spawnSync` 缺省 1MB 缓冲后被 **ENOBUFS 杀掉**,`status` 变 `null`、stderr 一句解释都没有,报错看着像别名路由崩了。本仓 `sync-docs` 侧刚记过同族病(CONTEXT.md mtime 判定按 CI 关闭、trace 锚根在非 root 下 EACCES,1.8.0 那轮 CI 首跑红两处),这条是它的镜像面:那两处是 CI 看得见本地看不见,这一处是本地看不见 CI 看得见。落地:① 用例经 `resolveKnowledgeBaseDir` 的既有解析缝 `KNOWLEDGE_BASE_DIR` 指向临时夹具,夹具由 `FileKnowledgeStore.save()` 播一条条目(`--json` 出口因此仍有真实记录可数),三条断言逐字不变;② `runWithModuleProbe` 收可选 `extraEnv` 形参(其余冒烟用例不传、行为不变)并显式抬高 `maxBuffer` 到 32MB——抬高**不是**本用例的修复手段(夹具后正文只有几百字节),它管的是诊断信息:超限不该以「进程被杀、无原因」面目出现。**对外行为变化 0 处**:纯测试面,`src` 产品代码零改动、包公共面零变化、命令语法与退出码零变化。测试:该套件 16 项在改造前红 1 项(`status: null`)、改造后全绿,且断言不再随操作机知识库规模漂移;`npm run build` 绿、`eslint src` 零错。
24
+
9
25
  ## [1.8.1] - 2026-09-17
10
26
 
11
27
  ### Changes
package/README.md CHANGED
@@ -42,26 +42,23 @@ await checkBeforeExecution({
42
42
  const meta = await import('child_process').then(cp =>
43
43
  JSON.parse(cp.execSync('npx @dommaker/harness constraints --json', { encoding: 'utf-8' }))
44
44
  );
45
- // { version, hash, counts: { ironLaws, guidelines, prompts }, textSize }
45
+ // { version, hash, counts: { errors, warnings } }
46
46
  ```
47
47
 
48
- > Agent prompt 注入约束由 `@dommaker/studio-shared` 提供(`formatConstraintsForPrompt(role)`)。
49
-
50
48
  ---
51
49
 
52
- ## 约束体系:check / prompt 二元模型
50
+ ## 约束体系:severity 显式模型(ADR-0029)
53
51
 
54
- | 类别 | 数量 | 行为 |
52
+ | severity | 数量 | 行为 |
55
53
  |------|:--:|------|
56
- | **check · Iron Law** | 5 | 代码级检查,违规 throw `ConstraintViolationError` 阻断执行 |
57
- | **check · Guideline** | 4 | 代码级检查,违规记录 warning 放行 |
58
- | **prompt** | 16 | 纯文本行为约束,注入 Agent context,不占检查位、不产生 trace 统计 |
54
+ | **error** | 3 | 代码级检查,违规 throw `ConstraintViolationError` 阻断执行 |
55
+ | **warning** | 4 | 代码级检查,违规记录 warning 放行 |
59
56
 
60
- - check 层每条必须带真实 checker(注册表闭环,引用未注册 checker 构建报错);`capability_sync`/`docs_freshness`/`context_doc_sync` 为存在性探测——项目未采用对应约定文件时 skip(不阻断、不计 pass/fail)。
61
- - prompt 层带角色路由与适用性标签;场景专属条目仅在 config.yml `scenes` 命中时进入生效集。
62
- - 生效集由 `getEffectiveConstraints(projectRoot)` 统一计算:内置 → preset 裁剪 → config.yml 禁用 → custom 追加 → scenes 过滤。init 注入、`harness check`、外部消费者全部走它。
57
+ - 全部约束 kind='check',每条必须带真实 checker(注册表闭环,引用未注册 checker 构建报错);`capability_sync`/`docs_freshness`/`context_doc_sync` 为存在性探测——项目未采用对应约定文件时 skip(不阻断、不计 pass/fail)。
58
+ - ADR-0029:三层命名(Iron Laws / Guidelines / Prompts)废弃,纯文本提示层(prompt 类约束 + promptInjection 注入 + HARNESS_CONSTRAINTS 注入段与漂移校验)整体关停,文本规则由消费方手写治理段承接;项目自定义纯文本约束(custom-constraints / scenes)随之一并退役。
59
+ - 生效集由 `getEffectiveConstraints(projectRoot)` 统一计算:内置 → preset 裁剪 → config.yml 禁用。`harness check` 与外部消费者全部走它。
63
60
 
64
- 约束定义按类别维护在数据文件中(`src/core/constraints/definitions/{iron-laws,guidelines,prompts}.ts`),检查逻辑在 `checkers/` 目录按规则独立实现。完整约束列表见 [CAPABILITIES.md](CAPABILITIES.md)。
61
+ 约束定义按 severity 分组维护在数据文件中(`src/core/constraints/definitions/{iron-laws,guidelines}.ts`),检查逻辑在 `checkers/` 目录按规则独立实现。完整约束列表见 [CAPABILITIES.md](CAPABILITIES.md)。
65
62
 
66
63
  ---
67
64
 
@@ -139,7 +136,7 @@ scenes: [] # 场景标签,命中场景专属 prompt 才进入生效集
139
136
  | 约束引擎 | check/prompt 二元约束 + 生效集合并(`getEffectiveConstraints`)+ 注入渲染/漂移校验 |
140
137
  | 知识引擎 | 约束退役 → KnowledgeStore 沉淀(规则原文 + 原因 + 历史统计),可检索、可追溯 |
141
138
  | 门禁系统 | 8 种门禁:测试/验收/性能/安全/契约/审查/命令/检查点 |
142
- | Hook 管线 | 通用 before/after/around hook:注册 排序 错误隔离 采样执行 |
139
+ | 运行环境引导 | `bootstrapHarness` / `bootstrapHarnessSync`:一次调用装配约束检查器 + trace 记录器 + 会话管理器(原「Hook 管线」面双仓零消费者,已随 ADR-0027 整体删除) |
143
140
  | 上下文/监控 | Token 预算 + 会话压缩 + Trace 收集/分析 |
144
141
 
145
142
  ### 代码结构
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * harness check 命令
3
3
  *
4
- * 检查约束是否满足(check 层:Iron Laws / Guidelines;prompt 层仅注入不检查)
4
+ * 检查约束是否满足(severity='error' 阻断 / severity='warning' 告警)
5
5
  * 工单 23:触发条件与证据检测迁至 core/constraints/context-builder
6
- * ADR-0001:约束集统一走 getMergedConstraintsConfig 生效集链路(preset/config 禁用/custom/scenes)
6
+ * 约束集统一走 getMergedConstraintsConfig 生效集链路(preset/config 禁用)
7
7
  * harness#88:本命令是 trace 记录器的组合根——core 不上行依赖 monitoring,
8
8
  * 真实收集器在此经构造参数接线;#139:收集器锚根构造,trace 落点跟 --project-path 走
9
9
  */
@@ -48,7 +48,7 @@ export interface CheckOptions {
48
48
  */
49
49
  export declare function check(options: CheckOptions, io?: CommandIO): Promise<CommandResult>;
50
50
  /**
51
- * 列出所有约束
51
+ * 列出所有约束(按 severity 分组)
52
52
  */
53
53
  /** optionRoutes 一律以 (options) 调用;--list 不消费检查选项,形参仅占位 */
54
54
  export declare function listLaws(_options?: Partial<CheckOptions>, io?: CommandIO): CommandResult;
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAM3E,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AA4BxD,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,YAAY,EACrB,EAAE,GAAE,SAAqB,GACxB,OAAO,CAAC,aAAa,CAAC,CAyJxB;AA6CD;;GAEG;AACH,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,OAAO,CAAC,YAAY,CAAM,EAAE,EAAE,GAAE,SAAqB,GAAG,aAAa,CA8BvG"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAI3E,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AA4BxD,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,YAAY,EACrB,EAAE,GAAE,SAAqB,GACxB,OAAO,CAAC,aAAa,CAAC,CA+HxB;AA6CD;;GAEG;AACH,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,OAAO,CAAC,YAAY,CAAM,EAAE,EAAE,GAAE,SAAqB,GAAG,aAAa,CAmBvG"}
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * harness check 命令
4
4
  *
5
- * 检查约束是否满足(check 层:Iron Laws / Guidelines;prompt 层仅注入不检查)
5
+ * 检查约束是否满足(severity='error' 阻断 / severity='warning' 告警)
6
6
  * 工单 23:触发条件与证据检测迁至 core/constraints/context-builder
7
- * ADR-0001:约束集统一走 getMergedConstraintsConfig 生效集链路(preset/config 禁用/custom/scenes)
7
+ * 约束集统一走 getMergedConstraintsConfig 生效集链路(preset/config 禁用)
8
8
  * harness#88:本命令是 trace 记录器的组合根——core 不上行依赖 monitoring,
9
9
  * 真实收集器在此经构造参数接线;#139:收集器锚根构造,trace 落点跟 --project-path 走
10
10
  */
@@ -55,8 +55,6 @@ const effective_constraints_1 = require("../../core/effective-constraints");
55
55
  const context_builder_1 = require("../../core/constraints/context-builder");
56
56
  const git_evidence_1 = require("../../core/constraints/git-evidence");
57
57
  const run_env_1 = require("../../core/constraints/run-env");
58
- const injection_drift_1 = require("../../core/constraints/injection-drift");
59
- const injection_writer_1 = require("../../core/constraints/injection-writer");
60
58
  const traces_1 = require("../../monitoring/traces");
61
59
  const jsonl_1 = require("../../utils/jsonl");
62
60
  const trace_1 = require("../../types/trace");
@@ -93,14 +91,11 @@ async function check(options, io = command_contract_1.processIO) {
93
91
  const evidence = options.evidence ?? (0, git_evidence_1.createGitEvidence)(projectPath);
94
92
  const runEnv = options.runEnv ?? (0, run_env_1.createRunEnv)(projectPath);
95
93
  const stateIO = options.stateIO ?? (0, state_io_1.fileStateIO)(projectPath);
96
- // 生效约束集(ADR-0001):内置 → preset → config.yml 禁用 → custom 追加 → scenes 过滤。
94
+ // 生效约束集:内置 → preset → config.yml 禁用。
97
95
  // --preset 仅在没有项目自定义配置时覆盖 config.yml 的 preset(工单 23 语义:
98
96
  // 项目自定义配置优先于 CLI 预设),优先级规则收在 getMergedConstraintsConfig 一处。
99
97
  // CLI 不给 -p 缺省值:没传 = 尊重 config.yml(ADR-0023 步骤 4.5,缺省值曾让两者不可区分)
100
98
  const merged = (0, effective_constraints_1.getMergedConstraintsConfig)(runEnv, { preset: options.preset });
101
- if (merged.custom.length > 0) {
102
- (0, command_contract_1.log)(io, chalk_1.default.gray(`自定义约束: ${merged.custom.length} 条`));
103
- }
104
99
  if (merged.disabled.length > 0) {
105
100
  (0, command_contract_1.log)(io, chalk_1.default.gray(`已禁用约束: ${merged.disabled.join(', ')}`));
106
101
  }
@@ -123,27 +118,27 @@ async function check(options, io = command_contract_1.processIO) {
123
118
  (0, command_contract_1.log)(io, chalk_1.default.gray(`变更文件: ${changedFiles.length} 个`));
124
119
  }
125
120
  (0, command_contract_1.log)(io, chalk_1.default.gray(`触发条件: ${[context.operation, ...(context.extraTriggers ?? [])].join(', ')}`));
126
- // 执行三层检查(per-request 传 customConfig,避免单例状态污染;证据同 run 同源)
121
+ // 执行约束检查(per-request 传 customConfig,避免单例状态污染;证据同 run 同源)
127
122
  // trace 记录器经构造参数接线(harness#88):一次命令一个 checker 实例
128
123
  // #139:收集器锚根构造——不传 projectPath 时 trace 会落进调用方 cwd,B 侧读不到
129
124
  const checker = new checker_1.ConstraintChecker(new traces_1.TraceCollector({ projectPath }));
130
125
  const result = await checker.checkConstraints(context, merged, evidence, runEnv);
131
126
  // 输出结果
132
127
  (0, command_contract_1.log)(io);
133
- // skipped(约定未采用/证据未接线)单独列示,不进 pass/fail 统计(ADR-0001)
128
+ // skipped(约定未采用/证据未接线)单独列示,不进 pass/fail 统计
134
129
  const skippedResults = [
135
- ...result.ironLaws,
136
- ...result.guidelines,
130
+ ...result.errors,
131
+ ...result.warnings,
137
132
  ].filter(r => r.skipped);
138
- // Iron Laws
139
- const evaluatedIronLaws = result.ironLaws.filter(r => !r.skipped);
140
- const ironLawViolations = evaluatedIronLaws.filter(r => !r.satisfied);
141
- if (ironLawViolations.length === 0 && evaluatedIronLaws.length > 0) {
142
- (0, command_contract_1.log)(io, chalk_1.default.green(`✅ 铁律: 全部通过 (${evaluatedIronLaws.length} 条)`));
133
+ // severity='error'(违规即阻断)
134
+ const evaluatedErrors = result.errors.filter(r => !r.skipped);
135
+ const errorViolations = evaluatedErrors.filter(r => !r.satisfied);
136
+ if (errorViolations.length === 0 && evaluatedErrors.length > 0) {
137
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ error 级约束: 全部通过 (${evaluatedErrors.length} 条)`));
143
138
  }
144
- else if (ironLawViolations.length > 0) {
145
- (0, command_contract_1.log)(io, chalk_1.default.red(`❌ 铁律违规: ${ironLawViolations.length} 条`));
146
- ironLawViolations.forEach(r => {
139
+ else if (errorViolations.length > 0) {
140
+ (0, command_contract_1.log)(io, chalk_1.default.red(`❌ error 级约束违规: ${errorViolations.length} 条`));
141
+ errorViolations.forEach(r => {
147
142
  if (r.constraint) {
148
143
  (0, command_contract_1.log)(io, chalk_1.default.red(` - ${r.constraint.id}: ${r.constraint.message}`));
149
144
  (0, command_contract_1.log)(io, chalk_1.default.red(` ${r.constraint.rule}`));
@@ -151,30 +146,30 @@ async function check(options, io = command_contract_1.processIO) {
151
146
  }
152
147
  });
153
148
  (0, command_contract_1.log)(io);
154
- (0, command_contract_1.log)(io, chalk_1.default.red('🛑 铁律检查失败,请修复后再提交'));
149
+ (0, command_contract_1.log)(io, chalk_1.default.red('🛑 error 级约束检查失败,请修复后再提交'));
155
150
  return {
156
151
  kind: 'fail',
157
- reason: `iron law violated: ${ironLawViolations.map(r => r.constraint?.id ?? 'unknown').join(', ')}`,
152
+ reason: `error-severity constraint violated: ${errorViolations.map(r => r.constraint?.id ?? 'unknown').join(', ')}`,
158
153
  };
159
154
  }
160
- // Guidelines
155
+ // severity='warning'(告警不阻断)
161
156
  if (result.warningCount > 0) {
162
- (0, command_contract_1.log)(io, chalk_1.default.yellow(`⚠️ 指导原则警告: ${result.warningCount} 条`));
163
- result.guidelines.filter(r => !r.satisfied).forEach(r => {
157
+ (0, command_contract_1.log)(io, chalk_1.default.yellow(`⚠️ warning 级约束警告: ${result.warningCount} 条`));
158
+ result.warnings.filter(r => !r.satisfied).forEach(r => {
164
159
  if (r.constraint) {
165
160
  (0, command_contract_1.log)(io, chalk_1.default.yellow(` - ${r.constraint.id}: ${r.constraint.message}`));
166
161
  logEvidence(io, r, 'yellow');
167
162
  }
168
163
  });
169
164
  }
170
- else if (result.guidelines.length > 0) {
171
- const evaluatedGuidelines = result.guidelines.filter(r => !r.skipped);
172
- const passedGuidelines = evaluatedGuidelines.filter(r => r.satisfied).length;
173
- (0, command_contract_1.log)(io, chalk_1.default.green(`✅ 指导原则: ${passedGuidelines}/${evaluatedGuidelines.length} 通过`));
165
+ else if (result.warnings.length > 0) {
166
+ const evaluatedWarnings = result.warnings.filter(r => !r.skipped);
167
+ const passedWarnings = evaluatedWarnings.filter(r => r.satisfied).length;
168
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ warning 级约束: ${passedWarnings}/${evaluatedWarnings.length} 通过`));
174
169
  }
175
170
  // 提示:通过但带证据(harness#119)——与本次变更无因果的仓库级漂移在此露出,
176
171
  // 不判违规、不改 exit code,只保证「看得见且能自己修」
177
- const hints = [...result.ironLaws, ...result.guidelines].filter(r => !r.skipped && r.satisfied && (r.evidence?.length ?? 0) > 0);
172
+ const hints = [...result.errors, ...result.warnings].filter(r => !r.skipped && r.satisfied && (r.evidence?.length ?? 0) > 0);
178
173
  if (hints.length > 0) {
179
174
  (0, command_contract_1.log)(io, chalk_1.default.gray(`💡 提示: ${hints.length} 条(不判违规,供参考)`));
180
175
  hints.forEach(r => logEvidence(io, r, 'gray', r.id));
@@ -186,29 +181,6 @@ async function check(options, io = command_contract_1.processIO) {
186
181
  (0, command_contract_1.log)(io, chalk_1.default.gray(` - ${r.id}`));
187
182
  });
188
183
  }
189
- // 注入漂移校验(ADR-0001 决策 7):黄色警告块,不改 exit code、不影响门禁结果。
190
- // 无漂移/未注入零输出;漂移检测自身异常静默吞掉,绝不影响 check。
191
- try {
192
- // 生效集直接用本 run 那一份:一遍算完,且比对对象就是本次实际执法的规则集(ADR-0023 步骤 4.5)
193
- const drift = (0, injection_drift_1.detectInjectionDrift)(runEnv, undefined, (0, effective_constraints_1.constraintsFromMerged)(merged));
194
- if (drift.hasDrift) {
195
- (0, command_contract_1.log)(io);
196
- (0, command_contract_1.log)(io, chalk_1.default.yellow(`⚠️ 检测到 ${drift.injectionFile ?? '治理文档'} 约束注入漂移(仅警告,不阻断):`));
197
- if (drift.versionDrift) {
198
- (0, command_contract_1.log)(io, chalk_1.default.yellow(` ⚠️⚠️ 注入段版本 (${drift.versionDrift.actual}) ≠ 已安装 harness 版本 (${drift.versionDrift.expected}):agent 上下文中的规则与已安装 harness 版本不一致`));
199
- }
200
- if (drift.contentDrift) {
201
- (0, command_contract_1.log)(io, chalk_1.default.yellow(` 内容漂移: 缺失 ${drift.contentDrift.missing.length} 条 / 多余 ${drift.contentDrift.extra.length} 条(条目级差异见 harness constraints report)`));
202
- }
203
- if (drift.duplicateHeading) {
204
- (0, command_contract_1.log)(io, chalk_1.default.yellow(` 检测到重复的 "${injection_writer_1.GOVERNANCE_HEADING}" 章节`));
205
- }
206
- (0, command_contract_1.log)(io, chalk_1.default.yellow(` 修复: ${drift.fixHint}`));
207
- }
208
- }
209
- catch {
210
- // 漂移检测失败不影响 check 结果
211
- }
212
184
  (0, command_contract_1.log)(io);
213
185
  (0, command_contract_1.log)(io, chalk_1.default.green('✅ 约束检查通过'));
214
186
  // 智能提示
@@ -264,35 +236,26 @@ async function getSmartHint(projectPath, stateIO) {
264
236
  return null;
265
237
  }
266
238
  /**
267
- * 列出所有约束
239
+ * 列出所有约束(按 severity 分组)
268
240
  */
269
241
  /** optionRoutes 一律以 (options) 调用;--list 不消费检查选项,形参仅占位 */
270
242
  function listLaws(_options = {}, io = command_contract_1.processIO) {
271
243
  (0, command_contract_1.log)(io, chalk_1.default.blue('\n📜 所有约束:\n'));
272
- // Iron Laws
273
- (0, command_contract_1.log)(io, chalk_1.default.red('🔴 铁律 (Iron Laws) - 绝对禁止,无例外:\n'));
274
- Object.values(definitions_1.IRON_LAWS).forEach(constraint => {
275
- (0, command_contract_1.log)(io, chalk_1.default.red(` ${constraint.id}`));
276
- (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.rule}`));
277
- (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.message}`));
278
- (0, command_contract_1.log)(io);
279
- });
280
- // Guidelines
281
- (0, command_contract_1.log)(io, chalk_1.default.yellow('🟡 指导原则 (Guidelines) - 优先建议,违背发警告但不阻止:\n'));
282
- Object.values(definitions_1.GUIDELINES).forEach(constraint => {
283
- (0, command_contract_1.log)(io, chalk_1.default.yellow(` ${constraint.id}`));
284
- (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.rule}`));
285
- (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.message}`));
286
- (0, command_contract_1.log)(io);
287
- });
288
- // Prompts(ADR-0001:纯注入层,不执行检查)
289
- (0, command_contract_1.log)(io, chalk_1.default.blue('🔵 提示 (Prompts) - 纯文本注入,不参与检查:\n'));
290
- Object.values(definitions_1.PROMPTS).forEach(constraint => {
291
- (0, command_contract_1.log)(io, chalk_1.default.blue(` ${constraint.id}`));
292
- (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.rule}`));
293
- (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.message}`));
294
- (0, command_contract_1.log)(io);
295
- });
244
+ const groups = [
245
+ { severity: 'error', heading: '🔴 error - 违规即阻断,无例外:', paint: chalk_1.default.red },
246
+ { severity: 'warning', heading: '🟡 warning 级 - 违规发警告但不阻止:', paint: chalk_1.default.yellow },
247
+ ];
248
+ for (const group of groups) {
249
+ (0, command_contract_1.log)(io, group.paint(group.heading + '\n'));
250
+ Object.values(definitions_1.CONSTRAINTS)
251
+ .filter(c => c.severity === group.severity)
252
+ .forEach(constraint => {
253
+ (0, command_contract_1.log)(io, group.paint(` ${constraint.id}`));
254
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.rule}`));
255
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` ${constraint.message}`));
256
+ (0, command_contract_1.log)(io);
257
+ });
258
+ }
296
259
  return { kind: 'ok' };
297
260
  }
298
261
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  /**
2
- * harness constraints report —— 约束使用报告(ADR-0001 决策 3/4
2
+ * harness constraints report —— 约束使用报告(ADR-0001 决策 3/4,ADR-0029 收窄)
3
3
  *
4
4
  * 只读。面向"人审约束"场景:
5
- * - check 层统计表(total/pass/fail/skip、fail 率、首次/最近触发)
5
+ * - check 约束统计表(total/pass/fail/skip、fail 率、首次/最近触发)
6
6
  * - 退役候选诊断(零触发/零拦截/不可评估/高噪),retire 交互模式的数据源
7
- * - 当前生效 prompt 注入清单
8
7
  * - 配置健康(unknownIds 残留提示)
9
8
  * - --export [file]:脱敏 markdown 摘要(不含项目路径)
10
9
  */
11
10
  import { type ConstraintsUsageReport } from '../../core/constraints/usage-report';
12
- import { type InjectionDrift } from '../../core/constraints/injection-drift';
13
11
  import { type CommandIO, type CommandResult } from '../command-contract';
14
12
  export interface ConstraintsReportOptions {
15
13
  projectPath?: string;
@@ -30,12 +28,6 @@ export interface ConstraintsReportOptions {
30
28
  * 内容为 harness 版本、日期、统计表、候选清单、配置健康。
31
29
  */
32
30
  export declare function renderExportMarkdown(report: ConstraintsUsageReport, version: string, now?: Date): string;
33
- /**
34
- * 渲染"注入漂移"小节的文本行(ADR-0001 决策 7:详细条目级差异进 report)
35
- *
36
- * 返回纯文本行数组(不含 chalk 着色),调用方逐行 console.log。
37
- */
38
- export declare function renderInjectionDriftLines(drift: InjectionDrift): string[];
39
31
  /**
40
32
  * CLI handler: harness constraints report
41
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"constraints-report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAIL,KAAK,sBAAsB,EAG5B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAEnG,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,IAAiB,GACrB,MAAM,CA4CR;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CA8BzE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,EAAE,EAAE,GAAE,SAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqFjI"}
1
+ {"version":3,"file":"constraints-report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAIL,KAAK,sBAAsB,EAG5B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,IAAiB,GACrB,MAAM,CA4CR;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,EAAE,EAAE,GAAE,SAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsEjI"}
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  /**
3
- * harness constraints report —— 约束使用报告(ADR-0001 决策 3/4
3
+ * harness constraints report —— 约束使用报告(ADR-0001 决策 3/4,ADR-0029 收窄)
4
4
  *
5
5
  * 只读。面向"人审约束"场景:
6
- * - check 层统计表(total/pass/fail/skip、fail 率、首次/最近触发)
6
+ * - check 约束统计表(total/pass/fail/skip、fail 率、首次/最近触发)
7
7
  * - 退役候选诊断(零触发/零拦截/不可评估/高噪),retire 交互模式的数据源
8
- * - 当前生效 prompt 注入清单
9
8
  * - 配置健康(unknownIds 残留提示)
10
9
  * - --export [file]:脱敏 markdown 摘要(不含项目路径)
11
10
  */
@@ -47,15 +46,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
47
46
  };
48
47
  Object.defineProperty(exports, "__esModule", { value: true });
49
48
  exports.renderExportMarkdown = renderExportMarkdown;
50
- exports.renderInjectionDriftLines = renderInjectionDriftLines;
51
49
  exports.constraintsReport = constraintsReport;
52
50
  const fs = __importStar(require("fs"));
53
51
  const path = __importStar(require("path"));
54
52
  const chalk_1 = __importDefault(require("chalk"));
55
53
  const usage_report_1 = require("../../core/constraints/usage-report");
56
54
  const constraints_1 = require("./constraints");
57
- const injection_drift_1 = require("../../core/constraints/injection-drift");
58
- const injection_writer_1 = require("../../core/constraints/injection-writer");
59
55
  const command_contract_1 = require("../command-contract");
60
56
  function formatTime(ts) {
61
57
  return ts === undefined ? '-' : new Date(ts).toISOString().slice(0, 10);
@@ -86,7 +82,7 @@ function renderExportMarkdown(report, version, now = new Date()) {
86
82
  lines.push(`- ⚠️ trace 文件有 ${report.skippedLines} 行损坏已跳过,下表统计只含其余合法记录`);
87
83
  }
88
84
  lines.push('');
89
- lines.push('## 统计表(check 层)');
85
+ lines.push('## 统计表');
90
86
  lines.push('');
91
87
  lines.push('| id | total | pass | fail | skip | fail 率 | 首次触发 | 最近触发 |');
92
88
  lines.push('| --- | ---: | ---: | ---: | ---: | ---: | --- | --- |');
@@ -115,42 +111,6 @@ function renderExportMarkdown(report, version, now = new Date()) {
115
111
  }
116
112
  return lines.join('\n');
117
113
  }
118
- /**
119
- * 渲染"注入漂移"小节的文本行(ADR-0001 决策 7:详细条目级差异进 report)
120
- *
121
- * 返回纯文本行数组(不含 chalk 着色),调用方逐行 console.log。
122
- */
123
- function renderInjectionDriftLines(drift) {
124
- const lines = [];
125
- if (drift.notInjected) {
126
- lines.push(' CLAUDE.md / AGENTS.md 均无约束注入标记段(未注入,不算漂移);可运行 npx @dommaker/harness init 注入');
127
- if (drift.duplicateHeading) {
128
- lines.push(` 另检测到多个 "${injection_writer_1.GOVERNANCE_HEADING}" 标题(历史遗留重复章节),建议手工清理后重跑 npx @dommaker/harness init`);
129
- }
130
- return lines;
131
- }
132
- if (!drift.hasDrift) {
133
- lines.push(' 无漂移');
134
- return lines;
135
- }
136
- if (drift.versionDrift) {
137
- lines.push(` 版本漂移: 注入段版本 (${drift.versionDrift.actual}) ≠ 当前 harness 版本 (${drift.versionDrift.expected})`);
138
- }
139
- if (drift.contentDrift) {
140
- lines.push(' 内容漂移(条目级差异):');
141
- for (const l of drift.contentDrift.missing) {
142
- lines.push(` 缺失: ${l}`);
143
- }
144
- for (const l of drift.contentDrift.extra) {
145
- lines.push(` 多余: ${l}`);
146
- }
147
- }
148
- if (drift.duplicateHeading) {
149
- lines.push(` 重复章节: 标记段之外还存在另一个 "${injection_writer_1.GOVERNANCE_HEADING}" 标题`);
150
- }
151
- lines.push(` 修复: ${drift.fixHint}`);
152
- return lines;
153
- }
154
114
  /**
155
115
  * CLI handler: harness constraints report
156
116
  */
@@ -177,7 +137,7 @@ async function constraintsReport(options = {}, io = command_contract_1.processIO
177
137
  }
178
138
  (0, command_contract_1.log)(io);
179
139
  // 统计表
180
- (0, command_contract_1.log)(io, chalk_1.default.bold('统计表(check 层):'));
140
+ (0, command_contract_1.log)(io, chalk_1.default.bold('统计表:'));
181
141
  for (const s of report.stats) {
182
142
  (0, command_contract_1.log)(io, ` ${renderStatsRow(s)}`);
183
143
  }
@@ -194,12 +154,6 @@ async function constraintsReport(options = {}, io = command_contract_1.processIO
194
154
  (0, command_contract_1.log)(io, chalk_1.default.gray(' 可运行 `harness constraints retire` 交互式处理候选'));
195
155
  }
196
156
  (0, command_contract_1.log)(io);
197
- // 注入清单
198
- (0, command_contract_1.log)(io, chalk_1.default.bold(`当前生效 prompt 注入(${report.activePromptIds.length} 条):`));
199
- for (const id of report.activePromptIds) {
200
- (0, command_contract_1.log)(io, ` ${id}`);
201
- }
202
- (0, command_contract_1.log)(io);
203
157
  // 配置健康
204
158
  if (report.lint.unknownIds.length > 0) {
205
159
  (0, command_contract_1.log)(io, chalk_1.default.yellow('⚠️ 配置健康:'));
@@ -208,13 +162,6 @@ async function constraintsReport(options = {}, io = command_contract_1.processIO
208
162
  }
209
163
  (0, command_contract_1.log)(io);
210
164
  }
211
- // 注入漂移(ADR-0001 决策 7:条目级差异 + 修复指引;--export 摘要不含本地漂移状态)
212
- (0, command_contract_1.log)(io, chalk_1.default.bold('注入漂移:'));
213
- const drift = (0, injection_drift_1.detectInjectionDrift)(projectRoot);
214
- for (const line of renderInjectionDriftLines(drift)) {
215
- (0, command_contract_1.log)(io, drift.hasDrift ? chalk_1.default.yellow(line) : line);
216
- }
217
- (0, command_contract_1.log)(io);
218
165
  // --export
219
166
  if (options.export !== undefined && options.export !== false) {
220
167
  const version = (0, constraints_1.getConstraintsMeta)().version;
@@ -1 +1 @@
1
- {"version":3,"file":"constraints-report.js","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraints-report.js","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"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"}