@urbicon-ui/design 6.3.9 → 6.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -62,6 +62,7 @@ to read the intent, `urbicon find` / `get-component` to discover the catalog, co
62
62
  | --- | --- | --- |
63
63
  | `urbicon init` | Wire a project into the design loop (AGENTS.md block, manifest scaffold, `--hook`/`--ci`). | — (local only) |
64
64
  | `urbicon validate [paths...]` | Lint `.svelte` markup against the design rules. The CI gate. | mirror of `validate_design` |
65
+ | `urbicon i18n [check]` | Audit `@urbicon-ui/i18n`: `parity` / `unused` keys / `hardcoded` strings / `audit` (all). | — (local only) |
65
66
  | `urbicon hook` | PostToolUse adapter — validate the just-edited file, block on failure. | — (local only) |
66
67
  | `urbicon find [query]` | Fuzzy component discovery over the version-pinned catalog. | `find_components` |
67
68
  | `urbicon get-component <slug>` | A component's API (its `llm.txt`) from the bundle. | `get_component` |
@@ -112,6 +113,29 @@ Exit codes — designed for hooks and CI:
112
113
 
113
114
  `--skip-heuristics` runs only the deterministic rules (no distribution notes).
114
115
 
116
+ ### i18n
117
+
118
+ Audit `@urbicon-ui/i18n` usage — one check, or `audit` for all. Run under Bun (it
119
+ dynamic-imports `.ts` locale bundles).
120
+
121
+ ```bash
122
+ urbicon i18n audit src/ --translations src/lib/translations # parity + unused + hardcoded
123
+ urbicon i18n parity --json # data-level locale audit only
124
+ urbicon i18n unused --dynamic-keys 'errors.*' # scan, allowlisting dynamic key families
125
+ urbicon i18n hardcoded src/ --strict # gate the advisory hardcoded-string lint too
126
+ ```
127
+
128
+ | Check | Finds | Gates? |
129
+ | --- | --- | --- |
130
+ | `parity` | missing/extra keys, empty values, `{{param}}` drift, malformed/incomplete `_plural` | errors gate |
131
+ | `unused` | defined keys referenced nowhere (`confirmed`/`suspect`) + keys used-but-undefined | used-but-undefined gates; unused advisory |
132
+ | `hardcoded` | literal UI copy in `.svelte` markup that bypassed i18n | advisory (gate with `--strict`) |
133
+
134
+ Config via `i18n.audit.json` / `--config` + flags (`--translations`, `--dynamic-keys`,
135
+ `--ignore-keys`, `--ignore-strings`, `--base-locale`); `--json` for CI. Backed by the
136
+ `@urbicon-ui/i18n/audit` subpath; the pure data-level `auditTranslations` also runs as a
137
+ Vitest assertion without the CLI.
138
+
115
139
  ### context / record-decision / sync-manifest
116
140
 
117
141
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@urbicon-ui/design",
3
- "version": "6.3.9",
3
+ "version": "6.3.11",
4
4
  "description": "The urbicon CLI — version-pinned design validation and design-manifest tooling for projects built with Urbicon UI. Wraps @urbicon-ui/design-engine for editor hooks and CI.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,9 +38,9 @@
38
38
  "test:run": "vitest run"
39
39
  },
40
40
  "dependencies": {
41
- "@urbicon-ui/design-content": "6.3.9",
42
- "@urbicon-ui/design-engine": "6.3.9",
43
- "@urbicon-ui/i18n": "6.3.9"
41
+ "@urbicon-ui/design-content": "6.3.11",
42
+ "@urbicon-ui/design-engine": "6.3.11",
43
+ "@urbicon-ui/i18n": "6.3.11"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^6.0.3",
@@ -19,6 +19,9 @@ library this project installed**, so what it tells you is true of the code you a
19
19
  (`--section api|examples|variants|slots|full`).
20
20
  - **Validate** what you generate:
21
21
  - `urbicon validate <path>` — lint markup against the design rules; fix every error.
22
+ - `urbicon i18n [check]` — audit `@urbicon-ui/i18n` usage (when the project uses it):
23
+ `parity` (missing/empty/param/plural across locales), `unused` keys, `hardcoded`
24
+ strings, or `audit` (all). Gates on parity errors + keys used-but-undefined.
22
25
  - **Read & record design intent** (the project's memory):
23
26
  - `urbicon context` — the design manifest: paradigm, voice, decisions. Read it first.
24
27
  - `urbicon record-decision …` — log a deliberate design choice so the next session sees it.