Andrey Epifancev 29cd569157 chore(openspec): архив hub-modules (#87)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 23:42:27 +04:00

2.5 KiB
Raw Blame History

modules Specification

Purpose

TBD - created by archiving change hub-modules. Update Purpose after archive.

Requirements

Requirement: Ядро и модули хаба

Хаб SHALL состоять из ядра и подключаемых модулей. Ядро SHALL владеть базой и миграциями, настройками хаба, проектами (метка, название), хранилищем файлов, реле общей папки, релизом агента, очередью пакетов команд, HTTP-сервером с авторизацией, раздачей веб-приложения и общим слоем MCP. Модуль SHALL подключаться к ядру описанием: таблицы, типы команд и их обработчики в очереди, маршруты HTTP, ключи настроек, фоновые работы, инструменты MCP, подкоманды CLI. Первый модуль — jira (зеркало задач, журнал изменений, вложения, команды Jira). Ядро MUST NOT импортировать модули, кроме списка подключённых модулей и истории миграций схемы.

При старте хаб SHALL проверять, что типы команд, ключи настроек и маршруты (метод и шаблон адреса) ядра и модулей не пересекаются; пересечение — ошибка старта с указанием конфликта.

Схема базы SHALL оставаться одной, с одной версией setting.schema_version на весь хаб; таблицы модуля входят в неё.

Scenario: Конфликт типов команд

  • WHEN два подключённых модуля объявляют тип команды refresh
  • THEN хаб не стартует, ошибка называет тип и оба модуля

Scenario: Поведение без изменений

  • WHEN хаб после перестройки стартует на базе v6 с агентом v14
  • THEN схема остаётся v6, копия базы не создаётся; адреса API, веба, ответы и инструменты MCP — прежние; агент берёт команды и отчитывается как раньше