garrytan
25638ad445
INV-3: render-level host conformance and generated-bash lint on every host
...
One render per host checks every fence of every SKILL.md and section file:
bash -n with angle-bracket placeholders normalized; the env-var host prelude
and its B/D consumers run under env -i and set -u with stub binaries (no
empty value, no /bin/, /browse, /design or /gstack- path); and a quote-aware
lint (test/helpers/generated-bash-lint.ts) fails on a ~/ word inside double
quotes, mktemp without a TMPDIR-respecting template, and cd/rm -r/mv/git -C
on a variable the fence never assigned unless written ${VAR:?...} (cd must
also handle failure). Negative controls plant each failure.
Templated the bare mktemp calls in generator-owned resolvers and the upgrade
fence; migrated the two tests that pinned the bare form.
2026-10-03 21:12:13 +00:00
..
2026-09-29 08:58:49 -07:00
2026-10-03 07:54:09 -07:00
2026-09-25 13:27:07 -04:00
2026-08-15 22:20:30 -07:00
2026-08-29 10:10:35 -07:00
2026-09-06 08:54:25 -07:00
2026-10-03 07:54:09 -07:00
2026-09-25 13:27:07 -04:00
2026-10-03 01:19:03 -07:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-29 08:58:49 -07:00
2026-09-22 14:57:52 -04:00
2026-10-03 07:54:09 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-14 14:32:45 -07:00
2026-09-05 14:45:28 -07:00
2026-09-09 08:57:21 -07:00
2026-09-29 06:07:35 -07:00
2026-08-29 09:06:54 -07:00
2026-05-26 16:50:03 -07:00
2026-08-27 09:50:31 -07:00
2026-05-26 16:50:03 -07:00
2026-08-31 08:55:30 -07:00
2026-06-07 19:13:24 -07:00
2026-10-03 01:19:03 -07:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-29 08:58:49 -07:00
2026-10-01 13:55:16 -07:00
2026-10-03 01:19:03 -07:00
2026-10-01 13:55:16 -07:00
2026-10-03 01:19:03 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-10-03 07:54:09 -07:00
2026-09-22 14:57:52 -04:00
2026-10-03 07:54:09 -07:00
2026-10-03 07:54:09 -07:00
2026-09-26 18:57:53 -04:00
2026-10-01 13:55:16 -07:00
2026-09-26 18:57:53 -04:00
2026-09-25 12:06:45 -04:00
2026-10-03 07:54:09 -07:00
2026-10-03 07:54:09 -07:00
2026-09-29 08:58:49 -07:00
2026-09-25 12:06:45 -04:00
2026-09-14 15:14:58 -07:00
2026-09-14 15:14:58 -07:00
2026-10-03 01:19:03 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-10-03 07:54:09 -07:00
2026-10-03 07:54:09 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-03 07:54:09 -07:00
2026-08-24 08:55:58 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-08-28 11:43:13 -07:00
2026-10-03 21:12:13 +00:00
2026-10-02 11:11:00 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-10-03 07:54:09 -07:00
2026-10-01 13:55:16 -07:00
2026-10-03 07:54:09 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-03 01:19:03 -07:00
2026-09-14 14:32:45 -07:00
2026-09-29 06:07:35 -07:00
2026-09-14 14:32:45 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-14 15:14:58 -07:00
2026-10-03 07:54:09 -07:00
2026-09-24 01:53:58 -04:00
2026-10-03 07:54:09 -07:00
2026-10-03 07:54:09 -07:00
2026-09-14 14:32:45 -07:00
2026-09-24 01:53:58 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00
2026-09-29 08:58:49 -07:00
2026-09-29 08:58:49 -07:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-03 07:54:09 -07:00
2026-10-01 11:57:48 -07:00
2026-09-14 14:32:45 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 06:07:35 -07:00
2026-10-03 01:19:03 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 08:58:49 -07:00
2026-09-29 08:58:49 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-09-29 08:58:49 -07:00
2026-04-24 01:38:21 -07:00
2026-09-29 06:07:35 -07:00
2026-09-23 08:54:53 -04:00
2026-10-03 07:54:09 -07:00
2026-09-28 16:00:12 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-10-03 01:19:03 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 13:55:16 -07:00
2026-09-24 01:53:58 -04:00
2026-09-29 06:07:35 -07:00
2026-10-03 07:54:09 -07:00
2026-09-29 06:07:35 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00
2026-08-14 09:28:56 -07:00
2026-09-29 06:07:35 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-03 01:19:03 -07:00
2026-09-25 13:27:07 -04:00
2026-09-06 08:54:25 -07:00
2026-09-29 08:58:49 -07:00
2026-10-03 07:54:09 -07:00
2026-08-15 22:20:30 -07:00
2026-10-03 07:54:09 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00
2026-10-03 01:19:03 -07:00