sim
acc1a7abd6
feat( #3309 ): add health-diagnostic rule-table lint guard
...
Enforces ADR-3180 §8.2's 1:1 rule-code invariant (every code unique,
every severity a property of the Rule) and §8.5's fixture-proof
invariant (every code has a describe()/test() block naming it,
verified statically against tests/health-diagnostic-rules/*.test.cjs
and tests/health-diagnostic.test.cjs) for the new RULES table.
Adapted from the design doc's original plan of separate
tests/fixtures/health-diagnostic/<code>.* files: implementation used
inline temp-dir fixtures instead (mirrors tests/planning-snapshot.test.cjs),
so coverage is checked statically against test-file structure, mirroring
lint-fix-has-regression-test.cjs's house style. Wired into lint:ci
adjacent to lint-planning-snapshot-bypass-drift.cjs, its closest sibling.
Passes clean against the real tree: 31 codes, all unique, all covered.
2026-08-13 01:53:20 -04:00
..
2026-08-12 21:43:39 -04:00
2026-08-10 12:55:52 -04:00
2026-08-09 18:29:16 -04:00
2026-07-29 17:06:04 -04:00
2026-06-13 23:35:08 -04:00
2026-05-01 21:13:45 -04:00
2026-06-10 00:15:02 -04:00
2026-08-04 23:42:16 -04:00
2026-08-09 18:29:16 -04:00
2026-07-23 09:14:02 -04:00
2026-06-06 16:13:13 -04:00
2026-07-28 18:26:55 -04:00
2026-06-06 16:13:13 -04:00
2026-06-06 16:13:13 -04:00
2026-06-16 08:38:55 -04:00
2026-07-21 09:15:59 -04:00
2026-07-28 15:41:43 -04:00
2026-06-02 18:35:29 -04:00
2026-06-16 08:24:21 -04:00
2026-06-14 16:03:26 -04:00
2026-08-09 17:08:46 -04:00
2026-08-04 13:23:44 -04:00
2026-07-30 08:52:56 -04:00
2026-07-31 13:17:01 -04:00
2026-07-28 15:41:43 -04:00
2026-07-14 19:22:13 -04:00
2026-08-04 18:51:12 -04:00
2026-06-14 01:39:54 -04:00
2026-06-22 18:07:35 -04:00
2026-07-31 23:03:13 -04:00
2026-07-31 08:11:57 -04:00
2026-06-06 16:13:13 -04:00
2026-08-02 22:36:45 -04:00
2026-07-20 16:51:35 -04:00
2026-08-01 21:00:23 -04:00
2026-06-07 20:35:43 -04:00
2026-06-13 16:13:00 -04:00
2026-08-12 00:51:19 -04:00
2026-08-12 00:51:19 -04:00
2026-08-10 12:23:01 -04:00
2026-08-10 12:55:52 -04:00
2026-06-06 16:13:13 -04:00
2026-08-02 21:22:43 -04:00
2026-08-10 10:18:29 -04:00
2026-08-08 16:05:17 -04:00
2026-08-10 12:55:52 -04:00
2026-06-06 16:13:13 -04:00
2026-08-04 13:23:44 -04:00
2026-08-05 19:27:07 -04:00
2026-07-31 13:15:29 -04:00
2026-08-09 19:35:34 -04:00
2026-08-09 19:35:34 -04:00
2026-07-31 15:44:19 -04:00
2026-07-23 12:13:12 -04:00
2026-08-10 12:55:52 -04:00
2026-08-13 01:53:20 -04:00
2026-06-06 16:13:13 -04:00
2026-08-08 19:06:13 -04:00
2026-06-02 18:35:29 -04:00
2026-08-08 14:22:10 -04:00
2026-07-10 09:24:49 -04:00
2026-08-08 14:22:10 -04:00
2026-08-08 16:05:17 -04:00
2026-08-12 21:43:39 -04:00
2026-07-19 14:37:15 -04:00
2026-06-06 16:13:13 -04:00
2026-07-03 10:22:11 -04:00
2026-08-12 08:28:17 -04:00
2026-08-10 12:55:52 -04:00
2026-06-18 08:50:22 -04:00
2026-07-27 00:09:13 -04:00
2026-06-06 16:13:13 -04:00
2026-06-06 16:13:13 -04:00
2026-08-09 22:49:39 -04:00
2026-07-14 14:25:44 -04:00
2026-08-12 20:45:04 -04:00
2026-06-06 16:13:13 -04:00
2026-08-08 05:50:49 -05:00
2026-07-31 23:03:13 -04:00
2026-08-09 21:38:53 -04:00
2026-06-14 17:16:19 -04:00
2026-08-09 21:38:53 -04:00
2026-08-12 20:45:04 -04:00
2026-08-01 16:13:28 -04:00
2026-07-31 08:11:57 -04:00
2026-07-17 12:38:37 -04:00
2026-08-09 21:38:53 -04:00
2026-07-05 17:15:48 -04:00
2026-06-06 16:13:13 -04:00
2026-08-08 16:05:17 -04:00
2026-05-23 10:58:14 -04:00
2026-06-10 00:15:02 -04:00
2026-06-07 22:03:48 -04:00
2026-07-05 14:04:00 -04:00
2026-06-06 11:24:48 -04:00
2026-07-04 13:32:51 -04:00
2026-06-12 13:29:45 -04:00
2026-05-30 17:25:02 -04:00
2026-07-05 19:16:10 +00:00
2026-05-26 11:23:29 -04:00
2026-07-31 08:11:57 -04:00
2026-06-06 16:13:13 -04:00
2026-06-11 13:36:47 -04:00
2026-07-28 15:41:43 -04:00