Design Philosophy
Stave is designed around open standards from the first release so teams can adopt it without platform lock-in.
Core Principles
- Contract-first: data is exchanged through versioned, documented schemas.
- Vendor-neutral: extractors can be built in any language and for any platform.
- Deterministic by default: same inputs + same
--nowproduce the same output. - Offline-capable: evaluation and validation work without cloud credentials.
- Composable CLI: commands fit CI/CD pipelines through stable flags, outputs, and exit codes.
Standardization Surface
- Controls:
ctrl.v1YAML - Observations:
obs.v0.1JSON - Evaluation/verification output:
out.v0.1JSON - JSON Schema contracts under
schemas/
Because these are open files and versioned contracts, teams can:
- Generate observations from their own systems and tools
- Validate data independently in other runtimes
- Store, diff, and audit artifacts in any repository or data platform
- Change cloud vendors or scanners without rewriting Stave core logic
What This Means in Practice
- Stave runs as a standalone CLI — bring your own CI runner, laptop, or air-gapped host.
- Controls are YAML with a standard predicate DSL — portable across teams and toolchains.
- Artifacts remain portable across local development, CI runners, and audit workflows.
Stave is a standards-based safety layer designed for composability.