@dommaker/harness 1.9.0 → 1.11.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 (285) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +9 -12
  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.d.ts.map +1 -1
  20. package/dist/cli/commands/definitions.js +7 -12
  21. package/dist/cli/commands/definitions.js.map +1 -1
  22. package/dist/cli/commands/init.d.ts +0 -32
  23. package/dist/cli/commands/init.d.ts.map +1 -1
  24. package/dist/cli/commands/init.js +7 -149
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/report.d.ts.map +1 -1
  27. package/dist/cli/commands/report.js +14 -17
  28. package/dist/cli/commands/report.js.map +1 -1
  29. package/dist/cli/commands/scaffold-templates.d.ts +1 -3
  30. package/dist/cli/commands/scaffold-templates.d.ts.map +1 -1
  31. package/dist/cli/commands/scaffold-templates.js +2 -53
  32. package/dist/cli/commands/scaffold-templates.js.map +1 -1
  33. package/dist/cli/commands/scaffold.d.ts +0 -2
  34. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  35. package/dist/cli/commands/scaffold.js +0 -10
  36. package/dist/cli/commands/scaffold.js.map +1 -1
  37. package/dist/cli/commands/status.js +10 -10
  38. package/dist/cli/commands/status.js.map +1 -1
  39. package/dist/cli/commands/sync-docs/agents-syncer.d.ts +0 -2
  40. package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
  41. package/dist/cli/commands/sync-docs/agents-syncer.js +4 -23
  42. package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
  43. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  44. package/dist/core/constraints/capabilities-parser.js +16 -4
  45. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  46. package/dist/core/constraints/checker.d.ts +15 -24
  47. package/dist/core/constraints/checker.d.ts.map +1 -1
  48. package/dist/core/constraints/checker.js +33 -72
  49. package/dist/core/constraints/checker.js.map +1 -1
  50. package/dist/core/constraints/checkers/docs-freshness.js +1 -1
  51. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
  52. package/dist/core/constraints/checkers/governance-presence.d.ts +2 -1
  53. package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
  54. package/dist/core/constraints/checkers/governance-presence.js +4 -3
  55. package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
  56. package/dist/core/constraints/checkers/index.d.ts +1 -1
  57. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  58. package/dist/core/constraints/checkers/index.js +4 -8
  59. package/dist/core/constraints/checkers/index.js.map +1 -1
  60. package/dist/core/constraints/checkers/iron-flags.d.ts +3 -4
  61. package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
  62. package/dist/core/constraints/checkers/iron-flags.js +4 -5
  63. package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
  64. package/dist/core/constraints/checkers/no-test-simplification.js +1 -1
  65. package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
  66. package/dist/core/constraints/checkers/types.d.ts +1 -1
  67. package/dist/core/constraints/checkers/types.js +1 -1
  68. package/dist/core/constraints/definitions/guidelines.d.ts +4 -4
  69. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  70. package/dist/core/constraints/definitions/guidelines.js +9 -25
  71. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  72. package/dist/core/constraints/definitions/iron-laws.d.ts +4 -4
  73. package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
  74. package/dist/core/constraints/definitions/iron-laws.js +10 -81
  75. package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
  76. package/dist/core/constraints/definitions.d.ts +7 -9
  77. package/dist/core/constraints/definitions.d.ts.map +1 -1
  78. package/dist/core/constraints/definitions.js +13 -16
  79. package/dist/core/constraints/definitions.js.map +1 -1
  80. package/dist/core/constraints/index.d.ts +2 -5
  81. package/dist/core/constraints/index.d.ts.map +1 -1
  82. package/dist/core/constraints/index.js +3 -13
  83. package/dist/core/constraints/index.js.map +1 -1
  84. package/dist/core/constraints/injection-writer.d.ts +10 -38
  85. package/dist/core/constraints/injection-writer.d.ts.map +1 -1
  86. package/dist/core/constraints/injection-writer.js +17 -54
  87. package/dist/core/constraints/injection-writer.js.map +1 -1
  88. package/dist/core/constraints/run-env.d.ts +1 -10
  89. package/dist/core/constraints/run-env.d.ts.map +1 -1
  90. package/dist/core/constraints/run-env.js +1 -22
  91. package/dist/core/constraints/run-env.js.map +1 -1
  92. package/dist/core/constraints/usage-report.d.ts +6 -8
  93. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  94. package/dist/core/constraints/usage-report.js +6 -11
  95. package/dist/core/constraints/usage-report.js.map +1 -1
  96. package/dist/core/effective-constraints.d.ts +12 -22
  97. package/dist/core/effective-constraints.d.ts.map +1 -1
  98. package/dist/core/effective-constraints.js +13 -30
  99. package/dist/core/effective-constraints.js.map +1 -1
  100. package/dist/core/index.d.ts +2 -2
  101. package/dist/core/index.d.ts.map +1 -1
  102. package/dist/core/index.js +3 -9
  103. package/dist/core/index.js.map +1 -1
  104. package/dist/core/project-config-loader.d.ts +4 -42
  105. package/dist/core/project-config-loader.d.ts.map +1 -1
  106. package/dist/core/project-config-loader.js +16 -125
  107. package/dist/core/project-config-loader.js.map +1 -1
  108. package/dist/core/validators/passes-gate.d.ts +2 -2
  109. package/dist/core/validators/passes-gate.js +6 -6
  110. package/dist/core/validators/passes-gate.js.map +1 -1
  111. package/dist/index.d.ts +9 -10
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +21 -18
  114. package/dist/index.js.map +1 -1
  115. package/dist/knowledge/lint.d.ts +17 -0
  116. package/dist/knowledge/lint.d.ts.map +1 -1
  117. package/dist/knowledge/lint.js +52 -0
  118. package/dist/knowledge/lint.js.map +1 -1
  119. package/dist/knowledge/store.d.ts +7 -0
  120. package/dist/knowledge/store.d.ts.map +1 -1
  121. package/dist/knowledge/store.js +48 -13
  122. package/dist/knowledge/store.js.map +1 -1
  123. package/dist/knowledge/types.d.ts +5 -1
  124. package/dist/knowledge/types.d.ts.map +1 -1
  125. package/dist/knowledge/types.js +5 -1
  126. package/dist/knowledge/types.js.map +1 -1
  127. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  128. package/dist/monitoring/trace-analyzer.js +11 -12
  129. package/dist/monitoring/trace-analyzer.js.map +1 -1
  130. package/dist/monitoring/traces.d.ts +4 -4
  131. package/dist/monitoring/traces.d.ts.map +1 -1
  132. package/dist/monitoring/traces.js +8 -8
  133. package/dist/monitoring/traces.js.map +1 -1
  134. package/dist/presets/standard.d.ts +8 -10
  135. package/dist/presets/standard.d.ts.map +1 -1
  136. package/dist/presets/standard.js +10 -16
  137. package/dist/presets/standard.js.map +1 -1
  138. package/dist/types/constraint.d.ts +24 -35
  139. package/dist/types/constraint.d.ts.map +1 -1
  140. package/dist/types/constraint.js +8 -7
  141. package/dist/types/constraint.js.map +1 -1
  142. package/dist/types/passes-gate.d.ts +5 -5
  143. package/dist/types/passes-gate.d.ts.map +1 -1
  144. package/dist/types/project-config.d.ts +8 -66
  145. package/dist/types/project-config.d.ts.map +1 -1
  146. package/dist/types/project-config.js +3 -2
  147. package/dist/types/project-config.js.map +1 -1
  148. package/dist/types/trace.d.ts +8 -10
  149. package/dist/types/trace.d.ts.map +1 -1
  150. package/package.json +2 -2
  151. package/src/CONTEXT.md +2 -2
  152. package/src/__tests__/checker-extra.test.ts +37 -61
  153. package/src/__tests__/checker.test.ts +10 -115
  154. package/src/__tests__/effective-constraints.test.ts +18 -83
  155. package/src/__tests__/iron-laws.test.ts +71 -90
  156. package/src/__tests__/passes-gate-check.test.ts +2 -2
  157. package/src/__tests__/project-config-loader-extra.test.ts +22 -123
  158. package/src/__tests__/project-config-loader.test.ts +5 -33
  159. package/src/__tests__/public-exports.test.ts +8 -7
  160. package/src/__tests__/public-type-surface.test.ts +7 -5
  161. package/src/__tests__/public-value-surface.test.ts +1 -7
  162. package/src/__tests__/skip-semantics.test.ts +21 -37
  163. package/src/__tests__/trace-analyzer-extra.test.ts +14 -14
  164. package/src/__tests__/trace-analyzer.test.ts +21 -21
  165. package/src/__tests__/trace-collector.test.ts +22 -22
  166. package/src/__tests__/traces.test.ts +27 -28
  167. package/src/__tests__/usage-report-public-export.test.ts +21 -0
  168. package/src/cli/commands/CONTEXT.md +12 -12
  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-json-flag.test.ts +101 -0
  173. package/src/cli/commands/__tests__/constraints-report.test.ts +12 -80
  174. package/src/cli/commands/__tests__/constraints-retire.test.ts +42 -231
  175. package/src/cli/commands/__tests__/init-governance-io.test.ts +12 -58
  176. package/src/cli/commands/__tests__/init-ondisk.test.ts +13 -21
  177. package/src/cli/commands/__tests__/init.test.ts +1 -16
  178. package/src/cli/commands/__tests__/numeric-flag-assembly.test.ts +1 -1
  179. package/src/cli/commands/__tests__/passes-gate-dead-options.test.ts +1 -1
  180. package/src/cli/commands/__tests__/project-path-anchoring.test.ts +2 -2
  181. package/src/cli/commands/__tests__/registry.test.ts +1 -1
  182. package/src/cli/commands/__tests__/report-extra.test.ts +4 -4
  183. package/src/cli/commands/__tests__/report.test.ts +1 -1
  184. package/src/cli/commands/__tests__/scaffold.test.ts +4 -14
  185. package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +3 -3
  186. package/src/cli/commands/__tests__/status-extra.test.ts +14 -14
  187. package/src/cli/commands/__tests__/status.test.ts +12 -12
  188. package/src/cli/commands/__tests__/sync-docs-agents.test.ts +1 -1
  189. package/src/cli/commands/check.ts +43 -82
  190. package/src/cli/commands/constraints-report.ts +4 -59
  191. package/src/cli/commands/constraints-retire.ts +49 -154
  192. package/src/cli/commands/constraints.ts +11 -26
  193. package/src/cli/commands/definitions.ts +7 -12
  194. package/src/cli/commands/init.ts +8 -179
  195. package/src/cli/commands/report.ts +19 -23
  196. package/src/cli/commands/scaffold-templates.ts +1 -53
  197. package/src/cli/commands/scaffold.ts +0 -11
  198. package/src/cli/commands/status.ts +10 -10
  199. package/src/cli/commands/sync-docs/agents-syncer.ts +4 -25
  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 +9 -16
  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/__tests__/bootstrap.test.ts +3 -5
  231. package/src/index.ts +28 -18
  232. package/src/knowledge/CONTEXT.md +4 -3
  233. package/src/knowledge/__tests__/lint.test.ts +84 -0
  234. package/src/knowledge/__tests__/store.test.ts +70 -0
  235. package/src/knowledge/lint.ts +60 -1
  236. package/src/knowledge/store.ts +48 -11
  237. package/src/knowledge/types.ts +7 -1
  238. package/src/monitoring/CONTEXT.md +1 -1
  239. package/src/monitoring/__tests__/trace-file-anchoring.test.ts +1 -1
  240. package/src/monitoring/__tests__/traces.test.ts +22 -22
  241. package/src/monitoring/trace-analyzer.ts +12 -13
  242. package/src/monitoring/traces.ts +8 -8
  243. package/src/presets/__tests__/standard.test.ts +12 -16
  244. package/src/presets/standard.ts +14 -23
  245. package/src/types/__tests__/types.test.ts +3 -3
  246. package/src/types/constraint.ts +26 -40
  247. package/src/types/passes-gate.ts +5 -5
  248. package/src/types/project-config.ts +8 -77
  249. package/src/types/trace.ts +8 -11
  250. package/dist/cli/commands/posteval-plan.d.ts +0 -15
  251. package/dist/cli/commands/posteval-plan.d.ts.map +0 -1
  252. package/dist/cli/commands/posteval-plan.js +0 -86
  253. package/dist/cli/commands/posteval-plan.js.map +0 -1
  254. package/dist/core/constraints/agent-prompt-renderer.d.ts +0 -32
  255. package/dist/core/constraints/agent-prompt-renderer.d.ts.map +0 -1
  256. package/dist/core/constraints/agent-prompt-renderer.js +0 -55
  257. package/dist/core/constraints/agent-prompt-renderer.js.map +0 -1
  258. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +0 -6
  259. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +0 -1
  260. package/dist/core/constraints/checkers/no-bypass-checkpoint.js +0 -40
  261. package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +0 -1
  262. package/dist/core/constraints/definitions/prompts.d.ts +0 -12
  263. package/dist/core/constraints/definitions/prompts.d.ts.map +0 -1
  264. package/dist/core/constraints/definitions/prompts.js +0 -400
  265. package/dist/core/constraints/definitions/prompts.js.map +0 -1
  266. package/dist/core/constraints/injection-drift.d.ts +0 -61
  267. package/dist/core/constraints/injection-drift.d.ts.map +0 -1
  268. package/dist/core/constraints/injection-drift.js +0 -131
  269. package/dist/core/constraints/injection-drift.js.map +0 -1
  270. package/dist/core/constraints/injection-renderer.d.ts +0 -23
  271. package/dist/core/constraints/injection-renderer.d.ts.map +0 -1
  272. package/dist/core/constraints/injection-renderer.js +0 -44
  273. package/dist/core/constraints/injection-renderer.js.map +0 -1
  274. package/src/cli/commands/__tests__/check-drift.test.ts +0 -158
  275. package/src/cli/commands/__tests__/init-injection.test.ts +0 -466
  276. package/src/cli/commands/__tests__/posteval-plan.test.ts +0 -204
  277. package/src/cli/commands/posteval-plan.ts +0 -98
  278. package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +0 -129
  279. package/src/core/constraints/__tests__/injection-drift.test.ts +0 -247
  280. package/src/core/constraints/agent-prompt-renderer.ts +0 -67
  281. package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +0 -76
  282. package/src/core/constraints/checkers/no-bypass-checkpoint.ts +0 -40
  283. package/src/core/constraints/definitions/prompts.ts +0 -414
  284. package/src/core/constraints/injection-drift.ts +0 -142
  285. package/src/core/constraints/injection-renderer.ts +0 -44
