docs: finalize the block-editor plan, wired via Klickwege into a2ui-rs - #237
Merged
Conversation
Docs-only. Turns the session's rulings into a durable plan and records the a2ui-rs wiring as a ledger entry. docs/BLOCK-EDITOR-PLAN.md sequences W0-W5 with gates, five open decisions, and five falsifiers. It opens by naming what is LOCKED so a future session cannot re-derive it: the 0x17XX domain, the plug-and-play producer posture, the provenance fence, one content classid, (function:value) calls, arity-by-classid via LaneShape, nesting by reference, loud narrowing, literal-over-grammar, and the retired edge block. Every one is shipped code with tests (#234, #235, #236), not intention. The headline finding for the a2ui wiring is that most of it already exists. Charter C1.6 says a click IS a navigates_to/ActionInvocation edge, and a2ui-server already ships receive_action -> KlickwegEdge -> lower_action_fire -> ActionInvocation as pure compile-time value construction (#209, warden COMPILE-TIME-CLEAN, 34 tests). Placing a block, connecting two blocks and clicking a placed block are each a click by ordinal address, so each is already a Klickweg edge. Edit telemetry and harvested-app telemetry unify in one closed predicate set with NO new predicate -- the Predicate enum is count-locked at 79 and extending it is a gated ontology change, not a consequence of this arc. Nesting maps 1:1: the ObjectSlot "A3 Klickwege brick" recursion desktop -> window -> region -> widget becomes canvas -> script -> block -> input, which a2ui-wasm::resolve_nested walks unchanged. The gaps are recorded as measured, not assumed. Interaction-to-edge and nested addressing exist. A palette of pickables, 2-D placement (Skin::Form and Skin::Flow are both 1-D list renderers) and multi-facet body ingest (a2ui-wasm implements one 12-byte facet; a body is thirty) are absent -- none charter-forbidden, but the editor tier is a real build rather than wiring. Drag/connect is the one T2 pressure point: local drag state is fine, the result must travel as an address-carried write. Open decision D2 proposes that "place tile at slot N" rides ActionInvoke{ordinal: PLACE, args:[N, fn]} rather than a third FrameKind: args is explicitly ClassView/ActionDef-carved, so it is an address-carried write, and a third kind would widen a deliberately closed vocabulary. Roadmap order is operator-set: ABI-shaped Blockly/Scratch first, Klickwege wiring second, PowerAutomate-shaped skin third -- both skins Mario-editor ergonomics over ClassView : WideFieldMask, which is T1 applied at editor scale. The W1 falsifier is unchanged from the first turn of the arc: a drag produces zero SoA writes, an operand change exactly one. Ledger: docs/DISCOVERY-MAP.md D-BLOCKS-KLICKWEGE, graded [H] (PLAN) -- the W0 substrate it builds on is [G]/CODED, the wiring is unbuilt. Gates: docs-only; 16 ogar-blockly tests and workspace check re-verified unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011DN5odWu4eisdevH9bPWyz
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_3c6085f7-a32a-4bd0-ad3a-860891a18ba5) |
AdaWorldAPI
marked this pull request as ready for review
August 4, 2026 18:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only. Turns this session's rulings into a durable plan and records the a2ui-rs wiring as a ledger entry.
docs/BLOCK-EDITOR-PLAN.mdSequences W0–W5 with gates, five open decisions (D1–D5), and five falsifiers. It opens by naming what is LOCKED, so a future session cannot re-derive it — every item is shipped code with tests (#234, #235, #236), not intention:
0x17XXdomain · plug-and-play producer posture · provenance fence · one content classid ·(function : value)calls · arity-by-classid (LaneShape) · nesting by reference · loud narrowing · literal-over-grammar · retired edge block.The headline: most of the a2ui wiring already exists
Charter C1.6 — "a click IS a
navigates_to/ActionInvocationedge" — anda2ui-serveralready ships the path as pure compile-time value construction (#209, warden COMPILE-TIME-CLEAN, 34 tests):Placing a block, connecting two blocks, and clicking a placed block are each a click by ordinal address — so each is already a Klickweg edge. Edit telemetry and harvested-app telemetry unify in one closed predicate set, with no new predicate. The
Predicateenum is count-locked at 79; extending it is a gated ontology change, not a consequence of this arc.Nesting maps 1:1 — the
ObjectSlot"A3 Klickwege brick" recursiondesktop → window → region → widgetbecomescanvas → script → block → input, whicha2ui-wasm::resolve_nestedwalks unchanged.Gaps recorded as measured, not assumed
Skin::{Form, Flow}are both 1-D list renderersa2ui-wasmimplements ONE 12-byte facet; a body is 30None are charter-forbidden, but the editor tier is a real build, not wiring — correcting an earlier characterisation of mine in this arc.
Open decision worth the reviewer's eye — D2
"Place tile at slot N" should ride
ActionInvoke{ordinal: PLACE, args: [N, fn]}rather than a thirdFrameKind:argsis explicitly ClassView/ActionDef-carved, so this is an address-carried write (what T2 mandates), whereas a third frame kind widens a deliberately closed vocabulary.Roadmap (operator-set)
ABI-shaped Blockly/Scratch first → Klickwege wiring second → PowerAutomate-shaped skin third. Both skins are Mario-editor ergonomics over
ClassView : WideFieldMask— T1 applied at editor scale.W1 falsifier, unchanged since the first turn of this arc:
Ledger
docs/DISCOVERY-MAP.md→D-BLOCKS-KLICKWEGE, graded[H](PLAN) — the W0 substrate it builds on is[G]/CODED; the wiring itself is unbuilt and graded honestly as such.Gates
Docs-only. 16
ogar-blocklytests andcargo check --workspacere-verified unchanged.Generated by Claude Code