A video game where you play as a misaligned AI, deceiving and building power. An experiment in spec-driven development. cameron.tngl.io/misaligned

Choose an origin by comparison, on a screen that owns itself. master

The new-game picker showed one origin at a time through a translucent card, so the slab clock, schedule, nudge, world grid, cursor, and the RACK / OWNED focus label all read through it before a run existed. Both frontends now show all four origins as lines with exactly one current, and the current one carries an attached consequence read: its built-to line, then its starting effects as labelled rows. Bevy's boundary state became an opaque field that occludes the world outright; the terminal keeps its own dialect and marks the current row with a marker as well as color. Up/Down step the selection, Left/Right and hjkl still work. The consequence read states only the biases that are wired — bankroll, machine-axis position and lean, day-job lean. The authored efficiency, signature, and cover-expectation columns stay off screen until chargen.md criterion 6 wires them. Defense: chargen.md criterion 3 required the picker to state biases in existing legible units, and only the built-to fiction had shipped. The criterion is amended to add that the picker shows the whole set with one current and states only wired biases, because a picker naming "+ efficiency" while efficiency is untouched promises the player a modifier no system reads — that is a legibility violation, not a preview. liturgical-ui-constitution.md gains a boundary field canon: it governs every Bevy pixel but had said nothing about the screens on either side of a run, which is how a translucent card over the live world passed. Its selection canon already forbade a card grid, so the set is lines on one character grid, and its threshold ban on a title frame is extended to this side of the run. env.md registers MISALIGNED_SHOT=origin-picker, the one harness kind that does not start a run, which is what proves occlusion rather than overlay. terminal.md criteria 2 and 8 hold: the marker carries selection without color, and fixed row offsets keep the block inside 70x22, now pinned by compile-time assertions.


+874 -78
12 changed files