@@ -2,36 +2,33 @@
2
2
  /**
3
3
  * 约束定义(薄聚合层)
4
4
  *
5
- * kind 二元模型(ADR-0001):
6
- * - IRON_LAWS / GUIDELINES:check 层,必须带真实 checker(注册表闭环)
7
- * - PROMPTS:prompt 层,纯文本注入,不占检查位
5
+ * severity 显式模型(ADR-0029,取代 ADR-0001 三层命名):
6
+ * 全部内置约束 kind='check',severity 写死在定义上(error / warning),
7
+ * 纯文本提示层(prompts.ts)已随文本注入层关停整体删除。
8
8
  *
9
- * 工单 20:字面量定义按层拆至 ./definitions/{iron-laws,guidelines,prompts}.ts;
9
+ * 工单 20:字面量定义按 severity 分组放 ./definitions/{iron-laws,guidelines}.ts;
10
10
  * 本文件保持原路径做薄聚合(studio rule-scanner 按此路径解析,P0 #8)。
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.PROMPTS = exports.GUIDELINES = exports.IRON_LAWS = void 0;
13
+ exports.CONSTRAINTS = void 0;
14
14
  exports.getAllConstraints = getAllConstraints;
15
15
  exports.findConstraintsByTrigger = findConstraintsByTrigger;
16
16
  exports.getConstraint = getConstraint;
17
17
  const iron_laws_1 = require("./definitions/iron-laws");
18
- Object.defineProperty(exports, "IRON_LAWS", { enumerable: true, get: function () { return iron_laws_1.IRON_LAWS; } });
19
18
  const guidelines_1 = require("./definitions/guidelines");
20
- Object.defineProperty(exports, "GUIDELINES", { enumerable: true, get: function () { return guidelines_1.GUIDELINES; } });
21
- const prompts_1 = require("./definitions/prompts");
22
- Object.defineProperty(exports, "PROMPTS", { enumerable: true, get: function () { return prompts_1.PROMPTS; } });
19
+ /** 全部内置约束(check 层全量,severity 在条目上) */
20
+ exports.CONSTRAINTS = {
21
+ ...iron_laws_1.ERROR_CONSTRAINTS,
22
+ ...guidelines_1.WARNING_CONSTRAINTS,
23
+ };
23
24
  // ========================================
24
25
  // 辅助函数
25
26
  // ========================================
26
27
  /**
27
- * 获取所有约束(check + prompt 全量,带 kind)
28
+ * 获取所有约束(check 全量,带 kind/severity
28
29
  */
29
30
  function getAllConstraints() {
30
- return [
31
- ...Object.values(iron_laws_1.IRON_LAWS),
32
- ...Object.values(guidelines_1.GUIDELINES),
33
- ...Object.values(prompts_1.PROMPTS),
34
- ];
31
+ return Object.values(exports.CONSTRAINTS);
35
32
  }
36
33
  /**
37
34
  * 根据触发条件查找适用的约束
@@ -46,6 +43,6 @@ function findConstraintsByTrigger(trigger) {
46
43
  * 根据 ID 获取约束
47
44
  */
48
45
  function getConstraint(id) {
49
- return iron_laws_1.IRON_LAWS[id] || guidelines_1.GUIDELINES[id] || prompts_1.PROMPTS[id];
46
+ return exports.CONSTRAINTS[id];
50
47
  }
51
48
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAgBH,8CAMC;AAKD,4DAKC;AAKD,sCAEC;AApCD,uDAAoD;AAI3C,0FAJA,qBAAS,OAIA;AAHlB,yDAAsD;AAGlC,2FAHX,uBAAU,OAGW;AAF9B,mDAAgD;AAEhB,wFAFvB,iBAAO,OAEuB;AAEvC,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAE3C;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAS,CAAC;QAC3B,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAU,CAAC;QAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAO,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,OAA0B;IACjE,OAAO,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,EAAU;IACtC,OAAO,qBAAS,CAAC,EAAE,CAAC,IAAI,uBAAU,CAAC,EAAE,CAAC,IAAI,iBAAO,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAmBH,8CAEC;AAKD,4DAKC;AAKD,sCAEC;AAnCD,uDAA4D;AAC5D,yDAA+D;AAE/D,sCAAsC;AACzB,QAAA,WAAW,GAA+B;IACrD,GAAG,6BAAiB;IACpB,GAAG,gCAAmB;CACvB,CAAC;AAEF,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAE3C;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,OAA0B;IACjE,OAAO,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,EAAU;IACtC,OAAO,mBAAW,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC"}
@@ -1,14 +1,11 @@
1
1
  /**
2
2
  * 约束模块入口
3
3
  */
4
- export { IRON_LAWS, GUIDELINES, PROMPTS, getAllConstraints, findConstraintsByTrigger, getConstraint, } from './definitions';
4
+ export { CONSTRAINTS, getAllConstraints, findConstraintsByTrigger, getConstraint, } from './definitions';
5
5
  export { ConstraintChecker, checkConstraint, checkConstraints, checkBeforeExecution, constraintChecker, } from './checker';
6
6
  export type { CheckConstraintsOptions, TraceRecorder } from './checker';
7
- export { CONSTRAINTS_START_MARKER, CONSTRAINTS_END_MARKER, renderConstraintsSection, } from './injection-renderer';
8
7
  export { CheckCache } from './check-cache';
9
8
  export type { CheckCacheConfig, CheckSamplingConfig } from './check-cache';
