@dommaker/harness 0.16.9 → 0.17.1

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 (337) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +33 -32
  3. package/bin/harness.js +33 -20
  4. package/dist/cli/commands/check.d.ts +3 -2
  5. package/dist/cli/commands/check.d.ts.map +1 -1
  6. package/dist/cli/commands/check.js +69 -36
  7. package/dist/cli/commands/check.js.map +1 -1
  8. package/dist/cli/commands/constraints-report.d.ts +42 -0
  9. package/dist/cli/commands/constraints-report.d.ts.map +1 -0
  10. package/dist/cli/commands/constraints-report.js +233 -0
  11. package/dist/cli/commands/constraints-report.js.map +1 -0
  12. package/dist/cli/commands/constraints-retire.d.ts +71 -0
  13. package/dist/cli/commands/constraints-retire.d.ts.map +1 -0
  14. package/dist/cli/commands/constraints-retire.js +384 -0
  15. package/dist/cli/commands/constraints-retire.js.map +1 -0
  16. package/dist/cli/commands/constraints.d.ts +1 -1
  17. package/dist/cli/commands/constraints.d.ts.map +1 -1
  18. package/dist/cli/commands/constraints.js +4 -4
  19. package/dist/cli/commands/constraints.js.map +1 -1
  20. package/dist/cli/commands/index.d.ts +2 -1
  21. package/dist/cli/commands/index.d.ts.map +1 -1
  22. package/dist/cli/commands/index.js +10 -4
  23. package/dist/cli/commands/index.js.map +1 -1
  24. package/dist/cli/commands/init.d.ts +20 -0
  25. package/dist/cli/commands/init.d.ts.map +1 -1
  26. package/dist/cli/commands/init.js +81 -59
  27. package/dist/cli/commands/init.js.map +1 -1
  28. package/dist/cli/commands/report.js +4 -4
  29. package/dist/cli/commands/report.js.map +1 -1
  30. package/dist/cli/commands/status.d.ts.map +1 -1
  31. package/dist/cli/commands/status.js +3 -4
  32. package/dist/cli/commands/status.js.map +1 -1
  33. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +5 -1
  34. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
  35. package/dist/cli/commands/sync-docs/capabilities-syncer.js +2 -10
  36. package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
  37. package/dist/cli/commands/validate.d.ts.map +1 -1
  38. package/dist/cli/commands/validate.js +1 -5
  39. package/dist/cli/commands/validate.js.map +1 -1
  40. package/dist/core/constraints/capabilities-parser.d.ts +7 -0
  41. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  42. package/dist/core/constraints/capabilities-parser.js +13 -0
  43. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  44. package/dist/core/constraints/checker.d.ts +13 -5
  45. package/dist/core/constraints/checker.d.ts.map +1 -1
  46. package/dist/core/constraints/checker.js +62 -25
  47. package/dist/core/constraints/checker.js.map +1 -1
  48. package/dist/core/constraints/checkers/capability-sync.d.ts +9 -2
  49. package/dist/core/constraints/checkers/capability-sync.d.ts.map +1 -1
  50. package/dist/core/constraints/checkers/capability-sync.js +55 -22
  51. package/dist/core/constraints/checkers/capability-sync.js.map +1 -1
  52. package/dist/core/constraints/checkers/context-doc-sync.d.ts +3 -0
  53. package/dist/core/constraints/checkers/context-doc-sync.d.ts.map +1 -1
  54. package/dist/core/constraints/checkers/context-doc-sync.js +8 -2
  55. package/dist/core/constraints/checkers/context-doc-sync.js.map +1 -1
  56. package/dist/core/constraints/checkers/docs-freshness.d.ts +1 -0
  57. package/dist/core/constraints/checkers/docs-freshness.d.ts.map +1 -1
  58. package/dist/core/constraints/checkers/docs-freshness.js +39 -0
  59. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
  60. package/dist/core/constraints/checkers/index.d.ts +8 -4
  61. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  62. package/dist/core/constraints/checkers/index.js +29 -46
  63. package/dist/core/constraints/checkers/index.js.map +1 -1
  64. package/dist/core/constraints/checkers/iron-flags.d.ts +6 -7
  65. package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
  66. package/dist/core/constraints/checkers/iron-flags.js +10 -17
  67. package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
  68. package/dist/core/constraints/checkers/no-hardcoded-credentials.d.ts +13 -0
  69. package/dist/core/constraints/checkers/no-hardcoded-credentials.d.ts.map +1 -0
  70. package/dist/core/constraints/checkers/no-hardcoded-credentials.js +91 -0
  71. package/dist/core/constraints/checkers/no-hardcoded-credentials.js.map +1 -0
  72. package/dist/core/constraints/checkers/types.d.ts +15 -4
  73. package/dist/core/constraints/checkers/types.d.ts.map +1 -1
  74. package/dist/core/constraints/checkers/types.js +16 -4
  75. package/dist/core/constraints/checkers/types.js.map +1 -1
  76. package/dist/core/constraints/context-builder.d.ts +6 -3
  77. package/dist/core/constraints/context-builder.d.ts.map +1 -1
  78. package/dist/core/constraints/context-builder.js +29 -20
  79. package/dist/core/constraints/context-builder.js.map +1 -1
  80. package/dist/core/constraints/definitions/guidelines.d.ts +6 -2
  81. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  82. package/dist/core/constraints/definitions/guidelines.js +29 -572
  83. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  84. package/dist/core/constraints/definitions/iron-laws.d.ts +6 -2
  85. package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
  86. package/dist/core/constraints/definitions/iron-laws.js +48 -231
  87. package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
  88. package/dist/core/constraints/definitions/prompts.d.ts +12 -0
  89. package/dist/core/constraints/definitions/prompts.d.ts.map +1 -0
  90. package/dist/core/constraints/definitions/prompts.js +405 -0
  91. package/dist/core/constraints/definitions/prompts.js.map +1 -0
  92. package/dist/core/constraints/definitions.d.ts +15 -9
  93. package/dist/core/constraints/definitions.d.ts.map +1 -1
  94. package/dist/core/constraints/definitions.js +18 -12
  95. package/dist/core/constraints/definitions.js.map +1 -1
  96. package/dist/core/constraints/index.d.ts +3 -2
  97. package/dist/core/constraints/index.d.ts.map +1 -1
  98. package/dist/core/constraints/index.js +8 -2
  99. package/dist/core/constraints/index.js.map +1 -1
  100. package/dist/core/constraints/injection-drift.d.ts +48 -0
  101. package/dist/core/constraints/injection-drift.d.ts.map +1 -0
  102. package/dist/core/constraints/injection-drift.js +140 -0
  103. package/dist/core/constraints/injection-drift.js.map +1 -0
  104. package/dist/core/constraints/injection-renderer.d.ts +23 -0
  105. package/dist/core/constraints/injection-renderer.d.ts.map +1 -0
  106. package/dist/core/constraints/injection-renderer.js +44 -0
  107. package/dist/core/constraints/injection-renderer.js.map +1 -0
  108. package/dist/core/constraints/interceptor.d.ts.map +1 -1
  109. package/dist/core/constraints/interceptor.js +3 -2
  110. package/dist/core/constraints/interceptor.js.map +1 -1
  111. package/dist/core/constraints/usage-report.d.ts +95 -0
  112. package/dist/core/constraints/usage-report.d.ts.map +1 -0
  113. package/dist/core/constraints/usage-report.js +206 -0
  114. package/dist/core/constraints/usage-report.js.map +1 -0
  115. package/dist/core/effective-constraints.d.ts +47 -0
  116. package/dist/core/effective-constraints.d.ts.map +1 -0
  117. package/dist/core/effective-constraints.js +60 -0
  118. package/dist/core/effective-constraints.js.map +1 -0
  119. package/dist/core/index.d.ts +1 -0
  120. package/dist/core/index.d.ts.map +1 -1
  121. package/dist/core/index.js +2 -0
  122. package/dist/core/index.js.map +1 -1
  123. package/dist/core/project-config-loader.d.ts +17 -2
  124. package/dist/core/project-config-loader.d.ts.map +1 -1
  125. package/dist/core/project-config-loader.js +55 -8
  126. package/dist/core/project-config-loader.js.map +1 -1
  127. package/dist/dashboard/data.d.ts +1 -9
  128. package/dist/dashboard/data.d.ts.map +1 -1
  129. package/dist/dashboard/data.js +7 -15
  130. package/dist/dashboard/data.js.map +1 -1
  131. package/dist/dashboard/types.d.ts +13 -1
  132. package/dist/dashboard/types.d.ts.map +1 -1
  133. package/dist/index.d.ts +0 -4
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +1 -13
  136. package/dist/index.js.map +1 -1
  137. package/dist/monitoring/index.d.ts +0 -2
  138. package/dist/monitoring/index.d.ts.map +1 -1
  139. package/dist/monitoring/index.js +0 -2
  140. package/dist/monitoring/index.js.map +1 -1
  141. package/dist/monitoring/knowledge-evolver.d.ts +1 -1
  142. package/dist/monitoring/knowledge-evolver.js +1 -1
  143. package/dist/monitoring/trace-analyzer.d.ts +1 -1
  144. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  145. package/dist/monitoring/trace-analyzer.js +16 -10
  146. package/dist/monitoring/trace-analyzer.js.map +1 -1
  147. package/dist/monitoring/traces.d.ts +2 -1
  148. package/dist/monitoring/traces.d.ts.map +1 -1
  149. package/dist/monitoring/traces.js +5 -3
  150. package/dist/monitoring/traces.js.map +1 -1
  151. package/dist/presets/standard.d.ts +3 -1
  152. package/dist/presets/standard.d.ts.map +1 -1
  153. package/dist/presets/standard.js +18 -8
  154. package/dist/presets/standard.js.map +1 -1
  155. package/dist/types/constraint.d.ts +51 -11
  156. package/dist/types/constraint.d.ts.map +1 -1
  157. package/dist/types/constraint.js +8 -4
  158. package/dist/types/constraint.js.map +1 -1
  159. package/dist/types/index.d.ts +1 -1
  160. package/dist/types/index.d.ts.map +1 -1
  161. package/dist/types/index.js.map +1 -1
  162. package/dist/types/monitoring-types.d.ts +2 -63
  163. package/dist/types/monitoring-types.d.ts.map +1 -1
  164. package/dist/types/monitoring-types.js +2 -2
  165. package/dist/types/project-config.d.ts +26 -1
  166. package/dist/types/project-config.d.ts.map +1 -1
  167. package/dist/types/trace.d.ts +16 -7
  168. package/dist/types/trace.d.ts.map +1 -1
  169. package/dist/types/trace.js +8 -0
  170. package/dist/types/trace.js.map +1 -1
  171. package/package.json +1 -1
  172. package/src/CONTEXT.md +2 -2
  173. package/src/__tests__/checker-extra.test.ts +228 -333
  174. package/src/__tests__/checker.test.ts +87 -724
  175. package/src/__tests__/constraint-doctor.test.ts +5 -5
  176. package/src/__tests__/doctor-extra.test.ts +164 -0
  177. package/src/__tests__/effective-constraints.test.ts +147 -0
  178. package/src/__tests__/extend-exceptions.test.ts +3 -3
  179. package/src/__tests__/iron-laws.test.ts +115 -91
  180. package/src/__tests__/no-hardcoded-credentials.test.ts +90 -0
  181. package/src/__tests__/presets.test.ts +7 -7
  182. package/src/__tests__/project-config-loader-extra.test.ts +41 -4
  183. package/src/__tests__/skip-semantics.test.ts +322 -0
  184. package/src/cli/commands/CONTEXT.md +5 -3
  185. package/src/cli/commands/__tests__/check-drift.test.ts +127 -0
  186. package/src/cli/commands/__tests__/check-skip-output.test.ts +128 -0
  187. package/src/cli/commands/__tests__/check.test.ts +14 -25
  188. package/src/cli/commands/__tests__/constraints-report.test.ts +327 -0
  189. package/src/cli/commands/__tests__/constraints-retire.test.ts +283 -0
  190. package/src/cli/commands/__tests__/init-injection.test.ts +234 -0
  191. package/src/cli/commands/__tests__/status-extra.test.ts +11 -11
  192. package/src/cli/commands/__tests__/status.test.ts +1 -1
  193. package/src/cli/commands/check.ts +72 -38
  194. package/src/cli/commands/constraints-report.ts +234 -0
  195. package/src/cli/commands/constraints-retire.ts +443 -0
  196. package/src/cli/commands/constraints.ts +5 -5
  197. package/src/cli/commands/index.ts +2 -1
  198. package/src/cli/commands/init.ts +94 -66
  199. package/src/cli/commands/report.ts +6 -6
  200. package/src/cli/commands/status.ts +3 -4
  201. package/src/cli/commands/sync-docs/capabilities-syncer.ts +5 -7
  202. package/src/cli/commands/validate.ts +1 -5
  203. package/src/core/CONTEXT.md +7 -4
  204. package/src/core/constraints/__tests__/injection-drift.test.ts +164 -0
  205. package/src/core/constraints/__tests__/interceptor.test.ts +4 -0
  206. package/src/core/constraints/capabilities-parser.ts +13 -0
  207. package/src/core/constraints/checker.ts +73 -28
  208. package/src/core/constraints/checkers/capability-sync.ts +72 -29
  209. package/src/core/constraints/checkers/context-doc-sync.ts +9 -2
  210. package/src/core/constraints/checkers/docs-freshness.ts +43 -0
  211. package/src/core/constraints/checkers/index.ts +38 -71
  212. package/src/core/constraints/checkers/iron-flags.ts +13 -49
  213. package/src/core/constraints/checkers/no-hardcoded-credentials.ts +93 -0
  214. package/src/core/constraints/checkers/types.ts +27 -5
  215. package/src/core/constraints/context-builder.ts +28 -19
  216. package/src/core/constraints/definitions/guidelines.ts +29 -597
  217. package/src/core/constraints/definitions/iron-laws.ts +48 -239
  218. package/src/core/constraints/definitions/prompts.ts +419 -0
  219. package/src/core/constraints/definitions.ts +18 -11
  220. package/src/core/constraints/index.ts +10 -1
  221. package/src/core/constraints/injection-drift.ts +139 -0
  222. package/src/core/constraints/injection-renderer.ts +44 -0
  223. package/src/core/constraints/interceptor.ts +3 -2
  224. package/src/core/constraints/usage-report.ts +254 -0
  225. package/src/core/effective-constraints.ts +85 -0
  226. package/src/core/index.ts +4 -1
  227. package/src/core/project-config-loader.ts +59 -9
  228. package/src/dashboard/__tests__/data.test.ts +5 -12
  229. package/src/dashboard/data.ts +9 -19
  230. package/src/dashboard/types.ts +18 -1
  231. package/src/index.ts +0 -12
  232. package/src/knowledge/CONTEXT.md +2 -2
  233. package/src/monitoring/CONTEXT.md +3 -4
  234. package/src/monitoring/index.ts +0 -2
  235. package/src/monitoring/knowledge-evolver.ts +1 -1
  236. package/src/monitoring/trace-analyzer.ts +15 -10
  237. package/src/monitoring/traces.ts +10 -6
  238. package/src/presets/__tests__/standard.test.ts +11 -9
  239. package/src/presets/standard.ts +24 -15
  240. package/src/types/constraint.ts +59 -14
  241. package/src/types/index.ts +1 -3
  242. package/src/types/monitoring-types.ts +2 -84
  243. package/src/types/project-config.ts +30 -1
  244. package/src/types/trace.ts +18 -7
  245. package/src/verification/CONTEXT.md +1 -1
  246. package/dist/cli/commands/flow.d.ts +0 -22
  247. package/dist/cli/commands/flow.d.ts.map +0 -1
  248. package/dist/cli/commands/flow.js +0 -275
  249. package/dist/cli/commands/flow.js.map +0 -1
  250. package/dist/constraints/lifecycle-runner.d.ts +0 -52
  251. package/dist/constraints/lifecycle-runner.d.ts.map +0 -1
  252. package/dist/constraints/lifecycle-runner.js +0 -151
  253. package/dist/constraints/lifecycle-runner.js.map +0 -1
  254. package/dist/constraints/registry.d.ts +0 -27
  255. package/dist/constraints/registry.d.ts.map +0 -1
  256. package/dist/constraints/registry.js +0 -128
  257. package/dist/constraints/registry.js.map +0 -1
  258. package/dist/constraints/types.d.ts +0 -53
  259. package/dist/constraints/types.d.ts.map +0 -1
  260. package/dist/constraints/types.js +0 -8
  261. package/dist/constraints/types.js.map +0 -1
  262. package/dist/core/constraints/checkers/always-pass.d.ts +0 -17
  263. package/dist/core/constraints/checkers/always-pass.d.ts.map +0 -1
  264. package/dist/core/constraints/checkers/always-pass.js +0 -23
  265. package/dist/core/constraints/checkers/always-pass.js.map +0 -1
  266. package/dist/core/constraints/checkers/guideline-flags.d.ts +0 -9
  267. package/dist/core/constraints/checkers/guideline-flags.d.ts.map +0 -1
  268. package/dist/core/constraints/checkers/guideline-flags.js +0 -13
  269. package/dist/core/constraints/checkers/guideline-flags.js.map +0 -1
  270. package/dist/core/constraints/checkers/no-any-type.d.ts +0 -6
  271. package/dist/core/constraints/checkers/no-any-type.d.ts.map +0 -1
  272. package/dist/core/constraints/checkers/no-any-type.js +0 -42
  273. package/dist/core/constraints/checkers/no-any-type.js.map +0 -1
  274. package/dist/core/constraints/checkers/no-excuse-patterns.d.ts +0 -6
  275. package/dist/core/constraints/checkers/no-excuse-patterns.d.ts.map +0 -1
  276. package/dist/core/constraints/checkers/no-excuse-patterns.js +0 -25
  277. package/dist/core/constraints/checkers/no-excuse-patterns.js.map +0 -1
  278. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.d.ts +0 -6
  279. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.d.ts.map +0 -1
  280. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.js +0 -34
  281. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.js.map +0 -1
  282. package/dist/core/constraints/checkers/no-performative-agreement.d.ts +0 -8
  283. package/dist/core/constraints/checkers/no-performative-agreement.d.ts.map +0 -1
  284. package/dist/core/constraints/checkers/no-performative-agreement.js +0 -23
  285. package/dist/core/constraints/checkers/no-performative-agreement.js.map +0 -1
  286. package/dist/core/constraints/checkers/no-simplification-without-approval.d.ts +0 -6
  287. package/dist/core/constraints/checkers/no-simplification-without-approval.d.ts.map +0 -1
  288. package/dist/core/constraints/checkers/no-simplification-without-approval.js +0 -30
  289. package/dist/core/constraints/checkers/no-simplification-without-approval.js.map +0 -1
  290. package/dist/core/constraints/checkers/test-coverage.d.ts +0 -6
  291. package/dist/core/constraints/checkers/test-coverage.d.ts.map +0 -1
  292. package/dist/core/constraints/checkers/test-coverage.js +0 -33
  293. package/dist/core/constraints/checkers/test-coverage.js.map +0 -1
  294. package/dist/core/constraints/checkers/yagni.d.ts +0 -8
  295. package/dist/core/constraints/checkers/yagni.d.ts.map +0 -1
  296. package/dist/core/constraints/checkers/yagni.js +0 -96
  297. package/dist/core/constraints/checkers/yagni.js.map +0 -1
  298. package/dist/core/constraints/definitions/tips.d.ts +0 -7
  299. package/dist/core/constraints/definitions/tips.d.ts.map +0 -1
  300. package/dist/core/constraints/definitions/tips.js +0 -62
  301. package/dist/core/constraints/definitions/tips.js.map +0 -1
  302. package/dist/evolution/auto-evolve.d.ts +0 -35
  303. package/dist/evolution/auto-evolve.d.ts.map +0 -1
  304. package/dist/evolution/auto-evolve.js +0 -64
  305. package/dist/evolution/auto-evolve.js.map +0 -1
  306. package/dist/evolution/index.d.ts +0 -2
  307. package/dist/evolution/index.d.ts.map +0 -1
  308. package/dist/evolution/index.js +0 -18
  309. package/dist/evolution/index.js.map +0 -1
  310. package/dist/monitoring/constraint-evolver.d.ts +0 -120
  311. package/dist/monitoring/constraint-evolver.d.ts.map +0 -1
  312. package/dist/monitoring/constraint-evolver.js +0 -410
  313. package/dist/monitoring/constraint-evolver.js.map +0 -1
  314. package/src/__tests__/constraint-evolver.test.ts +0 -405
  315. package/src/__tests__/doctor-evolver.test.ts +0 -381
  316. package/src/cli/commands/__tests__/flow.test.ts +0 -343
  317. package/src/cli/commands/flow.ts +0 -277
  318. package/src/constraints/__tests__/lifecycle-runner.test.ts +0 -246
  319. package/src/constraints/__tests__/registry.test.ts +0 -196
  320. package/src/constraints/lifecycle-runner.ts +0 -184
  321. package/src/constraints/registry.ts +0 -134
  322. package/src/constraints/types.ts +0 -59
  323. package/src/core/constraints/checkers/always-pass.ts +0 -22
  324. package/src/core/constraints/checkers/guideline-flags.ts +0 -30
  325. package/src/core/constraints/checkers/no-any-type.ts +0 -42
  326. package/src/core/constraints/checkers/no-excuse-patterns.ts +0 -24
  327. package/src/core/constraints/checkers/no-fuzzy-completion-claim.ts +0 -33
  328. package/src/core/constraints/checkers/no-performative-agreement.ts +0 -22
  329. package/src/core/constraints/checkers/no-simplification-without-approval.ts +0 -29
  330. package/src/core/constraints/checkers/test-coverage.ts +0 -35
  331. package/src/core/constraints/checkers/yagni.ts +0 -65
  332. package/src/core/constraints/definitions/tips.ts +0 -63
  333. package/src/evolution/CONTEXT.md +0 -22
  334. package/src/evolution/__tests__/auto-evolve.test.ts +0 -319
  335. package/src/evolution/auto-evolve.ts +0 -98
  336. package/src/evolution/index.ts +0 -1
  337. package/src/monitoring/constraint-evolver.ts +0 -501
package/CHANGELOG.md CHANGED
@@ -4,6 +4,45 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
+ ## [0.17.1] - 2026-08-09
8
+
9
+ ### Changes
10
+ - fix(constraints): 自定义约束 promptInjection 未透传,收编约束进不了注入段
11
+
12
+ ## [0.17.0] - 2026-08-08
13
+
14
+ 约束体系重构(ADR-0001):删除自动进化子系统,确立 check/prompt 二元模型。决策依据见 `docs/adr/0001-constraint-system-rearchitecture.md`。
15
+
16
+ ### BREAKING
17
+ - **删除进化子系统**:`src/evolution/`(`autoEvolve`)、`src/constraints/`(`ConstraintRegistry` + `ConstraintLifecycleRunner`)、`src/monitoring/constraint-evolver.ts`(`ConstraintEvolver`)、diagnosis-rules 降级规则全部移除
18
+ - **删除 `flow` 命令**及 `--auto-apply`;trace 统计展示并入 `harness constraints report`
19
+ - **约束清单 42 → 25**(9 check + 16 prompt),定义文件改为 `definitions/{iron-laws,guidelines,prompts}.ts`;`tips.ts` 删除
20
+ - **`TIPS` 导出变化**:恒为空表并标记 `@deprecated`(仅为在途消费者编译兼容保留,后续删除)
21
+ - 退役 5 条(工具链已覆盖):`no_any_type`、`test_coverage_required`、`no_coverage_decrease`、`readme_required`、`doc_required_for_public_api`
22
+ - 移出内置 2 条(studio 流水线专属,归 studio 自定义约束):`two_stage_review_required`、`prefer_worktree`
23
+ - 工具淘汰 1 条:`read_before_write`(Edit 类工具已机械强制先读后写)
24
+ - 其余合并:`no_implementation_without_requirement`(吸收 review 变体)、`no_fuzzy_completion_claim`(吸收 no_self_approval/no_claim_without_evidence/no_excuse_patterns)、`no_fix_without_root_cause`(吸收 no_fallback_without_root_cause/analysis_verification_gate/diagnosis_to_fix_gate)、`simplest_solution_first`(吸收 no_creation_without_reuse_check/yagni_check)
25
+ - 使用方 config.yml 中被移除条目的 `enabled: false` 残留无害(生效集计算忽略未知 id,`constraints report` 会提示)
26
+
27
+ ### Added
28
+ - **`harness constraints report`**:check 层使用统计(total/pass/fail/skip、fail 率、首末触发)+ 四类退役候选诊断(零触发/零拦截/不可评估/高噪)+ 配置健康(unknownIds 残留)+ 注入漂移小节;`--export [file]` 输出脱敏 markdown 摘要供回传维护者
29
+ - **`harness constraints retire [id] [--reason]`**:交互选择器 + 一次人确认;落盘 config.yml `enabled: false` + `retired` 元数据(at/reason/stats);KnowledgeStore 写决策记录(规则原文+原因+历史统计);自动同步 CLAUDE.md 注入段;删除 config.yml 对应段即可回滚
30
+ - **`getEffectiveConstraints(projectRoot)` 公共 API**:全仓唯一生效集来源——内置 → preset 裁剪 → config.yml 禁用 → custom 追加 → scenes 过滤;init 注入/check/消费方全部走它(`src/core/effective-constraints.ts`,附 `lintEffectiveConfig` 诊断)
31
+ - **skip 语义**:约定未采用(`capability_sync`/`docs_freshness`/`context_doc_sync` 存在性探测)或 flag 未接线 → skipped(satisfied=true,不阻断、不计入通率),trace 记 `result:'skip'`;`detectTrigger` 补 `code_implementation` 推断(代码文件变更),新增 `extraTriggers`
32
+ - **注入漂移校验**:`check` 警告不阻断(版本漂移 ⚠️ 单独显眼提示),`report` 给条目级 diff(`injection-drift.ts`)
33
+ - **config.yml 新增 `scenes: string[]`**:场景专属 prompt(`no_skill_without_test`、`no_model_for_deterministic`)仅在 scenes 命中时进入生效集
34
+ - **`no_hardcoded_credentials` 真 checker**:凭证模式扫描 staged diff(接入 sensitive-check)
35
+ - init:注入段只渲染生效集;Output Style 段标记化(HARNESS_OUTPUT_STYLE_START/END);幂等修复
36
+
37
+ ### Changed(行为变化,发版须知)
38
+ - config.yml 的 `preset` 字段现在**真正影响运行时检查**;`relaxed` = 仅 5 条 check(3 iron + 2 guideline),prompt 全禁用
39
+ - init 注入尊重配置:禁用/裁剪后的约束不再出现在 CLAUDE.md 注入段(注入条目 ~38 → ~21)
40
+ - trace 读写路径统一为 `.harness/logs/traces.log`(`DEFAULT_TRACE_FILE`,`src/types/trace.ts`)
41
+ - `harness check` 输出可能新增注入漂移警告(不阻断)
42
+
43
+ ### Fixed
44
+ - `capability_sync` checker 三处校验缺陷:step1 改为要求每个变更文件都被覆盖(every 而非 some,杜绝漏网);修复 endsWith 后缀碰撞(xfoo.ts 误被 foo.ts 覆盖)与 includes 子串误配(docs/src/foo.tsx 误被 src/foo.ts 覆盖)(含回归测试)
45
+
7
46
  ## [0.16.9] - 2026-08-08
8
47
 
9
48
  ### Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  通用 AI Agent 工程约束框架。
4
4
 
5
- 约束即知识,随模型进化而沉淀。铁律可退化,指南可演化,一切可追溯。
5
+ 约束即知识:运行时检查守住底线,治理回路沉淀经验,一切可追溯。
6
6
 
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
 
@@ -13,8 +13,8 @@
13
13
  Agent 能力强但不可靠。它会跳过测试、声称完成、反复循环、调用危险工具。传统做法是写更长的 Prompt——但 Prompt 只是建议,Agent 可以忽略。
14
14
 
15
15
  Harness 提供两层核心价值:
16
- 1. **运行时约束** — Agent 行动前的代码级检查,不是 Prompt 级建议
17
- 2. **知识沉淀** — 当模型内化了某条规则,约束自动降级为知识记录(KnowledgeStore),保留"这个规则曾经保护过什么"
16
+ 1. **运行时约束** — Agent 行动前的代码级检查,不是 Prompt 级建议。check 层约束带真实 checker(diff 扫描、存在性探测、门控校验),fail 即阻断或告警。对未采用对应约定的项目(如无 CAPABILITIES.md),检查诚实报告 `skip`——不阻断、不计入通过率,绝不拿恒过桩凑数
17
+ 2. **知识沉淀** — 当模型内化了某条规则,人确认后用 `harness constraints retire` 将其退役:规则原文 + 退役原因 + 历史拦截统计一并写入 KnowledgeStore。模型内化了什么,有据可查
18
18
 
19
19
  ---
20
20
 
@@ -43,42 +43,40 @@ await checkBeforeExecution({
43
43
  const meta = await import('child_process').then(cp =>
44
44
  JSON.parse(cp.execSync('npx harness constraints --json', { encoding: 'utf-8' }))
45
45
  );
46
- // { version, hash, counts: { ironLaws, guidelines, tips }, textSize }
46
+ // { version, hash, counts: { ironLaws, guidelines, prompts }, textSize }
47
47
  ```
48
48
 
49
49
  > Agent prompt 注入约束由 `@dommaker/studio-shared` 提供(`formatConstraintsForPrompt(role)`)。
50
50
 
51
51
  ---
52
52
 
53
- ## 三层约束体系
53
+ ## 约束体系:check / prompt 二元模型
54
54
 
55
- | 层级 | 严重性 | 数量 | 行为 |
56
- |------|:--:|:--:|------|
57
- | **Iron Law** | error | 12 | 阻断执行。拦截率 <5% 时自动降为 guideline |
58
- | **Guideline** | warning | 28 | 注入 Agent context。拦截率 <30% 时降为 tip |
59
- | **Tip** | info | 2 | 信息性提示。拦截率 <10% 时标记废弃 |
55
+ | 类别 | 数量 | 行为 |
56
+ |------|:--:|------|
57
+ | **check · Iron Law** | 5 | 代码级检查,违规 throw `ConstraintViolationError` 阻断执行 |
58
+ | **check · Guideline** | 4 | 代码级检查,违规记录 warning 放行 |
59
+ | **prompt** | 16 | 纯文本行为约束,注入 Agent context,不占检查位、不产生 trace 统计 |
60
60
 
61
- 约束定义按层级维护在数据文件中(`src/core/constraints/definitions/{iron-laws,guidelines,tips}.ts`),检查逻辑在 `checkers/` 目录按规则独立实现。完整约束列表见 [CAPABILITIES.md](CAPABILITIES.md)。
61
+ - check 层每条必须带真实 checker(注册表闭环,引用未注册 checker 构建报错);`capability_sync`/`docs_freshness`/`context_doc_sync` 为存在性探测——项目未采用对应约定文件时 skip(不阻断、不计 pass/fail)。
62
+ - prompt 层带角色路由与适用性标签;场景专属条目仅在 config.yml `scenes` 命中时进入生效集。
63
+ - 生效集由 `getEffectiveConstraints(projectRoot)` 统一计算:内置 → preset 裁剪 → config.yml 禁用 → custom 追加 → scenes 过滤。init 注入、`harness check`、外部消费者全部走它。
64
+
65
+ 约束定义按类别维护在数据文件中(`src/core/constraints/definitions/{iron-laws,guidelines,prompts}.ts`),检查逻辑在 `checkers/` 目录按规则独立实现。完整约束列表见 [CAPABILITIES.md](CAPABILITIES.md)。
62
66
 
63
67
  ---
64
68
 
65
- ## 约束生命周期
69
+ ## 约束治理回路
66
70
 
67
- 约束是知识,不是教条。随着模型能力提升,约束会自动降级为知识沉淀:
71
+ 约束是知识,不是教条。约束的进化发生在外环——数据不出门,人确认每一步:
68
72
 
69
73
  ```
70
- active拦截率低于阈值degrade deprecated 写入 KnowledgeStore
71
- ← rollback (可回滚)
74
+ report 观测 retire(人确认)→ 知识沉淀 --export 回传维护者发版演进内置集
72
75
  ```
73
76
 
74
- | 层级 | 退化阈值 | 退化目标 |
75
- |------|---------|---------|
76
- | Iron Law | 拦截率 < 5%(≥100 次检查) | → guideline |
77
- | Guideline | 拦截率 < 30%(≥10 次检查) | → tip |
78
- | Tip | 拦截率 < 10%(≥10 次检查) | → info → deprecated |
79
-
80
- - 退化基于拦截率,不基于日历时间。可手动回滚恢复原级别。
81
- - 降级时写入 **KnowledgeStore**(知识引擎的存储层)——保留规则原文 + 退化原因 + 历史拦截数据。模型内化了什么,有据可查。
77
+ - `harness constraints report` 只读观测:check 层统计、四类退役候选诊断(零触发/零拦截/不可评估/高噪)、配置健康、注入漂移;`--export` 输出脱敏 markdown 摘要,供使用方回传给维护者。
78
+ - `harness constraints retire` — 交互选择退役候选,**执行前保留一次人确认**。落盘为 config.yml `enabled: false` + `retired` 元数据,同时写入 **KnowledgeStore**(规则原文 + 退役原因 + 历史统计),并自动同步 CLAUDE.md 注入段。退役不是删除——删除 config.yml 中对应段即可回滚。
79
+ - 维护者收到回传摘要后编辑内置 definitions 并发版,内置集由此演进。不使用遥测,不做自动降级。
82
80
 
83
81
  ---
84
82
 
@@ -91,8 +89,9 @@ harness validate # 检查点验证(失败退出码 1,可用于 CI 门
91
89
  harness init # 初始化 .harness/ 目录(不覆盖已有运行时配置)
92
90
  harness status # 项目健康状态、统计、异常检测
93
91
  harness constraints # 约束元数据(版本/hash/计数/文本大小)
92
+ harness constraints report # 约束使用报告:统计 + 退役候选诊断 + 配置健康 + 注入漂移(--export 脱敏)
93
+ harness constraints retire # 约束退役:交互选择 + 人确认 → config.yml + KnowledgeStore + 注入段同步
94
94
  harness report # 生成检查报告
95
- harness flow # 一键执行诊断 + 提案流程
96
95
 
97
96
  # 门禁
98
97
  harness passes-gate # 测试门控(别名 pg)
@@ -128,35 +127,37 @@ harness release # npm 发布流水线(tsc → dist 验证 → version
128
127
 
129
128
  ```yaml
130
129
  # .harness/config.yml
131
- preset: standard # strict | standard | relaxed
130
+ preset: standard # strict | standard | relaxed(relaxed 仅启用 5 条 check 约束)
131
+ scenes: [] # 场景标签,命中场景专属 prompt 才进入生效集
132
132
  ```
133
133
 
134
+ `preset` 真实影响运行时检查与注入;`constraints.<id>.enabled: false` 可单独禁用。
135
+
134
136
  ---
135
137
 
136
138
  ## 核心能力
137
139
 
138
140
  | 模块 | 说明 |
139
141
  |------|------|
140
- | 约束引擎 | 三层约束 + 生命周期(自动退化/回滚) |
141
- | 知识引擎 | 约束退化 → KnowledgeStore 沉淀,可检索、可追溯 |
142
+ | 约束引擎 | check/prompt 二元约束 + 生效集合并(`getEffectiveConstraints`)+ 注入渲染/漂移校验 |
143
+ | 知识引擎 | 约束退役 → KnowledgeStore 沉淀(规则原文 + 原因 + 历史统计),可检索、可追溯 |
142
144
  | 门禁系统 | 8 种门禁:测试/验收/性能/安全/契约/审查/命令/检查点 |
143
145
  | 安全护栏 | Input/Output/Tool Guardrail + Sandbox (L1-L4) |
144
146
  | Hook 管线 | 通用 before/after/around hook:注册 → 排序 → 错误隔离 → 采样执行 |
145
- | 上下文/监控 | Token 预算 + 会话压缩 + Trace 诊断 + 约束进化 |
147
+ | 上下文/监控 | Token 预算 + 会话压缩 + Trace 收集/分析 + 约束诊断(ConstraintDoctor) |
146
148
 
147
149
  ### 代码结构
148
150
 
149
151
  ```
150
152
  src/
151
- ├── core/constraints/ # 约束定义(iron-laws/guidelines/tips)+ checkers/
153
+ ├── core/constraints/ # 约束定义(definitions/{iron-laws,guidelines,prompts})+ checkers/ + 注入渲染/漂移校验 + 使用统计
154
+ ├── core/effective-constraints.ts # 生效集唯一来源(内置→preset→config→custom→scenes)
152
155
  ├── core/validators/ # 检查点校验器(check-handlers/)
153
156
  ├── cli/ # CLI 命令实现(sync-docs/ 模块族等)
154
- ├── constraints/ # ConstraintRegistry + 生命周期执行器
155
157
  ├── knowledge/ # 知识引擎(存储/检索/衰减/诊断)
156
158
  ├── gates/ # 各类门禁实现
157
159
  ├── safety/ # 护栏与沙箱
158
- ├── evolution/ # 约束自动演化
159
- └── monitoring/ # Trace 分析与诊断(规则数据化)
160
+ └── monitoring/ # Trace 收集/分析与诊断(规则数据化)
160
161
  ```
161
162
 
162
163
  各目录的 `CONTEXT.md` 是权威模块文档。变更历史见 [CHANGELOG.md](CHANGELOG.md)。
package/bin/harness.js CHANGED
@@ -129,25 +129,6 @@ program
129
129
  });
130
130
  });
131
131
 
132
- // ========================================
133
- // harness flow
134
- // ========================================
135
- program
136
- .command('flow')
137
- .description('一键执行诊断 + 提案流程')
138
- .option('-p, --project-path <path>', '项目路径')
139
- .option('--from <step>', '从哪个步骤开始 (analyze/diagnose/propose)')
140
- .option('--auto-apply', '自动应用低风险提案', false)
141
- .option('--hours <n>', '分析最近 N 小时', '24')
142
- .action(async (options) => {
143
- await cmd('flow')({
144
- projectPath: options.projectPath,
145
- from: options.from,
146
- autoApply: options.autoApply,
147
- hours: parseInt(options.hours, 10),
148
- });
149
- });
150
-
151
132
  // ========================================
152
133
  // harness spec
153
134
  // ========================================
@@ -532,7 +513,7 @@ program
532
513
  // ========================================
533
514
  // harness constraints
534
515
  // ========================================
535
- program
516
+ const constraintsCmd = program
536
517
  .command('constraints')
537
518
  .description('输出约束集合元数据(版本、hash、计数、文本大小)')
538
519
  .option('--json', '输出 JSON 格式', false)
@@ -540,6 +521,38 @@ program
540
521
  await cmd('constraints')(options);
541
522
  });
542
523
 
524
+ constraintsCmd
525
+ .command('report')
526
+ .description('约束使用报告:check 层统计表、退役候选诊断、prompt 注入清单、配置健康(只读)')
527
+ .option('-p, --project-path <path>', '项目路径')
528
+ .option('--export [file]', '导出脱敏 markdown 摘要(缺省 .harness/reports/constraints-<YYYYMMDD>.md)')
529
+ .option('--json', '输出 JSON 格式', false)
530
+ .option('--zero-intercept-min <n>', '零拦截候选的最小评估样本数', '50')
531
+ .option('--noise-fail-rate <rate>', '高噪候选 fail 率阈值', '0.8')
532
+ .option('--noise-min-total <n>', '高噪候选最小评估样本数', '20')
533
+ .action(async (options) => {
534
+ await cmd('constraintsReport')({
535
+ projectPath: options.projectPath,
536
+ export: options.export,
537
+ json: options.json,
538
+ zeroInterceptMin: parseInt(options.zeroInterceptMin, 10),
539
+ noiseFailRate: parseFloat(options.noiseFailRate),
540
+ noiseMinTotal: parseInt(options.noiseMinTotal, 10),
541
+ });
542
+ });
543
+
544
+ constraintsCmd
545
+ .command('retire [id]')
546
+ .description('退役约束:无 id 进入交互式候选选择;带 id 直接退役(写 config.yml + KnowledgeStore + 同步 CLAUDE.md 注入段)')
547
+ .option('-p, --project-path <path>', '项目路径')
548
+ .option('--reason <text>', '退役原因')
549
+ .action(async (id, options) => {
550
+ await cmd('constraintsRetire')(id, {
551
+ projectPath: options.projectPath,
552
+ reason: options.reason,
553
+ });
554
+ });
555
+
543
556
  // ========================================
544
557
  // harness doc-freshness-check
545
558
  // ========================================
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * harness check 命令
3
3
  *
4
- * 检查约束是否满足(三层:Iron Laws / Guidelines / Tips)
5
- * 工单 23:触发条件与证据检测迁至 core/constraints/context-builder;--preset 接入 applyPreset
4
+ * 检查约束是否满足(check 层:Iron Laws / Guidelines;prompt 层仅注入不检查)
5
+ * 工单 23:触发条件与证据检测迁至 core/constraints/context-builder;--preset mergeConstraints 生效
6
+ * ADR-0001:约束集统一走 mergeConstraints 生效集链路(preset/config 禁用/custom/scenes)
6
7
  */
7
8
  import type { ConstraintTrigger } from '../../types/constraint';
8
9
  export interface CheckOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGhE;AAsED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAgC/B"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8IhE;AAgED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAgC/B"}
@@ -2,8 +2,9 @@
2
2
  /**
3
3
  * harness check 命令
4
4
  *
5
- * 检查约束是否满足(三层:Iron Laws / Guidelines / Tips)
6
- * 工单 23:触发条件与证据检测迁至 core/constraints/context-builder;--preset 接入 applyPreset
5
+ * 检查约束是否满足(check 层:Iron Laws / Guidelines;prompt 层仅注入不检查)
6
+ * 工单 23:触发条件与证据检测迁至 core/constraints/context-builder;--preset mergeConstraints 生效
7
+ * ADR-0001:约束集统一走 mergeConstraints 生效集链路(preset/config 禁用/custom/scenes)
7
8
  */
8
9
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
10
  if (k2 === undefined) k2 = k;
@@ -52,7 +53,8 @@ const traces_1 = require("../../monitoring/traces");
52
53
  const definitions_1 = require("../../core/constraints/definitions");
53
54
  const project_config_loader_1 = require("../../core/project-config-loader");
54
55
  const context_builder_1 = require("../../core/constraints/context-builder");
55
- const presets_1 = require("../../presets");
56
+ const injection_drift_1 = require("../../core/constraints/injection-drift");
57
+ const trace_1 = require("../../types/trace");
56
58
  /**
57
59
  * 执行约束检查
58
60
  */
@@ -65,13 +67,22 @@ async function check(options) {
65
67
  const configLoader = new project_config_loader_1.ProjectConfigLoader(projectPath);
66
68
  configLoader.load();
67
69
  checker_1.constraintChecker.setTraceRecorder((0, traces_1.getTraceCollector)());
68
- if (configLoader.hasCustomConfig()) {
69
- const merged = configLoader.mergeConstraints();
70
- checker_1.constraintChecker.setCustomConfig(merged);
70
+ // 生效约束集(ADR-0001):内置 → preset → config.yml 禁用 → custom 追加 → scenes 过滤。
71
+ // --preset 仅在没有项目自定义配置时覆盖 config.yml 的 preset(保持工单 23 语义:
72
+ // 项目自定义配置优先于 CLI 预设)。
73
+ const merged = configLoader.hasCustomConfig()
74
+ ? configLoader.mergeConstraints()
75
+ : configLoader.mergeConstraints({ preset: options.preset || 'standard' });
76
+ checker_1.constraintChecker.setCustomConfig(merged);
77
+ if (merged.custom.length > 0) {
71
78
  console.log(chalk_1.default.gray(`自定义约束: ${merged.custom.length} 条`));
72
- if (merged.disabled.length > 0) {
73
- console.log(chalk_1.default.gray(`已禁用约束: ${merged.disabled.join(', ')}`));
74
- }
79
+ }
80
+ if (merged.disabled.length > 0) {
81
+ console.log(chalk_1.default.gray(`已禁用约束: ${merged.disabled.join(', ')}`));
82
+ }
83
+ const unknownIds = merged.unknownIds ?? [];
84
+ if (unknownIds.length > 0) {
85
+ console.log(chalk_1.default.yellow(`⚠️ 配置中存在未知约束 id(已忽略,可清理): ${unknownIds.join(', ')}`));
75
86
  }
76
87
  // 构建上下文(工单 23:触发条件与证据检测收敛至 core/constraints/context-builder)
77
88
  const context = await (0, context_builder_1.buildConstraintContext)({
@@ -83,25 +94,22 @@ async function check(options) {
83
94
  if (changedFiles.length > 0) {
84
95
  console.log(chalk_1.default.gray(`变更文件: ${changedFiles.length} 个`));
85
96
  }
86
- console.log(chalk_1.default.gray(`触发条件: ${context.operation}`));
87
- // 预设(工单 23:--preset 真正生效;项目自定义配置优先于预设)
88
- let presetConfig;
89
- if (!configLoader.hasCustomConfig()) {
90
- try {
91
- presetConfig = (0, presets_1.applyPreset)(options.preset || 'standard');
92
- }
93
- catch {
94
- presetConfig = undefined; // 未知预设名回退内置全集
95
- }
96
- }
97
+ console.log(chalk_1.default.gray(`触发条件: ${[context.operation, ...(context.extraTriggers ?? [])].join(', ')}`));
97
98
  // 执行三层检查
98
- const result = await checker_1.constraintChecker.checkConstraints(context, presetConfig);
99
+ const result = await checker_1.constraintChecker.checkConstraints(context);
99
100
  // 输出结果
100
101
  console.log();
102
+ // skipped(约定未采用/证据未接线)单独列示,不进 pass/fail 统计(ADR-0001)
103
+ const skippedResults = [
104
+ ...result.ironLaws,
105
+ ...result.guidelines,
106
+ ...result.tips,
107
+ ].filter(r => r.skipped);
101
108
  // Iron Laws
102
- const ironLawViolations = result.ironLaws.filter(r => !r.satisfied);
103
- if (ironLawViolations.length === 0 && result.ironLaws.length > 0) {
104
- console.log(chalk_1.default.green(`✅ 铁律: 全部通过 (${result.ironLaws.length} )`));
109
+ const evaluatedIronLaws = result.ironLaws.filter(r => !r.skipped);
110
+ const ironLawViolations = evaluatedIronLaws.filter(r => !r.satisfied);
111
+ if (ironLawViolations.length === 0 && evaluatedIronLaws.length > 0) {
112
+ console.log(chalk_1.default.green(`✅ 铁律: 全部通过 (${evaluatedIronLaws.length} 条)`));
105
113
  }
106
114
  else if (ironLawViolations.length > 0) {
107
115
  console.log(chalk_1.default.red(`❌ 铁律违规: ${ironLawViolations.length} 条`));
@@ -125,8 +133,9 @@ async function check(options) {
125
133
  });
126
134
  }
127
135
  else if (result.guidelines.length > 0) {
128
- const passedGuidelines = result.guidelines.filter(r => r.satisfied).length;
129
- console.log(chalk_1.default.green(`✅ 指导原则: ${passedGuidelines}/${result.guidelines.length} 通过`));
136
+ const evaluatedGuidelines = result.guidelines.filter(r => !r.skipped);
137
+ const passedGuidelines = evaluatedGuidelines.filter(r => r.satisfied).length;
138
+ console.log(chalk_1.default.green(`✅ 指导原则: ${passedGuidelines}/${evaluatedGuidelines.length} 通过`));
130
139
  }
131
140
  // Tips
132
141
  if (result.tipCount > 0) {
@@ -137,6 +146,35 @@ async function check(options) {
137
146
  }
138
147
  });
139
148
  }
149
+ // Skipped:约定未采用 / 证据未接线,未评估(不计通过/失败)
150
+ if (skippedResults.length > 0) {
151
+ console.log(chalk_1.default.gray(`⏭️ 跳过评估: ${skippedResults.length} 条(约定未采用或证据未接线,不计通过/失败)`));
152
+ skippedResults.forEach(r => {
153
+ console.log(chalk_1.default.gray(` - ${r.id}`));
154
+ });
155
+ }
156
+ // 注入漂移校验(ADR-0001 决策 7):黄色警告块,不改 exit code、不影响门禁结果。
157
+ // 无漂移/未注入零输出;漂移检测自身异常静默吞掉,绝不影响 check。
158
+ try {
159
+ const drift = (0, injection_drift_1.detectInjectionDrift)(projectPath);
160
+ if (drift.hasDrift) {
161
+ console.log();
162
+ console.log(chalk_1.default.yellow('⚠️ 检测到 CLAUDE.md 约束注入漂移(仅警告,不阻断):'));
163
+ if (drift.versionDrift) {
164
+ console.log(chalk_1.default.yellow(` ⚠️⚠️ 注入段版本 (${drift.versionDrift.actual}) ≠ 已安装 harness 版本 (${drift.versionDrift.expected}):agent 上下文中的规则与已安装 harness 版本不一致`));
165
+ }
166
+ if (drift.contentDrift) {
167
+ console.log(chalk_1.default.yellow(` 内容漂移: 缺失 ${drift.contentDrift.missing.length} 条 / 多余 ${drift.contentDrift.extra.length} 条(条目级差异见 harness constraints report)`));
168
+ }
169
+ if (drift.duplicateHeading) {
170
+ console.log(chalk_1.default.yellow(' 检测到重复的 "## Governance Rules" 章节'));
171
+ }
172
+ console.log(chalk_1.default.yellow(` 修复: ${drift.fixHint}`));
173
+ }
174
+ }
175
+ catch {
176
+ // 漂移检测失败不影响 check 结果
177
+ }
140
178
  console.log();
141
179
  console.log(chalk_1.default.green('✅ 约束检查通过'));
142
180
  // 智能提示
@@ -158,7 +196,7 @@ async function check(options) {
158
196
  * 智能提示:检查是否需要提示用户下一步操作
159
197
  */
160
198
  async function getSmartHint(projectPath) {
161
- const tracesPath = path.join(projectPath, '.harness', 'traces', 'execution.log');
199
+ const tracesPath = path.join(projectPath, trace_1.DEFAULT_TRACE_FILE);
162
200
  const statePath = path.join(projectPath, '.harness', '.state.json');
163
201
  // 检查 trace 文件是否存在
164
202
  if (!fs.existsSync(tracesPath)) {
@@ -180,12 +218,7 @@ async function getSmartHint(projectPath) {
180
218
  hints.push('📊 记录已足够,运行 harness status 查看统计');
181
219
  state.shownHints.push('trace_50');
182
220
  }
183
- // 条件 2: 记录数达到 100 且从未运行过诊断
184
- if (traceCount >= 100 && !state.lastDiagnoseRun && !state.shownHints.includes('flow_suggest')) {
185
- hints.push('💡 数据充足,建议运行 harness flow 查看诊断');
186
- state.shownHints.push('flow_suggest');
187
- }
188
- // 条件 3: 检查异常趋势(简单检查绕过率)
221
+ // 条件 2: 检查异常趋势(简单检查绕过率)
189
222
  const bypassCount = lines.filter(line => {
190
223
  try {
191
224
  const trace = JSON.parse(line);
@@ -232,9 +265,9 @@ function listLaws() {
232
265
  }
233
266
  console.log();
234
267
  });
235
- // Tips
236
- console.log(chalk_1.default.blue('🔵 提示 (Tips) - 信息性,可忽略:\n'));
237
- Object.values(definitions_1.TIPS).forEach(constraint => {
268
+ // Prompts(ADR-0001:纯注入层,不执行检查)
269
+ console.log(chalk_1.default.blue('🔵 提示 (Prompts) - 纯文本注入,不参与检查:\n'));
270
+ Object.values(definitions_1.PROMPTS).forEach(constraint => {
238
271
  console.log(chalk_1.default.blue(` ${constraint.id}`));
239
272
  console.log(chalk_1.default.gray(` ${constraint.rule}`));
240
273
  console.log(chalk_1.default.gray(` ${constraint.message}`));
@@ -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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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * harness constraints report —— 约束使用报告(ADR-0001 决策 3/4)
3
+ *
4
+ * 只读。面向"人审约束"场景:
5
+ * - check 层统计表(total/pass/fail/skip、fail 率、首次/最近触发)
6
+ * - 退役候选诊断(零触发/零拦截/不可评估/高噪),retire 交互模式的数据源
7
+ * - 当前生效 prompt 注入清单
8
+ * - 配置健康(unknownIds 残留提示)
9
+ * - --export [file]:脱敏 markdown 摘要(不含项目路径)
10
+ */
11
+ import { type ConstraintsUsageReport } from '../../core/constraints/usage-report';
12
+ import { type InjectionDrift } from '../../core/constraints/injection-drift';
13
+ export interface ConstraintsReportOptions {
14
+ projectPath?: string;
15
+ /** --export [file]:true = 默认路径;string = 指定文件 */
16
+ export?: boolean | string;
17
+ json?: boolean;
18
+ /** 零拦截候选的最小评估样本数 */
19
+ zeroInterceptMin?: number;
20
+ /** 高噪候选 fail 率阈值 */
21
+ noiseFailRate?: number;
22
+ /** 高噪候选最小评估样本数 */
23
+ noiseMinTotal?: number;
24
+ }
25
+ /**
26
+ * 渲染脱敏 markdown 摘要(ADR-0001 决策 4)
27
+ *
28
+ * 脱敏约束:不含 projectPath 等本地敏感信息;
29
+ * 内容为 harness 版本、日期、统计表、候选清单、配置健康。
30
+ */
31
+ export declare function renderExportMarkdown(report: ConstraintsUsageReport, version: string, now?: Date): string;
32
+ /**
33
+ * 渲染"注入漂移"小节的文本行(ADR-0001 决策 7:详细条目级差异进 report)
34
+ *
35
+ * 返回纯文本行数组(不含 chalk 着色),调用方逐行 console.log。
36
+ */
37
+ export declare function renderInjectionDriftLines(drift: InjectionDrift): string[];
38
+ /**
39
+ * CLI handler: harness constraints report
40
+ */
41
+ export declare function constraintsReport(options?: ConstraintsReportOptions): Promise<void>;
42
+ //# sourceMappingURL=constraints-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints-report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAGL,KAAK,sBAAsB,EAI5B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAEnG,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;AAwBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,IAAiB,GACrB,MAAM,CAwCR;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CA8BzE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF7F"}