Skip to main content

Module facts

Module facts 

Source
Expand description

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

This is the versioned surface /oss-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 /oss-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 ossctl --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§

Facts
The deterministic repo-fact report — a pure function of (repo tree, git HEAD), emitted by ossctl facts and consumed by /oss-init and audit.
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.