Compare commits

..

No commits in common. "a2c056f14cb1e4fb60c337c85534536e4b590853" and "caa1e4100dd8e99f4d17f9bfea130421f86a1b30" have entirely different histories.

41 changed files with 104 additions and 399 deletions

View file

@ -20,7 +20,7 @@ Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run wa
| Agent runtime | How to orient | | 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 | | **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 workplans; **still** use `warden route` for credential ownership | | **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **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` | | **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` |
### Quick routing table ### Quick routing table

View file

@ -1,41 +1,37 @@
## First Session Protocol ## First Session Protocol
Triggered when `get_domain_summary("financials")` shows **no workplans**. Triggered when `get_domain_summary("railiance")` shows **no workstreams**.
The project is registered but work has not yet been structured. The project is registered but work has not yet been structured.
**Step 1 — Read, don't write** **Step 1 — Read, don't write**
- `~/the-custodian/canon/projects/financials/project_charter_v0.1.md` — purpose, scope - `~/the-custodian/canon/projects/railiance/project_charter_v0.1.md` — purpose, scope
- `~/the-custodian/canon/projects/financials/roadmap_v0.1.md` — planned phases - `~/the-custodian/canon/projects/railiance/roadmap_v0.1.md` — planned phases
- Scan repo root: README, directory structure, existing code or docs - Scan repo root: README, directory structure, existing code or docs
**Step 2 — Survey in-progress work** **Step 2 — Survey in-progress work**
Look for TODOs, open branches, half-finished files. Note done vs. started but incomplete. Look for TODOs, open branches, half-finished files. Note done vs. started but incomplete.
**Step 3 — Propose workplans to Bernd** **Step 3 — Propose workstreams to Bernd**
Propose 1–3 workplans — each a coherent strand, weeks to months, anchored to a Propose 1–3 workstreams — each a coherent strand, weeks to months, anchored to a
roadmap phase. **Wait for approval before creating.** roadmap phase. **Wait for approval before creating.**
**Step 4 — Write the workplan file; fix-consistency registers it (ADR-001)** **Step 4 — Create workplan file first, then DB record (ADR-001)**
``` ```
workplans/RAILIANCE-WP-NNNN-<slug>.md ← write this, commit it workplans/railiance-fabric-WP-NNNN-<slug>.md ← write this first
``` ```
Then register by running the consistency check — do **not** call Then register in the hub:
`create_workplan`/`create_task` (or legacy `create_workstream`) yourself; ```
manual registration duplicates what C-06 creates from the file: create_workstream(topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", title="...", owner="...", description="...")
```bash create_task(workstream_id="<id>", title="...", priority="high|medium|low")
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** **Step 5 — Record the setup**
``` ```
add_progress_event( add_progress_event(
summary="First session: structured financials into N workplans, M tasks", summary="First session: structured railiance into N workstreams, M tasks",
event_type="milestone", event_type="milestone",
topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38",
detail={"workplans": [...], "tasks_created": M} detail={"workstreams": [...], "tasks_created": M}
) )
``` ```

View file

@ -1,5 +1,5 @@
**Purpose:** railiance-fabric - (fill in purpose) **Purpose:** railiance-fabric - (fill in purpose)
**Domain:** financials **Domain:** railiance
**Repo slug:** railiance-fabric **Repo slug:** railiance-fabric
**Topic ID:** ca369340-a64e-442e-98f1-a4fa7dc74a38 **Topic ID:** ca369340-a64e-442e-98f1-a4fa7dc74a38

View file

@ -1,7 +1,6 @@
## Session Protocol ## Session Protocol
Dev Hub (State Hub API): http://127.0.0.1:8000 State Hub: http://127.0.0.1:8000
MCP server name in `~/.claude.json`: `dev-hub`
**Step 1 — Orient** **Step 1 — Orient**
@ -11,7 +10,7 @@ cat .custodian-brief.md
``` ```
Then call the MCP tool for richer cross-domain context when MCP tools are exposed: Then call the MCP tool for richer cross-domain context when MCP tools are exposed:
``` ```
get_domain_summary("financials") get_domain_summary("railiance")
``` ```
If MCP tools are unavailable in the current agent session, use the REST API: If MCP tools are unavailable in the current agent session, use the REST API:
```bash ```bash
@ -40,11 +39,11 @@ curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
ls workplans/ ls workplans/
``` ```
For each file with `status: ready`, `active`, or `blocked`, note pending For each file with `status: ready`, `active`, or `blocked`, note pending
`wait`/`todo`/`progress` tasks. `todo`/`in_progress` tasks.
**Step 4 — Present brief** **Step 4 — Present brief**
1. **Active workplans** for `financials` — title, task counts, blocking decisions 1. **Active workstreams** for `railiance` — title, task counts, blocking decisions
2. **Pending tasks** from `workplans/` + any `[repo:railiance-fabric]` hub tasks 2. **Pending tasks** from `workplans/` + any `[repo:railiance-fabric]` hub tasks
3. **Goal guidance** — if `goal_guidance` in summary: 3. **Goal guidance** — if `goal_guidance` in summary:
- `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"* - `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"*
@ -52,42 +51,33 @@ For each file with `status: ready`, `active`, or `blocked`, note pending
4. **Suggested next action** — highest-priority open item 4. **Suggested next action** — highest-priority open item
5. **SBOM status** — flag if `last_sbom_at` is unset for this repo 5. **SBOM status** — flag if `last_sbom_at` is unset for this repo
If no workplans: follow First Session Protocol (`first-session.md`). If no workstreams: follow First Session Protocol (`first-session.md`).
**During work:** `record_decision()` · `add_progress_event()` · `resolve_decision()` **During work:** `record_decision()` · `add_progress_event()` · `resolve_decision()`
> State Hub is a *read model*. **Never register workplans or tasks by hand** > State Hub is a *read model*. Bootstrap tools (`create_workstream`, `create_task`)
> (`create_workplan`, `create_task`, or the legacy `create_workstream`) — write > are First Session Protocol only. Work structure belongs in repo files (ADR-001).
> 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:** **Session close:**
With MCP tools: With MCP tools:
``` ```
add_progress_event(summary="...", topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", workplan_id="<uuid>") add_progress_event(summary="...", topic_id="ca369340-a64e-442e-98f1-a4fa7dc74a38", workstream_id="<uuid>")
``` ```
Without MCP tools: Without MCP tools:
```bash ```bash
curl -s -X POST http://127.0.0.1:8000/progress/ \ curl -s -X POST http://127.0.0.1:8000/progress/ \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"topic_id":"ca369340-a64e-442e-98f1-a4fa7dc74a38","workplan_id":"<uuid>","event_type":"note","summary":"what changed","author":"codex"}' -d '{"topic_id":"ca369340-a64e-442e-98f1-a4fa7dc74a38","workstream_id":"<uuid>","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 ```bash
git pull --ff-only git -C <repo_path> pull --ff-only
statehub fix-consistency cd ~/state-hub && make fix-consistency REPO=railiance-fabric
``` ```
For repos where implementation runs on a remote machine (e.g. CoulombCore), For repos where implementation runs on a remote machine (e.g. CoulombCore),
use the pull-before-fix mode from any shell with the State Hub CLI: use the combined target which pulls before fixing:
```bash ```bash
statehub fix-consistency --repo railiance-fabric --remote cd ~/state-hub && make fix-consistency-remote REPO=railiance-fabric
``` ```
**C-15** (DB task ahead of file) is normal in multi-machine workflows — writeback **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 will sync the file to match DB. **C-16** (repo behind remote) blocks all writes

View file

@ -1,14 +1,19 @@
## Stack ## Stack
- **Language:** Python ≥3.12 (`railiance_fabric` package) <!-- TODO: Fill in language, frameworks, and key dependencies -->
- **Key deps:** jsonschema, PyYAML; SQLite registry at `.railiance-fabric/registry.sqlite3` - **Language:**
- **Key deps:**
## Dev Commands ## Dev Commands
```bash ```bash
python3 -m pytest tests/ # run the test suite # TODO: Fill in the standard commands for this repo
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. # Install dependencies
# Run tests
# Lint / type check
# Build / package (if applicable)
```

View file

@ -1,45 +1,28 @@
## Workplan Convention (ADR-001) ## Workplan Convention (ADR-001)
File location: `workplans/RAILIANCE-WP-NNNN-<slug>.md` File location: `workplans/railiance-fabric-WP-NNNN-<slug>.md`
ID prefix: `RAILIANCE-WP-` ID prefix: `RAILIANCE-WP`
Work items originate as files in this repo **before** being registered in the hub. Work items originate as files in this repo **before** being registered in the hub.
Canonical workplan frontmatter statuses are: Canonical workplan/workstream frontmatter statuses are:
`proposed`, `ready`, `active`, `blocked`, `backlog`, `finished`, `archived`. `proposed`, `ready`, `active`, `blocked`, `backlog`, `finished`, `archived`.
Use `proposed` for a newly drafted plan, `ready` after review against current Use `proposed` for a newly drafted plan, `ready` after review against current
repo state, and `finished` when implementation is complete. `stalled` and repo state, and `finished` when implementation is complete. `stalled` and
`needs_review` are derived health labels, not stored statuses. `needs_review` are derived health labels, not stored statuses.
Closed workplans may be moved to `workplans/archived/` with a completion-date Closed workplans may be moved to `workplans/archived/` with a completion-date
prefix: `YYMMDD-RAILIANCE-WP-NNNN-<slug>.md`. The frontmatter id remains prefix: `YYMMDD-railiance-fabric-WP-NNNN-<slug>.md`. The frontmatter id remains
unchanged; the prefix is only for quick visual reference. unchanged; the prefix is only for quick visual reference.
Small opportunistic tasks discovered during another session use **Ad Hoc Tasks**: Small opportunistic tasks discovered during another session use **Ad Hoc Tasks**:
`workplans/ADHOC-YYYY-MM-DD.md`, workplan slug `adhoc-YYYY-MM-DD`, and task ids `workplans/ADHOC-YYYY-MM-DD.md`, workstream slug `adhoc-YYYY-MM-DD`, and task ids
`ADHOC-YYYY-MM-DD-T01`, `T02`, etc. Use adhocs only for low-risk work completed `ADHOC-YYYY-MM-DD-T01`, `T02`, etc. Use adhocs only for low-risk work completed
directly. Promote anything requiring analysis, design, approval, dependencies, or directly. Promote anything requiring analysis, design, approval, dependencies, or
multiple planned phases into a normal workplan. multiple planned phases into a normal workplan.
Ecosystem todos from other agents arrive as `[repo:railiance-fabric]` hub tasks — Ecosystem todos from other agents arrive as `[repo:railiance-fabric]` hub tasks —
visible at session start. Pick one up by creating the workplan file, committing, visible at session start. Pick one up by creating the workplan file, then registering
and running `statehub fix-consistency` — C-06 registers the workplan in the hub. the workstream.
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: "<uuid>" # 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.
<!-- Ralph Loop rules and HEUREKA sequence: ~/.claude/CLAUDE.md — do not duplicate here --> <!-- Ralph Loop rules and HEUREKA sequence: ~/.claude/CLAUDE.md — do not duplicate here -->

View file

@ -1,8 +1,8 @@
<!-- custodian-brief: generated by fix-consistency — do not edit manually --> <!-- custodian-brief: generated by fix-consistency — do not edit manually -->
# Custodian Brief — railiance-fabric # Custodian Brief — railiance-fabric
**Domain:** financials **Domain:** railiance
**Last synced:** 2026-07-01 22:24 UTC **Last synced:** 2026-06-05 19:36 UTC
**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)*
## Active Workstreams ## Active Workstreams
@ -13,6 +13,6 @@
## MCP Orientation (when available) ## MCP Orientation (when available)
If the state-hub MCP server is reachable, call: If the state-hub MCP server is reachable, call:
`get_domain_summary("financials")` `get_domain_summary("railiance")`
This provides richer cross-domain context. This provides richer cross-domain context.
If the MCP call fails, use this file as your orientation source. If the MCP call fails, use this file as your orientation source.

View file

@ -1,29 +0,0 @@
# 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}"

View file

@ -1,17 +0,0 @@
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

View file

@ -4,7 +4,7 @@
**Purpose:** railiance-fabric - (fill in purpose) **Purpose:** railiance-fabric - (fill in purpose)
**Domain:** financials **Domain:** railiance
**Repo slug:** railiance-fabric **Repo slug:** railiance-fabric
**Topic ID:** `ca369340-a64e-442e-98f1-a4fa7dc74a38` **Topic ID:** `ca369340-a64e-442e-98f1-a4fa7dc74a38`
**Workplan prefix:** `RAILIANCE-WP-` **Workplan prefix:** `RAILIANCE-WP-`
@ -20,12 +20,6 @@ there is no MCP server for Codex agents.
|---------|-----| |---------|-----|
| Local workstation | `http://127.0.0.1:8000` | | Local workstation | `http://127.0.0.1:8000` |
| Remote via tunnel | `http://127.0.0.1:18000` | | 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 ### Orient at session start
@ -33,8 +27,8 @@ statehub outbox status/replay after connectivity returns.
# Offline brief — works without hub connection # Offline brief — works without hub connection
cat .custodian-brief.md cat .custodian-brief.md
# Active workplans for this domain # Active workstreams for this domain
curl -s "http://127.0.0.1:8000/workplans/?topic_id=ca369340-a64e-442e-98f1-a4fa7dc74a38&status=active" \ curl -s "http://127.0.0.1:8000/workstreams/?topic_id=ca369340-a64e-442e-98f1-a4fa7dc74a38&status=active" \
| python3 -m json.tool | python3 -m json.tool
# Check inbox # Check inbox
@ -57,20 +51,20 @@ curl -s -X POST http://127.0.0.1:8000/progress/ \
"summary": "what was done", "summary": "what was done",
"event_type": "note", "event_type": "note",
"author": "codex", "author": "codex",
"workplan_id": "<uuid>", "workstream_id": "<uuid>",
"task_id": "<uuid>" "task_id": "<uuid>"
}' }'
``` ```
Omit `workplan_id` / `task_id` when not applicable. Omit `workstream_id` / `task_id` when not applicable.
### Update task status ### Update task status
```bash ```bash
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \ curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"status": "progress"}' -d '{"status": "in_progress"}'
# values: wait | todo | progress | done | cancel # values: todo | in_progress | done | blocked
``` ```
### Flag a task for human review ### Flag a task for human review
@ -86,10 +80,10 @@ curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
## Session Protocol ## Session Protocol
**Start:** **Start:**
1. `cat .custodian-brief.md` — domain goal and open workplans (offline-safe) 1. `cat .custodian-brief.md` — domain goal and open workstreams (offline-safe)
2. Check inbox: `GET /messages/?to_agent=railiance-fabric&unread_only=true`; mark read 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 3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks
4. Check human-needed tasks: `GET /tasks/?needs_human=true` 4. Check blocked tasks: `GET /tasks/?needs_human=true`
**During work:** **During work:**
- Update task statuses in workplan files as tasks progress - Update task statuses in workplan files as tasks progress
@ -98,12 +92,12 @@ curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
**Close:** **Close:**
1. Update workplan file task statuses to reflect progress 1. Update workplan file task statuses to reflect progress
2. Log: `POST /progress/` with a summary of what changed 2. Log: `POST /progress/` with a summary of what changed
3. After workplan file changes, run: 3. Note for the custodian operator: after workplan file changes, run from
`~/state-hub`:
```bash ```bash
statehub fix-consistency make fix-consistency REPO=railiance-fabric
``` ```
Coding agents should run this directly; ask the operator only if the CLI or This syncs task status from files into the hub DB.
State Hub API is unavailable. This syncs task status from files into the hub DB.
--- ---
@ -129,7 +123,7 @@ Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run wa
| Agent runtime | How to orient | | 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 | | **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 workplans; **still** use `warden route` for credential ownership | | **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **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` | | **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` |
### Quick routing table ### Quick routing table
@ -157,11 +151,6 @@ every repo's agent instructions because it is high-frequency, high-risk, and eas
get wrong. get wrong.
**Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml` **Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml`
<!-- REPO-AGENTS-EXTENSIONS -->
<!-- Append repo-specific agent instructions below this marker.
The state-hub template sync preserves content after this line. -->
--- ---
## Workplan Convention (ADR-001) ## Workplan Convention (ADR-001)
@ -187,7 +176,7 @@ anything needing analysis, design, approval, dependencies, or multiple phases.
id: RAILIANCE-WP-NNNN id: RAILIANCE-WP-NNNN
type: workplan type: workplan
title: "..." title: "..."
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: proposed | ready | active | blocked | backlog | finished | archived status: proposed | ready | active | blocked | backlog | finished | archived
owner: codex owner: codex
@ -209,7 +198,7 @@ derived health labels, not frontmatter statuses.
` ` `task ` ` `task
id: RAILIANCE-WP-NNNN-T01 id: RAILIANCE-WP-NNNN-T01
status: wait | todo | progress | done | cancel status: todo | in_progress | done | blocked
priority: high | medium | low priority: high | medium | low
state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
` ` ` ` ` `
@ -217,7 +206,7 @@ state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
Task description text. Task description text.
``` ```
Status progression: `todo` → `progress` → `done`; use `wait` for waiting/blocked work and `cancel` for stopped work. Status progression: `todo` → `in_progress` → `done` (or `blocked`)
To create a new workplan: To create a new workplan:
1. Write the file following the format above 1. Write the file following the format above

View file

@ -19,75 +19,3 @@ 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. 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.
---

View file

@ -1,122 +0,0 @@
---
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.<domain>.<name>` 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`

View file

@ -1,22 +1,4 @@
version: 1 version: 1
updated: '2026-07-06' updated: '2026-06-16'
domain: helix_forge 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)

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0001 id: RAIL-FAB-WP-0001
type: workplan type: workplan
title: "Railiance Ecosystem Graph Model" title: "Railiance Ecosystem Graph Model"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: high planning_priority: high

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0002 id: RAIL-FAB-WP-0002
type: workplan type: workplan
title: "Railiance Ecosystem Registry Service" title: "Railiance Ecosystem Registry Service"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: high planning_priority: high

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0003 id: RAIL-FAB-WP-0003
type: workplan type: workplan
title: "Registry Feed And Library Inventory" title: "Registry Feed And Library Inventory"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: high planning_priority: high

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0004 id: RAIL-FAB-WP-0004
type: workplan type: workplan
title: "Registry Inventory And Drift Views" title: "Registry Inventory And Drift Views"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: high planning_priority: high

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0005 id: RAIL-FAB-WP-0005
type: workplan type: workplan
title: "Registry Hardening" title: "Registry Hardening"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: medium planning_priority: medium

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0006 id: RAIL-FAB-WP-0006
type: workplan type: workplan
title: "Multi-Repo Registry Onboarding" title: "Multi-Repo Registry Onboarding"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: high planning_priority: high

