@dommaker/harness 0.16.6 → 0.16.8

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 (641) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +54 -14
  3. package/bin/harness.js +56 -96
  4. package/dist/architecture/constraint-engine.d.ts.map +1 -1
  5. package/dist/architecture/constraint-engine.js +0 -4
  6. package/dist/architecture/constraint-engine.js.map +1 -1
  7. package/dist/architecture/cross-project-checker.d.ts.map +1 -1
  8. package/dist/architecture/cross-project-checker.js +5 -25
  9. package/dist/architecture/cross-project-checker.js.map +1 -1
  10. package/dist/cli/commands/analyze-sessions.d.ts +2 -0
  11. package/dist/cli/commands/analyze-sessions.d.ts.map +1 -1
  12. package/dist/cli/commands/analyze-sessions.js +25 -181
  13. package/dist/cli/commands/analyze-sessions.js.map +1 -1
  14. package/dist/cli/commands/check.d.ts +1 -0
  15. package/dist/cli/commands/check.d.ts.map +1 -1
  16. package/dist/cli/commands/check.js +24 -216
  17. package/dist/cli/commands/check.js.map +1 -1
  18. package/dist/cli/commands/doc-freshness-check.d.ts.map +1 -1
  19. package/dist/cli/commands/doc-freshness-check.js +14 -28
  20. package/dist/cli/commands/doc-freshness-check.js.map +1 -1
  21. package/dist/cli/commands/flow.d.ts.map +1 -1
  22. package/dist/cli/commands/flow.js +2 -1
  23. package/dist/cli/commands/flow.js.map +1 -1
  24. package/dist/cli/commands/init.js +2 -2
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/posteval-plan.d.ts.map +1 -1
  27. package/dist/cli/commands/posteval-plan.js +0 -1
  28. package/dist/cli/commands/posteval-plan.js.map +1 -1
  29. package/dist/cli/commands/release.js +1 -1
  30. package/dist/cli/commands/release.js.map +1 -1
  31. package/dist/cli/commands/report.d.ts.map +1 -1
  32. package/dist/cli/commands/report.js +2 -0
  33. package/dist/cli/commands/report.js.map +1 -1
  34. package/dist/cli/commands/spec-baseline-check.d.ts.map +1 -1
  35. package/dist/cli/commands/spec-baseline-check.js +12 -23
  36. package/dist/cli/commands/spec-baseline-check.js.map +1 -1
  37. package/dist/cli/commands/sync-docs/agents-syncer.d.ts +19 -0
  38. package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -0
  39. package/dist/cli/commands/sync-docs/agents-syncer.js +288 -0
  40. package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -0
  41. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +37 -0
  42. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -0
  43. package/dist/cli/commands/sync-docs/capabilities-syncer.js +235 -0
  44. package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -0
  45. package/dist/cli/commands/sync-docs/context-syncer.d.ts +17 -0
  46. package/dist/cli/commands/sync-docs/context-syncer.d.ts.map +1 -0
  47. package/dist/cli/commands/sync-docs/context-syncer.js +143 -0
  48. package/dist/cli/commands/sync-docs/context-syncer.js.map +1 -0
  49. package/dist/cli/commands/{sync-docs.d.ts → sync-docs/index.d.ts} +9 -2
  50. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -0
  51. package/dist/cli/commands/sync-docs/index.js +338 -0
  52. package/dist/cli/commands/sync-docs/index.js.map +1 -0
  53. package/dist/cli/commands/sync-docs/preserve-block.d.ts +24 -0
  54. package/dist/cli/commands/sync-docs/preserve-block.d.ts.map +1 -0
  55. package/dist/cli/commands/sync-docs/preserve-block.js +55 -0
  56. package/dist/cli/commands/sync-docs/preserve-block.js.map +1 -0
  57. package/dist/cli/commands/sync-docs/project-reader.d.ts +41 -0
  58. package/dist/cli/commands/sync-docs/project-reader.d.ts.map +1 -0
  59. package/dist/cli/commands/sync-docs/project-reader.js +183 -0
  60. package/dist/cli/commands/sync-docs/project-reader.js.map +1 -0
  61. package/dist/cli/commands/update-user-model.d.ts +2 -0
  62. package/dist/cli/commands/update-user-model.d.ts.map +1 -1
  63. package/dist/cli/commands/update-user-model.js +19 -90
  64. package/dist/cli/commands/update-user-model.js.map +1 -1
  65. package/dist/cli/commands/validate.d.ts +3 -0
  66. package/dist/cli/commands/validate.d.ts.map +1 -1
  67. package/dist/cli/commands/validate.js +6 -39
  68. package/dist/cli/commands/validate.js.map +1 -1
  69. package/dist/cli/session-mining/corrections.d.ts +17 -0
  70. package/dist/cli/session-mining/corrections.d.ts.map +1 -0
  71. package/dist/cli/session-mining/corrections.js +58 -0
  72. package/dist/cli/session-mining/corrections.js.map +1 -0
  73. package/dist/cli/session-mining/index.d.ts +13 -0
  74. package/dist/cli/session-mining/index.d.ts.map +1 -0
  75. package/dist/{core/spec → cli/session-mining}/index.js +9 -3
  76. package/dist/cli/session-mining/index.js.map +1 -0
  77. package/dist/cli/session-mining/text.d.ts +31 -0
  78. package/dist/cli/session-mining/text.d.ts.map +1 -0
  79. package/dist/cli/session-mining/text.js +126 -0
  80. package/dist/cli/session-mining/text.js.map +1 -0
  81. package/dist/cli/session-mining/transcript.d.ts +28 -0
  82. package/dist/cli/session-mining/transcript.d.ts.map +1 -0
  83. package/dist/cli/session-mining/transcript.js +123 -0
  84. package/dist/cli/session-mining/transcript.js.map +1 -0
  85. package/dist/constraints/lifecycle-runner.d.ts +1 -1
  86. package/dist/constraints/lifecycle-runner.d.ts.map +1 -1
  87. package/dist/context/compaction.d.ts.map +1 -1
  88. package/dist/context/compaction.js +2 -3
  89. package/dist/context/compaction.js.map +1 -1
  90. package/dist/context/knowledge-injector.d.ts.map +1 -1
  91. package/dist/context/tool-output-budget.d.ts +1 -1
  92. package/dist/context/tool-output-budget.d.ts.map +1 -1
  93. package/dist/context/tool-output-budget.js +1 -1
  94. package/dist/context/tool-output-budget.js.map +1 -1
  95. package/dist/core/constraints/capabilities-parser.d.ts +24 -0
  96. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -0
  97. package/dist/core/constraints/capabilities-parser.js +95 -0
  98. package/dist/core/constraints/capabilities-parser.js.map +1 -0
  99. package/dist/core/constraints/checker.d.ts +37 -100
  100. package/dist/core/constraints/checker.d.ts.map +1 -1
  101. package/dist/core/constraints/checker.js +150 -737
  102. package/dist/core/constraints/checker.js.map +1 -1
  103. package/dist/core/constraints/checkers/always-pass.d.ts +17 -0
  104. package/dist/core/constraints/checkers/always-pass.d.ts.map +1 -0
  105. package/dist/core/constraints/checkers/always-pass.js +23 -0
  106. package/dist/core/constraints/checkers/always-pass.js.map +1 -0
  107. package/dist/core/constraints/checkers/capability-sync.d.ts +10 -0
  108. package/dist/core/constraints/checkers/capability-sync.d.ts.map +1 -0
  109. package/dist/core/constraints/checkers/capability-sync.js +60 -0
  110. package/dist/core/constraints/checkers/capability-sync.js.map +1 -0
  111. package/dist/core/constraints/checkers/context-doc-sync.d.ts +6 -0
  112. package/dist/core/constraints/checkers/context-doc-sync.d.ts.map +1 -0
  113. package/dist/core/constraints/checkers/context-doc-sync.js +35 -0
  114. package/dist/core/constraints/checkers/context-doc-sync.js.map +1 -0
  115. package/dist/core/constraints/checkers/docs-freshness.d.ts +10 -0
  116. package/dist/core/constraints/checkers/docs-freshness.d.ts.map +1 -0
  117. package/dist/core/constraints/checkers/docs-freshness.js +111 -0
  118. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -0
  119. package/dist/core/constraints/checkers/guideline-flags.d.ts +9 -0
  120. package/dist/core/constraints/checkers/guideline-flags.d.ts.map +1 -0
  121. package/dist/core/constraints/checkers/guideline-flags.js +13 -0
  122. package/dist/core/constraints/checkers/guideline-flags.js.map +1 -0
  123. package/dist/core/constraints/checkers/index.d.ts +17 -0
  124. package/dist/core/constraints/checkers/index.d.ts.map +1 -0
  125. package/dist/core/constraints/checkers/index.js +82 -0
  126. package/dist/core/constraints/checkers/index.js.map +1 -0
  127. package/dist/core/constraints/checkers/iron-flags.d.ts +14 -0
  128. package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -0
  129. package/dist/core/constraints/checkers/iron-flags.js +24 -0
  130. package/dist/core/constraints/checkers/iron-flags.js.map +1 -0
  131. package/dist/core/constraints/checkers/no-any-type.d.ts +6 -0
  132. package/dist/core/constraints/checkers/no-any-type.d.ts.map +1 -0
  133. package/dist/core/constraints/checkers/no-any-type.js +42 -0
  134. package/dist/core/constraints/checkers/no-any-type.js.map +1 -0
  135. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +6 -0
  136. package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +1 -0
  137. package/dist/core/constraints/checkers/no-bypass-checkpoint.js +40 -0
  138. package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +1 -0
  139. package/dist/core/constraints/checkers/no-excuse-patterns.d.ts +6 -0
  140. package/dist/core/constraints/checkers/no-excuse-patterns.d.ts.map +1 -0
  141. package/dist/core/constraints/checkers/no-excuse-patterns.js +25 -0
  142. package/dist/core/constraints/checkers/no-excuse-patterns.js.map +1 -0
  143. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.d.ts +6 -0
  144. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.d.ts.map +1 -0
  145. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.js +34 -0
  146. package/dist/core/constraints/checkers/no-fuzzy-completion-claim.js.map +1 -0
  147. package/dist/core/constraints/checkers/no-performative-agreement.d.ts +8 -0
  148. package/dist/core/constraints/checkers/no-performative-agreement.d.ts.map +1 -0
  149. package/dist/core/constraints/checkers/no-performative-agreement.js +23 -0
  150. package/dist/core/constraints/checkers/no-performative-agreement.js.map +1 -0
  151. package/dist/core/constraints/checkers/no-simplification-without-approval.d.ts +6 -0
  152. package/dist/core/constraints/checkers/no-simplification-without-approval.d.ts.map +1 -0
  153. package/dist/core/constraints/checkers/no-simplification-without-approval.js +30 -0
  154. package/dist/core/constraints/checkers/no-simplification-without-approval.js.map +1 -0
  155. package/dist/core/constraints/checkers/no-test-simplification.d.ts +6 -0
  156. package/dist/core/constraints/checkers/no-test-simplification.d.ts.map +1 -0
  157. package/dist/core/constraints/checkers/no-test-simplification.js +29 -0
  158. package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -0
  159. package/dist/core/constraints/checkers/test-coverage.d.ts +6 -0
  160. package/dist/core/constraints/checkers/test-coverage.d.ts.map +1 -0
  161. package/dist/core/constraints/checkers/test-coverage.js +33 -0
  162. package/dist/core/constraints/checkers/test-coverage.js.map +1 -0
  163. package/dist/core/constraints/checkers/types.d.ts +43 -0
  164. package/dist/core/constraints/checkers/types.d.ts.map +1 -0
  165. package/dist/core/constraints/checkers/types.js +23 -0
  166. package/dist/core/constraints/checkers/types.js.map +1 -0
  167. package/dist/core/constraints/checkers/yagni.d.ts +8 -0
  168. package/dist/core/constraints/checkers/yagni.d.ts.map +1 -0
  169. package/dist/core/constraints/checkers/yagni.js +96 -0
  170. package/dist/core/constraints/checkers/yagni.js.map +1 -0
  171. package/dist/core/constraints/context-builder.d.ts +67 -0
  172. package/dist/core/constraints/context-builder.d.ts.map +1 -0
  173. package/dist/core/constraints/context-builder.js +294 -0
  174. package/dist/core/constraints/context-builder.js.map +1 -0
  175. package/dist/core/constraints/definitions/guidelines.d.ts +7 -0
  176. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -0
  177. package/dist/core/constraints/definitions/guidelines.js +641 -0
  178. package/dist/core/constraints/definitions/guidelines.js.map +1 -0
  179. package/dist/core/constraints/definitions/iron-laws.d.ts +7 -0
  180. package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -0
  181. package/dist/core/constraints/definitions/iron-laws.js +322 -0
  182. package/dist/core/constraints/definitions/iron-laws.js.map +1 -0
  183. package/dist/core/constraints/definitions/tips.d.ts +7 -0
  184. package/dist/core/constraints/definitions/tips.d.ts.map +1 -0
  185. package/dist/core/constraints/definitions/tips.js +62 -0
  186. package/dist/core/constraints/definitions/tips.js.map +1 -0
  187. package/dist/core/constraints/definitions.d.ts +8 -21
  188. package/dist/core/constraints/definitions.d.ts.map +1 -1
  189. package/dist/core/constraints/definitions.js +15 -1048
  190. package/dist/core/constraints/definitions.js.map +1 -1
  191. package/dist/core/constraints/doc-freshness/runner.d.ts.map +1 -1
  192. package/dist/core/constraints/doc-freshness/runner.js +0 -1
  193. package/dist/core/constraints/doc-freshness/runner.js.map +1 -1
  194. package/dist/core/constraints/index.d.ts +4 -5
  195. package/dist/core/constraints/index.d.ts.map +1 -1
  196. package/dist/core/constraints/index.js +1 -16
  197. package/dist/core/constraints/index.js.map +1 -1
  198. package/dist/core/constraints/interceptor.d.ts.map +1 -1
  199. package/dist/core/constraints/interceptor.js.map +1 -1
  200. package/dist/core/index.js +0 -1
  201. package/dist/core/index.js.map +1 -1
  202. package/dist/core/project-config-loader.d.ts +6 -4
  203. package/dist/core/project-config-loader.d.ts.map +1 -1
  204. package/dist/core/project-config-loader.js +46 -13
  205. package/dist/core/project-config-loader.js.map +1 -1
  206. package/dist/core/validators/check-handlers/command.d.ts +7 -0
  207. package/dist/core/validators/check-handlers/command.d.ts.map +1 -0
  208. package/dist/core/validators/check-handlers/command.js +58 -0
  209. package/dist/core/validators/check-handlers/command.js.map +1 -0
  210. package/dist/core/validators/check-handlers/file.d.ts +10 -0
  211. package/dist/core/validators/check-handlers/file.d.ts.map +1 -0
  212. package/dist/core/validators/check-handlers/file.js +128 -0
  213. package/dist/core/validators/check-handlers/file.js.map +1 -0
  214. package/dist/core/validators/check-handlers/http.d.ts +7 -0
  215. package/dist/core/validators/check-handlers/http.d.ts.map +1 -0
  216. package/dist/core/validators/check-handlers/http.js +88 -0
  217. package/dist/core/validators/check-handlers/http.js.map +1 -0
  218. package/dist/core/validators/check-handlers/output.d.ts +15 -0
  219. package/dist/core/validators/check-handlers/output.d.ts.map +1 -0
  220. package/dist/core/validators/check-handlers/output.js +152 -0
  221. package/dist/core/validators/check-handlers/output.js.map +1 -0
  222. package/dist/core/validators/checkpoint.d.ts +4 -72
  223. package/dist/core/validators/checkpoint.d.ts.map +1 -1
  224. package/dist/core/validators/checkpoint.js +21 -400
  225. package/dist/core/validators/checkpoint.js.map +1 -1
  226. package/dist/core/validators/cso.js +1 -1
  227. package/dist/core/validators/cso.js.map +1 -1
  228. package/dist/core/validators/passes-gate.js +2 -2
  229. package/dist/core/validators/passes-gate.js.map +1 -1
  230. package/dist/dashboard/stats.d.ts.map +1 -1
  231. package/dist/dashboard/types.d.ts.map +1 -1
  232. package/dist/evolution/auto-evolve.d.ts +1 -2
  233. package/dist/evolution/auto-evolve.d.ts.map +1 -1
  234. package/dist/evolution/auto-evolve.js +2 -1
  235. package/dist/evolution/auto-evolve.js.map +1 -1
  236. package/dist/failure/types.d.ts +5 -85
  237. package/dist/failure/types.d.ts.map +1 -1
  238. package/dist/failure/types.js +19 -115
  239. package/dist/failure/types.js.map +1 -1
  240. package/dist/gates/contract.d.ts.map +1 -1
  241. package/dist/gates/contract.js.map +1 -1
  242. package/dist/gates/index.d.ts.map +1 -1
  243. package/dist/gates/index.js.map +1 -1
  244. package/dist/gates/performance.js +1 -1
  245. package/dist/gates/performance.js.map +1 -1
  246. package/dist/gates/security.d.ts.map +1 -1
  247. package/dist/gates/security.js +1 -1
  248. package/dist/gates/security.js.map +1 -1
  249. package/dist/hooks/bootstrap.d.ts.map +1 -1
  250. package/dist/hooks/bootstrap.js +6 -48
  251. package/dist/hooks/bootstrap.js.map +1 -1
  252. package/dist/index.d.ts +0 -1
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +3 -1
  255. package/dist/index.js.map +1 -1
  256. package/dist/knowledge/audit.d.ts.map +1 -1
  257. package/dist/knowledge/doctor.d.ts.map +1 -1
  258. package/dist/knowledge/doctor.js.map +1 -1
  259. package/dist/knowledge/import.d.ts.map +1 -1
  260. package/dist/knowledge/import.js +1 -1
  261. package/dist/knowledge/import.js.map +1 -1
  262. package/dist/knowledge/index-generator.d.ts.map +1 -1
  263. package/dist/knowledge/index-generator.js +0 -1
  264. package/dist/knowledge/index-generator.js.map +1 -1
  265. package/dist/knowledge/ingest.d.ts.map +1 -1
  266. package/dist/knowledge/ingest.js +1 -1
  267. package/dist/knowledge/ingest.js.map +1 -1
  268. package/dist/knowledge/lint.d.ts +1 -1
  269. package/dist/knowledge/lint.d.ts.map +1 -1
  270. package/dist/knowledge/lint.js +2 -2
  271. package/dist/knowledge/lint.js.map +1 -1
  272. package/dist/knowledge/primitives/code-structure.d.ts.map +1 -1
  273. package/dist/knowledge/primitives/code-structure.js +29 -12
  274. package/dist/knowledge/primitives/code-structure.js.map +1 -1
  275. package/dist/knowledge/query.d.ts.map +1 -1
  276. package/dist/knowledge/query.js.map +1 -1
  277. package/dist/knowledge/store.d.ts.map +1 -1
  278. package/dist/llm/adapter.d.ts +3 -3
  279. package/dist/llm/adapter.d.ts.map +1 -1
  280. package/dist/llm/adapter.js +3 -3
  281. package/dist/llm/adapter.js.map +1 -1
  282. package/dist/monitoring/analyzer-base.d.ts +50 -0
  283. package/dist/monitoring/analyzer-base.d.ts.map +1 -0
  284. package/dist/monitoring/analyzer-base.js +146 -0
  285. package/dist/monitoring/analyzer-base.js.map +1 -0
  286. package/dist/monitoring/constraint-doctor.d.ts +3 -46
  287. package/dist/monitoring/constraint-doctor.d.ts.map +1 -1
  288. package/dist/monitoring/constraint-doctor.js +11 -113
  289. package/dist/monitoring/constraint-doctor.js.map +1 -1
  290. package/dist/monitoring/constraint-evolver.d.ts +9 -63
  291. package/dist/monitoring/constraint-evolver.d.ts.map +1 -1
  292. package/dist/monitoring/constraint-evolver.js +8 -10
  293. package/dist/monitoring/constraint-evolver.js.map +1 -1
  294. package/dist/monitoring/diagnosis-rules.d.ts +18 -0
  295. package/dist/monitoring/diagnosis-rules.d.ts.map +1 -0
  296. package/dist/monitoring/diagnosis-rules.js +119 -0
  297. package/dist/monitoring/diagnosis-rules.js.map +1 -0
  298. package/dist/monitoring/knowledge-doctor.d.ts.map +1 -1
  299. package/dist/monitoring/knowledge-doctor.js.map +1 -1
  300. package/dist/monitoring/performance-analyzer.d.ts +0 -12
  301. package/dist/monitoring/performance-analyzer.d.ts.map +1 -1
  302. package/dist/monitoring/performance-analyzer.js +13 -93
  303. package/dist/monitoring/performance-analyzer.js.map +1 -1
  304. package/dist/monitoring/performance-collector.d.ts +0 -8
  305. package/dist/monitoring/performance-collector.d.ts.map +1 -1
  306. package/dist/monitoring/performance-collector.js +0 -21
  307. package/dist/monitoring/performance-collector.js.map +1 -1
  308. package/dist/monitoring/trace-analyzer.d.ts +0 -8
  309. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  310. package/dist/monitoring/trace-analyzer.js +9 -91
  311. package/dist/monitoring/trace-analyzer.js.map +1 -1
  312. package/dist/presets/index.d.ts +1 -1
  313. package/dist/presets/index.d.ts.map +1 -1
  314. package/dist/presets/index.js +1 -4
  315. package/dist/presets/index.js.map +1 -1
  316. package/dist/presets/standard.d.ts +0 -9
  317. package/dist/presets/standard.d.ts.map +1 -1
  318. package/dist/presets/standard.js +1 -16
  319. package/dist/presets/standard.js.map +1 -1
  320. package/dist/safety/output-guardrail.d.ts +0 -1
  321. package/dist/safety/output-guardrail.d.ts.map +1 -1
  322. package/dist/safety/output-guardrail.js +0 -3
  323. package/dist/safety/output-guardrail.js.map +1 -1
  324. package/dist/tools/registry.d.ts.map +1 -1
  325. package/dist/types/constraint.d.ts +5 -59
  326. package/dist/types/constraint.d.ts.map +1 -1
  327. package/dist/types/constraint.js +1 -39
  328. package/dist/types/constraint.js.map +1 -1
  329. package/dist/types/failure.d.ts +89 -0
  330. package/dist/types/failure.d.ts.map +1 -0
  331. package/dist/types/failure.js +121 -0
  332. package/dist/types/failure.js.map +1 -0
  333. package/dist/types/index.d.ts +2 -3
  334. package/dist/types/index.d.ts.map +1 -1
  335. package/dist/types/index.js +7 -6
  336. package/dist/types/index.js.map +1 -1
  337. package/dist/types/monitoring-types.d.ts +114 -0
  338. package/dist/types/monitoring-types.d.ts.map +1 -0
  339. package/dist/types/monitoring-types.js +10 -0
  340. package/dist/types/monitoring-types.js.map +1 -0
  341. package/dist/utils/detect-source-roots.js.map +1 -1
  342. package/dist/utils/file-walk.d.ts +33 -0
  343. package/dist/utils/file-walk.d.ts.map +1 -0
  344. package/dist/utils/file-walk.js +89 -0
  345. package/dist/utils/file-walk.js.map +1 -0
  346. package/dist/verification/rules-based.d.ts.map +1 -1
  347. package/dist/verification/rules-based.js.map +1 -1
  348. package/package.json +3 -7
  349. package/src/__tests__/checker-extra.test.ts +0 -30
  350. package/src/__tests__/checker.test.ts +0 -33
  351. package/src/__tests__/checkpoint.test.ts +46 -46
  352. package/src/__tests__/constraint-evolver.test.ts +22 -21
  353. package/src/__tests__/doctor-evolver.test.ts +3 -3
  354. package/src/__tests__/iron-laws.test.ts +0 -27
  355. package/src/__tests__/presets.test.ts +1 -40
  356. package/src/architecture/constraint-engine.ts +0 -5
  357. package/src/architecture/cross-project-checker.ts +6 -24
  358. package/src/cli/commands/__tests__/check.test.ts +3 -1
  359. package/src/cli/commands/__tests__/sync-docs.test.ts +77 -0
  360. package/src/cli/commands/__tests__/validate.test.ts +5 -0
  361. package/src/cli/commands/analyze-sessions.ts +31 -185
  362. package/src/cli/commands/check.ts +26 -225
  363. package/src/cli/commands/doc-freshness-check.ts +14 -25
  364. package/src/cli/commands/flow.ts +5 -3
  365. package/src/cli/commands/init.ts +3 -3
  366. package/src/cli/commands/posteval-plan.ts +0 -1
  367. package/src/cli/commands/release.ts +1 -1
  368. package/src/cli/commands/report.ts +2 -0
  369. package/src/cli/commands/spec-baseline-check.ts +12 -19
  370. package/src/cli/commands/sync-docs/agents-syncer.ts +280 -0
  371. package/src/cli/commands/sync-docs/capabilities-syncer.ts +229 -0
  372. package/src/cli/commands/sync-docs/context-syncer.ts +108 -0
  373. package/src/cli/commands/sync-docs/index.ts +355 -0
  374. package/src/cli/commands/sync-docs/preserve-block.ts +59 -0
  375. package/src/cli/commands/sync-docs/project-reader.ts +163 -0
  376. package/src/cli/commands/update-user-model.ts +23 -87
  377. package/src/cli/commands/validate.ts +6 -40
  378. package/src/cli/session-mining/corrections.ts +56 -0
  379. package/src/cli/session-mining/index.ts +13 -0
  380. package/src/cli/session-mining/text.ts +117 -0
  381. package/src/cli/session-mining/transcript.ts +107 -0
  382. package/src/constraints/__tests__/lifecycle-runner.test.ts +1 -1
  383. package/src/constraints/lifecycle-runner.ts +1 -1
  384. package/src/context/compaction.ts +2 -3
  385. package/src/context/knowledge-injector.ts +1 -1
  386. package/src/context/tool-output-budget.ts +1 -1
  387. package/src/core/constraints/capabilities-parser.ts +70 -0
  388. package/src/core/constraints/checker.ts +170 -779
  389. package/src/core/constraints/checkers/always-pass.ts +22 -0
  390. package/src/core/constraints/checkers/capability-sync.ts +71 -0
  391. package/src/core/constraints/checkers/context-doc-sync.ts +36 -0
  392. package/src/core/constraints/checkers/docs-freshness.ts +116 -0
  393. package/src/core/constraints/checkers/guideline-flags.ts +30 -0
  394. package/src/core/constraints/checkers/index.ts +114 -0
  395. package/src/core/constraints/checkers/iron-flags.ts +62 -0
  396. package/src/core/constraints/checkers/no-any-type.ts +42 -0
  397. package/src/core/constraints/checkers/no-bypass-checkpoint.ts +40 -0
  398. package/src/core/constraints/checkers/no-excuse-patterns.ts +24 -0
  399. package/src/core/constraints/checkers/no-fuzzy-completion-claim.ts +33 -0
  400. package/src/core/constraints/checkers/no-performative-agreement.ts +22 -0
  401. package/src/core/constraints/checkers/no-simplification-without-approval.ts +29 -0
  402. package/src/core/constraints/checkers/no-test-simplification.ts +28 -0
  403. package/src/core/constraints/checkers/test-coverage.ts +35 -0
  404. package/src/core/constraints/checkers/types.ts +54 -0
  405. package/src/core/constraints/checkers/yagni.ts +65 -0
  406. package/src/core/constraints/context-builder.ts +262 -0
  407. package/src/core/constraints/definitions/guidelines.ts +668 -0
  408. package/src/core/constraints/definitions/iron-laws.ts +333 -0
  409. package/src/core/constraints/definitions/tips.ts +63 -0
  410. package/src/core/constraints/definitions.ts +9 -1086
  411. package/src/core/constraints/doc-freshness/runner.ts +2 -3
  412. package/src/core/constraints/index.ts +1 -27
  413. package/src/core/constraints/interceptor.ts +0 -2
  414. package/src/core/index.ts +1 -1
  415. package/src/core/project-config-loader.ts +49 -13
  416. package/src/core/validators/check-handlers/command.ts +58 -0
  417. package/src/core/validators/check-handlers/file.ts +104 -0
  418. package/src/core/validators/check-handlers/http.ts +88 -0
  419. package/src/core/validators/check-handlers/output.ts +165 -0
  420. package/src/core/validators/checkpoint.ts +32 -407
  421. package/src/core/validators/cso.ts +1 -1
  422. package/src/core/validators/passes-gate.ts +2 -2
  423. package/src/dashboard/stats.ts +1 -1
  424. package/src/dashboard/types.ts +1 -1
  425. package/src/evolution/__tests__/auto-evolve.test.ts +1 -2
  426. package/src/evolution/auto-evolve.ts +3 -3
  427. package/src/failure/types.ts +5 -161
  428. package/src/gates/contract.ts +0 -1
  429. package/src/gates/index.ts +0 -2
  430. package/src/gates/performance.ts +1 -1
  431. package/src/gates/security.ts +1 -3
  432. package/src/hooks/bootstrap.ts +6 -16
  433. package/src/index.ts +4 -1
  434. package/src/knowledge/__tests__/lifecycle.test.ts +4 -1
  435. package/src/knowledge/audit.ts +1 -1
  436. package/src/knowledge/doctor.ts +0 -1
  437. package/src/knowledge/import.ts +2 -2
  438. package/src/knowledge/index-generator.ts +0 -1
  439. package/src/knowledge/ingest.ts +1 -2
  440. package/src/knowledge/lint.ts +2 -2
  441. package/src/knowledge/primitives/__tests__/code-structure-degrade.test.ts +24 -0
  442. package/src/knowledge/primitives/code-structure.ts +36 -12
  443. package/src/knowledge/query.ts +0 -3
  444. package/src/knowledge/store.ts +1 -1
  445. package/src/llm/adapter.ts +3 -3
  446. package/src/monitoring/analyzer-base.ts +112 -0
  447. package/src/monitoring/constraint-doctor.ts +14 -175
  448. package/src/monitoring/constraint-evolver.ts +20 -92
  449. package/src/monitoring/diagnosis-rules.ts +132 -0
  450. package/src/monitoring/knowledge-doctor.ts +0 -1
  451. package/src/monitoring/performance-analyzer.ts +22 -72
  452. package/src/monitoring/performance-collector.ts +0 -22
  453. package/src/monitoring/trace-analyzer.ts +17 -73
  454. package/src/presets/__tests__/standard.test.ts +2 -17
  455. package/src/presets/index.ts +1 -3
  456. package/src/presets/standard.ts +1 -26
  457. package/src/safety/output-guardrail.ts +0 -4
  458. package/src/tools/registry.ts +1 -1
  459. package/src/types/__tests__/types.test.ts +1 -33
  460. package/src/types/constraint.ts +6 -75
  461. package/src/types/failure.ts +165 -0
  462. package/src/types/index.ts +7 -5
  463. package/src/types/monitoring-types.ts +150 -0
  464. package/src/utils/detect-source-roots.ts +1 -1
  465. package/src/utils/file-walk.ts +78 -0
  466. package/src/verification/rules-based.ts +0 -1
  467. package/bin/harness-knowledge-capture.js +0 -99
  468. package/bin/harness-knowledge-check.js +0 -164
  469. package/bin/harness-knowledge-track.js +0 -118
  470. package/dist/cli/commands/sync-docs.d.ts.map +0 -1
  471. package/dist/cli/commands/sync-docs.js +0 -1074
  472. package/dist/cli/commands/sync-docs.js.map +0 -1
  473. package/dist/constraints/index.d.ts +0 -4
  474. package/dist/constraints/index.d.ts.map +0 -1
  475. package/dist/constraints/index.js +0 -20
  476. package/dist/constraints/index.js.map +0 -1
  477. package/dist/core/constraints/doc-freshness/auto-fix.d.ts +0 -23
  478. package/dist/core/constraints/doc-freshness/auto-fix.d.ts.map +0 -1
  479. package/dist/core/constraints/doc-freshness/auto-fix.js +0 -59
  480. package/dist/core/constraints/doc-freshness/auto-fix.js.map +0 -1
  481. package/dist/core/constraints/prompt-injection.d.ts +0 -16
  482. package/dist/core/constraints/prompt-injection.d.ts.map +0 -1
  483. package/dist/core/constraints/prompt-injection.js +0 -69
  484. package/dist/core/constraints/prompt-injection.js.map +0 -1
  485. package/dist/core/spec/index.d.ts +0 -7
  486. package/dist/core/spec/index.d.ts.map +0 -1
  487. package/dist/core/spec/index.js.map +0 -1
  488. package/dist/governance/executor.d.ts +0 -45
  489. package/dist/governance/executor.d.ts.map +0 -1
  490. package/dist/governance/executor.js +0 -243
  491. package/dist/governance/executor.js.map +0 -1
  492. package/dist/governance/index.d.ts +0 -9
  493. package/dist/governance/index.d.ts.map +0 -1
  494. package/dist/governance/index.js +0 -13
  495. package/dist/governance/index.js.map +0 -1
  496. package/dist/governance/types.d.ts +0 -46
  497. package/dist/governance/types.d.ts.map +0 -1
  498. package/dist/governance/types.js +0 -9
  499. package/dist/governance/types.js.map +0 -1
  500. package/dist/tools/definitions/definitions/core/code/fingerprint.sh +0 -273
  501. package/dist/tools/definitions/definitions/core/code/fingerprint.yml +0 -72
  502. package/dist/tools/definitions/definitions/core/code/parse.yml +0 -68
  503. package/dist/tools/definitions/definitions/core/code/register-language.sh +0 -475
  504. package/dist/tools/definitions/definitions/core/code/register-language.yml +0 -74
  505. package/dist/tools/definitions/definitions/core/docker/build.yml +0 -73
  506. package/dist/tools/definitions/definitions/core/docker/run.yml +0 -81
  507. package/dist/tools/definitions/definitions/core/file/copy.yml +0 -88
  508. package/dist/tools/definitions/definitions/core/file/read.yml +0 -69
  509. package/dist/tools/definitions/definitions/core/file/write.yml +0 -75
  510. package/dist/tools/definitions/definitions/core/git/branch.yml +0 -61
  511. package/dist/tools/definitions/definitions/core/git/cleanup-worktree.yml +0 -50
  512. package/dist/tools/definitions/definitions/core/git/clone.yml +0 -69
  513. package/dist/tools/definitions/definitions/core/git/commit.yml +0 -65
  514. package/dist/tools/definitions/definitions/core/git/push.yml +0 -79
  515. package/dist/tools/definitions/definitions/core/git/worktree.yml +0 -96
  516. package/dist/tools/definitions/definitions/core/notification/notify.sh +0 -152
  517. package/dist/tools/definitions/definitions/core/notification/notify.yml +0 -60
  518. package/dist/tools/definitions/definitions/core/npm/build.yml +0 -75
  519. package/dist/tools/definitions/definitions/core/npm/install.yml +0 -58
  520. package/dist/tools/definitions/definitions/core/npm/test.yml +0 -75
  521. package/dist/tools/definitions/definitions/core/validation/check-reuse.yml +0 -170
  522. package/dist/tools/definitions/definitions/core/validation/validate-handlers.yml +0 -118
  523. package/dist/tools/definitions/definitions/core/validation/validate-readme-stats.yml +0 -155
  524. package/dist/tools/definitions/definitions/core/validation/validate-yaml-syntax.yml +0 -134
  525. package/dist/tools/definitions/definitions/ext/browser/browser-automate.sh +0 -255
  526. package/dist/tools/definitions/definitions/ext/browser/browser-automate.yml +0 -166
  527. package/dist/tools/definitions/definitions/ext/browser/browser-close.sh +0 -104
  528. package/dist/tools/definitions/definitions/ext/browser/browser-close.yml +0 -55
  529. package/dist/tools/definitions/definitions/ext/browser/browser-mcp-debug.sh +0 -682
  530. package/dist/tools/definitions/definitions/ext/browser/browser-mcp-debug.yml +0 -167
  531. package/dist/tools/definitions/definitions/ext/browser/browser-start.sh +0 -101
  532. package/dist/tools/definitions/definitions/ext/browser/browser-start.yml +0 -62
  533. package/dist/tools/definitions/definitions/registry.json +0 -795
  534. package/dist/tools/definitions/definitions/std/README.md +0 -350
  535. package/dist/tools/definitions/definitions/std/analysis/analyze-codebase.yml +0 -72
  536. package/dist/tools/definitions/definitions/std/analysis/analyze-diff.yml +0 -182
  537. package/dist/tools/definitions/definitions/std/analysis/analyze-git-diff.yml +0 -70
  538. package/dist/tools/definitions/definitions/std/analysis/analyze-impact.yml +0 -78
  539. package/dist/tools/definitions/definitions/std/analysis/analyze-requirements.yml +0 -105
  540. package/dist/tools/definitions/definitions/std/analysis/brainstorm-options.yml +0 -106
  541. package/dist/tools/definitions/definitions/std/analysis/build-graph.yml +0 -154
  542. package/dist/tools/definitions/definitions/std/analysis/clarify-requirements.yml +0 -90
  543. package/dist/tools/definitions/definitions/std/analysis/detect-context.yml +0 -109
  544. package/dist/tools/definitions/definitions/std/analysis/detect-layers.yml +0 -125
  545. package/dist/tools/definitions/definitions/std/analysis/generate-tour.yml +0 -102
  546. package/dist/tools/definitions/definitions/std/analysis/search-enhance.yml +0 -105
  547. package/dist/tools/definitions/definitions/std/backlog/add.yml +0 -51
  548. package/dist/tools/definitions/definitions/std/backlog/decide.yml +0 -39
  549. package/dist/tools/definitions/definitions/std/backlog/github-sync.yml +0 -161
  550. package/dist/tools/definitions/definitions/std/backlog/list.yml +0 -53
  551. package/dist/tools/definitions/definitions/std/backlog/load.yml +0 -46
  552. package/dist/tools/definitions/definitions/std/backlog/resolve.yml +0 -37
  553. package/dist/tools/definitions/definitions/std/backlog/update.yml +0 -42
  554. package/dist/tools/definitions/definitions/std/bugfix/diagnose.yml +0 -68
  555. package/dist/tools/definitions/definitions/std/bugfix/fix.yml +0 -66
  556. package/dist/tools/definitions/definitions/std/bugfix/verify.yml +0 -69
  557. package/dist/tools/definitions/definitions/std/constraint/check-decomposition.yml +0 -103
  558. package/dist/tools/definitions/definitions/std/constraint/check-feature-list.yml +0 -77
  559. package/dist/tools/definitions/definitions/std/constraint/check-progress.yml +0 -97
  560. package/dist/tools/definitions/definitions/std/constraint/generate-report.yml +0 -147
  561. package/dist/tools/definitions/definitions/std/deploy/commit-push.yml +0 -33
  562. package/dist/tools/definitions/definitions/std/deploy/deploy-backend.yml +0 -37
  563. package/dist/tools/definitions/definitions/std/deploy/deploy-frontend.yml +0 -37
  564. package/dist/tools/definitions/definitions/std/deploy/rollback.yml +0 -148
  565. package/dist/tools/definitions/definitions/std/design/analyze-architecture-impact.yml +0 -113
  566. package/dist/tools/definitions/definitions/std/design/design-api.yml +0 -55
  567. package/dist/tools/definitions/definitions/std/design/design-architecture.yml +0 -97
  568. package/dist/tools/definitions/definitions/std/design/design-db.yml +0 -81
  569. package/dist/tools/definitions/definitions/std/design/generate-spec.yml +0 -182
  570. package/dist/tools/definitions/definitions/std/development/develop-api.yml +0 -85
  571. package/dist/tools/definitions/definitions/std/development/develop-backend.yml +0 -88
  572. package/dist/tools/definitions/definitions/std/development/develop-frontend.yml +0 -87
  573. package/dist/tools/definitions/definitions/std/development/develop-shared-types.yml +0 -74
  574. package/dist/tools/definitions/definitions/std/development/develop-task.yml +0 -122
  575. package/dist/tools/definitions/definitions/std/development/develop-tests.yml +0 -76
  576. package/dist/tools/definitions/definitions/std/development/execute-batch.yml +0 -152
  577. package/dist/tools/definitions/definitions/std/development/fix-issues.yml +0 -100
  578. package/dist/tools/definitions/definitions/std/development/implement-task.yml +0 -124
  579. package/dist/tools/definitions/definitions/std/development/review-fix-cycle.yml +0 -232
  580. package/dist/tools/definitions/definitions/std/evolution/implement.yml +0 -125
  581. package/dist/tools/definitions/definitions/std/evolution/prioritize.yml +0 -112
  582. package/dist/tools/definitions/definitions/std/evolution/report-gap.yml +0 -166
  583. package/dist/tools/definitions/definitions/std/file/read.yml +0 -21
  584. package/dist/tools/definitions/definitions/std/governance/aggregate-opinions.sh +0 -201
  585. package/dist/tools/definitions/definitions/std/governance/aggregate-opinions.yml +0 -79
  586. package/dist/tools/definitions/definitions/std/governance/audit-task.yml +0 -178
  587. package/dist/tools/definitions/definitions/std/governance/cast-vote.yml +0 -129
  588. package/dist/tools/definitions/definitions/std/governance/collect-issues.yml +0 -16
  589. package/dist/tools/definitions/definitions/std/governance/create-signed-document.yml +0 -23
  590. package/dist/tools/definitions/definitions/std/governance/create-voting-session.yml +0 -101
  591. package/dist/tools/definitions/definitions/std/governance/define-stance.sh +0 -243
  592. package/dist/tools/definitions/definitions/std/governance/define-stance.yml +0 -82
  593. package/dist/tools/definitions/definitions/std/governance/generate-review-report.yml +0 -23
  594. package/dist/tools/definitions/definitions/std/governance/impeach.yml +0 -179
  595. package/dist/tools/definitions/definitions/std/governance/multi-stance-review.yml +0 -154
  596. package/dist/tools/definitions/definitions/std/governance/prepare-artifact.yml +0 -20
  597. package/dist/tools/definitions/definitions/std/governance/review-spec-approval.yml +0 -262
  598. package/dist/tools/definitions/definitions/std/governance/rollback.yml +0 -186
  599. package/dist/tools/definitions/definitions/std/governance/stance-review.yml +0 -149
  600. package/dist/tools/definitions/definitions/std/governance/track-effect.yml +0 -199
  601. package/dist/tools/definitions/definitions/std/governance/vote-tally.yml +0 -144
  602. package/dist/tools/definitions/definitions/std/patch/execute.yml +0 -51
  603. package/dist/tools/definitions/definitions/std/planning/generate-tasks.yml +0 -36
  604. package/dist/tools/definitions/definitions/std/planning/load-tasks.yml +0 -44
  605. package/dist/tools/definitions/definitions/std/planning/split-batch.yml +0 -481
  606. package/dist/tools/definitions/definitions/std/planning/split-tasks.yml +0 -359
  607. package/dist/tools/definitions/definitions/std/planning/update-tasks.yml +0 -51
  608. package/dist/tools/definitions/definitions/std/planning/validate-tasks.yml +0 -46
  609. package/dist/tools/definitions/definitions/std/project/decide-next-workflow.yml +0 -38
  610. package/dist/tools/definitions/definitions/std/project/load-state.yml +0 -31
  611. package/dist/tools/definitions/definitions/std/project/save-state.yml +0 -32
  612. package/dist/tools/definitions/definitions/std/quality/check-quality.yml +0 -241
  613. package/dist/tools/definitions/definitions/std/quality/debug-systematic.yml +0 -163
  614. package/dist/tools/definitions/definitions/std/quality/handle-feedback.yml +0 -108
  615. package/dist/tools/definitions/definitions/std/quality/review-code.yml +0 -128
  616. package/dist/tools/definitions/definitions/std/quality/review-spec.yml +0 -140
  617. package/dist/tools/definitions/definitions/std/quality/review-task.yml +0 -190
  618. package/dist/tools/definitions/definitions/std/quality/run-tests.yml +0 -80
  619. package/dist/tools/definitions/definitions/std/quick/analyze.yml +0 -56
  620. package/dist/tools/definitions/definitions/std/quick/implement.yml +0 -67
  621. package/dist/tools/definitions/definitions/std/quick/verify.yml +0 -71
  622. package/dist/tools/definitions/definitions/std/verification/verify_completion.yml +0 -113
  623. package/dist/tools/definitions/definitions/std/verification/wait-condition.yml +0 -107
  624. package/dist/types/iron-law.d.ts +0 -25
  625. package/dist/types/iron-law.d.ts.map +0 -1
  626. package/dist/types/iron-law.js +0 -16
  627. package/dist/types/iron-law.js.map +0 -1
  628. package/src/cli/commands/sync-docs.ts +0 -1175
  629. package/src/constraints/index.ts +0 -3
  630. package/src/core/constraints/__tests__/prompt-injection.test.ts +0 -89
  631. package/src/core/constraints/doc-freshness/auto-fix.ts +0 -69
  632. package/src/core/constraints/prompt-injection.ts +0 -73
  633. package/src/core/spec/index.ts +0 -7
  634. package/src/governance/CONTEXT.md +0 -22
  635. package/src/governance/__tests__/executor.test.ts +0 -249
  636. package/src/governance/executor.ts +0 -229
  637. package/src/governance/index.ts +0 -13
  638. package/src/governance/types.ts +0 -53
  639. package/src/tools/core/package.json +0 -7
  640. package/src/tools/core/pnpm-lock.yaml +0 -232
  641. package/src/types/iron-law.ts +0 -50
