37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
|
|
# RESOURCE-WP-0003 generalized control cycle — 2026-08-11
|
||
|
|
|
||
|
|
## Result
|
||
|
|
|
||
|
|
`RESOURCE-WP-0003-T05` generalized the backup-specific forecast-to-actual
|
||
|
|
method into a provider-neutral portfolio contract.
|
||
|
|
|
||
|
|
The implementation consists of:
|
||
|
|
|
||
|
|
- `schemas/resource-control-cycle.schema.json` for immutable forecast and
|
||
|
|
actual records;
|
||
|
|
- `tools/control_cycle.py` for resource-neutral comparison and controlled
|
||
|
|
variance attribution;
|
||
|
|
- six paired examples covering storage, fixed cluster compute, and a hybrid
|
||
|
|
shared PostgreSQL service;
|
||
|
|
- tests for the three resource classes, immutable forecast binding, explicit
|
||
|
|
cost attribution, and fail-closed data-quality handling;
|
||
|
|
- updated operating guidance in `docs/forecast-actual-control.md`.
|
||
|
|
|
||
|
|
## Boundary with fin-hub
|
||
|
|
|
||
|
|
Actual records carry `booked_cost_refs`; resource-control does not reproduce
|
||
|
|
the ledger fact. Fin-hub message `d33f2452-8dc6-4249-a3d2-84fda938103a`
|
||
|
|
confirmed explicit `financial_fact_id -> resource_id` binding, budget and
|
||
|
|
constraint signals, and generalized exchange health. The first operational
|
||
|
|
backup round trip remains correctly gated on `RESOURCE-WP-0002` procurement;
|
||
|
|
that does not invalidate these illustrative contract fixtures.
|
||
|
|
|
||
|
|
## Verification
|
||
|
|
|
||
|
|
- `make test`: 25 tests passed and declarations validated.
|
||
|
|
- All three example pairs completed through `make control-cycle`.
|
||
|
|
- `git diff --check`: clean.
|
||
|
|
|
||
|
|
The examples are intentionally marked illustrative. Their values must not be
|
||
|
|
reported as actual consumption or booked cost.
|