repo-manager/docs/repository-registers_v0.1.md

2.1 KiB

Repository registers v0.1

Repository registers are ordinary, versioned YAML files under registers/. They are authoritative in the repository; Repo Manager's index is a replaceable projection.

Shared envelope

Each register uses one file named registers/<kind>.yaml:

schema: repo-manager.register.v0
kind: technical-debt
entries:
  - id: TD-001
    title: Coupled persistence
    status: open
    severity: high
    created: "2026-08-21T10:00:00+00:00"
    updated: "2026-08-21T10:00:00+00:00"
    notes: []

Entry ids are stable within their register. created is immutable; mutations advance updated. Deletion-compatible routes map to defer, preserving the entry and Git history. Notes are append-only objects with content, author, and created.

Kinds and compatibility fields

Kind Required create data State Hub compatibility
sbom-inventory package_name, ecosystem package/version/licence entries; snapshots and reports are derived
repo-goals description repository goal records
upstream-contributions type contribution type and target metadata
technical-debt none beyond id/title severity, debt type, location, notes
extension-points none beyond id/title priority, extension type, location
register-entries register_kind generic extension register entries

Additional kind-specific fields are retained as YAML scalars, lists, or mappings. The envelope fields id, title, status, notes, created, and updated may only be changed through their governed command parameters.

Commands

rmgr register put --kind technical-debt --entry-id TD-001 \
  --title "Coupled persistence" --data-json '{"severity":"high"}'
rmgr register list --kind technical-debt
rmgr register note --kind technical-debt --entry-id TD-001 --note "Owner assigned."
rmgr register defer --kind technical-debt --entry-id TD-001

Mutations use the same expected-HEAD, idempotency, Git commit, optional push-seal, normalized-event, reindex, and dual-run-meter mechanism as workplan and task mutations.