Skip to content

Roadmap: make base-cli a 5/5 professional Python CLI framework #50

Description

@codeforester

Goal

Drive base-cli from a promising 0.x lifecycle toolkit to a world-class, broadly adoptable framework for professional Python CLIs.

The product strategy is deliberately not “another parser.” Click remains the parsing/composition layer; base-cli should become the safest, most composable, typed, observable, and operationally complete lifecycle around it.

Success criteria

  • Lifecycle cleanup and metadata are correct under success, failure, interruption, and secondary-hook failure.
  • Existing Click and Typer applications can adopt the lifecycle incrementally.
  • Public extension points are stable, typed, and independent of private implementation types.
  • Logging, structured output, plugins, retention, and terminal rendering meet production operational needs.
  • Supported Python/OS combinations, installed artifacts, typing, security, and documentation are continuously verified.
  • The project publishes clear compatibility/security policies, complete reference applications, and evidence from at least three independent production consumers.

Ordered issue train

P0 — Trustworthy lifecycle and compatibility baseline

Critical path: #51#52#53. Security hardening #54 follows #51; #55 and #56 can proceed independently.

P1 — Incremental adoption and typed extensibility

Critical path: #57 depends on #51, #53, and #55. Typed contracts #59 unlock #60 and, with #57/#58, the Typer adapter #61.

P2 — Operational completeness

Critical path: #52/#54#62; #52/#58/#59#63#65#66. Plugin discovery #64 follows #57 and #59.

P3 — Ecosystem trust and adoption

The final adoption proof #72 follows the quality, policy, security, and reference-application work.

Scope coverage

This train covers every item from the 5/5 roadmap: failure-proof lifecycle finalization; terminal metadata; clean error/interrupt handling; redaction and deletion safety; command naming/registration; explicit config validation; production/test parity and native Click syntax; incremental Click and Typer adoption; nested/lazy/plugin commands; composable options; stable typed protocols and generic contexts; an optional standard config profile; atomic run-bundle retention; structured logs and JSON contracts; streaming/terminal output; Rich/OpenTelemetry; full Python/OS and installed-wheel validation; strict quality/security/docs gates; fuzz/concurrency/signal/performance tests; API/security policies; reference applications; and three independent consumers.

Prior work this extends

Train rules

  • Each implementation PR closes one child issue and uses the repository's required issue-backed branch.
  • Release-blocking correctness lands before dependent compatibility and adoption work.
  • Public API expansion requires contract tests and migration documentation.
  • Optional integrations remain optional; the core stays lightweight.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions