lablup / lablup/backend.ai-webui
Terminology governance — enforce a blocking i18n terminology gate (wayfinder map)
- Dominant language
- TypeScript
- Stars
- 133
- Forks
- 81
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 344
Description
## Destination
The i18n terminology gate **ENFORCES** the termbase: `check-terminology-i18n.mjs --strict` runs **blocking** in `scripts/verify.sh` / CI (and optionally pre-commit), so a bare-English forbidden term (an `avoid[]` ERROR-severity match) cannot merge. The termbase is comprehensive across `en` (+ best-effort `ko`/`ja`/`th`), and the CHECK 3 candidate backlog is cleared. (Destination chosen 2026-07-10: **Enforced/blocking**, not advisory.)
## Notes
Domain: docs / i18n terminology governance for backend.ai-webui. Builds on the merged machine-readable `terminology.json` + `check-terminology-i18n.mjs` (FR-3048) and the governance layer + verbs + CHECK 3 (FR-3052). This map **carries execution** — its tickets implement and ship PRs (per the terminology roadmap), not decisions-only. Ship order is stack-aware (Graphite); each ticket keeps `verify.sh` green. Consult: `packages/backend.ai-webui-docs/TERMINOLOGY.md` (Precedence / Governance / Rename checklist), the terminology `.claude` rules.
## Decisions so far
- [Phase 0 — fix shipped i18n drift + repair docs-lint parser (FR-3021)](https://lablup.atlassian.net/browse/FR-3021) — merged; AppProxy/Proejct/ko drift fixed, broken awk parser repaired.
- [Phase 1+2 — machine-readable terminology.json + i18n checker (FR-3048)](https://lablup.atlassian.net/browse/FR-3048) — merged; single source of truth + CHECK 1 (drift) / CHECK 2 (divergence, opt-in).
- [Phase 4 — governance: verbs, CHECK 3, precedence & rename rules (FR-3052)](https://lablup.atlassian.net/browse/FR-3052) — merged (#7748, eb6ecf29d); verbs[] (8), CHECK 3 unknown-noun (opt-in), precedence / term-owner / new-term gate / rename checklist.
- **Destination = ENFORCED** (2026-07-10) — the gate will block, not merely warn. This makes FR-3049 the capstone and keeps FR-3051 (ko/ja/th) in scope.
## Not yet specified
- Component-library locale store (`packages/backend.ai-ui/src/locale`, `comp:` ns) — confirm the blocking gate covers it (highest blast radius) at flip time; may graduate into an FR-3049 sub-check.
- CHECK 3 default-on promotion timing — after the candidate backlog (FR-3302) is cleared; graduates from FR-3302's tail.
- Whether a team-facing "how terminology governance works" doc is needed beyond TERMINOLOGY.md.
## Out of scope
- External TMS (Weblate / DeepL glossary / TBX) — rejected for this scale in the original proposal (git-native chosen).
- Per-locale approved-verb forms — deferred; v1 is English-canonical only (destructive-confirmation UX is language-agnostic).
- i18n language-set reconciliation (the "22 vs 21 languages" / Thai absent from `i18n.config.js` scanner) — separate concern, not on the enforce route.
JIRA Issue: FR-3311
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with check-terminology-i18n.mjs, scripts/verify.sh, and the merged terminology.json; read packages/backend.ai-webui-docs/TERMINOLOGY.md for governance and rename rules. Trace the existing strict and opt-in checks, including the component-library locale store, then make the strict gate blocking in verification/CI. Done means forbidden bare-English terms fail the check and verify.sh remains green.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, shell, typescript
- Domain
- ci-cd, documentation, internationalization
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100