View file

@ -2,9 +2,9 @@
id: RAIL-FAB-WP-0007 id: RAIL-FAB-WP-0007
type: workplan type: workplan
title: "All Local Repo Onboarding" title: "All Local Repo Onboarding"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: completed
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
planning_priority: medium planning_priority: medium

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0008 id: RAIL-FAB-WP-0008
type: workplan type: workplan
title: "Interactive Fabric Map" title: "Interactive Fabric Map"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0009 id: RAIL-FAB-WP-0009
type: workplan type: workplan
title: "Graph Explorer UI Refinement" title: "Graph Explorer UI Refinement"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0010 id: RAIL-FAB-WP-0010
type: workplan type: workplan
title: "Repo Reality Scanner" title: "Repo Reality Scanner"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0011 id: RAIL-FAB-WP-0011
type: workplan type: workplan
title: "Operational Rescan Loops" title: "Operational Rescan Loops"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0012 id: RAIL-FAB-WP-0012
type: workplan type: workplan
title: "Baseline Rollout And Conflict Review" title: "Baseline Rollout And Conflict Review"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0013 id: RAIL-FAB-WP-0013
type: workplan type: workplan
title: "Path Scoped Duplicate Identity" title: "Path Scoped Duplicate Identity"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0014 id: RAIL-FAB-WP-0014
type: workplan type: workplan
title: "Runtime Topology Discovery" title: "Runtime Topology Discovery"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0015 id: RAIL-FAB-WP-0015
type: workplan type: workplan
title: "Runtime Entity Taxonomy Refinement" title: "Runtime Entity Taxonomy Refinement"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0016 id: RAIL-FAB-WP-0016
type: workplan type: workplan
title: "Canon-Aligned Graph Model Reset And Reingest" title: "Canon-Aligned Graph Model Reset And Reingest"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0017 id: RAIL-FAB-WP-0017
type: workplan type: workplan
title: "Financial Fabric Model Reset" title: "Financial Fabric Model Reset"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0018 id: RAIL-FAB-WP-0018
type: workplan type: workplan
title: "Accountability Root Discovery And Update Loop" title: "Accountability Root Discovery And Update Loop"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0019 id: RAIL-FAB-WP-0019
type: workplan type: workplan
title: "Duplicate Repository Identity Review" title: "Duplicate Repository Identity Review"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0020 id: RAIL-FAB-WP-0020
type: workplan type: workplan
title: "Deployment Zone Discovery And Visualization" title: "Deployment Zone Discovery And Visualization"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,7 +2,7 @@
id: RAIL-FAB-WP-0021 id: RAIL-FAB-WP-0021
type: workplan type: workplan
title: "Zone Boundary Overlays" title: "Zone Boundary Overlays"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex

View file

@ -2,11 +2,11 @@
id: RAIL-FAB-WP-0022 id: RAIL-FAB-WP-0022
type: workplan type: workplan
title: "Promote graph zones to first-class visualization entities" title: "Promote graph zones to first-class visualization entities"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance-fabric
created: "2026-05-24" created: "2026-05-24"
updated: "2026-05-24" updated: "2026-05-24"
state_hub_workstream_id: "343f8383-ba5e-4d60-b55e-81611954d9b9" state_hub_workstream_id: "343f8383-ba5e-4d60-b55e-81611954d9b9"

View file

@ -2,11 +2,11 @@
id: RAIL-FAB-WP-0023 id: RAIL-FAB-WP-0023
type: workplan type: workplan
title: "Improve zone labels and dragging" title: "Improve zone labels and dragging"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance-fabric
created: "2026-05-25" created: "2026-05-25"
updated: "2026-06-05" updated: "2026-06-05"
state_hub_workstream_id: "f02e14c5-e60f-4950-b1a2-682c38b30431" state_hub_workstream_id: "f02e14c5-e60f-4950-b1a2-682c38b30431"

View file

@ -2,11 +2,11 @@
id: RAIL-FAB-WP-0024 id: RAIL-FAB-WP-0024
type: workplan type: workplan
title: "Stabilize zone containers and layout zone subgraphs" title: "Stabilize zone containers and layout zone subgraphs"
domain: financials domain: railiance
repo: railiance-fabric repo: railiance-fabric
status: finished status: finished
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance-fabric
created: "2026-05-25" created: "2026-05-25"
updated: "2026-05-25" updated: "2026-05-25"
state_hub_workstream_id: "63202459-2f73-409a-8881-307a5fc1835a" state_hub_workstream_id: "63202459-2f73-409a-8881-307a5fc1835a"