ops-warden/src/warden
tegwick d0d4f9d8fc
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Make the risk grade fail safe, and gate CI on absence
The mechanism behind RISK-F-0003 was sharper than the finding described.
is_high_risk was risk == "high", but risk was never absent at the model layer:
RouteEntry.risk carried a dataclass default of "standard". An omitted grade was
not unhandled, it was actively resolved to the permissive value — fail-open by
construction, which is why nothing ever warned.

The default is now "ungraded" and is_high_risk returns true for anything outside
an explicit low-risk vocabulary (standard / low / accepted). An omitted grade and
an unrecognised grade from a newer catalog both resolve to high, so the boundary
fails safe in both directions rather than reading an unknown value as permission.

test_every_repo_catalog_lane_is_explicitly_graded is the CI gate that stops an
ungraded lane being committed, per ADR-0007: absence is not a grade.

"accepted" is in the low-risk vocabulary deliberately, ready for the
maturity-derived default — an experimental-context lane may be explicitly
accepted, which is a graded decision rather than an omission.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 01:13:35 +02:00
..
routing Make the risk grade fail safe, and gate CI on absence 2026-08-20 01:13:35 +02:00
scripts Initial Commit 2026-03-28 00:45:43 +00:00
__init__.py Initial Commit 2026-03-28 00:45:43 +00:00
access.py feat(WARDEN-WP-0014): T2 — warden access advisory front door 2026-06-27 16:13:51 +02:00
audit.py Implement WP-0022 audit trail and WP-0023 INTENT–SCOPE closeout 2026-07-01 23:32:38 +02:00
ca.py Implement WP-0022 audit trail and WP-0023 INTENT–SCOPE closeout 2026-07-01 23:32:38 +02:00
caller_identity.py Send a caller identity to flex-auth so policy.enabled can flip 2026-08-19 15:08:34 +02:00
cli.py Ship WARDEN-WP-0030: delegation register for every catalog lane 2026-08-15 20:54:58 +02:00
config.py Send a caller identity to flex-auth so policy.enabled can flip 2026-08-19 15:08:34 +02:00
desk.py WARDEN-WP-0029: implement plan front door, org posture, desk, freshness 2026-07-18 16:59:37 +02:00
doubles.py feat(WARDEN-WP-0015): T3 conformance checker + T4 dev-tier contract doubles 2026-06-27 19:30:30 +02:00
inventory.py Initial Commit 2026-03-28 00:45:43 +00:00
mask.py WARDEN-WP-0026 T03: masking display filter (defense-in-depth) 2026-07-16 14:54:55 +02:00
memory.py Add Makefile targets to install and verify phase-memory with warden. 2026-07-03 00:54:21 +02:00
models.py feat: opt-in flex-auth policy gate and OpenBao verify (WP-0007) 2026-06-17 08:37:14 +02:00
plan.py WARDEN-WP-0029: implement plan front door, org posture, desk, freshness 2026-07-18 16:59:37 +02:00
policy.py Send a caller identity to flex-auth so policy.enabled can flip 2026-08-19 15:08:34 +02:00
posture.py WARDEN-WP-0029: implement plan front door, org posture, desk, freshness 2026-07-18 16:59:37 +02:00
proxy.py WARDEN-WP-0026 T03: masking display filter (defense-in-depth) 2026-07-16 14:54:55 +02:00
scorecard.py WARDEN-WP-0029: implement plan front door, org posture, desk, freshness 2026-07-18 16:59:37 +02:00
taint.py WARDEN-WP-0026 finish Strand A (T04/T05/T07) 2026-07-16 23:26:26 +02:00
vault.py Implement WP-0022 audit trail and WP-0023 INTENT–SCOPE closeout 2026-07-01 23:32:38 +02:00
vault_hints.py Implement WP-0022 audit trail and WP-0023 INTENT–SCOPE closeout 2026-07-01 23:32:38 +02:00
worker.py Enable implicit phase-memory activation on every warden command. 2026-07-03 00:49:36 +02:00