docs(guide, glossary): pin each ArgKind's lexical canonical form

Fieldtest spec-gap ratified: Count is a plain positive decimal with no
sign and no leading zeros ('03' refuses) — and the per-kind asymmetry
against TimeOfDay's required zero-pad is deliberate, pinned with its
rationale: canonical is each domain's conventional notation,
fixed-width for wall-clock times, minimal for numbers.

refs #271
This commit is contained in:
2026-07-24 22:05:34 +02:00
parent 14c43474ab
commit eb2b0a132c
2 changed files with 7 additions and 3 deletions
+6 -2
View File
@@ -361,8 +361,12 @@ construction-args channel — `args` configures it BEFORE `bind`:
`tz` is `chrono_tz`'s own exact, case-sensitive IANA name (`"berlin"` refuses; `tz` is `chrono_tz`'s own exact, case-sensitive IANA name (`"berlin"` refuses;
`"Europe/Berlin"` accepts); `open` is strict zero-padded local `HH:MM` `"Europe/Berlin"` accepts); `open` is strict zero-padded local `HH:MM`
(`"9:30"` refuses; `"09:30"` accepts) — the accepted string IS the canonical (`"9:30"` refuses; `"09:30"` accepts); a `Count` arg (`LinComb`/`CostSum`'s
form, no normalization. Giving `Session` no `args` at all refuses the `add` arity) is a plain positive decimal — no sign, no leading zeros (`"03"`
refuses; `"3"` accepts). The accepted string IS the canonical form, no
normalization — and note the deliberate asymmetry: each kind's canonical
form is its domain's conventional notation, fixed-width for wall-clock
times, minimal for numbers. Giving `Session` no `args` at all refuses the `add`
op (`node <name> is missing required arg "tz"`) — an arg-bearing type never op (`node <name> is missing required arg "tz"`) — an arg-bearing type never
silently enters the graph half-configured. `aura graph introspect --node silently enters the graph half-configured. `aura graph introspect --node
Session` lists both declared `arg` rows with their kind and hint text before Session` lists both declared `arg` rows with their kind and hint text before
+1 -1
View File
@@ -13,7 +13,7 @@ Entries are alphabetical.
### arg kind ### arg kind
**Avoid:** ArgKind, construction-arg type **Avoid:** ArgKind, construction-arg type
The closed vocabulary of construction-arg value shapes (`Tz`/`TimeOfDay`/`Count`, #271) — deliberately NOT a `scalar base type`: args are bootstrap metadata, never streamed, so the two closedness axes stay separate. Each kind's accepted strict form IS its canonical form (an exact IANA name, zero-padded `HH:MM`, a plain positive decimal count) — there is no normalization layer, so a near-miss string refuses rather than being rewritten. The closed vocabulary of construction-arg value shapes (`Tz`/`TimeOfDay`/`Count`, #271) — deliberately NOT a `scalar base type`: args are bootstrap metadata, never streamed, so the two closedness axes stay separate. Each kind's accepted strict form IS its canonical form (an exact IANA name; zero-padded `HH:MM`; a plain positive decimal count, no sign or leading zeros) — there is no normalization layer, so a near-miss string refuses rather than being rewritten. The per-kind forms are deliberately asymmetric (`"03"` refuses as a count while `"09:30"` requires the pad): canonical is each domain's conventional notation — fixed-width for wall-clock times, minimal for numbers.
### atomic sim unit ### atomic sim unit
**Avoid:** atomic unit, sim unit **Avoid:** atomic unit, sim unit