From review of #446 (approved review). Still valid at HEAD. Naming decision, non-blocking. Best settled at M5, when crates/shepherd is promoted to the repo root.
The top-level composition binary crate is named shepherd, identical to the repo. Every other domain crate carries a prefix (shepherd-cow-host, shepherd-sdk, shepherd-backtest; also cow-venue, composable-cow), so the bare name reads inconsistently and is ambiguous with the repo name in cargo tree -p shepherd and search contexts. It is the composition root rather than a cow-domain crate, so the bare name is not wrong, just ambiguous.
Options
- Rename the crate to
shepherd-engine (or shepherd-bin), keeping the user-facing binary as shepherd via [[bin]] name = "shepherd". Disambiguates cargo tree / search without changing how it is invoked.
- Accept the bare
shepherd as the deliberate composition-root convention and document the intent in the crate doc.
Notes
Touches the Dockerfile / justfile / scripts that #446 retargeted to shepherd. Best folded into the M5 finalization when crates/shepherd moves to the repo root (see the three-repo split), alongside #515 (version homogenization).
Acceptance criteria
- A decision recorded: either the crate is renamed with the binary name preserved, or the bare name is documented as intentional.
The top-level composition binary crate is named
shepherd, identical to the repo. Every other domain crate carries a prefix (shepherd-cow-host,shepherd-sdk,shepherd-backtest; alsocow-venue,composable-cow), so the bare name reads inconsistently and is ambiguous with the repo name incargo tree -p shepherdand search contexts. It is the composition root rather than a cow-domain crate, so the bare name is not wrong, just ambiguous.Options
shepherd-engine(orshepherd-bin), keeping the user-facing binary asshepherdvia[[bin]] name = "shepherd". Disambiguatescargo tree/ search without changing how it is invoked.shepherdas the deliberate composition-root convention and document the intent in the crate doc.Notes
Touches the Dockerfile / justfile / scripts that #446 retargeted to
shepherd. Best folded into the M5 finalization whencrates/shepherdmoves to the repo root (see the three-repo split), alongside #515 (version homogenization).Acceptance criteria