Skip to content

Vocabulary pass, layer 2 + Dataset & Releases (DISCUSSION FIRST — do not implement) #293

Description

@JArmandoAnaya

Audited 2026-08-16 at f31653d: description updated to match HEAD. All four questions are
still open and still accurate; three file citations had gone stale and are corrected below.
The DISCUSSION FIRST banner in the title still governs.

Motivation

Layer 1 of the vocabulary pass (#292) was mechanical work: raw kernel identifiers were replaced by existing or obvious labels, and the Versions tab was renamed. What remains is not mechanical. It renames concepts — promote, partition, trunk, manifest — whose current words are the kernel's own, it redesigns an error surface, and it merges two navigation destinations. Each of those needs a decision before any code is written, so this issue exists for tracking and discussion only.

Do not implement from this issue. Every item below needs a founder decision first.

Open questions

  1. Promote, partition, trunk and manifest as user-facing copy. These words appear in user-facing prose in BatchesScreen.tsx, BatchLifecycle.tsx and DatasetScreen.tsx, and they are simultaneously the kernel's exact vocabulary. (Citation corrected 2026-08-16: the approve dialog is no longer its own ApproveDialog file — it lives in frontend/ui-core/src/screens/BatchLifecycle.tsx, whose approve step is reached by approve-go-schema at BatchLifecycle.tsx:285.) The same-sentence rule — a refusal and the screen describing it share their wording — is load-bearing here. Renaming them for users means either a translation layer that must never drift, or accepting the kernel's words as the product's words. Which of the two?

  2. Error codes used as headings. patterns/AsyncStates.tsx:116 renders the machine-readable code as the error heading, so a user sees a title reading "SCHEMA_NOT_FOUND". This is a design decision rather than a bug: the code is what a bug report should quote and what a client branches on. If it changes, the redesign has to keep the code visible somewhere a reader can copy it from.

  3. Renaming the Dataset destination to "Dataset & Releases". (Premise updated 2026-08-05: this question originally read as a merge between the "Versions" tab and the Dataset screen. The IA restructure (IA restructure: Dataset is a tab, Schema history nests, Overview is a dashboard #310) removed the Versions tab — schema history now nests inside the Schema tab, ?tab=versions redirects there, and the information-architecture skill states the ledger/reader division.) What remains is the split between the Schema tab and the Dataset tab: schema versioning lives entirely inside Schema, while releases — the thing a version is eventually exported as — live under Dataset. The narrowed question is whether the Dataset destination is renamed "Dataset & Releases" to say so.

    Citations corrected 2026-08-16. Renaming touches roughly six sites (frontend/ui-core/src/screens/dataset.test.tsx, frontend/ui-core/src/screens/navigation.test.tsx, frontend/app/e2e/shell.spec.ts, frontend/app/e2e/navigation.spec.ts, plus the route and parent-label sites). The rail's pinned-destination contract is three links, not two, and now sits at frontend/app/e2e/shell.spec.ts:176-189 — the assertion is toHaveCount(3) at :183, Inference having become a top-level destination since this was filed. Nothing in this question depends on the count; the citation is corrected so a pickup does not go looking at :157 for a two-link rule that no longer exists.

  4. Inline schema creation from the approve dialog, deferred out of the work that humanized SCHEMA_NOT_FOUND in that dialog (Humanize SCHEMA_NOT_FOUND in the approve dialog #291). Should the dialog offer creating version 1 in place, or is the link out to the schema tab (approve-go-schema) the right scope forever? Still a link out at HEAD.

Exit criteria

A decision comment per question, then implementation issues filed for whatever survives.

Original description, as it stood before the 2026-08-16 audit

Motivation

Layer 1 of the vocabulary pass (#292) was mechanical work: raw kernel identifiers were replaced by existing or obvious labels, and the Versions tab was renamed. What remains is not mechanical. It renames concepts — promote, partition, trunk, manifest — whose current words are the kernel's own, it redesigns an error surface, and it merges two navigation destinations. Each of those needs a decision before any code is written, so this issue exists for tracking and discussion only.

Do not implement from this issue. Every item below needs a founder decision first.

Open questions

  1. Promote, partition, trunk and manifest as user-facing copy. These words appear in user-facing prose in BatchesScreen, ApproveDialog and DatasetScreen, and they are simultaneously the kernel's exact vocabulary. The same-sentence rule — a refusal and the screen describing it share their wording — is load-bearing here. Renaming them for users means either a translation layer that must never drift, or accepting the kernel's words as the product's words. Which of the two?

  2. Error codes used as headings. patterns/AsyncStates.tsx:116 renders the machine-readable code as the error heading, so a user sees a title reading "SCHEMA_NOT_FOUND". This is a design decision rather than a bug: the code is what a bug report should quote and what a client branches on. If it changes, the redesign has to keep the code visible somewhere a reader can copy it from.

  3. Renaming the Dataset destination to "Dataset & Releases". (Premise updated 2026-08-05: this question originally read as a merge between the "Versions" tab and the Dataset screen. The IA restructure (IA restructure: Dataset is a tab, Schema history nests, Overview is a dashboard #310) removed the Versions tab — schema history now nests inside the Schema tab, ?tab=versions redirects there, and the information-architecture skill states the ledger/reader division. The split is therefore no longer Versions against Dataset.) What remains is the split between the Schema tab and the Dataset tab: schema versioning lives entirely inside Schema, while releases — the thing a version is eventually exported as — live under Dataset. The narrowed question is whether the Dataset destination is renamed "Dataset & Releases" to say so, now that nothing about schema versions competes for the name. Renaming touches roughly six test files (dataset.test.tsx, navigation.test.tsx, shell.spec.ts, navigation.spec.ts, plus the route and parent-label sites) and the left rail's pinned two-link contract at shell.spec.ts:157.

  4. Inline schema creation from the approve dialog, deferred out of the work that humanized SCHEMA_NOT_FOUND in that dialog (Humanize SCHEMA_NOT_FOUND in the approve dialog #291). Should the dialog offer creating version 1 in place, or is the link out to the schema tab the right scope forever?

Exit criteria

A decision comment per question, then implementation issues filed for whatever survives.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ui-corefrontend/ui-core work

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions