Skip to main content
Glama
Weavatrix

weavatrix-refactor

by Weavatrix

Weavatrix Refactor

CI npm crates.io docs.rs MIT

Явный слой записи исходного кода в экосистеме Weavatrix; Core остаётся доступным только для чтения.

Рефакторинг между файлами без догадок со стороны агента.

Weavatrix Refactor — это нативный MCP-сервер для агентов, пишущих код. Он находит символ через граф репозитория, показывает превью байт-точных правок, сообщает о каждом одноимённом вхождении, которое не смог доказать, и записывает изменения только после явного подтверждения, привязанного к хэшу.

Полезное отличие не в том, что «ИИ умеет переименовывать слово». Оно в том, что агент получает доказательства до записи и восстанавливаемую транзакцию после неё.

Установка

Запустите нативный бинарник через npm:

npx -y weavatrix-refactor mcp /absolute/path/to/repository

Или установите его через Cargo:

cargo install weavatrix-refactor --locked
weavatrix-refactor mcp /absolute/path/to/repository

MCP-клиент может запустить его напрямую:

{
  "mcpServers": {
    "weavatrix-refactor": {
      "command": "weavatrix-refactor",
      "args": ["mcp", "/absolute/path/to/repository"],
      "env": {"WEAVATRIX_ALLOW_SOURCE_EDITS": "1"}
    }
  }
}

Оставьте WEAVATRIX_ALLOW_SOURCE_EDITS неустановленным для сессий только с превью. Превью — это чтение; только подтверждённое применение или откат требует этого флага.

Установка в качестве плагина

Репозиторий также поставляет один пакет плагинов для Cursor, Codex, Claude Code и Grok Build. Плагин запускает профиль только с расширениями, поэтому он добавляет 11 методов Refactor, не повторяя 43 метода чтения Weavatrix Core. Установите отдельный плагин Weavatrix, когда нужны обе поверхности.

Встроенный навык необязателен и активируется только для явно запрошенной работы по рефакторингу. Его точка входа остаётся короткой; у каждого метода есть отдельная справочная карточка, которая загружается только при необходимости.

  • Cursor: найдите Weavatrix Refactor после одобрения в маркетплейсе.

  • Codex: добавьте маркетплейс Weavatrix/weavatrix-refactor из .agents/plugins, затем добавьте weavatrix-refactor@weavatrix-refactor.

  • Claude Code: добавьте тот же маркетплейс репозитория из .claude-plugin, затем установите weavatrix-refactor@weavatrix-refactor.

  • Grok Build: выполните grok plugin marketplace add Weavatrix/weavatrix-refactor, откройте /marketplace и установите его.

Плагин открывает WEAVATRIX_ALLOW_SOURCE_EDITS=1, но каждая запись по-прежнему требует короткоживущий одноразовый токен, привязанный к точному превью и плану.

Для задачи переименования откройте только два инструмента, которые нужны агенту:

weavatrix-refactor mcp /absolute/path/to/repository --profile=rename

Профиль rename сохраняет rename_symbol и rollback_last_apply; все несвязанные инструменты графа и рефакторинга отсутствуют и не могут быть вызваны. Опустите опцию (или используйте --profile=refactor) для всех 11 методов Refactor. Более узкий каталог уменьшает повторяющийся контекст агента; он не ослабляет хэши превью, шлюз записи, токен подтверждения или проверки отката.

Когда Weavatrix Core уже установлен как отдельный MCP, откройте только 11 методов, которые добавляет Refactor:

weavatrix-refactor mcp /absolute/path/to/repository --profile=refactor

Профиль refactor используется по умолчанию для MCP и list-tools, включая плагин маркетплейса. Прежний профиль совместимости full удалён и отклоняется обеими командами: Refactor больше не публикует методы Core. Установите Weavatrix Core как отдельный MCP, если также нужна интеллектуальная работа с репозиторием только для чтения.

Related MCP server: repository-analyzer-mcp

Безопасное переименование между файлами за три вызова

Предположим, два файла объявляют resolveTarget. Голое имя неоднозначно, поэтому сервер отказывается выбирать одно и возвращает точные идентификаторы:

// rename_symbol
{"symbol":"resolveTarget","new_name":"locateTarget","output_format":"json"}

{
  "status": "NOT_FOUND",
  "reason": "the name matches more than one symbol; pass one of the candidate ids",
  "candidates": [
    "symbol:src/core.ts#function:resolveTarget@2:1",
    "symbol:src/shadow.ts#function:resolveTarget@3:1"
  ]
}

Повторите с нужным идентификатором. Результат по-прежнему только для чтения: он содержит план правок, хэши содержимого, доказанное количество правок и ссылки, которые бэкенд отказался угадывать.

// rename_symbol
{
  "symbol": "symbol:src/core.ts#function:resolveTarget@2:1",
  "new_name": "locateTarget",
  "output_format": "json"
}

{
  "status": "PLANNED",
  "completeness": "PARTIAL",
  "renamedEdits": 7,
  "uncertainReferences": ["... three named locations ..."],
  "confirmToken": "single-use-token",
  "plan": {"schemaVersion":"weavatrix.edit-plan.v1","files":["..."]}
}

После просмотра плана повторите ту же операцию с теми же входными данными и её токеном:

// rename_symbol
{
  "symbol": "symbol:src/core.ts#function:resolveTarget@2:1",
  "new_name": "locateTarget",
  "mode": "apply",
  "confirm_token": "single-use-token",
  "output_format": "json"
}

{"status":"APPLIED"}

Этот точный поток проверяется на реальном stdio MCP-сервере. Фикстура репозитория требует семь правок в трёх файлах, сохраняет четыре ловушки (более длинный идентификатор, строку, комментарий и несвязанную тень) и должна по-прежнему компилироваться; она набирает 12/12.

Что автоматизировано сегодня

Одиннадцать инструментов не претендуют на одинаковый уровень автоматизации:

Уровень

Инструменты

Что получает агент

Полный рабочий процесс превью/применения

rename_symbol, rename_related_symbols

Сгенерированный план и токен, затем подтверждённая запись путём повторения той же операции

Создание плана

change_signature, edit_symbol, bulk_replace, organize_imports, move_file

Байт-точные правки или план для проверки; используйте apply_edit_plan, где возвращается конверт плана правок

Консультативный

move_symbol, delete_readiness

Радиус поражения, риски циклов/архитектуры или вердикт об удалении; без автоматической записи в исходный код

Инфраструктура безопасности

apply_edit_plan, rollback_last_apply

Проверка/применение конверта плана правок и восстановление с защитой от дрейфа

Refactor использует внутри граф Weavatrix на Rust для доказательств, но никогда не экспортирует методы Core. Установите отдельный плагин Weavatrix для интеллектуальной работы с репозиторием только для чтения. MCP Refactor владеет ровно своими 11 методами расширения; --profile=rename — это опциональный более узкий двухметодный рабочий процесс.

Модель безопасности и точные ограничения

  • Неоднозначные имена завершаются ошибкой с идентификаторами-кандидатами вместо выбора первого совпадения.

  • PARTIAL означает, что граф доказал правки в плане, но не доказал, что не существует других семантических ссылок. uncertainReferences называет места, требующие проверки.

  • Каждый файл в плане несёт хэш содержимого. Изменённое рабочее дерево делает превью устаревшим вместо применения старых координат.

  • Применение требует WEAVATRIX_ALLOW_SOURCE_EDITS=1 плюс короткоживущий одноразовый токен, привязанный к этому репозиторию и точно пересчитанному плану.

  • rollback_last_apply отказывается перезаписывать файлы, которые дрейфовали после транзакции.

  • Многофайловые записи журналируются и восстанавливаются после сбоев. Они не являются наблюдаемо атомарными для посторонних процессов: другой процесс может кратко наблюдать промежуточное состояние файловой системы.

Применяются только правки с доказанным происхождением. Лексический или графовый бэкенд намеренно более консервативен, чем языковой сервер, и его не следует читать как заявление о полной семантике компилятора.

Измеренный бенчмарк, с разделением несопоставимых слоёв

Зафиксированный в августе 2026 года бенчмарк использует эквивалентные состязательные фикстуры на TypeScript, Rust и Python. В каждой — семь обязательных правок, четыре ловушки и шлюз сборки/тестов. Протокольные запуски считают точную инициализацию o200k_base, каталог, запрос и токены ответа. Агентные запуски используют фактическое совокупное использование, сообщаемое Codex CLI с закреплённой моделью gpt-5.6-sol / средним рассуждением. Никакого байтового прокси или оценочной конверсии токенов в секунду не используется.

Новый профиль только для переименования сохранил все девять протокольных запусков на 12/12, сократив фиксированный MCP-контекст с 9 331 до 485 токенов. Его направленный A/B-тест агента на TypeScript:

Рука

Правильность

Медианное время от начала до конца

Медианное количество входных токенов

Naked Codex

12/12 x3

42 602 мс

72 169

Weavatrix 1.0.6 --profile=rename

12/12 x3

48 389 мс

108 155

Weavatrix 1.0.5 full surface

12/12 x3

58 719 мс

275 784

Serena

12/12 x3

68 728 мс

388 271

Полная матрица агентов — 12/12 во всех 27 запусках TypeScript/Rust/Python; каждый запуск также завершился операционно и прошёл санитарный аудит канала правок. Детерминированная протокольная матрица также выявила языковой дефект Serena: её предлагаемый поток find_symbol → rename_symbol набрал 7/12 на TypeScript во всех трёх запусках, тогда как Rust и Python прошли. Она также нашла и привела к исправлениям для вызовов макросов Rust и свидетельств вызовов f-строк/модульного уровня Python.

На этом игрушечном TypeScript-репозитории голый Codex по-прежнему быстрее и дешевле, чем суженный профиль. Продемонстрированная ценность Weavatrix — это превью перед записью, именованная неопределённость, отказ от устаревших планов, явная авторизация и откат, а не универсальная экономия токенов на маленьких репозиториях.

См. полную методологию, все медианы по языкам, ссылки на сырые результаты и ограничения.

Контракт

Имена 11 инструментов Refactor, их схемы и состояния результатов зафиксированы в contract/refactor-tools.v1.json. Все операции рефакторинга — нативные Rust; хост использует внутри движок weavatrix-rust только для чтения для графовых доказательств, не экспортируя его методы на поверхность по умолчанию.

Версии 0.1.x использовали JavaScript-движок. Эта линия продолжается как weavatrix-refactor-js и сохраняет отдельный каталог состояния, хранилище токенов и журнал отката.

Лицензия

MIT.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs to apply Martin Fowler's 71+ refactoring patterns to codebases through a pluggable, language-agnostic architecture. Supports previewing and applying refactorings, analyzing code smells, and inspecting code structure with safe-by-default operations.
    5
    39 PyPI
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only, provenance-first repository navigation for agents and humans, with ranked lexical retrieval, exact query, document handles, symbol context, and change impact analysis.
    50 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables unified code search and analysis over a monorepo, combining exact, semantic, and call graph queries with indexing, incremental updates, and impact analysis.
    12
    MIT