Expand description
Cross-ecosystem trait surface.
Three traits every package-manager adapter implements to fit the
pleme-io substrate’s universal intake pattern. The contract is
documented in theory/ECOSYSTEM-INTAKE.md; this module IS the
Rust binding of that contract.
Stack:
Spec— the typed shape of an adapter’s emitted build specQuirkRegistry— the typed shape of known upstream-bug quirksInvariants— the typed shape of well-formedness checks
Every concrete adapter (gen-cargo today; gen-npm + gen-bundler + gen-pip + gen-helm + gen-gomod as they ship) implements all three on its own typed shapes. Substrate / cse-lint / gen confirm consume these traits without caring which ecosystem produced them.
Traits§
- Invariants
- The typed shape of an adapter’s invariants pass. Every adapter
ships a
check(spec) -> Vec<Violation>function that verifies the spec is well-formed against its own typed rules. - Quirk
Registry - The typed shape of an adapter’s quirk registry. The registry is the canonical knowledge of “which upstream packages need which build-time workarounds.” Each adapter ships its own typed quirk enum + a const REGISTRY table.
- Spec
- The typed shape an adapter’s build spec exposes to substrate +
tooling consumers. Every adapter’s
BuildSpecstruct implements this; the trait method surface is universal.