@dommaker/harness 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/CHANGELOG.md +6 -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.js +2 -2
  20. package/dist/cli/commands/init.d.ts +0 -32
  21. package/dist/cli/commands/init.d.ts.map +1 -1
  22. package/dist/cli/commands/init.js +7 -149
  23. package/dist/cli/commands/init.js.map +1 -1
  24. package/dist/cli/commands/report.d.ts.map +1 -1
  25. package/dist/cli/commands/report.js +14 -17
  26. package/dist/cli/commands/report.js.map +1 -1
  27. package/dist/cli/commands/scaffold-templates.d.ts +0 -2
  28. package/dist/cli/commands/scaffold-templates.d.ts.map +1 -1
  29. package/dist/cli/commands/scaffold-templates.js +2 -37
  30. package/dist/cli/commands/scaffold-templates.js.map +1 -1
  31. package/dist/cli/commands/scaffold.d.ts +0 -2
  32. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  33. package/dist/cli/commands/scaffold.js +0 -10
  34. package/dist/cli/commands/scaffold.js.map +1 -1
  35. package/dist/cli/commands/status.js +10 -10
  36. package/dist/cli/commands/status.js.map +1 -1
  37. package/dist/cli/commands/sync-docs/agents-syncer.d.ts +0 -2
  38. package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
  39. package/dist/cli/commands/sync-docs/agents-syncer.js +4 -23
  40. package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
  41. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  42. package/dist/core/constraints/capabilities-parser.js +16 -4
  43. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  44. package/dist/core/constraints/checker.d.ts +15 -24
  45. package/dist/core/constraints/checker.d.ts.map +1 -1
  46. package/dist/core/constraints/checker.js +33 -72
  47. package/dist/core/constraints/checker.js.map +1 -1
  48. package/dist/core/constraints/checkers/docs-freshness.js +1 -1
  49. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
  50. package/dist/core/constraints/checkers/governance-presence.d.ts +2 -1
  51. package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
  52. package/dist/core/constraints/checkers/governance-presence.js +4 -3
  53. package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
  54. package/dist/core/constraints/checkers/index.d.ts +1 -1
  55. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  56. package/dist/core/constraints/checkers/index.js +4 -8
  57. package/dist/core/constraints/checkers/index.js.map +1 -1
  58. package/dist/core/constraints/checkers/iron-flags.d.ts +3 -4
  59. package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
  60. package/dist/core/constraints/checkers/iron-flags.js +4 -5
  61. package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
  62. package/dist/core/constraints/checkers/no-test-simplification.js +1 -1
  63. package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
  64. package/dist/core/constraints/checkers/types.d.ts +1 -1
  65. package/dist/core/constraints/checkers/types.js +1 -1
  66. package/dist/core/constraints/definitions/guidelines.d.ts +4 -4
  67. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  68. package/dist/core/constraints/definitions/guidelines.js +9 -25
  69. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  70. package/dist/core/constraints/definitions/iron-laws.d.ts +4 -4
  71. package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
  72. package/dist/core/constraints/definitions/iron-laws.js +10 -81
  73. package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
  74. package/dist/core/constraints/definitions.d.ts +7 -9
  75. package/dist/core/constraints/definitions.d.ts.map +1 -1
  76. package/dist/core/constraints/definitions.js +13 -16
  77. package/dist/core/constraints/definitions.js.map +1 -1
  78. package/dist/core/constraints/index.d.ts +2 -5
  79. package/dist/core/constraints/index.d.ts.map +1 -1
  80. package/dist/core/constraints/index.js +3 -13
  81. package/dist/core/constraints/index.js.map +1 -1
  82. package/dist/core/constraints/injection-writer.d.ts +10 -38
  83. package/dist/core/constraints/injection-writer.d.ts.map +1 -1
  84. package/dist/core/constraints/injection-writer.js +17 -54
  85. package/dist/core/constraints/injection-writer.js.map +1 -1
  86. package/dist/core/constraints/run-env.d.ts +1 -10
  87. package/dist/core/constraints/run-env.d.ts.map +1 -1
  88. package/dist/core/constraints/run-env.js +1 -22
  89. package/dist/core/constraints/run-env.js.map +1 -1
  90. package/dist/core/constraints/usage-report.d.ts +5 -7
  91. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  92. package/dist/core/constraints/usage-report.js +5 -10
  93. package/dist/core/constraints/usage-report.js.map +1 -1
  94. package/dist/core/effective-constraints.d.ts +12 -22
  95. package/dist/core/effective-constraints.d.ts.map +1 -1
  96. package/dist/core/effective-constraints.js +13 -30
  97. package/dist/core/effective-constraints.js.map +1 -1
  98. package/dist/core/index.d.ts +2 -2
  99. package/dist/core/index.d.ts.map +1 -1
  100. package/dist/core/index.js +3 -9
  101. package/dist/core/index.js.map +1 -1
  102. package/dist/core/project-config-loader.d.ts +4 -42
  103. package/dist/core/project-config-loader.d.ts.map +1 -1
  104. package/dist/core/project-config-loader.js +16 -125
  105. package/dist/core/project-config-loader.js.map +1 -1
  106. package/dist/core/validators/passes-gate.d.ts +2 -2
  107. package/dist/core/validators/passes-gate.js +6 -6
  108. package/dist/core/validators/passes-gate.js.map +1 -1
  109. package/dist/index.d.ts +7 -10
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +9 -18
  112. package/dist/index.js.map +1 -1
  113. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  114. package/dist/monitoring/trace-analyzer.js +11 -12
  115. package/dist/monitoring/trace-analyzer.js.map +1 -1
  116. package/dist/monitoring/traces.d.ts +4 -4
  117. package/dist/monitoring/traces.d.ts.map +1 -1
  118. package/dist/monitoring/traces.js +8 -8
  119. package/dist/monitoring/traces.js.map +1 -1
  120. package/dist/presets/standard.d.ts +8 -10
  121. package/dist/presets/standard.d.ts.map +1 -1
  122. package/dist/presets/standard.js +10 -16
  123. package/dist/presets/standard.js.map +1 -1
  124. package/dist/types/constraint.d.ts +24 -35
  125. package/dist/types/constraint.d.ts.map +1 -1
  126. package/dist/types/constraint.js +8 -7
  127. package/dist/types/constraint.js.map +1 -1
  128. package/dist/types/passes-gate.d.ts +5 -5
  129. package/dist/types/passes-gate.d.ts.map +1 -1
  130. package/dist/types/project-config.d.ts +8 -66
  131. package/dist/types/project-config.d.ts.map +1 -1
  132. package/dist/types/project-config.js +3 -2
  133. package/dist/types/project-config.js.map +1 -1
  134. package/dist/types/trace.d.ts +8 -10
  135. package/dist/types/trace.d.ts.map +1 -1
  136. package/package.json +2 -2
  137. package/src/CONTEXT.md +2 -2
  138. package/src/__tests__/checker-extra.test.ts +37 -61
  139. package/src/__tests__/checker.test.ts +10 -115
  140. package/src/__tests__/effective-constraints.test.ts +18 -83
  141. package/src/__tests__/iron-laws.test.ts +71 -90
  142. package/src/__tests__/passes-gate-check.test.ts +2 -2
  143. package/src/__tests__/project-config-loader-extra.test.ts +22 -123
  144. package/src/__tests__/project-config-loader.test.ts +5 -33
  145. package/src/__tests__/public-exports.test.ts +1 -7
  146. package/src/__tests__/public-type-surface.test.ts +2 -5
  147. package/src/__tests__/public-value-surface.test.ts +1 -7
  148. package/src/__tests__/skip-semantics.test.ts +21 -37
  149. package/src/__tests__/trace-analyzer-extra.test.ts +14 -14
  150. package/src/__tests__/trace-analyzer.test.ts +21 -21
  151. package/src/__tests__/trace-collector.test.ts +22 -22
  152. package/src/__tests__/traces.test.ts +27 -28
  153. package/src/cli/commands/CONTEXT.md +9 -9
  154. package/src/cli/commands/__tests__/check-read-count.test.ts +4 -15
  155. package/src/cli/commands/__tests__/check-skip-output.test.ts +14 -14
  156. package/src/cli/commands/__tests__/check.test.ts +14 -31
  157. package/src/cli/commands/__tests__/constraints-report.test.ts +12 -80
  158. package/src/cli/commands/__tests__/constraints-retire.test.ts +42 -231
  159. package/src/cli/commands/__tests__/init-governance-io.test.ts +12 -58
  160. package/src/cli/commands/__tests__/init-ondisk.test.ts +12 -20
  161. package/src/cli/commands/__tests__/init.test.ts +0 -11
  162. package/src/cli/commands/__tests__/project-path-anchoring.test.ts +2 -2
  163. package/src/cli/commands/__tests__/report-extra.test.ts +4 -4
  164. package/src/cli/commands/__tests__/report.test.ts +1 -1
  165. package/src/cli/commands/__tests__/scaffold.test.ts +4 -14
  166. package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +3 -3
  167. package/src/cli/commands/__tests__/status-extra.test.ts +14 -14
  168. package/src/cli/commands/__tests__/status.test.ts +12 -12
  169. package/src/cli/commands/__tests__/sync-docs-agents.test.ts +1 -1
  170. package/src/cli/commands/check.ts +43 -82
  171. package/src/cli/commands/constraints-report.ts +4 -59
  172. package/src/cli/commands/constraints-retire.ts +49 -154
  173. package/src/cli/commands/constraints.ts +11 -26
  174. package/src/cli/commands/definitions.ts +2 -2
  175. package/src/cli/commands/init.ts +8 -179
  176. package/src/cli/commands/report.ts +19 -23
  177. package/src/cli/commands/scaffold-templates.ts +1 -37
  178. package/src/cli/commands/scaffold.ts +0 -11
  179. package/src/cli/commands/status.ts +10 -10
  180. package/src/cli/commands/sync-docs/agents-syncer.ts +4 -25
  181. package/src/core/CONTEXT.md +9 -9
  182. package/src/core/constraints/__tests__/capability-counts.test.ts +5 -5
  183. package/src/core/constraints/__tests__/collect-constraints.test.ts +13 -8
  184. package/src/core/constraints/__tests__/git-evidence.test.ts +4 -7
  185. package/src/core/constraints/__tests__/injection-writer.test.ts +8 -61
  186. package/src/core/constraints/__tests__/run-env.test.ts +5 -34
  187. package/src/core/constraints/__tests__/trace-injection.test.ts +1 -1
  188. package/src/core/constraints/capabilities-parser.ts +17 -5
  189. package/src/core/constraints/checker.ts +39 -88
  190. package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +5 -8
  191. package/src/core/constraints/checkers/__tests__/governance-presence.test.ts +1 -53
  192. package/src/core/constraints/checkers/__tests__/iron-flags.test.ts +5 -25
  193. package/src/core/constraints/checkers/docs-freshness.ts +1 -1
  194. package/src/core/constraints/checkers/governance-presence.ts +4 -3
  195. package/src/core/constraints/checkers/index.ts +4 -10
  196. package/src/core/constraints/checkers/iron-flags.ts +3 -12
  197. package/src/core/constraints/checkers/no-test-simplification.ts +1 -1
  198. package/src/core/constraints/checkers/types.ts +1 -1
  199. package/src/core/constraints/definitions/guidelines.ts +8 -25
  200. package/src/core/constraints/definitions/iron-laws.ts +9 -82
  201. package/src/core/constraints/definitions.ts +14 -15
  202. package/src/core/constraints/index.ts +4 -19
  203. package/src/core/constraints/injection-writer.ts +16 -61
  204. package/src/core/constraints/run-env.ts +1 -33
  205. package/src/core/constraints/usage-report.ts +8 -15
  206. package/src/core/effective-constraints.ts +14 -45
  207. package/src/core/index.ts +3 -10
  208. package/src/core/project-config-loader.ts +20 -145
  209. package/src/core/validators/passes-gate.ts +6 -6
  210. package/src/failure/CONTEXT.md +1 -1
  211. package/src/hooks/__tests__/bootstrap.test.ts +3 -5
  212. package/src/index.ts +8 -18
  213. package/src/monitoring/__tests__/trace-file-anchoring.test.ts +1 -1
  214. package/src/monitoring/__tests__/traces.test.ts +22 -22
  215. package/src/monitoring/trace-analyzer.ts +12 -13
  216. package/src/monitoring/traces.ts +8 -8
  217. package/src/presets/__tests__/standard.test.ts +12 -16
  218. package/src/presets/standard.ts +14 -23
  219. package/src/types/__tests__/types.test.ts +3 -3
  220. package/src/types/constraint.ts +26 -40
  221. package/src/types/passes-gate.ts +5 -5
  222. package/src/types/project-config.ts +8 -77
  223. package/src/types/trace.ts +8 -11
  224. package/dist/core/constraints/agent-prompt-renderer.d.ts +0 -32
  225. package/dist/core/constraints/agent-prompt-renderer.d.ts.map +0 -1
  226. package/dist/core/constraints/agent-prompt-renderer.js +0 -55
  227. package/dist/core/constraints/agent-prompt-renderer.js.map +0 -1
  228. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +0 -6
  229. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +0 -1
  230. package/dist/core/constraints/checkers/no-bypass-checkpoint.js +0 -40
  231. package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +0 -1
  232. package/dist/core/constraints/definitions/prompts.d.ts +0 -12
  233. package/dist/core/constraints/definitions/prompts.d.ts.map +0 -1
  234. package/dist/core/constraints/definitions/prompts.js +0 -400
  235. package/dist/core/constraints/definitions/prompts.js.map +0 -1
  236. package/dist/core/constraints/injection-drift.d.ts +0 -61
  237. package/dist/core/constraints/injection-drift.d.ts.map +0 -1
  238. package/dist/core/constraints/injection-drift.js +0 -131
  239. package/dist/core/constraints/injection-drift.js.map +0 -1
  240. package/dist/core/constraints/injection-renderer.d.ts +0 -23
  241. package/dist/core/constraints/injection-renderer.d.ts.map +0 -1
  242. package/dist/core/constraints/injection-renderer.js +0 -44
  243. package/dist/core/constraints/injection-renderer.js.map +0 -1
  244. package/src/cli/commands/__tests__/check-drift.test.ts +0 -158
  245. package/src/cli/commands/__tests__/init-injection.test.ts +0 -466
  246. package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +0 -129
  247. package/src/core/constraints/__tests__/injection-drift.test.ts +0 -247
  248. package/src/core/constraints/agent-prompt-renderer.ts +0 -67
  249. package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +0 -76
  250. package/src/core/constraints/checkers/no-bypass-checkpoint.ts +0 -40
  251. package/src/core/constraints/definitions/prompts.ts +0 -414
  252. package/src/core/constraints/injection-drift.ts +0 -142
  253. package/src/core/constraints/injection-renderer.ts +0 -44
@@ -1,22 +1,19 @@
1
1
  /**
2
- * 生效约束集(ADR-0001)
2
+ * 生效约束集(ADR-0029,链路承自 ADR-0001)
3
3
  *
4
4
  * `getEffectiveConstraints(projectRoot)` 是全仓唯一的生效集来源:
5
- * 内置 → preset → config.yml 禁用 → custom 追加 → scenes 过滤。
6
- * init 注入、`harness check`、外部消费者(studio 等)全部消费它,
7
- * 不再直接读 IRON_LAWS/GUIDELINES/PROMPTS 全集。
5
+ * 内置 → preset → config.yml 禁用。
6
+ * `harness check`、外部消费者(studio 等)全部消费它,
7
+ * 不再直接读 CONSTRAINTS 全集。
8
8
  */
9
9
  import type { Constraint } from '../types/constraint';
10
10
  import type { MergedConstraintsConfig } from '../types/project-config';
11
11
  import type { RunTarget } from './constraints/run-env';
12
12
  /**
13
- * 获取项目当前生效的约束集(check + prompt,带 kind)
13
+ * 获取项目当前生效的约束集(check 全量,带 kind/severity
14
14
  *
15
15
  * 生效集链路同 getMergedConstraintsConfig:内置 → preset 裁剪 → config.yml
16
- * `constraints.<id>.enabled:false` 删除(内置与 custom 同效)→ custom-constraints
17
- * 追加(禁用/已退役的 custom 不追加)→ scenes 过滤
18
- * (带 appliesTo 的 prompt 仅当 config.yml `scenes` 与其交集非空时保留,
19
- * 缺省 scenes=[] 即场景专属 prompt 默认不进入生效集)。
16
+ * `constraints.<id>.enabled:false` 删除。
20
17
  *
21
18
  * @param target 项目根路径,或本 run 的运行级观察面(缺省 process.cwd())
22
19
  * 传观察面 = config.yml 读取与本 run 其余消费方共用同一份(ADR-0023 决策 2)
@@ -29,15 +26,15 @@ export declare function getEffectiveConstraints(target?: RunTarget, options?: {
29
26
  /**
30
27
  * 从已算好的合并配置取出生效集清单(与 getEffectiveConstraints 同一形状)
31
28
  *
32
- * 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check 把这一份同时交给
33
- * 漂移检测,避免生效集链路在一次运行里算两遍,ADR-0023 步骤 4.5)。
29
+ * 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check 复用这一份,
30
+ * 避免生效集链路在一次运行里算两遍,ADR-0023 步骤 4.5)。
34
31
  */
35
32
  export declare function constraintsFromMerged(merged: MergedConstraintsConfig): Constraint[];
36
33
  /**
37
- * 获取项目当前生效的合并约束配置(ADR-0001 唯一来源的完整形状)
34
+ * 获取项目当前生效的合并约束配置(唯一来源的完整形状)
38
35
  *
39
36
  * 与 getEffectiveConstraints 同一生效集链路,返回完整 MergedConstraintsConfig
40
- * (含 disabled/custom/unknownIds),供 check 等需要诊断信息的消费方使用。
37
+ * (含 disabled/unknownIds),供 check 等需要诊断信息的消费方使用。
41
38
  *
42
39
  * options.preset(CLI --preset)仅在项目无自定义配置时覆盖 config.yml 的
43
40
  * preset(工单 23 语义:项目自定义配置优先于 CLI 预设);不传 preset 时
@@ -53,21 +50,14 @@ export declare function getMergedConstraintsConfig(target?: RunTarget, options?:
53
50
  */
54
51
  export interface EffectiveConfigLint {
55
52
  /**
56
- * config.yml `constraints.<id>` 中既非内置也非自定义的未知 id
53
+ * config.yml `constraints.<id>` 中非内置的未知 id
57
54
  * (如禁用了已被本版移除的约束的残留配置)。生效集计算静默忽略,
58
55
  * 在此列出供 report 提示。
59
56
  */
60
57
  unknownIds: string[];
61
- /** 项目配置的场景标签(config.yml `scenes`,缺省 []) */
62
- scenes: string[];
63
- /**
64
- * 因 scenes 过滤而未进入生效集的场景专属 prompt id
65
- * (已被 preset/config 禁用的不重复列出)
66
- */
67
- sceneExcluded: string[];
68
58
  }
69
59
  /**
70
- * 诊断项目约束配置:未知 id 残留、scenes 生效情况
60
+ * 诊断项目约束配置:未知 id 残留
71
61
  *
72
62
  * 不抛错、不修改任何文件,供 report / check 的诊断输出使用。
73
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"effective-constraints.d.ts","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,SAAyB,EACjC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,EAAE,CAEd;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,EAAE,CAMnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,SAAyB,EACjC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,uBAAuB,CAOzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAsB,GAAG,mBAAmB,CAqB5F"}
1
+ {"version":3,"file":"effective-constraints.d.ts","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,SAAyB,EACjC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,EAAE,CAEd;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,EAAE,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,SAAyB,EACjC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,uBAAuB,CAOzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAsB,GAAG,mBAAmB,CAO5F"}
@@ -1,27 +1,23 @@
1
1
  "use strict";
2
2
  /**
3
- * 生效约束集(ADR-0001)
3
+ * 生效约束集(ADR-0029,链路承自 ADR-0001)
4
4
  *
5
5
  * `getEffectiveConstraints(projectRoot)` 是全仓唯一的生效集来源:
6
- * 内置 → preset → config.yml 禁用 → custom 追加 → scenes 过滤。
7
- * init 注入、`harness check`、外部消费者(studio 等)全部消费它,
8
- * 不再直接读 IRON_LAWS/GUIDELINES/PROMPTS 全集。
6
+ * 内置 → preset → config.yml 禁用。
7
+ * `harness check`、外部消费者(studio 等)全部消费它,
8
+ * 不再直接读 CONSTRAINTS 全集。
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.getEffectiveConstraints = getEffectiveConstraints;
12
12
  exports.constraintsFromMerged = constraintsFromMerged;
13
13
  exports.getMergedConstraintsConfig = getMergedConstraintsConfig;
14
14
  exports.lintEffectiveConfig = lintEffectiveConfig;
15
- const definitions_1 = require("./constraints/definitions");
16
15
  const project_config_loader_1 = require("./project-config-loader");
17
16
  /**
18
- * 获取项目当前生效的约束集(check + prompt,带 kind)
17
+ * 获取项目当前生效的约束集(check 全量,带 kind/severity
19
18
  *
20
19
  * 生效集链路同 getMergedConstraintsConfig:内置 → preset 裁剪 → config.yml
21
- * `constraints.<id>.enabled:false` 删除(内置与 custom 同效)→ custom-constraints
22
- * 追加(禁用/已退役的 custom 不追加)→ scenes 过滤
23
- * (带 appliesTo 的 prompt 仅当 config.yml `scenes` 与其交集非空时保留,
24
- * 缺省 scenes=[] 即场景专属 prompt 默认不进入生效集)。
20
+ * `constraints.<id>.enabled:false` 删除。
25
21
  *
26
22
  * @param target 项目根路径,或本 run 的运行级观察面(缺省 process.cwd())
27
23
  * 传观察面 = config.yml 读取与本 run 其余消费方共用同一份(ADR-0023 决策 2)
@@ -34,21 +30,17 @@ function getEffectiveConstraints(target = process.cwd(), options) {
34
30
  /**
35
31
  * 从已算好的合并配置取出生效集清单(与 getEffectiveConstraints 同一形状)
36
32
  *
37
- * 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check 把这一份同时交给
38
- * 漂移检测,避免生效集链路在一次运行里算两遍,ADR-0023 步骤 4.5)。
33
+ * 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check 复用这一份,
34
+ * 避免生效集链路在一次运行里算两遍,ADR-0023 步骤 4.5)。
39
35
  */
40
36
  function constraintsFromMerged(merged) {
41
- return [
42
- ...Object.values(merged.ironLaws),
43
- ...Object.values(merged.guidelines),
44
- ...Object.values(merged.prompts ?? {}),
45
- ];
37
+ return Object.values(merged.constraints);
46
38
  }
47
39
  /**
48
- * 获取项目当前生效的合并约束配置(ADR-0001 唯一来源的完整形状)
40
+ * 获取项目当前生效的合并约束配置(唯一来源的完整形状)
49
41
  *
50
42
  * 与 getEffectiveConstraints 同一生效集链路,返回完整 MergedConstraintsConfig
51
- * (含 disabled/custom/unknownIds),供 check 等需要诊断信息的消费方使用。
43
+ * (含 disabled/unknownIds),供 check 等需要诊断信息的消费方使用。
52
44
  *
53
45
  * options.preset(CLI --preset)仅在项目无自定义配置时覆盖 config.yml 的
54
46
  * preset(工单 23 语义:项目自定义配置优先于 CLI 预设);不传 preset 时
@@ -65,7 +57,7 @@ function getMergedConstraintsConfig(target = process.cwd(), options) {
65
57
  return loader.mergeConstraints({ preset: options.preset });
66
58
  }
67
59
  /**
68
- * 诊断项目约束配置:未知 id 残留、scenes 生效情况
60
+ * 诊断项目约束配置:未知 id 残留
69
61
  *
70
62
  * 不抛错、不修改任何文件,供 report / check 的诊断输出使用。
71
63
  *
@@ -73,19 +65,10 @@ function getMergedConstraintsConfig(target = process.cwd(), options) {
73
65
  */
74
66
  function lintEffectiveConfig(projectRoot = process.cwd()) {
75
67
  const loader = new project_config_loader_1.ProjectConfigLoader(projectRoot);
76
- const config = loader.load();
68
+ loader.load();
77
69
  const merged = loader.mergeConstraints();
78
- const scenes = config.scenes ?? [];
79
- const sceneExcluded = Object.values(definitions_1.PROMPTS)
80
- .filter(c => c.appliesTo &&
81
- c.appliesTo.length > 0 &&
82
- !c.appliesTo.some(scene => scenes.includes(scene)) &&
83
- !merged.disabled.includes(c.id))
84
- .map(c => c.id);
85
70
  return {
86
71
  unknownIds: merged.unknownIds ?? [],
87
- scenes,
88
- sceneExcluded,
89
72
  };
90
73
  }
91
74
  //# sourceMappingURL=effective-constraints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effective-constraints.js","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAsBH,0DAKC;AAQD,sDAMC;AAcD,gEAUC;AA8BD,kDAqBC;AAhHD,2DAAoD;AACpD,mEAA8D;AAG9D;;;;;;;;;;;;;GAaG;AACH,SAAgB,uBAAuB,CACrC,SAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAA6B;IAE7B,OAAO,qBAAqB,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAA+B;IACnE,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACnC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,0BAA0B,CACxC,SAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAuBD;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACrE,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IAEnC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAO,CAAC;SACzC,MAAM,CACL,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAClC;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;QACnC,MAAM;QACN,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"effective-constraints.js","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAkBH,0DAKC;AAQD,sDAEC;AAcD,gEAUC;AAqBD,kDAOC;AAjFD,mEAA8D;AAG9D;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CACrC,SAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAA6B;IAE7B,OAAO,qBAAqB,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAA+B;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,0BAA0B,CACxC,SAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAcD;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACrE,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACzC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC"}
@@ -4,8 +4,8 @@
4
4
  * checkConstraints 与包根统一为 options 对象签名(CheckConstraintsOptions),
5
5
  * 不再暴露位置参数版。
6
6
  */
7
- export { IRON_LAWS, GUIDELINES, PROMPTS, getAllConstraints, findConstraintsByTrigger, getConstraint, ConstraintChecker, checkConstraint, checkConstraints, checkBeforeExecution, constraintChecker, CONSTRAINTS_START_MARKER, CONSTRAINTS_END_MARKER, renderConstraintsSection, CheckCache, renderConstraintsByTrigger, ConstraintViolationError, } from './constraints';
8
- export type { CheckConstraintsOptions, CheckCacheConfig, CheckSamplingConfig, RenderConstraintsByTriggerOptions, ConstraintId, ConstraintKind, ConstraintLevel, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from './constraints';
7
+ export { CONSTRAINTS, getAllConstraints, findConstraintsByTrigger, getConstraint, ConstraintChecker, checkConstraint, checkConstraints, checkBeforeExecution, constraintChecker, CheckCache, ConstraintViolationError, } from './constraints';
8
+ export type { CheckConstraintsOptions, CheckCacheConfig, CheckSamplingConfig, ConstraintId, ConstraintKind, ConstraintSeverity, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from './constraints';
9
9
  export { CheckpointValidator, PassesGate, createPassesGate, CSOValidator, } from './validators';
10
10
  export type { CSOValidationResult, CSOIssue, Checkpoint, CheckpointCheck, CheckpointResult, CheckResult, CheckpointContext, CheckType, CheckConfig, PassesGateConfig, TaskTestResult, } from './validators';
11
11
  export { SpecValidator } from './spec/validator';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,UAAU,EACV,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iCAAiC,EACjC,YAAY,EACZ,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,GACT,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,GACT,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -6,12 +6,10 @@
6
6
  * 不再暴露位置参数版。
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.lintEffectiveConfig = exports.getEffectiveConstraints = exports.getCapabilitiesMode = exports.resolveContextFiles = exports.getGovernanceConfig = exports.loadRawProjectConfig = exports.ProjectConfigLoader = exports.SpecValidator = exports.CSOValidator = exports.createPassesGate = exports.PassesGate = exports.CheckpointValidator = 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;
10
- // 约束系统(三层:Iron Laws / Guidelines / Tips
9
+ exports.lintEffectiveConfig = exports.getEffectiveConstraints = exports.getCapabilitiesMode = exports.resolveContextFiles = exports.getGovernanceConfig = exports.loadRawProjectConfig = exports.ProjectConfigLoader = exports.SpecValidator = exports.CSOValidator = exports.createPassesGate = exports.PassesGate = exports.CheckpointValidator = exports.ConstraintViolationError = exports.CheckCache = exports.constraintChecker = exports.checkBeforeExecution = exports.checkConstraints = exports.checkConstraint = exports.ConstraintChecker = exports.getConstraint = exports.findConstraintsByTrigger = exports.getAllConstraints = exports.CONSTRAINTS = void 0;
10
+ // 约束系统(severity 显式模型,ADR-0029
11
11
  var constraints_1 = require("./constraints");
12
- Object.defineProperty(exports, "IRON_LAWS", { enumerable: true, get: function () { return constraints_1.IRON_LAWS; } });
13
- Object.defineProperty(exports, "GUIDELINES", { enumerable: true, get: function () { return constraints_1.GUIDELINES; } });
14
- Object.defineProperty(exports, "PROMPTS", { enumerable: true, get: function () { return constraints_1.PROMPTS; } });
12
+ Object.defineProperty(exports, "CONSTRAINTS", { enumerable: true, get: function () { return constraints_1.CONSTRAINTS; } });
15
13
  Object.defineProperty(exports, "getAllConstraints", { enumerable: true, get: function () { return constraints_1.getAllConstraints; } });
16
14
  Object.defineProperty(exports, "findConstraintsByTrigger", { enumerable: true, get: function () { return constraints_1.findConstraintsByTrigger; } });
17
15
  Object.defineProperty(exports, "getConstraint", { enumerable: true, get: function () { return constraints_1.getConstraint; } });
@@ -20,11 +18,7 @@ Object.defineProperty(exports, "checkConstraint", { enumerable: true, get: funct
20
18
  Object.defineProperty(exports, "checkConstraints", { enumerable: true, get: function () { return constraints_1.checkConstraints; } });
21
19
  Object.defineProperty(exports, "checkBeforeExecution", { enumerable: true, get: function () { return constraints_1.checkBeforeExecution; } });
22
20
  Object.defineProperty(exports, "constraintChecker", { enumerable: true, get: function () { return constraints_1.constraintChecker; } });
23
- Object.defineProperty(exports, "CONSTRAINTS_START_MARKER", { enumerable: true, get: function () { return constraints_1.CONSTRAINTS_START_MARKER; } });
24
- Object.defineProperty(exports, "CONSTRAINTS_END_MARKER", { enumerable: true, get: function () { return constraints_1.CONSTRAINTS_END_MARKER; } });
25
- Object.defineProperty(exports, "renderConstraintsSection", { enumerable: true, get: function () { return constraints_1.renderConstraintsSection; } });
26
21
  Object.defineProperty(exports, "CheckCache", { enumerable: true, get: function () { return constraints_1.CheckCache; } });
27
- Object.defineProperty(exports, "renderConstraintsByTrigger", { enumerable: true, get: function () { return constraints_1.renderConstraintsByTrigger; } });
28
22
  Object.defineProperty(exports, "ConstraintViolationError", { enumerable: true, get: function () { return constraints_1.ConstraintViolationError; } });
29
23
  // 验证器(检查点 / PassesGate / CSO)
30
24
  var validators_1 = require("./validators");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAyC;AACzC,6CAkBuB;AAjBrB,wGAAA,SAAS,OAAA;AACT,yGAAA,UAAU,OAAA;AACV,sGAAA,OAAO,OAAA;AACP,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,4GAAA,aAAa,OAAA;AACb,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,mHAAA,oBAAoB,OAAA;AACpB,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,uHAAA,wBAAwB,OAAA;AACxB,yGAAA,UAAU,OAAA;AACV,yHAAA,0BAA0B,OAAA;AAC1B,uHAAA,wBAAwB,OAAA;AAkB1B,8BAA8B;AAC9B,2CAKsB;AAJpB,iHAAA,mBAAmB,OAAA;AACnB,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,0GAAA,YAAY,OAAA;AAgBd,WAAW;AACX,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AAStB,0CAA0C;AAC1C,iEAMiC;AAL/B,4HAAA,mBAAmB,OAAA;AACnB,6HAAA,oBAAoB,OAAA;AACpB,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AAMrB,0BAA0B;AAC1B,iEAGiC;AAF/B,gIAAA,uBAAuB,OAAA;AACvB,4HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+BAA+B;AAC/B,6CAYuB;AAXrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,4GAAA,aAAa,OAAA;AACb,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,mHAAA,oBAAoB,OAAA;AACpB,gHAAA,iBAAiB,OAAA;AACjB,yGAAA,UAAU,OAAA;AACV,uHAAA,wBAAwB,OAAA;AAiB1B,8BAA8B;AAC9B,2CAKsB;AAJpB,iHAAA,mBAAmB,OAAA;AACnB,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,0GAAA,YAAY,OAAA;AAgBd,WAAW;AACX,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AAStB,0CAA0C;AAC1C,iEAMiC;AAL/B,4HAAA,mBAAmB,OAAA;AACnB,6HAAA,oBAAoB,OAAA;AACpB,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AAMrB,0BAA0B;AAC1B,iEAGiC;AAF/B,gIAAA,uBAAuB,OAAA;AACvB,4HAAA,mBAAmB,OAAA"}
@@ -5,7 +5,7 @@
5
5
  * 本模块不碰文件系统:两份配置的读取口径 = 运行级观察面(`constraints/run-env.ts`,
6
6
  * ADR-0023 决策 2),一次运行内各至多读一次。
7
7
  */
8
- import type { ProjectConfig, CustomConstraintDefinition, MergedConstraintsConfig, CapabilitiesConfig, GovernanceConfig } from '../types/project-config';
8
+ import type { ProjectConfig, MergedConstraintsConfig, CapabilitiesConfig, GovernanceConfig } from '../types/project-config';
9
9
  import { type RunTarget } from './constraints/run-env';
10
10
  /**
11
11
  * 读取并解析 `.harness/config.yml`
@@ -59,21 +59,6 @@ export declare function resolveContextFiles(target: RunTarget): ContextFilesReso
59
59
  * 配置缺失/解析失败/取值非法时一律回落 'file'。
60
60
  */
61
61
  export declare function getCapabilitiesMode(target: RunTarget): CapabilitiesMode;
62
- /**
63
- * 退役判定单点(studio#82 D6 一处真相)
64
- *
65
- * 两个落点合成一条规则:禁用(config.yml `constraints.<id>.enabled: false`,内置约束的
66
- * 退役落点)或 custom 条目自带 `retired` 元数据(custom 约束的退役落点,不拆 config.yml
67
- * 第二处)。`mergeConstraints` 的 custom 追加跳过与 `harness constraints retire` 的
68
- * already_retired 检查共用本函数——后者此前是这条规则的手写复印(harness#137 收口)。
69
- *
70
- * `disabled` 由调用方给:mergeConstraints 传的是含 preset 裁剪的完整禁用集,
71
- * retire 传的是 config.yml 单点(退役落点只有这一处,preset 语义不掺进退役判定)。
72
- * `retired` 按 truthiness 判,与 mergeConstraints 历史口径逐字一致。
73
- */
74
- export declare function isConstraintRetired(customDef: {
75
- retired?: unknown;
76
- } | undefined, disabled: boolean): boolean;
77
62
  /**
78
63
  * 项目配置加载器
79
64
  */
@@ -81,30 +66,19 @@ export declare class ProjectConfigLoader {
81
66
  private env;
82
67
  private projectPath;
83
68
  private config;
84
- private customConstraints;
85
69
  /**
86
70
  * @param target 项目根路径,或本 run 已构造的运行级观察面(ADR-0023 决策 2)
87
71
  * 传观察面时 config.yml 与本 run 其余消费方共用同一份读取;传路径 = 自造一枚一次性观察面
88
72
  */
89
73
  constructor(target?: RunTarget);
90
74
  /**
91
- * 加载项目配置
75
+ * 加载项目配置(run 内 memo 在观察面上,同一份解析结果供全部消费方共用)
92
76
  */
93
77
  load(): ProjectConfig;
94
78
  /**
95
- * 加载自定义约束
96
- *
97
- * 文件读取经观察面(ADR-0023 决策 2):同一次运行内多个加载器共用同一份内容,
98
- * 「哪个文件名算数」与合并顺序仍由本函数决定(方式 1 文件 → 方式 2 主配置内联,后者覆盖)。
99
- */
100
- private loadCustomConstraints;
101
- /**
102
- * 合并内置约束和自定义约束(ADR-0001 生效集完整链路)
79
+ * 合并内置约束(生效集完整链路,ADR-0029)
103
80
  *
104
- * 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false`
105
- * 删除(对内置与 custom 同效)→ custom-constraints 追加
106
- * (禁用/已退役的 custom 不追加)→ scenes 过滤
107
- * (带 appliesTo 的 prompt 仅当 scenes 交集非空时保留)。
81
+ * 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false` 删除。
108
82
  *
109
83
  * config.yml 中未知约束 id(如已移除约束的禁用残留)静默忽略,
110
84
  * 记录在结果 unknownIds 中供诊断。
@@ -115,22 +89,10 @@ export declare class ProjectConfigLoader {
115
89
  mergeConstraints(options?: {
116
90
  preset?: string;
117
91
  }): MergedConstraintsConfig;
118
- /**
119
- * 将自定义约束定义转换为 Constraint
120
- *
121
- * kind 推导(ADR-0001):自定义约束没有注册表中的 checker,统一归为
122
- * kind='prompt'(不执行 checker,check() 短路通过),level 仅决定其所在
123
- * 桶与严重性行为,保持与历史"未注册默认通过"相同的执行语义。
124
- */
125
- private toConstraint;
126
92
  /**
127
93
  * 获取当前配置
128
94
  */
129
95
  getConfig(): ProjectConfig;
130
- /**
131
- * 获取自定义约束
132
- */
133
- getCustomConstraints(): Record<string, CustomConstraintDefinition>;
134
96
  /**
135
97
  * 检查是否有自定义配置
136
98
  */
@@ -1 +1 @@
1
- {"version":3,"file":"project-config-loader.d.ts","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAUnF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE3F;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CASnF;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,GAC1B;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAIvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EAC5C,QAAQ,EAAE,OAAO,GAChB,OAAO,CAET;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,iBAAiB,CAA6C;IAEtE;;;OAGG;gBACS,MAAM,CAAC,EAAE,SAAS;IAO9B;;OAEG;IACH,IAAI,IAAI,aAAa;IAarB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,uBAAuB;IAmGxE;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAIlE;;OAEG;IACH,eAAe,IAAI,OAAO;CAM3B"}
1
+ {"version":3,"file":"project-config-loader.d.ts","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASnF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE3F;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CASnF;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,GAC1B;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAIvE;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAE9B;;;OAGG;gBACS,MAAM,CAAC,EAAE,SAAS;IAM9B;;OAEG;IACH,IAAI,IAAI,aAAa;IAQrB;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,uBAAuB;IAyDxE;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,eAAe,IAAI,OAAO;CAG3B"}
@@ -12,7 +12,6 @@ exports.loadRawProjectConfig = loadRawProjectConfig;
12
12
  exports.getGovernanceConfig = getGovernanceConfig;
13
13
  exports.resolveContextFiles = resolveContextFiles;
14
14
  exports.getCapabilitiesMode = getCapabilitiesMode;
15
- exports.isConstraintRetired = isConstraintRetired;
16
15
  const definitions_1 = require("./constraints/definitions");
17
16
  const presets_1 = require("../presets");
18
17
  const effective_set_1 = require("./effective-set");
@@ -22,7 +21,6 @@ const run_env_1 = require("./constraints/run-env");
22
21
  */
23
22
  const DEFAULT_CONFIG = {
24
23
  preset: 'standard',
25
- custom_constraints_file: 'custom-constraints.yml',
26
24
  };
27
25
  /**
28
26
  * 读取并解析 `.harness/config.yml`
@@ -84,21 +82,6 @@ function getCapabilitiesMode(target) {
84
82
  return mode;
85
83
  return 'file';
86
84
  }
87
- /**
88
- * 退役判定单点(studio#82 D6 一处真相)
89
- *
90
- * 两个落点合成一条规则:禁用(config.yml `constraints.<id>.enabled: false`,内置约束的
91
- * 退役落点)或 custom 条目自带 `retired` 元数据(custom 约束的退役落点,不拆 config.yml
92
- * 第二处)。`mergeConstraints` 的 custom 追加跳过与 `harness constraints retire` 的
93
- * already_retired 检查共用本函数——后者此前是这条规则的手写复印(harness#137 收口)。
94
- *
95
- * `disabled` 由调用方给:mergeConstraints 传的是含 preset 裁剪的完整禁用集,
96
- * retire 传的是 config.yml 单点(退役落点只有这一处,preset 语义不掺进退役判定)。
97
- * `retired` 按 truthiness 判,与 mergeConstraints 历史口径逐字一致。
98
- */
99
- function isConstraintRetired(customDef, disabled) {
100
- return disabled || Boolean(customDef?.retired);
101
- }
102
85
  /**
103
86
  * 项目配置加载器
104
87
  */
@@ -106,7 +89,6 @@ class ProjectConfigLoader {
106
89
  env;
107
90
  projectPath;
108
91
  config;
109
- customConstraints;
110
92
  /**
111
93
  * @param target 项目根路径,或本 run 已构造的运行级观察面(ADR-0023 决策 2)
112
94
  * 传观察面时 config.yml 与本 run 其余消费方共用同一份读取;传路径 = 自造一枚一次性观察面
@@ -115,45 +97,21 @@ class ProjectConfigLoader {
115
97
  this.env = (0, run_env_1.resolveRunEnv)(target);
116
98
  this.projectPath = this.env.projectPath;
117
99
  this.config = { ...DEFAULT_CONFIG };
118
- this.customConstraints = {};
119
100
  }
120
101
  /**
121
- * 加载项目配置
102
+ * 加载项目配置(run 内 memo 在观察面上,同一份解析结果供全部消费方共用)
122
103
  */
123
104
  load() {
124
- // 1. 加载主配置(run 内 memo 在观察面上,同一份解析结果供全部消费方共用)
125
105
  const raw = this.env.rawConfig();
126
106
  if (raw) {
127
107
  this.config = { ...DEFAULT_CONFIG, ...raw };
128
108
  }
129
- // 2. 加载自定义约束
130
- this.loadCustomConstraints();
131
109
  return this.config;
132
110
  }
133
111
  /**
134
- * 加载自定义约束
135
- *
136
- * 文件读取经观察面(ADR-0023 决策 2):同一次运行内多个加载器共用同一份内容,
137
- * 「哪个文件名算数」与合并顺序仍由本函数决定(方式 1 文件 → 方式 2 主配置内联,后者覆盖)。
138
- */
139
- loadCustomConstraints() {
140
- // 方式 1:从单独文件加载
141
- if (this.config.custom_constraints_file) {
142
- const defs = this.env.customConstraints(this.config.custom_constraints_file);
143
- this.customConstraints = { ...this.customConstraints, ...defs };
144
- }
145
- // 方式 2:从主配置文件中加载
146
- if (this.config.custom_constraints) {
147
- this.customConstraints = { ...this.customConstraints, ...this.config.custom_constraints };
148
- }
149
- }
150
- /**
151
- * 合并内置约束和自定义约束(ADR-0001 生效集完整链路)
112
+ * 合并内置约束(生效集完整链路,ADR-0029)
152
113
  *
153
- * 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false`
154
- * 删除(对内置与 custom 同效)→ custom-constraints 追加
155
- * (禁用/已退役的 custom 不追加)→ scenes 过滤
156
- * (带 appliesTo 的 prompt 仅当 scenes 交集非空时保留)。
114
+ * 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false` 删除。
157
115
  *
158
116
  * config.yml 中未知约束 id(如已移除约束的禁用残留)静默忽略,
159
117
  * 记录在结果 unknownIds 中供诊断。
@@ -169,6 +127,8 @@ class ProjectConfigLoader {
169
127
  console.error(`[harness] 未知预设 "${presetName}",已回落 standard`);
170
128
  preset = presets_1.STANDARD_PRESET;
171
129
  }
130
+ // preset 按 severity 分键;展开为「id → 是否启用」的单桶视图
131
+ const bySeverity = (severity) => Object.fromEntries(Object.entries(definitions_1.CONSTRAINTS).filter(([, c]) => c.severity === severity));
172
132
  const pick = (source, ids) => {
173
133
  if (ids === null)
174
134
  return { ...source };
@@ -180,112 +140,43 @@ class ProjectConfigLoader {
180
140
  return filtered;
181
141
  };
182
142
  const presetDisabled = (source, ids) => (ids === null ? [] : Object.keys(source).filter(id => !ids.includes(id)));
143
+ const errorConstraints = bySeverity('error');
144
+ const warningConstraints = bySeverity('warning');
183
145
  const unknownIds = [];
184
146
  const result = {
185
- ironLaws: pick(definitions_1.IRON_LAWS, preset.ironLaws),
186
- guidelines: pick(definitions_1.GUIDELINES, preset.guidelines),
187
- prompts: pick(definitions_1.PROMPTS, preset.prompts),
147
+ constraints: {
148
+ ...pick(errorConstraints, preset.errors),
149
+ ...pick(warningConstraints, preset.warnings),
150
+ },
188
151
  disabled: [
189
- ...presetDisabled(definitions_1.IRON_LAWS, preset.ironLaws),
190
- ...presetDisabled(definitions_1.GUIDELINES, preset.guidelines),
191
- ...presetDisabled(definitions_1.PROMPTS, preset.prompts),
152
+ ...presetDisabled(errorConstraints, preset.errors),
153
+ ...presetDisabled(warningConstraints, preset.warnings),
192
154
  ],
193
- custom: [],
194
155
  unknownIds,
195
156
  };
196
157
  // 1. 处理启用/禁用配置(未知 id 静默忽略,记录供诊断)
197
158
  if (this.config.constraints) {
198
- const knownIds = new Set([
199
- ...Object.keys(definitions_1.IRON_LAWS),
200
- ...Object.keys(definitions_1.GUIDELINES),
201
- ...Object.keys(definitions_1.PROMPTS),
202
- ...Object.keys(this.customConstraints),
203
- ]);
159
+ const knownIds = new Set(Object.keys(definitions_1.CONSTRAINTS));
204
160
  const filtered = (0, effective_set_1.filterEnabledEntries)(knownIds, this.config.constraints);
205
161
  unknownIds.push(...filtered.unknownIds);
206
162
  for (const constraintId of filtered.disabledIds) {
207
163
  result.disabled.push(constraintId);
208
- // 从对应层级中移除
209
- delete result.ironLaws[constraintId];
210
- delete result.guidelines[constraintId];
211
- delete result.prompts[constraintId];
212
- }
213
- }
214
- // 2. 添加自定义约束(config.yml 禁用的 id 不追加:step 1 已将其
215
- // 收集进 disabled,custom 在 step 1 时尚未入桶,须在此兜底跳过;
216
- // 条目带 retired 元数据的同样不追加——studio#82 D6 退役落点在条目自身)
217
- for (const [id, customDef] of Object.entries(this.customConstraints)) {
218
- if (isConstraintRetired(customDef, result.disabled.includes(id))) {
219
- continue;
220
- }
221
- const constraint = this.toConstraint(customDef, id);
222
- result.custom.push(id);
223
- const level = customDef.level || 'guideline';
224
- switch (level) {
225
- case 'iron_law':
226
- result.ironLaws[id] = constraint;
227
- break;
228
- case 'guideline':
229
- result.guidelines[id] = constraint;
230
- break;
231
- case 'prompt':
232
- result.prompts[id] = constraint;
233
- break;
234
- }
235
- }
236
- // 3. scenes 过滤(ADR-0001):带 appliesTo 标签的 prompt 仅当项目 scenes
237
- // 与其交集非空时保留;无 appliesTo 的条目不受影响。缺省 scenes=[] 即
238
- // 场景专属 prompt 默认不进入生效集。
239
- const scenes = this.config.scenes ?? [];
240
- for (const [id, constraint] of Object.entries(result.prompts)) {
241
- if (constraint.appliesTo &&
242
- constraint.appliesTo.length > 0 &&
243
- !constraint.appliesTo.some(scene => scenes.includes(scene))) {
244
- delete result.prompts[id];
164
+ delete result.constraints[constraintId];
245
165
  }
246
166
  }
247
167
  return result;
248
168
  }
249
- /**
250
- * 将自定义约束定义转换为 Constraint
251
- *
252
- * kind 推导(ADR-0001):自定义约束没有注册表中的 checker,统一归为
253
- * kind='prompt'(不执行 checker,check() 短路通过),level 仅决定其所在
254
- * 桶与严重性行为,保持与历史"未注册默认通过"相同的执行语义。
255
- */
256
- toConstraint(def, defaultId) {
257
- const level = def.level || 'guideline';
258
- return {
259
- id: def.id || defaultId,
260
- kind: 'prompt',
261
- level,
262
- rule: def.rule || '',
263
- message: def.message || '',
264
- trigger: (def.trigger || 'manual'),
265
- description: def.description,
266
- promptInjection: def.promptInjection,
267
- enabled: def.enabled !== false,
268
- enforcement: 'custom',
269
- };
270
- }
271
169
  /**
272
170
  * 获取当前配置
273
171
  */
274
172
  getConfig() {
275
173
  return this.config;
276
174
  }
277
- /**
278
- * 获取自定义约束
279
- */
280
- getCustomConstraints() {
281
- return this.customConstraints;
282
- }
283
175
  /**
284
176
  * 检查是否有自定义配置
285
177
  */
286
178
  hasCustomConfig() {
287
- return (Object.keys(this.customConstraints).length > 0 ||
288
- (this.config.constraints !== undefined && Object.keys(this.config.constraints).length > 0));
179
+ return this.config.constraints !== undefined && Object.keys(this.config.constraints).length > 0;
289
180
  }
290
181
  }
291
182
  exports.ProjectConfigLoader = ProjectConfigLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"project-config-loader.js","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-config-loader.js","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA+BH,oDAEC;AAaD,kDASC;AAsBD,kDAOC;AAOD,kDAIC;AAtFD,2DAAwD;AACxD,wCAA8D;AAC9D,mDAAuD;AACvD,mDAAmF;AAEnF;;GAEG;AACH,MAAM,cAAc,GAAkB;IACpC,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,MAAiB;IACpD,OAAO,IAAA,uBAAa,EAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3C,CAAC;AAOD;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,GAAG,EAAE,UAAU,CAAC;QACnC,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC5E,OAAO,UAA8B,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAeD;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChE,IAAI,CAAC,YAAY,EAAE,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IACjF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IACnF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC;IAC7D,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAa,mBAAmB;IACtB,GAAG,CAAS;IACZ,WAAW,CAAS;IACpB,MAAM,CAAgB;IAE9B;;;OAGG;IACH,YAAY,MAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,IAAA,uBAAa,EAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAI,GAA8B,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,OAA6B;QAC5C,qDAAqD;QACrD,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC;QACvE,IAAI,MAAM,GAAG,yBAAe,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,mBAAmB,UAAU,gBAAgB,CAAC,CAAC;YAC7D,MAAM,GAAG,yBAAe,CAAC;QAC3B,CAAC;QACD,2CAA2C;QAC3C,MAAM,UAAU,GAAG,CAAC,QAA6B,EAA8B,EAAE,CAC/E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,CACX,MAAkC,EAClC,GAAoB,EACQ,EAAE;YAC9B,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;YACvC,MAAM,QAAQ,GAA+B,EAAE,CAAC;YAChD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,MAAM,CAAC,EAAE,CAAC;oBAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,cAAc,GAAG,CACrB,MAAkC,EAClC,GAAoB,EACV,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzF,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAA4B;YACtC,WAAW,EAAE;gBACX,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC;gBACxC,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC;aAC7C;YACD,QAAQ,EAAE;gBACR,GAAG,cAAc,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC;gBAClD,GAAG,cAAc,CAAC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC;aACvD;YACD,UAAU;SACX,CAAC;QAEF,iCAAiC;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAW,CAAC,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAA,oCAAoB,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzE,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACxC,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnC,OAAO,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClG,CAAC;CACF;AA3GD,kDA2GC"}
@@ -29,7 +29,7 @@ export declare class PassesGate {
29
29
  * - 业务层自己运行测试,传入结果
30
30
  *
31
31
  * @param testResult 测试结果(由业务层运行测试后传入)
32
- * @returns 验证结果(是否允许标记完成 + Iron Law 违规)
32
+ * @returns 验证结果(是否允许标记完成 + 阻断级违规)
33
33
  *
34
34
  * @example
35
35
  * ```typescript
@@ -39,7 +39,7 @@ export declare class PassesGate {
39
39
  *
40
40
  * if (!passesResult.allowed) {
41
41
  * return res.status(400).json({
42
- * error: 'Iron Law 违规',
42
+ * error: '约束违规',
43
43
  * violations: passesResult.violations,
44
44
  * });
45
45
  * }