Skip to content

I1106 — The registries are views of the model, not separate discoveries

Make the typed registries — skills, rules, decisions, workflows, use cases, providers, capabilities — views over the one repository model, so that adding a valid artifact under a discoverable namespace registers it everywhere with no second edit.

BLOCKED wave 2 · p0 · implementation profile · parallel safe

Part of two-folder-integration — A repository that adopts Majordomus gains two directories and two lines, and can give them back.

Blocked. This issue cannot start until I1105 is done. The status is derived from that, not declared.

Objective

Make the typed registries — skills, rules, decisions, workflows, use cases, providers, capabilities — views over the one repository model, so that adding a valid artifact under a discoverable namespace registers it everywhere with no second edit.

Why

Registration by hand is the defect this repository has removed once per subsystem. Doing it once over one model is what stops the next subsystem from reinventing it.

Current state

Kinds are discovered by source classes and indexed; capabilities are declared and projected. The two are joined only in the composed graph, and other consumers still enumerate.

Desired state

Every registry is a projection of the model, and a new artifact appears in the CLI, the API, MCP, the Cockpit, the documentation and search without anything being listed.

Scope

  • apps/majordomus-cli/src/capability/registry.rs

Out of scope

  • A registry file that enumerates what discovery finds
  • Changing what any kind means; this changes where it is read from

Dependencies

What waits on this

Acceptance criteria

  • Each registry is derived from the model, and no consumer builds its own
  • Adding a schema-valid artifact under a discoverable namespace exposes it to every applicable consumer with no further registration, proved by a synthetic artifact in a test
  • A malformed artifact fails loudly with its path and its schema violation rather than vanishing from a listing
  • Ordering is deterministic, so two runs over one tree produce one answer

Validation

  • cargo test --workspace --all-features
  • majordomus generate --check

Evidence required

  • registries_derived
  • zero_registration

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

Silent omission is the failure mode: an artifact that fails validation and simply does not appear is indistinguishable from one nobody wrote. It has to fail, not disappear.

Timeline

started
verified
completed

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I1106.yaml. Read it back with majordomus plan show I1106.