Перейти к содержанию

srekit

srekit — генератор текстовых артефактов SRE: постмортемы, runbook'и, SLO, RFC, changelog

srekit — это CLI для генерации текстовых артефактов, с которыми SRE работают каждый день: investigation log'ов, постмортемов, runbook'ов, RFC, отчётов дежурного, SLO, политик бюджета ошибок и changelog'ов.

Шаблон здесь — не Markdown-файл. Это v1 YAML-артефакт (postmortem.yaml, slo.yaml, …), который декларирует frontmatter, H1, meta-буллеты и список типизированных секций; Markdown srekit собирает уже из этой декларации. Комплект, который идёт в поставке, вкомпилирован в бинарник — свежая установка рендерит всё без файлов на диске и без сети. Директория с твоими собственными артефактами, лежащая под твоим git-remote'ом, переопределяет его пофайлово: то, что ты не переопределил, прозрачно берётся из встроенного набора.


Зачем srekit

SRE-работа порождает массу структурированных документов, которые на 80 % читаются одинаково и различаются только в 20 % сути. Писать их с нуля — терять время и стабильно забывать секции, которые потом хотелось бы иметь. Генератор с готовыми шаблонами, прошедшими ревью, убирает шаблонщину и оставляет внимание на сам инцидент, RFC или постмортем.

Что внутри

  • 8 команд-генераторовtask, postmortem, rfc, runbook, changelog, oncall-report, slo, ebp.
  • Шаблоны как контракт — каждый артефакт билингвальный (русские заголовки + английские технические термины), вкомпилирован в бинарник и переопределяется кастомной директорией под твоим git-remote'ом.
  • Не только скаффолд changelog'аchangelog release вырезает версию из [Unreleased], changelog validate линтит существующий CHANGELOG.md против Keep a Changelog.
  • Полный жизненный цикл шаблоновtemplates init / pull / list / validate / diff / upgrade / migrate, с настоящим 3-way merge на upgrade.
  • JSON-вывод — каждый генератор поддерживает --json для пайплайнов в jq и другие тулзы.
  • Диагностика окружения на чтениеsrekit doctor показывает, какой конфиг читается на самом деле, куда резолвится templates dir и парсятся ли ещё твои артефакты.
  • Детерминирован — никаких сетевых вызовов вообще, никакого скрытого состояния. Автор / email / репо резолвятся из локального конфига и git.

Как выглядит

# Сгенерить постмортем с сегодняшней датой и автором из git
srekit postmortem --title "API outage" --severity SEV-1 \
  --start 2026-05-06T08:00Z --end 2026-05-06T09:30Z \
  --owner "@oncall" --out postmortem-2026-05-06.md

# Пайп генератора в jq для скриптов
srekit task --title "Tail latency on api-gw" --json | jq -r '.meta.id'

# Управление кастомными шаблонами
srekit templates init     # сделать свою копию
srekit templates list     # посмотреть что переопределено
srekit templates upgrade  # 3-way merge новых встроенных изменений

Дальше

  • Старт — установка, первая команда, первый конфиг.
  • Обзор команд — полная поверхность CLI.
  • Кастомные шаблоны — храни свои шаблоны под git и забирай upstream-изменения через 3-way merge.
  • jtprogru/sre-templates — готовый репозиторий шаблонов ровно в той раскладке, которую ждёт srekit; склонируй его, нацель srekit на него или форкни как отправную точку.
  • Рецепты — практические пайплайны (jq, on-call ротация, CI).