Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3156 — Every command path is implemented by one executable, and the other only delegates

Derive, from the command graph's existing join of share/commands.yaml and the Rust registry, the implementing executable of every command path (program plus its full word sequence); report a path both implement outside a declared delegation as a commands validate finding; serve the reading on CLI, MCP and /ui. Delegation stays read from docs/generated/cli.yaml at run time.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně

Part of repository-automation-is-typed — Repository automation is typed capabilities that Rhai orchestrates, and domain-logic shell only shrinks.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3156 bude přijato.

Cíl

Derive, from the command graph's existing join of share/commands.yaml and the Rust registry, the implementing executable of every command path (program plus its full word sequence); report a path both implement outside a declared delegation as a commands validate finding; serve the reading on CLI, MCP and /ui. Delegation stays read from docs/generated/cli.yaml at run time.

Proč

The justfile header says two executables share the name majordomus. On 2026-10-12 the shell reading of the model reported 318 drift findings where the Rust executable reported 26 (.github/workflows/github.yml); the workflow now forces the Rust path, which fixes the symptom and not the class. It extends milestone automation. Proposed in ADR 0184 (Every command name is implemented by exactly one executable, and the other only delegates) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c225#2, chatgpt-majordomus:c233#2, chatgpt-majordomus:c268#2.

Aktuální stav

share/commands.yaml describes the shell tool and doctor proves it agrees with bin/majordomus; command_graph/mod.rs already joins both origins (qualify_collisions); bin/majordomus reads its delegation from docs/generated/cli.yaml (bin/majordomus:100-103) and hands over by subcommand word.

Cílový stav

One owner per command path, a finding otherwise; delegation unchanged in form.

Rozsah

  • share/commands.yaml
  • bin/majordomus
  • apps/majordomus-cli/src/command_graph
  • docs/COMMANDS.md

Mimo rozsah

  • Porting a command (the cutover issues do that)

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • A name implemented by both executables without a delegation is a finding of commands validate
  • The table is served on CLI and MCP
  • Exit codes and output of delegated names are unchanged

Validace

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib command_graph::
  • bash test/run.sh 101_command_graph 30_command_registry

Požadované důkazy

  • test_one_executable_per_command

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

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

Prohledává názvy a popisy všech stránek, které tento web publikuje.