Skip to content

[Epic] Make the CLI drivable without reading its source (agent/CI ergonomics) #154

Description

@Bccorb

Tracking issue for the findings from an unassisted run of seamless init by an agent with no
prior knowledge of the CLI. The verdict was that the tool is drivable only because the source
was available to read: the prompt sequence, the option ordering, and the alias names all had
to come from src/prompts/projectSetup.ts and registry.json. Without that checkout it is a
hard CLI to drive.

What worked, and should not regress

  • Errors from whoami and apps list name the exact command to run next, which is what let
    a logged-out state get detected up front instead of halfway through a prompt sequence.
  • Every (recommended) option is also the initialValue or the first option, so a blind
    Enter produces the right answer.
  • discard() plus the SIGINT handler means a half-built scaffold does not block a retry.
  • The success output gives exact URLs, exact next steps, and calls out the
    OWNER_EMAIL-must-change-before-registering caveat explicitly.

The list

All of it is on main and queued for release in #121 (0.11.0).

What the CLI looks like now

The scenario that opened this issue, driven with no source checkout:

seamless templates list                 # discover the starters and their flags
seamless init my-app --local --yes \
  --email=you@example.com --react-vite --express

Runs unattended, with no pty. Every question has a flag, unspecified values take the
recommended option, and the destructive steps (writing over a non-empty directory, rotating a
service token) still require --force rather than being swept up by --yes. Nothing renders a
prompt to a pipe: every command stops naming the flag that answers the question.

Known limits

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:cliSeamless CLIepicLarge tracking issue spanning multiple tasks

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions