@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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.noTestSimplification = void 0;
|
|
7
|
-
// m 标志必需:真实 diff 首行恒为 `diff --git`,缺 m 则 ^
|
|
7
|
+
// m 标志必需:真实 diff 首行恒为 `diff --git`,缺 m 则 ^ 永不命中删除行(checker 静默失效)
|
|
8
8
|
const DELETED_TEST_PATTERNS = [
|
|
9
9
|
/^-\s*(test|it|describe)\s*\(/m, // 删除 test/it/describe
|
|
10
10
|
/^-\s*expect\s*\(/m, // 删除 expect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-test-simplification.js","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/no-test-simplification.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,
|
|
1
|
+
{"version":3,"file":"no-test-simplification.js","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/no-test-simplification.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,iEAAiE;AACjE,MAAM,qBAAqB,GAAG;IAC5B,+BAA+B,EAAE,sBAAsB;IACvD,mBAAmB,EAAe,YAAY;IAC9C,mBAAmB,EAAe,aAAa;CAChD,CAAC;AAEW,QAAA,oBAAoB,GAAoB;IACnD,EAAE,EAAE,wBAAwB;IAC5B,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,CAAC,SAAS;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAC/B,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -87,7 +87,7 @@ export declare const MAX_EVIDENCE_ITEMS = 10;
|
|
|
87
87
|
/**
|
|
88
88
|
* 组装证据行:一行说明 + 逐条依据(超限截断)
|
|
89
89
|
*
|
|
90
|
-
* 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 /
|
|
90
|
+
* 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / error 级异常文案)决定,trace 原样存。
|
|
91
91
|
* 修复入口不写在这里:那是各约束自己的事,写进各自的 summary 行(docs_freshness 的
|
|
92
92
|
* 幽灵条目与 sync-docs 无关,共用一个指针会误导)。
|
|
93
93
|
*/
|
|
@@ -44,7 +44,7 @@ exports.MAX_EVIDENCE_ITEMS = 10;
|
|
|
44
44
|
/**
|
|
45
45
|
* 组装证据行:一行说明 + 逐条依据(超限截断)
|
|
46
46
|
*
|
|
47
|
-
* 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 /
|
|
47
|
+
* 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / error 级异常文案)决定,trace 原样存。
|
|
48
48
|
* 修复入口不写在这里:那是各约束自己的事,写进各自的 summary 行(docs_freshness 的
|
|
49
49
|
* 幽灵条目与 sync-docs 无关,共用一个指针会误导)。
|
|
50
50
|
*/
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* check
|
|
2
|
+
* check 约束定义(severity='warning' 组,ADR-0029)
|
|
3
3
|
*
|
|
4
|
-
* 只保留带真实 checker
|
|
4
|
+
* 只保留带真实 checker 的约束。每条必须:
|
|
5
5
|
* - kind: 'check'
|
|
6
|
-
* -
|
|
6
|
+
* - severity: 'warning'(违规告警不阻断)
|
|
7
7
|
* - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
|
|
8
8
|
*/
|
|
9
9
|
import type { Constraint } from '../../../types/constraint';
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const WARNING_CONSTRAINTS: Record<string, Constraint>;
|
|
11
11
|
//# sourceMappingURL=guidelines.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guidelines.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"guidelines.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA6F1D,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* check
|
|
3
|
+
* check 约束定义(severity='warning' 组,ADR-0029)
|
|
4
4
|
*
|
|
5
|
-
* 只保留带真实 checker
|
|
5
|
+
* 只保留带真实 checker 的约束。每条必须:
|
|
6
6
|
* - kind: 'check'
|
|
7
|
-
* -
|
|
7
|
+
* - severity: 'warning'(违规告警不阻断)
|
|
8
8
|
* - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
11
|
+
exports.WARNING_CONSTRAINTS = void 0;
|
|
12
|
+
exports.WARNING_CONSTRAINTS = {
|
|
13
13
|
/**
|
|
14
14
|
* 禁止硬编码凭证
|
|
15
15
|
* 原因:密码/token/密钥泄露是最严重的安全漏洞,一旦提交到版本控制即不可逆
|
|
@@ -19,26 +19,10 @@ exports.GUIDELINES = {
|
|
|
19
19
|
kind: 'check',
|
|
20
20
|
rule: 'NO HARDCODED PASSWORDS, TOKENS, SECRETS, OR CREDENTIALS IN ANY SOURCE FILE',
|
|
21
21
|
message: '禁止在代码/文档/配置文件中硬编码密码、token、密钥、API key',
|
|
22
|
-
|
|
22
|
+
severity: 'warning',
|
|
23
23
|
trigger: ['code_implementation', 'doc_update', 'config_change', 'commit'],
|
|
24
24
|
enforcement: 'credential-scan',
|
|
25
25
|
description: `凭证(密码/token/密钥/API key)必须从环境变量或加密配置读取,严禁以明文形式出现在任何源代码文件中。包括但不限于:源码、Markdown 文档、YAML/JSON 配置、脚本文件。模板文件(.example/.sample/.template)允许占位符但不得包含真实值。建议配合 pre-commit hook 做自动扫描。`,
|
|
26
|
-
promptInjection: '禁止在代码中硬编码密码、API 密钥、Token 等凭证。使用环境变量或安全的凭证管理方案存储敏感信息。',
|
|
27
|
-
},
|
|
28
|
-
/**
|
|
29
|
-
* 禁止跳过检查点验证
|
|
30
|
-
* 原因:安全底线,检查点是质量门控
|
|
31
|
-
*/
|
|
32
|
-
no_bypass_checkpoint: {
|
|
33
|
-
id: 'no_bypass_checkpoint',
|
|
34
|
-
kind: 'check',
|
|
35
|
-
rule: 'NO BYPASSING CHECKPOINTS',
|
|
36
|
-
message: '禁止跳过检查点验证',
|
|
37
|
-
level: 'guideline',
|
|
38
|
-
trigger: 'code_implementation',
|
|
39
|
-
enforcement: 'checkpoint-required',
|
|
40
|
-
description: '所有检查点必须通过,不能跳过验证步骤。检查点是质量的最后一道防线。',
|
|
41
|
-
promptInjection: '每个关键步骤后有 checkpoint 验证点,必须通过才能继续。通过标准:测试通过、类型检查无错误、lint 无新增警告。未通过时回退修复,不得跳过。',
|
|
42
26
|
},
|
|
43
27
|
/**
|
|
44
28
|
* 功能清单同步
|
|
@@ -49,7 +33,7 @@ exports.GUIDELINES = {
|
|
|
49
33
|
kind: 'check',
|
|
50
34
|
rule: 'CODE CHANGES MUST UPDATE CAPABILITIES.MD',
|
|
51
35
|
message: '核心模块变更必须同步功能清单(支持模块级目录条目登记)',
|
|
52
|
-
|
|
36
|
+
severity: 'warning',
|
|
53
37
|
trigger: ['module_creation', 'module_modification', 'module_deletion', 'module_extension'],
|
|
54
38
|
enforcement: 'update-capabilities',
|
|
55
39
|
description: `在创建/修改/删除/扩展核心模块时,必须同步更新 CAPABILITIES.md:
|
|
@@ -76,7 +60,7 @@ exports.GUIDELINES = {
|
|
|
76
60
|
kind: 'check',
|
|
77
61
|
rule: 'KEY DIRECTORIES SHOULD HAVE CONTEXT.MD',
|
|
78
62
|
message: '关键目录缺少 CONTEXT.md,运行 harness sync-docs 创建模板后填写实际内容',
|
|
79
|
-
|
|
63
|
+
severity: 'warning',
|
|
80
64
|
trigger: 'module_modification',
|
|
81
65
|
enforcement: 'context-check',
|
|
82
66
|
description: `项目的关键目录应包含 CONTEXT.md 文件,描述目录职责和上下文。
|
|
@@ -104,7 +88,7 @@ exports.GUIDELINES = {
|
|
|
104
88
|
kind: 'check',
|
|
105
89
|
rule: 'GOVERNANCE CONTRACT MUST BE PRESENT (AGENTS.MD PRESERVE:GOVERNANCE BLOCK OR CLAUDE.MD GOVERNANCE RULES)',
|
|
106
90
|
message: '治理契约缺失:AGENTS.md 缺少非空 PRESERVE:governance 段,且 CLAUDE.md 无 Governance Rules 块',
|
|
107
|
-
|
|
91
|
+
severity: 'warning',
|
|
108
92
|
trigger: ['file_modification', 'module_creation', 'module_modification', 'doc_update', 'config_change', 'commit'],
|
|
109
93
|
enforcement: 'governance-presence-check',
|
|
110
94
|
description: `治理契约(约束清单正本)必须在场,两处居其一:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guidelines.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,
|
|
1
|
+
{"version":3,"file":"guidelines.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/guidelines.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,mBAAmB,GAA+B;IAC7D;;;OAGG;IACH,wBAAwB,EAAE;QACxB,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,4EAA4E;QAClF,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACzE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,4KAA4K;KAC1L;IAED;;;OAGG;IACH,eAAe,EAAE;QACf,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;QAC1F,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;;;;;;;;;;;;;yFAawE;KACtF;IAED;;;OAGG;IACH,gBAAgB,EAAE;QAChB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,oDAAoD;QAC7D,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE;;;;;;;;;;;;;+BAac;KAC5B;IAED;;;;OAIG;IACH,mBAAmB,EAAE;QACnB,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,yGAAyG;QAC/G,OAAO,EAAE,8EAA8E;QACvF,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;QACjH,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;;;;;;oDAMmC;KACjD;CACF,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* check
|
|
2
|
+
* check 约束定义(severity='error' 组,ADR-0029)
|
|
3
3
|
*
|
|
4
|
-
* 只保留带真实 checker
|
|
4
|
+
* 只保留带真实 checker 的约束。每条必须:
|
|
5
5
|
* - kind: 'check'
|
|
6
|
-
* -
|
|
6
|
+
* - severity: 'error'(违规即阻断)
|
|
7
7
|
* - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
|
|
8
8
|
*/
|
|
9
9
|
import type { Constraint } from '../../../types/constraint';
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const ERROR_CONSTRAINTS: Record<string, Constraint>;
|
|
11
11
|
//# sourceMappingURL=iron-laws.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iron-laws.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"iron-laws.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAyDxD,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* check
|
|
3
|
+
* check 约束定义(severity='error' 组,ADR-0029)
|
|
4
4
|
*
|
|
5
|
-
* 只保留带真实 checker
|
|
5
|
+
* 只保留带真实 checker 的约束。每条必须:
|
|
6
6
|
* - kind: 'check'
|
|
7
|
-
* -
|
|
7
|
+
* - severity: 'error'(违规即阻断)
|
|
8
8
|
* - 在 checkers/ 注册表中有对应实现(注册表闭环,缺失即加载期抛错)
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
11
|
+
exports.ERROR_CONSTRAINTS = void 0;
|
|
12
|
+
exports.ERROR_CONSTRAINTS = {
|
|
13
13
|
/**
|
|
14
14
|
* 禁止无验证声明完成
|
|
15
15
|
* 原因:质量底线,必须有验证命令
|
|
@@ -19,92 +19,22 @@ exports.IRON_LAWS = {
|
|
|
19
19
|
kind: 'check',
|
|
20
20
|
rule: 'NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE',
|
|
21
21
|
message: '禁止无验证声明完成,必须运行验证命令',
|
|
22
|
-
|
|
22
|
+
severity: 'error',
|
|
23
23
|
trigger: 'code_implementation',
|
|
24
24
|
enforcement: 'verify-completion',
|
|
25
25
|
description: '在声明任何任务完成之前,必须运行新鲜的验证命令(项目声明的测试 + type check),以新鲜输出作为完成证据。验证命令集由项目自行声明,全量验证留给 CI 流程。',
|
|
26
|
-
promptInjection: '在声明任务完成前,必须重新运行新鲜的验证命令(项目声明的测试 + type check),使用新鲜的输出作为完成证据,不得复用旧结果,不得凭记忆声称完成。',
|
|
27
|
-
},
|
|
28
|
-
/**
|
|
29
|
-
* 禁止一次做多个任务(one-shotting)
|
|
30
|
-
* 来源:Anthropic AI Harness - Effective Harnesses for Long-running Agents
|
|
31
|
-
* 原因:避免中途耗尽 context,保持专注和可控
|
|
32
|
-
*/
|
|
33
|
-
incremental_progress: {
|
|
34
|
-
id: 'incremental_progress',
|
|
35
|
-
kind: 'check',
|
|
36
|
-
rule: 'ONE TASK PER SESSION',
|
|
37
|
-
message: '禁止一次做多个任务,每次只做一件事',
|
|
38
|
-
level: 'iron_law',
|
|
39
|
-
trigger: 'code_implementation',
|
|
40
|
-
enforcement: 'single-task-check',
|
|
41
|
-
description: `一个 session 只处理一个任务,避免 one-shotting。
|
|
42
|
-
|
|
43
|
-
【禁止】
|
|
44
|
-
- 一次做多个任务 → 中途耗尽 context
|
|
45
|
-
- 大改动一次性完成 → 失控
|
|
46
|
-
- 没有拆分的复杂任务 → 无法回滚
|
|
47
|
-
|
|
48
|
-
【必须】
|
|
49
|
-
- 一个 session 一个任务 → 保持专注
|
|
50
|
-
- 大任务拆分为小步骤 → 分步执行
|
|
51
|
-
- 每步都有 checkpoint → 可回滚
|
|
52
|
-
|
|
53
|
-
【判断标准】
|
|
54
|
-
- 改动涉及多个模块 → 需拆分
|
|
55
|
-
- 改动超过 100 行 → 需拆分
|
|
56
|
-
- 改动影响多个文件 → 需拆分
|
|
57
|
-
|
|
58
|
-
【参考】
|
|
59
|
-
Anthropic AI: "Effective Harnesses for Long-running Agents"
|
|
60
|
-
https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents`,
|
|
61
|
-
promptInjection: '一次只处理一个任务。改动涉及多个模块、超过 100 行、或影响多个文件时,必须拆分为小步骤分步执行,每步有独立 checkpoint 可回滚。不要试图一次性完成所有改动。',
|
|
62
|
-
},
|
|
63
|
-
/**
|
|
64
|
-
* 禁止无需求就开始实现(吸收 no_implementation_without_requirement_review)
|
|
65
|
-
* 原因:没有需求就没有验收标准,实现方向不可控;
|
|
66
|
-
* 实现完成后必须逐条对照 AC 验证,避免偏离需求
|
|
67
|
-
*/
|
|
68
|
-
no_implementation_without_requirement: {
|
|
69
|
-
id: 'no_implementation_without_requirement',
|
|
70
|
-
kind: 'check',
|
|
71
|
-
rule: 'NO IMPLEMENTATION WITHOUT REQUIREMENTS, AND REVIEW AGAINST AC AFTER IMPLEMENTATION',
|
|
72
|
-
message: '禁止无需求就开始实现,实现后必须逐条对照 AC 验证',
|
|
73
|
-
level: 'iron_law',
|
|
74
|
-
trigger: ['code_implementation', 'design_request'],
|
|
75
|
-
enforcement: 'requirement-exists',
|
|
76
|
-
description: `在开始实现之前,必须有明确的需求定义;实现完成后,必须逐条对照验收标准(AC)验证。
|
|
77
|
-
|
|
78
|
-
【实现前必须执行】
|
|
79
|
-
1. 确认需求来源(Spec/Issue/Roadmap/用户指令)
|
|
80
|
-
2. 确认验收标准(AC)已定义
|
|
81
|
-
3. 确认边界情况已明确
|
|
82
|
-
|
|
83
|
-
【实现后必须执行】(吸收自 no_implementation_without_requirement_review)
|
|
84
|
-
1. 回顾需求文档(Spec/Roadmap/Issue)
|
|
85
|
-
2. 逐条检查实现是否符合每条 AC
|
|
86
|
-
3. 确认边界情况已覆盖
|
|
87
|
-
4. 输出验证清单(AC × 实现 × 状态)
|
|
88
|
-
|
|
89
|
-
【禁止】
|
|
90
|
-
- 没有需求就开始写代码、凭假设开始实现
|
|
91
|
-
- 实现后不对比需求直接提交,只测"功能能跑"不验证 AC
|
|
92
|
-
- 跳过边界情况验证,假设"差不多就行"
|
|
93
|
-
|
|
94
|
-
【正确流程】
|
|
95
|
-
需求确认 → AC 定义 → 实现 → 逐条对照 AC 验证`,
|
|
96
|
-
promptInjection: '开始编写代码前,必须确认:需求来源明确(Spec/Issue/Roadmap/用户指令)、验收标准(AC)已定义、边界情况已明确。不要凭假设或猜测开始实现。实现完成后,必须逐条对比原始需求文档中的验收标准(AC),确认每条 AC 已实现且边界情况已覆盖,输出验证清单。不得仅凭"功能能跑"就认为完成。',
|
|
97
26
|
},
|
|
98
27
|
/**
|
|
99
28
|
* 禁止简化测试
|
|
100
29
|
* 原因:质量底线,测试困难必须解决
|
|
30
|
+
* (harness#174:checker 承载执行)
|
|
101
31
|
*/
|
|
102
32
|
no_test_simplification: {
|
|
103
33
|
id: 'no_test_simplification',
|
|
104
34
|
kind: 'check',
|
|
105
35
|
rule: 'NO SIMPLIFYING TESTS TO AVOID DIFFICULTY',
|
|
106
36
|
message: '禁止简化测试绕过困难',
|
|
107
|
-
|
|
37
|
+
severity: 'error',
|
|
108
38
|
trigger: 'test_creation',
|
|
109
39
|
enforcement: 'full-test-coverage',
|
|
110
40
|
description: `在编写测试时,不能因为遇到困难而简化或跳过测试。
|
|
@@ -118,18 +48,17 @@ https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agent
|
|
|
118
48
|
- 为了绕过 mock 困难而删除测试用例
|
|
119
49
|
- 为了绕过异步问题而跳过断言
|
|
120
50
|
- 降低测试覆盖率要求`,
|
|
121
|
-
promptInjection: '编写测试时遇到困难(mock、异步、环境),不得删除用例或跳过断言。正确做法:分析问题 → 查阅文档 → 尝试解决 → 仍不行则向用户说明困难请求指示。不得降低覆盖率要求。',
|
|
122
51
|
},
|
|
123
52
|
/**
|
|
124
53
|
* 文档新鲜度
|
|
125
|
-
*
|
|
54
|
+
* 原因:只警告不阻断会导致文档持续腐烂。
|
|
126
55
|
*/
|
|
127
56
|
docs_freshness: {
|
|
128
57
|
id: 'docs_freshness',
|
|
129
58
|
kind: 'check',
|
|
130
59
|
rule: 'CAPABILITIES.MD MUST BE IN SYNC WITH CODE',
|
|
131
60
|
message: 'CAPABILITIES.md 与源码不同步,运行 harness sync-docs 更新后重新提交',
|
|
132
|
-
|
|
61
|
+
severity: 'error',
|
|
133
62
|
trigger: ['file_modification', 'module_creation', 'module_modification'],
|
|
134
63
|
enforcement: 'docs-sync-check',
|
|
135
64
|
description: `CAPABILITIES.md 中列出的文件必须在 src/ 中实际存在。删除源文件时须从 CAPABILITIES.md 同步移除。运行 harness sync-docs 自动修复过期引用。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iron-laws.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,
|
|
1
|
+
{"version":3,"file":"iron-laws.js","sourceRoot":"","sources":["../../../../src/core/constraints/definitions/iron-laws.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIU,QAAA,iBAAiB,GAA+B;IAC3D;;;OAGG;IACH,kCAAkC,EAAE;QAClC,EAAE,EAAE,oCAAoC;QACxC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0DAA0D;QAChE,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,sFAAsF;KACpG;IAED;;;;OAIG;IACH,sBAAsB,EAAE;QACtB,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE;;;;;;;;;;YAUL;KACT;IAED;;;OAGG;IACH,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,qDAAqD;QAC9D,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;QACxE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;kFACiE;KAC/E;CACF,CAAC"}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 约束定义(薄聚合层)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* severity 显式模型(ADR-0029,取代 ADR-0001 三层命名):
|
|
5
|
+
* 全部内置约束 kind='check',severity 写死在定义上(error / warning),
|
|
6
|
+
* 纯文本提示层(prompts.ts)已随文本注入层关停整体删除。
|
|
7
7
|
*
|
|
8
|
-
* 工单 20
|
|
8
|
+
* 工单 20:字面量定义按 severity 分组放 ./definitions/{iron-laws,guidelines}.ts;
|
|
9
9
|
* 本文件保持原路径做薄聚合(studio rule-scanner 按此路径解析,P0 #8)。
|
|
10
10
|
*/
|
|
11
11
|
import type { Constraint, ConstraintTrigger } from '../../types/constraint';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import { PROMPTS } from './definitions/prompts';
|
|
15
|
-
export { IRON_LAWS, GUIDELINES, PROMPTS };
|
|
12
|
+
/** 全部内置约束(check 层全量,severity 在条目上) */
|
|
13
|
+
export declare const CONSTRAINTS: Record<string, Constraint>;
|
|
16
14
|
/**
|
|
17
|
-
* 获取所有约束(check
|
|
15
|
+
* 获取所有约束(check 全量,带 kind/severity)
|
|
18
16
|
*/
|
|
19
17
|
export declare function getAllConstraints(): Constraint[];
|
|
20
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI5E,sCAAsC;AACtC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAGlD,CAAC;AAMF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,EAAE,CAKjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE"}
|
|
@@ -2,36 +2,33 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* 约束定义(薄聚合层)
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* severity 显式模型(ADR-0029,取代 ADR-0001 三层命名):
|
|
6
|
+
* 全部内置约束 kind='check',severity 写死在定义上(error / warning),
|
|
7
|
+
* 纯文本提示层(prompts.ts)已随文本注入层关停整体删除。
|
|
8
8
|
*
|
|
9
|
-
* 工单 20
|
|
9
|
+
* 工单 20:字面量定义按 severity 分组放 ./definitions/{iron-laws,guidelines}.ts;
|
|
10
10
|
* 本文件保持原路径做薄聚合(studio rule-scanner 按此路径解析,P0 #8)。
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
13
|
+
exports.CONSTRAINTS = void 0;
|
|
14
14
|
exports.getAllConstraints = getAllConstraints;
|
|
15
15
|
exports.findConstraintsByTrigger = findConstraintsByTrigger;
|
|
16
16
|
exports.getConstraint = getConstraint;
|
|
17
17
|
const iron_laws_1 = require("./definitions/iron-laws");
|
|
18
|
-
Object.defineProperty(exports, "IRON_LAWS", { enumerable: true, get: function () { return iron_laws_1.IRON_LAWS; } });
|
|
19
18
|
const guidelines_1 = require("./definitions/guidelines");
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
/** 全部内置约束(check 层全量,severity 在条目上) */
|
|
20
|
+
exports.CONSTRAINTS = {
|
|
21
|
+
...iron_laws_1.ERROR_CONSTRAINTS,
|
|
22
|
+
...guidelines_1.WARNING_CONSTRAINTS,
|
|
23
|
+
};
|
|
23
24
|
// ========================================
|
|
24
25
|
// 辅助函数
|
|
25
26
|
// ========================================
|
|
26
27
|
/**
|
|
27
|
-
* 获取所有约束(check
|
|
28
|
+
* 获取所有约束(check 全量,带 kind/severity)
|
|
28
29
|
*/
|
|
29
30
|
function getAllConstraints() {
|
|
30
|
-
return
|
|
31
|
-
...Object.values(iron_laws_1.IRON_LAWS),
|
|
32
|
-
...Object.values(guidelines_1.GUIDELINES),
|
|
33
|
-
...Object.values(prompts_1.PROMPTS),
|
|
34
|
-
];
|
|
31
|
+
return Object.values(exports.CONSTRAINTS);
|
|
35
32
|
}
|
|
36
33
|
/**
|
|
37
34
|
* 根据触发条件查找适用的约束
|
|
@@ -46,6 +43,6 @@ function findConstraintsByTrigger(trigger) {
|
|
|
46
43
|
* 根据 ID 获取约束
|
|
47
44
|
*/
|
|
48
45
|
function getConstraint(id) {
|
|
49
|
-
return
|
|
46
|
+
return exports.CONSTRAINTS[id];
|
|
50
47
|
}
|
|
51
48
|
//# sourceMappingURL=definitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/core/constraints/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAmBH,8CAEC;AAKD,4DAKC;AAKD,sCAEC;AAnCD,uDAA4D;AAC5D,yDAA+D;AAE/D,sCAAsC;AACzB,QAAA,WAAW,GAA+B;IACrD,GAAG,6BAAiB;IACpB,GAAG,gCAAmB;CACvB,CAAC;AAEF,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAE3C;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,OAA0B;IACjE,OAAO,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,EAAU;IACtC,OAAO,mBAAW,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 约束模块入口
|
|
3
3
|
*/
|
|
4
|
-
export {
|
|
4
|
+
export { CONSTRAINTS, getAllConstraints, findConstraintsByTrigger, getConstraint, } from './definitions';
|
|
5
5
|
export { ConstraintChecker, checkConstraint, checkConstraints, checkBeforeExecution, constraintChecker, } from './checker';
|
|
6
6
|
export type { CheckConstraintsOptions, TraceRecorder } from './checker';
|
|
7
|
-
export { CONSTRAINTS_START_MARKER, CONSTRAINTS_END_MARKER, renderConstraintsSection, } from './injection-renderer';
|
|
8
7
|
export { CheckCache } from './check-cache';
|
|
9
8
|
export type { CheckCacheConfig, CheckSamplingConfig } from './check-cache';
|
|
10
|
-
export {
|
|
11
|
-
export type { RenderConstraintsByTriggerOptions } from './agent-prompt-renderer';
|
|
12
|
-
export type { ConstraintId, ConstraintKind, ConstraintLevel, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from '../../types/constraint';
|
|
9
|
+
export type { ConstraintId, ConstraintKind, ConstraintSeverity, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from '../../types/constraint';
|
|
13
10
|
export { ConstraintViolationError } from '../../types/constraint';
|
|
14
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG3E,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
* 约束模块入口
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ConstraintViolationError = exports.
|
|
7
|
-
// 约束定义(
|
|
6
|
+
exports.ConstraintViolationError = exports.CheckCache = exports.constraintChecker = exports.checkBeforeExecution = exports.checkConstraints = exports.checkConstraint = exports.ConstraintChecker = exports.getConstraint = exports.findConstraintsByTrigger = exports.getAllConstraints = exports.CONSTRAINTS = void 0;
|
|
7
|
+
// 约束定义(check 全量,severity 在条目上)
|
|
8
8
|
var definitions_1 = require("./definitions");
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
Object.defineProperty(exports, "GUIDELINES", { enumerable: true, get: function () { return definitions_1.GUIDELINES; } });
|
|
11
|
-
Object.defineProperty(exports, "PROMPTS", { enumerable: true, get: function () { return definitions_1.PROMPTS; } });
|
|
9
|
+
Object.defineProperty(exports, "CONSTRAINTS", { enumerable: true, get: function () { return definitions_1.CONSTRAINTS; } });
|
|
12
10
|
Object.defineProperty(exports, "getAllConstraints", { enumerable: true, get: function () { return definitions_1.getAllConstraints; } });
|
|
13
11
|
Object.defineProperty(exports, "findConstraintsByTrigger", { enumerable: true, get: function () { return definitions_1.findConstraintsByTrigger; } });
|
|
14
12
|
Object.defineProperty(exports, "getConstraint", { enumerable: true, get: function () { return definitions_1.getConstraint; } });
|
|
@@ -19,17 +17,9 @@ Object.defineProperty(exports, "checkConstraint", { enumerable: true, get: funct
|
|
|
19
17
|
Object.defineProperty(exports, "checkConstraints", { enumerable: true, get: function () { return checker_1.checkConstraints; } });
|
|
20
18
|
Object.defineProperty(exports, "checkBeforeExecution", { enumerable: true, get: function () { return checker_1.checkBeforeExecution; } });
|
|
21
19
|
Object.defineProperty(exports, "constraintChecker", { enumerable: true, get: function () { return checker_1.constraintChecker; } });
|
|
22
|
-
// CLAUDE.md 约束注入段渲染(纯函数,init 注入与漂移校验共用)
|
|
23
|
-
var injection_renderer_1 = require("./injection-renderer");
|
|
24
|
-
Object.defineProperty(exports, "CONSTRAINTS_START_MARKER", { enumerable: true, get: function () { return injection_renderer_1.CONSTRAINTS_START_MARKER; } });
|
|
25
|
-
Object.defineProperty(exports, "CONSTRAINTS_END_MARKER", { enumerable: true, get: function () { return injection_renderer_1.CONSTRAINTS_END_MARKER; } });
|
|
26
|
-
Object.defineProperty(exports, "renderConstraintsSection", { enumerable: true, get: function () { return injection_renderer_1.renderConstraintsSection; } });
|
|
27
20
|
// 约束检查缓存(H6/G5:TTL 缓存 + 计数采样,公开导出)
|
|
28
21
|
var check_cache_1 = require("./check-cache");
|
|
29
22
|
Object.defineProperty(exports, "CheckCache", { enumerable: true, get: function () { return check_cache_1.CheckCache; } });
|
|
30
|
-
// Agent prompt 约束段渲染(H6/G6:trigger 参数化分组渲染,role 路由留 studio)
|
|
31
|
-
var agent_prompt_renderer_1 = require("./agent-prompt-renderer");
|
|
32
|
-
Object.defineProperty(exports, "renderConstraintsByTrigger", { enumerable: true, get: function () { return agent_prompt_renderer_1.renderConstraintsByTrigger; } });
|
|
33
23
|
var constraint_1 = require("../../types/constraint");
|
|
34
24
|
Object.defineProperty(exports, "ConstraintViolationError", { enumerable: true, get: function () { return constraint_1.ConstraintViolationError; } });
|
|
35
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/constraints/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAA+B;AAC/B,6CAKuB;AAJrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,4GAAA,aAAa,OAAA;AAGf,QAAQ;AACR,qCAMmB;AALjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,+GAAA,oBAAoB,OAAA;AACpB,4GAAA,iBAAiB,OAAA;AAInB,mCAAmC;AACnC,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAgBnB,qDAAkE;AAAzD,sHAAA,wBAAwB,OAAA"}
|
|
@@ -1,33 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 标记区间写入器 + 治理正本探测(架构评审候选1,ADR-0011)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* ADR-0029:约束注入段(HARNESS_CONSTRAINTS)已整体关停——本模块不再承担
|
|
5
|
+
* 注入段渲染/落点路由(resolveInjectionTarget / resolveGovernanceLanding 随删),
|
|
6
|
+
* 保留的是通用机制:
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* 「按渲染 body 替换标记区间 + 尾换行规一」的切片数学。形状两种
|
|
9
|
+
* (排版约定不同,非"算哪些"的差异,故合法分叉):
|
|
9
10
|
* - replaceStandaloneRange:区间独立成节,END 标记后折叠为恰好一个空行
|
|
10
|
-
* (CLAUDE.md
|
|
11
|
+
* (CLAUDE.md Output Style 段)
|
|
11
12
|
* - replaceEnclosedRange:区间后紧跟外层收口标记(AGENTS.md PRESERVE 段内
|
|
12
|
-
*
|
|
13
|
+
* 区间)——恰好剥一个换行,手写余文原样落回
|
|
13
14
|
*
|
|
14
15
|
* 半标记守护:单边缺失或顺序颠倒 → 'half',拒写(旧实现此时或追加出双份
|
|
15
16
|
* 正本或产生乱序切片,属二次损坏路径,收紧为告警交人工,见 ADR-0011)。
|
|
16
17
|
*
|
|
17
|
-
* 落点路由同规则一份:
|
|
18
|
-
* - resolveInjectionTarget:读侧(漂移检测/retire 同步)——CLAUDE.md 有完整
|
|
19
|
-
* 标记段优先(旧模型仓豁免),否则 AGENTS.md(新模型仓住 PRESERVE 段内)
|
|
20
|
-
* - resolveGovernanceLanding:写侧(init 落点选择)——额外承认 CLAUDE.md
|
|
21
|
-
* 无标记的 `## Governance Rules` 旧块(续写不制造双份正本)
|
|
22
|
-
*
|
|
23
18
|
* 探测/判定同住本模块(#83,ADR-0011 补注:收口范围含探测器,不只写器)——
|
|
24
|
-
* 「这份文档里有没有治理契约 /
|
|
25
|
-
*
|
|
26
|
-
* hasPreserveBlock。
|
|
19
|
+
* 「这份文档里有没有治理契约 / 有几个正本标题」,见文末 GOVERNANCE_HEADING /
|
|
20
|
+
* hasGovernanceContract / countGovernanceHeadings / hasPreserveBlock。
|
|
27
21
|
*/
|
|
28
|
-
/** 注入段落点文件名(检测顺序即路由优先级:旧模型仓 CLAUDE.md 优先) */
|
|
29
|
-
export declare const INJECTION_FILES: readonly ["CLAUDE.md", "AGENTS.md"];
|
|
30
|
-
export type InjectionFile = (typeof INJECTION_FILES)[number];
|
|
31
22
|
/** 标记区间替换结果 */
|
|
32
23
|
export type MarkerWrite = {
|
|
33
24
|
kind: 'updated';
|
|
@@ -60,25 +51,6 @@ export declare function replaceStandaloneRange(content: string, begin: string, e
|
|
|
60
51
|
* 区间后文恰好剥一个换行(外层标记拼接位),其余手写余文原样保留。
|
|
61
52
|
*/
|
|
62
53
|
export declare function replaceEnclosedRange(content: string, begin: string, end: string, body: string): MarkerWrite;
|
|
63
|
-
/**
|
|
64
|
-
* 读侧路由:定位含完整 HARNESS_CONSTRAINTS 标记段的文件(studio #307)。
|
|
65
|
-
* detectInjectionDrift 与 retire 注入段同步共用。
|
|
66
|
-
*/
|
|
67
|
-
export declare function resolveInjectionTarget(projectRoot: string): {
|
|
68
|
-
file: InjectionFile;
|
|
69
|
-
content: string;
|
|
70
|
-
startIdx: number;
|
|
71
|
-
endIdx: number;
|
|
72
|
-
} | null;
|
|
73
|
-
/**
|
|
74
|
-
* 写侧路由(init 落点选择,原 setupGovernanceConstraints 内联判定收于此):
|
|
75
|
-
* CLAUDE.md 有约束标记段或有旧版 `## Governance Rules` 块 → 续写 CLAUDE.md
|
|
76
|
-
* (旧模型仓豁免,不制造双份正本);否则 AGENTS.md PRESERVE:governance。
|
|
77
|
-
*/
|
|
78
|
-
export declare function resolveGovernanceLanding(projectRoot: string): {
|
|
79
|
-
target: 'claude-md' | 'agents-md';
|
|
80
|
-
claudeContent: string | null;
|
|
81
|
-
};
|
|
82
54
|
/**
|
|
83
55
|
* 治理正本标题字面量(单一来源,#83):init 的标题写点与下列两个判定谓词
|
|
84
56
|
* 都由它派生,仓内不再本地拼写。字面量无正则元字符,可直接拼入 RegExp。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-writer.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/injection-writer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"injection-writer.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/injection-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,eAAe;AACf,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO5D;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAQ3G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAQ7G;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAQ3G;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAkBxD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAevE"}
|