8708d93039
@testdesigner (Fable) designs an executable spec; @py (Haiku) grinds until green. Both are bullpen-lurker@ instances (.model fable / haiku) + dispatcher roster + bp timeouts + extended invoker allowlist. First ticket = reviewer finding #7 (_show shell-injection). Fable wrote a sharp black-box spec (tests/test_show_shell_safe.py) that PROVES the injection by pasting and executing the suggested command — 6 tests, and it independently caught the @architect debate-path variant too. Fix: _show now escapes the double-quote-context metacharacters (backslash, backtick, dollar, quote) so no command substitution or quote-breakout survives a copy-paste. 6/6 green. HONEST RESULT: the spec half worked; the GRINDER half did not — @py hit the 20-turn cap fighting remote-edit-over-sic (no Edit tool, re-running pytest across sic each cycle). So I closed the bug directly against Fable spec. Lesson: grinders need a LOCAL workspace (Edit + local pytest) and a higher turn budget, not remote-edit; and @testdesigner s reply was silently lost (reviewer #2 live). Grinder-harness rework + #2 are the follow-ups before @py is real. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWpfhDgYNA21tETDP9ueBE