Кодинг
February 14

Opskarta — карта проекта

Меня давно мучило, что план крупного проекта расползается между трекерами задач, табличками, бесконечными диаграммами (у каждого руководителя — обязательно собственными) и моей головой. В итоге вместо одной “карты” получается куча источников, и сложно ответить на базовые вопросы вроде "что блокирует что", "где критические этапы", "что вообще ещё нужно делать дальше". Я решил сделать собственный формат (да, ещё один, ха-за), который эту проблему убирает (для меня). А также этот формат великолепно подходит для ведения ИИ-агентов по сложному проекту.

Opskarta — это открытый YAML/JSON‑формат для оперативной карты проекта. Вы описываете структуру работ, зависимости и статусы в одном файле, храните его в Git, а затем генерируете любые представления: Gantt, графы, чек‑листы. Причём, что важно именно для меня — структура и иерархия отделены от календарного плана: наконец-то можно планировать ЧТО надо сделать, вместо КОГДА. Всё живёт рядом с кодом и диффится как обычный текст.

Упрощённый пример:

version: 2
meta: { id: demo, title: "Обновление сервиса" }

statuses:
  not_started: { label: "Не начато", color: "#9ca3af" }
  in_progress: { label: "В работе",  color: "#0ea5e9" }

nodes:
  root:
    title: "Обновление"
    kind: summary
    status: in_progress

  prep:
    title: "Подготовка"
    kind: phase
    parent: root
    status: in_progress
    effort: 10

  rollout:
    title: "Раскатка"
    kind: phase
    parent: root
    after: [prep]
    status: not_started
    effort: 5

schedule:
  calendars:
    work:
      excludes: [weekends]
  default_calendar: work

  nodes:
    prep:
      start: "2026-02-01"
      duration: 10d
    rollout:
      duration: 5d

Из такого описания можно получить Gantt‑диаграмму, граф зависимостей или любой другой срез.

Данный формат я описал в виде спецификации и сохранил на гитхабе тут: https://github.com/asukhodko/opskarta.

В репозитории помимо описания формата также даются некоторые готовые утилиты и валидаторы.