Eugen Ullrich / OKF Hub
/spec/frontmatter-schema/

Frontmatter-Schema und Syntax

Der Frontmatter ist der YAML-Block ganz oben in einem Konzept, oben und unten durch --- begrenzt. Er trägt die Felder, auf die Filter, Suche, Graph und Retrieval zugreifen. Alles darunter ist der Body – das eigentliche Wissen in Markdown.

Die Logik ist bewusst asymmetrisch: strukturierte Felder für das Wenige, das Sie abfragen oder filtern wollen; freier Markdown für die Prosa, die Mensch und Modell lesen. OKF v0.2 teilt die Felder in drei Gruppen – Kern, Einordnung, Vertrauen.

Alle Felder auf einen Blick

Feld / FieldGruppe / GroupStatusBedeutung / Meaning
typeKern / corePflicht / requiredArt des Konzepts. Steuert Routing, Filter, Darstellung. / Kind of concept. Drives routing, filtering, presentation.
titleKern / coreempfohlenLesbarer Anzeigename. / Human-readable display name.
descriptionKern / coreempfohlenEin Satz, der das Konzept zusammenfasst; für Suche und Retrieval hoch gewichtet. / One sentence summarizing the concept; weighted highly in search and retrieval.
resourceEinordnung / classificationempfohlenKanonischer URI der Originalquelle. / Canonical URI of the original source.
domainEinordnung / classificationempfohlenHerkunft, z. B. example.com. / Origin, e.g. example.com.
categoryEinordnung / classificationempfohlenPrimärer Themenbereich; erzeugt den Kategorie-Knoten im Graphen. / Primary topic area; creates the category hub in the graph.
tagsEinordnung / classificationempfohlenListe kurzer Strings; gemeinsame Tags erzeugen Ähnlichkeitskanten. / List of short strings; shared tags create similarity edges.
word_countEinordnung / classificationempfohlenWortzahl; für Lesezeit und Sortierung. / Word count; for reading time and sorting.
generatedVertrauen / trustv0.2Herkunft: by und at. / Provenance: by and at.
verifiedVertrauen / trustv0.2Liste von Prüfungen, je by und at. / List of reviews, each by and at.
statusVertrauen / trustv0.2Lebenszyklus: stable, draft, deprecated. / Lifecycle: stable, draft, deprecated.
stale_afterVertrauen / trustv0.2ISO-Datum, ab dem Prüfung fällig ist. / ISO date after which re-check is due.
sourcesVertrauen / trustv0.2Liste externer Belegquellen. / List of external supporting sources.

Verbindlich ist einzig type. Alles andere verbessert Qualität und Belastbarkeit, entscheidet aber nicht über die Gültigkeit. Fehlt ein Feld beim Upload, füllt der Hub es mit einem generischen Standard: type wird zu Article, domain zu user-upload, category zu general.

Minimal und vollständig

Das kleinste konforme Konzept trägt nur type:

---
type: "Reference"
---

# HTTP-Statuscodes
…

Das vollständige v0.2-Konzept trägt Kern, Einordnung und Vertrauen:

---
type: "Guide"
title: "Crawl-Budget bei großen Websites"
description: "Wie Google das Crawl-Budget verteilt und woran man Verschwendung erkennt."
resource: "https://example.com/crawl-budget"
domain: "example.com"
category: "technical-seo"
tags: ["crawl-budget", "technical-seo", "indexierung"]
word_count: 1200
generated:
  by: "human:editor"
  at: "2026-07-29T20:40:00.000Z"
verified:
  - by: "human:editor"
    at: "2026-07-29T20:40:00.000Z"
status: "stable"
stale_after: "2027-07-29"
sources:
  - "https://example.com/crawl-budget"
---

# Was Crawl-Budget bedeutet
…

Die Kernfelder

type ist der einzige Pflichtwert: ein kurzer, selbsterklärender String. Die Pipeline dieses Projekts vergibt vier Werte automatisch – Guide, Tool, CaseStudy, Article – je nach Titel und URL. Sie sind nicht zentral registriert; wählen Sie beschreibend und bleiben Sie im Bundle konsistent.

