Skip to content

Clarify basectl ci naming and CI-safe mode contract #1515

Description

@codeforester

Problem

basectl ci is easy to misread as "run the CI pipeline" or "create a local CI/Ubuntu runner." In the current implementation, it is narrower: it delegates to setup, check, and doctor with CI-safe defaults such as non-interactive behavior, BASE_CI=true, CI=true, notification suppression, and JSON-capable output.

That behavior is useful, but the subcommand name can confuse users who expect it to run tests, launch GitHub Actions locally, or spin up an Ubuntu/Multipass instance.

Desired outcome

Make the command model self-explanatory so users understand that CI is a mode for Base setup/readiness/diagnostics, not a separate CI runner.

Scope

  • Decide whether the long-term surface should remain basectl ci setup|check|doctor, move toward flags such as basectl check --ci --format json, or add clearer aliases while preserving compatibility.
  • Update CLI help and docs to state plainly that basectl ci does not run project tests, create runners, launch Ubuntu, or execute GitHub Actions locally.
  • Clarify the relationship among:
    • basectl ci check
    • basectl ci doctor
    • basectl ci setup
    • basectl test
    • bin/base-test
    • the optional linux-lab profile
  • If a new alias or flag is introduced, update completions, command reference docs, and focused tests.
  • Keep the existing behavior backward-compatible unless there is an explicit deprecation plan.

Non-goals

  • Do not implement a local GitHub Actions runner.
  • Do not make basectl ci create or mutate Ubuntu/Multipass VM instances.
  • Do not make basectl ci replace basectl test or bin/base-test.
  • Do not change manifest command trust behavior.

Acceptance criteria

  • The CLI help text makes the CI-safe delegation model clear.
  • docs/basectl-ci.md, docs/command-reference.md, and README references describe the difference between basectl ci and basectl test.
  • The docs explicitly say that Ubuntu instances are created manually and that linux-lab only prepares/checks local VM tooling.
  • Tests cover any changed help text, aliases, flags, or completion behavior.
  • Existing basectl ci setup|check|doctor callers continue to work, or a deliberate deprecation path is documented.

Demo impact

New users should not come away thinking Base has a local CI runner. The intended story should be: Base exposes CI-safe readiness/setup/diagnostic commands that CI systems can compose with their own runners and test commands.

Metadata

Metadata

Assignees

Labels

ciContinuous integration, tests, automation, or release workflowsdocumentationDocumentation improvementsenhancementNew feature or product improvement

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions