On this page

Frame posture cheatsheet๏ƒ

๐ŸŸ  Advanced ยท Lesson 05

THE FRAME POSTURE CHEATSHEET - every AethericFrameConfiguration knob and what it does, in one runnable page (the advanced twin of beginner 37). The posture is the WORLD's law book: set before the first conjure, frozen by it, inherited by everyone after.

MODE system_state ("automatic"|"dynamic") - the world's mode. Public doors: configure_aether_frame OR first conjure(dynamic=True). AR ELIGIBILITY (lived at the expert tier) ai_native_enabled - required True for dynamic AR targeting. rift_enabled - required True for ANY Rift attachment. SHARING shared_framewide_spellbook_configuration - one rich config shared by every book on the frame instead of per-book copies. CACHING system_caching_enabled - conjure-artifact caching. system_cache_root_path - where cached artifacts live. DEVOPS BRAKES (each one turns OFF a structural verb, world-wide) disable_linking / disable_bind / disable_conduit_cluster / disable_transfer_of_ownership / disable_contract_mutation / disable_mutations / disable_all_transactions_after_conjure - a gated verb refuses with a "disabled" RuntimeError at its own door. All seven are settable through the public door, configure_aether_frame(disable_linking=True, ...). TRANSACTION PATIENCE max_transaction_wait_time_in_seconds - how long a structural transaction waits on a busy scope before refusing, naming who held it. PRESETS automatic_defaults() / dynamic_defaults() / with_defaults() THE FREEZE LAW First successful bind of the posture freezes it. Every with_* on a frozen posture refuses. One world, one law book.

Before you run๏ƒ

Use the Advanced guide for prerequisite concepts. Run from a checkout with Melder installed and Python 3.14 free-threading selected. The collection download includes the level's local helper modules.

Run the saved script๏ƒ

python UX_and_AIX_experiences/03_advanced/05_frame_posture_cheatsheet.py
py -3.14t UX_and_AIX_experiences/03_advanced/05_frame_posture_cheatsheet.py

Download this collection ยท Source on GitHub

Public surface๏ƒ

the posture vocabulary (reference lesson)

Code๏ƒ

  1"""
  2TIER: advanced (05)
  3GOAL: THE FRAME POSTURE CHEATSHEET - every AethericFrameConfiguration
  4      knob and what it does, in one runnable page (the advanced twin of
  5      beginner 37). The posture is the WORLD's law book: set before the
  6      first conjure, frozen by it, inherited by everyone after.
  7
  8      MODE
  9        system_state ("automatic"|"dynamic") - the world's mode. Public
 10          doors: configure_aether_frame OR first conjure(dynamic=True).
 11      AR ELIGIBILITY (lived at the expert tier)
 12        ai_native_enabled - required True for dynamic AR targeting.
 13        rift_enabled      - required True for ANY Rift attachment.
 14      SHARING
 15        shared_framewide_spellbook_configuration - one rich config
 16          shared by every book on the frame instead of per-book copies.
 17      CACHING
 18        system_caching_enabled - conjure-artifact caching.
 19        system_cache_root_path - where cached artifacts live.
 20      DEVOPS BRAKES (each one turns OFF a structural verb, world-wide)
 21        disable_linking / disable_bind / disable_conduit_cluster /
 22        disable_transfer_of_ownership / disable_contract_mutation /
 23        disable_mutations / disable_all_transactions_after_conjure
 24        - a gated verb refuses with a "disabled" RuntimeError at its
 25          own door. All seven are settable through the public door,
 26          configure_aether_frame(disable_linking=True, ...).
 27      TRANSACTION PATIENCE
 28        max_transaction_wait_time_in_seconds - how long a structural
 29          transaction waits on a busy scope before refusing, naming
 30          who held it.
 31      PRESETS
 32        automatic_defaults() / dynamic_defaults() / with_defaults()
 33      THE FREEZE LAW
 34        First successful bind of the posture freezes it. Every with_*
 35        on a frozen posture refuses. One world, one law book.
 36SURFACE EXERCISED: the posture vocabulary (reference lesson)
 37"""
 38import melder as md
 39
 40
 41def main() -> None:
 42    knobs = {
 43        "mode": ["system_state"],
 44        "ar eligibility": ["ai_native_enabled", "rift_enabled"],
 45        "sharing": ["shared_framewide_spellbook_configuration"],
 46        "caching": ["system_caching_enabled", "system_cache_root_path"],
 47        "devops brakes": [
 48            "disable_linking", "disable_bind", "disable_conduit_cluster",
 49            "disable_transfer_of_ownership", "disable_contract_mutation",
 50            "disable_mutations", "disable_all_transactions_after_conjure",
 51        ],
 52        "patience": ["max_transaction_wait_time_in_seconds"],
 53    }
 54    # Presets are METHODS that set several knobs at once - not knobs. They
 55    # are listed apart so the count below stays honest about what it counts.
 56    presets = ["automatic_defaults", "dynamic_defaults", "with_defaults"]
 57
 58    total = 0
 59    for family, names in knobs.items():
 60        print(f"{family}:")
 61        for name in names:
 62            print("   ", name)
 63            total += 1
 64    print("presets:")
 65    for name in presets:
 66        print("   ", name)
 67    print("posture knobs mapped:", total)
 68    print("presets available:", len(presets))
 69
 70    # THIS MAP IS CHECKED AGAINST THE REAL CLASS, IN BOTH DIRECTIONS.
 71    #
 72    # A hand-maintained list over a living surface drifts the moment a knob
 73    # lands - which is exactly how this example went red once before: the
 74    # caching pair was added, the list grew, and the number underneath it
 75    # did not. The fix is not a better number. It is refusing to keep a
 76    # count that only ever agrees with itself.
 77    #
 78    # Direction 1: every knob named here must be a real property.
 79    mapped = {name for names in knobs.values() for name in names}
 80    for name in sorted(mapped):
 81        assert hasattr(md.AethericFrameConfiguration, name), (
 82            f"{name} is on the cheatsheet but not on the class"
 83        )
 84
 85    # Direction 2 - THE ONE THAT ACTUALLY CATCHES DRIFT. Every public,
 86    # non-preset property on the class must appear on the cheatsheet. Add a
 87    # knob to melder and this lesson goes red until the map is updated.
 88    # Lifecycle/identity reads, not posture knobs. `is_cleaned` joined this
 89    # set on 2026-08-03 and the check below is what caught it - the detector
 90    # doing its job, not a failure.
 91    plumbing = {"id", "origin_spellbook_id", "frozen", "cleaned", "is_cleaned"}
 92    live = {
 93        name for name in dir(md.AethericFrameConfiguration)
 94        if not name.startswith("_")
 95        and name not in plumbing
 96        and isinstance(
 97            getattr(md.AethericFrameConfiguration, name, None), property
 98        )
 99    }
100    unmapped = live - mapped
101    assert not unmapped, f"NEW POSTURE KNOBS not on the cheatsheet: {unmapped}"
102    print("cheatsheet verified against the class:", len(mapped), "knobs,",
103          "0 unmapped")
104
105    # Presets are methods, not knobs - listed apart so the count stays honest.
106    for preset in presets:
107        assert hasattr(md.AethericFrameConfiguration, preset), preset
108
109    print("the law book is set before first conjure and frozen by it")
110
111
112if __name__ == "__main__":
113    main()

Check the outcome๏ƒ

The script contains its own assertions or demonstrated refusal paths. Run it to evaluate those checks against your installed version. The code above is taken directly from the saved file; no run output is invented here.

More advanced examples ยท Level guide