Beta package

Orbit Plugin Kit

A JSON Schema that defines what a plugin is, a packer that turns a folder into one deterministic package, and two suites whose job is to prove the rules refuse what they are supposed to refuse.

Python 3, no dependencies beyond the standard library. The whole kit is eight files, and the two test suites run offline.

A beta package is unfinished software. Read the beta terms before you run it.

Download

The kit

  • The kit — orbit-plugin-kit.zip (68 KB): both schemas, the packer, the listing tool, the two suites, the README and the marketplace runbook.

Verify what you downloaded

SHA-256
d36a448eb8da429f070d89852d3d283db2f60e276d5928996e98762c82e5d40c
shasum -a 256 orbit-plugin-kit.zip

Run it

Pack, validate, and watch it refuse

# unpack, then run the kit's own self-test python orbit-pack.py test # validate and pack a plugin folder of your own python orbit-pack.py validate my-plugin/ python orbit-pack.py pack my-plugin/ # -> one .orbit file python orbit-pack.py lint my-plugin/PLUGIN.md # the listings half, which refuses to take money it cannot take python orbit-listing.py build my-plugin/ --out-dir dist python orbit-listing.py validate dist/listing.json --check-package python orbit-listing.py checkout # exits 3, on purpose

The two commands that would move money exit 3 and name what is missing. That refusal is the feature, not a bug to work around: nothing this kit produces can read as a completed sale when no sale can complete.

Status

What is finished, and what is not

  • 66 tests pass across the two suites — 50 for the packer and 16 for the listings — covering packing, validation, linting, the negative cases, and packing determinism (the same folder twice, byte-identical output).
  • The refusals are exercised as tests, not just written as code. A credential-shaped filename anywhere in a plugin folder is refused before packing; a listing that claims settlement cannot validate.
  • What a beta tester cannot do yet: publish a plugin anywhere. There is no catalogue, no upload flow, no payment rail and no host — the kit builds the artifact and refuses the rest. The 85/15 split in the runbook is a price hypothesis, not a term.

Tell us what broke

What you packed, what the kit said, and what you expected instead. A refusal that fires on something legitimate is the most useful message you can send.

Open the feedback form