From bc381eda5e8d061901b847684e97b14cb98bac2d Mon Sep 17 00:00:00 2001 From: slhx agent Date: Thu, 25 Jun 2026 14:10:46 +0200 Subject: [PATCH] docs(requirements): split generated fact inference rule Split oversized canonical_authoring/004 into known-template-facts and explicit-diagnostic requirements. req: canonical_authoring/004 req: canonical_authoring/016 --- AGENTS.md | 2 +- REQUIREMENTS.md | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e71c684..2fc918f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -57,7 +57,7 @@ Keep it stable. Prefer pointers to canonical sources over copied structure, file - Use the same Workout command surface for tests, production build, and mobile release: `cargo run -p hemx-xtask -- workout test`, `cargo run -p hemx-xtask -- workout build`, `HEMX_WORKOUT_ORIGIN=https://workout.example.com cargo run -p hemx-xtask -- workout mobile-release`, and `HEMX_WORKOUT_ORIGIN=https://workout.example.com cargo run -p hemx-xtask -- workout mobile-verify`; Android/iOS SDKs, store submission targets, and signing remain external blockers, not repo-owned secrets. req: examples/006 req: examples/011 - 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. -- 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 req: canonical_authoring/015 +- 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/004 req: canonical_authoring/006 req: canonical_authoring/010 req: canonical_authoring/015 - 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 - 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 diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md index f92dd2d..e02aa85 100644 --- a/REQUIREMENTS.md +++ b/REQUIREMENTS.md @@ -71,7 +71,10 @@ client app state framework. 015 Summary, text, and form effects compose in tuples, arrays, or `Vec` for dynamic batches, and no handler chooses a target with a CSS selector. [north_star] ### req: canonical/004 -004 Generated helpers may compose only facts uniquely known from templates and checked Rust types: template, slot, optional key, form/control, class token, explicit island/event marker, and effect kind. If a handler parameter, key, form, target, raw route, or legacy target would require guessing, the user must say it explicitly and diagnostics must point to the Rust and hemplate spans. [north_star] +004 Generated helpers may compose only facts uniquely known from templates and checked Rust types: template, slot, optional key, form/control, class token, explicit island/event marker, and effect kind. [north_star] + +### req: canonical/016 +016 If a handler parameter, key, form, target, raw route, or legacy target would require guessing, the user must say it explicitly and diagnostics must point to the Rust and hemplate spans. [north_star] ### req: canonical/005 005 Generated helpers name UI intent without mixing domain work: target helpers read as UI effects such as `replace`, `append`, `remove`, `set`, `clear`, `focus`, `set_attr`, or `emit` on generated page, slot, form, class, attribute, or island handles. [north_star]