Skip to content

Reconcile the fleet vs fleet-cli naming split #2

Description

@OriNachum

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:

  1. 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.
  2. 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.pyusage: fleet-cli, payload["tool"] == "fleet-cli",
    "fleet-cli whoami" in payload["markdown"]
  • tests/test_cli_introspection.pysubject == "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.

  • fleet-cli (Claude)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions