Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I1001

One typed graph composes the registries that already own their facts

Where it stands

devtask.issue
Readiness
complete completion is recorded and every required evidence token is present
Status
DONE
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
Behind it in all
29
Evidence
2 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1001

majordomus plan verify I1001

majordomus plan done I1001

What it is

Objective
Extend the executable's graph derivation into a typed, deterministic model that composes the existing authoritative registries — capabilities, commands, routes, MCP exposure, skills, rules, decisions, documents, use cases, benchmarks — without any of them ceasing to be authoritative.
Why
A single source of truth for this repository does not mean one manifest holding everything; it means each subsystem stays authoritative for what it owns and one derivation composes them. Any other arrangement is either a second inventory or a rewrite of nine working registries.
Now
graph.rs derives rule dependencies, decisions and the shape of the layer for the Cockpit and the site. The capability registry knows capabilities. Nothing joins the two, and no node type spans both.
Wanted
One typed model holds nodes of every kind the repository already indexes, built by reading the registries through the paths every other caller uses, and producing the same output for the same inputs.
Done when
unknown: the record declares no `completion`
Risk
Composing everything invites a model that knows too much and is slower than the hot path allows. It is built on the reads that already happen, and its cost is measured like every other command's.

Acceptance

  • Node kinds come from the kinds the layer already registers, and adding a kind does not require a new variant hand-written in the graph
  • Every source is read through the registry that owns it, never by a second traversal of the filesystem
  • Generation over identical repository contents produces structurally identical output, with no iteration-order dependence, no random identity and no timestamp inside the canonical data
  • The model separates a capability's definition from its runtime state, so that the static projection needs no runtime fields
  • Unit tests cover discovery, normalisation, deduplication and ordering
Validation
cargo test --workspace --all-features
Evidence required
federated_graphdeterministic_output
Evidence present
federated_graphdeterministic_output

Scope

Touches
apps/majordomus-cli/src/graph.rs
Not
A new store of anything an existing registry already ownsReading the index outside the executor, the cache and the counters that every other read passes throughNode kinds invented here rather than taken from the kinds the layer already registers
Depends on
none
Priority
p0
Profile
deep-work
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-06
Updated
2026-09-06T15:48:16Z
Started
2026-09-06T15:33:09Z
Verified
unknown: the record declares no `verified_at`
Completed
2026-09-06T15:48:16Z

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.