2. Concept Types

OKF の概念型(concept)の書き方

Concept 型の書き方

OKF は「1 概念 = 1 ファイル」です。各 .qmd の先頭に YAML frontmatter(type は必須)を置きます。

共通フィールド:

  • type(必須): 概念の種別
  • title / description: 表示名 / 一言要約
  • resource: 対象リソースの URI
  • tags: タグ
  • generated: 生成者と日時 { by, at }
  • verified: 検証イベント by / at
  • status: draft | stable | deprecated
  • stale_after: 鮮度切れ日
  • sources: 出所の一覧(id / resource / title / 信頼シグナル)

型の拡張

型は tools/okf-types.json の type レジストリで管理しています。 ここが単一の source of truth です。エントリを 1 つ追加し、スキーマを再生成すれば、 frontmatter の検証・サイト描画・抽出規約が追随します。

{
  "MyNewType": {
    "description": "新しい概念型の説明",
    "frontmatter": ["resource", "tags"],
    "headings": ["Summary", "Examples"],
    "icon": "note"
  }
}

型を追加/変更したら、レジストリから Quarto フィルタのスキーマを再生成します。

node tools/gen-schema.mjs        # _extensions/okf/okf-meta.lua のスキーマを更新
node tools/gen-schema.mjs --check # (CI で使用) 差分があると終了コード 1
  • frontmatter … その型に必須のフィールド(共通の type / status / generated / verified / stale_after は常に付与)
  • headings … 推奨見出し規約(見出しベースの DOM 抽出を安定させる)

共通フィールド

共通必須:

  • type(必須): 概念の種別
  • status: draft | stable | deprecated
  • generated: 生成者と日時 { by, at }
  • verified: 検証イベント by / at
  • stale_after: 鮮度切れ日

任意(型共通):

  • title / description / resource / tags
  • sources: 出所の一覧(id / resource / title)

見出し規約

型ごとに固定した見出し(tools/okf-types.jsonheadings)を使うことで、 Playwright による DOM 抽出(見出しベースのセクション走査)が安定します。