@@ -0,0 +1,333 @@
1
+ /**
2
+ * 约束定义拆分文件(工单 20):原 definitions.ts 按层拆分,
3
+ * definitions.ts 保持原路径做薄聚合(studio rule-scanner 契约)。
4
+ */
5
+
6
+ import type { Constraint } from '../../../types/constraint';
7
+
8
+ // ========================================
9
+ // IRON LAWS(铁律)
10
+ //
11
+ // 定义:绝对禁止,无例外,违背即阻止执行
12
+ // ========================================
13
+
14
+ export const IRON_LAWS: Record<string, Constraint> = {
15
+ /**
16
+ * 禁止跳过检查点验证
17
+ * 原因:安全底线,检查点是质量门控
18
+ */
19
+ no_bypass_checkpoint: {
20
+ id: 'no_bypass_checkpoint',
21
+ rule: 'NO BYPASSING CHECKPOINTS',
22
+ message: '禁止跳过检查点验证',
23
+ level: 'iron_law',
24
+ trigger: 'code_implementation',
25
+ enforcement: 'checkpoint-required',
26
+ description: '所有检查点必须通过,不能跳过验证步骤。检查点是质量的最后一道防线。',
27
+ promptInjection: '每个关键步骤后有 checkpoint 验证点,必须通过才能继续。通过标准:测试通过、类型检查无错误、lint 无新增警告。未通过时回退修复,不得跳过。',
28
+ },
29
+
30
+ /**
31
+ * 禁止自评通过
32
+ * 原因:质量底线,必须有测试证据
33
+ */
34
+ no_self_approval: {
35
+ id: 'no_self_approval',
36
+ rule: 'NO SELF APPROVAL WITHOUT TEST EVIDENCE',
37
+ message: '禁止自评通过,必须提供测试证据',
38
+ level: 'iron_law',
39
+ trigger: 'task_completion_claim',
40
+ enforcement: 'passes-gate',
41
+ description: '任务完成声明必须基于真实测试结果,不能由开发者自评。测试证据包括:测试报告、覆盖率数据、CI 通过记录。',
42
+ promptInjection: '声明任务完成时,必须提供可验证的测试证据(测试报告、覆盖率数据、CI 通过记录),不得仅凭自己的判断声称完成。',
43
+ },
44
+
45
+ /**
46
+ * 禁止无验证声明完成
47
+ * 原因:质量底线,必须有验证命令
48
+ */
49
+ no_completion_without_verification: {
50
+ id: 'no_completion_without_verification',
51
+ rule: 'NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE',
52
+ message: '禁止无验证声明完成,必须运行验证命令',
53
+ level: 'iron_law',
54
+ trigger: 'code_implementation',
55
+ enforcement: 'verify-completion',
56
+ description: '在声明任何任务完成之前,必须运行新鲜的、完整的验证命令。验证命令包括:npm test、npm run build、CI 流程。',
57
+ promptInjection: '在声明任务完成前,必须重新运行完整的验证命令(npm test、npm run build、type check),使用新鲜的输出作为完成证据,不得复用旧结果。',
58
+ },
59
+
60
+ /**
61
+ * 禁止简化测试
62
+ * 原因:质量底线,测试困难必须解决
63
+ */
64
+ no_test_simplification: {
65
+ id: 'no_test_simplification',
66
+ rule: 'NO SIMPLIFYING TESTS TO AVOID DIFFICULTY',
67
+ message: '禁止简化测试绕过困难',
68
+ level: 'iron_law',
69
+ trigger: 'test_creation',
70
+ enforcement: 'full-test-coverage',
71
+ description: `在编写测试时,不能因为遇到困难而简化或跳过测试。
72
+
73
+ 遇到测试困难时:
74
+ 1. 分析问题:是 mock 问题?异步问题?环境问题?
75
+ 2. 尝试解决:查阅文档、搜索解决方案
76
+ 3. 请求帮助:向用户说明困难,请求指示
77
+
78
+ 禁止:
79
+ - 为了绕过 mock 困难而删除测试用例
80
+ - 为了绕过异步问题而跳过断言
81
+ - 降低测试覆盖率要求`,
82
+ promptInjection: '编写测试时遇到困难(mock、异步、环境),不得删除用例或跳过断言。正确做法:分析问题 → 查阅文档 → 尝试解决 → 仍不行则向用户说明困难请求指示。不得降低覆盖率要求。',
83
+ },
84
+
85
+ /**
86
+ * 禁止一次做多个任务(one-shotting)
87
+ * 来源:Anthropic AI Harness - Effective Harnesses for Long-running Agents
88
+ * 原因:避免中途耗尽 context,保持专注和可控
89
+ */
90
+ incremental_progress: {
91
+ id: 'incremental_progress',
92
+ rule: 'ONE TASK PER SESSION',
93
+ message: '禁止一次做多个任务,每次只做一件事',
94
+ level: 'iron_law',
95
+ trigger: 'code_implementation',
96
+ enforcement: 'single-task-check',
97
+ description: `一个 session 只处理一个任务,避免 one-shotting。
98
+
99
+ 【禁止】
100
+ - 一次做多个任务 → 中途耗尽 context
101
+ - 大改动一次性完成 → 失控
102
+ - 没有拆分的复杂任务 → 无法回滚
103
+
104
+ 【必须】
105
+ - 一个 session 一个任务 → 保持专注
106
+ - 大任务拆分为小步骤 → 分步执行
107
+ - 每步都有 checkpoint → 可回滚
108
+
109
+ 【判断标准】
110
+ - 改动涉及多个模块 → 需拆分
111
+ - 改动超过 100 行 → 需拆分
112
+ - 改动影响多个文件 → 需拆分
113
+
114
+ 【参考】
115
+ Anthropic AI: "Effective Harnesses for Long-running Agents"
116
+ https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents`,
117
+ promptInjection: '一次只处理一个任务。改动涉及多个模块、超过 100 行、或影响多个文件时,必须拆分为小步骤分步执行,每步有独立 checkpoint 可回滚。不要试图一次性完成所有改动。',
118
+ },
119
+
120
+ /**
121
+ * 禁止实现未验证的外部依赖能力
122
+ * 原因:假设外部系统能力存在,实现后发现不支持,浪费开发时间
123
+ */
124
+ verify_external_capability: {
125
+ id: 'verify_external_capability',
126
+ rule: 'VERIFY EXTERNAL CAPABILITY BEFORE IMPLEMENTATION',
127
+ message: '外部依赖能力必须先验证',
128
+ level: 'iron_law',
129
+ trigger: 'api_change',
130
+ enforcement: 'capability-verification',
131
+ description: `实现方案依赖外部系统的未确认能力时,必须先验证。
132
+
133
+ 【触发条件】(满足任一)
134
+ - 依赖外部 API/服务的回调/交互机制
135
+ - 使用未验证过的外部系统高级功能
136
+ - 假设外部系统支持某种能力但未查阅文档
137
+
138
+ 【必须执行】
139
+ 1. 查阅官方文档 → 确认能力是否存在
140
+ 2. 发送最小测试 → 验证可行性
141
+ 3. 记录限制 → 作为设计约束
142
+
143
+ 【不触发】
144
+ - 内部逻辑实现
145
+ - 已熟悉的库/框架基本功能
146
+ - 标准 CRUD 操作
147
+
148
+ 【案例】
149
+ - 假设外部 API 支持某种交互模式
150
+ - 未查阅官方文档的限制说明
151
+ - 实现完整功能后才发现不支持
152
+ - 浪费开发时间,需要重新设计方案
153
+
154
+ 【正确流程】
155
+ 设计方案 → 查阅文档限制 → 发送最小测试 → 验证可行 → 开发`,
156
+ promptInjection: '实现方案依赖外部 API/服务未确认的能力时,必须先查阅官方文档确认能力存在,再发送最小测试验证可行性,记录限制作为设计约束。不要假设外部系统支持某种能力就直接开发。',
157
+ },
158
+
159
+ /**
160
+ * 实现后必须对比需求验证
161
+ * 原因:避免实现偏离需求
162
+ */
163
+ no_implementation_without_requirement_review: {
164
+ id: 'no_implementation_without_requirement_review',
165
+ rule: 'REVIEW IMPLEMENTATION AGAINST REQUIREMENTS',
166
+ message: '实现后必须对比需求验证',
167
+ level: 'iron_law',
168
+ trigger: 'code_implementation',
169
+ enforcement: 'requirement-review',
170
+ description: `实现完成后,必须对比原始需求进行验证。
171
+
172
+ 【触发条件】
173
+ - 功能开发完成
174
+ - Bug 修复完成
175
+ - 重构完成
176
+
177
+ 【必须执行】
178
+ 1. 回顾需求文档(Spec/Roadmap/Issue)
179
+ 2. 检查实现是否符合每条 AC
180
+ 3. 确认边界情况已覆盖
181
+ 4. 输出验证清单
182
+
183
+ 【禁止】
184
+ - 实现后不对比需求直接提交
185
+ - 只测试"功能能跑"不验证 AC
186
+ - 跳过边界情况验证
187
+ - 假设"差不多就行"
188
+
189
+ 【验证清单模板】
190
+ | AC | 实现 | 状态 |
191
+ |----|------|:----:|
192
+ | AC-001 | xxx | ✅ |
193
+ | AC-002 | xxx | ✅ |
194
+
195
+ 【案例】
196
+ - 需求:事件触发后自动创建关联资源
197
+ - 实现:增加了自动关联逻辑
198
+ - 验证:✅ 检查了 Spec 定义、测试了多种场景`,
199
+ promptInjection: '实现完成后,必须逐条对比原始需求文档(Spec/Issue/Roadmap)中的验收标准(AC),确认每条 AC 已实现且边界情况已覆盖,输出验证清单。不得仅凭"功能能跑"就认为完成。',
200
+ },
201
+
202
+ /**
203
+ * 禁止无需求就开始实现
204
+ * 原因:没有需求就没有验收标准,实现方向不可控
205
+ */
206
+ no_implementation_without_requirement: {
207
+ id: 'no_implementation_without_requirement',
208
+ rule: 'NO IMPLEMENTATION WITHOUT REQUIREMENTS',
209
+ message: '禁止无需求就开始实现',
210
+ level: 'iron_law',
211
+ trigger: ['code_implementation', 'design_request'],
212
+ enforcement: 'requirement-exists',
213
+ description: `在开始实现之前,必须有明确的需求定义。
214
+
215
+ 【触发条件】
216
+ - 开始编写业务代码
217
+ - 开始开发新功能
218
+
219
+ 【必须执行】
220
+ 1. 确认需求来源(Spec/Issue/Roadmap/用户指令)
221
+ 2. 确认验收标准(AC)已定义
222
+ 3. 确认边界情况已明确
223
+
224
+ 【禁止】
225
+ - 没有需求就开始写代码
226
+ - 假设"用户想要什么"就开始实现
227
+ - 跳过需求确认直接开发
228
+
229
+ 【正确流程】
230
+ 需求确认 → AC 定义 → 实现 → 验证`,
231
+ promptInjection: '开始编写代码前,必须确认:需求来源明确(Spec/Issue/Roadmap/用户指令)、验收标准(AC)已定义、边界情况已明确。不要凭假设或猜测开始实现。',
232
+ },
233
+
234
+ /**
235
+ * 禁止模糊完成声明
236
+ * 原因:质量底线,必须有可量化证据
237
+ * 来源:Superpowers no_fuzzy_completion_claim
238
+ */
239
+ no_fuzzy_completion_claim: {
240
+ id: 'no_fuzzy_completion_claim',
241
+ rule: 'NO FUZZY COMPLETION CLAIMS WITHOUT QUANTIFIABLE EVIDENCE',
242
+ message: '禁止模糊完成声明,必须提供可量化证据',
243
+ level: 'iron_law',
244
+ trigger: ['code_implementation', 'design_request'],
245
+ enforcement: 'fuzzy-check',
246
+ description: `声明任务完成时,禁止使用模糊词语。必须提供具体、可量化的验证结果。
247
+
248
+ 【禁止的模糊词】
249
+ - "应该没问题"、"大概完成了"、"可能可以了"
250
+ - "好像通过了"、"似乎工作正常"、"应该能跑"
251
+ - "基本完成"、"差不多"、"大部分功能可用"
252
+ - "我记得删过了"、"之前说删了"、"已删除"(未经 ls/grep 验证)
253
+ - "大部分实现"(未经逐 AC 对照 spec)
254
+ - "已修复"(未经 test 验证)
255
+
256
+ 【必须提供】
257
+ - 测试通过的精确数量(如 "142 tests passed")
258
+ - 验证命令输出(如 "npm test 全部通过")
259
+ - 删除操作后 ls 确认(如 "ls packages/dead-pkg → No such file")
260
+ - Spec AC 对照表(逐项标注 pass/fail)`,
261
+ promptInjection: '声明任务完成时,禁止使用模糊词语。必须提供具体的测试通过数量、覆盖率数据和验证命令输出来证明任务真的完成了。声明"已删除"前必须用 ls 确认文件不存在。声明 spec 完成前必须逐 AC 对照。',
262
+ },
263
+
264
+ /**
265
+ * 禁止表演性同意
266
+ * 原因:同意不等于理解,必须先分析再确认
267
+ * 来源:Superpowers no_performative_agreement
268
+ */
269
+ no_performative_agreement: {
270
+ id: 'no_performative_agreement',
271
+ rule: 'NO PERFORMATIVE AGREEMENT WITHOUT ANALYSIS',
272
+ message: '禁止表演性同意,必须先分析再确认',
273
+ level: 'iron_law',
274
+ trigger: ['design_request'],
275
+ enforcement: 'performative-check',
276
+ description: `收到需求或反馈时,不能仅表示"好的"、"明白了"就直接执行。必须先分析、复述理解、确认一致。
277
+
278
+ 【禁止模式】
279
+ - "好的,我来做" → 无分析直接行动
280
+ - "明白了" → 没有复述理解
281
+ - "没问题" → 没有提出疑问
282
+
283
+ 【必须步骤】
284
+ 1. 复述你对需求的理解
285
+ 2. 提出潜在的疑问或边界情况
286
+ 3. 说明你的实现方案
287
+ 4. 确认理解一致后再行动`,
288
+ promptInjection: '先思后码。明确声明前提假设。遇不确定先提问而非猜测。存在歧义时列出多种理解路径。若存在更简方案应果断提出异议。收到需求时:①复述理解 ②提出疑问 ③说明方案 ④确认一致。',
289
+ },
290
+
291
+ /**
292
+ * 必须两阶段审查
293
+ * 原因:先验证规范合规,再检查代码质量,防止规范偏差
294
+ * 来源:Superpowers two_stage_review_required
295
+ */
296
+ two_stage_review_required: {
297
+ id: 'two_stage_review_required',
298
+ rule: 'REVIEW MUST COVER SPEC COMPLIANCE BEFORE CODE QUALITY',
299
+ message: '审查必须两阶段:先验证规范合规,再检查代码质量',
300
+ level: 'iron_law',
301
+ trigger: 'code_implementation',
302
+ enforcement: 'two-stage-review',
303
+ description: `代码审查必须分两阶段进行:
304
+
305
+ 【Stage 1: 规范合规审查】
306
+ - 逐条对照验收标准(AC)验证
307
+ - 重新运行 Executor 的测试,确认通过
308
+ - 审计测试质量(是否只测了 happy path)
309
+ - 补写边界条件测试,验证是否失败
310
+
311
+ 【Stage 2: 代码质量审查】
312
+ - 仅在 Stage 1 全部通过后进入
313
+ - 安全性检查(注入、泄露、权限)
314
+ - 可读性检查(命名、结构、DRY)
315
+ - 类型安全(type check、lint)`,
316
+ promptInjection: '代码审查必须分两阶段:① 规范合规审查 — 逐条对照验收标准(AC)验证实现是否满足需求,重新运行测试,审计测试质量并补写边界用例;② 代码质量审查 — 仅在 Stage 1 全部通过后,检查安全性、可读性、类型安全。Stage 1 不通过则不得进入 Stage 2。',
317
+ },
318
+
319
+ /**
320
+ * 文档新鲜度 — 升级为 Iron Law (2026-05-19)
321
+ * 原因:guideline 只警告不阻断,导致文档持续腐烂。
322
+ */
323
+ docs_freshness: {
324
+ id: 'docs_freshness',
325
+ rule: 'CAPABILITIES.MD MUST BE IN SYNC WITH CODE',
326
+ message: 'CAPABILITIES.md 与源码不同步,运行 harness sync-docs 更新后重新提交',
327
+ level: 'iron_law',
328
+ trigger: ['file_modification', 'module_creation', 'module_modification'],
329
+ enforcement: 'docs-sync-check',
330
+ description: `CAPABILITIES.md 中列出的文件必须在 src/ 中实际存在。删除源文件时须从 CAPABILITIES.md 同步移除。运行 harness sync-docs 自动修复过期引用。
331
+ 注: CONTEXT.md 已删除。目录描述集中在 CLAUDE.md Key Subsystems 表中。新增文件全覆盖检查待 sync-docs 完善后启用。`,
332
+ },
333
+ };
@@ -0,0 +1,63 @@
1
+ /**
2
+ * 约束定义拆分文件(工单 20):原 definitions.ts 按层拆分,
3
+ * definitions.ts 保持原路径做薄聚合(studio rule-scanner 契约)。
4
+ */
5
+
6
+ import type { Constraint } from '../../../types/constraint';
7
+
8
+ // ========================================
9
+ // TIPS(提示)
10
+ //
11
+ // 定义:信息性提示,可忽略
12
+ // ========================================
13
+
14
+ export const TIPS: Record<string, Constraint> = {
15
+ /**
16
+ * 建议写 README
17
+ */
18
+ readme_required: {
19
+ id: 'readme_required',
20
+ rule: 'NEW MODULES SHOULD HAVE README',
21
+ message: '建议为新模块创建 README',
22
+ level: 'tip',
23
+ trigger: 'module_creation',
24
+ enforcement: 'create-readme',
25
+ description: `创建新模块时建议同时创建 README.md,说明:
26
+
27
+ - 模块用途
28
+ - 使用方法
29
+ - API 文档
30
+ - 示例代码
31
+
32
+ README 帮助其他开发者快速了解模块。`,
33
+ promptInjection: '创建新模块时,同时创建 README.md 说明模块用途、使用方法和 API 文档,帮助其他开发者快速了解模块。',
34
+ },
35
+
36
+ /**
37
+ * 建议写 API 文档
38
+ */
39
+ doc_required_for_public_api: {
40
+ id: 'doc_required_for_public_api',
41
+ rule: 'PUBLIC API SHOULD HAVE DOCUMENTATION',
42
+ message: '建议为公共 API 添加文档注释',
43
+ level: 'tip',
44
+ trigger: 'export_change',
45
+ enforcement: 'add-docs',
46
+ description: `所有导出的函数、类、接口建议添加 JSDoc 注释:
47
+
48
+ \`\`\`typescript
49
+ /**
50
+ * 计算两个数的和
51
+ * @param a 第一个数
52
+ * @param b 第二个数
53
+ * @returns 两数之和
54
+ */
55
+ export function add(a: number, b: number): number {
56
+ return a + b;
57
+ }
58
+ \`\`\`
59
+
60
+ 文档注释帮助 IDE 提供智能提示。`,
61
+ promptInjection: '公共 API(导出的函数、类、接口)必须有 JSDoc 文档注释,说明参数、返回值和用法示例。',
62
+ },
63
+ };