@dommaker/harness 0.17.1 → 0.18.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 (116) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +5 -4
  3. package/bin/harness.js +3 -1
  4. package/bin/install-precommit-hook.sh +76 -0
  5. package/dist/architecture/cross-project-checker.js +2 -2
  6. package/dist/architecture/cross-project-checker.js.map +1 -1
  7. package/dist/cli/commands/constraints-report.js +2 -2
  8. package/dist/cli/commands/constraints-report.js.map +1 -1
  9. package/dist/cli/commands/constraints-retire.d.ts +24 -6
  10. package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
  11. package/dist/cli/commands/constraints-retire.js +96 -19
  12. package/dist/cli/commands/constraints-retire.js.map +1 -1
  13. package/dist/cli/commands/doc-freshness-check.js +1 -1
  14. package/dist/cli/commands/doc-freshness-check.js.map +1 -1
  15. package/dist/cli/commands/init.js +14 -14
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
  18. package/dist/cli/commands/sync-docs/index.js +14 -6
  19. package/dist/cli/commands/sync-docs/index.js.map +1 -1
  20. package/dist/cli/commands/sync-docs/project-reader.d.ts.map +1 -1
  21. package/dist/cli/commands/sync-docs/project-reader.js +9 -7
  22. package/dist/cli/commands/sync-docs/project-reader.js.map +1 -1
  23. package/dist/cli/commands/validate.js +3 -3
  24. package/dist/cli/commands/validate.js.map +1 -1
  25. package/dist/cli/session-mining/text.js +1 -1
  26. package/dist/cli/session-mining/text.js.map +1 -1
  27. package/dist/core/constraints/definitions/iron-laws.js +2 -2
  28. package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
  29. package/dist/core/constraints/injection-drift.d.ts +1 -1
  30. package/dist/core/constraints/injection-drift.d.ts.map +1 -1
  31. package/dist/core/constraints/injection-drift.js +1 -1
  32. package/dist/core/constraints/injection-drift.js.map +1 -1
  33. package/dist/core/effective-constraints.d.ts +2 -1
  34. package/dist/core/effective-constraints.d.ts.map +1 -1
  35. package/dist/core/effective-constraints.js +2 -1
  36. package/dist/core/effective-constraints.js.map +1 -1
  37. package/dist/core/project-config-loader.d.ts +2 -1
  38. package/dist/core/project-config-loader.d.ts.map +1 -1
  39. package/dist/core/project-config-loader.js +8 -2
  40. package/dist/core/project-config-loader.js.map +1 -1
  41. package/dist/hooks/bootstrap.js +1 -1
  42. package/dist/hooks/bootstrap.js.map +1 -1
  43. package/dist/knowledge/store.js +1 -1
  44. package/dist/knowledge/store.js.map +1 -1
  45. package/dist/knowledge/types.d.ts +2 -0
  46. package/dist/knowledge/types.d.ts.map +1 -1
  47. package/dist/knowledge/types.js.map +1 -1
  48. package/dist/safety/output-guardrail.js +2 -2
  49. package/dist/safety/output-guardrail.js.map +1 -1
  50. package/dist/spec/annotation-checker.js +1 -1
  51. package/dist/spec/annotation-checker.js.map +1 -1
  52. package/dist/types/project-config.d.ts +15 -0
  53. package/dist/types/project-config.d.ts.map +1 -1
  54. package/dist/utils/file-walk.d.ts +13 -1
  55. package/dist/utils/file-walk.d.ts.map +1 -1
  56. package/dist/utils/file-walk.js +16 -3
  57. package/dist/utils/file-walk.js.map +1 -1
  58. package/package.json +6 -2
  59. package/src/__tests__/checkpoint.test.ts +2 -2
  60. package/src/__tests__/clean-state-extra.test.ts +1 -1
  61. package/src/__tests__/constraint-doctor.test.ts +1 -1
  62. package/src/__tests__/doctor-extra.test.ts +0 -9
  63. package/src/__tests__/effective-constraints.test.ts +21 -0
  64. package/src/__tests__/hooks-pipeline.test.ts +1 -1
  65. package/src/__tests__/iron-laws.test.ts +11 -0
  66. package/src/__tests__/passes-gate-extension.test.ts +3 -3
  67. package/src/__tests__/passes-gate-extra.test.ts +1 -1
  68. package/src/__tests__/performance-analyzer.test.ts +0 -2
  69. package/src/__tests__/traces.test.ts +1 -2
  70. package/src/architecture/cross-project-checker.ts +2 -2
  71. package/src/cli/commands/CONTEXT.md +1 -1
  72. package/src/cli/commands/__tests__/check-drift.test.ts +1 -1
  73. package/src/cli/commands/__tests__/check-skip-output.test.ts +0 -2
  74. package/src/cli/commands/__tests__/command.test.ts +1 -1
  75. package/src/cli/commands/__tests__/constraints-report.test.ts +1 -1
  76. package/src/cli/commands/__tests__/constraints-retire.test.ts +165 -4
  77. package/src/cli/commands/__tests__/failure.test.ts +0 -1
  78. package/src/cli/commands/__tests__/init.test.ts +40 -0
  79. package/src/cli/commands/__tests__/status-extra.test.ts +0 -2
  80. package/src/cli/commands/__tests__/status.test.ts +0 -2
  81. package/src/cli/commands/__tests__/sync-docs.test.ts +90 -0
  82. package/src/cli/commands/constraints-report.ts +2 -2
  83. package/src/cli/commands/constraints-retire.ts +114 -21
  84. package/src/cli/commands/doc-freshness-check.ts +1 -1
  85. package/src/cli/commands/init.ts +14 -14
  86. package/src/cli/commands/sync-docs/index.ts +20 -7
  87. package/src/cli/commands/sync-docs/project-reader.ts +10 -8
  88. package/src/cli/commands/validate.ts +3 -3
  89. package/src/cli/session-mining/text.ts +1 -1
  90. package/src/context/__tests__/progressive-loader.test.ts +6 -6
  91. package/src/core/CONTEXT.md +1 -1
  92. package/src/core/constraints/__tests__/injection-drift.test.ts +1 -1
  93. package/src/core/constraints/__tests__/interceptor.test.ts +3 -3
  94. package/src/core/constraints/definitions/iron-laws.ts +2 -2
  95. package/src/core/constraints/injection-drift.ts +1 -1
  96. package/src/core/effective-constraints.ts +2 -1
  97. package/src/core/project-config-loader.ts +8 -2
  98. package/src/gates/__tests__/acceptance.test.ts +0 -1
  99. package/src/gates/__tests__/command.test.ts +1 -1
  100. package/src/hooks/bootstrap.ts +1 -1
  101. package/src/knowledge/__tests__/doctor.test.ts +2 -2
  102. package/src/knowledge/__tests__/ingest.test.ts +2 -2
  103. package/src/knowledge/__tests__/migration.test.ts +0 -6
  104. package/src/knowledge/__tests__/store.test.ts +14 -1
  105. package/src/knowledge/store.ts +1 -1
  106. package/src/knowledge/types.ts +2 -0
  107. package/src/llm/__tests__/adapter.test.ts +1 -1
  108. package/src/monitoring/__tests__/knowledge-doctor.test.ts +0 -1
  109. package/src/monitoring/__tests__/performance-collector.test.ts +1 -2
  110. package/src/safety/output-guardrail.ts +2 -2
  111. package/src/spec/__tests__/annotation-checker.test.ts +0 -1
  112. package/src/spec/annotation-checker.ts +1 -1
  113. package/src/types/project-config.ts +12 -0
  114. package/src/utils/__tests__/file-walk.test.ts +53 -0
  115. package/src/utils/file-walk.ts +23 -3
  116. package/src/verification/__tests__/loop.test.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
+ ## [0.18.0] - 2026-08-15
8
+
9
+ ### Changes
10
+ - test: init 片段/落盘钩子 plan 匹配模式一致性断言,防模板字面量转义 drift(#35)
11
+ - fix: npm run lint 恒失败——补 ESLint flat config 并清零存量违规,CI 接 lint 防再退化(#35)
12
+ - fix: 模板/提示裸名 npx harness 全改 scoped @dommaker/harness,自身钩子/CI 改 dogfood node bin/harness.js(#36)
13
+ - fix: sync-docs 不再误删 CAPABILITIES.md 中真实存在的 .tsx 模块行(#33)
14
+ - feat: SourceRef 增加 entryId 条目级回指字段(#23)
15
+ - fix: 内置 no_completion_without_verification 验证命令口径弱化(#25)
16
+ - fix: constraints retire 直达路径补 --yes 人确认闸门(#24)
17
+ - feat: custom 约束退役落点迁至 custom-constraints.yml(#82 D6 一处真相)
18
+ - fix: mergeConstraints 生效 config.yml 对 custom 约束的禁用
19
+
20
+ ## [Unreleased]
21
+
22
+ ### Changes
23
+ - fix(lint): `npm run lint` 恒失败——仓库自初始提交起无任何 ESLint 配置,命令不可用却一直挂在文档里(#35)。新增 `eslint.config.mjs` flat config(eslint 8.57 自动识别,无需升级/环境变量):eslint:recommended + @typescript-eslint/recommended 收敛版;`no-explicit-any`/`no-non-null-assertion`/`no-var-requires`/`require-yield` 显式关闭(存量 335/252/39/1 处,any/non-null 属风格化改型、var-requires 为刻意 CJS 懒加载、require-yield 为故意抛错 stub,专项治理另开票),`no-empty` 保留 `catch {}` 吞异常既有约定(allowEmptyCatch),unused-vars 支持 `_` 前缀参数约定;一次性清理 74 处机械违规(unused-vars/prefer-const/useless-escape/case-declarations,均不改运行时行为;唯一例外 init.ts:模板字面量 `\.` 运行期退化,生成 `grep -E 'plans/.*.md$'` 点通配,与同文件落盘版 preCommitContent 副本 drift,改 `\\.` 使两副本一致)。lint script 去掉 `--ext .ts`(flat config 按文件模式选型)。coverage-gate.yml 新增 lint job——CI 从未跑 lint 正是问题长期未暴露的根因,从此防再退化
24
+ - fix(cli): 模板/提示裸名 `npx harness` 全部改为 `npx @dommaker/harness`(#36)——裸名经 npx 必然走 npm 注册表,命中同名陌生包(rsdoiel/harness@0.0.6,2013 年与本项目无关);init 三段模板(pre-commit/harness-check.yml/harness-governance.yml)、validate resolutions、constraints-report、injection-drift 修复提示、README 示例全部 scoped 化。harness 仓自身 dogfood 改用 `node bin/harness.js`(`.github/workflows/harness-governance.yml` 直改;pre-commit 钩子生成源落盘为 `bin/install-precommit-hook.sh`,`npm run hooks:install` 一条命令装回,本地确定、离线可用、dogfood 当前 HEAD)。消费项目已有落盘钩子需重跑 `npx @dommaker/harness init` 刷新
25
+ - fix(sync-docs): CAPABILITIES.md 中真实存在的 .tsx 模块行不再被误判为「已删除」并误删(#33)——源码扫描扩入 .tsx(findTsSourceFiles 新增 includeTsx 选项,sync-docs 链路开启,scanSourceModules 顶层分支同步),removed 判定前对含路径登记条目做全路径存在性过滤,兜住 .js/.jsx 等其它扫描盲区
26
+ - fix(constraints): 内置 `no_completion_without_verification` 文案弱化(#25)——去掉「完整」字样与写死的命令示例(npm test/npm run build),验证口径改为项目声明的测试 + type check,全量验证归 CI;强制力保留在「新鲜输出为证、禁止凭记忆声称完成」。大仓项目需自定义口径时仍可用 custom-constraints.yml shadow override
27
+ - fix(constraints): `retire <id>` 直达路径补人确认闸门(#24)——无 `--yes` 报错 + 非零退出码且不落盘,提示改用 `--yes` 或交互模式;`--yes` 直达保留原行为,iron 仍打印警示。ADR-0001 决策 2「执行层保留一次人确认」对所有入口成立。
28
+
7
29
  ## [0.17.1] - 2026-08-09
8
30
 
9
31
  ### Changes
package/README.md CHANGED
@@ -22,8 +22,8 @@ Harness 提供两层核心价值:
22
22
 
23
23
  ```bash
24
24
  npm install @dommaker/harness
25
- npx harness init --preset standard
26
- npx harness check
25
+ npx @dommaker/harness init --preset standard
26
+ npx @dommaker/harness check
27
27
  ```
28
28
 
29
29
  **作为库使用**:
@@ -41,7 +41,7 @@ await checkBeforeExecution({
41
41
 
42
42
  // 获取约束元数据
43
43
  const meta = await import('child_process').then(cp =>
44
- JSON.parse(cp.execSync('npx harness constraints --json', { encoding: 'utf-8' }))
44
+ JSON.parse(cp.execSync('npx @dommaker/harness constraints --json', { encoding: 'utf-8' }))
45
45
  );
46
46
  // { version, hash, counts: { ironLaws, guidelines, prompts }, textSize }
47
47
  ```
@@ -75,7 +75,7 @@ report 观测 → retire(人确认)→ 知识沉淀 → --export 回传 →
75
75
  ```
76
76
 
77
77
  - `harness constraints report` — 只读观测:check 层统计、四类退役候选诊断(零触发/零拦截/不可评估/高噪)、配置健康、注入漂移;`--export` 输出脱敏 markdown 摘要,供使用方回传给维护者。
78
- - `harness constraints retire` — 交互选择退役候选,**执行前保留一次人确认**。落盘为 config.yml `enabled: false` + `retired` 元数据,同时写入 **KnowledgeStore**(规则原文 + 退役原因 + 历史统计),并自动同步 CLAUDE.md 注入段。退役不是删除——删除 config.yml 中对应段即可回滚。
78
+ - `harness constraints retire` — 交互选择退役候选,**执行前保留一次人确认**。带 id 直达(`harness constraints retire <id> --yes`)也须显式 `--yes` 确认,无 `--yes` 报错不执行。落盘为 config.yml `enabled: false` + `retired` 元数据,同时写入 **KnowledgeStore**(规则原文 + 退役原因 + 历史统计),并自动同步 CLAUDE.md 注入段。退役不是删除——删除 config.yml 中对应段即可回滚。
79
79
  - 维护者收到回传摘要后编辑内置 definitions 并发版,内置集由此演进。不使用遥测,不做自动降级。
80
80
 
81
81
  ---
@@ -91,6 +91,7 @@ harness status # 项目健康状态、统计、异常检测
91
91
  harness constraints # 约束元数据(版本/hash/计数/文本大小)
92
92
  harness constraints report # 约束使用报告:统计 + 退役候选诊断 + 配置健康 + 注入漂移(--export 脱敏)
93
93
  harness constraints retire # 约束退役:交互选择 + 人确认 → config.yml + KnowledgeStore + 注入段同步
94
+ harness constraints retire <id> --yes # 直达退役:显式 --yes 人确认(无 --yes 拒绝执行)
94
95
  harness report # 生成检查报告
95
96
 
96
97
  # 门禁
package/bin/harness.js CHANGED
@@ -543,13 +543,15 @@ constraintsCmd
543
543
 
544
544
  constraintsCmd
545
545
  .command('retire [id]')
546
- .description('退役约束:无 id 进入交互式候选选择;带 id 直接退役(写 config.yml + KnowledgeStore + 同步 CLAUDE.md 注入段)')
546
+ .description('退役约束:无 id 进入交互式候选选择(人确认);带 id 直达退役需显式 --yes(写 config.yml + KnowledgeStore + 同步 CLAUDE.md 注入段)')
547
547
  .option('-p, --project-path <path>', '项目路径')
548
548
  .option('--reason <text>', '退役原因')
549
+ .option('-y, --yes', '显式确认直达退役(人确认闸门;无此 flag 直达报错并提示改走交互模式)', false)
549
550
  .action(async (id, options) => {
550
551
  await cmd('constraintsRetire')(id, {
551
552
  projectPath: options.projectPath,
552
553
  reason: options.reason,
554
+ yes: options.yes,
553
555
  });
554
556
  });
555
557
 
@@ -0,0 +1,76 @@
1
+ #!/bin/sh
2
+ # 安装 harness 仓库自身 pre-commit 钩子(工单 36)
3
+ #
4
+ # .git/hooks 不进版本库、新 clone 不带钩子;且裸名 npx harness 会解析到
5
+ # npm 同名陌生包(rsdoiel/harness@0.0.6)。本脚本是钩子的跟踪生成源,
6
+ # 落盘 dogfood 当前 HEAD 的钩子(node bin/harness.js check --staged),
7
+ # 本地确定、离线可用。
8
+ #
9
+ # 用法:npm run hooks:install
10
+ # (可选参数:git 目录路径,默认 .git)
11
+ set -e
12
+
13
+ GIT_DIR="${1:-.git}"
14
+ HOOK_PATH="$GIT_DIR/hooks/pre-commit"
15
+
16
+ mkdir -p "$GIT_DIR/hooks"
17
+ cat > "$HOOK_PATH" <<'HOOK_EOF'
18
+ #!/bin/sh
19
+ # Harness - Pre-commit hook
20
+ # 只做快速确定性检查(< 3s),全量测试交给 CI
21
+ #
22
+ # 检查项:
23
+ # 1. harness check --staged — 约束检查(Iron Laws)
24
+ # 2. 指南警告匹配已知解法 (RKB dogfood)
25
+ # 3. 零字节源文件检测(防 sed/批量操作误清空)
26
+ #
27
+ # 工单 24:修复 set -e 与 $(...) 捕获的冲突(命令失败不再被 set -e 提前终止);
28
+ # 移除全量 build/test(原 harness validate 检查点在低内存机器上 OOM,
29
+ # 且钩子本就声明全量测试交给 CI)。
30
+ # 工单 36:改用 node bin/harness.js(裸名 npx harness 会解析到 npm 同名陌生包;
31
+ # dogfood 当前 HEAD,本地确定、离线可用)。
32
+
33
+ set -e
34
+ RESOLUTIONS=".harness/resolutions.json"
35
+
36
+ echo "🔍 Running harness check..."
37
+ CHECK_EXIT=0
38
+ CHECK_OUTPUT=$(node bin/harness.js check --staged 2>&1) || CHECK_EXIT=$?
39
+
40
+ echo "$CHECK_OUTPUT"
41
+
42
+ if [ "$CHECK_EXIT" -ne 0 ]; then
43
+ # Iron Law violation — auto-query resolutions for guideline warnings in output
44
+ if [ -f "$RESOLUTIONS" ] && command -v jq >/dev/null 2>&1; then
45
+ echo ""
46
+ echo "📋 Known fixes for guideline warnings:"
47
+ echo "$CHECK_OUTPUT" | grep -oP '⚠️ [a-z_]+' | while read -r line; do
48
+ gid=$(echo "$line" | sed 's/⚠️ //')
49
+ title=$(jq -r ".[\"$gid\"].title // empty" "$RESOLUTIONS" 2>/dev/null)
50
+ fix=$(jq -r ".[\"$gid\"].fix // empty" "$RESOLUTIONS" 2>/dev/null)
51
+ if [ -n "$fix" ]; then
52
+ echo " 🔧 $title"
53
+ echo " $fix"
54
+ echo ""
55
+ fi
56
+ done
57
+ fi
58
+ echo "❌ Harness constraint check failed. Fix violations before committing."
59
+ exit 1
60
+ fi
61
+
62
+ # 零字节源文件检测(防止 sed/批量操作误清空)
63
+ echo "🔍 Checking for empty source files..."
64
+ EMPTY_FILES=$(find src/ -name '*.ts' -size 0 2>/dev/null)
65
+ if [ -n "$EMPTY_FILES" ]; then
66
+ echo "❌ Zero-byte source files detected:"
67
+ echo "$EMPTY_FILES"
68
+ echo "These files may have been accidentally wiped. Restore them before committing."
69
+ exit 1
70
+ fi
71
+
72
+ echo "✅ Pre-commit checks passed"
73
+ HOOK_EOF
74
+
75
+ chmod +x "$HOOK_PATH"
76
+ echo "✅ 已安装 $HOOK_PATH(改动钩子后重跑 npm run hooks:install 刷新)"
@@ -268,8 +268,8 @@ function isBreakingChange(change) {
268
268
  }
269
269
  function getDependents(project, config) {
270
270
  return Object.entries(config.dependencies)
271
- .filter(([_, deps]) => deps.includes(project))
272
- .map(([name, _]) => name);
271
+ .filter(([, deps]) => deps.includes(project))
272
+ .map(([name]) => name);
273
273
  }
274
274
  // ============ 辅助函数实现 ============
275
275
  function extractApiName(file) {
@@ -1 +1 @@
1
- {"version":3,"file":"cross-project-checker.js","sourceRoot":"","sources":["../../src/architecture/cross-project-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cross-project-checker.js","sourceRoot":"","sources":["../../src/architecture/cross-project-checker.ts"],"names":[],"mappings":"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"}
@@ -123,9 +123,9 @@ function renderExportMarkdown(report, version, now = new Date()) {
123
123
  function renderInjectionDriftLines(drift) {
124
124
  const lines = [];
125
125
  if (drift.notInjected) {
126
- lines.push(' CLAUDE.md 无约束注入标记段(未注入,不算漂移);可运行 npx harness init 注入');
126
+ lines.push(' CLAUDE.md 无约束注入标记段(未注入,不算漂移);可运行 npx @dommaker/harness init 注入');
127
127
  if (drift.duplicateHeading) {
128
- lines.push(' 另检测到多个 "## Governance Rules" 标题(历史遗留重复章节),建议手工清理后重跑 npx harness init');
128
+ lines.push(' 另检测到多个 "## Governance Rules" 标题(历史遗留重复章节),建议手工清理后重跑 npx @dommaker/harness init');
129
129
  }
130
130
  return lines;
131
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"constraints-report.js","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraints-report.js","sourceRoot":"","sources":["../../../src/cli/commands/constraints-report.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,28 @@
2
2
  * harness constraints retire —— 约束退役(ADR-0001 决策 2/5)
3
3
  *
4
4
  * 建议层全自动(候选诊断复用 report 数据层),执行层保留一次人确认。
5
- * 落盘形态 = config.yml `enabled: false` + `retired` 元数据(不发明第二套状态):
5
+ * 落盘形态(#82 D6 一处真相):
6
6
  *
7
- * constraints:
8
- * <id>:
9
- * enabled: false
10
- * retired: { at, reason, stats: { total, fail, failRate } }
7
+ * - 内置约束 → config.yml `enabled: false` + `retired` 元数据:
8
+ *
9
+ * constraints:
10
+ * <id>:
11
+ * enabled: false
12
+ * retired: { at, reason, stats: { total, fail, failRate } }
13
+ *
14
+ * - custom 约束 → custom-constraints.yml 条目内 `retired` 元数据段
15
+ * (不拆 config.yml 第二处):
16
+ *
17
+ * custom_constraints:
18
+ * <id>:
19
+ * rule: ...
20
+ * retired: { at, reason, stats: { total, fail, failRate } }
11
21
  *
12
22
  * 每条同时写一条 KnowledgeStore 记录(consumptionMode: 'signal'),
13
23
  * 并同步 CLAUDE.md 注入段(存在 HARNESS_CONSTRAINTS 标记时)。
14
24
  *
15
- * retire 不是删除——恢复方法:删除 config.yml 中 constraints.<id> 段。
25
+ * retire 不是删除——恢复方法:内置删 config.yml 中 constraints.<id> 段;
26
+ * custom 删 custom-constraints.yml 中 custom_constraints.<id>.retired 段。
16
27
  *
17
28
  * 交互与执行分离:retireConstraint 为纯执行逻辑(同步、可测),
18
29
  * runRetireInteractive 只做 readline 交互,IO 流可注入。
@@ -29,6 +40,8 @@ export interface RetireResult {
29
40
  status: RetireStatus;
30
41
  /** 是否 check 层 iron(交互模式据此追加确认) */
31
42
  isIronLaw: boolean;
43
+ /** 退役落点:custom 约束落 custom-constraints.yml(#82 D6),内置落 config.yml */
44
+ landing: 'config.yml' | 'custom-constraints.yml';
32
45
  stats: {
33
46
  total: number;
34
47
  fail: number;
@@ -42,6 +55,8 @@ export interface RetireResult {
42
55
  export interface ConstraintsRetireOptions {
43
56
  projectPath?: string;
44
57
  reason?: string;
58
+ /** 直达模式显式确认(--yes):ADR-0001 决策 2 人确认闸门,无此 flag 直达拒绝执行 */
59
+ yes?: boolean;
45
60
  }
46
61
  /**
47
62
  * 执行单条约束退役(纯执行逻辑,无交互)
@@ -65,6 +80,9 @@ interface RetireIO {
65
80
  export declare function runRetireInteractive(projectRoot: string, io?: RetireIO): Promise<void>;
66
81
  /**
67
82
  * CLI handler: harness constraints retire [id]
83
+ *
84
+ * 人确认闸门(#24,ADR-0001 决策 2):带 id 的直达路径必须显式 `--yes`,
85
+ * 无 `--yes` 报错 + 非零退出码,提示改用 `--yes` 或交互模式;不落盘任何文件。
68
86
  */
69
87
  export declare function constraintsRetire(id?: string, options?: ConstraintsRetireOptions): Promise<void>;
70
88
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"constraints-retire.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/constraints-retire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAsBH,MAAM,WAAW,oBAAoB;IACnC,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,yBAAyB;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6KD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,oBAAyB,GACjC,YAAY,CAqCd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiB5D;AAMD,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC/B;AAiBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,EAAE,GAAE,QAA2D,GAC9D,OAAO,CAAC,IAAI,CAAC,CAoFf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1G"}
1
+ {"version":3,"file":"constraints-retire.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/constraints-retire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAqBH,MAAM,WAAW,oBAAoB;IACnC,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,EAAE,YAAY,GAAG,wBAAwB,CAAC;IACjD,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,yBAAyB;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAoND;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,oBAAyB,GACjC,YAAY,CAqDd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAuB5D;AAMD,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC/B;AAiBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,EAAE,GAAE,QAA2D,GAC9D,OAAO,CAAC,IAAI,CAAC,CAwFf;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1G"}
@@ -3,17 +3,28 @@
3
3
  * harness constraints retire —— 约束退役(ADR-0001 决策 2/5)
4
4
  *
5
5
  * 建议层全自动(候选诊断复用 report 数据层),执行层保留一次人确认。
6
- * 落盘形态 = config.yml `enabled: false` + `retired` 元数据(不发明第二套状态):
6
+ * 落盘形态(#82 D6 一处真相):
7
7
  *
8
- * constraints:
9
- * <id>:
10
- * enabled: false
11
- * retired: { at, reason, stats: { total, fail, failRate } }
8
+ * - 内置约束 → config.yml `enabled: false` + `retired` 元数据:
9
+ *
10
+ * constraints:
11
+ * <id>:
12
+ * enabled: false
13
+ * retired: { at, reason, stats: { total, fail, failRate } }
14
+ *
15
+ * - custom 约束 → custom-constraints.yml 条目内 `retired` 元数据段
16
+ * (不拆 config.yml 第二处):
17
+ *
18
+ * custom_constraints:
19
+ * <id>:
20
+ * rule: ...
21
+ * retired: { at, reason, stats: { total, fail, failRate } }
12
22
  *
13
23
  * 每条同时写一条 KnowledgeStore 记录(consumptionMode: 'signal'),
14
24
  * 并同步 CLAUDE.md 注入段(存在 HARNESS_CONSTRAINTS 标记时)。
15
25
  *
16
- * retire 不是删除——恢复方法:删除 config.yml 中 constraints.<id> 段。
26
+ * retire 不是删除——恢复方法:内置删 config.yml 中 constraints.<id> 段;
27
+ * custom 删 custom-constraints.yml 中 custom_constraints.<id>.retired 段。
17
28
  *
18
29
  * 交互与执行分离:retireConstraint 为纯执行逻辑(同步、可测),
19
30
  * runRetireInteractive 只做 readline 交互,IO 流可注入。
@@ -77,6 +88,7 @@ function findRetireTarget(projectRoot, id) {
77
88
  const builtIn = (0, definitions_1.getConstraint)(id);
78
89
  if (builtIn) {
79
90
  return {
91
+ source: 'builtin',
80
92
  isIronLaw: builtIn.kind === 'check' && builtIn.level === 'iron_law',
81
93
  level: builtIn.level,
82
94
  description: builtIn.description,
@@ -91,11 +103,13 @@ function findRetireTarget(projectRoot, id) {
91
103
  if (custom) {
92
104
  const level = custom.level || 'guideline';
93
105
  return {
106
+ source: 'custom',
94
107
  isIronLaw: false, // custom 约束统一 kind='prompt'(无 checker),不存在 check 层 iron
95
108
  level,
96
109
  description: custom.description,
97
110
  rule: custom.rule,
98
111
  message: custom.message,
112
+ promptInjection: custom.promptInjection,
99
113
  };
100
114
  }
101
115
  return undefined;
@@ -136,6 +150,31 @@ function writeRetireConfig(projectRoot, id, retiredMeta) {
136
150
  console.log(chalk_1.default.yellow(' ⚠️ config.yml 已重写:js-yaml 不保留原文件注释'));
137
151
  }
138
152
  }
153
+ /**
154
+ * 写 custom-constraints.yml 退役段(#82 D6 统一落点)
155
+ *
156
+ * 在 custom_constraints.<id> 条目内追加 retired 元数据,保留规则原文。
157
+ * js-yaml 不保留注释:原文件含注释行时重写会丢失,console 说明。
158
+ */
159
+ function writeCustomRetireYml(projectRoot, fileName, id, retiredMeta) {
160
+ const filePath = path.join(projectRoot, '.harness', fileName);
161
+ let raw = {};
162
+ let hadComments = false;
163
+ if (fs.existsSync(filePath)) {
164
+ const original = fs.readFileSync(filePath, 'utf-8');
165
+ hadComments = original.split('\n').some(l => l.trimStart().startsWith('#'));
166
+ raw = yaml.load(original) ?? {};
167
+ }
168
+ const customs = (raw.custom_constraints ?? {});
169
+ const prev = customs[id] ?? {};
170
+ customs[id] = { ...prev, retired: retiredMeta };
171
+ raw.custom_constraints = customs;
172
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
173
+ fs.writeFileSync(filePath, yaml.dump(raw, { lineWidth: 120 }), 'utf-8');
174
+ if (hadComments) {
175
+ console.log(chalk_1.default.yellow(' ⚠️ custom-constraints.yml 已重写:js-yaml 不保留原文件注释'));
176
+ }
177
+ }
139
178
  /**
140
179
  * 写 KnowledgeStore 退役记录(consumptionMode: 'signal')
141
180
  */
@@ -220,14 +259,23 @@ function retireConstraint(projectRoot, id, options = {}) {
220
259
  const reason = options.reason ?? '';
221
260
  const target = findRetireTarget(projectRoot, id);
222
261
  const emptyStats = { total: 0, fail: 0, failRate: 0 };
262
+ const landing = target?.source === 'custom' ? 'custom-constraints.yml' : 'config.yml';
223
263
  if (!target) {
224
- return { id, status: 'unknown_id', isIronLaw: false, stats: emptyStats, claudeMdSynced: false };
264
+ return { id, status: 'unknown_id', isIronLaw: false, landing, stats: emptyStats, claudeMdSynced: false };
225
265
  }
226
- // 已退役保护(config.yml constraints.<id>.enabled === false
266
+ // 已退役保护:内置看 config.yml constraints.<id>.enabled === false
267
+ // custom 看 yml 条目 retired 元数据(历史落点 config.yml enabled:false 同样保护)
227
268
  const rawConfig = (0, project_config_loader_1.loadRawProjectConfig)(projectRoot);
228
269
  const existing = rawConfig?.constraints?.[id];
229
- if (existing?.enabled === false) {
230
- return { id, status: 'already_retired', isIronLaw: target.isIronLaw, stats: emptyStats, claudeMdSynced: false };
270
+ if (target.source === 'custom') {
271
+ const loader = new project_config_loader_1.ProjectConfigLoader(projectRoot);
272
+ loader.load();
273
+ if (loader.getCustomConstraints()[id]?.retired || existing?.enabled === false) {
274
+ return { id, status: 'already_retired', isIronLaw: target.isIronLaw, landing, stats: emptyStats, claudeMdSynced: false };
275
+ }
276
+ }
277
+ else if (existing?.enabled === false) {
278
+ return { id, status: 'already_retired', isIronLaw: target.isIronLaw, landing, stats: emptyStats, claudeMdSynced: false };
231
279
  }
232
280
  // 历史统计(来自 traces.log)
233
281
  const usage = (0, usage_report_1.collectUsageByConstraint)((0, usage_report_1.readProjectTraces)(projectRoot)).get(id);
@@ -237,13 +285,21 @@ function retireConstraint(projectRoot, id, options = {}) {
237
285
  fail: usage?.fail ?? 0,
238
286
  failRate: evaluated > 0 ? (usage.fail / evaluated) : 0,
239
287
  };
240
- // 1. config.yml
241
- writeRetireConfig(projectRoot, id, { at: iso, reason, stats });
288
+ // 1. 落盘退役(custom → yml 条目 retired 段;内置 → config.yml,原文均保留)
289
+ if (target.source === 'custom') {
290
+ const loader = new project_config_loader_1.ProjectConfigLoader(projectRoot);
291
+ loader.load();
292
+ const customFile = loader.getConfig().custom_constraints_file ?? 'custom-constraints.yml';
293
+ writeCustomRetireYml(projectRoot, customFile, id, { at: iso, reason, stats });
294
+ }
295
+ else {
296
+ writeRetireConfig(projectRoot, id, { at: iso, reason, stats });
297
+ }
242
298
  // 2. KnowledgeStore
243
299
  const knowledgeEntryId = saveRetireKnowledge(projectRoot, id, target, reason, stats, iso);
244
300
  // 3. CLAUDE.md 注入段同步
245
301
  const claudeMdSynced = syncClaudeMdInjection(projectRoot);
246
- return { id, status: 'retired', isIronLaw: target.isIronLaw, stats, claudeMdSynced, knowledgeEntryId };
302
+ return { id, status: 'retired', isIronLaw: target.isIronLaw, landing, stats, claudeMdSynced, knowledgeEntryId };
247
303
  }
248
304
  /**
249
305
  * 打印单条退役结果(含回滚语义提示)
@@ -256,14 +312,19 @@ function printRetireResult(result) {
256
312
  case 'already_retired':
257
313
  console.log(chalk_1.default.yellow(`⚠️ ${result.id}: 已处于退役状态(config.yml 中 enabled: false),跳过`));
258
314
  return;
259
- case 'retired':
315
+ case 'retired': {
260
316
  console.log(chalk_1.default.green(`✅ ${result.id}: 已退役`));
261
317
  console.log(` 历史统计: total=${result.stats.total} fail=${result.stats.fail} fail率=${Math.round(result.stats.failRate * 100)}%`);
262
318
  console.log(` 知识沉淀: ${result.knowledgeEntryId}(.harness/knowledge)`);
263
319
  if (result.claudeMdSynced) {
264
320
  console.log(' 已同步 CLAUDE.md 注入段');
265
321
  }
266
- console.log(chalk_1.default.gray(` retire 不是删除——恢复方法:删除 config.yml constraints.${result.id} 段`));
322
+ const recovery = result.landing === 'custom-constraints.yml'
323
+ ? `删除 custom-constraints.yml 中 custom_constraints.${result.id}.retired 段`
324
+ : `删除 config.yml 中 constraints.${result.id} 段`;
325
+ console.log(chalk_1.default.gray(` retire 不是删除——恢复方法:${recovery}`));
326
+ break;
327
+ }
267
328
  }
268
329
  }
269
330
  function createAsk(io) {
@@ -336,7 +397,7 @@ async function runRetireInteractive(projectRoot, io = { input: process.stdin, ou
336
397
  }
337
398
  }
338
399
  const reason = await ask(`退役原因(${id},可留空): `);
339
- plan.push({ id, reason });
400
+ plan.push({ id, reason, source: target.source });
340
401
  }
341
402
  if (plan.length === 0) {
342
403
  console.log('无可执行项,已取消');
@@ -346,7 +407,12 @@ async function runRetireInteractive(projectRoot, io = { input: process.stdin, ou
346
407
  console.log();
347
408
  console.log(chalk_1.default.bold('将执行以下变更:'));
348
409
  for (const p of plan) {
349
- console.log(` - config.yml: constraints.${p.id}.enabled=false + retired 元数据(原因: ${p.reason || '(空)'})`);
410
+ if (p.source === 'custom') {
411
+ console.log(` - custom-constraints.yml: custom_constraints.${p.id}.retired 元数据(原因: ${p.reason || '(空)'})`);
412
+ }
413
+ else {
414
+ console.log(` - config.yml: constraints.${p.id}.enabled=false + retired 元数据(原因: ${p.reason || '(空)'})`);
415
+ }
350
416
  console.log(` - KnowledgeStore: 写入 constraint-retired-${p.id}`);
351
417
  }
352
418
  console.log(' - CLAUDE.md: 若含 HARNESS_CONSTRAINTS 标记段则同步重渲染');
@@ -367,14 +433,25 @@ async function runRetireInteractive(projectRoot, io = { input: process.stdin, ou
367
433
  }
368
434
  /**
369
435
  * CLI handler: harness constraints retire [id]
436
+ *
437
+ * 人确认闸门(#24,ADR-0001 决策 2):带 id 的直达路径必须显式 `--yes`,
438
+ * 无 `--yes` 报错 + 非零退出码,提示改用 `--yes` 或交互模式;不落盘任何文件。
370
439
  */
371
440
  async function constraintsRetire(id, options = {}) {
372
441
  const projectRoot = options.projectPath || process.cwd();
373
442
  if (id) {
374
- // 非交互直达
443
+ // 非交互直达:执行层人确认对所有入口成立(含程序化调用方)
444
+ if (!options.yes) {
445
+ console.error(chalk_1.default.red(`❌ 直达退役需要显式人确认(ADR-0001 决策 2:执行层保留一次人确认),未做任何变更\n`) +
446
+ ` 带 --yes 显式确认直达:harness constraints retire ${id} --yes` +
447
+ `${options.reason ? ` --reason "${options.reason}"` : ''}\n` +
448
+ ` 或去掉 id 走交互确认:harness constraints retire`);
449
+ process.exitCode = 1;
450
+ return;
451
+ }
375
452
  const result = retireConstraint(projectRoot, id, { reason: options.reason });
376
453
  if (result.status === 'retired' && result.isIronLaw) {
377
- console.log(chalk_1.default.yellow(`⚠️ ${id} 是一条 Iron Law,已通过命令行直接退役(交互模式会要求二次确认)`));
454
+ console.log(chalk_1.default.yellow(`⚠️ ${id} 是一条 Iron Law,已通过 --yes 直达退役(交互模式会要求二次确认)`));
378
455
  }
379
456
  printRetireResult(result);
380
457
  return;