rail-kubernetes/workplans/RAIL-K8S-WP-0002-versioned-common-and-derived-rail-contract.md
codex 35159e49c1 fix(workplans): adopt ADR-007 derived identifiers for unregistered records
These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 20:17:48 +02:00

2.4 KiB

id type title domain repo status owner topic_slug created updated state_hub_workstream_id
RAIL-K8S-WP-0002 workplan Version the common workload and derived-rail contract financials rail-kubernetes finished codex railiance 2026-07-26 2026-07-26 b3d4d92d-2b71-50ef-a98e-8e74694ae3be

RAIL-K8S-WP-0002 - Version the common workload and derived-rail contract

Goal

Make rail-kubernetes the explicit versioned base contract used by default for platform workloads and inherited by justified specializations such as rail-knative.

T01 - Version the base rail declaration

id: RAIL-K8S-WP-0002-T01
status: done
priority: high
state_hub_task_id: "27709922-e14f-5448-a894-aa6cb2b1f021"

Add composition kind, contract version, required capabilities, and readiness state without changing current lifecycle behavior.

2026-07-26: declarations/rail.yaml now declares base composition, contract 1.0.0, required substrate capabilities, verified readiness, and the default platform/managed-application scope.

T02 - Add the rail-neutral workload and binding schemas

id: RAIL-K8S-WP-0002-T02
status: done
priority: high
state_hub_task_id: "6a64053b-4df3-5d2e-ba2e-de4acb955418"

Separate common workload identity, criticality, dependencies, security, health, evidence, and recovery requirements from rail-specific bindings.

2026-07-26: Added the common workload, rail-binding, and derived-rail JSON schemas plus a valid Kubernetes-default example.

T03 - Add compatibility conformance

id: RAIL-K8S-WP-0002-T03
status: done
priority: high
state_hub_task_id: "d1f63e62-b4cb-54b0-b7a6-be5af1acce4f"

Provide an idempotent validator suitable for local, agent, CI, and scheduled execution. Reject incompatible base contracts, missing ownership, and unsupported substrate capabilities.

2026-07-26: Added tools/validate_contracts.py. It validates base/derived rail shape and common workload JSON Schema without accessing runtime credentials.

T04 - Preserve the Kubernetes default

id: RAIL-K8S-WP-0002-T04
status: done
priority: medium
state_hub_task_id: "56ee2da4-7c51-504c-a6d0-ee6f79346350"

Document and test that workloads without a justified specialization continue to bind to rail-kubernetes.

2026-07-26: The base declaration identifies Kubernetes as the default for platform workloads and managed applications; the example uses that binding.