Signed Makina package manifests published by the
Dialectic curator. The single stable entry point is
catalog.json at the root of this repo.
- The host is untrusted. GitHub (or any mirror/CDN) only distributes bytes — it cannot forge them, and index tampering can hide packages but never fake one.
- Everything is curator-signed. Manifests carry an EIP-191 signature over
the domain-prefixed JCS (RFC 8785) of the manifest minus its signature
field (domain
makina-package-manifest/3/manifest);catalog.jsonis signed the same way undermakina-package-catalog/1/catalog. - One entry URL. Makina's marketplace index and Kits pin exactly two
things: this catalog's URL and the curator pubkey. Everything else is
reachable through relative
manifest_urls, so hosting can move without re-signing. - Released versions are immutable.
packages/<curator>/<name>/<version>/never changes after merge (CI-enforced); lifecycle changes (active→deprecated→revoked) happen only incatalog.json. Git history is the transparency log. - Verify it yourself. Recover the EIP-191 signer of
catalog.jsonminussignatureand compare tocurator.pubkey; check each manifest'smanifest_sha256and signature the same way —scripts/verify_catalog.pydoes exactly this (it is the CI verifier, not authoring tooling; authoring lives in the private curation repo).
catalog.json # entry point (signed)
packages/<curator>/<name>/<version>/manifest.json # immutable once merged
scripts/verify_catalog.py # what CI runs on every PR
Until the custom domain is live, use the raw URL:
https://raw.githubusercontent.com/dialecticch/dialectic-catalog/main/catalog.json
GitHub Pages serves the same content at
https://dialecticch.github.io/dialectic-catalog/catalog.json. To move to the
long-term entry URL https://packages.dialectic.com/catalog.json:
- Add a DNS
CNAMErecord:packages.dialectic.com→dialecticch.github.io. - Set
packages.dialectic.comas the custom domain in this repo's Pages settings (this commits aCNAMEfile) and enable Enforce HTTPS.
The entry URL choice is configuration, not code — nothing in the artifacts references the host.
Free beta. Current artifacts are signed with the public anvil dev key
0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266. After the key ceremony every
manifest re-publishes under the production curator key (new pubkey, new
signatures, version bumps) — do not hard-pin the dev key anywhere durable.