Advance resource cost evidence contract

This commit is contained in:
tegwick 2026-08-11 15:49:16 +02:00
parent d1528944c3
commit 49519a715a
7 changed files with 631 additions and 21 deletions

View file

@ -141,7 +141,7 @@ forecast into a temporary fin-hub ledger.
```task
id: FIN-WP-0004-T04
status: todo
status: done
priority: medium
state_hub_task_id: "3620fc2a-be3d-40aa-b357-d7741078c192"
```
@ -158,6 +158,15 @@ an informational warning.
Done when resource-control can evaluate affordability and commitment pressure
without reproducing fin-hub's allocator or runway logic.
Completed 2026-08-11: added the v0.1 `FinancialConstraintSignal` and a
deterministic projection for budget ceiling, active commitment, budget
utilization, and runway pressure. Signals carry exact currency, effective
period, resource/service/environment scope, stable IDs, classification,
generation time, and non-secret provenance. Policy constraints are distinct
from informational warnings; unavailable authority values are omitted rather
than invented as zero. The artifact excludes credentials, private invoice
content, unrelated ledger rows, payment authority, and procurement approval.
## T05 — Implement and reconcile the first round trip
```task
@ -193,7 +202,7 @@ the contract but do not satisfy the operational booked-cost round trip.
```task
id: FIN-WP-0004-T06
status: todo
status: done
priority: medium
state_hub_task_id: "a1309d51-32c3-4a9d-99f5-4dfb7abf4b3e"
```
@ -206,6 +215,16 @@ unattributed booked cost, stale forecasts, and reconciliation failures.
Done when the contract supports storage, compute or cluster capacity, and a
shared-service allocation without changing the authority boundary.
Completed 2026-08-11: validated an externally bound Host Europe compute fact
for `resource:hosteurope:railiance01` and the existing shared-service
allocation path without deriving resource identity from provider labels or
filenames. Added a safe exchange-health report for rejected deliveries,
unattributed booked cost, stale forecasts, and allocations with missing
financial facts. Rejected payload content is not retained. Versioning,
compatibility, correction/revision, per-currency reconciliation, upgrade,
dual-run, and rollback procedures are documented in
`docs/resource-cost-exchange-operations.md`.
## T07 — Correct cost-report dimensions and currency safety
```task
@ -284,16 +303,16 @@ current reporting-month basis.
## Acceptance
- [ ] One reviewed authority matrix is linked from both repositories.
- [ ] Booked financial facts remain authoritative only in fin-hub.
- [ ] Resource identity and technical allocation remain authoritative only in
- [x] One reviewed authority matrix is linked from both repositories.
- [x] Booked financial facts remain authoritative only in fin-hub.
- [x] Resource identity and technical allocation remain authoritative only in
resource-control.
- [ ] Forecasts cannot be confused with invoices or booked expenditure.
- [ ] Exchange records carry stable identifiers, periods, provenance, and
- [x] Forecasts cannot be confused with invoices or booked expenditure.
- [x] Exchange records carry stable identifiers, periods, provenance, and
correction semantics.
- [ ] Backup completes a reconciled round trip with no double counting.
- [ ] At least one non-storage and one shared-service case validate the
- [x] At least one non-storage and one shared-service case validate the
generalized contract.
- [ ] Cost reports never mix currency or environment dimensions.
- [ ] Booked-fact import and corrections are idempotent under changed delivery.
- [ ] SQLite and SQLAlchemy paths enforce the same money and price invariants.
- [x] Cost reports never mix currency or environment dimensions.
- [x] Booked-fact import and corrections are idempotent under changed delivery.
- [x] SQLite and SQLAlchemy paths enforce the same money and price invariants.