Typed, dated, defaulted waits — and cut the four-hop chain

The register had nine waits in four days, one four hops deep: F-0003's
embargo waited on F-0009, which waited on railiance-platform, which
waited on live OpenBao verification, which waited on a credential nobody
has. No single link was wrong, which is why it needed a rule.

docs/method/dependencies.md: the register never waits to decide, it
decides and revises. Every wait carries who, what, since, what it would
change, what happens if nobody answers, and the date that default
applies. Depth one — a record never waits on a record that is itself
waiting. Defaults are dates and are pessimistic: silence costs the grade
the evidence supports rather than buying a softer one, and owners are
told the default in advance because a default nobody was warned about is
an ambush.

Applied: F-0009's embargo now lifts on railiance-platform reporting
coverage, with live verification as a refinement rather than a condition,
cutting the F-0003 chain from four hops to two. All eight open waits are
typed with defaults. make check reports them with age, owner and default
date, flags defaults come due, and catches depth-two violations.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-20 22:34:56 +02:00
parent 56b8d61583
commit d5147bfaea
11 changed files with 220 additions and 7 deletions

View file

@ -33,6 +33,13 @@ last_checked: "2026-08-20T10:02:41Z"
next_check: "2026-08-20T10:02:41Z"
cadence: instant
clean_streak: 0
waiting_on:
- who: ops-warden
what: "probe whether the flex-auth pin you call admits ingress, before enabling policy.enabled"
since: "2026-08-20"
would_change: "if it admits no ingress, enabling the gate stops all signing — an availability blocker, not a risk one"
default: "the register records the ordering as unverified and re-raises it; the finding stands at medium"
default_at: "2026-08-27"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-19
---

View file

@ -29,6 +29,13 @@ last_checked: "2026-08-20T10:02:42Z"
next_check: "2026-08-20T11:02:42Z"
cadence: 1h
clean_streak: 1
waiting_on:
- who: tenant-engine
what: "confirm or correct the unfiltered events() read; open fix tracking"
since: "2026-08-19"
would_change: "grade rises if the log carries tenant payload rather than metadata"
default: "grade stands as recorded; absent fix tracking is recorded as a stall"
default_at: "2026-09-03"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-19-B
---

View file

@ -29,6 +29,13 @@ last_checked: "2026-08-20T10:02:42Z"
next_check: "2026-08-20T11:02:42Z"
cadence: 1h
clean_streak: 1
waiting_on:
- who: audit-core
what: "is may_read false on every production credential, or only on the sender"
since: "2026-08-19"
would_change: "likelihood rises to L3 if any other production credential carries may_read"
default: "graded on the sender alone, as stated; the wider question is recorded as unanswered"
default_at: "2026-09-19"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-19-B
---

View file

@ -35,6 +35,13 @@ last_checked: "2026-08-20T10:02:42Z"
next_check: "2026-08-20T11:02:42Z"
cadence: 1h
clean_streak: 1
waiting_on:
- who: railiance-platform
what: "the backup target chosen, its monthly cost, and a demonstrated restore"
since: "2026-08-19"
would_change: "embargo lifts on a demonstrated restore; the approved spend becomes a real figure"
default: "recorded as stalled with approval already granted, which is the worst kind of stall"
default_at: "2026-09-18"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-19-B
---

View file

@ -38,6 +38,13 @@ last_checked: "2026-08-20T10:02:41Z"
next_check: "2026-08-20T10:02:41Z"
cadence: instant
clean_streak: 0
waiting_on:
- who: user-engine
what: "does anything verify that a caller for tenant A cannot reach tenant B (RISK-V-0002)"
since: "2026-08-20"
would_change: "likelihood falls for user-engine if a verification exists; a defect becomes its own finding if not"
default: "the on-request path is recorded as having produced no answer, which makes the acceptance itself unsupported and is escalated"
default_at: "2026-09-03"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-19-B
---

View file

@ -36,6 +36,19 @@ last_checked: "2026-08-20T10:02:41Z"
next_check: "2026-08-20T10:02:41Z"
cadence: instant
clean_streak: 0
waiting_on:
- who: audit-core
what: "does a keyed commitment restore erasability without breaking chain verification; what is the platform-pg co-residency horizon"
since: "2026-08-20"
would_change: "a working keyed commitment narrows RISK-REG-0001 to retained-by-obligation categories only"
default: "encrypt-then-hash recorded as the only known route, and the retention period recorded as unstateable"
default_at: "2026-11-17"
- who: the-custodian
what: "rule the trigger list for buying an external determination"
since: "2026-08-19"
would_change: "fixes when the estate stops running on an assumption"
default: "the assumption is recorded in the register as an assumption"
default_at: "2026-11-17"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-19-C
---

View file

@ -22,13 +22,20 @@ likelihood: L2
fidelity_modifier: false
production_rescore: false
disclosure: embargoed
embargo_condition: "the deny set covers every high-risk lane with a KV path, verified against live OpenBao"
embargo_condition: "railiance-platform reports the deny set covers every high-risk lane with a KV path (live verification refines the grade, it is not the condition)"
embargo_since: "2026-08-20"
escalation: none
last_checked: "2026-08-20T10:02:42Z"
next_check: "2026-08-20T11:02:42Z"
cadence: 1h
clean_streak: 1
waiting_on:
- who: railiance-platform
what: "report whether the deny set covers every high-risk lane with a KV path"
since: "2026-08-20"
would_change: "embargo lifts on coverage; live verification would refine the grade but is not required for it"
default: "the eight uncovered paths stand as recorded and the finding is re-raised"
default_at: "2026-09-03"
graded_by: risk-nexus
ruling: RISK-RULING-2026-08-20
---