Исторический документ из исходной ревизии
61e75e9. Этот план реализации сохранён для справки и не является актуальной инструкцией по реализации. Исходный документ.
okf для OKF v0.2Сделать все интерфейсы чтения и записи CLI учитывающими версию, показывать сигналы v0.2 и
подключить единый планировщик миграции без доменной логики в main.go.
Зависимости: task09.md–task15.md.
Оставить cmd/okf/main.go точкой запуска. Вынести координацию команд в
internal/okfcli:
validate/info/parse/fmt/index/graph/migrate;Разрешение версии, доверие, устаревание, происхождение, граф и миграция обеспечиваются доменными пакетами. CLI не обходит сырой YAML.
Для команд, работающих с набором:
--spec auto|0.1|0.2
Значение по умолчанию — auto; разрешение версии следует task09. Явный селектор,
противоречащий объявленной версии, означает ошибку/несоответствие утверждения, а не незаметное переопределение.
versionТекстовый вывод сообщает версию CLI отдельно от поддерживаемых спецификаций OKF и спецификации по умолчанию.
Добавить --json:
{
"cli_version": "vX.Y.Z",
"okf_spec_default": "0.2",
"okf_spec_supported": ["0.1", "0.2"]
}
validateСохранить существующие флаги и поля вывода, дополнительно добавить:
--as-of YYYY-MM-DD для строгой проверки устаревания;Для v0.2 не должно быть ложных срабатываний по timestamp/Citations.
infoДобавить детерминированные счётчики:
--as-of;parseТипизированное представление в тексте/JSON:
generated/verified/доверие;Одиночная форма verified и список дают одинаковый результат.
fmtОстаётся разбором и канонической сериализацией:
timestamp/Citations;generated/version;-w.indexgraphПередаёт явный профиль проекции и параметры пакету graph; stdout содержит
только выбранные данные графа. Сохраняется прежний --dot.
migrateokf migrate <bundle> --to 0.2
[--from auto|0.1]
[--actor <actor>]
[--write]
[--format text|json]
По умолчанию — пробный запуск без записи. Делегирует планировщику task15 и не выполняет собственных изменений YAML/файлов. Применение использует атомарную фиксацию в хранилище, привязанную к ревизии и дайджесту.
stdout/stderr/код завершения0: успешная команда, соответствие при валидации, корректный пробный запуск/применение.1: несоответствие, блокирующая проблема миграции, ошибка использования/выполнения.stdout.stderr с error:.stderr.0.Все тесты следуют AAA.
timestamp.stdout/stderr при JSON-выводе.fmt v0.2 + неизвестные ключи.--, неизвестные/повторяющиеся/лишние аргументы.info/parse показывают сигналы v0.2.fmt/index не выполняют скрытую миграцию.migrate транзакционна и идемпотентна.main.go не содержит доменной логики.go test ./... и сквозные тесты бинарного файла проходят.Среда исполнения/аттестации, преобразование произвольных SQL/текста с помощью LLM и изменение
пользовательских relations.