Skip to content

[platform] Build a language-neutral black-box CLI conformance runner #276

Description

@codeforester

Goal

Prove CLI behavior by running real executables, regardless of their implementation language or parser.

Background

Issue #241 added golden JSON fixtures and a dependency-free Node reader. That proves the fixtures are portable, but not that a Python, Go, Rust, Node, JVM, or .NET executable actually follows help, stdout/stderr, exit, signal, configuration, destructive-action, and redaction rules.

Scope

  • Build a black-box subprocess runner driven by the versioned platform contract/spec.
  • Define progressive conformance levels:
    • L1: identity/version/help, stdout/stderr, basic structured output, portable exit codes.
    • L2: configuration precedence/provenance, platform/dependency diagnostics, signals/cancellation, offline behavior.
    • L3: destructive confirmation/dry-run, redaction, authentication/data-classification boundaries, audit evidence.
  • Emit a stable machine-readable report plus actionable human diffs.
  • Run only declared safe fixtures in isolated temporary environments.
  • Publish adapters/examples for common CI systems without coupling the contract to one provider.

Acceptance Criteria

  • The runner treats the CLI as an executable and requires no Python imports or source checkout.
  • The same suite validates one base-cli consumer and at least one non-Python reference CLI.
  • Assertions cover stdout and stderr bytes, exit status, signals/timeouts, files changed, environment/config precedence, and schema validation.
  • Destructive cases use disposable fixtures and prove no mutation in dry-run/non-consented paths.
  • Results name the contract version, capability level, artifact digest, implementation identity, and skipped capabilities.
  • Failures are deterministic and suitable as required CI checks.
  • Windows and POSIX process differences have explicit portable expectations.
  • The runner itself has a versioning and backward-compatibility policy.

Validation

Exercise known-good and deliberately non-conforming Python and non-Python fixtures on Linux, macOS, and Windows.

Non-Goals

  • Do not require all CLIs to use the same parser.
  • Do not execute arbitrary repository code during discovery.
  • Do not claim conformance from static schema validation alone.

Dependencies

Project Fields

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

Ownership

Metadata

Metadata

Assignees

Labels

ciContinuous integration, tests, automation, or release workflowsenhancementNew feature or product improvement

Type

No type

Projects

Status
Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions