cc-haha/scripts/quality-gate/coverage-thresholds.json
程序员阿江(Relakkes) b156be8d8d feat: make PR quality verification self-enforcing
Contributors and coding agents need one local command that both reports and enforces the quality contract. This change turns the PR gate into the shared verification entrypoint, adds path-selected local lanes, tightens coverage accounting around changed lines, and documents the repair loop in contributor and agent-facing guidance.

Constraint: Ordinary PR verification must stay non-live and runnable without provider credentials
Constraint: Coverage policy updates in this commit require maintainer approval before push/merge
Rejected: Keep quality guidance only in docs | agents need executable scripts and AGENTS.md instructions to follow the loop consistently
Confidence: high
Scope-risk: broad
Directive: Do not bypass `bun run verify` for production changes; fix failed lanes and coverage reports instead of lowering thresholds
Tested: bun run check:policy
Tested: ALLOW_CLI_CORE_CHANGE=1 ALLOW_COVERAGE_BASELINE_CHANGE=1 bun run verify
Not-tested: live provider baseline; no provider credentials were required for this non-live PR gate
2026-05-06 22:33:43 +08:00

71 lines
1.3 KiB
JSON

{
"schemaVersion": 1,
"minimums": {
"server-api": {
"lines": 68.53,
"functions": 79.99,
"branches": 0,
"statements": 68.53
},
"agent-tools": {
"lines": 17.1,
"functions": 17.25,
"branches": 0,
"statements": 17.1
},
"agent-utils": {
"lines": 14.42,
"functions": 12.14,
"branches": 0,
"statements": 14.42
},
"adapters": {
"lines": 75.94,
"functions": 83.35,
"branches": 0,
"statements": 75.94
},
"desktop": {
"lines": 67.23,
"functions": 52.49,
"branches": 72.86,
"statements": 67.23
}
},
"targets": {
"server-api": {
"lines": 75,
"functions": 80,
"statements": 75
},
"agent-tools": {
"lines": 60,
"functions": 60,
"statements": 60
},
"agent-utils": {
"lines": 60,
"functions": 60,
"statements": 60
},
"adapters": {
"lines": 80,
"functions": 85,
"statements": 80
},
"desktop": {
"lines": 75,
"functions": 70,
"branches": 75,
"statements": 75
}
},
"changedLines": {
"minimumPercent": 90
},
"ratchet": {
"baselinePath": "scripts/quality-gate/coverage-baseline.json",
"allowedDropPercent": 0.5
}
}