Split out of #1, which fixed only the load-bearing symptom.
The split
fleet-cli — the distribution/PyPI name, the prog= shown in --help, and
the spelling used in ~30 usage examples across fleet/explain/catalog.py and
fleet/cli/_commands/learn.py.
fleet — the only [project.scripts] entry, and therefore the only
runnable command.
Consequence: nearly every usage example this CLI prints about itself is not
executable. Copy fleet-cli whoami out of fleet explain whoami and you get
"command not found".
What #1 did and did not do
#1 registered both spellings as keys of the root explain entry (so the
agent-first rubric's explain_self bundle passes) and made the one error-path
remediation hint executable (fleet explain fleet). It deliberately left the doc
text alone: rewriting 2 of ~30 examples would make the surface less internally
consistent, not more.
README.md's quickstart was corrected separately to use fleet.
What a real fix has to decide
Pick one:
- Rename the console script to
fleet-cli. The doc text becomes true; keep
the ("fleet",) catalog key as an alias. Changes the installed command name.
- Change
prog= and all doc text to fleet. Matches what actually runs.
Either way, these pins must move in the same commit:
tests/test_cli.py — usage: fleet-cli, payload["tool"] == "fleet-cli",
"fleet-cli whoami" in payload["markdown"]
tests/test_cli_introspection.py — subject == "fleet-cli",
subject == "fleet-cli cli", "fleet-cli doctor" in out
Note whoami's nick is fleet-cli, read from culture.yaml. That is a mesh
identity, not a command name, and should stay fleet-cli under either option.
Suggestion from review
ask-colleague review proposed a single source of truth for the runnable name
(e.g. a CONSOLE_SCRIPT_NAME constant) referenced by both the remediation hint
and the catalog examples, so the two cannot drift apart again.
Split out of #1, which fixed only the load-bearing symptom.
The split
fleet-cli— the distribution/PyPI name, theprog=shown in--help, andthe spelling used in ~30 usage examples across
fleet/explain/catalog.pyandfleet/cli/_commands/learn.py.fleet— the only[project.scripts]entry, and therefore the onlyrunnable command.
Consequence: nearly every usage example this CLI prints about itself is not
executable. Copy
fleet-cli whoamiout offleet explain whoamiand you get"command not found".
What #1 did and did not do
#1 registered both spellings as keys of the root
explainentry (so theagent-first rubric's
explain_selfbundle passes) and made the one error-pathremediation hint executable (
fleet explain fleet). It deliberately left the doctext alone: rewriting 2 of ~30 examples would make the surface less internally
consistent, not more.
README.md's quickstart was corrected separately to usefleet.What a real fix has to decide
Pick one:
fleet-cli. The doc text becomes true; keepthe
("fleet",)catalog key as an alias. Changes the installed command name.prog=and all doc text tofleet. Matches what actually runs.Either way, these pins must move in the same commit:
tests/test_cli.py—usage: fleet-cli,payload["tool"] == "fleet-cli","fleet-cli whoami" in payload["markdown"]tests/test_cli_introspection.py—subject == "fleet-cli",subject == "fleet-cli cli","fleet-cli doctor" in outNote
whoami'snickisfleet-cli, read fromculture.yaml. That is a meshidentity, not a command name, and should stay
fleet-cliunder either option.Suggestion from review
ask-colleague reviewproposed a single source of truth for the runnable name(e.g. a
CONSOLE_SCRIPT_NAMEconstant) referenced by both the remediation hintand the catalog examples, so the two cannot drift apart again.