b632bcbae6
V2 audit found 10 new bypasses: - Fatal: subagent inheritance via text-prefix (no enforcement) - Critical: hook race conditions / DoS timeout / Bash script execution - Serious: path-deny symlinks/case / AskUser fatigue / silence off-topic - Edge cases: parallel subagents / coverage-verify interaction / sub-shells V3 closes all 10: - 3.2 rewritten: env-based subagent inheritance (env vars + inheritance file), gate-on-subagent reads parent state via CLAUDE_GATE_INHERIT env - 3.4 new: subagent constraints (no AskUser, no recursive Task, max 3 parallel) - 3.5 new: atomic writes (tmp+rename) + proper-lockfile for race-free state - 3.6 new: gate budget 2s + state cache TTL 5s + lazy transcript parsing - 3.1 extended: path normalization (resolve + realpath + case-fold + env) - 4.5 extended: max 2 AskUserQuestion per turn (fatigue exploit closed) - 4.7 extended: off-topic at silence uses task_classification - 5.1 extended: file-watcher for script execution + broad sweep sub-shell blacklist (backticks, command sub, process sub, heredocs) - 5.2 new: static content scan for node/python/vitest scripts before exec - 7.1 new: coverage-hint coordination layer between gate and coverage-verify Implementation cost: 8.5-12h (v2) to 13.5-20h (v3). +5-8h for architectural fixes (env-inheritance, atomic writes, static scan) + infrastructure (gate budget, path norm, askuser counter, coverage-hint). V2 baseline preserved as commitb510a758. V1 as7a43c175. cspell-words.txt += shutil / rmtree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>