This public template is the minimal standalone shape for a pure Sigil
WebAssembly Component Model plugin. It deliberately has no sigil-plugin
topic: repositories created from it become discoverable only after their
source, manifest, release policy, and canonical package are reviewed.
Before publishing a derived plugin:
- Replace the example package/interface/name/source in
wit/,src/, andplugin.toml. - Keep the plugin capability-free unless it imports a ratified Sigil host contract and declares exactly the matching capabilities.
- Run
just checkwithwasm-tools 1.252.0, then runjust sigil-checkwith a Sigil release that provides theplugincommand. - Configure the protected
releaseenvironment to allow onlymainand to require an explicit human reviewer. - Dispatch
prepare-releasefrom the reviewedmaincommit, reproduce its package,SHA256SUMS, and canonicalrelease-manifest.jsonlocally, then review the exact candidate run and digests. - Dispatch
publish-releaseonce with that approved tuple. Existing or partial tags, releases, or attestations burn the SemVer; recovery always prepares and approves a new version.
The component is built from checked-in WIT and core WAT, then validated and packed into Sigil's canonical P3 archive:
just check
just dist
just sigil-checkThe workflows pin wasm-tools, zstd 1.5.7 source, and every Action commit. The
small compatibility packer is byte-identical to Sigil and avoids depending on
an unreleased Sigil command. The publisher uses only the ephemeral GitHub token
and GitHub OIDC: there is no long-lived signing secret. Its exact
workflow_dispatch/main/release identity is part of the Sigstore proof.
The immutable release contains exactly NAME-VERSION.sigil-plugin.tar.zst,
SHA256SUMS, and release-manifest.json; the attestation is read through
GitHub's artifact-attestations API. Sigil's closed official provenance profile
applies only to reviewed sigil-plugins/* repositories. A derived third-party
repository remains third-party evidence even if it uses the same workflow. A
capability request is not a capability grant, and installation is not a
project evaluation lock.