From 6136d67ad0ac3e74773dd846b7c88222d9678a9d Mon Sep 17 00:00:00 2001 From: slhx agent Date: Thu, 25 Jun 2026 14:39:55 +0200 Subject: [PATCH] docs(requirements): tighten ceremony rows Add explicit northstar ring fields to ceremony requirements, split the mobile-starter negative boundary, and shorten overlong rows without changing behavior. req: ceremony/001 req: ceremony/002 req: ceremony/003 req: ceremony/004 req: ceremony/005 req: ceremony/006 req: ceremony/007 --- AGENTS.md | 2 +- REQUIREMENTS.md | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 8e9ad3b..c7bc12b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -60,7 +60,7 @@ Keep it stable. Prefer pointers to canonical sources over copied structure, file - Public examples and beginner APIs should use templates plus Rust, generated resources, and `IntoEffect`, not raw ids, selectors, wire formats, runtime opcodes, manual registries, or raw effect constructors. req: canonical_authoring/001 req: canonical_authoring/004 req: canonical_authoring/006 req: canonical_authoring/010 req: canonical_authoring/015 req: dx/001 req: dx/002 req: dx/010 - Typed partial swaps should stay expressed as generated target plus rendered partial plus swap kind, not selector-driven rerendering; HTTP, navigation, push, and island behavior adapt around that loop. req: canonical_authoring/002 req: canonical_authoring/014 req: modes/001 - `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; do not treat it as a mobile framework or store-submission bot. req: ceremony/005 req: ceremony/006 req: ceremony/007 - The public component-reuse explanation lives in `docs/recipes/reusable-partials.md`; do not grow a client component framework to explain partial composition. - The stable public `.heml` authoring surface lives in `docs/hemplate-syntax.md`; Hemlate examples must use that real hemplate syntax, not Vue/Handlebars sketches. - Optional `.heml` editor overlays must share authority with `hemx-build` diagnostics and `docs/hemplate-syntax.md`; `hemx-lsp` owns editor protocol glue for diagnostics/completion/hover and derive-known template facts, while VS Code/Cursor/Neovim keep normal HTML/tree-sitter tooling. Do not create a second template language, selector model, formatter, Rust type system, or custom editor framework. req: diagnostics/004 req: diagnostics/005 req: diagnostics/006 diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md index 474fad7..cdf994e 100644 --- a/REQUIREMENTS.md +++ b/REQUIREMENTS.md @@ -161,22 +161,25 @@ client app state framework. ## ceremony ### req: ceremony/001 -001 A minimal counter app requires one `.heml` file, one Rust state struct, and one handler function. No manual registry, no manual route table, no manual JS. Under 50 lines of user-authored Rust plus one template. +0 001 A minimal counter app requires one `.heml` file, one Rust state struct, and one handler function. No manual registry, route table, or JS; under 50 lines of Rust plus one template. ### req: ceremony/002 -002 Generated modules are imported through a prelude or component namespace. Users should not manually include `$OUT_DIR` files in normal apps. +0 002 Generated modules are imported through a prelude or component namespace. Normal apps do not manually include `$OUT_DIR` files. ### req: ceremony/003 -003 `build.rs` must be a one-liner for the common case: `fn main() { hemx_build::app().run().unwrap(); }` +0 003 `build.rs` must be a one-liner for the common case: `fn main() { hemx_build::app().run().unwrap(); }` ### req: ceremony/004 -004 No API may require users to write numeric ids, raw ResourceIds, raw opcodes, or serialized payloads in normal code. +0 004 No API may require users to write numeric ids, raw ResourceIds, raw opcodes, or serialized payloads in normal code. ### req: ceremony/005 -005 `cargo run -p hemx-xtask -- app new PATH` creates a generic checked-hypermedia scaffold with a page, form, keyed row partial, notice slot, Rust handlers, and tests using generated helpers instead of raw ids, opcodes, selector UI JavaScript, or manual registry plumbing. [north_star] +0 005 `cargo run -p hemx-xtask -- app new PATH` creates a generic scaffold with page, form, keyed row partial, notice slot, handlers, and tests using generated helpers instead of raw ids, opcodes, selector UI JavaScript, or manual registries. [north_star] ### req: ceremony/006 -006 `cargo run -p hemx-xtask -- app new --mobile PATH` creates a phone-first starter with a real page/form/keyed partial/notice flow, typed host capability round trip, app-owned command/event/projection recovery truth, and inspectable mobile release/verify metadata without adding a hemx mobile framework, client store, signing-secret owner, or store submission bot. [north_star] +0 006 `cargo run -p hemx-xtask -- app new --mobile PATH` creates a phone-first starter with page/form/keyed partial/notice flow, typed host capability round trip, app-owned recovery truth, and inspectable mobile release/verify metadata. [north_star] + +### req: ceremony/007 +0 007 The phone-first starter adds no hemx mobile framework, client store, signing-secret owner, or store-submission bot. [north_star] ---