weichen
53d1be5349
feat(quote,squad): B5 input validation + review invariants; A5 non-critical step degradation
P10 backlog triage (implement B5+A5; A6 already fixed in-tree, D5 keep shared
KB, R1 separate task, R4/R5/R6/R7 no-go with evidence):
- quote: ValidateInput (empty names/hours, negative/NaN/Inf fail-closed);
reviewSummary invariants (line sums = total; buffer 20%/margin 40%/tax 7%
rate self-consistency) enforced before Excel write
- squad: StepSpec.Critical *bool (nil=critical default); non-critical step
failure marks step degraded + gov audit, workflow continues, final status
degraded with DegradedSteps list; critical failure semantics unchanged
- tests: 5 new cases (quote 3 + squad 2), full short suite green, arch-check pass
2026-09-25 17:10:35 +00:00
..
2026-09-23 13:25:32 +00:00
2026-09-21 15:11:29 +00:00
2026-09-25 16:33:56 +00:00
2026-09-15 16:20:19 +00:00
2026-09-24 00:56:54 +00:00
2026-09-24 04:18:58 +00:00
2026-09-23 10:11:46 +08:00
2026-09-25 04:45:49 +00:00
2026-09-25 14:37:11 +00:00
2026-09-23 17:40:40 +00:00
2026-09-24 17:04:04 +00:00
2026-09-22 21:44:57 +08:00
2026-09-25 13:19:36 +00:00
2026-09-25 05:26:29 +00:00
2026-09-15 02:40:12 +00:00
2026-09-25 04:45:49 +00:00
2026-09-24 17:04:04 +00:00
2026-09-15 10:24:24 +00:00
2026-09-22 21:40:12 +08:00
2026-09-25 06:52:55 +00:00
2026-09-24 00:45:22 +00:00
2026-09-25 06:52:55 +00:00
2026-09-24 11:44:20 +00:00
2026-09-23 13:57:08 +00:00
2026-09-14 02:30:11 +00:00
2026-09-24 23:21:39 +00:00
2026-09-20 07:04:57 +00:00
2026-09-25 12:53:08 +00:00
2026-09-23 17:40:40 +00:00
2026-09-18 03:40:24 +00:00
2026-09-24 15:53:50 +00:00
2026-09-25 16:33:56 +00:00
2026-09-23 09:55:59 +08:00
2026-09-15 10:29:38 +00:00
2026-09-23 12:49:33 +00:00
2026-09-24 11:44:20 +00:00
2026-09-13 02:50:22 +00:00
2026-09-13 02:50:23 +00:00
2026-09-24 11:49:43 +00:00
2026-09-23 09:52:16 +08:00
2026-09-25 17:10:35 +00:00
2026-09-13 02:50:21 +00:00
2026-09-25 16:33:58 +00:00
2026-09-25 17:10:35 +00:00
2026-09-25 13:17:25 +00:00
2026-09-23 10:22:23 +08:00
2026-09-24 11:45:54 +00:00
2026-09-18 04:02:18 +00:00
2026-09-25 16:33:56 +00:00
2026-09-23 13:25:32 +00:00
2026-09-19 10:50:25 +00:00
2026-09-22 21:51:19 +08:00
2026-09-13 02:50:23 +00:00
2026-09-22 21:44:57 +08:00
2026-09-22 21:44:57 +08:00
2026-09-21 09:11:47 +00:00
2026-09-23 13:25:32 +00:00