10
- export { renderConstraintsByTrigger, } from './agent-prompt-renderer';
11
- export type { RenderConstraintsByTriggerOptions } from './agent-prompt-renderer';
12
- export type { ConstraintId, ConstraintKind, ConstraintLevel, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from '../../types/constraint';
9
+ export type { ConstraintId, ConstraintKind, ConstraintSeverity, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from '../../types/constraint';
13
10
  export { ConstraintViolationError } from '../../types/constraint';
14
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EACL,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAGjF,YAAY,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG3E,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -3,12 +3,10 @@
3
3
  * 约束模块入口
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ConstraintViolationError = exports.renderConstraintsByTrigger = exports.CheckCache = exports.renderConstraintsSection = exports.CONSTRAINTS_END_MARKER = exports.CONSTRAINTS_START_MARKER = exports.constraintChecker = exports.checkBeforeExecution = exports.checkConstraints = exports.checkConstraint = exports.ConstraintChecker = exports.getConstraint = exports.findConstraintsByTrigger = exports.getAllConstraints = exports.PROMPTS = exports.GUIDELINES = exports.IRON_LAWS = void 0;
7
- // 约束定义(kind 二元:check + prompt 层)
6
+ exports.ConstraintViolationError = exports.CheckCache = exports.constraintChecker = exports.checkBeforeExecution = exports.checkConstraints = exports.checkConstraint = exports.ConstraintChecker = exports.getConstraint = exports.findConstraintsByTrigger = exports.getAllConstraints = exports.CONSTRAINTS = void 0;
7
+ // 约束定义(check 全量,severity 在条目上)
8
8
  var definitions_1 = require("./definitions");
9
- Object.defineProperty(exports, "IRON_LAWS", { enumerable: true, get: function () { return definitions_1.IRON_LAWS; } });
10
- Object.defineProperty(exports, "GUIDELINES", { enumerable: true, get: function () { return definitions_1.GUIDELINES; } });
11
- Object.defineProperty(exports, "PROMPTS", { enumerable: true, get: function () { return definitions_1.PROMPTS; } });
9
+ Object.defineProperty(exports, "CONSTRAINTS", { enumerable: true, get: function () { return definitions_1.CONSTRAINTS; } });
12
10
  Object.defineProperty(exports, "getAllConstraints", { enumerable: true, get: function () { return definitions_1.getAllConstraints; } });
13
11
  Object.defineProperty(exports, "findConstraintsByTrigger", { enumerable: true, get: function () { return definitions_1.findConstraintsByTrigger; } });
14
12
  Object.defineProperty(exports, "getConstraint", { enumerable: true, get: function () { return definitions_1.getConstraint; } });
@@ -19,17 +17,9 @@ Object.defineProperty(exports, "checkConstraint", { enumerable: true, get: funct
19
17
  Object.defineProperty(exports, "checkConstraints", { enumerable: true, get: function () { return checker_1.checkConstraints; } });
20
18
  Object.defineProperty(exports, "checkBeforeExecution", { enumerable: true, get: function () { return checker_1.checkBeforeExecution; } });
21
19
  Object.defineProperty(exports, "constraintChecker", { enumerable: true, get: function () { return checker_1.constraintChecker; } });
22
- // CLAUDE.md 约束注入段渲染(纯函数,init 注入与漂移校验共用)
23
- var injection_renderer_1 = require("./injection-renderer");
24
- Object.defineProperty(exports, "CONSTRAINTS_START_MARKER", { enumerable: true, get: function () { return injection_renderer_1.CONSTRAINTS_START_MARKER; } });
25
- Object.defineProperty(exports, "CONSTRAINTS_END_MARKER", { enumerable: true, get: function () { return injection_renderer_1.CONSTRAINTS_END_MARKER; } });
26
- Object.defineProperty(exports, "renderConstraintsSection", { enumerable: true, get: function () { return injection_renderer_1.renderConstraintsSection; } });
27
20
  // 约束检查缓存(H6/G5:TTL 缓存 + 计数采样,公开导出)
28
21
  var check_cache_1 = require("./check-cache");
29
22
  Object.defineProperty(exports, "CheckCache", { enumerable: true, get: function () { return check_cache_1.CheckCache; } });
30
- // Agent prompt 约束段渲染(H6/G6:trigger 参数化分组渲染,role 路由留 studio)
31
- var agent_prompt_renderer_1 = require("./agent-prompt-renderer");
32
- Object.defineProperty(exports, "renderConstraintsByTrigger", { enumerable: true, get: function () { return agent_prompt_renderer_1.renderConstraintsByTrigger; } });
33
23
  var constraint_1 = require("../../types/constraint");
34
24
  Object.defineProperty(exports, "ConstraintViolationError", { enumerable: true, get: function () { return constraint_1.ConstraintViolationError; } });
35
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mCAAmC;AACnC,6CAOuB;AANrB,wGAAA,SAAS,OAAA;AACT,yGAAA,UAAU,OAAA;AACV,sGAAA,OAAO,OAAA;AACP,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,4GAAA,aAAa,OAAA;AAGf,QAAQ;AACR,qCAMmB;AALjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,+GAAA,oBAAoB,OAAA;AACpB,4GAAA,iBAAiB,OAAA;AAInB,wCAAwC;AACxC,2DAI8B;AAH5B,8HAAA,wBAAwB,OAAA;AACxB,4HAAA,sBAAsB,OAAA;AACtB,8HAAA,wBAAwB,OAAA;AAG1B,mCAAmC;AACnC,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAGnB,4DAA4D;AAC5D,iEAEiC;AAD/B,mIAAA,0BAA0B,OAAA;AAiB5B,qDAAkE;AAAzD,sHAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAA+B;AAC/B,6CAKuB;AAJrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,4GAAA,aAAa,OAAA;AAGf,QAAQ;AACR,qCAMmB;AALjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,+GAAA,oBAAoB,OAAA;AACpB,4GAAA,iBAAiB,OAAA;AAInB,mCAAmC;AACnC,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAgBnB,qDAAkE;AAAzD,sHAAA,wBAAwB,OAAA"}
@@ -1,33 +1,24 @@
1
1
  /**
2
- * 治理注入段落点写入器(架构评审候选1,ADR-0011)
2
+ * 标记区间写入器 + 治理正本探测(架构评审候选1,ADR-0011)
3
3
  *
4
- * 「按渲染 body 替换标记区间 + 尾换行规一」的切片数学此前手抄 4 份
5
- * (init.ts 三个 writer / constraints-retire 一份),落点路由读写两侧各抄一份。
6
- * 本模块是唯一 writer:init/retire 退化为「渲染 body + 调 writer」。
4
+ * ADR-0029:约束注入段(HARNESS_CONSTRAINTS)已整体关停——本模块不再承担
5
+ * 注入段渲染/落点路由(resolveInjectionTarget / resolveGovernanceLanding 随删),
6
+ * 保留的是通用机制:
7
7
  *
8
- * 形状两种(排版约定不同,非"算哪些"的差异,故合法分叉):
8
+ * 「按渲染 body 替换标记区间 + 尾换行规一」的切片数学。形状两种
9
+ * (排版约定不同,非"算哪些"的差异,故合法分叉):
9
10
  * - replaceStandaloneRange:区间独立成节,END 标记后折叠为恰好一个空行
10
- * (CLAUDE.md 约束段 / Output Style 段 / retire 注入段同步)
11
+ * (CLAUDE.md Output Style 段)
11
12
  * - replaceEnclosedRange:区间后紧跟外层收口标记(AGENTS.md PRESERVE 段内
12
- * 的 HARNESS_CONSTRAINTS 区间)——恰好剥一个换行,手写余文原样落回
13
+ * 区间)——恰好剥一个换行,手写余文原样落回
13
14
  *
14
15
  * 半标记守护:单边缺失或顺序颠倒 → 'half',拒写(旧实现此时或追加出双份
15
16
  * 正本或产生乱序切片,属二次损坏路径,收紧为告警交人工,见 ADR-0011)。
16
17
  *
17
- * 落点路由同规则一份:
18
- * - resolveInjectionTarget:读侧(漂移检测/retire 同步)——CLAUDE.md 有完整
19
- * 标记段优先(旧模型仓豁免),否则 AGENTS.md(新模型仓住 PRESERVE 段内)
20
- * - resolveGovernanceLanding:写侧(init 落点选择)——额外承认 CLAUDE.md
21
- * 无标记的 `## Governance Rules` 旧块(续写不制造双份正本)
22
- *
23
18
  * 探测/判定同住本模块(#83,ADR-0011 补注:收口范围含探测器,不只写器)——
24
- * 「这份文档里有没有治理契约 / 有几个正本标题」此前手抄 4 份且正则已漂移,
25
- * 见文末 GOVERNANCE_HEADING / hasGovernanceContract / countGovernanceHeadings /
26
- * hasPreserveBlock。
19
+ * 「这份文档里有没有治理契约 / 有几个正本标题」,见文末 GOVERNANCE_HEADING /
20
+ * hasGovernanceContract / countGovernanceHeadings / hasPreserveBlock。
27
21
  */
28
- /** 注入段落点文件名(检测顺序即路由优先级:旧模型仓 CLAUDE.md 优先) */
29
- export declare const INJECTION_FILES: readonly ["CLAUDE.md", "AGENTS.md"];
30
- export type InjectionFile = (typeof INJECTION_FILES)[number];
31
22
  /** 标记区间替换结果 */
32
23
  export type MarkerWrite = {
33
24
  kind: 'updated';
@@ -60,25 +51,6 @@ export declare function replaceStandaloneRange(content: string, begin: string, e
60
51
  * 区间后文恰好剥一个换行(外层标记拼接位),其余手写余文原样保留。
61
52
  */
62
53
  export declare function replaceEnclosedRange(content: string, begin: string, end: string, body: string): MarkerWrite;
63
- /**
64
- * 读侧路由:定位含完整 HARNESS_CONSTRAINTS 标记段的文件(studio #307)。
65
- * detectInjectionDrift 与 retire 注入段同步共用。
66
- */
67
- export declare function resolveInjectionTarget(projectRoot: string): {
68
- file: InjectionFile;
69
- content: string;
70
- startIdx: number;
71
- endIdx: number;
72
- } | null;
73
- /**
74
- * 写侧路由(init 落点选择,原 setupGovernanceConstraints 内联判定收于此):
75
- * CLAUDE.md 有约束标记段或有旧版 `## Governance Rules` 块 → 续写 CLAUDE.md
76
- * (旧模型仓豁免,不制造双份正本);否则 AGENTS.md PRESERVE:governance。
77
- */
78
- export declare function resolveGovernanceLanding(projectRoot: string): {
79
- target: 'claude-md' | 'agents-md';
80
- claudeContent: string | null;
81
- };
82
54
  /**
83
55
  * 治理正本标题字面量(单一来源,#83):init 的标题写点与下列两个判定谓词
84
56
  * 都由它派生,仓内不再本地拼写。字面量无正则元字符,可直接拼入 RegExp。
@@ -1 +1 @@
1
- {"version":3,"file":"injection-writer.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/injection-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AASH,6CAA6C;AAC7C,eAAO,MAAM,eAAe,qCAAsC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAe;AACf,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO5D;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAQ3G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAQ7G;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAQ3G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWnF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,GAClB;IAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAMrE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAcxD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAevE"}
1
+ {"version":3,"file":"injection-writer.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/injection-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,eAAe;AACf,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO5D;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAQ3G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAQ7G;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAQ3G;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAkBxD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAevE"}
@@ -1,30 +1,24 @@
1
1
  "use strict";
2
2
  /**
3
- * 治理注入段落点写入器(架构评审候选1,ADR-0011)
3
+ * 标记区间写入器 + 治理正本探测(架构评审候选1,ADR-0011)
4
4
  *
5
- * 「按渲染 body 替换标记区间 + 尾换行规一」的切片数学此前手抄 4 份
6
- * (init.ts 三个 writer / constraints-retire 一份),落点路由读写两侧各抄一份。
7
- * 本模块是唯一 writer:init/retire 退化为「渲染 body + 调 writer」。
5
+ * ADR-0029:约束注入段(HARNESS_CONSTRAINTS)已整体关停——本模块不再承担
6
+ * 注入段渲染/落点路由(resolveInjectionTarget / resolveGovernanceLanding 随删),
7
+ * 保留的是通用机制:
8
8
  *
9
- * 形状两种(排版约定不同,非"算哪些"的差异,故合法分叉):
9
+ * 「按渲染 body 替换标记区间 + 尾换行规一」的切片数学。形状两种
10
+ * (排版约定不同,非"算哪些"的差异,故合法分叉):
10
11
  * - replaceStandaloneRange:区间独立成节,END 标记后折叠为恰好一个空行
11
- * (CLAUDE.md 约束段 / Output Style 段 / retire 注入段同步)
12
+ * (CLAUDE.md Output Style 段)
12
13
  * - replaceEnclosedRange:区间后紧跟外层收口标记(AGENTS.md PRESERVE 段内
13
- * 的 HARNESS_CONSTRAINTS 区间)——恰好剥一个换行,手写余文原样落回
14
+ * 区间)——恰好剥一个换行,手写余文原样落回
14
15
  *
15
16
  * 半标记守护:单边缺失或顺序颠倒 → 'half',拒写(旧实现此时或追加出双份
16
17
  * 正本或产生乱序切片,属二次损坏路径,收紧为告警交人工,见 ADR-0011)。
17
18
  *
18
- * 落点路由同规则一份:
19
- * - resolveInjectionTarget:读侧(漂移检测/retire 同步)——CLAUDE.md 有完整
20
- * 标记段优先(旧模型仓豁免),否则 AGENTS.md(新模型仓住 PRESERVE 段内)
21
- * - resolveGovernanceLanding:写侧(init 落点选择)——额外承认 CLAUDE.md
22
- * 无标记的 `## Governance Rules` 旧块(续写不制造双份正本)
23
- *
24
19
  * 探测/判定同住本模块(#83,ADR-0011 补注:收口范围含探测器,不只写器)——
25
- * 「这份文档里有没有治理契约 / 有几个正本标题」此前手抄 4 份且正则已漂移,
26
- * 见文末 GOVERNANCE_HEADING / hasGovernanceContract / countGovernanceHeadings /
27
- * hasPreserveBlock。
20
+ * 「这份文档里有没有治理契约 / 有几个正本标题」,见文末 GOVERNANCE_HEADING /
21
+ * hasGovernanceContract / countGovernanceHeadings / hasPreserveBlock。
28
22
  */
29
23
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
30
24
  if (k2 === undefined) k2 = k;
@@ -60,21 +54,15 @@ var __importStar = (this && this.__importStar) || (function () {
60
54
  };
61
55
  })();
62
56
  Object.defineProperty(exports, "__esModule", { value: true });
63
- exports.GOVERNANCE_HEADING = exports.INJECTION_FILES = void 0;
57
+ exports.GOVERNANCE_HEADING = void 0;
64
58
  exports.readIfExists = readIfExists;
65
59
  exports.cutMarkerBlock = cutMarkerBlock;
66
60
  exports.replaceStandaloneRange = replaceStandaloneRange;
67
61
  exports.replaceEnclosedRange = replaceEnclosedRange;
68
- exports.resolveInjectionTarget = resolveInjectionTarget;
69
- exports.resolveGovernanceLanding = resolveGovernanceLanding;
70
62
  exports.hasGovernanceContract = hasGovernanceContract;
71
63
  exports.countGovernanceHeadings = countGovernanceHeadings;
72
64
  exports.hasPreserveBlock = hasPreserveBlock;
73
65
  const fs = __importStar(require("fs"));
74
- const path = __importStar(require("path"));
75
- const injection_renderer_1 = require("./injection-renderer");
76
- /** 注入段落点文件名(检测顺序即路由优先级:旧模型仓 CLAUDE.md 优先) */
77
- exports.INJECTION_FILES = ['CLAUDE.md', 'AGENTS.md'];
78
66
  function readIfExists(filePath) {
79
67
  try {
80
68
  const content = fs.readFileSync(filePath, 'utf-8');
@@ -136,35 +124,6 @@ function replaceEnclosedRange(content, begin, end, body) {
136
124
  content: content.slice(0, pair.startIdx) + body + tail,
137
125
  };
138
126
  }
139
- /**
140
- * 读侧路由:定位含完整 HARNESS_CONSTRAINTS 标记段的文件(studio #307)。
141
- * detectInjectionDrift 与 retire 注入段同步共用。
142
- */
143
- function resolveInjectionTarget(projectRoot) {
144
- for (const file of exports.INJECTION_FILES) {
145
- const content = readIfExists(path.join(projectRoot, file));
146
- if (content === null)
147
- continue;
148
- const startIdx = content.indexOf(injection_renderer_1.CONSTRAINTS_START_MARKER);
149
- const endIdx = content.indexOf(injection_renderer_1.CONSTRAINTS_END_MARKER);
150
- if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
151
- return { file, content, startIdx, endIdx };
152
- }
153
- }
154
- return null;
155
- }
156
- /**
157
- * 写侧路由(init 落点选择,原 setupGovernanceConstraints 内联判定收于此):
158
- * CLAUDE.md 有约束标记段或有旧版 `## Governance Rules` 块 → 续写 CLAUDE.md
159
- * (旧模型仓豁免,不制造双份正本);否则 AGENTS.md PRESERVE:governance。
160
- */
161
- function resolveGovernanceLanding(projectRoot) {
162
- const claudeContent = readIfExists(path.join(projectRoot, 'CLAUDE.md'));
163
- if (claudeContent !== null && hasGovernanceContract(claudeContent)) {
164
- return { target: 'claude-md', claudeContent };
165
- }
166
- return { target: 'agents-md', claudeContent };
167
- }
168
127
  /**
169
128
  * 治理正本标题字面量(单一来源,#83):init 的标题写点与下列两个判定谓词
170
129
  * 都由它派生,仓内不再本地拼写。字面量无正则元字符,可直接拼入 RegExp。
@@ -180,8 +139,12 @@ const GOVERNANCE_HEADING_TEXT = exports.GOVERNANCE_HEADING.replace(/^##\s+/, '')
180
139
  const GOVERNANCE_HEADING_LOOSE_RE = new RegExp(`^##\\s+${GOVERNANCE_HEADING_TEXT}`, 'm');
181
140
  /** 严格标题正则:精确拼写 + 行尾锚定(行尾仅容忍空白) */
182
141
  const GOVERNANCE_HEADING_STRICT_RE = new RegExp(`^${exports.GOVERNANCE_HEADING}[ \\t]*$`, 'gm');
183
- /** 约束标记裸文本(去注释壳),宽松谓词按「标记文本在场」判定,容忍壳残缺 */
184
- const CONSTRAINTS_START_TEXT = injection_renderer_1.CONSTRAINTS_START_MARKER.replace(/^<!--\s*|\s*-->$/g, '');
142
+ /**
143
+ * 历史注入段标记裸文本(ADR-0029:注入段已关停,此处仅作历史兼容判据——
144
+ * 旧仓残留的 HARNESS_CONSTRAINTS 段仍算治理契约在场)。宽松谓词按「标记文本
145
+ * 在场」判定,容忍注释壳残缺。
146
+ */
147
+ const CONSTRAINTS_START_TEXT = 'HARNESS_CONSTRAINTS_START';
185
148
  /**
186
149
  * 宽松谓词:内容里是否有治理契约在场——标题宽松匹配或 HARNESS 约束标记
187
150
  * 文本在场即算。fail-open 偏向:排版漂移宁可信其有,漏报「约束正本静默
@@ -1 +1 @@
1
- {"version":3,"file":"injection-writer.js","sourceRoot":"","sources":["../../../src/core/constraints/injection-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injection-writer.js","sourceRoot":"","sources":["../../../src/core/constraints/injection-writer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * 运行级观察面(ADR-0023 决策 1)
3
3
  *
4
4
  * 一次 `harness check` 一份、跑完即弃:把「本项目有哪些源码根」「最近的 trace 记录」
5
- * 「`.harness/config.yml` 与自定义约束文件写了什么」这类上行数据的读取收在此处,
5
+ * 「`.harness/config.yml` 写了什么」这类上行数据的读取收在此处,
6
6
  * 同一次运行内每个文件至多读一次。
7
7
  *
8
8
  * 为什么不是一个对象而是两个:checker 拿到的 `CheckEnv` 里含 `context`,而 `context` 正是
@@ -15,7 +15,6 @@
15
15
  import { type CapabilityVerdict } from './capabilities-reconcile';
16
16
  import { type JsonlReadResult } from '../../utils/jsonl';
17
17
  import { type ExecutionTrace } from '../../types/trace';
18
- import type { CustomConstraintDefinition } from '../../types/project-config';
19
18
  /** 能力表在项目根下的落点(checker 侧存在性探测与本读面共用此常量) */
20
19
  export declare const CAPABILITIES_FILE_REL = "CAPABILITIES.md";
21
20
  /**
@@ -38,14 +37,6 @@ export interface RunEnv {
38
37
  * 空文件 → `{}`;YAML 解析失败 → **抛出**(兜底与否属各消费方的判定,不在读面上替它决定)。
39
38
  */
40
39
  rawConfig(): Record<string, unknown> | undefined;
41
- /**
42
- * `.harness/<fileName>` 里的自定义约束定义(一次运行内同名文件至多读一次)
43
- *
44
- * 文件名由消费方(ProjectConfigLoader)从合并后的 config 解析后传入——
45
- * 「`custom_constraints_file` 怎么写才算数」属加载器口径,不在读面上判。
46
- * 文件缺失或无 `custom_constraints` 段 → `{}`(与改前的直读逐字一致)。
47
- */
48
- customConstraints(fileName: string): Record<string, CustomConstraintDefinition>;
49
40
  /**
50
41
  * `CAPABILITIES.md` 的读取 + 解析 + 与代码实况的对照判定(ADR-0023 决策 4)
51
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run-env.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/run-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAK7E,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,QAAA,MAAM,iBAAiB,KAAK,CAAC;AAE7B,MAAM,WAAW,MAAM;IACrB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAC1D,6BAA6B;IAC7B,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACjD;;;;;;OAMG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAChF;;;;;;;;;;OAUG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAC1E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuExD;AA4BD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAGxD;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"run-env.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/run-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAK5E,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,QAAA,MAAM,iBAAiB,KAAK,CAAC;AAE7B,MAAM,WAAW,MAAM;IACrB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAC1D,6BAA6B;IAC7B,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACjD;;;;;;;;;;OAUG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAC1E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA8DxD;AAcD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAGxD;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * 运行级观察面(ADR-0023 决策 1)
4
4
  *
5
5
  * 一次 `harness check` 一份、跑完即弃:把「本项目有哪些源码根」「最近的 trace 记录」
6
- * 「`.harness/config.yml` 与自定义约束文件写了什么」这类上行数据的读取收在此处,
6
+ * 「`.harness/config.yml` 写了什么」这类上行数据的读取收在此处,
7
7
  * 同一次运行内每个文件至多读一次。
8
8
  *
9
9
  * 为什么不是一个对象而是两个:checker 拿到的 `CheckEnv` 里含 `context`,而 `context` 正是
@@ -79,7 +79,6 @@ function createRunEnv(projectPath) {
79
79
  let sourceRoots = null;
80
80
  let configLoaded = false;
81
81
  let configRaw;
82
- const customDefs = new Map();
83
82
  /** 能力表 memo:undefined = 未算,null = 项目无 CAPABILITIES.md */
84
83
  let caps;
85
84
  return {
@@ -101,14 +100,6 @@ function createRunEnv(projectPath) {
101
100
  }
102
101
  return configRaw;
103
102
  },
104
- customConstraints(fileName) {
105
- let defs = customDefs.get(fileName);
106
- if (!defs) {
107
- defs = readCustomConstraints(path.join(projectPath, '.harness', fileName));
108
- customDefs.set(fileName, defs);
109
- }
110
- return defs;
111
- },
112
103
  capabilities(populationFiles) {
113
104
  if (caps === undefined) {
114
105
  const content = readCapabilitiesContent();
@@ -142,18 +133,6 @@ function createRunEnv(projectPath) {
142
133
  return fs.existsSync(file) ? fs.readFileSync(file, 'utf-8') : undefined;
143
134
  }
144
135
  }
145
- /**
146
- * 读一个自定义约束文件并取出 `custom_constraints` 段
147
- *
148
- * 缺失 → `{}`。文档解析成空值(空 yaml 文件)时取段会抛——改前直读就是这个行为,
149
- * 不在此新增兜底:畸形配置文件该炸在配置上,不该被读面抹平。
150
- */
151
- function readCustomConstraints(absPath) {
152
- if (!fs.existsSync(absPath))
153
- return {};
154
- const loaded = yaml.load(fs.readFileSync(absPath, 'utf-8'));
155
- return loaded.custom_constraints ?? {};
156
- }
157
136
  /**
158
137
  * 读并解析一个 YAML 配置文件
159
138
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run-env.js","sourceRoot":"","sources":["../../../src/core/constraints/run-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-env.js","sourceRoot":"","sources":["../../../src/core/constraints/run-env.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * `harness constraints report` 与 `harness constraints retire`(交互模式)共用的
5
5
  * 数据层:读取项目 traces.log,与生效集(getEffectiveConstraints)对齐,
6
- * 产出 check 层统计表与四类退役候选诊断。
6
+ * 产出 check 约束统计表与四类退役候选诊断。
7
7
  *
8
8
  * 只读:不创建目录、不写任何文件。
9
9
  */
@@ -20,7 +20,7 @@ export declare const FLAG_EVIDENCE_CONSTRAINT_IDS: ReadonlySet<string>;
20
20
  */
21
21
  export interface ConstraintUsageStats {
22
22
  id: string;
23
- level: Constraint['level'];
23
+ severity: Constraint['severity'];
24
24
  /** trace 总行数(含 skip) */
25
25
  total: number;
26
26
  pass: number;
@@ -63,12 +63,10 @@ export declare const DEFAULT_DIAGNOSE_THRESHOLDS: DiagnoseThresholds;
63
63
  * report 数据模型
64
64
  */
65
65
  export interface ConstraintsUsageReport {
66
- /** check 层统计表(生效集内每条 check 约束一行,零出现 total=0) */
66
+ /** check 约束统计表(生效集内每条约束一行,零出现 total=0) */
67
67
  stats: ConstraintUsageStats[];
68
68
  /** 退役候选诊断(按 zero_trigger → unevaluable → high_noise → zero_intercept 排序) */
69
69
  candidates: RetireCandidate[];
70
- /** 当前生效的 prompt 条目 id(注入清单) */
71
- activePromptIds: string[];
72
70
  /** 配置健康诊断(unknownIds 等) */
73
71
  lint: EffectiveConfigLint;
74
72
  /** trace 文件是否存在 */
@@ -85,7 +83,7 @@ export interface ConstraintsUsageReport {
85
83
  *
86
84
  * 坏行策略:skip(原语义不变——report 只读,不因单行损坏失败);
87
85
  * 计数去向:透传——`skippedLines` 随本方法返回,进 `ConstraintsUsageReport.skippedLines`,
88
- * 消费面为 `constraints report` 的文本行 / `--json` 字段 / `--export` 摘要。
86
+ * 消费面为 `constraints report` 的文本行 / `--json-output` 字段 / `--export` 摘要。
89
87
  */
90
88
  export declare function readProjectTracesReport(projectRoot: string): {
91
89
  traces: ExecutionTrace[];
@@ -100,11 +98,11 @@ export declare function readProjectTraces(projectRoot: string): ExecutionTrace[]
100
98
  /**
101
99
  * 按约束聚合 trace 统计(Map: constraintId → 计数)
102
100
  */
103
- export declare function collectUsageByConstraint(traces: ExecutionTrace[]): Map<string, Omit<ConstraintUsageStats, 'id' | 'level' | 'evaluated' | 'failRate'>>;
101
+ export declare function collectUsageByConstraint(traces: ExecutionTrace[]): Map<string, Omit<ConstraintUsageStats, 'id' | 'severity' | 'evaluated' | 'failRate'>>;
104
102
  /**
105
103
  * 退役候选诊断(纯函数)
106
104
  *
107
- * 每条 check 约束最多归入一个类别,优先级:
105
+ * 每条约束最多归入一个类别,优先级:
108
106
  * zero_trigger → unevaluable → high_noise → zero_intercept
109
107
  */
110
108
  export declare function diagnoseRetireCandidates(stats: ConstraintUsageStats[], thresholds?: Partial<DiagnoseThresholds>): RetireCandidate[];
@@ -1 +1 @@
1
- {"version":3,"file":"usage-report.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/usage-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAI3D,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAE3B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,aAAa,GACb,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAKpE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,yBAAyB,EAAE,MAAM,CAAC;IAClC,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,2BAA2B,EAAE,kBAIzC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,+BAA+B;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,2BAA2B;IAC3B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mBAAmB;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAM/G;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EAAE,GACvB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,CAgBpF;AAmBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,EAAE,EAC7B,UAAU,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC3C,eAAe,EAAE,CAiDnB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,GAAE,MAAsB,EACnC,UAAU,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC3C,sBAAsB,CAqBxB"}
1
+ {"version":3,"file":"usage-report.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/usage-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAE3D,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAEjC,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,aAAa,GACb,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAKpE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,yBAAyB,EAAE,MAAM,CAAC;IAClC,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,2BAA2B,EAAE,kBAIzC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,2BAA2B;IAC3B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mBAAmB;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAM/G;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EAAE,GACvB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,CAgBvF;AAmBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,EAAE,EAC7B,UAAU,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC3C,eAAe,EAAE,CAiDnB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,GAAE,MAAsB,EACnC,UAAU,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC3C,sBAAsB,CAkBxB"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * `harness constraints report` 与 `harness constraints retire`(交互模式)共用的
6
6
  * 数据层:读取项目 traces.log,与生效集(getEffectiveConstraints)对齐,
7
- * 产出 check 层统计表与四类退役候选诊断。
7
+ * 产出 check 约束统计表与四类退役候选诊断。
8
8
  *
9
9
  * 只读:不创建目录、不写任何文件。
10
10
  */
@@ -59,8 +59,6 @@ const effective_constraints_1 = require("../effective-constraints");
59
59
  */
60
60
  exports.FLAG_EVIDENCE_CONSTRAINT_IDS = new Set([
61
61
  'no_completion_without_verification',
62
- 'incremental_progress',
63
- 'no_implementation_without_requirement',
64
62
  ]);
65
63
  /** 候选种类的呈现名(constraints report / retire 共用) */
66
64
  exports.CANDIDATE_KIND_LABEL = {
@@ -79,7 +77,7 @@ exports.DEFAULT_DIAGNOSE_THRESHOLDS = {
79
77
  *
80
78
  * 坏行策略:skip(原语义不变——report 只读,不因单行损坏失败);
81
79
  * 计数去向:透传——`skippedLines` 随本方法返回,进 `ConstraintsUsageReport.skippedLines`,
82
- * 消费面为 `constraints report` 的文本行 / `--json` 字段 / `--export` 摘要。
80
+ * 消费面为 `constraints report` 的文本行 / `--json-output` 字段 / `--export` 摘要。
83
81
  */
84
82
  function readProjectTracesReport(projectRoot) {
85
83
  const { records, skippedLines } = (0, jsonl_1.readJsonl)(path.join(projectRoot, trace_1.DEFAULT_TRACE_FILE), 'skip');
@@ -118,12 +116,12 @@ function collectUsageByConstraint(traces) {
118
116
  }
119
117
  return map;
120
118
  }
121
- function toStats(id, level, agg) {
119
+ function toStats(id, severity, agg) {
122
120
  const a = agg ?? { total: 0, pass: 0, fail: 0, skip: 0 };
123
121
  const evaluated = a.total - a.skip;
124
122
  return {
125
123
  id,
126
- level,
124
+ severity,
127
125
  total: a.total,
128
126
  pass: a.pass,
129
127
  fail: a.fail,
@@ -137,7 +135,7 @@ function toStats(id, level, agg) {
137
135
  /**
138
136
  * 退役候选诊断(纯函数)
139
137
  *
140
- * 每条 check 约束最多归入一个类别,优先级:
138
+ * 每条约束最多归入一个类别,优先级:
141
139
  * zero_trigger → unevaluable → high_noise → zero_intercept
142
140
  */
143
141
  function diagnoseRetireCandidates(stats, thresholds = {}) {
@@ -190,18 +188,15 @@ function diagnoseRetireCandidates(stats, thresholds = {}) {
190
188
  */
191
189
  function buildConstraintsUsageReport(projectRoot = process.cwd(), thresholds = {}) {
192
190
  const effective = (0, effective_constraints_1.getEffectiveConstraints)(projectRoot);
193
- const checkConstraints = effective.filter(c => c.kind === 'check');
194
- const activePromptIds = effective.filter(c => c.kind === 'prompt').map(c => c.id);
195
191
  const tracePath = path.join(projectRoot, trace_1.DEFAULT_TRACE_FILE);
196
192
  const { traces, skippedLines } = readProjectTracesReport(projectRoot);
197
193
  const usage = collectUsageByConstraint(traces);
198
- const stats = checkConstraints.map(c => toStats(c.id, c.level, usage.get(c.id)));
194
+ const stats = effective.map(c => toStats(c.id, c.severity, usage.get(c.id)));
199
195
  const candidates = diagnoseRetireCandidates(stats, thresholds);
200
196
  const lint = (0, effective_constraints_1.lintEffectiveConfig)(projectRoot);
201
197
  return {
202
198
  stats,
203
199
  candidates,
204
- activePromptIds,
205
200
  lint,
206
201
  traceFileExists: fs.existsSync(tracePath),
207
202
  skippedLines,