Chio/Docs
LOGIN · JOIN

Contribute to Chio

Work on the kernel, the CLI, and the SDKs from the public source, and run the gates every change passes.

Overview chio@5f63e6e

On this page

Chio is one Rust workspace at github.com/backbay-labs/chio, with the SDKs, the protocol specification, the formal models, and the verifier fixtures beside it. Applications run on the installed chio and the published SDKs. These pages are for changing Chio itself.

The repository

Each top-level directory owns one kind of source. A change usually touches one crate family and the specification or fixtures that pin its behavior.

DirectoryContents
crates/
The workspace, grouped by family: core, kernel, guards, protocol, trust, security, economy, platform, observability, products (the chio CLI lives at crates/products/chio-cli), sdk, and tooling.
sdks/
The language SDKs: TypeScript, Python, Go, Rust, JVM, .NET, C++, Swift, and the guard SDK.
spec/
The normative protocol in spec/PROTOCOL.md, the JSON schemas, the error registry in spec/errors/registry.yaml, and the IETF draft sources.
formal/
Lean 4, Apalache, Aeneas, and differential-test models, with formal/MAPPING.md tying each model to the Rust it covers.
fixtures/
The signed corpora the verifiers check, including the Proof Room tree.
examples/
Source verifiers for each protocol edge and framework adapter, and the smoke runner that drives them.
scripts/, xtask/, ci-gates/
The behavioral gates, the workspace task runner, and the facet manifests the fixture gates read.

Send a change

  1. Branch from main and keep the change to one logical unit.
  2. Build the workspace with the toolchain the checkout pins.
  3. Run the verification gate: build, test, clippy, and format check.
  4. Update spec/PROTOCOL.md in the same pull request when a wire format changes, and regenerate any output the drift gates cover.
  5. Write the commit subject as a Conventional Commit, such as fix(guards): deny on malformed egress allowlist entry.

Report a security vulnerability through the coordinated disclosure process in SECURITY.md, never as a public issue.

House rules

  • Fail closed. An error during evaluation denies the call, and an invalid policy is rejected at load. No error path may widen authority.
  • No unwrap or expect. Clippy denies both across the workspace; propagate the error.
  • Canonical JSON. Signed payloads use RFC 8785. Changing how a signed structure serializes changes every signature over it, so coordinate the wire and conformance impact first.
  • One error code per failure. A new refusal gets a specific code in spec/errors/registry.yaml with help text that names the flag or value that fixes it.

In this section