Skip to content

Every command name is implemented by exactly one executable, and the other only delegates

Every command name is implemented by exactly one executable, and the other only delegates

majordomus://adr/adr-0184proposed context-knowledgechatgpt-project

it references

referenced by

Nothing in the layer names it. Backlinks are derived, so an empty list is an answer rather than an omission.

184. Every command name is implemented by exactly one executable, and the other only delegates

Context

The shell tool bin/majordomus and the Rust executable share the name; share/commands.yaml describes one and the capability registry the other. A shell fallback once evaluated the model differently (318 vs 26 findings, 2026-10-12).

Decision

Ownership is per command path (the program plus the full word sequence cli.yaml and share/commands.yaml declare) and is derived from the command graph's existing join of the two origins; a path both implement outside a declared delegation is a finding. Delegation stays read at run time from the generated projection docs/generated/cli.yaml (rule project.commands-are-projections, bin/majordomus:100-103): no delegation line is generated into or hand-written in bin/majordomus. The Rust executable is the target owner of every path, moved path by path with exit codes and machine output preserved.

Alternatives rejected

  • Keeping both implementations with a parity test forever
  • An all-at-once rewrite of the shell tool

Consequences

The session cutover (ADR 0047) and the automation milestone move paths one by one; doctor's agreement check becomes an ownership check over the command graph; a shared top-level word handed over by subcommand word is not a finding.

Sources

Promoted on 2026-10-18 from the owner's ChatGPT project (workspace chatgpt-majordomus, issue I3100). The owner's acceptance is at chatgpt-majordomus:c192#5; accepting this record is still the owner's act.

  • chatgpt-majordomus:c233#2
  • chatgpt-majordomus:c268#2

Where this comes from

canonical file
.ai/repo/adrs/0184-every-command-name-is-implemented-by-exactly-one-executable-and.md
identity
adr-0184
also served as
MCP resource majordomus://adr/adr-0184 · majordomus entity show adr/adr-0184 · GET /api/v1/entity?uri=majordomus://adr/adr-0184
in the Cockpit
/cockpit/objects/adr/adr-0184

This page is generated from the file above by scripts/generate-site-data; editing the page changes nothing, editing the file changes every surface. The relations above are edges of docs/generated/graph.json, which the executable writes from the same index.

Searches the titles and descriptions of every page this site publishes.