docs(requirements): split typed partial swap rule

Split oversized canonical_authoring/002 into handler partial-swap flow and primitive-shape requirements.

req: canonical_authoring/002

req: canonical_authoring/014
This commit is contained in:
slhx agent
2026-06-25 14:07:32 +02:00
parent 89dbc3f0f4
commit 8c3a22d720
2 changed files with 5 additions and 1 deletions
+1
View File
@@ -58,6 +58,7 @@ Keep it stable. Prefer pointers to canonical sources over copied structure, file
- hemx core stays small: effects, typed ids, registries, and wire schema only. - hemx core stays small: effects, typed ids, registries, and wire schema only.
- Routing, auth, sessions, transport, transitions, sync, and storage belong in integration/user crates. - Routing, auth, sessions, transport, transitions, sync, and storage belong in integration/user crates.
- Public examples and beginner APIs should use templates plus Rust, generated resources, and `IntoEffect`, not raw ids, selectors, wire formats, or runtime opcodes. req: canonical_authoring/001 req: canonical_authoring/006 req: canonical_authoring/010 - Public examples and beginner APIs should use templates plus Rust, generated resources, and `IntoEffect`, not raw ids, selectors, wire formats, or runtime opcodes. req: canonical_authoring/001 req: canonical_authoring/006 req: canonical_authoring/010
- Typed partial swaps should stay expressed as generated target plus rendered partial plus swap kind, not selector-driven rerendering. req: canonical_authoring/002 req: canonical_authoring/014
- `examples/html_examples` is the copy-paste HTML pattern gallery for htmx-style examples; keep exact htmx URL slugs visible while translating behavior to boring `.heml`, generated resources, and server-owned Rust state. req: htmx_equivalents/001 req: htmx_equivalents/005 req: examples/007 - `examples/html_examples` is the copy-paste HTML pattern gallery for htmx-style examples; keep exact htmx URL slugs visible while translating behavior to boring `.heml`, generated resources, and server-owned Rust state. req: htmx_equivalents/001 req: htmx_equivalents/005 req: examples/007
- Use `cargo run -p hemx-xtask -- app new PATH` for the generic page/form/keyed-row/notice starter, and `cargo run -p hemx-xtask -- app new --mobile PATH` for the phone-first starter with host capabilities, recovery truth, and release-kit commands. req: ceremony/005 req: ceremony/006 - Use `cargo run -p hemx-xtask -- app new PATH` for the generic page/form/keyed-row/notice starter, and `cargo run -p hemx-xtask -- app new --mobile PATH` for the phone-first starter with host capabilities, recovery truth, and release-kit commands. req: ceremony/005 req: ceremony/006
- The public component-reuse explanation lives in `docs/recipes/reusable-partials.md`; do not grow a client component framework to explain partial composition. - The public component-reuse explanation lives in `docs/recipes/reusable-partials.md`; do not grow a client component framework to explain partial composition.
+4 -1
View File
@@ -59,7 +59,10 @@ client app state framework.
011 Plain CSS owns appearance. [north_star] 011 Plain CSS owns appearance. [north_star]
### req: canonical/002 ### req: canonical/002
002 Typed partial swaps are the primary UX, not an advanced feature: handlers change domain state in Rust, convert domain values into view values, render hemplate partials through generated helpers, and place them into generated targets. The real primitive is generated target + rendered partial + swap kind. [north_star] 002 Typed partial swaps are the primary UX, not an advanced feature: handlers change domain state in Rust, convert domain values into view values, render hemplate partials, and place them into generated targets. [north_star]
### req: canonical/014
014 The partial-swap primitive is generated target plus rendered partial plus swap kind. [north_star]
### req: canonical/003 ### req: canonical/003
003 Canonical keyed-row CRUD reads like ordinary Rust intent: create appends a rendered row partial, update/toggle replaces a keyed row partial, delete removes a keyed row, summary/text/form effects compose in tuples, arrays, or `Vec<T: IntoEffect>` for dynamic batches, and no handler chooses a target with a CSS selector. [north_star] 003 Canonical keyed-row CRUD reads like ordinary Rust intent: create appends a rendered row partial, update/toggle replaces a keyed row partial, delete removes a keyed row, summary/text/form effects compose in tuples, arrays, or `Vec<T: IntoEffect>` for dynamic batches, and no handler chooses a target with a CSS selector. [north_star]