feat: operational resource procurement facility
Implement RESOURCE-WP-0005: entity register, V0.1 terms parameters, entity association on inventory and planning records, transfer-price and credit-state arithmetic, monthly settlement, and entity views on the portfolio report. Live close emits nothing until delivered cost is known. Handoffs are FIN-WP-0006 and RAILIANCE-WP-0017.
This commit is contained in:
parent
325a505980
commit
f8d1c542d5
37 changed files with 1316 additions and 28 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Build the resource procurement facility"
|
||||
domain: financials
|
||||
repo: resource-control
|
||||
status: ready
|
||||
status: finished
|
||||
owner: grok
|
||||
topic_slug: railiance
|
||||
created: "2026-08-14"
|
||||
|
|
@ -13,6 +13,8 @@ related:
|
|||
- RESOURCE-WP-0003
|
||||
- RESOURCE-WP-0004
|
||||
- FIN-WP-0004
|
||||
- FIN-WP-0006
|
||||
- RAILIANCE-WP-0017
|
||||
origin: residual
|
||||
origin_ref: RESOURCE-WP-0004
|
||||
state_hub_workstream_id: "0c710416-e469-45a7-b007-d08ff3210c04"
|
||||
|
|
@ -78,7 +80,7 @@ The three worked examples in Terms § 15 are executable fixtures.
|
|||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "f8df895b-9959-4bb2-958e-f2444b558aac"
|
||||
```
|
||||
|
|
@ -103,11 +105,15 @@ Done when `make test` loads the register and the V0.1 parameter file,
|
|||
rejects an unknown `entity:` id, and the numeric parameters match Terms
|
||||
§ 14 exactly.
|
||||
|
||||
Completed 2026-08-14: `data/entities/register.json`,
|
||||
`data/terms/procurement-v0.1.json`, schemas, and `tools/entities.py`.
|
||||
Unknown ids and drifted parameters fail closed.
|
||||
|
||||
## T02 — Associate every cost-bearing schema
|
||||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "5a18a74a-db07-4ab6-8bb5-ed4321ab7e11"
|
||||
```
|
||||
|
|
@ -132,11 +138,14 @@ Done when validators reject an untagged new record, accept an explicit
|
|||
gap, accept all six entity IDs, and existing tests still pass after
|
||||
additive schema changes.
|
||||
|
||||
Completed 2026-08-14: additive fields on inventory, planning-evidence,
|
||||
and control-cycle; `portfolio.validate_record` requires association.
|
||||
|
||||
## T03 — Backfill the live portfolio
|
||||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "14d450fb-e1f2-4443-a284-4439579f3709"
|
||||
```
|
||||
|
|
@ -159,11 +168,15 @@ Done when every live inventory record has a procuring entity and either a
|
|||
consuming entity, a shared allocation that yields per-entity shares, or
|
||||
an explicit unattributed gap, and `make test` passes.
|
||||
|
||||
Completed 2026-08-14: Coulomb, Binky, and platform backup tagged;
|
||||
apps-pg shares Coulomb; host/cluster/forge remain explicit Railiance
|
||||
residuals; no helix-forge dedicated resource exists yet.
|
||||
|
||||
## T04 — Transfer-price and credit-state engine
|
||||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "4d2c87f7-6e50-4696-a041-e8502e9fab38"
|
||||
```
|
||||
|
|
@ -197,11 +210,14 @@ Done when fixtures for Terms § 15.1–15.3 assert:
|
|||
- Helixforge at 1000.00 overdue: interest 4.17, allowance 45.83,
|
||||
max new delivered cost 38.19, mode `restricted`.
|
||||
|
||||
Completed 2026-08-14: `tools/settlement.py` loads terms from data.
|
||||
Fixtures assert 240.00 / 1.00 / 4.17 / 45.83 / 38.19.
|
||||
|
||||
## T05 — Monthly settlement statements
|
||||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "cf55645b-b3ef-4cc4-ab51-23bdf5ff3af1"
|
||||
```
|
||||
|
|
@ -230,11 +246,14 @@ Done when the three § 15 scenarios can be produced as statements from
|
|||
fixtures, `make settlement` runs against the repo, and a period with no
|
||||
consumers emits nothing rather than invented zeros.
|
||||
|
||||
Completed 2026-08-14: statement schema, `make settlement PERIOD=YYYY-MM`,
|
||||
§ 15 fixtures emit statements, live 2026-08 emits `[]`.
|
||||
|
||||
## T06 — Entity views on forecasts, variance, and the portfolio report
|
||||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T06
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "b8baa250-f189-4ae7-a4a6-5b09a199c1dd"
|
||||
```
|
||||
|
|
@ -253,11 +272,15 @@ Done when `make portfolio-report` lists each financial entity, names
|
|||
unattributed resources, and a forecast fixture includes transfer price
|
||||
and headroom without becoming booked spend.
|
||||
|
||||
Completed 2026-08-14: report `entities` section lists all six IDs and
|
||||
names unattributed residuals; forecast fixture carries 240.00 / 760.00
|
||||
and is labelled not booked spend.
|
||||
|
||||
## T07 — Fin-hub and Railiance handoff, plus the close runbook
|
||||
|
||||
```task
|
||||
id: RESOURCE-WP-0005-T07
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "d91a2ffd-7557-4a9a-a846-e6449b037eec"
|
||||
```
|
||||
|
|
@ -283,3 +306,7 @@ Done when the runbook exists, the outbound artifact shapes are
|
|||
documented next to the fin-hub contract, and live work records exist in
|
||||
the owning repos (or an intake with `origin: residual` if those repos
|
||||
cannot take the work this session).
|
||||
|
||||
Completed 2026-08-14: `docs/resource-procurement-facility.md`; contract
|
||||
addendum for settlement join keys; residuals `FIN-WP-0006` and
|
||||
`RAILIANCE-WP-0017`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue