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
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
Acceptance Criteria
Validation
Exercise known-good and deliberately non-conforming Python and non-Python fixtures on Linux, macOS, and Windows.
Non-Goals
Dependencies
Project Fields
Ownership