The brief every spawned sub-agent reads FIRST so it uses the real tools and isn't walled by Windows:
LAW-1 (Linux/Ubuntu/WSL/USB-raw via wsl, not PowerShell; MSYS_NO_PATHCONV + inline /mnt paths;
fabric=authority, Windows=mirror; git/gh=mediator) + the WSL gotchas + LAW-2 (the 8-scenario
claims-gate, tag MEASURED/CANON/UNVERIFIED) + the harness self-gate paths. Proven: a 3-agent wave
given only this brief all ran on the Linux lane with zero Windows walls. Paths are acer-seat; adapt per seat.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019NqTnTpYZVqcAhWeqWjhoh
Adds the SkillOpt behavior gate on top of v1's law-text lint. v1 checks the skill TEXT
encodes a rule; v2 scores the agent's RESPONSE to a realistic prompt -- with the skill vs
without -- because law-coverage != disciplined behavior (an agent scored 8/8 law-coverage
yet committed several of these mistakes in one session).
Harness-agnostic adapters (SkillOpt adapter interface) make it work for BOTH seats:
transcript (offline CI), claude (ANTHROPIC_API_KEY -> Claude Code/acer), codex
(OPENAI_API_KEY -> Codex/liris), echo. 8 held-out scenarios as prompt+rubric; offline
self-test discriminates good (8/8) vs bad (0/8). Honest: rubric is keyword-based (v3 =
LLM judge), live adapters need keys, not the full optimizer loop yet (this is the gate).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019NqTnTpYZVqcAhWeqWjhoh