docs(requirements): tighten codegen rows

Add explicit northstar ring fields to codegen requirements and shorten generated-artifact and event-name rows without changing behavior.

req: codegen/001

req: codegen/002

req: codegen/003

req: codegen/004

req: codegen/005

req: codegen/006

req: codegen/007

req: codegen/008

req: codegen/009
This commit is contained in:
slhx agent
2026-06-25 15:05:22 +02:00
parent 47b8d420f6
commit 99bc734297
2 changed files with 10 additions and 10 deletions
+9 -9
View File
@@ -319,31 +319,31 @@ a `data-*` handle param is statically known or runtime-extracted. [north_star]
## codegen
### req: codegen/001
001 `hemx_build` generates three artifacts from the generic Surface IR: (a) `hemx.generated.rs` containing ergonomic resource modules (`slots`, `targets`, `handles`, `forms`, `atoms`), (b) `hemx.syms` for proc-macro validation, (c) runtime id-lowering tables. `hemx_build` interprets tool-specific conventions (`data-hemx-*`, `h-for`, `h-key`, form controls) from the Surface. [north_star]
0 001 `hemx_build` generates `hemx.generated.rs` resource modules, `hemx.syms` proc-macro facts, and runtime id-lowering tables from Surface IR. It interprets `data-hemx-*`, `h-for`, `h-key`, and form-control conventions from Surface. [north_star]
### req: codegen/002
002 Generated view modules expose ergonomic root-level target objects and commands that hide render/lower details for text, partial, and keyed collection slots. [north_star]
0 002 Generated view modules expose ergonomic root-level target objects and commands that hide render/lower details for text, partial, and keyed collection slots. [north_star]
### req: codegen/009
009 Generated form targets provide `clear()`, `clear(field)`, and `focus(field)` commands. [north_star]
0 009 Generated form targets provide `clear()`, `clear(field)`, and `focus(field)` commands. [north_star]
### req: codegen/007
007 String-keyed generated target objects accept displayable domain ids without caller-side `.to_string()` noise. [north_star]
0 007 String-keyed generated target objects accept displayable domain ids without caller-side `.to_string()` noise. [north_star]
### req: codegen/008
008 Generated commands return `impl IntoEffect`, compose in plain Rust, preserve generated lowering, and fail to generate when the template lacks facts needed to infer the slot, key, form, or renderable view type. [north_star]
0 008 Generated commands return `impl IntoEffect`, compose in plain Rust, preserve generated lowering, and fail to generate when the template lacks facts needed to infer the slot, key, form, or renderable view type. [north_star]
### req: codegen/003
003 Generated module `handles` exports typed constants: `Handle<I>` where `I` is `Form<T>`, a param type, or `()`. Users rarely reference handles directly; they are consumed by `#[hemx::handler]` for validation.
0 003 Generated module `handles` exports typed constants: `Handle<I>` where `I` is `Form<T>`, a param type, or `()`. Users rarely reference handles directly; they are consumed by `#[hemx::handler]` for validation. [north_star]
### req: codegen/004
004 Generated module `forms` exports `FormContract` metadata (field names, HTML control kinds, required). `#[hemx::handler]` compares the `Form<T>` type against the contract. Domain types (`Email`, `TodoId`) remain user-authored; no auto-generated structs.
0 004 Generated module `forms` exports `FormContract` metadata (field names, HTML control kinds, required). `#[hemx::handler]` compares `Form<T>` against the contract. Domain types remain user-authored; no auto-generated structs. [north_star]
### req: codegen/005
005 Generated module `atoms` exports `Atom<T>` for values that must be addressable, bootstrapped, or synced. Ordinary Rust fields on app/components are not automatically atoms.
0 005 Generated module `atoms` exports `Atom<T>` for values that must be addressable, bootstrapped, or synced. Ordinary Rust fields on app/components are not automatically atoms. [north_star]
### req: codegen/006
006 `hemx-build` discovers `data-hemx-on` event names from hemplate Surface inputs and emits generated `hemx::EventName` constants. Event constants are metadata for checked Rust authoring and diagnostics; they do not create a trigger mini-language or new browser runtime semantics. [north_star]
0 006 `hemx-build` discovers `data-hemx-on` event names from Surface inputs and emits `hemx::EventName` constants for checked Rust authoring and diagnostics. Constants do not create a trigger mini-language or new browser semantics. [north_star]
---