feat: harden release signing and coverage gate
ForgeFlow quality gate / quality (push) Canceled after 0s

This commit is contained in:
NuklearRabbit
2026-07-29 22:54:51 +02:00
parent aa4895912a
commit 18f42621c2
13 changed files with 496 additions and 39 deletions
+9 -11
View File
@@ -1,20 +1,18 @@
# Coverage policy
ForgeFlow treats coverage as release evidence, not as a target to game. `npm run coverage`
enforces 75% statements, 75% lines, 75% functions and 60% branches globally.
enforces 75% statements, 75% lines, 75% functions and 65% branches globally.
The July 2026 hardening pass raised the measured baseline from 69.74% statements/lines,
68.82% functions and 55.38% branches to at least 78% statements/lines, 79% functions and
60% branches. The requested 65% global branch target was investigated but is not used as
the release gate yet. Node/V8 discovers additional branch counters when previously
unexecuted functions become covered; the denominator grew from 2,537 to more than 3,100
while the new tests added hundreds of asserted branches. Raising the number by excluding
command builders, platform guards or error adapters would make the result look better
without increasing deployment safety.
68.82% functions and 55.38% branches to 81.48% statements/lines, 82.07% functions and
65.59% branches. Node/V8 discovered additional branch counters when previously unexecuted
functions became covered; the denominator grew from 2,537 to 3,473 while the new tests
added hundreds of asserted decisions. No command builders, platform guards or error
adapters were excluded to improve the result cosmetically.
The 60% global gate is therefore paired with scenario-level evidence for the critical
The 65% global gate is paired with scenario-level evidence for the critical
boundaries: deploy-key rollback, deployment verification, Gitea authentication and
redirects, SSH host identity and output limits, inventory reconciliation, stale plans,
configuration recovery, release integrity and updater failure modes. New code must not
reduce the global baseline. A future increase to 65% should come from additional asserted
failure scenarios, not ignore comments or source exclusions.
reduce the global baseline. Future increases must come from additional asserted failure
scenarios, not ignore comments or source exclusions.