Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

UI lexicon

Updated

Crosswalker’s terminology page defines the KB’s general-ontology vocabulary (concept, ontology, recipe, crosswalk, facet, hub…). That vocabulary is deliberately domain-neutral so the docs and internals read correctly for any structured source, not just compliance frameworks. But two rules constrain what the plugin UI — Notices, setName/setDesc, button labels, placeholders — is allowed to say:

  1. Plain language, GRC-first. User-facing surfaces (README, settings, wizard, modals) never expose internal architecture vocabulary — STRM, SSSOM, Tier 2, sqlite-wasm, curie, and similar terms alienate evaluators who are not plugin architects. See feedback_readme_user_facing_surfaces.
  2. General-ontology words stay in docs/KB/internals. “Ontology,” “concept,” and “framework mapping” read fine in the KB; the shipped UI should read in plain English a GRC practitioner already knows. See feedback_general_ontology_positioning.

Neither rule says “never use a KB term” — it says translate deliberately, and translate the same KB term to the same UI word everywhere it shows up. This page is that mapping. It exists because one KB word — recipe — and the UI word configuration turned out to blur several artifacts with different authority. A portable ImportRecipe, a legacy source-bound SavedConfig, a shape preset, and a query template are not interchangeable. The artifact roles and authority model supplies the boundary; this page supplies the screen copy.

The recipe/configuration collision (why this page exists)

Section titled “The recipe/configuration collision (why this page exists)”
#What it actually isAuthorityPublic/UI direction
1ImportRecipe: a machine-evaluable declarative specification for shaping an importPortable canonical artifact, preserved by RecipeDocument.originalReusable configuration is the current placeholder; the final term still needs UX testing
2SavedConfig: legacy source-bound convenience state from a prior importFingerprint-bound setup, not an ImportRecipeSaved setup
3A bundled, team-vetted ImportRecipe for a known sourceBuilt-in portable defaultBuilt-in configuration
4ShapePreset: a recipe template/default policy instantiated against detected source structureDefaulting template, not the canonical recipe or saved setupPreset
5A Layer-C query composition that becomes a .base file once appliedReusable query templateQuery template

The lexicon below keeps these roles distinct while leaving the final public name for ImportRecipe open to evidence from UX testing.

Internal / KB termUser-facing termDefinition (≤7 words)Where used
ImportRecipeReusable configuration (placeholder)Portable rules for shaping an importFuture recipe library/share surfaces; final term remains subject to UX testing
Bundled ImportRecipe (RecipeRegistryEntry, recognized-source fast path)Built-in configurationReady-made rules for a known sourcerecipe-registry.ts, import-wizard.ts recognized-source card
Legacy SavedConfigSaved setupSource-bound settings from a prior importconfig-manager.ts, config-browser-modal.ts, settings-tab.ts
User-saved SavedConfig provenanceYours (badge) / your saved setup (prose)Your source-bound setup from a prior importview-model.ts provenance, config-browser-modal.ts
ShapePreset (mapping/presets.ts)PresetA default policy for choosing note shapesworkbench.ts preset bar
Legacy “saved mapping” phraseSaved setupOlder name for SavedConfig convenience stateHistorical specs/logs only
Query recipe / Layer C recipe (pivot/table/list/cards composition)Query templateA starting pattern you fill in and applyrecipe-picker-modal.ts, recipe-loader.ts, recipe-templates.ts
Materialized query instance (frontmatter + generated .base file)QueryA saved, filterable view of your vaultbrowse-queries-modal.ts, embed-existing-query-modal.ts, command palette
SSSOM mapping fileCrosswalk mapping fileA file listing how two frameworks’ items relatesssom-import-modal.ts, main.ts command (fix-list)
CrosswalkCrosswalk (no change — already plain)A link showing two framework items correspondcrosswalker-pivot-view.ts, docs
Tier 2 / sqlite-wasm sidecar projectionFast query indexA background cache that speeds up big-vault queriessettings-tab.ts (correct), main.ts command (applied 2026-08-28: the palette now reads “Maintenance: reset search data”)
Ontology (as a plugin-home noun, e.g. “installed ontologies”)Framework (or the specific source name)The structured source you importedworkspace-view.ts (applied 2026-08-28: the heading now reads “Installed frameworks” and the status bar counts frameworks)
WizardDraftDraftYour in-progress import, saved to resume laterdraft-store.ts, import-wizard.ts
Structural DetectionWhat we found / detected shapeThe plugin’s evidence-backed guess at your data’s shapeworkbench.ts, import-wizard.ts
Six-primitive Destination (folder/name/tag/heading/link/property)ShapeOne of six ways your data can live in the vaultworkbench.ts shape cards
ConceptIdentity / CURIE(not surfaced — stays internal)Stable id for one concept across the vaultrender engine only
  • Sentence case on every UI string (Obsidian community-plugin lint requirement).
  • No em dashes in plugin UI copy — periods, colons, or commas instead (feedback_no_em_dashes_in_ui).
  • One artifact, one name, everywhere it appears. If a screen calls it a “configuration,” no sibling screen may call the same thing a “recipe,” “mapping,” or “preset.”
  • Preset ≠ reusable configuration ≠ saved setup ≠ built-in configuration. A preset is a recipe template/default policy; a reusable configuration is a portable ImportRecipe; a saved setup is legacy source-bound SavedConfig state; a built-in configuration is a vetted default. Badges (Built-in / Yours / Custom (based on X)) and prose must preserve those distinctions.
  • “Reusable configuration” is provisional. Keep it as the public placeholder for ImportRecipe, but UX-test the final term before locking it across the product.
  • Query template ≠ query. A template is what you pick and configure; a query is what exists in your vault after you apply one. browse-queries-modal.ts and embed-existing-query-modal.ts already get this right — the picker (recipe-picker-modal.ts) has been brought into line.
  • KB-internal acronyms (STRM, SSSOM, Tier 0/1/2, curie) never appear unglossed in UI strings. When a command must reference one for disambiguation, prefer the plain description (“crosswalk mapping file,” “fast query index”) over the acronym.

This pass (2026-07-11, feat/render-report) directly edited the artifact’s editable surface — src/config/**, src/views/recipe-picker-modal.ts, src/views/crosswalker-pivot-view.ts, src/import/draft-store.ts — for the renames above that were self-contained. Renames that require touching import-wizard.ts, workbench.ts, main.ts, settings-tab.ts, or workspace-view.ts are listed as a fix list handed to those files’ owners (see the delivery/session log for this pass), since those files are out of this pass’s editable surface.

  • Artifact roles and authority — canonical, editable, template, serialization, carrier, and package boundaries
  • Terminology — the full KB glossary this page maps from
  • What makes Crosswalker unique
  • Shape-first wizard spec: .workspace/2026-07-05-shape-first-wizard-spec.md §3c½ (preset vs. saved mapping) — the spec-level source for the preset/config distinction this page locks into UI copy
  • Memories: feedback_readme_user_facing_surfaces, feedback_general_ontology_positioning, feedback_no_em_dashes_in_ui