diff --git a/.claude/rules/credential-routing.md b/.claude/rules/credential-routing.md index b6dff54..90022fa 100644 --- a/.claude/rules/credential-routing.md +++ b/.claude/rules/credential-routing.md @@ -20,7 +20,7 @@ Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run wa | Agent runtime | How to orient | | --- | --- | | **Codex / Grok** (shell, HTTP State Hub) | `warden route` commands above; inbox `to_agent=railiance-fabric` is for coordination, not secret vending | -| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **still** use `warden route` for credential ownership | +| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workplans; **still** use `warden route` for credential ownership | | **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` | ### Quick routing table diff --git a/.claude/rules/first-session.md b/.claude/rules/first-session.md index d042aa9..b0f6139 100644 --- a/.claude/rules/first-session.md +++ b/.claude/rules/first-session.md @@ -1,37 +1,41 @@ ## First Session Protocol -Triggered when `get_domain_summary("railiance")` shows **no workstreams**. +Triggered when `get_domain_summary("financials")` shows **no workplans**. The project is registered but work has not yet been structured. **Step 1 — Read, don't write** -- `~/the-custodian/canon/projects/railiance/project_charter_v0.1.md` — purpose, scope -- `~/the-custodian/canon/projects/railiance/roadmap_v0.1.md` — planned phases +- `~/the-custodian/canon/projects/financials/project_charter_v0.1.md` — purpose, scope +- `~/the-custodian/canon/projects/financials/roadmap_v0.1.md` — planned phases - Scan repo root: README, directory structure, existing code or docs **Step 2 — Survey in-progress work** Look for TODOs, open branches, half-finished files. Note done vs. started but incomplete. -**Step 3 — Propose workstreams to Bernd** -Propose 1–3 workstreams — each a coherent strand, weeks to months, anchored to a +**Step 3 — Propose workplans to Bernd** +Propose 1–3 workplans — each a coherent strand, weeks to months, anchored to a roadmap phase. **Wait for approval before creating.** -**Step 4 — Create workplan file first, then DB record (ADR-001)** +**Step 4 — Write the workplan file; fix-consistency registers it (ADR-001)** ``` -workplans/railiance-fabric-WP-NNNN-.md ← write this first +workplans/RAILIANCE-WP-NNNN-.md ← write this, commit it ``` -Then register in the hub: -``` -create_workstream(topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", title="...", owner="...", description="...") -create_task(workstream_id="", title="...", priority="high|medium|low") +Then register by running the consistency check — do **not** call +`create_workplan`/`create_task` (or legacy `create_workstream`) yourself; +manual registration duplicates what C-06 creates from the file: +```bash +statehub fix-consistency --repo railiance-fabric ``` +C-06 creates the hub workplan + tasks and writes `state_hub_workstream_id` / +`state_hub_task_id` back into the file (legacy field names, kept for +compatibility — they hold workplan/task IDs). **Step 5 — Record the setup** ``` add_progress_event( - summary="First session: structured railiance into N workstreams, M tasks", + summary="First session: structured financials into N workplans, M tasks", event_type="milestone", topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", - detail={"workstreams": [...], "tasks_created": M} + detail={"workplans": [...], "tasks_created": M} ) ``` diff --git a/.claude/rules/repo-identity.md b/.claude/rules/repo-identity.md index 787109b..418ee8c 100644 --- a/.claude/rules/repo-identity.md +++ b/.claude/rules/repo-identity.md @@ -1,5 +1,5 @@ **Purpose:** railiance-fabric - (fill in purpose) -**Domain:** railiance +**Domain:** financials **Repo slug:** railiance-fabric **Topic ID:** ca369340-a64e-442e-98f1-a4fa7dc74a38 diff --git a/.claude/rules/session-protocol.md b/.claude/rules/session-protocol.md index f7dfcf2..a73aa66 100644 --- a/.claude/rules/session-protocol.md +++ b/.claude/rules/session-protocol.md @@ -1,6 +1,7 @@ ## Session Protocol -State Hub: http://127.0.0.1:8000 +Dev Hub (State Hub API): http://127.0.0.1:8000 +MCP server name in `~/.claude.json`: `dev-hub` **Step 1 — Orient** @@ -10,7 +11,7 @@ cat .custodian-brief.md ``` Then call the MCP tool for richer cross-domain context when MCP tools are exposed: ``` -get_domain_summary("railiance") +get_domain_summary("financials") ``` If MCP tools are unavailable in the current agent session, use the REST API: ```bash @@ -39,11 +40,11 @@ curl -s -X PATCH "http://127.0.0.1:8000/messages//read" \ ls workplans/ ``` For each file with `status: ready`, `active`, or `blocked`, note pending -`todo`/`in_progress` tasks. +`wait`/`todo`/`progress` tasks. **Step 4 — Present brief** -1. **Active workstreams** for `railiance` — title, task counts, blocking decisions +1. **Active workplans** for `financials` — title, task counts, blocking decisions 2. **Pending tasks** from `workplans/` + any `[repo:railiance-fabric]` hub tasks 3. **Goal guidance** — if `goal_guidance` in summary: - `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"* @@ -51,33 +52,42 @@ For each file with `status: ready`, `active`, or `blocked`, note pending 4. **Suggested next action** — highest-priority open item 5. **SBOM status** — flag if `last_sbom_at` is unset for this repo -If no workstreams: follow First Session Protocol (`first-session.md`). +If no workplans: follow First Session Protocol (`first-session.md`). **During work:** `record_decision()` · `add_progress_event()` · `resolve_decision()` -> State Hub is a *read model*. Bootstrap tools (`create_workstream`, `create_task`) -> are First Session Protocol only. Work structure belongs in repo files (ADR-001). +> State Hub is a *read model*. **Never register workplans or tasks by hand** +> (`create_workplan`, `create_task`, or the legacy `create_workstream`) — write +> the workplan file in `workplans/` and run `fix-consistency`; its C-06 check +> registers the workplan and its tasks in the hub and writes the IDs back into +> the file. Manual registration creates duplicates the moment fix-consistency +> runs. Work structure belongs in repo files (ADR-001). +> +> Terminology: "workstream" is the legacy name for workplan. Some API/frontmatter +> field names keep it for compatibility (`state_hub_workstream_id`, +> `workstream_id` params) — treat them as workplan IDs. **Session close:** With MCP tools: ``` -add_progress_event(summary="...", topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", workstream_id="") +add_progress_event(summary="...", topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", workplan_id="") ``` Without MCP tools: ```bash curl -s -X POST http://127.0.0.1:8000/progress/ \ -H "Content-Type: application/json" \ - -d '{"topic_id":"ca369340-a64e-442e-98f1-a4fa7dc74a38","workstream_id":"","event_type":"note","summary":"what changed","author":"codex"}' + -d '{"topic_id":"ca369340-a64e-442e-98f1-a4fa7dc74a38","workplan_id":"","event_type":"note","summary":"what changed","author":"codex"}' ``` -If workplan files were modified, ensure the local copy is up to date first: +If workplan files were modified, ensure the local copy is up to date first, +then sync from the repo checkout: ```bash -git -C pull --ff-only -cd ~/state-hub && make fix-consistency REPO=railiance-fabric +git pull --ff-only +statehub fix-consistency ``` For repos where implementation runs on a remote machine (e.g. CoulombCore), -use the combined target which pulls before fixing: +use the pull-before-fix mode from any shell with the State Hub CLI: ```bash -cd ~/state-hub && make fix-consistency-remote REPO=railiance-fabric +statehub fix-consistency --repo railiance-fabric --remote ``` **C-15** (DB task ahead of file) is normal in multi-machine workflows — writeback will sync the file to match DB. **C-16** (repo behind remote) blocks all writes diff --git a/.claude/rules/stack-and-commands.md b/.claude/rules/stack-and-commands.md index dc53ac6..f012b52 100644 --- a/.claude/rules/stack-and-commands.md +++ b/.claude/rules/stack-and-commands.md @@ -1,19 +1,14 @@ ## Stack - -- **Language:** -- **Key deps:** +- **Language:** Python ≥3.12 (`railiance_fabric` package) +- **Key deps:** jsonschema, PyYAML; SQLite registry at `.railiance-fabric/registry.sqlite3` ## Dev Commands ```bash -# TODO: Fill in the standard commands for this repo - -# Install dependencies - -# Run tests - -# Lint / type check - -# Build / package (if applicable) +python3 -m pytest tests/ # run the test suite +make graph-explorer # registry-backed graph explorer (HOST/PORT/REGISTRY_DB overridable) +python3 -m railiance_fabric.server --db .railiance-fabric/registry.sqlite3 ``` + +Local-only tooling — no production deploy surface in this repo. diff --git a/.claude/rules/workplan-convention.md b/.claude/rules/workplan-convention.md index b9dcc6f..c1ec4bf 100644 --- a/.claude/rules/workplan-convention.md +++ b/.claude/rules/workplan-convention.md @@ -1,28 +1,45 @@ ## Workplan Convention (ADR-001) -File location: `workplans/railiance-fabric-WP-NNNN-.md` -ID prefix: `RAILIANCE-WP` +File location: `workplans/RAILIANCE-WP-NNNN-.md` +ID prefix: `RAILIANCE-WP-` Work items originate as files in this repo **before** being registered in the hub. -Canonical workplan/workstream frontmatter statuses are: +Canonical workplan frontmatter statuses are: `proposed`, `ready`, `active`, `blocked`, `backlog`, `finished`, `archived`. Use `proposed` for a newly drafted plan, `ready` after review against current repo state, and `finished` when implementation is complete. `stalled` and `needs_review` are derived health labels, not stored statuses. Closed workplans may be moved to `workplans/archived/` with a completion-date -prefix: `YYMMDD-railiance-fabric-WP-NNNN-.md`. The frontmatter id remains +prefix: `YYMMDD-RAILIANCE-WP-NNNN-.md`. The frontmatter id remains unchanged; the prefix is only for quick visual reference. Small opportunistic tasks discovered during another session use **Ad Hoc Tasks**: -`workplans/ADHOC-YYYY-MM-DD.md`, workstream slug `adhoc-YYYY-MM-DD`, and task ids +`workplans/ADHOC-YYYY-MM-DD.md`, workplan slug `adhoc-YYYY-MM-DD`, and task ids `ADHOC-YYYY-MM-DD-T01`, `T02`, etc. Use adhocs only for low-risk work completed directly. Promote anything requiring analysis, design, approval, dependencies, or multiple planned phases into a normal workplan. Ecosystem todos from other agents arrive as `[repo:railiance-fabric]` hub tasks — -visible at session start. Pick one up by creating the workplan file, then registering -the workstream. +visible at session start. Pick one up by creating the workplan file, committing, +and running `statehub fix-consistency` — C-06 registers the workplan in the hub. +Never register by hand with `create_workplan`/`create_workstream`. + +Task blocks use this shape: + +```task +id: RAILIANCE-WP-NNNN-T01 +status: wait | todo | progress | done | cancel +priority: high | medium | low +state_hub_task_id: "" # written by fix-consistency — do not edit +``` + +Status progression is `todo` → `progress` → `done`; use `wait` for waiting or +blocked work and `cancel` for stopped work. + +Workplan frontmatter carries `state_hub_workstream_id` — a legacy field name +kept for compatibility ("workstream" is the old term for workplan); it holds +the hub workplan id and is written by fix-consistency. Do not edit or rename it. diff --git a/.custodian-brief.md b/.custodian-brief.md index fdae8df..321aef2 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -1,8 +1,8 @@ # Custodian Brief — railiance-fabric -**Domain:** railiance -**Last synced:** 2026-06-05 19:36 UTC +**Domain:** financials +**Last synced:** 2026-07-01 22:24 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams @@ -13,6 +13,6 @@ ## MCP Orientation (when available) If the state-hub MCP server is reachable, call: -`get_domain_summary("railiance")` +`get_domain_summary("financials")` This provides richer cross-domain context. If the MCP call fails, use this file as your orientation source. diff --git a/.forgejo/workflows/ci-smoke.yaml b/.forgejo/workflows/ci-smoke.yaml new file mode 100644 index 0000000..bd44c56 --- /dev/null +++ b/.forgejo/workflows/ci-smoke.yaml @@ -0,0 +1,29 @@ +# Canonical CI smoke template (tier 1 routing drill). +# Copy to: .forgejo/workflows/ci-smoke.yaml in consumer repos. +name: CI Smoke + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + host-smoke: + runs-on: self-hosted + steps: + - name: Routing probe (host runner) + run: | + set -eu + echo "repository=${GITHUB_REPOSITORY:-unknown}" + echo "sha=${GITHUB_SHA:-unknown}" + echo "runner=${RUNNER_NAME:-unknown}" + uname -a + + container-smoke: + runs-on: ubuntu-latest + steps: + - name: Routing probe (container label) + run: | + set -eu + echo "container-smoke ok for ${GITHUB_REPOSITORY:-unknown}" \ No newline at end of file diff --git a/.repo-classification.yaml b/.repo-classification.yaml new file mode 100644 index 0000000..34833e5 --- /dev/null +++ b/.repo-classification.yaml @@ -0,0 +1,17 @@ +repo_classification: + standard: Repo Classification Standard + version: '1.0' + classified_at: '2026-06-22' + classified_by: agent + category: project + domain: financials + secondary_domains: [] + capability_tags: + - platform + - operations + business_stake: + - technology + - operations + business_mechanics: + - coordination + - operation diff --git a/AGENTS.md b/AGENTS.md index 85edf2b..f850b99 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ **Purpose:** railiance-fabric - (fill in purpose) -**Domain:** railiance +**Domain:** financials **Repo slug:** railiance-fabric **Topic ID:** `ca369340-a64e-442e-98f1-a4fa7dc74a38` **Workplan prefix:** `RAILIANCE-WP-` @@ -20,6 +20,12 @@ there is no MCP server for Codex agents. |---------|-----| | Local workstation | `http://127.0.0.1:8000` | | Remote via tunnel | `http://127.0.0.1:18000` | +| Optional local edge relay | http://127.0.0.1:18080 | + +When an operator has enabled the edge relay, set API_BASE to the relay URL. +Queueable writes return an explicit queued receipt if the central hub is +unreachable. Treat that as pending local evidence, then ask the operator to run +statehub outbox status/replay after connectivity returns. ### Orient at session start @@ -27,8 +33,8 @@ there is no MCP server for Codex agents. # Offline brief — works without hub connection cat .custodian-brief.md -# Active workstreams for this domain -curl -s "http://127.0.0.1:8000/workstreams/?topic_id=ca369340-a64e-442e-98f1-a4fa7dc74a38&status=active" \ +# Active workplans for this domain +curl -s "http://127.0.0.1:8000/workplans/?topic_id=ca369340-a64e-442e-98f1-a4fa7dc74a38&status=active" \ | python3 -m json.tool # Check inbox @@ -51,20 +57,20 @@ curl -s -X POST http://127.0.0.1:8000/progress/ \ "summary": "what was done", "event_type": "note", "author": "codex", - "workstream_id": "", + "workplan_id": "", "task_id": "" }' ``` -Omit `workstream_id` / `task_id` when not applicable. +Omit `workplan_id` / `task_id` when not applicable. ### Update task status ```bash curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ -H "Content-Type: application/json" \ - -d '{"status": "in_progress"}' -# values: todo | in_progress | done | blocked + -d '{"status": "progress"}' +# values: wait | todo | progress | done | cancel ``` ### Flag a task for human review @@ -80,10 +86,10 @@ curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ ## Session Protocol **Start:** -1. `cat .custodian-brief.md` — domain goal and open workstreams (offline-safe) +1. `cat .custodian-brief.md` — domain goal and open workplans (offline-safe) 2. Check inbox: `GET /messages/?to_agent=railiance-fabric&unread_only=true`; mark read 3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks -4. Check blocked tasks: `GET /tasks/?needs_human=true` +4. Check human-needed tasks: `GET /tasks/?needs_human=true` **During work:** - Update task statuses in workplan files as tasks progress @@ -92,12 +98,12 @@ curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ **Close:** 1. Update workplan file task statuses to reflect progress 2. Log: `POST /progress/` with a summary of what changed -3. Note for the custodian operator: after workplan file changes, run from - `~/state-hub`: +3. After workplan file changes, run: ```bash - make fix-consistency REPO=railiance-fabric + statehub fix-consistency ``` - This syncs task status from files into the hub DB. + Coding agents should run this directly; ask the operator only if the CLI or + State Hub API is unavailable. This syncs task status from files into the hub DB. --- @@ -123,7 +129,7 @@ Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run wa | Agent runtime | How to orient | | --- | --- | | **Codex / Grok** (shell, HTTP State Hub) | `warden route` commands above; inbox `to_agent=railiance-fabric` is for coordination, not secret vending | -| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **still** use `warden route` for credential ownership | +| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workplans; **still** use `warden route` for credential ownership | | **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` | ### Quick routing table @@ -151,6 +157,11 @@ every repo's agent instructions because it is high-frequency, high-risk, and eas get wrong. **Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml` + + + + --- ## Workplan Convention (ADR-001) @@ -176,7 +187,7 @@ anything needing analysis, design, approval, dependencies, or multiple phases. id: RAILIANCE-WP-NNNN type: workplan title: "..." -domain: railiance +domain: financials repo: railiance-fabric status: proposed | ready | active | blocked | backlog | finished | archived owner: codex @@ -198,7 +209,7 @@ derived health labels, not frontmatter statuses. ` ` `task id: RAILIANCE-WP-NNNN-T01 -status: todo | in_progress | done | blocked +status: wait | todo | progress | done | cancel priority: high | medium | low state_hub_task_id: "" # written by fix-consistency — do not edit ` ` ` @@ -206,7 +217,7 @@ state_hub_task_id: "" # written by fix-consistency — do not edit Task description text. ``` -Status progression: `todo` → `in_progress` → `done` (or `blocked`) +Status progression: `todo` → `progress` → `done`; use `wait` for waiting/blocked work and `cancel` for stopped work. To create a new workplan: 1. Write the file following the format above diff --git a/DECISIONS.md b/DECISIONS.md index e6d05ed..de76743 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -19,3 +19,75 @@ Superseded by WP-0004 T09 cancellation and CUST-WP-0038 ownership of State Hub H Superseded by completed WP-0004 outcome: activity-core was deployed as a K3s production service on railiance01 on 2026-05-22; the packaging architecture question is no longer blocking this workplan. --- + +## Review CCR-2026-0001 whynot-design npm publish token lane + +**Date:** 2026-06-27 +**Decided by:** human + +APPROVE: scoped path and confirmed binding are acceptable + +--- + +## Review CCR-2026-0001 corrected whynot-design npm publish token lane + +**Date:** 2026-06-27 +**Decided by:** human + +APPROVE: We fixed the path using coulomb as the org/tenant. + +--- + +## Forgejo hostname and exposure model + +**Date:** 2026-07-02 +**Decided by:** human + +the hostname shall be forgejo.coulomb.social. The exposure model is private repos by default. We will use the transition from gitea to forgejo for closing down public access and establishing credential handling to have convenience when working with the repos. Gitea can and should remain reachable during transition. + +--- + +## Forgejo SMTP and sender identity + +**Date:** 2026-07-02 +**Decided by:** human + +We will use forgejo@coulomb.social + +--- + +## Forgejo package registry scope + +**Date:** 2026-07-02 +**Decided by:** human + +We should support the full range from the start. + +--- + +## Forgejo Actions runner isolation model + +**Date:** 2026-07-02 +**Decided by:** human + +we will try to go with isolated host runners, with least-privilege credential boundaries. + +--- + +## Forgejo backup target and restore cadence + +**Date:** 2026-07-02 +**Decided by:** human + +We will need to figure out the details, but i want to use backup.coulomb.social as the hostname with a backend we need to figure out yet. + +--- + +## Forgejo cutover and rollback strategy + +**Date:** 2026-07-02 +**Decided by:** human + +We will do a staged migration and lock the gitea repos of transitioned repos but keep gitea until everything has been transfered and just then start a 14day trial phase and after that retire gitea to the backup. + +--- diff --git a/registry/capabilities/capability.railiance.fabric-graph.md b/registry/capabilities/capability.railiance.fabric-graph.md new file mode 100644 index 0000000..798f15a --- /dev/null +++ b/registry/capabilities/capability.railiance.fabric-graph.md @@ -0,0 +1,122 @@ +--- +id: capability.railiance.fabric-graph +name: Railiance Fabric Ecosystem Graph +summary: 'Models the durable infrastructure-responsibility graph of the Railiance netkingdom: schemas, + discovery tools, registry services, graph queries, and State Hub export contracts for services, machines, + repos, deployables, endpoints, ownership, dependencies, and bindings.' +owner: railiance-fabric +status: draft +domain: financials +tags: +- railiance +- graph +- ownership +- discovery +maturity: + discovery: + current: D3 + target: D5 + confidence: medium + rationale: README and SCOPE.md document the ecosystem graph model bounded by financial/operational + accountability (who pays, who is accountable), with king/lord/tenant ownership concepts referenced + in docs/FabricDiscoveryAndUpdate.md. + availability: + current: A1 + target: A3 + confidence: medium + rationale: Python package (`railiance-fabric`) providing a declaration loader and validator; consumed + as a library, no hosted service documented yet. +external_evidence: + completeness: + level: C1 + confidence: low + basis: scope_vs_intent_and_consumer_expectations + satisfied_expectations: + - ecosystem graph declaration loader and validator + - schemas for services/machines/repos/deployables/endpoints/ownership/dependencies/bindings + broken_expectations: [] + out_of_scope_expectations: [] + reliability: + level: R0 + confidence: low + basis: consumer_quality_signals + known_reliability_risks: + - discovery/rebuild/update-loop architecture documented as still evolving per docs/FabricDiscoveryAndUpdate.md +discovery: + intent: Let repos declare services, capabilities, interfaces, dependencies, and bindings in source-controlled + files, and model the resulting durable infrastructure-responsibility graph across the Railiance ecosystem. + includes: + - ecosystem graph schema and declaration loader/validator + - State Hub export contracts for the graph + excludes: + - actual infrastructure provisioning (see railiance-infra, railiance-cluster) + assumptions: [] + use_cases: [] + research_memos: [] +availability: + current_level: A1 + target_level: A3 + current_artifacts: + - Python package (`railiance-fabric`) + target_artifacts: [] + consumption_modes: + - library import + - cli (validation) +relations: + depends_on: [] + supports: [] + related_to: [] +evidence: + documentation: + - README.md + - SCOPE.md + - docs/FabricDiscoveryAndUpdate.md + tests: + - tests/ + consumer_feedback: [] + bug_reports: [] + incidents: [] +consumer_guidance: + recommended_for: + - Railiance repos wanting to declare their place in the ecosystem ownership/dependency graph + not_recommended_for: + - needs for actual infrastructure provisioning (see railiance-infra/-cluster) + known_limitations: + - discovery/rebuild/update-loop architecture still evolving +promotion_history: [] +--- + +# Railiance Fabric Ecosystem Graph + +## Overview + +`railiance-fabric` models the durable infrastructure-responsibility graph of the Railiance netkingdom — who pays for infrastructure, who is accountable for it, and which durable interfaces create value across boundaries — via schemas, a declaration loader/validator, and State Hub export contracts. + +## Assessment notes + +### Discovery + +README and SCOPE.md document the ecosystem graph model bounded by financial/operational accountability (who pays, who is accountable), with king/lord/tenant ownership concepts referenced in docs/FabricDiscoveryAndUpdate.md. + +### Availability + +Python package (`railiance-fabric`) providing a declaration loader and validator; consumed as a library, no hosted service documented yet. + +### Completeness + +First-pass honest assessment from the REUSE-WP-0017 coverage campaign +(reuse-surface). No external consumer feedback exists yet; levels reflect +scope-vs-intent documentation quality, not internal code quality. + +### Reliability + +No production consumer telemetry exists yet; reliability level is +intentionally conservative pending REUSE-WP-0019 reuse-telemetry evidence. + +## Promotion checklist + +- [x] ID follows `capability..` pattern +- [x] Maturity enums match `specs/CapabilityMaturityStandard.md` +- [x] `external_evidence` is populated separately from `maturity` +- [ ] Relations reference valid capability IDs (none yet) +- [x] Index entry added in `registry/indexes/capabilities.yaml` diff --git a/registry/indexes/capabilities.yaml b/registry/indexes/capabilities.yaml index f944e47..b87197e 100644 --- a/registry/indexes/capabilities.yaml +++ b/registry/indexes/capabilities.yaml @@ -1,4 +1,22 @@ version: 1 -updated: '2026-06-16' +updated: '2026-07-06' domain: helix_forge -capabilities: [] +capabilities: +- id: capability.railiance.fabric-graph + name: Railiance Fabric Ecosystem Graph + summary: 'Models the durable infrastructure-responsibility graph of the Railiance netkingdom: schemas, + discovery tools, registry services, graph queries, and State Hub export contracts for services, machines, + repos, deployables, endpoints, ownership, dependencies, and bindings.' + vector: D3 / A1 / C1 / R0 + domain: financials + status: draft + owner: railiance-fabric + path: registry/capabilities/capability.railiance.fabric-graph.md + tags: + - railiance + - graph + - ownership + - discovery + consumption_modes: + - library import + - cli (validation) diff --git a/workplans/ADHOC-2026-05-21.md b/workplans/archived/260702-ADHOC-2026-05-21.md similarity index 100% rename from workplans/ADHOC-2026-05-21.md rename to workplans/archived/260702-ADHOC-2026-05-21.md diff --git a/workplans/ADHOC-2026-05-25.md b/workplans/archived/260702-ADHOC-2026-05-25.md similarity index 100% rename from workplans/ADHOC-2026-05-25.md rename to workplans/archived/260702-ADHOC-2026-05-25.md diff --git a/workplans/ADHOC-2026-06-03.md b/workplans/archived/260702-ADHOC-2026-06-03.md similarity index 100% rename from workplans/ADHOC-2026-06-03.md rename to workplans/archived/260702-ADHOC-2026-06-03.md diff --git a/workplans/ADHOC-2026-06-06.md b/workplans/archived/260702-ADHOC-2026-06-06.md similarity index 100% rename from workplans/ADHOC-2026-06-06.md rename to workplans/archived/260702-ADHOC-2026-06-06.md diff --git a/workplans/RAIL-FAB-WP-0001-ecosystem-graph-model.md b/workplans/archived/260702-RAIL-FAB-WP-0001-ecosystem-graph-model.md similarity index 99% rename from workplans/RAIL-FAB-WP-0001-ecosystem-graph-model.md rename to workplans/archived/260702-RAIL-FAB-WP-0001-ecosystem-graph-model.md index e53c189..aa60070 100644 --- a/workplans/RAIL-FAB-WP-0001-ecosystem-graph-model.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0001-ecosystem-graph-model.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0001 type: workplan title: "Railiance Ecosystem Graph Model" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: high diff --git a/workplans/RAIL-FAB-WP-0002-ecosystem-registry-service.md b/workplans/archived/260702-RAIL-FAB-WP-0002-ecosystem-registry-service.md similarity index 99% rename from workplans/RAIL-FAB-WP-0002-ecosystem-registry-service.md rename to workplans/archived/260702-RAIL-FAB-WP-0002-ecosystem-registry-service.md index 12b7dfe..6dea7ad 100644 --- a/workplans/RAIL-FAB-WP-0002-ecosystem-registry-service.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0002-ecosystem-registry-service.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0002 type: workplan title: "Railiance Ecosystem Registry Service" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: high diff --git a/workplans/RAIL-FAB-WP-0003-registry-feed-and-library-inventory.md b/workplans/archived/260702-RAIL-FAB-WP-0003-registry-feed-and-library-inventory.md similarity index 97% rename from workplans/RAIL-FAB-WP-0003-registry-feed-and-library-inventory.md rename to workplans/archived/260702-RAIL-FAB-WP-0003-registry-feed-and-library-inventory.md index aadf86e..768d518 100644 --- a/workplans/RAIL-FAB-WP-0003-registry-feed-and-library-inventory.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0003-registry-feed-and-library-inventory.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0003 type: workplan title: "Registry Feed And Library Inventory" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: high diff --git a/workplans/RAIL-FAB-WP-0004-registry-inventory-and-drift.md b/workplans/archived/260702-RAIL-FAB-WP-0004-registry-inventory-and-drift.md similarity index 97% rename from workplans/RAIL-FAB-WP-0004-registry-inventory-and-drift.md rename to workplans/archived/260702-RAIL-FAB-WP-0004-registry-inventory-and-drift.md index ad8dcc5..393477e 100644 --- a/workplans/RAIL-FAB-WP-0004-registry-inventory-and-drift.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0004-registry-inventory-and-drift.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0004 type: workplan title: "Registry Inventory And Drift Views" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: high diff --git a/workplans/RAIL-FAB-WP-0005-registry-hardening.md b/workplans/archived/260702-RAIL-FAB-WP-0005-registry-hardening.md similarity index 97% rename from workplans/RAIL-FAB-WP-0005-registry-hardening.md rename to workplans/archived/260702-RAIL-FAB-WP-0005-registry-hardening.md index 9bc1141..09081b7 100644 --- a/workplans/RAIL-FAB-WP-0005-registry-hardening.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0005-registry-hardening.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0005 type: workplan title: "Registry Hardening" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: medium diff --git a/workplans/RAIL-FAB-WP-0006-multi-repo-registry-onboarding.md b/workplans/archived/260702-RAIL-FAB-WP-0006-multi-repo-registry-onboarding.md similarity index 97% rename from workplans/RAIL-FAB-WP-0006-multi-repo-registry-onboarding.md rename to workplans/archived/260702-RAIL-FAB-WP-0006-multi-repo-registry-onboarding.md index 3e2b8ce..f306811 100644 --- a/workplans/RAIL-FAB-WP-0006-multi-repo-registry-onboarding.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0006-multi-repo-registry-onboarding.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0006 type: workplan title: "Multi-Repo Registry Onboarding" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: high diff --git a/workplans/RAIL-FAB-WP-0007-all-local-repo-onboarding.md b/workplans/archived/260702-RAIL-FAB-WP-0007-all-local-repo-onboarding.md similarity index 97% rename from workplans/RAIL-FAB-WP-0007-all-local-repo-onboarding.md rename to workplans/archived/260702-RAIL-FAB-WP-0007-all-local-repo-onboarding.md index 07c883f..3e2f764 100644 --- a/workplans/RAIL-FAB-WP-0007-all-local-repo-onboarding.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0007-all-local-repo-onboarding.md @@ -2,9 +2,9 @@ id: RAIL-FAB-WP-0007 type: workplan title: "All Local Repo Onboarding" -domain: railiance +domain: financials repo: railiance-fabric -status: completed +status: finished owner: codex topic_slug: railiance planning_priority: medium diff --git a/workplans/RAIL-FAB-WP-0008-interactive-fabric-map.md b/workplans/archived/260702-RAIL-FAB-WP-0008-interactive-fabric-map.md similarity index 99% rename from workplans/RAIL-FAB-WP-0008-interactive-fabric-map.md rename to workplans/archived/260702-RAIL-FAB-WP-0008-interactive-fabric-map.md index 6012562..49cce6c 100644 --- a/workplans/RAIL-FAB-WP-0008-interactive-fabric-map.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0008-interactive-fabric-map.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0008 type: workplan title: "Interactive Fabric Map" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0009-graph-explorer-ui-refinement.md b/workplans/archived/260702-RAIL-FAB-WP-0009-graph-explorer-ui-refinement.md similarity index 99% rename from workplans/RAIL-FAB-WP-0009-graph-explorer-ui-refinement.md rename to workplans/archived/260702-RAIL-FAB-WP-0009-graph-explorer-ui-refinement.md index 765314b..cee8d57 100644 --- a/workplans/RAIL-FAB-WP-0009-graph-explorer-ui-refinement.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0009-graph-explorer-ui-refinement.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0009 type: workplan title: "Graph Explorer UI Refinement" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0010-repo-reality-scanner.md b/workplans/archived/260702-RAIL-FAB-WP-0010-repo-reality-scanner.md similarity index 99% rename from workplans/RAIL-FAB-WP-0010-repo-reality-scanner.md rename to workplans/archived/260702-RAIL-FAB-WP-0010-repo-reality-scanner.md index 96a889b..8c344f5 100644 --- a/workplans/RAIL-FAB-WP-0010-repo-reality-scanner.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0010-repo-reality-scanner.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0010 type: workplan title: "Repo Reality Scanner" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0011-operational-rescan-loops.md b/workplans/archived/260702-RAIL-FAB-WP-0011-operational-rescan-loops.md similarity index 99% rename from workplans/RAIL-FAB-WP-0011-operational-rescan-loops.md rename to workplans/archived/260702-RAIL-FAB-WP-0011-operational-rescan-loops.md index 88e1cf7..0e9d867 100644 --- a/workplans/RAIL-FAB-WP-0011-operational-rescan-loops.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0011-operational-rescan-loops.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0011 type: workplan title: "Operational Rescan Loops" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0012-baseline-rollout-and-conflict-review.md b/workplans/archived/260702-RAIL-FAB-WP-0012-baseline-rollout-and-conflict-review.md similarity index 99% rename from workplans/RAIL-FAB-WP-0012-baseline-rollout-and-conflict-review.md rename to workplans/archived/260702-RAIL-FAB-WP-0012-baseline-rollout-and-conflict-review.md index 6730ef5..03313d0 100644 --- a/workplans/RAIL-FAB-WP-0012-baseline-rollout-and-conflict-review.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0012-baseline-rollout-and-conflict-review.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0012 type: workplan title: "Baseline Rollout And Conflict Review" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0013-path-scoped-duplicate-identity.md b/workplans/archived/260702-RAIL-FAB-WP-0013-path-scoped-duplicate-identity.md similarity index 99% rename from workplans/RAIL-FAB-WP-0013-path-scoped-duplicate-identity.md rename to workplans/archived/260702-RAIL-FAB-WP-0013-path-scoped-duplicate-identity.md index dadaaed..611911b 100644 --- a/workplans/RAIL-FAB-WP-0013-path-scoped-duplicate-identity.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0013-path-scoped-duplicate-identity.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0013 type: workplan title: "Path Scoped Duplicate Identity" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0014-runtime-topology-discovery.md b/workplans/archived/260702-RAIL-FAB-WP-0014-runtime-topology-discovery.md similarity index 99% rename from workplans/RAIL-FAB-WP-0014-runtime-topology-discovery.md rename to workplans/archived/260702-RAIL-FAB-WP-0014-runtime-topology-discovery.md index 0f96b18..06f7040 100644 --- a/workplans/RAIL-FAB-WP-0014-runtime-topology-discovery.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0014-runtime-topology-discovery.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0014 type: workplan title: "Runtime Topology Discovery" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0015-runtime-entity-taxonomy.md b/workplans/archived/260702-RAIL-FAB-WP-0015-runtime-entity-taxonomy.md similarity index 99% rename from workplans/RAIL-FAB-WP-0015-runtime-entity-taxonomy.md rename to workplans/archived/260702-RAIL-FAB-WP-0015-runtime-entity-taxonomy.md index a4dc895..83bc9ae 100644 --- a/workplans/RAIL-FAB-WP-0015-runtime-entity-taxonomy.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0015-runtime-entity-taxonomy.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0015 type: workplan title: "Runtime Entity Taxonomy Refinement" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0016-canon-aligned-graph-model-reset-reingest.md b/workplans/archived/260702-RAIL-FAB-WP-0016-canon-aligned-graph-model-reset-reingest.md similarity index 99% rename from workplans/RAIL-FAB-WP-0016-canon-aligned-graph-model-reset-reingest.md rename to workplans/archived/260702-RAIL-FAB-WP-0016-canon-aligned-graph-model-reset-reingest.md index 1dea24f..6858736 100644 --- a/workplans/RAIL-FAB-WP-0016-canon-aligned-graph-model-reset-reingest.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0016-canon-aligned-graph-model-reset-reingest.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0016 type: workplan title: "Canon-Aligned Graph Model Reset And Reingest" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0017-financial-fabric-model-reset.md b/workplans/archived/260702-RAIL-FAB-WP-0017-financial-fabric-model-reset.md similarity index 99% rename from workplans/RAIL-FAB-WP-0017-financial-fabric-model-reset.md rename to workplans/archived/260702-RAIL-FAB-WP-0017-financial-fabric-model-reset.md index fdc3b24..c205cfd 100644 --- a/workplans/RAIL-FAB-WP-0017-financial-fabric-model-reset.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0017-financial-fabric-model-reset.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0017 type: workplan title: "Financial Fabric Model Reset" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0018-accountability-root-discovery-update-loop.md b/workplans/archived/260702-RAIL-FAB-WP-0018-accountability-root-discovery-update-loop.md similarity index 99% rename from workplans/RAIL-FAB-WP-0018-accountability-root-discovery-update-loop.md rename to workplans/archived/260702-RAIL-FAB-WP-0018-accountability-root-discovery-update-loop.md index 8e769eb..69b679b 100644 --- a/workplans/RAIL-FAB-WP-0018-accountability-root-discovery-update-loop.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0018-accountability-root-discovery-update-loop.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0018 type: workplan title: "Accountability Root Discovery And Update Loop" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0019-duplicate-repository-identity-review.md b/workplans/archived/260702-RAIL-FAB-WP-0019-duplicate-repository-identity-review.md similarity index 99% rename from workplans/RAIL-FAB-WP-0019-duplicate-repository-identity-review.md rename to workplans/archived/260702-RAIL-FAB-WP-0019-duplicate-repository-identity-review.md index fccd8a1..bfb5bcd 100644 --- a/workplans/RAIL-FAB-WP-0019-duplicate-repository-identity-review.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0019-duplicate-repository-identity-review.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0019 type: workplan title: "Duplicate Repository Identity Review" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0020-deployment-zone-discovery-visualization.md b/workplans/archived/260702-RAIL-FAB-WP-0020-deployment-zone-discovery-visualization.md similarity index 99% rename from workplans/RAIL-FAB-WP-0020-deployment-zone-discovery-visualization.md rename to workplans/archived/260702-RAIL-FAB-WP-0020-deployment-zone-discovery-visualization.md index e2203fc..81a3627 100644 --- a/workplans/RAIL-FAB-WP-0020-deployment-zone-discovery-visualization.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0020-deployment-zone-discovery-visualization.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0020 type: workplan title: "Deployment Zone Discovery And Visualization" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0021-zone-boundary-overlays.md b/workplans/archived/260702-RAIL-FAB-WP-0021-zone-boundary-overlays.md similarity index 99% rename from workplans/RAIL-FAB-WP-0021-zone-boundary-overlays.md rename to workplans/archived/260702-RAIL-FAB-WP-0021-zone-boundary-overlays.md index da59aef..25281a9 100644 --- a/workplans/RAIL-FAB-WP-0021-zone-boundary-overlays.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0021-zone-boundary-overlays.md @@ -2,7 +2,7 @@ id: RAIL-FAB-WP-0021 type: workplan title: "Zone Boundary Overlays" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex diff --git a/workplans/RAIL-FAB-WP-0022-zone-entity-visualization-engine.md b/workplans/archived/260702-RAIL-FAB-WP-0022-zone-entity-visualization-engine.md similarity index 99% rename from workplans/RAIL-FAB-WP-0022-zone-entity-visualization-engine.md rename to workplans/archived/260702-RAIL-FAB-WP-0022-zone-entity-visualization-engine.md index fc78a18..a42b805 100644 --- a/workplans/RAIL-FAB-WP-0022-zone-entity-visualization-engine.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0022-zone-entity-visualization-engine.md @@ -2,11 +2,11 @@ id: RAIL-FAB-WP-0022 type: workplan title: "Promote graph zones to first-class visualization entities" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex -topic_slug: railiance-fabric +topic_slug: railiance created: "2026-05-24" updated: "2026-05-24" state_hub_workstream_id: "343f8383-ba5e-4d60-b55e-81611954d9b9" diff --git a/workplans/RAIL-FAB-WP-0023-zone-drag-interaction.md b/workplans/archived/260702-RAIL-FAB-WP-0023-zone-drag-interaction.md similarity index 98% rename from workplans/RAIL-FAB-WP-0023-zone-drag-interaction.md rename to workplans/archived/260702-RAIL-FAB-WP-0023-zone-drag-interaction.md index 73fff30..948722f 100644 --- a/workplans/RAIL-FAB-WP-0023-zone-drag-interaction.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0023-zone-drag-interaction.md @@ -2,11 +2,11 @@ id: RAIL-FAB-WP-0023 type: workplan title: "Improve zone labels and dragging" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex -topic_slug: railiance-fabric +topic_slug: railiance created: "2026-05-25" updated: "2026-06-05" state_hub_workstream_id: "f02e14c5-e60f-4950-b1a2-682c38b30431" diff --git a/workplans/RAIL-FAB-WP-0024-stable-zone-containers-and-layout.md b/workplans/archived/260702-RAIL-FAB-WP-0024-stable-zone-containers-and-layout.md similarity index 99% rename from workplans/RAIL-FAB-WP-0024-stable-zone-containers-and-layout.md rename to workplans/archived/260702-RAIL-FAB-WP-0024-stable-zone-containers-and-layout.md index 25adb89..5352f32 100644 --- a/workplans/RAIL-FAB-WP-0024-stable-zone-containers-and-layout.md +++ b/workplans/archived/260702-RAIL-FAB-WP-0024-stable-zone-containers-and-layout.md @@ -2,11 +2,11 @@ id: RAIL-FAB-WP-0024 type: workplan title: "Stabilize zone containers and layout zone subgraphs" -domain: railiance +domain: financials repo: railiance-fabric status: finished owner: codex -topic_slug: railiance-fabric +topic_slug: railiance created: "2026-05-25" updated: "2026-05-25" state_hub_workstream_id: "63202459-2f73-409a-8881-307a5fc1835a"