Commit 8286d8e
docs(i18n): document R402_LOCALE_NOT_CANONICAL deploy-time enforcement
The v1.55 gateway enforces RFC 5646 canonical casing on every locale
tag in `spec.i18n` (primary lowercase, script Titlecase, 2-alpha region
UPPERCASE, 3-digit region preserved, variants lowercase). Non-canonical
casing is rejected at deploy time with HTTP 400 `R402_LOCALE_NOT_CANONICAL`
carrying `fix: { input, canonical }` so agents auto-correct and retry.
The platform refuses to silently canonicalize because translations are
typically keyed on the literal locale string in the consumer's DB
(`section_translations.language = 'pt-BR'`) - auto-fixing would create a
silent split between the spec and column values.
Updated both `cli/llms-cli.txt` and `SKILL.md` to replace the now-false
"Tags are opaque - no BCP-47 semantic validation" claim with the actual
canonical-casing rule + the error envelope shape.
120/120 SKILL tests + 32/32 sync tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 50cc713 commit 8286d8e
2 files changed
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
265 | | - | |
| 265 | + | |
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| |||
568 | 568 | | |
569 | 569 | | |
570 | 570 | | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
571 | 576 | | |
572 | 577 | | |
573 | 578 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
347 | | - | |
| 347 | + | |
348 | 348 | | |
349 | 349 | | |
350 | 350 | | |
| |||
0 commit comments