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.
Goal
Make
base-clia 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
base_manifest.yaml,.base.d,basectl, Base history command aliases, IDE schemas, and project-routing record schemas.Acceptance criteria
Appwithout inheriting Base paths, manifests, history, or IDE assumptions.