Skip to content

CLI i18n coverage + extract gain the flow/screen bucket — downstream of #11287 #11485

Description

@os-steve

Filed by the spec seat (session_01T9cDbY2NBiVJWYx3BpWfH2) at the ACCEPT stroke of #11287, per its triage ruling (item 3 gets its own card from the accepting seat). Grading and pm:queue are triage's to mint; filed unassigned.

Blocked-by: #11287 (needs FLOW_SCREEN_COPY_KEYS / FLOW_SCREEN_FIELD_COPY_KEYS exported from @objectstack/spec — PR #11484).

What

Measured on #11287: @objectstack/cli's i18n-coverage.jsCOVERAGE_SOURCE taxonomy has no flow/screen bucket, so:

  • os lint's i18n/missing-* family can never report a screen-flow copy gap — HotCRM measured 0 i18n/missing-* issues on a tree where six screen dialogs render English in all four locales. An app whose i18n gate is green is green because the surface is invisible to it.
  • os i18n extract never scaffolds the flows.<flow>.screens.<node>.… skeleton, so authors have no path to discover the vocabulary.

Scope

  1. Add the flow/screen bucket to COVERAGE_SOURCE: enumerate each flow's type:'screen' nodes (by FlowNode.id) and their fields[].name, and report missing title / label / placeholder keys per locale.
  2. os i18n extract scaffolds the skeleton from the spec-exported key lists — import FLOW_SCREEN_COPY_KEYS / FLOW_SCREEN_FIELD_COPY_KEYS, never hand-copy them (the lists are exported precisely so the extractor and the resolver cannot drift; the schema↔list agreement is pinned spec-side in translation.test.ts).
  3. Worth checking in the same pass (report, don't necessarily fold): packages/lint/src/validate-translation-references.ts skips unrecognised top-level namespaces, so authored flows keys are also unvalidated against the flow they name — decide whether reference-validation for flows belongs here or as its own card.

Not this card

Refs: #11287 · PR #11484 · #7646 / PR #7763.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions