@dommaker/harness 1.8.1 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +10 -13
- package/dist/cli/commands/check.d.ts +3 -3
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +41 -78
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/constraints-report.d.ts +2 -10
- package/dist/cli/commands/constraints-report.d.ts.map +1 -1
- package/dist/cli/commands/constraints-report.js +4 -57
- package/dist/cli/commands/constraints-report.js.map +1 -1
- package/dist/cli/commands/constraints-retire.d.ts +9 -23
- package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
- package/dist/cli/commands/constraints-retire.js +39 -121
- package/dist/cli/commands/constraints-retire.js.map +1 -1
- package/dist/cli/commands/constraints.d.ts +3 -8
- package/dist/cli/commands/constraints.d.ts.map +1 -1
- package/dist/cli/commands/constraints.js +8 -23
- package/dist/cli/commands/constraints.js.map +1 -1
- package/dist/cli/commands/definitions.js +2 -2
- package/dist/cli/commands/init.d.ts +0 -32
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +7 -149
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +14 -17
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/scaffold-templates.d.ts +0 -2
- package/dist/cli/commands/scaffold-templates.d.ts.map +1 -1
- package/dist/cli/commands/scaffold-templates.js +2 -37
- package/dist/cli/commands/scaffold-templates.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts +0 -2
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +0 -10
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/cli/commands/status.js +10 -10
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/sync-docs/agents-syncer.d.ts +0 -2
- package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/agents-syncer.js +4 -23
- package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
- package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +22 -0
- package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/capabilities-syncer.js +113 -8
- package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
- package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/index.js +36 -4
- package/dist/cli/commands/sync-docs/index.js.map +1 -1
- package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
- package/dist/core/constraints/capabilities-parser.js +16 -4
- package/dist/core/constraints/capabilities-parser.js.map +1 -1
- package/dist/core/constraints/checker.d.ts +15 -24
- package/dist/core/constraints/checker.d.ts.map +1 -1
- package/dist/core/constraints/checker.js +33 -72
- package/dist/core/constraints/checker.js.map +1 -1
- package/dist/core/constraints/checkers/docs-freshness.js +1 -1
- package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
- package/dist/core/constraints/checkers/governance-presence.d.ts +2 -1
- package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
- package/dist/core/constraints/checkers/governance-presence.js +4 -3
- package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
- package/dist/core/constraints/checkers/index.d.ts +1 -1
- package/dist/core/constraints/checkers/index.d.ts.map +1 -1
- package/dist/core/constraints/checkers/index.js +4 -8
- package/dist/core/constraints/checkers/index.js.map +1 -1
- package/dist/core/constraints/checkers/iron-flags.d.ts +3 -4
- package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
- package/dist/core/constraints/checkers/iron-flags.js +4 -5
- package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
- package/dist/core/constraints/checkers/no-test-simplification.js +1 -1
- package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
- package/dist/core/constraints/checkers/types.d.ts +1 -1
- package/dist/core/constraints/checkers/types.js +1 -1
- package/dist/core/constraints/definitions/guidelines.d.ts +4 -4
- package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
- package/dist/core/constraints/definitions/guidelines.js +9 -25
- package/dist/core/constraints/definitions/guidelines.js.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.d.ts +4 -4
- package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.js +10 -81
- package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
- package/dist/core/constraints/definitions.d.ts +7 -9
- package/dist/core/constraints/definitions.d.ts.map +1 -1
- package/dist/core/constraints/definitions.js +13 -16
- package/dist/core/constraints/definitions.js.map +1 -1
- package/dist/core/constraints/index.d.ts +2 -5
- package/dist/core/constraints/index.d.ts.map +1 -1
- package/dist/core/constraints/index.js +3 -13
- package/dist/core/constraints/index.js.map +1 -1
- package/dist/core/constraints/injection-writer.d.ts +10 -38
- package/dist/core/constraints/injection-writer.d.ts.map +1 -1
- package/dist/core/constraints/injection-writer.js +17 -54
- package/dist/core/constraints/injection-writer.js.map +1 -1
- package/dist/core/constraints/run-env.d.ts +1 -10
- package/dist/core/constraints/run-env.d.ts.map +1 -1
- package/dist/core/constraints/run-env.js +1 -22
- package/dist/core/constraints/run-env.js.map +1 -1
- package/dist/core/constraints/usage-report.d.ts +5 -7
- package/dist/core/constraints/usage-report.d.ts.map +1 -1
- package/dist/core/constraints/usage-report.js +5 -10
- package/dist/core/constraints/usage-report.js.map +1 -1
- package/dist/core/effective-constraints.d.ts +12 -22
- package/dist/core/effective-constraints.d.ts.map +1 -1
- package/dist/core/effective-constraints.js +13 -30
- package/dist/core/effective-constraints.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -9
- package/dist/core/index.js.map +1 -1
- package/dist/core/project-config-loader.d.ts +4 -42
- package/dist/core/project-config-loader.d.ts.map +1 -1
- package/dist/core/project-config-loader.js +16 -125
- package/dist/core/project-config-loader.js.map +1 -1
- package/dist/core/validators/passes-gate.d.ts +2 -2
- package/dist/core/validators/passes-gate.js +6 -6
- package/dist/core/validators/passes-gate.js.map +1 -1
- package/dist/hooks/bootstrap.d.ts +9 -12
- package/dist/hooks/bootstrap.d.ts.map +1 -1
- package/dist/hooks/bootstrap.js +9 -31
- package/dist/hooks/bootstrap.js.map +1 -1
- package/dist/hooks/index.d.ts +5 -7
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -10
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +9 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -23
- package/dist/index.js.map +1 -1
- package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
- package/dist/monitoring/trace-analyzer.js +11 -12
- package/dist/monitoring/trace-analyzer.js.map +1 -1
- package/dist/monitoring/traces.d.ts +4 -4
- package/dist/monitoring/traces.d.ts.map +1 -1
- package/dist/monitoring/traces.js +8 -8
- package/dist/monitoring/traces.js.map +1 -1
- package/dist/presets/standard.d.ts +8 -10
- package/dist/presets/standard.d.ts.map +1 -1
- package/dist/presets/standard.js +10 -16
- package/dist/presets/standard.js.map +1 -1
- package/dist/types/constraint.d.ts +24 -35
- package/dist/types/constraint.d.ts.map +1 -1
- package/dist/types/constraint.js +8 -7
- package/dist/types/constraint.js.map +1 -1
- package/dist/types/passes-gate.d.ts +5 -5
- package/dist/types/passes-gate.d.ts.map +1 -1
- package/dist/types/project-config.d.ts +8 -66
- package/dist/types/project-config.d.ts.map +1 -1
- package/dist/types/project-config.js +3 -2
- package/dist/types/project-config.js.map +1 -1
- package/dist/types/trace.d.ts +8 -10
- package/dist/types/trace.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/CONTEXT.md +3 -3
- package/src/__tests__/checker-extra.test.ts +37 -61
- package/src/__tests__/checker.test.ts +10 -115
- package/src/__tests__/effective-constraints.test.ts +18 -83
- package/src/__tests__/iron-laws.test.ts +71 -90
- package/src/__tests__/passes-gate-check.test.ts +2 -2
- package/src/__tests__/project-config-loader-extra.test.ts +22 -123
- package/src/__tests__/project-config-loader.test.ts +5 -33
- package/src/__tests__/public-exports.test.ts +31 -11
- package/src/__tests__/public-type-surface.test.ts +2 -13
- package/src/__tests__/public-value-surface.test.ts +1 -7
- package/src/__tests__/skip-semantics.test.ts +21 -37
- package/src/__tests__/trace-analyzer-extra.test.ts +14 -14
- package/src/__tests__/trace-analyzer.test.ts +21 -21
- package/src/__tests__/trace-collector.test.ts +22 -22
- package/src/__tests__/traces.test.ts +27 -28
- package/src/cli/commands/CONTEXT.md +12 -9
- package/src/cli/commands/__tests__/check-read-count.test.ts +4 -15
- package/src/cli/commands/__tests__/check-skip-output.test.ts +14 -14
- package/src/cli/commands/__tests__/check.test.ts +14 -31
- package/src/cli/commands/__tests__/constraints-report.test.ts +12 -80
- package/src/cli/commands/__tests__/constraints-retire.test.ts +42 -231
- package/src/cli/commands/__tests__/init-governance-io.test.ts +12 -58
- package/src/cli/commands/__tests__/init-ondisk.test.ts +12 -20
- package/src/cli/commands/__tests__/init.test.ts +0 -11
- package/src/cli/commands/__tests__/project-path-anchoring.test.ts +2 -2
- package/src/cli/commands/__tests__/registry.test.ts +39 -3
- package/src/cli/commands/__tests__/report-extra.test.ts +4 -4
- package/src/cli/commands/__tests__/report.test.ts +1 -1
- package/src/cli/commands/__tests__/scaffold.test.ts +4 -14
- package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +3 -3
- package/src/cli/commands/__tests__/status-extra.test.ts +14 -14
- package/src/cli/commands/__tests__/status.test.ts +12 -12
- package/src/cli/commands/__tests__/sync-docs-agents.test.ts +1 -1
- package/src/cli/commands/__tests__/sync-docs-table-layout.test.ts +259 -0
- package/src/cli/commands/check.ts +43 -82
- package/src/cli/commands/constraints-report.ts +4 -59
- package/src/cli/commands/constraints-retire.ts +49 -154
- package/src/cli/commands/constraints.ts +11 -26
- package/src/cli/commands/definitions.ts +2 -2
- package/src/cli/commands/init.ts +8 -179
- package/src/cli/commands/report.ts +19 -23
- package/src/cli/commands/scaffold-templates.ts +1 -37
- package/src/cli/commands/scaffold.ts +0 -11
- package/src/cli/commands/status.ts +10 -10
- package/src/cli/commands/sync-docs/agents-syncer.ts +4 -25
- package/src/cli/commands/sync-docs/capabilities-syncer.ts +139 -9
- package/src/cli/commands/sync-docs/index.ts +41 -4
- package/src/core/CONTEXT.md +9 -9
- package/src/core/constraints/__tests__/capability-counts.test.ts +5 -5
- package/src/core/constraints/__tests__/collect-constraints.test.ts +13 -8
- package/src/core/constraints/__tests__/git-evidence.test.ts +4 -7
- package/src/core/constraints/__tests__/injection-writer.test.ts +8 -61
- package/src/core/constraints/__tests__/run-env.test.ts +5 -34
- package/src/core/constraints/__tests__/trace-injection.test.ts +1 -1
- package/src/core/constraints/capabilities-parser.ts +17 -5
- package/src/core/constraints/checker.ts +39 -88
- package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +5 -8
- package/src/core/constraints/checkers/__tests__/governance-presence.test.ts +1 -53
- package/src/core/constraints/checkers/__tests__/iron-flags.test.ts +5 -25
- package/src/core/constraints/checkers/docs-freshness.ts +1 -1
- package/src/core/constraints/checkers/governance-presence.ts +4 -3
- package/src/core/constraints/checkers/index.ts +4 -10
- package/src/core/constraints/checkers/iron-flags.ts +3 -12
- package/src/core/constraints/checkers/no-test-simplification.ts +1 -1
- package/src/core/constraints/checkers/types.ts +1 -1
- package/src/core/constraints/definitions/guidelines.ts +8 -25
- package/src/core/constraints/definitions/iron-laws.ts +9 -82
- package/src/core/constraints/definitions.ts +14 -15
- package/src/core/constraints/index.ts +4 -19
- package/src/core/constraints/injection-writer.ts +16 -61
- package/src/core/constraints/run-env.ts +1 -33
- package/src/core/constraints/usage-report.ts +8 -15
- package/src/core/effective-constraints.ts +14 -45
- package/src/core/index.ts +3 -10
- package/src/core/project-config-loader.ts +20 -145
- package/src/core/validators/passes-gate.ts +6 -6
- package/src/failure/CONTEXT.md +1 -1
- package/src/hooks/CONTEXT.md +12 -22
- package/src/hooks/__tests__/bootstrap.test.ts +24 -75
- package/src/hooks/bootstrap.ts +9 -48
- package/src/hooks/index.ts +5 -20
- package/src/index.ts +9 -31
- package/src/monitoring/__tests__/trace-file-anchoring.test.ts +1 -1
- package/src/monitoring/__tests__/traces.test.ts +22 -22
- package/src/monitoring/trace-analyzer.ts +12 -13
- package/src/monitoring/traces.ts +8 -8
- package/src/presets/__tests__/standard.test.ts +12 -16
- package/src/presets/standard.ts +14 -23
- package/src/types/__tests__/types.test.ts +3 -3
- package/src/types/constraint.ts +26 -40
- package/src/types/passes-gate.ts +5 -5
- package/src/types/project-config.ts +8 -77
- package/src/types/trace.ts +8 -11
- package/dist/core/constraints/agent-prompt-renderer.d.ts +0 -32
- package/dist/core/constraints/agent-prompt-renderer.d.ts.map +0 -1
- package/dist/core/constraints/agent-prompt-renderer.js +0 -55
- package/dist/core/constraints/agent-prompt-renderer.js.map +0 -1
- package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +0 -6
- package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +0 -1
- package/dist/core/constraints/checkers/no-bypass-checkpoint.js +0 -40
- package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +0 -1
- package/dist/core/constraints/definitions/prompts.d.ts +0 -12
- package/dist/core/constraints/definitions/prompts.d.ts.map +0 -1
- package/dist/core/constraints/definitions/prompts.js +0 -400
- package/dist/core/constraints/definitions/prompts.js.map +0 -1
- package/dist/core/constraints/injection-drift.d.ts +0 -61
- package/dist/core/constraints/injection-drift.d.ts.map +0 -1
- package/dist/core/constraints/injection-drift.js +0 -131
- package/dist/core/constraints/injection-drift.js.map +0 -1
- package/dist/core/constraints/injection-renderer.d.ts +0 -23
- package/dist/core/constraints/injection-renderer.d.ts.map +0 -1
- package/dist/core/constraints/injection-renderer.js +0 -44
- package/dist/core/constraints/injection-renderer.js.map +0 -1
- package/dist/hooks/config.d.ts +0 -30
- package/dist/hooks/config.d.ts.map +0 -1
- package/dist/hooks/config.js +0 -34
- package/dist/hooks/config.js.map +0 -1
- package/dist/hooks/pipeline.d.ts +0 -54
- package/dist/hooks/pipeline.d.ts.map +0 -1
- package/dist/hooks/pipeline.js +0 -173
- package/dist/hooks/pipeline.js.map +0 -1
- package/dist/hooks/registry.d.ts +0 -70
- package/dist/hooks/registry.d.ts.map +0 -1
- package/dist/hooks/registry.js +0 -141
- package/dist/hooks/registry.js.map +0 -1
- package/dist/hooks/types.d.ts +0 -113
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/hooks/types.js +0 -9
- package/dist/hooks/types.js.map +0 -1
- package/src/__tests__/hooks-pipeline.test.ts +0 -201
- package/src/cli/commands/__tests__/check-drift.test.ts +0 -158
- package/src/cli/commands/__tests__/init-injection.test.ts +0 -466
- package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +0 -129
- package/src/core/constraints/__tests__/injection-drift.test.ts +0 -247
- package/src/core/constraints/agent-prompt-renderer.ts +0 -67
- package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +0 -76
- package/src/core/constraints/checkers/no-bypass-checkpoint.ts +0 -40
- package/src/core/constraints/definitions/prompts.ts +0 -414
- package/src/core/constraints/injection-drift.ts +0 -142
- package/src/core/constraints/injection-renderer.ts +0 -44
- package/src/hooks/__tests__/config.test.ts +0 -19
- package/src/hooks/__tests__/pipeline.test.ts +0 -195
- package/src/hooks/__tests__/registry.test.ts +0 -115
- package/src/hooks/config.ts +0 -33
- package/src/hooks/pipeline.ts +0 -202
- package/src/hooks/registry.ts +0 -166
- package/src/hooks/types.ts +0 -120
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* 约束预设(纯数据)
|
|
3
3
|
*
|
|
4
4
|
* 预设定义哪些内置约束被启用。筛选与合并逻辑统一在
|
|
5
|
-
* core/project-config-loader.ts 的 mergeConstraints
|
|
5
|
+
* core/project-config-loader.ts 的 mergeConstraints(生效集链路),
|
|
6
6
|
* 本文件只保留预设数据,不再含函数。
|
|
7
7
|
*
|
|
8
|
-
* ADR-
|
|
8
|
+
* ADR-0029:桶按 severity 命名(errors / warnings),取代三层命名。
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* 预设配置
|
|
@@ -13,12 +13,10 @@
|
|
|
13
13
|
export interface PresetConfig {
|
|
14
14
|
/** 预设名称 */
|
|
15
15
|
name: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
/** 启用的提示 ID 列表(null 表示全部启用) */
|
|
21
|
-
prompts: string[] | null;
|
|
16
|
+
/** 启用的 severity='error' 约束 ID 列表(null 表示全部启用) */
|
|
17
|
+
errors: string[] | null;
|
|
18
|
+
/** 启用的 severity='warning' 约束 ID 列表(null 表示全部启用) */
|
|
19
|
+
warnings: string[] | null;
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
22
|
* 严格预设
|
|
@@ -29,13 +27,13 @@ export declare const STRICT_PRESET: PresetConfig;
|
|
|
29
27
|
/**
|
|
30
28
|
* 标准预设
|
|
31
29
|
*
|
|
32
|
-
*
|
|
30
|
+
* 全部约束启用
|
|
33
31
|
*/
|
|
34
32
|
export declare const STANDARD_PRESET: PresetConfig;
|
|
35
33
|
/**
|
|
36
34
|
* 宽松预设
|
|
37
35
|
*
|
|
38
|
-
*
|
|
36
|
+
* 仅启用核心 error 级与凭证扫描
|
|
39
37
|
*/
|
|
40
38
|
export declare const RELAXED_PRESET: PresetConfig;
|
|
41
39
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IAEb
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,YAI3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,YAI7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,YAQ5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAIxD,CAAC"}
|
package/dist/presets/standard.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* 约束预设(纯数据)
|
|
4
4
|
*
|
|
5
5
|
* 预设定义哪些内置约束被启用。筛选与合并逻辑统一在
|
|
6
|
-
* core/project-config-loader.ts 的 mergeConstraints
|
|
6
|
+
* core/project-config-loader.ts 的 mergeConstraints(生效集链路),
|
|
7
7
|
* 本文件只保留预设数据,不再含函数。
|
|
8
8
|
*
|
|
9
|
-
* ADR-
|
|
9
|
+
* ADR-0029:桶按 severity 命名(errors / warnings),取代三层命名。
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.PRESETS_BY_NAME = exports.RELAXED_PRESET = exports.STANDARD_PRESET = exports.STRICT_PRESET = void 0;
|
|
@@ -17,38 +17,32 @@ exports.PRESETS_BY_NAME = exports.RELAXED_PRESET = exports.STANDARD_PRESET = exp
|
|
|
17
17
|
*/
|
|
18
18
|
exports.STRICT_PRESET = {
|
|
19
19
|
name: 'strict',
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
prompts: null, // 全部启用
|
|
20
|
+
errors: null, // 全部启用
|
|
21
|
+
warnings: null, // 全部启用
|
|
23
22
|
};
|
|
24
23
|
/**
|
|
25
24
|
* 标准预设
|
|
26
25
|
*
|
|
27
|
-
*
|
|
26
|
+
* 全部约束启用
|
|
28
27
|
*/
|
|
29
28
|
exports.STANDARD_PRESET = {
|
|
30
29
|
name: 'standard',
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
prompts: null, // 全部启用
|
|
30
|
+
errors: null, // 全部启用
|
|
31
|
+
warnings: null, // 全部启用
|
|
34
32
|
};
|
|
35
33
|
/**
|
|
36
34
|
* 宽松预设
|
|
37
35
|
*
|
|
38
|
-
*
|
|
36
|
+
* 仅启用核心 error 级与凭证扫描
|
|
39
37
|
*/
|
|
40
38
|
exports.RELAXED_PRESET = {
|
|
41
39
|
name: 'relaxed',
|
|
42
|
-
|
|
40
|
+
errors: [
|
|
43
41
|
'no_completion_without_verification',
|
|
44
|
-
'incremental_progress',
|
|
45
|
-
'no_implementation_without_requirement',
|
|
46
42
|
],
|
|
47
|
-
|
|
48
|
-
'no_bypass_checkpoint',
|
|
43
|
+
warnings: [
|
|
49
44
|
'no_hardcoded_credentials',
|
|
50
45
|
],
|
|
51
|
-
prompts: [], // 禁用提示
|
|
52
46
|
};
|
|
53
47
|
/**
|
|
54
48
|
* 预设名 → 预设数据
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgBH;;;;GAIG;AACU,QAAA,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,IAAI,EAAK,OAAO;IACxB,QAAQ,EAAE,IAAI,EAAG,OAAO;CACzB,CAAC;AAEF;;;;GAIG;AACU,QAAA,eAAe,GAAiB;IAC3C,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI,EAAK,OAAO;IACxB,QAAQ,EAAE,IAAI,EAAG,OAAO;CACzB,CAAC;AAEF;;;;GAIG;AACU,QAAA,cAAc,GAAiB;IAC1C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE;QACN,oCAAoC;KACrC;IACD,QAAQ,EAAE;QACR,0BAA0B;KAC3B;CACF,CAAC;AAEF;;;;;GAKG;AACU,QAAA,eAAe,GAAiC;IAC3D,MAAM,EAAE,qBAAa;IACrB,QAAQ,EAAE,uBAAe;IACzB,OAAO,EAAE,sBAAc;CACxB,CAAC"}
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 约束类型定义
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* - check:必须带真实 checker,参与运行时检查与 trace 统计
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - prompt
|
|
4
|
+
* severity 显式模型(ADR-0029,取代 ADR-0001 的三层命名与 kind 二元模型):
|
|
5
|
+
* - 全部约束 kind='check':必须带真实 checker,参与运行时检查与 trace 统计
|
|
6
|
+
* - severity 直接写死在定义上:error = 违规即阻断;warning = 违规告警不阻断;
|
|
7
|
+
* info = 仅记录
|
|
8
|
+
* - 纯文本提示层(kind='prompt' / promptInjection / 注入段渲染)已整体关停,
|
|
9
|
+
* 文本规则由消费方手写治理段承接
|
|
9
10
|
*/
|
|
10
11
|
/**
|
|
11
12
|
* 约束 ID
|
|
12
13
|
*/
|
|
13
14
|
export type ConstraintId = string;
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* 约束类别(ADR-0029 收窄为单值):check = 可执行检查
|
|
16
17
|
*/
|
|
17
|
-
export type ConstraintKind = 'check'
|
|
18
|
+
export type ConstraintKind = 'check';
|
|
18
19
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* check 层只使用 'iron_law' | 'guideline';prompt 类统一为 'prompt'。
|
|
20
|
+
* 约束严重性(显式字段,取代三层 level 命名)
|
|
22
21
|
*/
|
|
23
|
-
export type
|
|
22
|
+
export type ConstraintSeverity = 'error' | 'warning' | 'info';
|
|
24
23
|
/**
|
|
25
24
|
* 约束触发条件(开放扩展)
|
|
26
25
|
*
|
|
@@ -35,34 +34,24 @@ export interface Constraint {
|
|
|
35
34
|
/** 约束 ID */
|
|
36
35
|
id: ConstraintId;
|
|
37
36
|
/**
|
|
38
|
-
* 约束类别(ADR-
|
|
39
|
-
*
|
|
40
|
-
* - prompt:纯文本提示,仅参与注入,不执行 checker
|
|
37
|
+
* 约束类别(ADR-0029):恒为 'check'——必须带真实 checker,参与运行时检查;
|
|
38
|
+
* 纯文本提示(kind='prompt')已随文本注入层一并关停
|
|
41
39
|
*/
|
|
42
40
|
kind: ConstraintKind;
|
|
43
41
|
/** 约束规则(英文) */
|
|
44
42
|
rule: string;
|
|
45
43
|
/** 约束消息(中文) */
|
|
46
44
|
message: string;
|
|
47
|
-
/**
|
|
48
|
-
|
|
45
|
+
/** 约束严重性:error = 违规即阻断;warning = 违规告警不阻断;info = 仅记录 */
|
|
46
|
+
severity: ConstraintSeverity;
|
|
49
47
|
/** 触发条件(支持多个 trigger) */
|
|
50
48
|
trigger: ConstraintTrigger | ConstraintTrigger[];
|
|
51
49
|
/** 强制执行的技能/步骤 */
|
|
52
50
|
enforcement: string;
|
|
53
51
|
/** 约束描述 */
|
|
54
52
|
description?: string;
|
|
55
|
-
/** 软约束 prompt 注入(引导 Agent 行为的提示文本) */
|
|
56
|
-
promptInjection?: string;
|
|
57
|
-
/** 是否注入 Agent prompt(默认 iron_law=true, guideline=false) */
|
|
58
|
-
injectPrompt?: boolean;
|
|
59
53
|
/** 是否启用 */
|
|
60
54
|
enabled?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* 适用场景标签(prompt 类专用,如 'agent-skill'、'llm-app')。
|
|
63
|
-
* 未标注表示通用场景。消费端(init 注入 / studio 路由)可按标签过滤。
|
|
64
|
-
*/
|
|
65
|
-
appliesTo?: string[];
|
|
66
55
|
}
|
|
67
56
|
/**
|
|
68
57
|
* 约束检查结果
|
|
@@ -70,8 +59,8 @@ export interface Constraint {
|
|
|
70
59
|
export interface ConstraintResult {
|
|
71
60
|
/** 约束 ID */
|
|
72
61
|
id: ConstraintId;
|
|
73
|
-
/**
|
|
74
|
-
|
|
62
|
+
/** 约束严重性 */
|
|
63
|
+
severity: ConstraintSeverity;
|
|
75
64
|
/** 是否满足 */
|
|
76
65
|
satisfied: boolean;
|
|
77
66
|
/**
|
|
@@ -140,9 +129,9 @@ export interface ConstraintContext {
|
|
|
140
129
|
hasFailingTest?: boolean;
|
|
141
130
|
/** 是否已进行复用检查 */
|
|
142
131
|
hasReuseCheck?: boolean;
|
|
143
|
-
/**
|
|
132
|
+
/** 是否只处理单个任务(证据标志,当前无内置 checker 消费,供自定义约束用) */
|
|
144
133
|
hasSingleTask?: boolean;
|
|
145
|
-
/**
|
|
134
|
+
/** 是否有需求文档(证据标志,当前无内置 checker 消费,供自定义约束用) */
|
|
146
135
|
hasRequirement?: boolean;
|
|
147
136
|
/** worktree 路径(用于 worktree 相关检查) */
|
|
148
137
|
worktreePath?: string;
|
|
@@ -155,14 +144,14 @@ export declare class ConstraintViolationError extends Error {
|
|
|
155
144
|
constructor(result: ConstraintResult);
|
|
156
145
|
}
|
|
157
146
|
/**
|
|
158
|
-
*
|
|
147
|
+
* 约束检查结果(按 severity 分桶)
|
|
159
148
|
*/
|
|
160
149
|
export interface ConstraintCheckResult {
|
|
161
|
-
/**
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
|
|
165
|
-
/**
|
|
150
|
+
/** severity='error' 的检查结果(必须全部通过) */
|
|
151
|
+
errors: ConstraintResult[];
|
|
152
|
+
/** severity='warning' 的检查结果(警告,不阻止) */
|
|
153
|
+
warnings: ConstraintResult[];
|
|
154
|
+
/** 是否通过(error 级全部通过) */
|
|
166
155
|
passed: boolean;
|
|
167
156
|
/** 警告数量 */
|
|
168
157
|
warningCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":"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"}
|
package/dist/types/constraint.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* 约束类型定义
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* - check:必须带真实 checker,参与运行时检查与 trace 统计
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - prompt
|
|
5
|
+
* severity 显式模型(ADR-0029,取代 ADR-0001 的三层命名与 kind 二元模型):
|
|
6
|
+
* - 全部约束 kind='check':必须带真实 checker,参与运行时检查与 trace 统计
|
|
7
|
+
* - severity 直接写死在定义上:error = 违规即阻断;warning = 违规告警不阻断;
|
|
8
|
+
* info = 仅记录
|
|
9
|
+
* - 纯文本提示层(kind='prompt' / promptInjection / 注入段渲染)已整体关停,
|
|
10
|
+
* 文本规则由消费方手写治理段承接
|
|
10
11
|
*/
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.ConstraintViolationError = void 0;
|
|
@@ -16,8 +17,8 @@ exports.ConstraintViolationError = void 0;
|
|
|
16
17
|
class ConstraintViolationError extends Error {
|
|
17
18
|
result;
|
|
18
19
|
constructor(result) {
|
|
19
|
-
//
|
|
20
|
-
// error.message 是判定证据唯一的外溢面(harness#119)
|
|
20
|
+
// severity='error' 的违规在 checkConstraints 处直接 throw,CLI 的结构化输出块
|
|
21
|
+
// 走不到这里,error.message 是判定证据唯一的外溢面(harness#119)
|
|
21
22
|
const detail = result.evidence?.length
|
|
22
23
|
? `:\n${result.evidence.map((line) => ` - ${line}`).join('\n')}`
|
|
23
24
|
: '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AA+KH;;GAEG;AACH,MAAa,wBAAyB,SAAQ,KAAK;IACjC,MAAM,CAAmB;IAEzC,YAAY,MAAwB;QAClC,+DAA+D;QAC/D,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM;YACpC,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,sBAAsB,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAbD,4DAaC"}
|
|
@@ -69,14 +69,14 @@ export interface TestResult {
|
|
|
69
69
|
* PassesGate 验证违规
|
|
70
70
|
*/
|
|
71
71
|
export interface PassesGateViolation {
|
|
72
|
-
/**
|
|
72
|
+
/** 约束 ID */
|
|
73
73
|
id: string;
|
|
74
|
-
/**
|
|
74
|
+
/** 约束规则 */
|
|
75
75
|
rule: string;
|
|
76
76
|
/** 中文消息 */
|
|
77
77
|
message: string;
|
|
78
|
-
/**
|
|
79
|
-
|
|
78
|
+
/** 约束严重性(PassesGate 违规恒为阻断级) */
|
|
79
|
+
severity: 'error';
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* PassesGate check() 结果
|
|
@@ -84,7 +84,7 @@ export interface PassesGateViolation {
|
|
|
84
84
|
export interface PassesGateCheckResult {
|
|
85
85
|
/** 是否允许标记完成 */
|
|
86
86
|
allowed: boolean;
|
|
87
|
-
/**
|
|
87
|
+
/** 阻断级违规列表 */
|
|
88
88
|
violations?: PassesGateViolation[];
|
|
89
89
|
/** 原始测试结果 */
|
|
90
90
|
testResult?: TestResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passes-gate.d.ts","sourceRoot":"","sources":["../../src/types/passes-gate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAEhB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU;IACV,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,eAAe;IACf,MAAM,EAAE,OAAO,CAAC;IAEhB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,
|
|
1
|
+
{"version":3,"file":"passes-gate.d.ts","sourceRoot":"","sources":["../../src/types/passes-gate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAEhB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU;IACV,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,eAAe;IACf,MAAM,EAAE,OAAO,CAAC;IAEhB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IAEX,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IAEjB,cAAc;IACd,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAEnC,aAAa;IACb,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB"}
|
|
@@ -1,51 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 项目级约束配置
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 允许项目启用/禁用 harness 内置约束(ADR-0029:项目自定义纯文本约束
|
|
5
|
+
* 已随文本注入层关停一并退役,文本规则由项目手写治理段承接)
|
|
5
6
|
*/
|
|
6
|
-
import type { Constraint
|
|
7
|
-
/**
|
|
8
|
-
* 自定义约束定义
|
|
9
|
-
*/
|
|
10
|
-
export interface CustomConstraintDefinition {
|
|
11
|
-
/** 约束 ID */
|
|
12
|
-
id: string;
|
|
13
|
-
/** 约束层级(可选,缺省 guideline) */
|
|
14
|
-
level?: ConstraintLevel;
|
|
15
|
-
/** 约束规则(可选) */
|
|
16
|
-
rule?: string;
|
|
17
|
-
/** 约束消息(可选) */
|
|
18
|
-
message?: string;
|
|
19
|
-
/** 触发条件(可选) */
|
|
20
|
-
trigger?: string | string[];
|
|
21
|
-
/** 描述(可选) */
|
|
22
|
-
description?: string;
|
|
23
|
-
/**
|
|
24
|
-
* Prompt 注入文本(可选)
|
|
25
|
-
*
|
|
26
|
-
* 自定义约束统一 kind='prompt'(无 checker),该字段是进入 CLAUDE.md
|
|
27
|
-
* 注入段(renderConstraintsSection)的唯一通道——缺省不出现在注入段,
|
|
28
|
-
* 与内置无 promptInjection 的 check 条目行为一致。
|
|
29
|
-
*/
|
|
30
|
-
promptInjection?: string;
|
|
31
|
-
/** 是否启用(可选,默认 true) */
|
|
32
|
-
enabled?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* 退役元数据(studio#82 D6 统一落点)
|
|
35
|
-
*
|
|
36
|
-
* 存在即视为已退役:不进生效集、不注入 CLAUDE.md。恢复 = 删除该段。
|
|
37
|
-
* 落点在 custom-constraints.yml 条目内(一处真相,不拆 config.yml 第二处)。
|
|
38
|
-
*/
|
|
39
|
-
retired?: {
|
|
40
|
-
at?: string;
|
|
41
|
-
reason?: string;
|
|
42
|
-
stats?: {
|
|
43
|
-
total: number;
|
|
44
|
-
fail: number;
|
|
45
|
-
failRate: number;
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
}
|
|
7
|
+
import type { Constraint } from './constraint';
|
|
49
8
|
/**
|
|
50
9
|
* 文档同步配置
|
|
51
10
|
*/
|
|
@@ -220,23 +179,12 @@ export interface ProjectConfig {
|
|
|
220
179
|
preset?: 'strict' | 'standard' | 'relaxed';
|
|
221
180
|
/** CI 接线平台(harness#143,缺省 github) */
|
|
222
181
|
ci?: CiConfig;
|
|
223
|
-
/**
|
|
224
|
-
* 项目适用场景标签(ADR-0001,如 'agent-skill'、'llm-app')
|
|
225
|
-
*
|
|
226
|
-
* 带 appliesTo 标签的 prompt 仅当 scenes 与其交集非空时进入生效集;
|
|
227
|
-
* 无 appliesTo 的条目不受影响。缺省为空 = 场景专属 prompt 默认不注入。
|
|
228
|
-
*/
|
|
229
|
-
scenes?: string[];
|
|
230
182
|
/** 治理配置 */
|
|
231
183
|
governance?: GovernanceConfig;
|
|
232
184
|
/** 内置约束启用/禁用配置 */
|
|
233
185
|
constraints?: Record<string, {
|
|
234
186
|
enabled?: boolean;
|
|
235
187
|
}>;
|
|
236
|
-
/** 自定义约束文件路径 */
|
|
237
|
-
custom_constraints_file?: string;
|
|
238
|
-
/** 自定义约束(直接定义) */
|
|
239
|
-
custom_constraints?: Record<string, CustomConstraintDefinition>;
|
|
240
188
|
/** Spec 验证配置 */
|
|
241
189
|
spec?: {
|
|
242
190
|
/** 是否启用 Spec 验证 */
|
|
@@ -250,21 +198,15 @@ export interface ProjectConfig {
|
|
|
250
198
|
};
|
|
251
199
|
}
|
|
252
200
|
/**
|
|
253
|
-
* 完整的约束配置(合并内置 +
|
|
201
|
+
* 完整的约束配置(合并内置 + preset 裁剪 + config.yml 禁用)
|
|
254
202
|
*/
|
|
255
203
|
export interface MergedConstraintsConfig {
|
|
256
|
-
/**
|
|
257
|
-
|
|
258
|
-
/** Guidelines(合并后) */
|
|
259
|
-
guidelines: Record<string, Constraint>;
|
|
260
|
-
/** Prompts(合并后,ADR-0001 新增;可选以兼容旧调用方,缺省回落内置 PROMPTS) */
|
|
261
|
-
prompts?: Record<string, Constraint>;
|
|
204
|
+
/** 生效的约束(合并后,单桶;severity 在条目上) */
|
|
205
|
+
constraints: Record<string, Constraint>;
|
|
262
206
|
/** 禁用的约束 ID */
|
|
263
207
|
disabled: string[];
|
|
264
|
-
/** 自定义约束 ID */
|
|
265
|
-
custom: string[];
|
|
266
208
|
/**
|
|
267
|
-
* config.yml `constraints.<id>`
|
|
209
|
+
* config.yml `constraints.<id>` 中非内置的未知 id
|
|
268
210
|
*
|
|
269
211
|
* 例如禁用了已被本版移除的约束 id 的残留配置。生效集计算静默忽略,
|
|
270
212
|
* 在此列出供诊断(lintEffectiveConfig / report)使用。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/types/project-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/types/project-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 项目级约束配置
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* 允许项目启用/禁用 harness 内置约束(ADR-0029:项目自定义纯文本约束
|
|
6
|
+
* 已随文本注入层关停一并退役,文本规则由项目手写治理段承接)
|
|
6
7
|
*/
|
|
7
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
9
|
//# sourceMappingURL=project-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/types/project-config.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/types/project-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
package/dist/types/trace.d.ts
CHANGED
|
@@ -24,16 +24,14 @@ export declare const DEFAULT_TRACE_FILE = ".harness/logs/traces.log";
|
|
|
24
24
|
export interface ExecutionTrace {
|
|
25
25
|
/** 约束 ID */
|
|
26
26
|
constraintId: string;
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/** 约束严重性(ADR-0029:显式 severity 取代三层 level 命名) */
|
|
28
|
+
severity: 'error' | 'warning' | 'info';
|
|
29
29
|
/** 检查时间(Unix timestamp) */
|
|
30
30
|
timestamp: number;
|
|
31
31
|
/** 检查结果(skip = 约定未采用/证据未接线,未评估;不计 pass/fail 分母) */
|
|
32
32
|
result: 'pass' | 'fail' | 'skip';
|
|
33
33
|
/** 操作类型(触发条件) */
|
|
34
34
|
operation?: string;
|
|
35
|
-
/** 严重性(从约束定义继承) */
|
|
36
|
-
severity?: 'error' | 'warning' | 'info';
|
|
37
35
|
/** 项目路径(用于区分多项目) */
|
|
38
36
|
projectPath?: string;
|
|
39
37
|
/** 会话 ID(用于追踪同一会话的多次检查) */
|
|
@@ -58,8 +56,8 @@ export interface ExecutionTrace {
|
|
|
58
56
|
export interface TraceSummary {
|
|
59
57
|
/** 约束 ID */
|
|
60
58
|
constraintId: string;
|
|
61
|
-
/**
|
|
62
|
-
|
|
59
|
+
/** 约束严重性 */
|
|
60
|
+
severity: 'error' | 'warning' | 'info';
|
|
63
61
|
/** 统计时间范围 */
|
|
64
62
|
timeRange: {
|
|
65
63
|
start: number;
|
|
@@ -95,8 +93,8 @@ export interface TraceAnomaly {
|
|
|
95
93
|
type: 'rising_fail_rate' | 'low_pass_rate';
|
|
96
94
|
/** 约束 ID */
|
|
97
95
|
constraintId: string;
|
|
98
|
-
/**
|
|
99
|
-
|
|
96
|
+
/** 约束严重性 */
|
|
97
|
+
severity: 'error' | 'warning' | 'info';
|
|
100
98
|
/** 异常描述 */
|
|
101
99
|
message: string;
|
|
102
100
|
/** 相关数据 */
|
|
@@ -116,8 +114,8 @@ export interface TraceAnomaly {
|
|
|
116
114
|
export interface TraceFilter {
|
|
117
115
|
/** 约束 ID(可选,不指定则查全部) */
|
|
118
116
|
constraintId?: string;
|
|
119
|
-
/**
|
|
120
|
-
|
|
117
|
+
/** 约束严重性(可选) */
|
|
118
|
+
severity?: 'error' | 'warning' | 'info';
|
|
121
119
|
/** 结果类型(可选) */
|
|
122
120
|
result?: 'pass' | 'fail' | 'skip';
|
|
123
121
|
/** 时间范围(可选) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/types/trace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAK7B,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IAErB,
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/types/trace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/CONTEXT.md
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
| 术语 | 定义 |
|
|
36
36
|
|------|------|
|
|
37
|
-
| 插件 | harness 扩展点统称 =
|
|
37
|
+
| 插件 | harness 扩展点统称 = checker / 门禁(Gate) / 命令(CLI);非运行时插件容器——harness 是文件驱动 CLI、无常驻进程。hook 一族已退出扩展点统称(ADR-0027/#170 删 hooks 管线面,`src/hooks/` 只剩 bootstrap 组合根) |
|
|
38
38
|
| Gate(门禁) | 统一守卫接口 `Gate{id, order, evaluate(ctx)}` → `GateDecision`;统一的是决策协议(id/order/三态),执行细节私有 |
|
|
39
39
|
| GateDecision | 三态决策 `deny \| abstain \| ask`;deny 单调(下游不可改回 allow)、ask 枚举预留 fail-closed = deny |
|
|
40
40
|
| GateResult | 报告结构(gate/passed/message/details/timestamp/duration),保留为报告层,不作决策 |
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
| 回滚 | 分工:版本化回退(单段——yml 数据文件 git 版本化,删段恢复)+ 提案回滚(多段 inverse,挂 studio#82 D6) |
|
|
43
43
|
| 文件驱动 CLI | yml 状态真值 + 一次性进程、无常驻生命周期;故不引 dispose 链(止步档 1) |
|
|
44
44
|
| 对照(reconcile) | CAPABILITIES.md 声明与源码实况的双向一致性判定(代码→文档查漏登,文档→代码查幽灵);唯一实现 `core/constraints/capabilities-reconcile.ts`,capability_sync / docs_freshness / sync-docs 共消费(ADR-0009)。一次 check run 内只算一次,经 `RunEnv.capabilities()` 供给两 checker(ADR-0023 决策 4) |
|
|
45
|
-
| 判定证据(evidence) | checker 随判定一并返回的路径级依据(`CheckDetail{pass, evidence}`,harness#119/ADR-0016);文案由 checker 措辞、消费端只打印,出口 = `ConstraintResult` / CLI 输出 / trace /
|
|
45
|
+
| 判定证据(evidence) | checker 随判定一并返回的路径级依据(`CheckDetail{pass, evidence}`,harness#119/ADR-0016);文案由 checker 措辞、消费端只打印,出口 = `ConstraintResult` / CLI 输出 / trace / error 级异常文案。不是第四种统计态:**违规** = 与本次变更有因果(进 pass/fail 分母),**提示** = `pass:true` + evidence(仓库级漂移等无因果缺口,只露出不拦) |
|
|
46
46
|
| 测试产物解读(test-output) | 从测试运行器 stdout 读出「过了没 / 哪些失败 / 覆盖率」的判定;唯一实现 `core/validators/test-output.ts`(包内,不进导出面),passes-gate / acceptance 共消费(ADR-0012)。两门禁判定依据不一致待 #93 裁决,覆盖率取数归属待 #94 裁决 |
|
|
47
47
|
| 飞轮指标(flywheel) | 知识条目的引用与消费度量(refCoverage / avgRefs / consumptionHitRate);唯一实现 `knowledge/flywheel-metrics.ts`(包内,不进导出面),canonical 分子为过滤 synthetic 后的 genuine refs,audit D6 / knowledge stats / knowledge health 共消费(ADR-0013,#81) |
|
|
48
48
|
| 测试夹具(project fixture) | 临时项目根 + 落盘声明;唯一实现 `test-setup/project-fixture.ts`(测试层,不进导出面)——`config` 槽是 `.harness/config.yml` 落点唯一正本(字符串原样落盘,畸形/脏配置用例依赖此口径),`traces` 槽/`writeProjectTraces` 是 trace 落盘唯一正本(路径锚定 `DEFAULT_TRACE_FILE`、序列化走 `appendJsonl` 生产写链,harness#108),其余文件走 `files` 相对路径;非缺省根必须经 `parentDir` **显式** opt-out(cwd 锚定用例语义),回收经 `mkdtemp-cleanup` 劫持(harness#90) |
|
|
49
|
-
| 运行级观察面(run env) | 一次 `harness check` 运行内对项目上行数据的只读视图,口径 = **同一文件至多读一次、跑完即弃、不做进程级全局**;唯一实现 `core/constraints/run-env.ts`,承载 `rawConfig()` / `
|
|
49
|
+
| 运行级观察面(run env) | 一次 `harness check` 运行内对项目上行数据的只读视图,口径 = **同一文件至多读一次、跑完即弃、不做进程级全局**;唯一实现 `core/constraints/run-env.ts`,承载 `rawConfig()` / `capabilities(population)` / `traceTail(limit)` / `sourceRoots()` 四个观察口(ADR-0029:`customConstraints(file)` 口随 custom 约束面退役移除)(配置与能力表的读取原进程级缓存已按 ADR-0023 决策 2 撤销),与 git 证据(#87/ADR-0021)同形:入口构造、沿调用链显式传递。与 `CheckEnv` 的分工是构造顺序决定的——`CheckEnv` 含 `context`,而 `context` 是经本观察面读文件算出的产物,故观察面只承载「不需要 context 就能造」的部分,`CheckEnv` 以 `extends RunEnv` 从它派生(ADR-0023);`RunEnv` / `RunTarget`(= `RunEnv \| 项目根路径`)经 `./core` 以类型面导出,供消费方共享同一份读取。**只读是硬契约**:运行期状态文件的写口不走本面,走 StateIO(#148) |
|
|
50
50
|
| 状态文件 IO(StateIO) | harness 自身运行期状态文件(`.harness/.state.json`)读写的可注入接缝:`read()`/`write()` 两方法、默认真实 fs 实现 `fileStateIO(projectPath)`、命令可选参数注入(照 `CommandIO` 模式,但不扩 `CommandIO`);唯一实现 `src/cli/state-io.ts`(cli 层,不进包根导出面),收编 check 智能提示与 status 两个写者,写语义统一为**读-改-写**(此前 `status` 不读就整文件重写、把 `check` 写的 `shownHints` 抹掉致提示去重失效,ADR-0026 已修)。决策 = **ADR-0026**,实现票 #148;与运行级观察面(只读、项目上行数据)分工:本面管 harness 自身状态、含写 |
|
|
51
51
|
|
|
52
52
|
## 注意事项
|