Skip to content

[platform] Reconcile and freeze the cli-platform/v1 behavioral contract #274

Description

@codeforester

Goal

Define the language-neutral behavior that operations, platform, infrastructure, SRE, and development teams can rely on across company CLIs.

Background

base-cli now has strong Python-specific v1 contracts for JSON success/error envelopes, NDJSON, logs, inspection, and command framing. The cross-language work in #241 validates those serialized fixtures with Python and Node, but it does not define or execute a complete CLI behavior contract.

A universal platform must not require Python, Click, or Typer, and it must not duplicate mature parser ecosystems. Go teams already have Cobra/Viper, Rust has clap, Node has oclif, JVM teams have picocli, and .NET has System.CommandLine. The shared value is consistent behavior and evidence across those implementations.

Scope

  • Reconcile a proposed cli-platform/v1 with the already-published base-cli v1 schemas.
  • Define normative behavior for identity/version/help, stdout versus stderr, structured output, exit codes and signals, configuration precedence/provenance, non-interactive operation, dry-run/destructive confirmation, redaction, timeouts/cancellation, deprecation, and diagnostics.
  • Mark requirements as universal, capability-dependent, or language/runtime-specific.
  • Define compatibility and version negotiation.

Acceptance Criteria

  • One reviewed contract maps every existing base-cli v1 field and flag to the platform contract without silently changing meaning.
  • Conflicts such as --json versus --output json have an explicit compatibility decision and migration path.
  • Normative MUST/SHOULD/MAY language is testable and parser-neutral.
  • The contract defines stdout/stderr, exit/signal, automation, destructive-action, redaction, and deprecation invariants.
  • A compatibility matrix covers Python Click/Typer, Go Cobra, Rust clap, Node oclif, JVM picocli, and .NET System.CommandLine.
  • Contract ownership, SemVer/versioning, exception approval, and deprecation governance are documented.
  • At least two real CLI owners review the contract before it is frozen.

Validation

Review representative CLI transcripts from at least Python and one non-Python implementation; ensure each normative statement can become a black-box conformance assertion.

Non-Goals

  • Do not standardize one parser library or one implementation language.
  • Do not port base-cli wholesale to every language.
  • Do not overwrite the published base-cli v1 JSON contract in place.

Dependencies

Project Fields

  • Status: Backlog
  • Priority: P1
  • Area: Product
  • Initiative: v1.0 Readiness
  • Size: L

Ownership

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

  • Status
    Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions