Install and Compose Plugins
Minco separates five questions that dynamic package systems often collapse:
- Is the package and its metadata locally inspectable?
- Is its Cargo feature compiled?
- Is a typed constructor registered in the composition root?
- Is the compiled plugin selected for this environment?
- Which offline, adapter, emulator, or provider evidence has passed?
Inspect before changing
cargo minco plugin list --json
cargo minco plugin explain feedback --json
cargo minco plugin validate --jsonlist and explain read Cargo/package metadata and strict distribution JSON. They do not construct plugin code or contact a registry/provider.
Add an official facade plugin
Preview the deterministic edit:
cargo minco plugin add minco-plugin-health --dry-run --jsonApply and verify:
cargo minco plugin add minco-plugin-health --json
cargo minco plugin doctor --json
cargo minco plugin test health --jsonThe command enables the reviewed facade feature and updates [plugins].enabled. Runtime registration remains static Rust code.
Create an application-owned plugin
cargo minco plugin new audit-export --dry-run --json
cargo minco plugin new audit-export --json
cargo minco plugin validate --json
cargo minco plugin test audit-export --jsonThe generator creates the crate, package metadata pointer, strict distribution record, public conformance test, workspace entries, and catalog entry. It does not invent the constructor dependencies or business implementation.
Register the typed constructor explicitly:
let mut manager = minco::default_plugin_manager()?;
manager.register(AuditExportPlugin::new(audit_sink))?;
let plugins = manager.compose(&minco::core::PluginSelection::default())?;An application test must prove that the selected constructor receives the intended adapter and capabilities.
Adopt a local package
cargo minco plugin init plugins/minco-plugin-audit-export --dry-run --json
cargo minco plugin init plugins/minco-plugin-audit-export --jsonThe package must already have exact Cargo coordinates, a valid metadata pointer, and a strict package-root distribution record. Paths are normalized and cannot escape the project root. Dependency and constructor registration remain explicit follow-up work.
Diagnose selection drift
cargo minco plugin doctor --jsonDoctor checks catalog validity, core compatibility, contradictory selections, application/CLI version agreement, active Cargo features, and linked static registration. It fails closed when metadata cannot prove a required boundary.
Disable or remove
Disable changes environment selection only:
cargo minco plugin disable health --dry-run --jsonRemove also considers Cargo features, dependent plugins, operation traces, migrations, seed sets, data classes, and declared infrastructure:
cargo minco plugin remove feedback --dry-run --jsonSource removal is never evidence that persisted data or cloud resources are safe to discard. Complete the explicit retention/export/deletion and infrastructure lifecycle first, retain its receipts, then retry the reviewed source change.
Evidence ladder
| Gate | What it proves |
|---|---|
plugin validate | metadata and linked-descriptor agreement for the checked source |
plugin test | public offline conformance contract |
| adapter test | concrete storage/provider behavior at that adapter boundary |
| emulator/Rustack | selected local AWS-compatible seam |
| bounded provider smoke | named account/Region/resources during that run |
| deployment observation | exact release in the selected environment |
Do not promote a lower row into a claim about a higher one.