--- id: RAIL-FAB-WP-0027 type: workplan title: "Project versioned rail composition and readiness" domain: financials repo: railiance-fabric status: finished owner: codex topic_slug: railiance created: "2026-07-26" updated: "2026-07-26" state_hub_workstream_id: "dea7ca74-24b9-572e-b8a3-9415464bc5c2" --- # RAIL-FAB-WP-0027 - Versioned rail readiness projection ## Goal Ensure Fabric topology does not imply operational readiness and make derived rail compatibility queryable. ## T01 - Project rail contract metadata ```task id: RAIL-FAB-WP-0027-T01 status: done priority: high state_hub_task_id: "aa66ae1d-bc17-54a8-8500-341acb353b5b" ``` Project contract version, composition kind, base rail, and readiness state from repo-local declarations. 2026-07-26: Repository nodes now retain the versioned composition fields and derived rails project a `base_rail` dependency. ## T02 - Preserve binding readiness ```task id: RAIL-FAB-WP-0027-T02 status: done priority: high state_hub_task_id: "45524099-d105-51bb-aa36-8ea5cb5dc70a" ``` Carry declared/installed/verified/production-approved/deprecated state and evidence references on `hosts_rail` and `binds_rapp` relations. 2026-07-26: Reef binding metadata now projects readiness state, contract version, and evidence references on relation edges. ## T03 - Add compatibility and false-readiness tests ```task id: RAIL-FAB-WP-0027-T03 status: done priority: high state_hub_task_id: "f838ded6-fa74-55e9-95e6-317f255b765b" ``` Prove that a declared topology edge is not interpreted as production approval and that derived rails retain their base-contract dependency. 2026-07-26: Added focused registry tests for declared-only reef bindings and derived-rail base dependencies. ## T04 - Automate drift reconciliation ```task id: RAIL-FAB-WP-0027-T04 status: done priority: medium state_hub_task_id: "9f751759-8694-5cd8-96d2-38c3b2e3be6c" ``` Make declaration/evidence reconciliation idempotent and suitable for CI or a scheduled registry sync. 2026-07-26: The existing combined-graph reconciliation now deterministically reopens repo-local declarations and binding files and replaces projected metadata on each sync. Focused tests pass (`5 passed`).