Compiles a show_spec.json into a genesis-verifiable shard.
Same architecture as axm-embodied. Same relationship to genesis. Different domain.
compile_generic_shard is the only path to a verifiable shard.
The show compiler is a spoke. It does not reimplement signing, hashing, or Merkle construction.
show_spec.json, extracts claim candidates at three tiers, delegates to compile_generic_shard, then self-verifies before emitting. Never emits a failing shard.axm-verify. Endpoints: /show/compile and /show/verify on port 8410.The Glass Onion UI is an intent router for show planning. State flows in one direction — plan → compile → inspect — with no resets between modes. The compiled spec is frozen at the moment you click Compile.
compile_generic_shard for Merkle construction and signing. All five REQs must pass before the shard is emitted.axm-verify — confirm the failure mode works before the show.Every claim in the shard carries a tier. Tiers are not configuration — they are a semantic distinction baked into the schema. The compiler assigns them at extraction time based on which section of the spec the claim comes from.
config.max_altitude_ft exceeds
venue.laanc_ceiling_ft. The Glass Onion UI shows a live violation warning and
disables compilation. The compiler enforces this independently of the UI.
The reference show specification targets KEMT — San Gabriel Valley Airport, El Monte CA. Class D airspace, LAANC available with auto-approval ceiling at 200ft AGL. The tile file is cached; replace with a live Aloft API pull when developer access is provisioned.
tiles/kemt-sgv-v1.json is a cached FAA tile. The compiler reads venue facts from this file and promotes them to Tier 0 claims. Replace with a live Aloft pull.
Three sections map directly to the three claim tiers. The schema is the frozen contract
between any authoring surface and the compiler. Valid enum values are enforced at parse
time by show_schema.py.
{ "schema_version": "1.0.0", // ── TIER 0: Regulatory (venue facts, from FAA tile) ──────────────── "venue": { "name": "San Gabriel Valley Airport (KEMT)", "latitude": 34.0861, "longitude": -118.0353, "airspace_class": "D", // A B C D E G "max_altitude_agl_ft": 400, "laanc_available": true, "laanc_ceiling_ft": 200, "authorization_required": true, "tfrs_active": false, "data_source": "cached", // aloft | airhub | manual | cached "data_retrieved_utc": "2026-03-01T12:00:00Z" }, // ── TIER 1: Operational (operator choices) ──────────────────────── "config": { "show_name": "KEMT Demo Show Alpha", "drone_count": 50, "formation_type": "grid", // grid | circle | wave | sphere | text | custom "max_altitude_ft": 200, // must be ≤ venue.laanc_ceiling_ft "duration_seconds": 480, "launch_time_utc": "2026-03-15T03:00:00Z", "geofence_radius_m": 150, "min_separation_m": 3.0 }, // ── TIER 2: Contingency (failure mode doctrine) ─────────────────── "safety": { "wind_gust_fallback": "hold_position", "rf_jam_fallback": "return_home", "drone_failure_fallback": "land_in_place", "gps_spoof_fallback": "return_home", "battery_low_fallback": "land_in_place", "crowd_incursion_fallback":"hold_position", "full_disconnect_fallback": "land_in_place", "comm_degradation_tiers": { "tier_0_full_mesh": "execute_full_doctrine", "tier_1_degraded_rf": "execute_reduced_doctrine", "tier_2_optical_only": "loiter_or_rth", "tier_3_full_disconnect": "land_in_place" } } }
| Field | Icon | KEMT Default | Tier |
|---|---|---|---|
| wind_gust_fallback | 💨 | hold_position | T2 |
| rf_jam_fallback | 📡 | return_home | T2 |
| drone_failure_fallback | ⚡ | land_in_place | T2 |
| gps_spoof_fallback | 🛰 | return_home | T2 |
| battery_low_fallback | 🔋 | land_in_place | T2 |
| crowd_incursion_fallback | 👤 | hold_position | T2 |
| full_disconnect_fallback | 🔇 | land_in_place | T2 |
Show shards follow the standard AXM Genesis shard format. Same manifest, same Merkle tree, same ML-DSA-44 signature. The show compiler extracts venue, config, and safety claims from show_spec.json and delegates to compile_generic_shard.
pip install axm-genesis pip install -e .
axm-show-compile \ examples/kemt_show_spec.json \ show_shard/
axm-verify shard show_shard/
# {"status":"PASS",
# "error_count":0,
# "errors":[]}
status is PASS.cd axm-show-server/ python server.py # http://localhost:8410
# Ed25519 + canonical timestamp → reproducible gold shard axm-show-compile examples/kemt_show_spec.json show_shard/ --gold # Explicit suite selection axm-show-compile examples/kemt_show_spec.json show_shard/ --suite ed25519 axm-show-compile examples/kemt_show_spec.json show_shard/ --suite mldsa44 # default # Test suite (4 tests expected PASS) pytest tests/ -v test_kemt_spec_validates PASSED test_kemt_spec_compiles PASSED test_show_shard_verifies PASSED test_altitude_ceiling_enforcement PASSED