ID RULE INTENTS kernel/001 The wire effect algebra must contain only Patch, Insert, Remove, Move, Focus, Scroll, Visit, and Dispatch. protocol/001 scope/001 kernel/002 Patch must offer Morph and Replace; Insert and Move must use first, last, before, or after positions. protocol/001 resource/001 kernel/003 Every DOM effect target must be a generated resource reference, never a CSS selector. resource/001 protocol/001 kernel/004 A batch must validate its envelope before applying effects in order and stopping at the first failure. protocol/001 kernel/005 A later effect must be able to address a resource created by an earlier effect in the same batch. protocol/001 resource/001 kernel/006 Move must preserve the identity and browser-owned state of the moved node. protocol/001 web/001 kernel/007 Rendered HTML must enter an effect only through the explicit SafeHtml type. server/001 web/001 kernel/008 Identical semantic effect batches must produce identical canonical wire bytes. protocol/001 kernel/009 Decoding must reject invalid magic, versions, tags, lengths, UTF-8, fingerprints, and trailing bytes. protocol/001 kernel/010 Compatibility must never guess an opcode, resource, selector, fingerprint, or alternate wire meaning. protocol/001 kernel/011 Canonical effect batches must round-trip between typed values and wire bytes without semantic loss. protocol/001 kernel/012 A compatibility fixture must accept only its declared wire ABI version. protocol/001 kernel/013 Focus must change focus without encoding form validation or other application policy. protocol/001 web/001 kernel/014 Scroll must reveal its resource without changing focus. protocol/001 web/001 kernel/015 Dispatch must carry a generated typed non-visual payload without mutating the DOM. protocol/001 resource/001 kernel/016 Visit must update URL history through partial navigation with ordinary navigation fallback. protocol/001 web/001 resource/001 Generated resource types must expose only operations valid for their capability. resource/001 resource/002 Generated APIs must carry resource, action, fingerprint, opcode, and marker values for application code. resource/001 resource/003 Repeated resources must use generated stable keys for typed Remove and Move operations. resource/001 protocol/001 resource/004 Generated form helpers must address fields through typed resources, not copied selectors or IDs. resource/001 server/001 resource/005 Generated artifacts must change only when their semantic template inputs change. resource/001 protocol/001 resource/006 Missing or invalid generated resources must fail compilation with an actionable source diagnostic. resource/001 html/001 Generated markup must use data-hemx-root, build, resource, key, action, and island markers. resource/001 protocol/001 html/002 Native event defaults must need no attribute; data-hemx-on must only override the native event. web/001 scope/001 html/003 Navigation must use anchors or GET forms and retain ordinary browser fallback without enhancement. web/001 server/001 html/004 On validation failure, rendered forms must identify invalid fields and associate accessible messages. web/001 server/001 html/005 Hemx must preserve native keyboard, IME, autofill, file selection, and constraint-validation behavior. web/001 scope/001 html/006 Request policy must cover only concurrency, debounce, throttle, confirmation, navigation, and history. web/001 scope/001 html/007 Concurrency policy must be one of latest, queue, drop, or parallel. web/001 scope/001 runtime/001 The browser runtime must apply an effect only within the root owning its generated resource. protocol/001 resource/001 runtime/002 Loading the runtime must expose diagnostics without performing startup side effects. protocol/001 runtime/003 Ordinary forms must submit URL-encoded data unless native semantics select another encoding. web/001 server/001 runtime/004 GET forms must produce URL-state navigation while retaining ordinary navigation fallback. web/001 server/001 runtime/005 HTTP, decode, or effect failure must stop the batch and emit one root-scoped diagnostic. protocol/001 runtime/006 SSE and WebSocket adapters must carry unchanged canonical effect-batch bytes. protocol/001 scope/001 runtime/007 Each optional adapter must bind once, scan inserted fragments, clean removals, and enforce root ownership. scope/001 protocol/001 runtime/008 An explicit island must own its subtree; Hemx must not morph through island-owned nodes. scope/001 web/001 axum/001 Axum effect responses must carry canonical batch bytes and the generated build fingerprint. protocol/001 resource/001 axum/002 Axum must serve the generic browser runtime without owning application behavior. server/001 scope/001 axum/003 Partial navigation must preserve status and title metadata and support full-navigation recovery. web/001 server/001 axum/004 Interaction requests must enforce media type and configured body limits before handler dispatch. server/001 axum/005 Typed dispatch responses must preserve status, canonical bytes, and actionable diagnostics. protocol/001 server/001 build/001 A template read failure must report the source path and I/O cause. resource/001 build/002 Identical inspected template inputs must produce identical generated contract fingerprints. resource/001 protocol/001 build/003 A no-op build must not rewrite an unchanged generated contract artifact. resource/001 derive/001 The surface macro must preserve user-authored inline module items while adding generated resources. resource/001 derive/002 The handler macro must reject unknown handles and invalid handler signatures at compilation. resource/001 server/001 derive/003 The component macro must reject a component missing its required handler implementation. resource/001 server/001 derive/004 A reference to an absent generated resource must fail compilation. resource/001 wasm/001 Normal server-side Hemx APIs must compile for wasm32 without host parser dependencies. portable/001 boundary/001 Framework transport behavior must stay in hemx-axum and generic browser behavior in hemx-js. scope/001 boundary/002 Optional transport, timer, and reveal behavior must be direct lifecycle adapters, not a plugin registry. scope/001 protocol/001 boundary/003 The core must have no effects for classes, styles, attributes, scripts, validation, dialogs, or transport. scope/001 web/001 boundary/004 Hemx must not maintain a client application store that mirrors authoritative server state. server/001 scope/001 test/001 Public test utilities must inspect synchronous and asynchronous handlers through one effect model. server/001 protocol/001 test/002 A failed HTML update assertion must report both expected and actual effects. protocol/001 test/003 Public test utilities must inspect complete documents with owned HTML structure. web/001 test/004 With Axum support enabled, public test utilities must inspect effect responses through a real router. protocol/001 server/001 test/005 The public process helper must wait for delayed TCP readiness and capture child output on failure. server/001 architecture/001 hemx-build template authoring validation must live in a private module separate from artifact emission. maintainability/001 architecture/002 hemx-build Rust source fact extraction must live in a private module separate from validation and emission. maintainability/001 architecture/003 hemx-build artifact emission and contract diagnostics must live behind the public builder in a private module. maintainability/001 architecture/004 hemx-axum interaction-form extraction and decoding must live in one private module behind public adapter types. maintainability/001 assurance/001 Generated-contract checks must compare resource capabilities, stable fingerprints, and source diagnostics. assurance/001 resource/001 assurance/002 Handler compile checks must cover each documented Form spelling and custom multipart extraction. assurance/001 server/001