@dommaker/harness 1.8.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +10 -13
  3. package/dist/cli/commands/check.d.ts +3 -3
  4. package/dist/cli/commands/check.d.ts.map +1 -1
  5. package/dist/cli/commands/check.js +41 -78
  6. package/dist/cli/commands/check.js.map +1 -1
  7. package/dist/cli/commands/constraints-report.d.ts +2 -10
  8. package/dist/cli/commands/constraints-report.d.ts.map +1 -1
  9. package/dist/cli/commands/constraints-report.js +4 -57
  10. package/dist/cli/commands/constraints-report.js.map +1 -1
  11. package/dist/cli/commands/constraints-retire.d.ts +9 -23
  12. package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
  13. package/dist/cli/commands/constraints-retire.js +39 -121
  14. package/dist/cli/commands/constraints-retire.js.map +1 -1
  15. package/dist/cli/commands/constraints.d.ts +3 -8
  16. package/dist/cli/commands/constraints.d.ts.map +1 -1
  17. package/dist/cli/commands/constraints.js +8 -23
  18. package/dist/cli/commands/constraints.js.map +1 -1
  19. package/dist/cli/commands/definitions.js +2 -2
  20. package/dist/cli/commands/init.d.ts +0 -32
  21. package/dist/cli/commands/init.d.ts.map +1 -1
  22. package/dist/cli/commands/init.js +7 -149
  23. package/dist/cli/commands/init.js.map +1 -1
  24. package/dist/cli/commands/report.d.ts.map +1 -1
  25. package/dist/cli/commands/report.js +14 -17
  26. package/dist/cli/commands/report.js.map +1 -1
  27. package/dist/cli/commands/scaffold-templates.d.ts +0 -2
  28. package/dist/cli/commands/scaffold-templates.d.ts.map +1 -1
  29. package/dist/cli/commands/scaffold-templates.js +2 -37
  30. package/dist/cli/commands/scaffold-templates.js.map +1 -1
  31. package/dist/cli/commands/scaffold.d.ts +0 -2
  32. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  33. package/dist/cli/commands/scaffold.js +0 -10
  34. package/dist/cli/commands/scaffold.js.map +1 -1
  35. package/dist/cli/commands/status.js +10 -10
  36. package/dist/cli/commands/status.js.map +1 -1
  37. package/dist/cli/commands/sync-docs/agents-syncer.d.ts +0 -2
  38. package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
  39. package/dist/cli/commands/sync-docs/agents-syncer.js +4 -23
  40. package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
  41. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +22 -0
  42. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
  43. package/dist/cli/commands/sync-docs/capabilities-syncer.js +113 -8
  44. package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
  45. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
  46. package/dist/cli/commands/sync-docs/index.js +36 -4
  47. package/dist/cli/commands/sync-docs/index.js.map +1 -1
  48. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  49. package/dist/core/constraints/capabilities-parser.js +16 -4
  50. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  51. package/dist/core/constraints/checker.d.ts +15 -24
  52. package/dist/core/constraints/checker.d.ts.map +1 -1
  53. package/dist/core/constraints/checker.js +33 -72
  54. package/dist/core/constraints/checker.js.map +1 -1
  55. package/dist/core/constraints/checkers/docs-freshness.js +1 -1
  56. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
  57. package/dist/core/constraints/checkers/governance-presence.d.ts +2 -1
  58. package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
  59. package/dist/core/constraints/checkers/governance-presence.js +4 -3
  60. package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
  61. package/dist/core/constraints/checkers/index.d.ts +1 -1
  62. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  63. package/dist/core/constraints/checkers/index.js +4 -8
  64. package/dist/core/constraints/checkers/index.js.map +1 -1
  65. package/dist/core/constraints/checkers/iron-flags.d.ts +3 -4
  66. package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
  67. package/dist/core/constraints/checkers/iron-flags.js +4 -5
  68. package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
  69. package/dist/core/constraints/checkers/no-test-simplification.js +1 -1
  70. package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
  71. package/dist/core/constraints/checkers/types.d.ts +1 -1
  72. package/dist/core/constraints/checkers/types.js +1 -1
  73. package/dist/core/constraints/definitions/guidelines.d.ts +4 -4
  74. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  75. package/dist/core/constraints/definitions/guidelines.js +9 -25
  76. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  77. package/dist/core/constraints/definitions/iron-laws.d.ts +4 -4
  78. package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
  79. package/dist/core/constraints/definitions/iron-laws.js +10 -81
  80. package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
  81. package/dist/core/constraints/definitions.d.ts +7 -9
  82. package/dist/core/constraints/definitions.d.ts.map +1 -1
  83. package/dist/core/constraints/definitions.js +13 -16
  84. package/dist/core/constraints/definitions.js.map +1 -1
  85. package/dist/core/constraints/index.d.ts +2 -5
  86. package/dist/core/constraints/index.d.ts.map +1 -1
  87. package/dist/core/constraints/index.js +3 -13
  88. package/dist/core/constraints/index.js.map +1 -1
  89. package/dist/core/constraints/injection-writer.d.ts +10 -38
  90. package/dist/core/constraints/injection-writer.d.ts.map +1 -1
  91. package/dist/core/constraints/injection-writer.js +17 -54
  92. package/dist/core/constraints/injection-writer.js.map +1 -1
  93. package/dist/core/constraints/run-env.d.ts +1 -10
  94. package/dist/core/constraints/run-env.d.ts.map +1 -1
  95. package/dist/core/constraints/run-env.js +1 -22
  96. package/dist/core/constraints/run-env.js.map +1 -1
  97. package/dist/core/constraints/usage-report.d.ts +5 -7
  98. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  99. package/dist/core/constraints/usage-report.js +5 -10
  100. package/dist/core/constraints/usage-report.js.map +1 -1
  101. package/dist/core/effective-constraints.d.ts +12 -22
  102. package/dist/core/effective-constraints.d.ts.map +1 -1
  103. package/dist/core/effective-constraints.js +13 -30
  104. package/dist/core/effective-constraints.js.map +1 -1
  105. package/dist/core/index.d.ts +2 -2
  106. package/dist/core/index.d.ts.map +1 -1
  107. package/dist/core/index.js +3 -9
  108. package/dist/core/index.js.map +1 -1
  109. package/dist/core/project-config-loader.d.ts +4 -42
  110. package/dist/core/project-config-loader.d.ts.map +1 -1
  111. package/dist/core/project-config-loader.js +16 -125
  112. package/dist/core/project-config-loader.js.map +1 -1
  113. package/dist/core/validators/passes-gate.d.ts +2 -2
  114. package/dist/core/validators/passes-gate.js +6 -6
  115. package/dist/core/validators/passes-gate.js.map +1 -1
  116. package/dist/hooks/bootstrap.d.ts +9 -12
  117. package/dist/hooks/bootstrap.d.ts.map +1 -1
  118. package/dist/hooks/bootstrap.js +9 -31
  119. package/dist/hooks/bootstrap.js.map +1 -1
  120. package/dist/hooks/index.d.ts +5 -7
  121. package/dist/hooks/index.d.ts.map +1 -1
  122. package/dist/hooks/index.js +4 -10
  123. package/dist/hooks/index.js.map +1 -1
  124. package/dist/index.d.ts +9 -12
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +10 -23
  127. package/dist/index.js.map +1 -1
  128. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  129. package/dist/monitoring/trace-analyzer.js +11 -12
  130. package/dist/monitoring/trace-analyzer.js.map +1 -1
  131. package/dist/monitoring/traces.d.ts +4 -4
  132. package/dist/monitoring/traces.d.ts.map +1 -1
  133. package/dist/monitoring/traces.js +8 -8
  134. package/dist/monitoring/traces.js.map +1 -1
  135. package/dist/presets/standard.d.ts +8 -10
  136. package/dist/presets/standard.d.ts.map +1 -1
  137. package/dist/presets/standard.js +10 -16
  138. package/dist/presets/standard.js.map +1 -1
  139. package/dist/types/constraint.d.ts +24 -35
  140. package/dist/types/constraint.d.ts.map +1 -1
  141. package/dist/types/constraint.js +8 -7
  142. package/dist/types/constraint.js.map +1 -1
  143. package/dist/types/passes-gate.d.ts +5 -5
  144. package/dist/types/passes-gate.d.ts.map +1 -1
  145. package/dist/types/project-config.d.ts +8 -66
  146. package/dist/types/project-config.d.ts.map +1 -1
  147. package/dist/types/project-config.js +3 -2
  148. package/dist/types/project-config.js.map +1 -1
  149. package/dist/types/trace.d.ts +8 -10
  150. package/dist/types/trace.d.ts.map +1 -1
  151. package/package.json +2 -2
  152. package/src/CONTEXT.md +3 -3
  153. package/src/__tests__/checker-extra.test.ts +37 -61
  154. package/src/__tests__/checker.test.ts +10 -115
  155. package/src/__tests__/effective-constraints.test.ts +18 -83
  156. package/src/__tests__/iron-laws.test.ts +71 -90
  157. package/src/__tests__/passes-gate-check.test.ts +2 -2
  158. package/src/__tests__/project-config-loader-extra.test.ts +22 -123
  159. package/src/__tests__/project-config-loader.test.ts +5 -33
  160. package/src/__tests__/public-exports.test.ts +31 -11
  161. package/src/__tests__/public-type-surface.test.ts +2 -13
  162. package/src/__tests__/public-value-surface.test.ts +1 -7
  163. package/src/__tests__/skip-semantics.test.ts +21 -37
  164. package/src/__tests__/trace-analyzer-extra.test.ts +14 -14
  165. package/src/__tests__/trace-analyzer.test.ts +21 -21
  166. package/src/__tests__/trace-collector.test.ts +22 -22
  167. package/src/__tests__/traces.test.ts +27 -28
  168. package/src/cli/commands/CONTEXT.md +12 -9
  169. package/src/cli/commands/__tests__/check-read-count.test.ts +4 -15
  170. package/src/cli/commands/__tests__/check-skip-output.test.ts +14 -14
  171. package/src/cli/commands/__tests__/check.test.ts +14 -31
  172. package/src/cli/commands/__tests__/constraints-report.test.ts +12 -80
  173. package/src/cli/commands/__tests__/constraints-retire.test.ts +42 -231
  174. package/src/cli/commands/__tests__/init-governance-io.test.ts +12 -58
  175. package/src/cli/commands/__tests__/init-ondisk.test.ts +12 -20
  176. package/src/cli/commands/__tests__/init.test.ts +0 -11
  177. package/src/cli/commands/__tests__/project-path-anchoring.test.ts +2 -2
  178. package/src/cli/commands/__tests__/registry.test.ts +39 -3
  179. package/src/cli/commands/__tests__/report-extra.test.ts +4 -4
  180. package/src/cli/commands/__tests__/report.test.ts +1 -1
  181. package/src/cli/commands/__tests__/scaffold.test.ts +4 -14
  182. package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +3 -3
  183. package/src/cli/commands/__tests__/status-extra.test.ts +14 -14
  184. package/src/cli/commands/__tests__/status.test.ts +12 -12
  185. package/src/cli/commands/__tests__/sync-docs-agents.test.ts +1 -1
  186. package/src/cli/commands/__tests__/sync-docs-table-layout.test.ts +259 -0
  187. package/src/cli/commands/check.ts +43 -82
  188. package/src/cli/commands/constraints-report.ts +4 -59
  189. package/src/cli/commands/constraints-retire.ts +49 -154
  190. package/src/cli/commands/constraints.ts +11 -26
  191. package/src/cli/commands/definitions.ts +2 -2
  192. package/src/cli/commands/init.ts +8 -179
  193. package/src/cli/commands/report.ts +19 -23
  194. package/src/cli/commands/scaffold-templates.ts +1 -37
  195. package/src/cli/commands/scaffold.ts +0 -11
  196. package/src/cli/commands/status.ts +10 -10
  197. package/src/cli/commands/sync-docs/agents-syncer.ts +4 -25
  198. package/src/cli/commands/sync-docs/capabilities-syncer.ts +139 -9
  199. package/src/cli/commands/sync-docs/index.ts +41 -4
  200. package/src/core/CONTEXT.md +9 -9
  201. package/src/core/constraints/__tests__/capability-counts.test.ts +5 -5
  202. package/src/core/constraints/__tests__/collect-constraints.test.ts +13 -8
  203. package/src/core/constraints/__tests__/git-evidence.test.ts +4 -7
  204. package/src/core/constraints/__tests__/injection-writer.test.ts +8 -61
  205. package/src/core/constraints/__tests__/run-env.test.ts +5 -34
  206. package/src/core/constraints/__tests__/trace-injection.test.ts +1 -1
  207. package/src/core/constraints/capabilities-parser.ts +17 -5
  208. package/src/core/constraints/checker.ts +39 -88
  209. package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +5 -8
  210. package/src/core/constraints/checkers/__tests__/governance-presence.test.ts +1 -53
  211. package/src/core/constraints/checkers/__tests__/iron-flags.test.ts +5 -25
  212. package/src/core/constraints/checkers/docs-freshness.ts +1 -1
  213. package/src/core/constraints/checkers/governance-presence.ts +4 -3
  214. package/src/core/constraints/checkers/index.ts +4 -10
  215. package/src/core/constraints/checkers/iron-flags.ts +3 -12
  216. package/src/core/constraints/checkers/no-test-simplification.ts +1 -1
  217. package/src/core/constraints/checkers/types.ts +1 -1
  218. package/src/core/constraints/definitions/guidelines.ts +8 -25
  219. package/src/core/constraints/definitions/iron-laws.ts +9 -82
  220. package/src/core/constraints/definitions.ts +14 -15
  221. package/src/core/constraints/index.ts +4 -19
  222. package/src/core/constraints/injection-writer.ts +16 -61
  223. package/src/core/constraints/run-env.ts +1 -33
  224. package/src/core/constraints/usage-report.ts +8 -15
  225. package/src/core/effective-constraints.ts +14 -45
  226. package/src/core/index.ts +3 -10
  227. package/src/core/project-config-loader.ts +20 -145
  228. package/src/core/validators/passes-gate.ts +6 -6
  229. package/src/failure/CONTEXT.md +1 -1
  230. package/src/hooks/CONTEXT.md +12 -22
  231. package/src/hooks/__tests__/bootstrap.test.ts +24 -75
  232. package/src/hooks/bootstrap.ts +9 -48
  233. package/src/hooks/index.ts +5 -20
  234. package/src/index.ts +9 -31
  235. package/src/monitoring/__tests__/trace-file-anchoring.test.ts +1 -1
  236. package/src/monitoring/__tests__/traces.test.ts +22 -22
  237. package/src/monitoring/trace-analyzer.ts +12 -13
  238. package/src/monitoring/traces.ts +8 -8
  239. package/src/presets/__tests__/standard.test.ts +12 -16
  240. package/src/presets/standard.ts +14 -23
  241. package/src/types/__tests__/types.test.ts +3 -3
  242. package/src/types/constraint.ts +26 -40
  243. package/src/types/passes-gate.ts +5 -5
  244. package/src/types/project-config.ts +8 -77
  245. package/src/types/trace.ts +8 -11
  246. package/dist/core/constraints/agent-prompt-renderer.d.ts +0 -32
  247. package/dist/core/constraints/agent-prompt-renderer.d.ts.map +0 -1
  248. package/dist/core/constraints/agent-prompt-renderer.js +0 -55
  249. package/dist/core/constraints/agent-prompt-renderer.js.map +0 -1
  250. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +0 -6
  251. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +0 -1
  252. package/dist/core/constraints/checkers/no-bypass-checkpoint.js +0 -40
  253. package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +0 -1
  254. package/dist/core/constraints/definitions/prompts.d.ts +0 -12
  255. package/dist/core/constraints/definitions/prompts.d.ts.map +0 -1
  256. package/dist/core/constraints/definitions/prompts.js +0 -400
  257. package/dist/core/constraints/definitions/prompts.js.map +0 -1
  258. package/dist/core/constraints/injection-drift.d.ts +0 -61
  259. package/dist/core/constraints/injection-drift.d.ts.map +0 -1
  260. package/dist/core/constraints/injection-drift.js +0 -131
  261. package/dist/core/constraints/injection-drift.js.map +0 -1
  262. package/dist/core/constraints/injection-renderer.d.ts +0 -23
  263. package/dist/core/constraints/injection-renderer.d.ts.map +0 -1
  264. package/dist/core/constraints/injection-renderer.js +0 -44
  265. package/dist/core/constraints/injection-renderer.js.map +0 -1
  266. package/dist/hooks/config.d.ts +0 -30
  267. package/dist/hooks/config.d.ts.map +0 -1
  268. package/dist/hooks/config.js +0 -34
  269. package/dist/hooks/config.js.map +0 -1
  270. package/dist/hooks/pipeline.d.ts +0 -54
  271. package/dist/hooks/pipeline.d.ts.map +0 -1
  272. package/dist/hooks/pipeline.js +0 -173
  273. package/dist/hooks/pipeline.js.map +0 -1
  274. package/dist/hooks/registry.d.ts +0 -70
  275. package/dist/hooks/registry.d.ts.map +0 -1
  276. package/dist/hooks/registry.js +0 -141
  277. package/dist/hooks/registry.js.map +0 -1
  278. package/dist/hooks/types.d.ts +0 -113
  279. package/dist/hooks/types.d.ts.map +0 -1
  280. package/dist/hooks/types.js +0 -9
  281. package/dist/hooks/types.js.map +0 -1
  282. package/src/__tests__/hooks-pipeline.test.ts +0 -201
  283. package/src/cli/commands/__tests__/check-drift.test.ts +0 -158
  284. package/src/cli/commands/__tests__/init-injection.test.ts +0 -466
  285. package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +0 -129
  286. package/src/core/constraints/__tests__/injection-drift.test.ts +0 -247
  287. package/src/core/constraints/agent-prompt-renderer.ts +0 -67
  288. package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +0 -76
  289. package/src/core/constraints/checkers/no-bypass-checkpoint.ts +0 -40
  290. package/src/core/constraints/definitions/prompts.ts +0 -414
  291. package/src/core/constraints/injection-drift.ts +0 -142
  292. package/src/core/constraints/injection-renderer.ts +0 -44
  293. package/src/hooks/__tests__/config.test.ts +0 -19
  294. package/src/hooks/__tests__/pipeline.test.ts +0 -195
  295. package/src/hooks/__tests__/registry.test.ts +0 -115
  296. package/src/hooks/config.ts +0 -33
  297. package/src/hooks/pipeline.ts +0 -202
  298. package/src/hooks/registry.ts +0 -166
  299. package/src/hooks/types.ts +0 -120
@@ -4,7 +4,7 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.noTestSimplification = void 0;
7
- // m 标志必需:真实 diff 首行恒为 `diff --git`,缺 m 则 ^ 永不命中删除行(铁律静默失效)
7
+ // m 标志必需:真实 diff 首行恒为 `diff --git`,缺 m 则 ^ 永不命中删除行(checker 静默失效)
8
8
  const DELETED_TEST_PATTERNS = [
9
9
  /^-\s*(test|it|describe)\s*\(/m, // 删除 test/it/describe
10
10
  /^-\s*expect\s*\(/m, // 删除 expect
@@ -1 +1 @@
1
- {"version":3,"file":"no-test-simplification.js","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/no-test-simplification.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,2DAA2D;AAC3D,MAAM,qBAAqB,GAAG;IAC5B,+BAA+B,EAAE,sBAAsB;IACvD,mBAAmB,EAAe,YAAY;IAC9C,mBAAmB,EAAe,aAAa;CAChD,CAAC;AAEW,QAAA,oBAAoB,GAAoB;IACnD,EAAE,EAAE,wBAAwB;IAC5B,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,CAAC,SAAS;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAC/B,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"no-test-simplification.js","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/no-test-simplification.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,iEAAiE;AACjE,MAAM,qBAAqB,GAAG;IAC5B,+BAA+B,EAAE,sBAAsB;IACvD,mBAAmB,EAAe,YAAY;IAC9C,mBAAmB,EAAe,aAAa;CAChD,CAAC;AAEW,QAAA,oBAAoB,GAAoB;IACnD,EAAE,EAAE,wBAAwB;IAC5B,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,CAAC,SAAS;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAC/B,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -87,7 +87,7 @@ export declare const MAX_EVIDENCE_ITEMS = 10;
87
87
  /**
88
88
  * 组装证据行:一行说明 + 逐条依据(超限截断)
89
89
  *
90
- * 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / 铁律异常文案)决定,trace 原样存。
90
+ * 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / error 级异常文案)决定,trace 原样存。
91
91
  * 修复入口不写在这里:那是各约束自己的事,写进各自的 summary 行(docs_freshness 的
92
92
  * 幽灵条目与 sync-docs 无关,共用一个指针会误导)。
93
93
  */
@@ -44,7 +44,7 @@ exports.MAX_EVIDENCE_ITEMS = 10;
44
44
  /**
45
45
  * 组装证据行:一行说明 + 逐条依据(超限截断)
46
46
  *
47
- * 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / 铁律异常文案)决定,trace 原样存。
47
+ * 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / error 级异常文案)决定,trace 原样存。
48
48
  * 修复入口不写在这里:那是各约束自己的事,写进各自的 summary 行(docs_freshness 的
49
49
  * 幽灵条目与 sync-docs 无关,共用一个指针会误导)。
50
50
  */
@@ -1,11 +1,11 @@
1
1
  /**
2
- * check · guideline 定义(ADR-0001:kind 二元模型)
2
+ * check 约束定义(severity='warning' 组,ADR-0029)
3
3
  *
4
- * 只保留带真实 checker 的指导原则。每条必须:
4
+ * 只保留带真实 checker 的约束。每条必须:
5
5
  * - kind: 'check'
6
- * - level: 'guideline'
6
+ * - severity: 'warning'(违规告警不阻断)
7
7
  * - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
8
8
  */
9
9
  import type { Constraint } from '../../../types/constraint';
10
- export declare const GUIDELINES: Record<string, Constraint>;
10
+ export declare const WARNING_CONSTRAINTS: Record<string, Constraint>;
11
11
  //# sourceMappingURL=guidelines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guidelines.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA8GjD,CAAC"}
1
+ {"version":3,"file":"guidelines.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA6F1D,CAAC"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  /**
3
- * check · guideline 定义(ADR-0001:kind 二元模型)
3
+ * check 约束定义(severity='warning' 组,ADR-0029)
4
4
  *
5
- * 只保留带真实 checker 的指导原则。每条必须:
5
+ * 只保留带真实 checker 的约束。每条必须:
6
6
  * - kind: 'check'
7
- * - level: 'guideline'
7
+ * - severity: 'warning'(违规告警不阻断)
8
8
  * - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.GUIDELINES = void 0;
12
- exports.GUIDELINES = {
11
+ exports.WARNING_CONSTRAINTS = void 0;
12
+ exports.WARNING_CONSTRAINTS = {
13
13
  /**
14
14
  * 禁止硬编码凭证
15
15
  * 原因:密码/token/密钥泄露是最严重的安全漏洞,一旦提交到版本控制即不可逆
@@ -19,26 +19,10 @@ exports.GUIDELINES = {
19
19
  kind: 'check',
20
20
  rule: 'NO HARDCODED PASSWORDS, TOKENS, SECRETS, OR CREDENTIALS IN ANY SOURCE FILE',
21
21
  message: '禁止在代码/文档/配置文件中硬编码密码、token、密钥、API key',
22
- level: 'guideline',
22
+ severity: 'warning',
23
23
  trigger: ['code_implementation', 'doc_update', 'config_change', 'commit'],
24
24
  enforcement: 'credential-scan',
25
25
  description: `凭证(密码/token/密钥/API key)必须从环境变量或加密配置读取,严禁以明文形式出现在任何源代码文件中。包括但不限于:源码、Markdown 文档、YAML/JSON 配置、脚本文件。模板文件(.example/.sample/.template)允许占位符但不得包含真实值。建议配合 pre-commit hook 做自动扫描。`,
26
- promptInjection: '禁止在代码中硬编码密码、API 密钥、Token 等凭证。使用环境变量或安全的凭证管理方案存储敏感信息。',
27
- },
28
- /**
29
- * 禁止跳过检查点验证
30
- * 原因:安全底线,检查点是质量门控
31
- */
32
- no_bypass_checkpoint: {
33
- id: 'no_bypass_checkpoint',
34
- kind: 'check',
35
- rule: 'NO BYPASSING CHECKPOINTS',
36
- message: '禁止跳过检查点验证',
37
- level: 'guideline',
38
- trigger: 'code_implementation',
39
- enforcement: 'checkpoint-required',
40
- description: '所有检查点必须通过,不能跳过验证步骤。检查点是质量的最后一道防线。',
41
- promptInjection: '每个关键步骤后有 checkpoint 验证点,必须通过才能继续。通过标准:测试通过、类型检查无错误、lint 无新增警告。未通过时回退修复,不得跳过。',
42
26
  },
43
27
  /**
44
28
  * 功能清单同步
@@ -49,7 +33,7 @@ exports.GUIDELINES = {
49
33
  kind: 'check',
50
34
  rule: 'CODE CHANGES MUST UPDATE CAPABILITIES.MD',
51
35
  message: '核心模块变更必须同步功能清单(支持模块级目录条目登记)',
52
- level: 'guideline',
36
+ severity: 'warning',
53
37
  trigger: ['module_creation', 'module_modification', 'module_deletion', 'module_extension'],
54
38
  enforcement: 'update-capabilities',
55
39
  description: `在创建/修改/删除/扩展核心模块时,必须同步更新 CAPABILITIES.md:
@@ -76,7 +60,7 @@ exports.GUIDELINES = {
76
60
  kind: 'check',
77
61
  rule: 'KEY DIRECTORIES SHOULD HAVE CONTEXT.MD',
78
62
  message: '关键目录缺少 CONTEXT.md,运行 harness sync-docs 创建模板后填写实际内容',
79
- level: 'guideline',
63
+ severity: 'warning',
80
64
  trigger: 'module_modification',
81
65
  enforcement: 'context-check',
82
66
  description: `项目的关键目录应包含 CONTEXT.md 文件,描述目录职责和上下文。
@@ -104,7 +88,7 @@ exports.GUIDELINES = {
104
88
  kind: 'check',
105
89
  rule: 'GOVERNANCE CONTRACT MUST BE PRESENT (AGENTS.MD PRESERVE:GOVERNANCE BLOCK OR CLAUDE.MD GOVERNANCE RULES)',
106
90
  message: '治理契约缺失:AGENTS.md 缺少非空 PRESERVE:governance 段,且 CLAUDE.md 无 Governance Rules 块',
107
- level: 'guideline',
91
+ severity: 'warning',
108
92
  trigger: ['file_modification', 'module_creation', 'module_modification', 'doc_update', 'config_change', 'commit'],
109
93
  enforcement: 'governance-presence-check',
110
94
  description: `治理契约(约束清单正本)必须在场,两处居其一:
@@ -1 +1 @@
1
- {"version":3,"file":"guidelines.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,UAAU,GAA+B;IACpD;;;OAGG;IACH,wBAAwB,EAAE;QACxB,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,4EAA4E;QAClF,OAAO,EAAE,sCAAsC;QAC/C,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,CAAC,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACzE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,4KAA4K;QACzL,eAAe,EAAE,sDAAsD;KACxE;IAED;;;OAGG;IACH,oBAAoB,EAAE;QACpB,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,mCAAmC;QAChD,eAAe,EAAE,8EAA8E;KAChG;IAED;;;OAGG;IACH,eAAe,EAAE;QACf,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,6BAA6B;QACtC,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;QAC1F,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;;;;;;;;;;;;;yFAawE;KACtF;IAED;;;OAGG;IACH,gBAAgB,EAAE;QAChB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,oDAAoD;QAC7D,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE;;;;;;;;;;;;;+BAac;KAC5B;IAED;;;;OAIG;IACH,mBAAmB,EAAE;QACnB,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,yGAAyG;QAC/G,OAAO,EAAE,8EAA8E;QACvF,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACjH,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;;;;;;oDAMmC;KACjD;CACF,CAAC"}
1
+ {"version":3,"file":"guidelines.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,mBAAmB,GAA+B;IAC7D;;;OAGG;IACH,wBAAwB,EAAE;QACxB,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,4EAA4E;QAClF,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACzE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,4KAA4K;KAC1L;IAED;;;OAGG;IACH,eAAe,EAAE;QACf,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;QAC1F,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;;;;;;;;;;;;;yFAawE;KACtF;IAED;;;OAGG;IACH,gBAAgB,EAAE;QAChB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,oDAAoD;QAC7D,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE;;;;;;;;;;;;;+BAac;KAC5B;IAED;;;;OAIG;IACH,mBAAmB,EAAE;QACnB,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,yGAAyG;QAC/G,OAAO,EAAE,8EAA8E;QACvF,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACjH,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;;;;;;oDAMmC;KACjD;CACF,CAAC"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * check · iron_law 定义(ADR-0001:kind 二元模型)
2
+ * check 约束定义(severity='error' 组,ADR-0029)
3
3
  *
4
- * 只保留带真实 checker 的铁律。每条必须:
4
+ * 只保留带真实 checker 的约束。每条必须:
5
5
  * - kind: 'check'
6
- * - level: 'iron_law'
6
+ * - severity: 'error'(违规即阻断)
7
7
  * - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
8
8
  */
9
9
  import type { Constraint } from '../../../types/constraint';
10
- export declare const IRON_LAWS: Record<string, Constraint>;
10
+ export declare const ERROR_CONSTRAINTS: Record<string, Constraint>;
11
11
  //# sourceMappingURL=iron-laws.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iron-laws.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAkIhD,CAAC"}
1
+ {"version":3,"file":"iron-laws.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAyDxD,CAAC"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  /**
3
- * check · iron_law 定义(ADR-0001:kind 二元模型)
3
+ * check 约束定义(severity='error' 组,ADR-0029)
4
4
  *
5
- * 只保留带真实 checker 的铁律。每条必须:
5
+ * 只保留带真实 checker 的约束。每条必须:
6
6
  * - kind: 'check'
7
- * - level: 'iron_law'
7
+ * - severity: 'error'(违规即阻断)
8
8
  * - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.IRON_LAWS = void 0;
12
- exports.IRON_LAWS = {
11
+ exports.ERROR_CONSTRAINTS = void 0;
12
+ exports.ERROR_CONSTRAINTS = {
13
13
  /**
14
14
  * 禁止无验证声明完成
15
15
  * 原因:质量底线,必须有验证命令
@@ -19,92 +19,22 @@ exports.IRON_LAWS = {
19
19
  kind: 'check',
20
20
  rule: 'NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE',
21
21
  message: '禁止无验证声明完成,必须运行验证命令',
22
- level: 'iron_law',
22
+ severity: 'error',
23
23
  trigger: 'code_implementation',
24
24
  enforcement: 'verify-completion',
25
25
  description: '在声明任何任务完成之前,必须运行新鲜的验证命令(项目声明的测试 + type check),以新鲜输出作为完成证据。验证命令集由项目自行声明,全量验证留给 CI 流程。',
26
- promptInjection: '在声明任务完成前,必须重新运行新鲜的验证命令(项目声明的测试 + type check),使用新鲜的输出作为完成证据,不得复用旧结果,不得凭记忆声称完成。',
27
- },
28
- /**
29
- * 禁止一次做多个任务(one-shotting)
30
- * 来源:Anthropic AI Harness - Effective Harnesses for Long-running Agents
31
- * 原因:避免中途耗尽 context,保持专注和可控
32
- */
33
- incremental_progress: {
34
- id: 'incremental_progress',
35
- kind: 'check',
36
- rule: 'ONE TASK PER SESSION',
37
- message: '禁止一次做多个任务,每次只做一件事',
38
- level: 'iron_law',
39
- trigger: 'code_implementation',
40
- enforcement: 'single-task-check',
41
- description: `一个 session 只处理一个任务,避免 one-shotting。
42
-
43
- 【禁止】
44
- - 一次做多个任务 → 中途耗尽 context
45
- - 大改动一次性完成 → 失控
46
- - 没有拆分的复杂任务 → 无法回滚
47
-
48
- 【必须】
49
- - 一个 session 一个任务 → 保持专注
50
- - 大任务拆分为小步骤 → 分步执行
51
- - 每步都有 checkpoint → 可回滚
52
-
53
- 【判断标准】
54
- - 改动涉及多个模块 → 需拆分
55
- - 改动超过 100 行 → 需拆分
56
- - 改动影响多个文件 → 需拆分
57
-
58
- 【参考】
59
- Anthropic AI: "Effective Harnesses for Long-running Agents"
60
- https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents`,
61
- promptInjection: '一次只处理一个任务。改动涉及多个模块、超过 100 行、或影响多个文件时,必须拆分为小步骤分步执行,每步有独立 checkpoint 可回滚。不要试图一次性完成所有改动。',
62
- },
63
- /**
64
- * 禁止无需求就开始实现(吸收 no_implementation_without_requirement_review)
65
- * 原因:没有需求就没有验收标准,实现方向不可控;
66
- * 实现完成后必须逐条对照 AC 验证,避免偏离需求
67
- */
68
- no_implementation_without_requirement: {
69
- id: 'no_implementation_without_requirement',
70
- kind: 'check',
71
- rule: 'NO IMPLEMENTATION WITHOUT REQUIREMENTS, AND REVIEW AGAINST AC AFTER IMPLEMENTATION',
72
- message: '禁止无需求就开始实现,实现后必须逐条对照 AC 验证',
73
- level: 'iron_law',
74
- trigger: ['code_implementation', 'design_request'],
75
- enforcement: 'requirement-exists',
76
- description: `在开始实现之前,必须有明确的需求定义;实现完成后,必须逐条对照验收标准(AC)验证。
77
-
78
- 【实现前必须执行】
79
- 1. 确认需求来源(Spec/Issue/Roadmap/用户指令)
80
- 2. 确认验收标准(AC)已定义
81
- 3. 确认边界情况已明确
82
-
83
- 【实现后必须执行】(吸收自 no_implementation_without_requirement_review)
84
- 1. 回顾需求文档(Spec/Roadmap/Issue)
85
- 2. 逐条检查实现是否符合每条 AC
86
- 3. 确认边界情况已覆盖
87
- 4. 输出验证清单(AC × 实现 × 状态)
88
-
89
- 【禁止】
90
- - 没有需求就开始写代码、凭假设开始实现
91
- - 实现后不对比需求直接提交,只测"功能能跑"不验证 AC
92
- - 跳过边界情况验证,假设"差不多就行"
93
-
94
- 【正确流程】
95
- 需求确认 → AC 定义 → 实现 → 逐条对照 AC 验证`,
96
- promptInjection: '开始编写代码前,必须确认:需求来源明确(Spec/Issue/Roadmap/用户指令)、验收标准(AC)已定义、边界情况已明确。不要凭假设或猜测开始实现。实现完成后,必须逐条对比原始需求文档中的验收标准(AC),确认每条 AC 已实现且边界情况已覆盖,输出验证清单。不得仅凭"功能能跑"就认为完成。',
97
26
  },
98
27
  /**
99
28
  * 禁止简化测试
100
29
  * 原因:质量底线,测试困难必须解决
30
+ * (harness#174:checker 承载执行)
101
31
  */
102
32
  no_test_simplification: {
103
33
  id: 'no_test_simplification',
104
34
  kind: 'check',
105
35
  rule: 'NO SIMPLIFYING TESTS TO AVOID DIFFICULTY',
106
36
  message: '禁止简化测试绕过困难',
107
- level: 'iron_law',
37
+ severity: 'error',
108
38
  trigger: 'test_creation',
109
39
  enforcement: 'full-test-coverage',
110
40
  description: `在编写测试时,不能因为遇到困难而简化或跳过测试。
@@ -118,18 +48,17 @@ https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agent
118
48
  - 为了绕过 mock 困难而删除测试用例
119
49
  - 为了绕过异步问题而跳过断言
120
50
  - 降低测试覆盖率要求`,
121
- promptInjection: '编写测试时遇到困难(mock、异步、环境),不得删除用例或跳过断言。正确做法:分析问题 → 查阅文档 → 尝试解决 → 仍不行则向用户说明困难请求指示。不得降低覆盖率要求。',
122
51
  },
123
52
  /**
124
53
  * 文档新鲜度
125
- * 原因:guideline 只警告不阻断,导致文档持续腐烂。
54
+ * 原因:只警告不阻断会导致文档持续腐烂。
126
55
  */
127
56
  docs_freshness: {
128
57
  id: 'docs_freshness',
129
58
  kind: 'check',
130
59
  rule: 'CAPABILITIES.MD MUST BE IN SYNC WITH CODE',
131
60
  message: 'CAPABILITIES.md 与源码不同步,运行 harness sync-docs 更新后重新提交',
132
- level: 'iron_law',
61
+ severity: 'error',
133
62
  trigger: ['file_modification', 'module_creation', 'module_modification'],
134
63
  enforcement: 'docs-sync-check',
135
64
  description: `CAPABILITIES.md 中列出的文件必须在 src/ 中实际存在。删除源文件时须从 CAPABILITIES.md 同步移除。运行 harness sync-docs 自动修复过期引用。
@@ -1 +1 @@
1
- {"version":3,"file":"iron-laws.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,SAAS,GAA+B;IACnD;;;OAGG;IACH,kCAAkC,EAAE;QAClC,EAAE,EAAE,oCAAoC;QACxC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0DAA0D;QAChE,OAAO,EAAE,oBAAoB;QAC7B,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,sFAAsF;QACnG,eAAe,EAAE,+EAA+E;KACjG;IAED;;;;OAIG;IACH,oBAAoB,EAAE;QACpB,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,mBAAmB;QAC5B,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;kFAmBiE;QAC9E,eAAe,EAAE,uFAAuF;KACzG;IAED;;;;OAIG;IACH,qCAAqC,EAAE;QACrC,EAAE,EAAE,uCAAuC;QAC3C,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,oFAAoF;QAC1F,OAAO,EAAE,4BAA4B;QACrC,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;QAClD,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;+BAmBc;QAC3B,eAAe,EAAE,wJAAwJ;KAC1K;IAED;;;OAGG;IACH,sBAAsB,EAAE;QACtB,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;;;;;;;;;;YAUL;QACR,eAAe,EAAE,wFAAwF;KAC1G;IAED;;;OAGG;IACH,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;QACxE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;kFACiE;KAC/E;CACF,CAAC"}
1
+ {"version":3,"file":"iron-laws.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,iBAAiB,GAA+B;IAC3D;;;OAGG;IACH,kCAAkC,EAAE;QAClC,EAAE,EAAE,oCAAoC;QACxC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0DAA0D;QAChE,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,sFAAsF;KACpG;IAED;;;;OAIG;IACH,sBAAsB,EAAE;QACtB,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;;;;;;;;;;YAUL;KACT;IAED;;;OAGG;IACH,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;QACxE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;kFACiE;KAC/E;CACF,CAAC"}
@@ -1,20 +1,18 @@
1
1
  /**
2
2
  * 约束定义(薄聚合层)
3
3
  *
4
- * kind 二元模型(ADR-0001):
5
- * - IRON_LAWS / GUIDELINES:check 层,必须带真实 checker(注册表闭环)
6
- * - PROMPTS:prompt 层,纯文本注入,不占检查位
4
+ * severity 显式模型(ADR-0029,取代 ADR-0001 三层命名):
5
+ * 全部内置约束 kind='check',severity 写死在定义上(error / warning),
6
+ * 纯文本提示层(prompts.ts)已随文本注入层关停整体删除。
7
7
  *
8
- * 工单 20:字面量定义按层拆至 ./definitions/{iron-laws,guidelines,prompts}.ts;
8
+ * 工单 20:字面量定义按 severity 分组放 ./definitions/{iron-laws,guidelines}.ts;
9
9
  * 本文件保持原路径做薄聚合(studio rule-scanner 按此路径解析,P0 #8)。
10
10
  */
11
11
  import type { Constraint, ConstraintTrigger } from '../../types/constraint';
12
- import { IRON_LAWS } from './definitions/iron-laws';
13
- import { GUIDELINES } from './definitions/guidelines';
14
- import { PROMPTS } from './definitions/prompts';
15
- export { IRON_LAWS, GUIDELINES, PROMPTS };
12
+ /** 全部内置约束(check 层全量,severity 在条目上) */
13
+ export declare const CONSTRAINTS: Record<string, Constraint>;
16
14
  /**
17
- * 获取所有约束(check + prompt 全量,带 kind)
15
+ * 获取所有约束(check 全量,带 kind/severity
18
16
  */
19
17
  export declare function getAllConstraints(): Constraint[];
20
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAM1C;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAMhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE,CAKjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI5E,sCAAsC;AACtC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAGlD,CAAC;AAMF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE,CAKjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE"}
@@ -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"}