open-standards/sandbox/CONTRIBUTING.md
Transaction Science ba1212361f Add aac, map, sandbox standards; catalog the standards family
Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:

- aac/    — communication cargo class: portable boards + a ten-level
            offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/    — geospatial cargo class: range-requestable signed tilesets +
            an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
            compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.

Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-07 17:04:36 -04:00

23 lines
2.5 KiB
Markdown

# Contributing to Sandbox
Sandbox is one standard in the [Transaction Science Open Standards](../README.md) repository and inherits the [Charter](../CHARTER.md). Contributions scope to this subdirectory and carry the `sandbox` tag.
## What is most valuable
- **Adversarial conformance vectors.** Negative vectors under [`conformance/v1/`](conformance/v1/) — the runs a conformant host must *reject*: folding accelerator energy into the CPU record, a `HwShunt` reading with no measured figure, a grant-set mutation mid-run, a tier-minimization violation, a replay journal that diverges. Negatives are what a standard certifies.
- **Measured-energy backends.** Per-device hardware energy interfaces feeding the receipt's `measured_uj` / `HwShunt` path (SPEC §6.3) — NVML, RAPL/powercap, ROCm SMI, Level Zero — especially for accelerator classes.
- **Tier executors.** Real executors for the S2 (WASM/fuel) and S5 (microVM) tiers behind the `sandbox-runtime` executor trait.
- **Third-party hosts.** An independent host that certifies against the public suite is the strongest validation a standard can have.
## Rules
1. **Conformance is canonicity.** A change to wire behaviour MUST come with vectors and a `conformance/VERSIONS.md` update. The vectors, not any brand, define what is correct.
2. **No floats in decision paths.** Energy is integer microjoules; budgets and limits are unsigned integers; canonical forms are float-free (SPEC §4).
3. **Heterogeneity is not optional.** A change MUST NOT make accelerator energy foldable into the CPU record or accelerator identity omittable from the attestation (SPEC §6.2, §7.2). Per-device attribution is load-bearing, not an extension.
4. **Readiness honesty.** Do not advance a part's classification (SPEC §9) past what the implementation delivers. A `measured` figure MUST come from a hardware interface for that specific device class (SPEC §1.3, §6.3).
5. **No capture.** No contribution may make a single steward's service a condition of core operation (SPEC §1.4).
6. **No vanity metrics in marketing/spec/governance Markdown.** Describe shape, not size; the repository's `scripts/check-no-vanity-metrics.sh` enforces this. Identity-class facts (spec versions, RFC numbers, algorithm names, licence labels) are preserved.
## Process
Issues, discussions, and pull requests scope by the `sandbox` subdirectory tag. Spec-text changes (`SPEC.md`, `spec/`) are CC-BY-4.0; reference-code changes (`sandbox-rs/`) are Apache-2.0. By contributing you agree your contribution is offered under the corresponding licence.