@dommaker/harness 0.17.0 → 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.
- package/CHANGELOG.md +27 -0
- package/README.md +5 -4
- package/bin/harness.js +3 -1
- package/bin/install-precommit-hook.sh +76 -0
- package/dist/architecture/cross-project-checker.js +2 -2
- package/dist/architecture/cross-project-checker.js.map +1 -1
- package/dist/cli/commands/constraints-report.js +2 -2
- package/dist/cli/commands/constraints-report.js.map +1 -1
- package/dist/cli/commands/constraints-retire.d.ts +24 -6
- package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
- package/dist/cli/commands/constraints-retire.js +96 -19
- package/dist/cli/commands/constraints-retire.js.map +1 -1
- package/dist/cli/commands/doc-freshness-check.js +1 -1
- package/dist/cli/commands/doc-freshness-check.js.map +1 -1
- package/dist/cli/commands/init.js +14 -14
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/index.js +14 -6
- package/dist/cli/commands/sync-docs/index.js.map +1 -1
- package/dist/cli/commands/sync-docs/project-reader.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/project-reader.js +9 -7
- package/dist/cli/commands/sync-docs/project-reader.js.map +1 -1
- package/dist/cli/commands/validate.js +3 -3
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/session-mining/text.js +1 -1
- package/dist/cli/session-mining/text.js.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.js +2 -2
- package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
- package/dist/core/constraints/injection-drift.d.ts +1 -1
- package/dist/core/constraints/injection-drift.d.ts.map +1 -1
- package/dist/core/constraints/injection-drift.js +1 -1
- package/dist/core/constraints/injection-drift.js.map +1 -1
- package/dist/core/effective-constraints.d.ts +2 -1
- package/dist/core/effective-constraints.d.ts.map +1 -1
- package/dist/core/effective-constraints.js +2 -1
- package/dist/core/effective-constraints.js.map +1 -1
- package/dist/core/project-config-loader.d.ts +2 -1
- package/dist/core/project-config-loader.d.ts.map +1 -1
- package/dist/core/project-config-loader.js +9 -2
- package/dist/core/project-config-loader.js.map +1 -1
- package/dist/hooks/bootstrap.js +1 -1
- package/dist/hooks/bootstrap.js.map +1 -1
- package/dist/knowledge/store.js +1 -1
- package/dist/knowledge/store.js.map +1 -1
- package/dist/knowledge/types.d.ts +2 -0
- package/dist/knowledge/types.d.ts.map +1 -1
- package/dist/knowledge/types.js.map +1 -1
- package/dist/safety/output-guardrail.js +2 -2
- package/dist/safety/output-guardrail.js.map +1 -1
- package/dist/spec/annotation-checker.js +1 -1
- package/dist/spec/annotation-checker.js.map +1 -1
- package/dist/types/project-config.d.ts +23 -0
- package/dist/types/project-config.d.ts.map +1 -1
- package/dist/utils/file-walk.d.ts +13 -1
- package/dist/utils/file-walk.d.ts.map +1 -1
- package/dist/utils/file-walk.js +16 -3
- package/dist/utils/file-walk.js.map +1 -1
- package/package.json +6 -2
- package/src/__tests__/checkpoint.test.ts +2 -2
- package/src/__tests__/clean-state-extra.test.ts +1 -1
- package/src/__tests__/constraint-doctor.test.ts +1 -1
- package/src/__tests__/doctor-extra.test.ts +0 -9
- package/src/__tests__/effective-constraints.test.ts +21 -0
- package/src/__tests__/hooks-pipeline.test.ts +1 -1
- package/src/__tests__/iron-laws.test.ts +11 -0
- package/src/__tests__/passes-gate-extension.test.ts +3 -3
- package/src/__tests__/passes-gate-extra.test.ts +1 -1
- package/src/__tests__/performance-analyzer.test.ts +0 -2
- package/src/__tests__/project-config-loader-extra.test.ts +37 -0
- package/src/__tests__/traces.test.ts +1 -2
- package/src/architecture/cross-project-checker.ts +2 -2
- package/src/cli/commands/CONTEXT.md +1 -1
- package/src/cli/commands/__tests__/check-drift.test.ts +1 -1
- package/src/cli/commands/__tests__/check-skip-output.test.ts +0 -2
- package/src/cli/commands/__tests__/command.test.ts +1 -1
- package/src/cli/commands/__tests__/constraints-report.test.ts +1 -1
- package/src/cli/commands/__tests__/constraints-retire.test.ts +165 -4
- package/src/cli/commands/__tests__/failure.test.ts +0 -1
- package/src/cli/commands/__tests__/init.test.ts +40 -0
- package/src/cli/commands/__tests__/status-extra.test.ts +0 -2
- package/src/cli/commands/__tests__/status.test.ts +0 -2
- package/src/cli/commands/__tests__/sync-docs.test.ts +90 -0
- package/src/cli/commands/constraints-report.ts +2 -2
- package/src/cli/commands/constraints-retire.ts +114 -21
- package/src/cli/commands/doc-freshness-check.ts +1 -1
- package/src/cli/commands/init.ts +14 -14
- package/src/cli/commands/sync-docs/index.ts +20 -7
- package/src/cli/commands/sync-docs/project-reader.ts +10 -8
- package/src/cli/commands/validate.ts +3 -3
- package/src/cli/session-mining/text.ts +1 -1
- package/src/context/__tests__/progressive-loader.test.ts +6 -6
- package/src/core/CONTEXT.md +1 -1
- package/src/core/constraints/__tests__/injection-drift.test.ts +1 -1
- package/src/core/constraints/__tests__/interceptor.test.ts +3 -3
- package/src/core/constraints/definitions/iron-laws.ts +2 -2
- package/src/core/constraints/injection-drift.ts +1 -1
- package/src/core/effective-constraints.ts +2 -1
- package/src/core/project-config-loader.ts +9 -2
- package/src/gates/__tests__/acceptance.test.ts +0 -1
- package/src/gates/__tests__/command.test.ts +1 -1
- package/src/hooks/bootstrap.ts +1 -1
- package/src/knowledge/__tests__/doctor.test.ts +2 -2
- package/src/knowledge/__tests__/ingest.test.ts +2 -2
- package/src/knowledge/__tests__/migration.test.ts +0 -6
- package/src/knowledge/__tests__/store.test.ts +14 -1
- package/src/knowledge/store.ts +1 -1
- package/src/knowledge/types.ts +2 -0
- package/src/llm/__tests__/adapter.test.ts +1 -1
- package/src/monitoring/__tests__/knowledge-doctor.test.ts +0 -1
- package/src/monitoring/__tests__/performance-collector.test.ts +1 -2
- package/src/safety/output-guardrail.ts +2 -2
- package/src/spec/__tests__/annotation-checker.test.ts +0 -1
- package/src/spec/annotation-checker.ts +1 -1
- package/src/types/project-config.ts +21 -0
- package/src/utils/__tests__/file-walk.test.ts +53 -0
- package/src/utils/file-walk.ts +23 -3
- package/src/verification/__tests__/loop.test.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ 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
|
+
|
|
29
|
+
## [0.17.1] - 2026-08-09
|
|
30
|
+
|
|
31
|
+
### Changes
|
|
32
|
+
- fix(constraints): 自定义约束 promptInjection 未透传,收编约束进不了注入段
|
|
33
|
+
|
|
7
34
|
## [0.17.0] - 2026-08-08
|
|
8
35
|
|
|
9
36
|
约束体系重构(ADR-0001):删除自动进化子系统,确立 check/prompt 二元模型。决策依据见 `docs/adr/0001-constraint-system-rearchitecture.md`。
|
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` —
|
|
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
|
|
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(([
|
|
272
|
-
.map(([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
|
-
*
|
|
5
|
+
* 落盘形态(#82 D6 一处真相):
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
6
|
+
* 落盘形态(#82 D6 一处真相):
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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
|
|
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
|
-
//
|
|
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 (
|
|
230
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|