CA Terminator Resolution
Status: Current Last updated: 2026-10-20 (commit f7e32e22)
How CA markers are split between separators and linkers in the parser/model.
CA-originated notation does not require @Options: CA. The header can waive
the ordinary terminator requirement; it does not change the symbol categories
below. See the CA option for its separate
validation, interpretation and downstream-processing effects.
Current rule
The parser/model does not promote CA markers into utterance terminators.
The supported split is:
- Standard utterance terminators remain the CHAT terminators such as
.?!+...+/.and related final punctuation tokens. - CA intonation arrows (
⇗ ↗ → ↘ ⇘) staySeparatorcontent items. - CA TCU markers (
≈ ≋) staySeparatorcontent items. - CA TCU linker forms (
+≈ +≋) stayLinkeritems.
This means a trailing →, ≈, or ≋ remains in main-tier content rather
than being retyped as Terminator.
Parser/model consequences
- Tree-sitter grammar keeps arrows and
≈/≋on theseparatorpath. - The tree parser converts those nodes directly into
Separatorvariants. - The re2c parser classifies
≈/≋as separators and+≈/+≋as linkers. - No post-hoc pass promotes CA markers to terminators.
Terminator::try_from_chat_str()intentionally rejects CA arrows,≈,≋,+≈, and+≋.
Data Model
The active surface split is:
| Kind | CHAT tokens |
|---|---|
Terminator | . ? ! +... +/. +//. +/? +!? +"/. +". +//? +..? +. |
Separator | ⇗ ↗ → ↘ ⇘ ≈ ≋ plus the other CA/content separators |
Linker | +≈ +≋ plus the other utterance linkers |
The current Terminator enum contains the ordinary CHAT variants above, not
legacy CA-only variants. Do not infer that old serialized CA-terminator tags
remain accepted. CHAT parsing and JSON compatibility are separate boundaries;
CA symbols use their separator or linker representation.
Regression coverage
The regression surface for this split is:
ca_symbols_are_not_chat_terminatorsintalkbank-modeltrailing_ca_arrow_stays_separatorintalkbank-parsertrailing_ca_no_break_stays_separatorintalkbank-parsertrailing_ca_technical_break_stays_separatorintalkbank-parsertrailing_ca_no_break_stays_separator_in_model_conversionandtrailing_ca_technical_break_stays_separator_in_model_conversionintalkbank-parser-re2c
These controls inspect the typed separator and absent terminator. They do not make a terminator-free utterance valid under every option or prove acceptance of a legacy JSON representation.
This page last changed: 2026-10-20 (commit f7e32e22). The whole book last changed: 2026-10-27 (commit 5bfee2f9).