CLAUDE.md@crates/orbit-types · git:20261101.7bcbf28 · 2026-11-01 · sha256 5d9ef97af326abb0
CLAUDE.md@crates/orbit-types git:20261101.7bcbf28A
Immutable. This exact content never changes and is served at /api/v1/blob/5d9ef97af326abb0.
# orbit-types Shared data contracts: structs, enums, serde shapes, pure constructors, lifecycle predicates, narrow domain errors. Nothing else. - Zero Orbit dependencies; no fs, process, env, database, network, or tracing. Behavior that needs those goes to `orbit-common`; only the shape lives here. - Every item lives under exactly one domain module (`identity`, `policy`, `record`, `resource`, `task`, `telemetry`, `tool`, `workflow`, `workspace`). `OrbitId` is the only crate-root primitive. `record` = durable authored artifacts; `telemetry` = measurement of runs. - Module shape: private submodules, `mod.rs` = declarations + `pub use` exports (the exports define the public surface); use per-leaf globs for complete passthroughs and explicit lists for partial exports, one `error.rs` per domain with a `thiserror` enum. `OrbitError` belongs to `orbit-common`, never here. - Serde shapes are persisted contract (bundles, YAML, SQLite, MCP wire). A field rename or `#[serde]` change is a data migration — check `orbit-store` readers and keep `*_SCHEMA_VERSION` guards in step. Tier **stable** in [`ARCHITECTURE.md`](../../ARCHITECTURE.md). - The `clap` feature is `ValueEnum` derives only — no `Args`/`Parser`, no help text. A default build must not link clap.