title ist der sichtbare Name. description ist der eine Satz, der das Konzept auch ohne Volltext verständlich macht. Schreiben Sie ihn eigenständig: nicht „Über Crawl-Budget", sondern „Wie Google das Crawl-Budget verteilt und woran man Verschwendung erkennt." Suche und Retrieval gewichten Titel und Beschreibung deutlich höher als den Body – im Hub konkret sechs- beziehungsweise vierfach gegenüber dem Fließtext.

Die Einordnungsfelder

resource nennt den kanonischen URI der Quelle, domain die Herkunft. category ist die primäre Zuordnung und erzeugt den Kategorie-Knoten im Graphen; tags sind zusätzliche Querschnittsmerkmale, und gemeinsame Tags erzeugen die Ähnlichkeitskanten zwischen Konzepten. Halten Sie die Schreibweise stabil: geo und GEO sind für den Rechner zwei Tags. word_count speist Lesezeit und Sortierung.

Tags akzeptiert das Format inline oder als Block – beides gleichwertig:

tags: ["crawl-budget", "technical-seo"]
tags:
  - crawl-budget
  - technical-seo

Die Vertrauensfelder – das Herz von v0.2

Diese fünf Felder unterscheiden ein portables Bundle von einem belastbaren.

generated hält fest, wer oder was das Konzept erzeugt hat, mit Zeitstempel:

generated:
  by: "human:editor"       # oder "agent:okf-pipeline"
  at: "2026-07-29T20:40:00.000Z"

verified ist eine Liste – ein Konzept kann mehrfach geprüft worden sein. Im Reader des Hub schreibt „Als verifiziert markieren" genau einen solchen Eintrag mit Ihrem Profil, etwa human:eugen. Das ist eine Selbstauskunft innerhalb Ihrer Wissensbasis, keine externe Zertifizierung und kein Beweis sachlicher Richtigkeit.

verified:
  - by: "human:eugen"
    at: "2026-07-29T20:40:00.000Z"

status trägt den Lebenszyklus (stable, draft, deprecated). stale_after setzt ein ISO-Datum, ab dem das Konzept überprüfungsbedürftig wird – Aktualität als Feld, nicht als Vermutung. sources listet die externen Belege, auf denen das Konzept beruht.

status: "stable"
stale_after: "2027-07-29"
sources:
  - "https://example.com/crawl-budget"

Eigene Felder

Produzenten dürfen beliebige weitere Schlüssel setzen; Konsumenten sollen sie erhalten und nicht ablehnen. Genau so sind domain, category und word_count als Profil-Erweiterungen über die offene Basis hinaus entstanden. Ein Bundle mit Zusatzfeldern bleibt für jeden anderen OKF-Konsumenten voll lesbar.

YAML-Syntax: die häufigen Stolpersteine

  • Nur Leerzeichen einrücken, nie Tabs. Ein Tab macht den Block unparsebar – und ein unparsebarer Block ist nicht konform. / Indent with spaces only, never tabs. A tab makes the block unparseable – and an unparseable block is not conformant.
  • Werte mit Doppelpunkt in Anführungszeichen. description: "Umsatz: brutto vs. netto". / Quote values containing a colon.
  • Verschachtelte Felder korrekt einrücken. generated und verified haben Unterschlüssel; die Einrückung entscheidet über die Struktur. / Indent nested fields correctly. generated and verified have sub-keys; indentation decides the structure.
  • Die abschließende ----Zeile nicht vergessen. / Don't forget the closing --- line.

Weiter im Thema

Die Regelbasis steht in der OKF-v0.2-Spezifikation. Der Schnellstart baut aus diesen Feldern ein Bundle, die Prompt-Vorlagen lassen ein Modell den Frontmatter erzeugen, und die Validator-Seite prüft ihn.


Feldsemantik nach der OKF-v0.2-Pipeline dieses Projekts (transform_to_okf.py) und dem Basis-Draft OKF SPEC.md. / Field semantics per this project's OKF v0.2 pipeline and the base draft OKF SPEC.md.