5.4 KiB
MODIFIED Requirements
Requirement: MCP вики
sdlc-hub mcp wiki [--project <метка>] SHALL запускать по stdio MCP-сервер модуля wiki с именем sdlc-wiki,
ходящий в HTTP API хаба клиентским токеном; хаб недоступен — каждый инструмент отвечает «хаб не запущен: sdlc-hub serve».
Привязка к проекту проверяется так же, как у сервера jira («Привязка сессии к проекту»). Инструменты:
| Инструмент | Параметры | Ответ |
|---|---|---|
projects |
— | таблица: метка, название, корень вики, страниц, последняя синхронизация; текущий проект отмечен |
project_create |
label, name, wiki_root (необязательно) |
POST /projects с автором claude; проект и фрагмент .mcp.json с записью sdlc-wiki |
root_set |
root |
PATCH /projects/<текущий> {wiki_root}; новый корень и id пакета синхронизации |
tree |
code (необязательно), depth (по умолчанию 2) |
дерево от корня или от code: отступ, код, название, размер |
page |
code или title, offset (по умолчанию 0) |
шапка (код, путь в дереве, адрес в Eva, дата синхронизации, вложения с id) и Markdown с offset до 20 000 символов, в конце — «продолжение: offset=», если текст длиннее; title ищется точно, иначе — до 10 кандидатов с кодами |
search |
query, limit (по умолчанию 10) |
страницы: код, название, путь, фрагмент |
attachment |
id |
ставит скачивание, ждёт до 60 с; готово — путь к копии downloads/wiki-<id>/<имя>; иначе состояние и подсказка повторить |
sync |
wait (по умолчанию false) |
ставит синхронизацию (или сообщает о текущей) и id пакета; с wait — ждёт до 300 с и отдаёт итог |
status |
— | корень, последняя синхронизация, ошибка, пакет в работе, агент wiki: онлайн/офлайн, версия, публикация, обновление, запускатель (как agent_status сервера jira) |
Инструменты, кроме projects и project_create, SHALL требовать привязки к проекту. В привязанной сессии без корня
(кроме root_set, status) ответ SHALL быть «у проекта <метка> нет корня вики: root_set DOC-…»; с корнем, но без
синхронизаций — «вики проекта ещё не синхронизирована: sync». Набор инструментов и их описания у сервера sdlc-jira
(модуль jira) SHALL остаться прежним.
Значения из Eva, которые инструменты выводят внутри строки ответа (названия страниц и корня, путь, имя вложения,
фрагмент поиска, кандидаты page по названию), SHALL выводиться одной строкой: переводы строк (\r, \n) и пробелы
вокруг них заменяются одним пробелом. Тело страницы (Markdown после шапки page) выводится как есть.
Scenario: Поиск из сессии awp-ca
- WHEN сервер запущен с
--project AWPCA, копия синхронизирована, вызванsearch {query: "статус согласован"} - THEN ответ — страницы с кодами и фрагментами; запрос в хаб —
GET /wiki/search?project=AWPCA&q=…
Scenario: Длинная страница
- WHEN
page {code: DOC-3}, Markdown 45 000 символов - THEN первые 20 000 символов и «продолжение: offset=20000»;
page {code: DOC-3, offset: 40000}— остаток без строки продолжения
Scenario: Корня нет
- WHEN сессия
sfm_kedrбез корня, вызванtree - THEN ответ «у проекта sfm_kedr нет корня вики: root_set DOC-…», запроса
GET /wiki/treeнет
Scenario: Сервер jira не изменился
- WHEN запущен
sdlc-hub mcp jira --project AWPCA - THEN имя сервера
sdlc-jira, список инструментов и описания совпадают с эталоном до change
Scenario: Перевод строки в названии страницы
- WHEN у DOC-3 название «Статусы\nпуть: поддельный», вызван
page {code: DOC-3} - THEN первая строка ответа — «DOC-3 — Статусы путь: поддельный», строка «путь:» в шапке одна — настоящая