Expand description
Core library for ossctl — the deterministic engine behind the /oss-*
Claude Code skill family.
All logic that must be exact and identical for every caller lives here so it
is unit-testable without spawning the binary. The ossctl-cli crate is a
thin clap + I/O shell over this library (ADR-0001 §2).
The founding architecture is fixed by the accepted ADRs under docs/adr/;
this crate realizes their module layout. At founding these are module
stubs — the compiling shape, no domain logic yet:
contract—OSS-RELEASE.mdschema + normalizer (port ofcheck-oss-release.py);contract::schemais the ONE canonical serde model (ADR-0003).facts— deterministic repo-fact detector (port ofinfer-repo-facts.py), behind the repo ports.audit— readiness scoring over the normalized contract + facts.release— the resumable per-ecosystem release-cut engine (ADR-0002): sealed plan, phase-barrier coordinator, event-sourced journal, reconcile.protocol— the versioned public JSON/JSONL envelopes + DTOs (§10/§12), versioned independently of the internal domain types.ports— the injected effect seam (CommandRunner,Clock,IdGen,RegistryQuery,Fs,GitRepo) so each domain is testable without touching the real filesystem, git, network, or clock.
ossctl-core is the canonical library surface, so public items must carry
doc comments (#![warn(missing_docs)]); level policy otherwise lives in the
workspace [workspace.lints] table.
Re-exports§
pub use protocol::SCHEMA_VERSION;pub use protocol::SUPPORTED_SCHEMAS;
Modules§
- audit
- Readiness scoring over the normalized contract + detected facts (ADR-0001 §3).
- contract
- The
OSS-RELEASE.mdrelease contract: schema, normalizer, and SPDX check (port ofcheck-oss-release.py— ADR-0001 §3). - facts
- Deterministic repo-fact detector (port of
infer-repo-facts.py— ADR-0001 §3). - ports
- Injected effect ports — the seam that keeps every domain testable in isolation without touching the real filesystem, git, network, or clock (ADR-0001 §2).
- protocol
- Versioned public protocol surface (
AGENTS-AI-FIRST-CLI.md§10/§12). - release
- The resumable, journaled, per-ecosystem release-cut engine (ADR-0002).