Rezolv
590edec7a7
fix( #3956 ): require positive evidence for verify artifacts/key-links pass ( #4004 )
...
* fix(#3956 ): require positive evidence for verify artifacts/key-links pass
An all-string or path-less must_haves.artifacts / key_links block is
item-by-item skipped, leaving zero checked results, yet the pass verdict
was computed as `passed === results.length` (0 === 0), so all_passed /
all_verified read true with status valid and exit 0: a silent false GREEN
over zero acceptance evidence.
Add a positive-evidence floor (results.length > 0) to both verdicts,
mirroring the no-vacuous-pass rule at src/uat-predicate.cts. A well-formed
block, the fully-empty-block error, the parser's string tolerance, and
key-links pending (#1202 ) semantics are all unchanged.
Governing: ADR-3473 section 8 / 37C (absence, emptiness and failure must
not encode as success) and Decision 3 (failure is a value).
* chore(#3956 ): add changeset for verify vacuous-pass fix
* test(#3956 ): add mixed-block coverage and correct the key-links vacuous-pass comment
Addresses review on #4004 :
- Correct the cmdVerifyKeyLinks positive-evidence-floor comment: only bare-string
items are continue-skipped; a from:-less object is NOT skipped (it falls through
to a verified:false hard failure), so it was never part of the vacuous-pass
surface. The prior comment overclaimed symmetry with the artifacts side.
- Add a mixed-block regression test per verb (one bare-string prose bullet + one
well-formed entry): the string is skipped, results.length === 1 > 0, and the
verdict follows the single real entry — pinning that the floor does not
over-reject a partial block.
- Tighten the changeset wording to match (all-bare-string, not "no path:/from: key").
---------
Co-authored-by: Tom Boucher <trekkie@nomorestars.com >
2026-09-03 21:46:50 +00:00
..
2026-08-31 14:03:48 -04:00
2026-07-09 19:38:27 -04:00
2026-08-27 02:24:03 -04:00
2026-07-28 18:02:17 -04:00
2026-08-26 19:29:32 -04:00
2026-08-26 16:03:11 -04:00
2026-06-28 02:12:06 -04:00
2026-07-17 06:50:06 -04:00
2026-08-28 03:15:39 -04:00
2026-07-20 14:59:30 -04:00
2026-08-27 15:19:01 -04:00
2026-08-27 11:37:31 -04:00
2026-08-28 02:25:52 -04:00
2026-08-27 11:37:31 -04:00
2026-08-15 17:00:52 -04:00
2026-08-29 08:53:21 -04:00
2026-08-24 17:43:25 -04:00
2026-09-02 11:01:54 -04:00
2026-08-18 22:35:54 -04:00
2026-06-20 01:59:03 -04:00
2026-08-18 22:35:54 -04:00
2026-07-29 10:55:45 -04:00
2026-08-28 14:40:02 -04:00
2026-08-14 21:34:29 -04:00
2026-09-02 11:01:54 -04:00
2026-08-14 21:34:29 -04:00
2026-08-11 23:35:44 -04:00
2026-09-01 21:39:37 -04:00
2026-07-28 18:02:17 -04:00
2026-07-27 16:24:21 -04:00
2026-09-02 07:33:42 -04:00
2026-08-28 08:09:05 -04:00
2026-06-26 12:19:39 -04:00
2026-07-12 15:34:59 -04:00
2026-09-02 22:38:31 -04:00
2026-08-19 22:45:35 -04:00
2026-06-02 11:45:01 -04:00
2026-08-27 15:19:01 -04:00
2026-09-02 22:38:31 -04:00
2026-08-29 15:22:34 -04:00
2026-08-16 02:48:24 -04:00
2026-08-28 03:15:39 -04:00
2026-09-01 21:39:37 -04:00
2026-08-16 02:48:24 -04:00
2026-08-21 03:45:06 -04:00
2026-08-29 17:00:52 -04:00
2026-06-23 16:10:34 -04:00
2026-06-15 18:50:46 -04:00
2026-08-29 17:00:52 -04:00
2026-08-29 17:00:52 -04:00
2026-07-31 23:03:13 -04:00
2026-07-31 15:44:19 -04:00
2026-06-02 11:45:01 -04:00
2026-09-02 08:12:57 -04:00
2026-06-22 23:43:22 -04:00
2026-08-13 23:08:34 -04:00
2026-08-03 19:59:58 -04:00
2026-07-13 15:36:17 -04:00
2026-09-01 21:39:53 -04:00
2026-06-28 02:12:06 -04:00
2026-08-26 15:03:12 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-08-27 03:31:02 -04:00
2026-07-17 06:50:06 -04:00
2026-08-05 16:00:52 -04:00
2026-08-18 16:40:17 -04:00
2026-06-08 23:37:41 -04:00
2026-09-02 07:33:42 -04:00
2026-08-27 16:36:34 -04:00
2026-09-02 08:12:57 -04:00
2026-08-03 12:16:56 -04:00
2026-08-29 17:00:52 -04:00
2026-06-23 23:21:06 -04:00
2026-08-06 02:56:07 -04:00
2026-08-08 16:05:17 -04:00
2026-07-02 18:08:42 -04:00
2026-08-13 03:13:25 -04:00
2026-08-27 17:57:05 -04:00
2026-06-28 11:44:36 -04:00
2026-07-02 21:45:35 -04:00
2026-09-01 21:39:12 -04:00
2026-08-10 09:48:26 -04:00
2026-09-02 22:38:31 -04:00
2026-09-02 22:38:31 -04:00
2026-08-22 20:51:55 -04:00
2026-08-23 21:21:21 -04:00
2026-08-17 17:25:53 -04:00
2026-08-25 12:11:15 -04:00
2026-08-28 18:02:44 -04:00
2026-08-10 15:50:55 -04:00
2026-08-15 00:02:37 -04:00
2026-08-14 23:48:39 -04:00
2026-08-07 13:41:21 -04:00
2026-08-24 00:07:06 -04:00
2026-08-27 23:27:43 -04:00
2026-06-23 23:21:06 -04:00
2026-08-27 04:12:47 -04:00
2026-09-01 21:40:07 -04:00
2026-08-24 09:23:01 -04:00
2026-09-02 11:01:54 -04:00
2026-08-13 16:19:57 -04:00
2026-09-03 01:32:41 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-08-14 03:04:09 -04:00
2026-08-31 14:03:48 -04:00
2026-06-28 11:27:44 -04:00
2026-08-26 17:01:09 -04:00
2026-06-02 11:45:01 -04:00
2026-08-27 15:19:01 -04:00
2026-08-13 21:22:03 -04:00
2026-08-28 02:25:52 -04:00
2026-06-02 11:45:01 -04:00
2026-06-05 17:58:48 -04:00
2026-08-14 14:34:36 -04:00
2026-07-28 18:02:17 -04:00
2026-08-26 19:29:32 -04:00
2026-08-31 14:03:48 -04:00
2026-08-24 17:56:02 -04:00
2026-08-29 01:14:58 -04:00
2026-09-01 14:36:57 -04:00
2026-07-02 11:14:01 -04:00
2026-08-14 10:24:05 -04:00
2026-08-28 13:17:04 -04:00
2026-08-09 14:23:35 -04:00
2026-08-27 14:44:26 -04:00
2026-08-20 13:42:43 -04:00
2026-08-26 20:17:35 -04:00
2026-08-08 01:20:55 -04:00
2026-08-31 14:03:48 -04:00
2026-09-02 08:12:57 -04:00
2026-08-28 03:15:39 -04:00
2026-08-13 20:27:48 -04:00
2026-08-28 03:15:39 -04:00
2026-07-03 23:21:55 -04:00
2026-07-31 02:30:50 -04:00
2026-08-04 22:41:01 -04:00
2026-09-03 09:47:22 -04:00
2026-09-03 09:47:22 -04:00
2026-09-03 09:47:22 -04:00
2026-08-27 02:24:03 -04:00
2026-08-28 08:12:27 -04:00
2026-06-06 11:24:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-18 07:44:52 -04:00
2026-08-16 02:48:24 -04:00
2026-09-01 21:40:20 -04:00
2026-08-30 14:26:02 -04:00
2026-09-02 09:46:21 -04:00
2026-08-09 19:18:56 -04:00
2026-08-20 17:48:50 -04:00
2026-09-02 02:33:54 -04:00
2026-08-13 20:27:48 -04:00
2026-09-02 08:12:57 -04:00
2026-09-02 12:19:41 -04:00
2026-08-17 17:25:53 -04:00
2026-08-25 19:54:30 -04:00
2026-08-11 23:35:44 -04:00
2026-08-08 05:50:49 -05:00
2026-09-02 01:26:37 -04:00
2026-08-25 11:36:59 -04:00
2026-08-18 09:23:44 -04:00
2026-08-27 15:19:01 -04:00
2026-07-13 15:36:17 -04:00
2026-06-02 11:45:01 -04:00
2026-08-03 19:59:58 -04:00
2026-08-19 08:59:37 -04:00
2026-06-18 14:41:20 -04:00
2026-08-29 14:37:21 -04:00
2026-09-01 13:58:20 -04:00
2026-08-28 03:15:39 -04:00
2026-08-27 00:12:13 -04:00
2026-08-24 17:56:02 -04:00
2026-09-03 17:14:12 -04:00
2026-06-28 11:44:36 -04:00
2026-09-01 15:03:20 -04:00
2026-09-01 15:03:20 -04:00
2026-09-01 21:40:07 -04:00
2026-08-23 21:21:21 -04:00
2026-08-28 13:17:04 -04:00
2026-08-28 13:17:04 -04:00
2026-08-28 03:15:39 -04:00
2026-07-12 15:34:59 -04:00
2026-08-13 20:27:48 -04:00
2026-08-13 23:08:34 -04:00
2026-08-26 20:17:35 -04:00
2026-08-31 13:44:47 -04:00
2026-08-28 03:15:39 -04:00
2026-08-14 09:27:48 -04:00
2026-08-27 11:37:31 -04:00
2026-08-22 18:57:19 -04:00
2026-08-10 09:48:26 -04:00
2026-08-17 17:25:53 -04:00
2026-08-27 00:12:13 -04:00
2026-08-31 14:03:48 -04:00
2026-08-14 19:18:29 -04:00
2026-08-26 20:17:35 -04:00
2026-08-24 19:05:11 -04:00
2026-09-01 21:39:37 -04:00
2026-09-03 21:46:50 +00:00
2026-08-03 19:59:58 -04:00
2026-08-10 11:59:51 -04:00
2026-08-31 14:03:48 -04:00
2026-08-26 16:03:11 -04:00
2026-08-08 19:06:13 -04:00
2026-08-21 04:58:33 -04:00
2026-08-22 13:17:51 -04:00
2026-07-13 20:39:58 -04:00