sim
041414c4ad
feat( #3309 ): generate health.md's error-code and repair-action tables
...
Closes the issue's explicit acceptance criterion: "health.md's tables
are generated rather than hand-maintained, closing the 16-vs-30+
documentation gap structurally." The published roster listed 16 codes
against 30+ actually emitted; W010-W017 and W020-W023 had never been
documented.
Adds description/repairable as static fields on Rule (health-diagnostic-types.cts)
— generation needs a fixed, human-readable summary per code, distinct
from the dynamic per-instance Diagnostic.message a rule's check()
produces. repairable is true only when --repair will actually apply
the remedy: false for ADVISE-only rules AND for DESTRUCTIVE-risk rules
(regenerateState/resetConfig), which are described but never
auto-applied — matches verify.cts's diagnosticToIssueEntry semantics
exactly, after fixing E004/E005's static field to agree with it (both
were wrongly true, an inconsistency caught during this same commit's
own review, not left for later).
New scripts/gen-health-docs.cjs (--write/--check, wired into
lint:generated-sync) regenerates the two tagged table regions in
gsd-core/workflows/health.md from RULES (31 rules) plus the 3
pre-checks that stay outside the rule table by design (E001, E010,
I010) plus a small static Effect/Risk lookup for the 6 real repair
actions — including addAiIntegrationPhaseKey, live in code since an
earlier phase but never documented until now. 34 error-code rows, 6
repair-action rows. The table's old "grep verify.cts for the next free
number" footnote is rewritten to point at the rule table and its lint
guard instead.
2026-08-13 03:13:25 -04:00
..
2026-08-13 03:13:25 -04:00
2026-07-09 19:38:27 -04:00
2026-08-07 13:41:21 -04:00
2026-07-28 18:02:17 -04:00
2026-08-02 21:44:04 -04:00
2026-06-28 02:12:06 -04:00
2026-07-17 06:50:06 -04:00
2026-06-21 22:55:22 -04:00
2026-07-20 14:59:30 -04:00
2026-08-12 20:45:00 -04:00
2026-08-06 23:57:05 -04:00
2026-08-11 20:06:23 -04:00
2026-06-27 08:43:47 -04:00
2026-06-23 23:21:06 -04:00
2026-08-08 01:20:55 -04:00
2026-08-07 03:14:40 -04:00
2026-06-16 02:38:47 -04:00
2026-07-30 12:48:06 -04:00
2026-06-20 01:59:03 -04:00
2026-07-30 12:48:06 -04:00
2026-07-29 10:55:45 -04:00
2026-06-25 23:55:58 -04:00
2026-07-02 20:34:30 -04:00
2026-07-07 00:19:08 -04:00
2026-08-11 17:42:41 -04:00
2026-08-11 23:35:44 -04:00
2026-08-10 12:55:52 -04:00
2026-07-28 18:02:17 -04:00
2026-07-27 16:24:21 -04:00
2026-07-27 16:24:21 -04:00
2026-06-10 10:40:12 -04:00
2026-06-26 12:19:39 -04:00
2026-07-12 15:34:59 -04:00
2026-07-05 19:16:06 +00:00
2026-06-02 11:45:01 -04:00
2026-08-10 01:31:15 -04:00
2026-08-07 09:30:27 -04:00
2026-06-02 11:45:01 -04:00
2026-06-13 10:27:12 -04:00
2026-06-23 22:47:57 -04:00
2026-08-11 18:08:39 -04:00
2026-08-01 21:00:23 -04:00
2026-08-09 19:52:47 -04:00
2026-08-05 21:26:38 -04:00
2026-06-23 16:10:34 -04:00
2026-06-15 18:50:46 -04:00
2026-08-03 10:46:22 -04:00
2026-06-08 22:51:43 -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-08-12 22:21:53 -04:00
2026-06-22 23:43:22 -04:00
2026-07-17 16:25:13 -04:00
2026-08-03 19:59:58 -04:00
2026-07-13 15:36:17 -04:00
2026-06-14 21:44:21 -04:00
2026-06-28 02:12:06 -04:00
2026-07-26 21:42:50 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-07-17 06:50:06 -04:00
2026-08-05 16:00:52 -04:00
2026-06-11 11:36:50 -04:00
2026-06-08 23:37:41 -04:00
2026-08-12 09:14:54 -04:00
2026-08-08 01:20:55 -04:00
2026-08-03 12:16:56 -04:00
2026-08-09 19:52:47 -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-13 02:56:30 -04:00
2026-06-28 11:44:36 -04:00
2026-07-02 21:45:35 -04:00
2026-08-04 20:33:50 -04:00
2026-08-10 09:48:26 -04:00
2026-08-07 09:30:27 -04:00
2026-08-12 20:45:04 -04:00
2026-07-07 22:21:45 -04:00
2026-08-09 22:25:42 -04:00
2026-08-04 18:10:31 -04:00
2026-08-10 15:50:55 -04:00
2026-08-10 15:50:55 -04:00
2026-08-07 13:41:21 -04:00
2026-08-07 13:41:21 -04:00
2026-08-10 15:50:55 -04:00
2026-06-23 23:21:06 -04:00
2026-06-16 00:12:54 -04:00
2026-08-05 16:00:52 -04:00
2026-06-15 16:18:54 -04:00
2026-07-07 19:38:01 -04:00
2026-07-31 13:17:01 -04:00
2026-08-11 23:52:46 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-08-12 20:45:04 -04:00
2026-06-28 11:27:44 -04:00
2026-08-09 19:16:04 -04:00
2026-06-02 11:45:01 -04:00
2026-08-09 23:05:41 -04:00
2026-07-07 12:14:43 -04:00
2026-07-19 15:43:48 -04:00
2026-06-02 11:45:01 -04:00
2026-06-05 17:58:48 -04:00
2026-07-28 18:02:17 -04:00
2026-07-26 21:42:50 -04:00
2026-08-12 20:45:04 -04:00
2026-08-08 16:05:17 -04:00
2026-08-12 20:45:04 -04:00
2026-08-12 21:01:07 -04:00
2026-07-02 11:14:01 -04:00
2026-08-04 06:47:46 -04:00
2026-08-09 14:23:35 -04:00
2026-08-10 10:18:29 -04:00
2026-08-08 01:20:55 -04:00
2026-08-13 02:56:23 -04:00
2026-08-07 09:30:27 -04:00
2026-07-02 11:55:53 -04:00
2026-07-26 01:06:35 -04:00
2026-06-08 14:04:26 -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-08-09 19:52:47 -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-03 12:05:45 -04:00
2026-08-11 17:42:41 -04:00
2026-08-11 17:42:41 -04:00
2026-08-11 17:42:41 -04:00
2026-08-09 19:18:56 -04:00
2026-08-05 18:22:14 -04:00
2026-08-12 20:45:04 -04:00
2026-08-10 12:55:52 -04:00
2026-08-12 20:45:04 -04:00
2026-08-12 18:30:56 -04:00
2026-08-09 20:16:23 -04:00
2026-08-10 15:50:55 -04:00
2026-08-11 23:35:44 -04:00
2026-08-08 05:50:49 -05:00
2026-08-04 23:42:16 -04:00
2026-07-22 00:27:35 -04:00
2026-08-10 09:48:26 -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-07-14 14:25:44 -04:00
2026-06-18 14:41:20 -04:00
2026-08-10 12:55:52 -04:00
2026-08-12 20:46:12 -04:00
2026-07-06 14:40:38 -04:00
2026-06-29 16:15:55 -04:00
2026-08-10 11:59:51 -04:00
2026-06-28 11:44:36 -04:00
2026-08-11 17:10:23 -04:00
2026-08-12 09:14:54 -04:00
2026-08-09 22:25:42 -04:00
2026-06-15 16:18:54 -04:00
2026-06-17 08:52:23 -04:00
2026-07-12 15:34:59 -04:00
2026-08-05 16:00:52 -04:00
2026-08-08 14:22:10 -04:00
2026-07-28 18:31:47 -04:00
2026-07-12 16:22:47 -04:00
2026-08-13 01:10:53 -04:00
2026-08-10 09:48:26 -04:00
2026-06-02 11:45:01 -04:00
2026-08-12 20:45:04 -04:00
2026-06-07 01:26:56 -04:00
2026-08-10 10:18:29 -04:00
2026-06-02 11:45:01 -04:00
2026-08-13 02:28:49 -04:00
2026-08-03 19:59:58 -04:00
2026-08-10 11:59:51 -04:00
2026-08-10 10:18:29 -04:00
2026-06-02 11:45:01 -04:00
2026-08-08 19:06:13 -04:00
2026-08-05 16:00:52 -04:00
2026-08-09 16:12:57 -04:00
2026-07-13 20:39:58 -04:00