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

Generation engine

Updated

The generation engine converts the decisions you made in the import wizard into real vault structure: folders, notes, frontmatter, links, and (where the shapes call for it) parent-child links and hub notes.

Hierarchy columns define the folder tree. For a file with columns mapped as:

  • Level 1: Control Family
  • Level 2: Control ID

The engine creates:

Ontologies/
├── Access Control (AC)/
│   ├── AC-1.md
│   ├── AC-2.md
│   └── ...
├── Audit (AU)/
│   └── ...

Each leaf in the hierarchy becomes a markdown note with:

All frontmatter-mapped columns become properties:

---
control_id: AC-2
control_name: Account Management
family: Access Control
_crosswalker:
  source: nist-800-53.csv
  imported: 2026-04-02T12:00:00Z
  config: my-nist-config
---

Body-mapped columns are inserted as markdown text below the frontmatter.

Link-mapped columns generate WikiLinks. Multiple values (comma-separated) create multiple links.

Beyond the note-by-note conversion above, an import built through the live mapping workbench or a built-in configuration can also come out already connected:

  • Children lists — when your data has a clear parent/child id relationship, a parent note gets a managed children property listing its child notes. Re-importing keeps this list current without touching anything else you’ve written on the note.
  • Hub notes — a column with a handful of shared values (a category, a tactic, a domain) gets its own note per value, listing every note that carries it. Content you write below the hub note’s heading survives a re-import; only the list itself is managed.

This is currently limited to the live mapping workbench and built-in-configuration paths — the classic Step 2 column table doesn’t produce children lists or hub notes yet. The review screen shows a link count before you generate, so a disconnected import is visible up front either way.

Frontmatter keys are transformed based on your naming style setting:

StyleInputOutput
As-isControl NameControl Name
LowercaseControl Namecontrol name
Snake caseControl Namecontrol_name
Camel caseControl NamecontrolName
Kebab caseControl Namecontrol-name

Every generated note includes _crosswalker metadata so you can:

  • Identify which import created the note
  • Re-import without duplicating
  • Track import history
  • Import wizard — the mapping decisions that drive everything on this page, including the shape workbench that unlocks connected output
  • Config system — saving and reapplying the mappings that feed generation
  • Hierarchy primitives — the underlying vault shapes (folders, headings, tags, links, properties) generation writes into