Wire the Claude provider permission layer — the inner security boundary (Spec Principle 4). This is the provider-flag layer that complements the container/network/branch-protection layers; it is not the sole defence, but it must be correct.
Spec §3.2 (Claude permission/lockdown column), §7.4 (Provider permission layer — inner), §7.5 (Explicit prohibitions).
Acceptance criteria
Notes
These provider flags are the inner layer only — the container mount boundary, Squid egress allowlist, and GitHub branch protection (Phase 1 #8, Spec §7.1–§7.3) are the layers that actually hold. Do not treat this as the whole security boundary.
Depends on: #17
Wire the Claude provider permission layer — the inner security boundary (Spec Principle 4). This is the provider-flag layer that complements the container/network/branch-protection layers; it is not the sole defence, but it must be correct.
Spec §3.2 (Claude permission/lockdown column), §7.4 (Provider permission layer — inner), §7.5 (Explicit prohibitions).
Acceptance criteria
ClaudeAdapterruns sessions in strict-deny permission mode: anything not pre-approved is denied, never interactively prompted (sessions are non-interactive).allowed_toolsrestricts the surface to coding tools (read/write/run within the repo, dependency install, run tests) per §7.5's "full freedom inside, zero outside".rmoutside the repo, no editing CI/workflow files, no reading.envor secret stores, no file ops outside the project directory (§7.5)..env, edit a workflow file) is denied by the hook; an in-lane op is permitted; the audit hook fires on an allowed call.Notes
These provider flags are the inner layer only — the container mount boundary, Squid egress allowlist, and GitHub branch protection (Phase 1 #8, Spec §7.1–§7.3) are the layers that actually hold. Do not treat this as the whole security boundary.
Depends on: #17