Skip to content

Refactor base-cli into a consumer-neutral CLI core #16

Description

@codeforester

Goal

Make base-cli a consumer-neutral Python CLI framework. Base should consume it through an explicit integration profile rather than defining the package's defaults and public concepts.

The package rename is intentionally out of scope.

Refactor direction

  • Keep generic Click lifecycle, logging, redaction, cleanup, output, testing, and secure runtime primitives in the core.
  • Introduce an explicit consumer/integration policy boundary for runtime paths, project discovery, configuration, history, and protocol extensions.
  • Preserve existing Base behavior through a compatibility profile while Base consumers migrate.
  • Move or isolate Base-only behavior such as base_manifest.yaml, .base.d, basectl, Base history command aliases, IDE schemas, and project-routing record schemas.
  • Add consumer-neutral tests and documentation that do not depend on Base names or paths.

Acceptance criteria

  • A standalone consumer can configure App without inheriting Base paths, manifests, history, or IDE assumptions.
  • Base-specific behavior is explicit and isolated behind an integration boundary.
  • Existing Base consumers have a migration path without an unplanned breaking release.
  • Documentation distinguishes the generic framework contract from Base's adapter behavior.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions