Gant Protocol
Формальная спецификация для машиночитаемого представления иерархических проектных структур
Современные системы управления проектами (PMS) страдают от фундаментальной проблемы vendor lock-in на уровне представления данных. Gant Protocol предлагает решение через унифицированное формальное представление проектных артефактов с сохранением полной семантической информации.
Теоретические основы
Gant Protocol базируется на направленном ациклическом графе (DAG) с типизированными рёбрами, где узлы представляют проектные сущности (phases, tasks, subtasks), а рёбра кодируют отношения зависимости, иерархии и семантические связи.
G = (V, E, T, S)
где:
V = {v₁, v₂, ..., vₙ} — множество вершин (проектные сущности)
E ⊆ V × V × R — множество типизированных рёбер
R = {hierarchy, dependency, semantic} — типы отношений
T: V → {planned, in-progress, done, blocked} — функция состояния
S: V → [0, 1] — функция прогресса
Онтология briefing
Каждая вершина графа аннотируется триадой (What, How, Why), формируя самодокументируемую онтологию:
What
Что
Декларативное описание цели задачи без привязки к деталям реализации
How
Как
Методология выполнения: инструменты, подходы, последовательность шагов
Why
Зачем
Бизнес-обоснование: метрики успеха, ценность для проекта, приоритет
Технологический стек
Формат данных
- • YAML для человекочитаемости
- • JSON для API
- • Markdown для документации
Хранение
- • Файловая система (Git-friendly)
- • CRDT для конфликт-резолюции
- • Снапшоты с автоочисткой
Валидация
- • JSON Schema
- • Pydantic (Python)
- • TypeScript типизация
API
- • FastAPI (async)
- • RESTful endpoints
- • WebSocket для real-time
Безопасность
- • Encryption at Rest (AES-256)
- • Audit Log (append-only)
- • JWT авторизация
- • Field-level encryption
Analytics
- • Dashboard с метриками
- • Real-time статистика задач
- • Top contributors tracking
- • Completion rate analytics
Обоснование выбора технологий
Vendor lock-in устранение
YAML/JSON как lingua franca — портируемость между любыми системами без привязки к конкретным инструментам
Git-совместимость
Текстовые форматы позволяют версионирование, diff, merge и code review через стандартные Git-процессы
Человеко-машинная дуальность
YAML читаем людьми для ревью и правок, JSON эффективен для машинной обработки через API
Распределённость
CRDT-семантика гарантирует корректное слияние параллельных изменений без центрального сервера
Type safety
JSON Schema + Pydantic + TypeScript обеспечивают строгую типизацию на всех уровнях стека
Performance
FastAPI (async) + файловое хранилище + снапшоты обеспечивают <50ms latency для типичных операций
Архитектурные принципы
Декларативность
Протокол описывает что должно быть достигнуто, а не как система должна это исполнить
Идемпотентность
Повторное применение спецификации даёт идентичный результат через CRDT-подобную семантику
Композиционность
Сложные проекты формируются композицией атомарных единиц через оператор вложенности
MVC Pattern
Разделение представления и визуализации. Модель независима от UI
Формальная спецификация (YAML Schema)
plan_id: string
timeline:
start_date: date-time
due_date: date-time
phases:
- status: planned | in-progress | done | blocked
progress: 0.0 - 1.0
briefing: "Что/Как/Зачем"
depends_on: [task_ids]
Конечный автомат состояний
Допустимые переходы между состояниями задач строго определены:
planned → in-progress(событие: start_execution)in-progress → done(событие: complete_task)in-progress → blocked(событие: dependency_failed)blocked → in-progress(событие: unblock_dependency)* → planned(событие: reset_to_initial)
Семантические расширения
Temporal Logic для валидации зависимостей
Используя Linear Temporal Logic (LTL), можно формализовать корректность последовательности выполнения:
□(task_A.status = done → ◊task_B.status ≠ blocked)
(Всегда: если задача A завершена, то в будущем задача B не будет заблокирована)
Constraint Satisfaction Problem (CSP)
Расписание проекта представимо как CSP, где:
- • Переменные = {start_time(task) | task ∈ V}
- • Домены = временные интервалы [t_min, t_max]
- • Ограничения = depends_on + deadline + resource_capacity
Решение CSP даёт оптимальное расписание при заданных ограничениях.
Интероперабельность и экосистема
Адаптеры для существующих форматов:
- • MS Project XML → Gant Protocol (структурная конвертация)
- • Jira REST API → Gant Protocol (семантический маппинг)
- • Trello JSON → Gant Protocol (трансформация Kanban → Gantt)
Референсная имплементация (Presynth)
Клиент-серверная архитектура с FastAPI backend и React frontend:
- • Parser Layer: YAML → Abstract Syntax Tree (AST)
- • Validation Layer: JSON Schema + custom semantic rules
- • Rendering Layer: AST → React Flow DAG visualization
- • Persistence Layer: Git-backed version control
Теоретические гарантии
Безопасность типов. Статическая валидация через JSON Schema
Детерминированность. Идентичная спецификация → изоморфные графы
Монотонность прогресса. ∀t₁ < t₂: S(v, t₁) ≤ S(v, t₂)
API контракт
@dataclass
class GantPlan:
plan_id: str
phases: List[Phase]
timeline: Timeline
def validate(self) -> ValidationResult:
"""Проверка инвариантов графа и временных ограничений"""
def compute_critical_path(self) -> List[Task]:
"""Алгоритм поиска критического пути (O(V + E))"""
def serialize(self, format: Format) -> bytes:
"""Сериализация в YAML | JSON | MessagePack"""
Области применения
- • Формальная верификация проектных планов через model checking
- • Автоматическое планирование на основе AI (constraint optimization)
- • Distributed project management с eventual consistency
- • Академические исследования в области project management theory
Техническая документация
API Документация: Интерактивная спецификация доступна на /docs
Автогенерируется FastAPI с полным описанием endpoints
Валидация данных: Pydantic models обеспечивают type safety
Автоматическая проверка на стороне сервера
Для вопросов по интеграции: contact@gorizont.ai