Skip to main content

Module facts

Module facts 

Source
Expand description

Public wire DTO for the deterministic repo-fact report (shipshape facts).

This is the versioned surface /shipshape-init (config generation) and the readiness audit both read, so they never disagree on maturity or the gated core (ADR-0001 §3). Its field names and shape are a faithful port of homebase’s infer-repo-facts.py JSON — ecosystems, packages, has_ci, tags, committers_total/committers_recent_year, inferred_maturity, and the rest — because the prose /shipshape-init skill already relies on those exact names (SCHEMA.md §4 “maturity inference signals”).

Consumers read this document under the CLI’s canonical data envelope: {schema_version, data: <this shape>, warnings} — the same envelope every shipshape --json command shares (crate::SCHEMA_VERSION versions that wire envelope). Unlike the contract document, the facts report has no source-level document version of its own (it is derived, never authored), so the envelope’s schema_version is the single version consumers gate on.

The report reuses Ecosystem and Maturity from the canonical contract model rather than restating their wire strings: facts and the contract must agree on "rust" / "mvp" down to the byte, and sharing the one enum is how that agreement is made structural instead of coincidental.

Structs§

CargoPublishFlag
The resolved crates.io publish evidence read from one Cargo manifest.
DistributionSurface
Distribution infrastructure discovered in the repository tree.
Facts
The established base repo facts, flattened into FactsReport for shipshape facts and consumed directly by internal release and audit logic.
FactsReport
The complete shipshape facts --json data payload.
MaturitySignals
The two maturity truth-table outputs (SCHEMA.md §4). Both can be false (the tie case), which resolves to mvp; they are never both true (production is checked first).
Package
One detected package manifest and the name/version parsed from it.
RustWorkspace
A Rust Cargo workspace’s crates.io-publishable members and the intra-workspace dependency edges among them — the graph the release planner derives a dependency-ordered publish set from (release-rust-workspace-multicrate).
WorkspaceMember
One crates.io-publishable Cargo workspace member and its intra-workspace (publishable) dependency crate names — a node in RustWorkspace.

Enums§

CargoPublishPolicy
What one Cargo manifest says about publishing to crates.io.