@dommaker/harness 0.5.0 → 0.6.1

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/README.md CHANGED
@@ -10,13 +10,15 @@
10
10
 
11
11
  | 功能 | 说明 |
12
12
  |------|------|
13
- | **铁律系统** | 13 条内置铁律,违规则阻止操作 |
13
+ | **铁律系统** | 16 条内置约束(4 Iron Laws + 10 Guidelines + 2 Tips) |
14
14
  | **检查点验证** | 验证工作流步骤的结果是否符合预期 |
15
15
  | **测试门控** | 禁止自评通过,必须通过真实测试 |
16
16
  | **Session 管理** | 启动检查点 + 结束状态管理 |
17
17
  | **预设系统** | 提供 strict/standard/relaxed 三种预设 |
18
18
  | **Execution Trace** | 轻量记录约束检查,异常检测,诊断系统(v0.3+) |
19
19
  | **项目级自定义约束** | 扩展/覆盖内置约束,无需 fork(v0.4+) |
20
+ | **智能提示** | check 后根据条件提示下一步操作(v0.6+) |
21
+ | **一键流程** | harness flow 一键执行诊断+提案(v0.6+) |
20
22
  | **CLI 工具** | 命令行工具执行检查 |
21
23
 
22
24
  ## 安装
@@ -46,12 +48,27 @@ npx harness init --preset standard
46
48
  # 初始化项目配置
47
49
  harness init --preset standard
48
50
 
51
+ # 输出配置代码片段(不创建文件)
52
+ harness init --print-snippets
53
+
49
54
  # 检查铁律
50
55
  harness check
51
56
 
52
57
  # 列出所有铁律
53
58
  harness check --list
54
59
 
60
+ # 查看状态(统计、异常、建议)
61
+ harness status
62
+
63
+ # 查看详细状态
64
+ harness status --detail
65
+
66
+ # 只显示异常
67
+ harness status --anomalies
68
+
69
+ # 一键执行诊断+提案流程
70
+ harness flow
71
+
55
72
  # 验证检查点
56
73
  harness validate
57
74
 
@@ -61,12 +78,10 @@ harness passes-gate
61
78
  # 生成报告
62
79
  harness report
63
80
 
64
- # Trace 分析(Execution Traces)
65
- harness traces stats # 查看 trace 文件统计
66
- harness traces summary # 查看约束汇总
67
- harness traces anomalies # 检测异常模式
68
- harness traces report # 生成完整报告
69
- harness traces clean # 清理旧 trace 文件
81
+ # [已弃用] 请使用 harness status
82
+ harness traces stats
83
+ harness traces summary
84
+ harness traces anomalies
70
85
  ```
71
86
 
72
87
  ### 3. 在 CI 中使用
@@ -115,23 +130,26 @@ const cleaner = new CleanStateManager();
115
130
  const cleanResult = await cleaner.onSessionEnd(workDir, sessionInfo);
116
131
  ```
117
132
 
118
- ## 内置铁律(13 条)
119
-
120
- | ID | 规则 | 严重性 |
121
- |---|------|:------:|
122
- | `no_simplification_without_approval` | 不能擅自简化逻辑 | 🔴 error |
123
- | `no_fix_without_root_cause` | 修复前必须找到根因 | 🔴 error |
124
- | `no_completion_without_verification` | 完成必须有验证证据 | 🔴 error |
125
- | `no_skill_without_test` | 创建技能前必须有测试 | 🟡 warning |
126
- | `no_code_without_test` | 写代码前必须有测试 | 🔴 error |
127
- | `no_creation_without_reuse_check` | 创建前必须检查可复用 | 🟡 warning |
128
- | `capability_sync` | 代码变更必须更新 CAPABILITIES.md | 🟡 warning |
129
- | `no_any_type` | 禁止使用 any 类型 | 🟡 warning |
130
- | `no_bypass_checkpoint` | 禁止跳过检查点 | 🔴 error |
131
- | `test_coverage_required` | 测试覆盖率必须达标 | 🟡 warning |
132
- | `no_self_approval` | 禁止自评通过 | 🔴 error |
133
- | `doc_required_for_public_api` | 公共 API 必须有文档 | 🟡 warning |
134
- | `readme_required` | 新模块必须有 README | 🔵 info |
133
+ ## 内置约束(16 条)
134
+
135
+ | ID | 规则 | 层级 | 严重性 |
136
+ |---|------|------|:------:|
137
+ | `no_bypass_checkpoint` | 禁止跳过检查点 | iron_law | 🔴 error |
138
+ | `no_self_approval` | 禁止自评通过 | iron_law | 🔴 error |
139
+ | `no_completion_without_verification` | 完成必须有验证证据 | iron_law | 🔴 error |
140
+ | `no_test_simplification` | 禁止擅自简化测试 | iron_law | 🔴 error |
141
+ | `no_fix_without_root_cause` | 修复前必须找到根因 | guideline | 🔴 error |
142
+ | `no_code_without_test` | 写代码前必须有测试 | guideline | 🔴 error |
143
+ | `no_any_type` | 禁止使用 any 类型 | guideline | 🟡 warning |
144
+ | `simplest_solution_first` | 优先选择最简方案 | guideline | 🟡 warning |
145
+ | `no_creation_without_reuse_check` | 创建前必须检查可复用 | guideline | 🟡 warning |
146
+ | `capability_sync` | 代码变更必须更新 CAPABILITIES.md | guideline | 🟡 warning |
147
+ | `no_simplification_without_approval` | 不能擅自简化逻辑 | guideline | 🟡 warning |
148
+ | `no_skill_without_test` | 创建技能前必须有测试 | guideline | 🟡 warning |
149
+ | `test_coverage_required` | 测试覆盖率必须达标 | guideline | 🟡 warning |
150
+ | `design_decision_requires_discussion` | 设计决策必须先讨论 | guideline | 🟡 warning |
151
+ | `readme_required` | 新模块必须有 README | tip | 🔵 info |
152
+ | `doc_required_for_public_api` | 公共 API 必须有文档 | tip | 🔵 info |
135
153
 
136
154
  ## 预设系统
137
155
 
@@ -141,6 +159,56 @@ const cleanResult = await cleaner.onSessionEnd(workDir, sessionInfo);
141
159
  | `standard` | 标准模式,推荐使用 |
142
160
  | `relaxed` | 宽松模式,警告不阻止 |
143
161
 
162
+ ## 自定义约束(v0.4+)
163
+
164
+ ### 扩展例外(v0.6+)
165
+
166
+ 使用 `extend_exceptions` 追加例外,保留内置例外:
167
+
168
+ ```yaml
169
+ # .harness/custom-constraints.yml
170
+ custom_constraints:
171
+ no_fix_without_root_cause:
172
+ extend_exceptions:
173
+ - my_special_case_1
174
+ - my_special_case_2
175
+ ```
176
+
177
+ 结果:内置例外 + 新增例外
178
+
179
+ ### 完全覆盖
180
+
181
+ 使用 `exceptions` 完全覆盖内置例外:
182
+
183
+ ```yaml
184
+ # .harness/custom-constraints.yml
185
+ custom_constraints:
186
+ no_fix_without_root_cause:
187
+ level: guideline
188
+ rule: Do not fix without root cause
189
+ message: 禁止没有根因分析就修复
190
+ trigger: bug_fix
191
+ exceptions:
192
+ - my_only_exception
193
+ ```
194
+
195
+ 结果:只使用自定义例外
196
+
197
+ ### 混合模式
198
+
199
+ 同时使用 `exceptions` 和 `extend_exceptions`:
200
+
201
+ ```yaml
202
+ custom_constraints:
203
+ no_fix_without_root_cause:
204
+ exceptions:
205
+ - my_new_exception
206
+ extend_exceptions:
207
+ - another_exception
208
+ ```
209
+
210
+ 结果:内置例外 + my_new_exception + another_exception
211
+
144
212
  ## 项目模板
