Skip to main content

Crate ossctl_core

Crate ossctl_core 

Source
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:

  • contractOSS-RELEASE.md schema + normalizer (port of check-oss-release.py); contract::schema is the ONE canonical serde model (ADR-0003).
  • facts — deterministic repo-fact detector (port of infer-repo-facts.py), behind the repo ports.
  • audit — readiness scoring over the normalized contract + facts.
  • dist — the deterministic cargo-dist dist-workspace.toml generator (renders the binary-release infra from the contract’s distribution block).
  • 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.md release contract: schema, normalizer, and SPDX check (port of check-oss-release.py — ADR-0001 §3).
dist
The deterministic cargo-dist config generator (issue release-engine-dist-config-generator).
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).