# ADR-023: CLI JSON Mode as Data Contract

| Field     | Value                                    |
|-----------|------------------------------------------|
| Status    | Accepted                                 |
| Type      | 1 — Architectural                        |
| Score     | 0.85                                     |
| Date      | 2026-02-18                               |
| Decider   | Conductor                                |

## Context

The dashboard needs structured data from the backend. The CLI already
wraps all ring operations. Adding a `--json` flag creates a stable
contract between backend (Rings 1-3) and frontend (Ring 5).

## Decision

All CLI commands get a `--json` flag outputting structured JSON to stdout.
The dashboard API server wraps these same operations via OrxaqEngine.
CLI JSON schema is the interface contract — all skins consume the same API.

## Consequences

- **Stable contract**: JSON schema is the interface between rings and skins.
- **Testable**: JSON output is machine-parseable for integration tests.
- **Composable**: CLI + jq for scripting, API for dashboards, same data.
- **All skins share**: Gamma, Beta, Alpha consume identical JSON.
