docs(requirements): add rings to canonical rows

Add explicit northstar ring fields across canonical_authoring rows so redgate no longer reports missing-ring warnings for that section.

req: canonical_authoring/001

req: canonical_authoring/002

req: canonical_authoring/003

req: canonical_authoring/004

req: canonical_authoring/005

req: canonical_authoring/006

req: canonical_authoring/007

req: canonical_authoring/008
This commit is contained in:
slhx agent
2026-06-25 14:28:07 +02:00
parent 337f5410f0
commit 0995374f9d
2 changed files with 20 additions and 20 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ Keep it stable. Prefer pointers to canonical sources over copied structure, file
- `redgate list` — show requirements as TSV. - `redgate list` — show requirements as TSV.
- `redgate refs` — show `req:` citations found in the repo. - `redgate refs` — show `req:` citations found in the repo.
- `redgate health` — show uncited requirements, duplicate IDs, and stale citations. - `redgate health` — show uncited requirements, duplicate IDs, and stale citations.
- `redgate lint` — show maintainability warnings such as missing rings and oversized requirement rows. - `redgate lint` — show maintainability warnings such as missing rings and oversized requirement rows; when fixing one row in a section, normalize nearby rows with the same warning if it stays a requirement-only cleanup.
- `redgate health --strict` — fail on hard errors: empty requirements, duplicate IDs, or stale citations. - `redgate health --strict` — fail on hard errors: empty requirements, duplicate IDs, or stale citations.
- `redgate agents` — print this starter template; review, shrink, and edit before committing. - `redgate agents` — print this starter template; review, shrink, and edit before committing.
+19 -19
View File
@@ -50,61 +50,61 @@ client app state framework.
## canonical_authoring ## canonical_authoring
### req: canonical/001 ### req: canonical/001
001 The canonical app shape is templates plus Rust, not a frontend folder: `.heml` files declare roots, slots, handles, forms, keys, and optional pending/page/island facts; handlers return generated UI commands. [north_star] 0 001 The canonical app shape is templates plus Rust, not a frontend folder: `.heml` files declare roots, slots, handles, forms, keys, and optional pending/page/island facts; handlers return generated UI commands. [north_star]
### req: canonical/010 ### req: canonical/010
010 Ordinary app code avoids selectors, numeric ids, raw effects, wire formats, manual registries/form parsing, raw `SafeHtml`, and raw render calls. [north_star] 0 010 Ordinary app code avoids selectors, numeric ids, raw effects, wire formats, manual registries/form parsing, raw `SafeHtml`, and raw render calls. [north_star]
### req: canonical/011 ### req: canonical/011
011 Plain CSS owns appearance. [north_star] 0 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, and place them into generated targets. [north_star] 0 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 ### req: canonical/014
014 The partial-swap primitive is generated target plus rendered partial plus swap kind. [north_star] 0 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, and delete removes a keyed row. [north_star] 0 003 Canonical keyed-row CRUD reads like ordinary Rust intent: create appends a rendered row partial, update/toggle replaces a keyed row partial, and delete removes a keyed row. [north_star]
### req: canonical/015 ### req: canonical/015
015 Summary, text, and 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] 0 015 Summary, text, and 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]
### req: canonical/004 ### 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. [north_star] 0 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 ### 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] 0 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 ### req: canonical/005
005 Generated helpers name UI intent without mixing domain work: 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] 0 005 Generated helpers name UI intent without mixing domain work: 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]
### req: canonical/009 ### req: canonical/009
009 Generated helpers must not combine persistence, routing, rendering, target selection, or domain policy into generic commands such as `refresh`, `save_and_update`, `sync_component`, or `rerender`. [north_star] 0 009 Generated helpers must not combine persistence, routing, rendering, target selection, or domain policy into generic commands such as `refresh`, `save_and_update`, `sync_component`, or `rerender`. [north_star]
### req: canonical/006 ### req: canonical/006
006 There is no separate beginner API and expert API; the simple generated shape is canonical. [north_star] 0 006 There is no separate beginner API and expert API; the simple generated shape is canonical. [north_star]
### req: canonical/012 ### req: canonical/012
012 Generated slots, partials, forms, class constants, islands/events, and page helpers are normal authoring surfaces. [north_star] 0 012 Generated slots, partials, forms, class constants, islands/events, and page helpers are normal authoring surfaces. [north_star]
### req: canonical/013 ### req: canonical/013
013 Explicit primitives, raw targets, raw HTML, raw effects, manual registries/form parsing, low-level ids/opcodes, wire formats, and raw routes remain named escape hatches or internals around the same render/target/effect/transport model. [north_star] 0 013 Explicit primitives, raw targets, raw HTML, raw effects, manual registries/form parsing, low-level ids/opcodes, wire formats, and raw routes remain named escape hatches or internals around the same render/target/effect/transport model. [north_star]
### req: canonical/007 ### req: canonical/007
007 Opaque islands are explicit leaf adapters: templates declare `data-hemx-island` and optional generated handles/events; server code may emit snapshots/events such as `ui::game.emit(event)`. [north_star] 0 007 Opaque islands are explicit leaf adapters: templates declare `data-hemx-island` and optional generated handles/events; server code may emit snapshots/events such as `ui::game.emit(event)`. [north_star]
### req: canonical/017 ### req: canonical/017
017 Island JavaScript owns only high-frequency local behavior and must not introduce a component runtime, client state graph, VDOM, or second UI model. [north_star] 0 017 Island JavaScript owns only high-frequency local behavior and must not introduce a component runtime, client state graph, VDOM, or second UI model. [north_star]
### req: canonical/008 ### req: canonical/008
008 Offline/PWA support is opt-in adapter territory; server-first hemx may fail interactions while offline. [north_star] 0 008 Offline/PWA support is opt-in adapter territory; server-first hemx may fail interactions while offline. [north_star]
### req: canonical/018 ### req: canonical/018
018 Cached shells and local-sync queues live in crates such as `hemx-pwa` or `hemx-sync`; they reuse generated slots/effects, queue explicit patches, and reconcile with server-canonical effects. [north_star] 0 018 Cached shells and local-sync queues live in crates such as `hemx-pwa` or `hemx-sync`; they reuse generated slots/effects, queue explicit patches, and reconcile with server-canonical effects. [north_star]
### req: canonical/019 ### req: canonical/019
019 Core hemx must not gain a mandatory client state graph, scheduler, CRDT, or local app runtime. [north_star] 0 019 Core hemx must not gain a mandatory client state graph, scheduler, CRDT, or local app runtime. [north_star]
--- ---