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
d36a448eb8da429f070d89852d3d283db2f60e276d5928996e98762c82e5d40cshasum -a 256 orbit-plugin-kit.zipRun 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 purposeThe 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.