The operator token was not expired after all -- `bao policy read` succeeded, so
the deployed policy is now compared directly instead of the file. Three
corrections to RISK-F-0009, which was filed static:
1. Six high-risk lanes are uncovered, not eight. The finding counted
openbao-api-key (a path pattern) and ops-warden-warden-sign-token (a broker
grant, not KV) among the concrete uncovered paths, while its own prose said
the first was a pattern. Five lanes have no address for a policy to deny.
2. Coverage holds at 6 of 17 against the live policy.
3. The deployed policy has drifted from the file: the file denies
platform/workloads/core-hub/runtime, the server does not. No ops-warden lane
maps there so our numbers are unchanged, but it proves the file was never a
safe proxy for the server -- which is what the finding flagged as unconfirmed.
scripts/check_agent_read_boundary.py is the invariant RISK-F-0009 asked for
rather than a one-off audit: it fails when a high-risk lane has no corresponding
deny. Capabilities-only by construction -- it reads the policy document, never a
secret value, and never mints a token.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>