feat(wp-0002): complete T07 — control loop on the live backup resource
The backup is procured and proven, so the loop runs on real evidence. - data/actuals/2026-08.json: first real observation. database 0.6365 GB, stored 0.0066 GB over 8 objects, backup success 1/1, restore RTO 1.08 min. Five proxies null, each with a named owner in measurement_gaps. - data/thresholds/platform-audit-storage.json + tools/thresholds.py: budget variance, abnormal growth, stale backup, unused commitment. Fail-closed — an unmeasured value is reported as unmeasured, never as within. - financial_exchange.py gains a usage mode emitting technical_usage records to fin-hub, with measurement gaps carried through and no infrastructure amount: fin-hub owns the booked fact and a null is never sent as 0.00. - observation schema 0.2 allows null cost and usage proxies; variance.py fails closed rather than reporting a 100% favourable variance on a missing amount. - platform-audit-storage: ordered -> active, commissioned 2026-08-14, on operational fact rather than on the purchase. The optimization case is now approved by the founder. That needed a schema change: Host Europe never supplied written terms, so options gained excluded/exclusion_reason. Previously an unevaluable alternative blocked its case forever, leaving the record claiming no decision while the bucket was in production. An excluded option keeps its unknowns and must say what would bring it back. August produces no variance and should not: the decision forecast starts at 2026-09, so August is a commissioning baseline. Threshold run is 2 within, 1 not applicable, 6 unmeasured, 0 breaches. Also fixes a pre-existing test failure: reef-storage consumers_actual is now rapp-postgres, which the assertion still expected to be empty. 136 tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
2704292d45
commit
10b988fa1c
17 changed files with 1312 additions and 122 deletions
|
|
@ -323,7 +323,7 @@ Evidence `docs/evidence/RESOURCE-WP-0002-T06-logical-offsite-2026-08-14.md`.
|
|||
|
||||
```task
|
||||
id: RESOURCE-WP-0002-T07
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "e6c848ce-ea4b-4ac6-99da-5890de242b50"
|
||||
```
|
||||
|
|
@ -340,3 +340,23 @@ contract timing, and credential revocation—not only a cheaper unit price.
|
|||
Done when fin-hub receives normalized evidence and resource-control can identify
|
||||
rightsizing or provider-switch opportunities from observed utilization and
|
||||
total cost.
|
||||
|
||||
Done 2026-08-14: the loop runs on real evidence. First observation
|
||||
`data/actuals/2026-08.json` records database 0.6365 GB, stored 0.0066 GB over
|
||||
8 objects, backup success 1/1, restore RTO 1.08 min, and five null proxies each
|
||||
with a named owner. Thresholds are declared in
|
||||
`data/thresholds/platform-audit-storage.json` and evaluated fail-closed by
|
||||
`make thresholds PERIOD=2026-08`: two within, one not applicable, six
|
||||
unmeasured, zero breaches — `unmeasured` never counts as passing.
|
||||
`make exchange-usage` emits `technical_usage` records to fin-hub with
|
||||
measurement gaps carried through and no infrastructure amount, since fin-hub
|
||||
owns the booked fact. The A/B/C case
|
||||
`opt:platform-audit-storage:2026-08` is now `approved` by the founder with
|
||||
Hetzner a costed reject and Host Europe excluded for want of written terms.
|
||||
The resource moved `ordered` → `active`, commissioned 2026-08-14. Evidence:
|
||||
`docs/evidence/RESOURCE-WP-0002-T07-control-loop-2026-08-14.md`.
|
||||
|
||||
August produces no variance and should not: the decision forecast starts at
|
||||
2026-09, so August is a commissioning baseline and 2026-09 is the first
|
||||
comparable month. Total cost stays unknown until Scaleway invoices and fin-hub
|
||||
books it under `FIN-WP-0004`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue