← Все посты

Drafta 1.4: обмен знаниями в формате OKF и Ctrl-w в vim

Drafta 1.4 читает и пишет Open Knowledge Format, отдаёт его агентам через MCP, учит vim-режим переключаться между панелями по Ctrl-w и чинит двойные префиксы в быстром поиске.

Заметки в Drafta — это обычные Markdown-файлы, и это всегда было главным плюсом: библиотеку можно открыть в любом редакторе. В 1.4 мы пошли дальше и научили Drafta общему формату обмена знаниями, который понимают и люди, и ИИ-агенты. Заодно в vim-режиме появились переходы между панелями, а быстрый поиск перестал дублировать префиксы.

Что такое OKF

Open Knowledge Format (OKF) — открытый формат Google Cloud для обмена знаниями между людьми и агентами. Его версия 0.2 описывает набор правил на одну страницу:

  • бандл — каталог с Markdown-файлами;
  • каждая концепция (таблица, метрика, регламент, API) — один файл, путь файла служит её идентификатором;
  • в начале файла YAML-блок, из обязательных полей только type; рекомендованы title, description, resource и tags;
  • файлы index.md в каталогах перечисляют содержимое, log.md хранит историю изменений;
  • ссылки между концепциями — обычные Markdown-ссылки, а чужие ключи в YAML читатель обязан сохранять.

Никакой платформы и SDK для этого не нужно. Если файл можно открыть cat, его можно прочитать.

Экспорт и импорт в Drafta

В меню File появились два пункта: Export as OKF Bundle… и Import OKF Bundle….

Экспорт берёт блокнот или всю библиотеку и записывает бандл в папку или в .zip:

  • блокноты становятся каталогами, а заметки — файлами-концепциями с type, title, description и tags;
  • в каждом каталоге есть index.md, а в корне бандла он ещё и объявляет версию okf_version: "0.2";
  • вики-ссылки [[Заметка]] превращаются в обычные ссылки на путь внутри бандла, вложения лежат в references/;
  • заметки из корзины в бандл не попадают;
  • статус заметки (active, onHold…) пишется в расширяющий ключ drafta_status, потому что поле status в OKF означает другое: draft, stable или deprecated.

Импорт принимает папку или .zip с бандлом, в том числе чужим, например примеры Google на данных GA4:

  • каталоги становятся блокнотами, ссылки между концепциями превращаются обратно в вики-ссылки;
  • ключи, которых Drafta не знает, например вложенные generated, sources и verified, сохраняются в заметке дословно и возвращаются при следующем экспорте;
  • заметка, которая уже есть в библиотеке, пропускается и не перезаписывается, а итоговое окно перечисляет всё пропущенное с причинами;
  • файлы без поля type пропускаются: по спецификации это не концепции.

OKF для агентов: MCP

Тот же формат доступен через MCP-сервер drafta-mcp, который ставится вместе с приложением и подключается к Claude Code и другим клиентам:

  • export_okf записывает бандл в указанную пустую папку, можно ограничиться одним блокнотом;
  • import_okf читает бандл из папки и создаёт заметки, пропуская те, что уже есть; заметки из корня бандла попадают во «Входящие»;
  • read_note с параметром format: "okf" отдаёт заметку как OKF-концепцию, с типом, тегами и ссылками как путями.

Агент получает вашу библиотеку в виде, который описан открытой спецификацией, а не в формате приложения. Экспорт зависит от лицензии так же, как экспорт в приложении, а импорт не работает в режиме «только просмотр».

Vim: переходы между панелями

В Normal-режиме работает цепочка Ctrl-w h и Ctrl-w l, как переключение окон в vim:

  • Ctrl-w h переводит фокус из редактора к списку заметок, ещё один раз влево — к сайдбару;
  • Ctrl-w l двигает фокус обратно вправо;
  • в панели j и k (или стрелки) двигают выбор, Return открывает: в списке заметок открывается заметка, а фокус возвращается в редактор, в сайдбаре фокус переходит к списку заметок;
  • Esc возвращает фокус к редактору.

Клавиши читаются по физическому положению, поэтому на русской раскладке цепочка работает без переключения, как и остальной Normal-режим. Активная панель подсвечена рамкой. Переход включается только вместе с vim-режимом, а сочетания с ⌘ и ⌥ работают как раньше.

Пока есть ограничения: в сайдбаре j и k ходят по всем строкам, включая свёрнутые блокноты и теги, а входить в панели можно только когда открыта заметка.

Быстрый поиск без двойных префиксов

В быстром поиске по ⌘P префиксы режимов (> для команд, # для тегов, b для блокнотов, t для тегов) раньше оставались в строке, пока режим уже был включён. Из-за этого > появлялся дважды, а удаление лишнего символа выключало режим целиком. Теперь:

  • префикс включает режим и пропадает из строки, а режим показан значком и пометкой;
  • удаление текста режим не выключает, из него выходит Backspace на пустой строке;
  • Tab превращает одиночную b или t в режим поиска по блокнотам или тегам.

Как обновиться

Drafta предложит обновление сама, а если нет, скачайте сборку с drafta.org. Приложение подписано сертификатом Apple Development, без нотаризации, поэтому при первом запуске его нужно разрешить в System Settings → Privacy & Security → Open Anyway.

Если вы работаете с агентами и храните знания в Drafta, попробуйте выгрузить блокнот в OKF и открыть бандл в другом инструменте. Если найдёте расхождение со спецификацией, напишите, мы исправим.