Перейти к основному содержимому

Инструменты (Tools)

MCP-сервер предоставляет инструменты, которые AI может вызывать для выполнения задач. Их удобно сгруппировать по шагам работы над формой.

ШагИнструменты
Понять, какой API братьchoose_api (требование своими словами → оператор), get_context (контекст для шага сборки)
Найти справкуget_symbol_docs, list_symbols, find_recipe, search_docs
Собрать формуplan_form (спека → FormIntent), generate_form (FormIntent → файлы формы)
Проверитьvalidate_form: kind = code, json-schema, behaviors, bundle, layout
Сообщить о проблемеreport_issue

Роль каждого инструмента — в Обзоре. Подробно ниже — validate_form и report_issue.

validate_form​

Проверка формы до запуска. Возвращает диагностики RF0xx со строкой, подсказкой «что сделать» и следующим вызовом.

kindЧто проверяет
codeTypeScript формы: неизвестные или не оттуда импортированные символы @reformer, операторы вне своей схемы, удалённый API
json-schemaдокумент схемы renderer-json
behaviorsциклы вычислений — по списку { target, reads[] }
bundleFormIntent и схема целиком, сверенные друг с другом
layoutимена файлов модуля формы против канонического набора (form.schema.ts, form.behavior.ts, form.validation.ts, …)

report_issue​

Отправка отчёта об ошибке и её решении для сбора обратной связи.

Параметры:

ПараметрТипОбязательныйОписание
errorstringДаОписание ошибки или проблемы
solutionstringДаРешение или исправление
tagsstring[]НетТеги для категоризации и аналитики
contextobjectНетДополнительный контекст (см. ниже)

Структура context:

ПолеТипОписание
examplesarrayПримеры кода с описанием
examples[].descriptionstringОписание примера
examples[].codestringКод примера
relatedFilesstring[]Пути к связанным файлам
notesstringДополнительные заметки

Рекомендуемые теги:

ФорматПримерОписание
category:<type>category:behavior, category:validationКатегория: schema, validation, behavior, react, types, other
agent:<name>agent:claude, agent:cursorИмя AI-агента
severity:<level>severity:critical, severity:minorКритичность проблемы

Что возвращает:

Подтверждение успешной записи отчёта.

Как это работает:

  1. AI находит ошибку при работе с ReFormer
  2. AI решает проблему
  3. AI вызывает report_issue с описанием ошибки и решения
  4. Отчёт сохраняется локально отдельным файлом — <корень проекта>/.reformer/issue_reports/<timestamp>-<slug>.json

Каталог переопределяется переменной окружения REFORMER_ISSUE_REPORTS_DIR (относительный путь резолвится от рабочего каталога сервера). Корнем проекта считается ближайший вверх от cwd package.json с зависимостями; если такого нет — отчёты кладутся прямо в cwd. Точный путь сервер возвращает в ответе.

Пример использования AI:

AI обнаружил ошибку: "Cycle detected in computeFrom"
AI определил причину: effect зависит от target поля
AI вызывает report_issue:
- error: "Infinite loop in computeFrom when effect depends on target"
- solution: "Use peek() instead of .value to read target without dependency"
- tags: ["category:behavior", "agent:claude", "severity:critical"]
- context:
examples:
- description: "Неправильно - создаёт зависимость"
code: "const current = targetNode.value.value;"
- description: "Правильно - без зависимости"
code: "const current = targetNode.value.peek();"
relatedFiles: ["packages/reformer/src/core/behavior/behaviors/compute-from.ts"]

Формат хранения (JSON):

Один отчёт — один файл, отформатированный с отступами:

{
"timestamp": "2026-01-15T10:30:00.000Z",
"error": "...",
"solution": "...",
"tags": ["category:behavior"],
"context": { "examples": [], "notes": "..." }
}

Имя файла складывается из отметки времени и короткого слага ошибки. Если два отчёта попадают на одну миллисекунду, к имени добавляется суффикс -2, -3, … — существующий файл никогда не перезаписывается.

Зачем нужен сбор обратной связи?​

Отчёты об ошибках помогают:

  • Выявлять типичные проблемы пользователей
  • Улучшать документацию
  • Находить баги в библиотеке
  • Понимать, какие паттерны вызывают затруднения

Все данные хранятся локально на вашем компьютере.