Skip to main content

MCP facade over CodeGraphContext + grace-marketplace: impact, context, drift-detect for LLM-driven codebases.

Project description

doubled-graph

MCP-сервер для LLM-агентов, работающих с большими кодовыми базами.

Проблема: агент правит код не зная, кто вызывает функцию и какой у неё контракт — получаем регрессии и тихий дрейф. doubled-graph даёт агенту два графа одновременно:

  • Computed graph — AST-граф реального кода (через CodeGraphContext): кто вызывает что, где определено.
  • Declared graph — граф из артефактов (docs/*.xml): замысел, контракты, верификация.

Четыре MCP-инструмента:

Инструмент Когда
analyze построить/обновить граф
impact радиус влияния изменений — до правки
context 360° вид: символ + контракт + вызовы
detect_changes дрейф кода от артефактов — до коммита

Установка

Требования: Python 3.11+, Bun/Node (для grace-cli), pipx.

doubled-graph — CLI-утилита. Рекомендуемый способ — pipx: он ставит её в изолированный venv и кладёт бинарь в PATH. Это также обходит PEP 668 (externally-managed-environment) на современных Homebrew/Debian/Ubuntu.

1. Установить pipx

OS Команда
macOS brew install pipx
Debian / Ubuntu sudo apt install pipx
Fedora sudo dnf install pipx
Arch sudo pacman -S python-pipx
Windows / прочее python3 -m pip install --user pipx

После установки один раз добавьте pipx-папку в PATH и перезапустите терминал:

pipx ensurepath

2. Установить doubled-graph

pipx install doubled-graph

Уже работаете в своём venv или conda-окружении? Тогда подойдёт обычная установка: python3 -m pip install doubled-graph.


Первые шаги

1. Онбординг репозитория

cd your-project
doubled-graph setup

Одна команда:

  • установит @osovv/grace-cli через первый найденный JS-менеджер (bunnpmyarnpnpm); если Bun отсутствует — установит tsx тем же менеджером и запустит grace под Node
  • скопирует prompts/ и methodology/ в репозиторий
  • запишет 5 наших skills в native-формат для всех известных IDE одновременно (.claude/skills/, .cursor/rules/, .continue/rules/, .roo/rules/, .kilocode/rules/, .opencode/rules/ + opencode.json, .windsurfrules) — мы не знаем, каким клиентом вы пользуетесь
  • зарегистрирует MCP-сервер в вашей IDE (Claude Code / Cursor / Continue)
  • установит git post-commit хук для автообновления графа
  • запустит первый полный analyze

Посмотреть план без реальных изменений:

doubled-graph setup --dry-run

Явно указать IDE:

doubled-graph setup --ide claude-code

2. Подключить MCP вручную (если нужно)

Рекомендуем doubled-graph setup — он сам сгенерирует .mcp.json с правильными значениями. Это важно: GUI-приложения (Claude Desktop, Cursor, Continue) на macOS стартуют без ~/.local/bin в PATH, и простая запись command: "doubled-graph" у них не работает.

Если нужно прописать руками — используйте абсолютный путь к Python, в который установлен doubled-graph:

# Узнать путь к нужному Python:
doubled-graph --version  # проверить, что бинарь работает
head -1 "$(which doubled-graph)"  # вывести shebang — это и есть нужный python

.mcp.json в корне репозитория:

{
  "mcpServers": {
    "doubled-graph": {
      "command": "/Users/you/.local/pipx/venvs/doubled-graph/bin/python",
      "args": ["-m", "doubled_graph", "serve"]
    }
  }
}

3. Инициализация

Введите в ваш ИИ первый промт. Остальные промты он сам подгрузит.

Сценарий 1. Новый проект - prompts/new-project/00-entry-prompt.md.

Сценарий 2. Миграция существующего - prompts/migrate-existing-project/00-entry-prompt.md.


Другие команды

# Обновить граф вручную
doubled-graph analyze --mode auto

# 360° контекст символа
doubled-graph context validateUser

# Текущая фаза методологии (migration | post_migration)
doubled-graph phase get
doubled-graph phase set post_migration --reason "migration complete"

Удаление

pipx uninstall doubled-graph

(или python3 -m pip uninstall doubled-graph, если ставили в venv).

Это снимает сам CLI и Python-зависимости. Артефакты, которые doubled-graph setup создал в вашем репозитории, нужно удалить вручную:

  • запись doubled-graph в .mcp.json (Claude Code) / .cursor/mcp.json / .continue/config.json
  • скопированные prompts/ и methodology/ — если они больше не нужны
  • skill-файлы для IDE: каталоги .claude/skills/doubled-graph-*/, .cursor/rules/doubled-graph-*.mdc, .continue/rules/doubled-graph-*.md, .roo/rules/doubled-graph-*.md, .kilocode/rules/doubled-graph-*.md, .opencode/rules/doubled-graph-*.md, блок между <!-- doubled-graph-skills:start --> / <!-- ... :end --> в .windsurfrules, и запись .opencode/rules/*.md в opencode.json instructions
  • git-хук .git/hooks/post-commit (проверьте содержимое — там может быть ваша логика поверх нашей)
  • локальный кеш графа: rm -rf .doubled-graph
  • grace-cli (отдельный Bun/Node-пакет) — через тот менеджер, которым ставился: bun remove -g @osovv/grace-cli или npm uninstall -g @osovv/grace-cli

Документация

  • SPEC.md — архитектура, хранилище .doubled-graph/
  • TOOLS.md — подробные схемы инструментов
  • HOOKS.md — git и Claude Code хуки
  • CHANGELOG.md — история изменений

Лицензия

MIT. Upstream-компоненты (CodeGraphContext, grace-marketplace) — MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doubled_graph-1.5.4.tar.gz (236.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doubled_graph-1.5.4-py3-none-any.whl (292.5 kB view details)

Uploaded Python 3

File details

Details for the file doubled_graph-1.5.4.tar.gz.

File metadata

  • Download URL: doubled_graph-1.5.4.tar.gz
  • Upload date:
  • Size: 236.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for doubled_graph-1.5.4.tar.gz
Algorithm Hash digest
SHA256 ec630135e5a6b13df0c8a2c4b1b5d8479e856938da28b56a8e89a375ac37eabc
MD5 4b118cf821b66ca1e53387d2bc50c632
BLAKE2b-256 0c1d9c609b96fa2a7491e744fa45eca046314f76ea1827c64723b8ae1d875b1a

See more details on using hashes here.

File details

Details for the file doubled_graph-1.5.4-py3-none-any.whl.

File metadata

  • Download URL: doubled_graph-1.5.4-py3-none-any.whl
  • Upload date:
  • Size: 292.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for doubled_graph-1.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 45ab13163034a15274220169d7fc0903c94efc71a12fbcce84cbfce8cff02aed
MD5 03175a26d14315b06db917dbee725248
BLAKE2b-256 fed928b954a17ab1a6e3f419475c87343143e27ae230558f6ca0f11cf95ef299

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page