145
213
 
146
214
  提供多种项目模板:
package/bin/harness.js CHANGED
@@ -16,7 +16,9 @@ const {
16
16
  report,
17
17
  tracesCommand,
18
18
  diagnoseCommand,
19
- proposeCommand
19
+ proposeCommand,
20
+ status,
21
+ flow
20
22
  } = require('../dist/cli/commands/index');
21
23
 
22
24
  const program = new Command();
@@ -93,6 +95,7 @@ program
93
95
  .option('--project-path <path>', '项目路径')
94
96
  .option('--no-git-hooks', '不创建 Git hooks')
95
97
  .option('--no-github-actions', '不创建 GitHub Actions')
98
+ .option('--print-snippets', '只输出代码片段,不创建文件')
96
99
  .action(async (options) => {
97
100
  await init(options);
98
101
  });
@@ -111,16 +114,21 @@ program
111
114
  });
112
115
 
113
116
  // ========================================
114
- // harness traces
117
+ // harness traces [DEPRECATED]
115
118
  // ========================================
116
119
  program
117
120
  .command('traces [subcommand]')
118
- .description('Execution Trace 分析')
121
+ .description('[已弃用] 请使用 harness status')
119
122
  .option('--hours <n>', '分析最近 N 小时', '1')
120
123
  .option('--constraint <id>', '过滤约束 ID')
121
124
  .option('--format <format>', '输出格式 (json/text)', 'text')
122
125
  .option('--max-age-days <n>', '清理超过 N 天的文件', '30')
123
126
  .action(async (subcommand, options, command) => {
127
+ console.log('⚠️ harness traces 已弃用,请使用 harness status');
128
+ console.log(' harness status # 查看统计');
129
+ console.log(' harness status --detail # 查看详情');
130
+ console.log(' harness status --anomalies # 查看异常');
131
+ console.log();
124
132
  const sub = subcommand || 'stats';
125
133
  await tracesCommand(sub, {
126
134
  hours: parseInt(options.hours, 10),
@@ -131,17 +139,20 @@ program
131
139
  });
132
140
 
133
141
  // ========================================
134
- // harness diagnose
142
+ // harness diagnose [DEPRECATED]
135
143
  // ========================================
136
144
  program
137
145
  .command('diagnose [subcommand]')
138
- .description('约束诊断')
146
+ .description('[已弃用] 请使用 harness flow')
139
147
  .option('--hours <n>', '分析最近 N 小时', '24')
140
148
  .option('--constraint <id>', '过滤约束 ID')
141
149
  .option('--anomaly <id>', '特定异常 ID')
142
150
  .option('--format <format>', '输出格式 (json/text)', 'text')
143
151
  .option('--save', '保存诊断结果', false)
144
152
  .action(async (subcommand, options, command) => {
153
+ console.log('⚠️ harness diagnose 已弃用,请使用 harness flow');
154
+ console.log(' harness flow # 一键执行诊断 + 提案流程');
155
+ console.log();
145
156
  const sub = subcommand || 'list';
146
157
  await diagnoseCommand(sub, {
147
158
  hours: parseInt(options.hours, 10),
@@ -153,11 +164,11 @@ program
153
164
  });
154
165
 
155
166
  // ========================================
156
- // harness propose
167
+ // harness propose [DEPRECATED]
157
168
  // ========================================
158
169
  program
159
170
  .command('propose [subcommand]')
160
- .description('约束提案')
171
+ .description('[已弃用] 请使用 harness flow')
161
172
  .option('--diagnosis <id>', '诊断 ID')
162
173
  .option('--status <status>', '过滤状态')
163
174
  .option('--format <format>', '输出格式 (json/text)', 'text')
@@ -166,6 +177,9 @@ program
166
177
  .option('--reject', '拒绝提案', false)
167
178
  .option('--comment <text>', '审核意见')
168
179
  .action(async (subcommand, options, command) => {
180
+ console.log('⚠️ harness propose 已弃用,请使用 harness flow');
181
+ console.log(' harness flow # 一键执行诊断 + 提案流程');
182
+ console.log();
169
183
  const sub = subcommand || 'list';
170
184
  await proposeCommand(sub, {
171
185
  diagnosisId: options.diagnosis,
@@ -178,5 +192,43 @@ program
178
192
  });
179
193
  });
180
194
 
195
+ // ========================================
196
+ // harness status
197
+ // ========================================
198
+ program
199
+ .command('status')
200
+ .description('显示 Harness 状态、统计、异常检测')
201
+ .option('-p, --project-path <path>', '项目路径')
202
+ .option('-d, --detail', '显示详细信息', false)
203
+ .option('-a, --anomalies', '只显示异常', false)
204
+ .option('--hours <n>', '分析最近 N 小时', '24')
205
+ .action(async (options) => {
206
+ await status({
207
+ projectPath: options.projectPath,
208
+ detail: options.detail,
209
+ anomalies: options.anomalies,
210
+ hours: parseInt(options.hours, 10),
211
+ });
212
+ });
213
+
214
+ // ========================================
215
+ // harness flow
216
+ // ========================================
217
+ program
218
+ .command('flow')
219
+ .description('一键执行诊断 + 提案流程')
220
+ .option('-p, --project-path <path>', '项目路径')
221
+ .option('--from <step>', '从哪个步骤开始 (analyze/diagnose/propose)')
222
+ .option('--auto-apply', '自动应用低风险提案', false)
223
+ .option('--hours <n>', '分析最近 N 小时', '24')
224
+ .action(async (options) => {
225
+ await flow({
226
+ projectPath: options.projectPath,
227
+ from: options.from,
228
+ autoApply: options.autoApply,
229
+ hours: parseInt(options.hours, 10),
230
+ });
231
+ });
232
+
181
233
  // 解析命令行参数
182
234
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAuC,MAAM,wBAAwB,CAAC;AAErG,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiDD;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0EhE;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAgC/B"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAuC,MAAM,wBAAwB,CAAC;AAErG,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiDD;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGhE;AAsED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAgC/B"}
@@ -44,8 +44,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
44
44
  exports.check = check;
45
45
  exports.listLaws = listLaws;
46
46
  const chalk_1 = __importDefault(require("chalk"));
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
47
49
  const checker_1 = require("../../core/constraints/checker");
48
50
  const definitions_1 = require("../../core/constraints/definitions");
51
+ const project_config_loader_1 = require("../../core/project-config-loader");
49
52
  /**
50
53
  * 从 git diff 获取变更的文件
51
54
  */
@@ -88,6 +91,18 @@ function detectTrigger(changedFiles, options) {
88
91
  async function check(options) {
89
92
  console.log(chalk_1.default.blue('🔍 检查约束...'));
90
93
  console.log(chalk_1.default.gray(`预设: ${options.preset}`));
94
+ // 加载项目级自定义约束
95
+ const projectPath = options.projectPath || process.cwd();
96
+ const configLoader = new project_config_loader_1.ProjectConfigLoader(projectPath);
97
+ configLoader.load();
98
+ if (configLoader.hasCustomConfig()) {
99
+ const merged = configLoader.mergeConstraints();
100
+ checker_1.constraintChecker.setCustomConfig(merged);
101
+ console.log(chalk_1.default.gray(`自定义约束: ${merged.custom.length} 条`));
102
+ if (merged.disabled.length > 0) {
103
+ console.log(chalk_1.default.gray(`已禁用约束: ${merged.disabled.join(', ')}`));
104
+ }
105
+ }
91
106
  // 获取变更文件
92
107
  const changedFiles = await getChangedFiles(options.staged);
93
108
  if (changedFiles.length > 0) {
@@ -152,6 +167,68 @@ async function check(options) {
152
167
  }
153
168
  console.log();
154
169
  console.log(chalk_1.default.green('✅ 约束检查通过'));
170
+ // 智能提示
171
+ const hint = await getSmartHint(projectPath);
172
+ if (hint) {
173
+ console.log();
174
+ console.log(chalk_1.default.gray('────────────────────────────────────'));
175
+ console.log(hint);
176
+ console.log(chalk_1.default.gray('────────────────────────────────────'));
177
+ }
178
+ }
179
+ /**
180
+ * 智能提示:检查是否需要提示用户下一步操作
181
+ */
182
+ async function getSmartHint(projectPath) {
183
+ const tracesPath = path.join(projectPath, '.harness', 'traces', 'execution.log');
184
+ const statePath = path.join(projectPath, '.harness', '.state.json');
185
+ // 检查 trace 文件是否存在
186
+ if (!fs.existsSync(tracesPath)) {
187
+ return null;
188
+ }
189
+ // 读取 trace 记录数
190
+ const tracesContent = fs.readFileSync(tracesPath, 'utf-8');
191
+ const lines = tracesContent.trim().split('\n').filter(Boolean);
192
+ const traceCount = lines.length;
193
+ // 读取状态
194
+ let state = {};
195
+ if (fs.existsSync(statePath)) {
196
+ state = JSON.parse(fs.readFileSync(statePath, 'utf-8'));
197
+ }
198
+ state.shownHints = state.shownHints || [];
199
+ const hints = [];
200
+ // 条件 1: 记录数首次达到 50
201
+ if (traceCount >= 50 && !state.shownHints.includes('trace_50')) {
202
+ hints.push('📊 记录已足够,运行 harness status 查看统计');
203
+ state.shownHints.push('trace_50');
204
+ }
205
+ // 条件 2: 记录数达到 100 且从未运行过诊断
206
+ if (traceCount >= 100 && !state.lastDiagnoseRun && !state.shownHints.includes('diagnose_suggest')) {
207
+ hints.push('💡 数据充足,建议运行 harness diagnose 查看诊断');
208
+ state.shownHints.push('diagnose_suggest');
209
+ }
210
+ // 条件 3: 检查异常趋势(简单检查绕过率)
211
+ const bypassCount = lines.filter(line => {
212
+ try {
213
+ const trace = JSON.parse(line);
214
+ return trace.result === 'bypassed';
215
+ }
216
+ catch {
217
+ return false;
218
+ }
219
+ }).length;
220
+ const bypassRate = traceCount > 10 ? bypassCount / traceCount : 0;
221
+ if (bypassRate > 0.3 && !state.shownHints.includes('high_bypass')) {
222
+ hints.push('⚠️ 发现异常趋势,建议运行 harness status 查看详情');
223
+ state.shownHints.push('high_bypass');
224
+ }
225
+ // 保存状态
226
+ if (hints.length > 0) {
227
+ fs.mkdirSync(path.dirname(statePath), { recursive: true });
228
+ fs.writeFileSync(statePath, JSON.stringify(state, null, 2));
229
+ return hints.join('\n');
230
+ }
231
+ return null;
155
232
  }
156
233
  /**
157
234
  * 列出所有约束
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * harness flow 命令
3
+ *
4
+ * 一键执行诊断 + 提案流程
5
+ */
6
+ export interface FlowOptions {
7
+ /** 项目路径 */
8
+ projectPath?: string;
9
+ /** 从哪个步骤开始 */
10
+ from?: 'analyze' | 'diagnose' | 'propose';
11
+ /** 自动应用低风险提案 */
12
+ autoApply?: boolean;
13
+ /** 时间范围(小时) */
14
+ hours?: number;
15
+ }
16
+ /**
17
+ * 执行流程
18
+ */
19
+ export declare function flow(options: FlowOptions): Promise<void>;
20
+ //# sourceMappingURL=flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/flow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,gBAAgB;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuBD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2L9D"}