Tom Boucher
75d5ca5875
feat(code-review): integrate fallow structural pre-pass for /gsd-code-review (#3424)
* feat(code-review): add optional fallow structural pre-pass
* fix(ci): sync lockfile for fallow optional binaries
* fix(test): make fallow integration tests cross-platform
* fix(review): require executable fallow binary paths
* docs(review): clarify structural findings usage and size guard
* fix(fallow): preserve line:0, prefer node_modules/.bin, sync SDK twin (H1, M2, N1 from #3424 review)
* fix(workflow): harden fallow pre-pass — exit check, timeout, atomic write, size-guard order (B1, H2-H4, M1, M3 from #3424 review)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(deps): pin fallow floor to ^2.70.0 matching lockfile (H7 from #3424 review)
* fix(config): enum-validate fallow.scope/profile + group code_quality.* contiguously (H5, N3 from #3424 review)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(fallow): label mcp gate reserved, version-pin install, expand context schema (B3, H8, M4, M8, L1 from #3424 review)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* test(fallow): replace source-grep with behavioral tests, expand fixtures, fail-loud tmpdir (B4, H6, L2, L3, M5, M6, N2 from #3424 review)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(workflow): escape closing structural_findings tag in JSON payload (CR #3424 inline finding)
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:19:47 -04:00
..
2026-05-06 21:51:38 -04:00
2026-05-13 21:19:47 -04:00
2026-04-25 14:08:05 -06:00
2026-03-26 20:27:51 -06:00
2026-03-26 20:27:51 -06:00
2026-05-02 11:45:33 -04:00
2026-05-03 15:57:01 -04:00
2026-05-06 20:52:43 -04:00
2026-05-09 23:29:11 -04:00
2026-04-03 14:07:04 -04:00
2026-04-12 08:33:04 -04:00
2026-04-03 14:07:04 -04:00
2026-04-03 14:07:04 -04:00
2026-05-03 18:56:41 -04:00
2026-04-12 08:33:04 -04:00
2026-03-26 20:27:51 -06:00
2026-04-17 19:53:16 -05:00
2026-05-04 21:49:41 -04:00
2026-05-04 21:49:41 -04:00
2026-05-05 20:22:03 -04:00
2026-05-05 19:59:56 -04:00
2026-05-03 08:20:05 -04:00
2026-05-03 16:31:48 -04:00
2026-05-05 19:31:03 -04:00
2026-05-05 19:59:56 -04:00
2026-05-05 19:36:47 -04:00
2026-05-03 18:11:38 -04:00
2026-04-25 14:08:05 -06:00
2026-05-08 09:06:43 -04:00
2026-03-31 15:59:31 +03:00
2026-03-26 20:27:51 -06:00
2026-03-26 20:27:51 -06:00
2026-04-12 08:33:04 -04:00
2026-05-08 21:25:37 -04:00
2026-04-25 14:08:05 -06:00
2026-05-08 09:06:43 -04:00
2026-04-18 12:35:23 -04:00
2026-03-31 15:59:31 +03:00
2026-05-10 11:19:50 -04:00
2026-05-10 11:19:50 -04:00
2026-05-08 08:40:30 -04:00
2026-05-08 08:40:30 -04:00
2026-04-30 09:03:06 -06:00
2026-04-30 09:03:06 -06:00
2026-04-30 09:03:06 -06:00
2026-04-30 09:03:06 -06:00
2026-04-25 17:56:06 -06:00
2026-04-25 17:56:06 -06:00
2026-04-04 07:24:31 -04:00
2026-04-25 14:08:05 -06:00
2026-05-03 18:56:41 -04:00
2026-05-05 19:23:39 -04:00
2026-05-05 19:26:01 -04:00
2026-05-04 21:49:39 -04:00
2026-05-04 21:49:39 -04:00
2026-05-08 09:06:43 -04:00
2026-05-05 19:26:01 -04:00
2026-05-03 18:56:41 -04:00
2026-05-04 21:49:39 -04:00
2026-05-04 21:49:40 -04:00
2026-05-04 21:49:38 -04:00
2026-05-04 21:49:40 -04:00
2026-05-04 21:49:41 -04:00
2026-05-04 21:49:41 -04:00
2026-05-05 20:29:43 -04:00
2026-05-05 20:29:43 -04:00
2026-05-05 19:31:03 -04:00
2026-05-04 21:49:41 -04:00
2026-05-04 21:49:41 -04:00
2026-05-04 21:49:40 -04:00
2026-05-04 21:49:40 -04:00
2026-04-03 14:19:34 -04:00
2026-04-03 14:19:34 -04:00
2026-05-05 19:36:47 -04:00
2026-04-29 08:03:32 -04:00
2026-04-29 08:03:32 -04:00
2026-05-11 21:12:29 -04:00
2026-05-11 21:12:29 -04:00
2026-04-29 08:03:32 -04:00
2026-05-09 00:15:04 -04:00
2026-03-26 20:27:51 -06:00
2026-04-12 08:33:04 -04:00
2026-05-09 00:25:05 -04:00
2026-04-23 12:40:56 -04:00
2026-05-09 00:15:04 -04:00
2026-05-09 00:15:04 -04:00
2026-04-11 09:33:34 -04:00
2026-03-26 20:27:51 -06:00
2026-03-26 20:27:51 -06:00