railiance-fabric/docs/rail-rapp-reef-adaptation.md

134 lines
4.1 KiB
Markdown
Raw Normal View History

2026-07-25 15:42:53 +02:00
# Rail Rapp Reef Adaptation
Date: 2026-07-26
2026-07-25 15:42:53 +02:00
## Purpose
Define the first compatibility-first Fabric conventions for the new
`rail-*`, `rapp-*`, and `reef-*` repo families without pretending the registry
or export model is already fully adapted.
This document is intentionally narrower than the framework architecture in
`railiance-master`. It answers one question:
> What should Fabric accept and publish first so the new repo families can
> start existing as graph entities?
## Immediate Compatibility Stance
The first adaptation wave is deliberately small:
- onboard the missing current Railiance repos in the seed manifest
- persist repo-family metadata in the registry and repository projections
2026-07-25 15:42:53 +02:00
- add the first rail-specific capability type
- define canonical `service_type` values for future declarations
- avoid inventing full repo-family metadata or new export relations before the
first repos exist
This keeps Fabric aligned with the architecture without forcing a premature
schema redesign.
## Canonical First-Use Conventions
### `rail-*`
Initial Fabric shape:
- one `ServiceDeclaration` with `spec.service_type: execution-rail`
- one `CapabilityDeclaration` with
`spec.capability_type: workload-execution-contract`
Typical evidence should describe:
- the execution architecture
- substrate prerequisites
- rollout modes or workload lifecycle expectations
- which ownership repo governs the rail
### `rapp-*`
Initial Fabric shape:
- one `ServiceDeclaration` with `spec.service_type: managed-workload-package`
Optional follow-on declarations may later capture runtime dependencies,
verification interfaces, or artifact evidence, but the first requirement is
simply to make the package queryable as a distinct ecosystem entity.
### `reef-*`
Initial Fabric shape:
- one `ServiceDeclaration` with `spec.service_type: substrate-boundary`
The first declarations should make the substrate boundary visible before Fabric
tries to model every machine or placement relation in detail.
## Registry Metadata Path
The registry now carries the first repo-family-aware metadata fields on
repository records:
- `repo_family`
- `ownership_repo`
- `primary_rail`
- `supported_rails`
- `substrate_kind`
This metadata is available through repository registration, manifest sync, and
repository projections such as the graph explorer's synthesized repository
nodes.
The registry now also retains the local checkout `path` used during onboarding.
That lets Fabric reopen the conventional repo-local `rail`, `rapp`, and `reef`
files when it needs to project first-wave relation edges.
2026-07-25 15:42:53 +02:00
## First New Capability Type
Fabric now reserves:
- `workload-execution-contract`
Meaning:
- a stable execution contract that workloads depend on
- usually published by a `rail-*` repo
- expected to expose Kubernetes-, rollout-, or runtime-facing interfaces over
time
This is intentionally rail-focused. `rapp-*` and `reef-*` can start with
service-level visibility before they need their own dedicated capability types.
## Relation Projection Path
Fabric now projects the minimum first-wave repo-family relations from
repo-local files:
- `governed_by` from `declarations/rail.yaml`, `declarations/rapp.yaml`, and
`declarations/reef.yaml`
- `supports_rail` from `declarations/rapp.yaml`
- `hosts_rail` from `bindings/rails.yaml` with a fallback to the reef
declaration
- `binds_rapp` from `bindings/rapps.yaml` with a fallback to the reef
declaration
This keeps the relation path anchored in reviewed repo-local files rather than
guessing solely from registry metadata.
2026-07-25 15:42:53 +02:00
## What Is Still Missing
The following are still not done:
2026-07-25 15:42:53 +02:00
- validator rules for repo-family-specific declaration completeness
- richer graph queries that answer reef/workload placement beyond the first
projected repo edges
- State Hub read-model fields that surface repo family directly in generated
repo briefs or inventory views
- deeper runtime placement semantics than the first repo-level topology
2026-07-25 15:42:53 +02:00
## Outcome
Fabric can now move from "the new repo families exist only in architecture
docs" to "the registry can project the first repo-family topology from
repo-local evidence" without overcommitting to a premature graph redesign.