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.5.tar.gz (236.7 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.5-py3-none-any.whl (292.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doubled_graph-1.5.5.tar.gz
  • Upload date:
  • Size: 236.7 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.5.tar.gz
Algorithm Hash digest
SHA256 d9450dd3410b798fd83f6aef7cb84d87911b90c2ee6fa1ad3facdb760307ed29
MD5 a5d2d12068a84e188c89cee40d9e93ae
BLAKE2b-256 1752f79718ca87880d728c801f8f4d99a87c2bfa65ca1f976c4cbdb19ddae1aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: doubled_graph-1.5.5-py3-none-any.whl
  • Upload date:
  • Size: 292.8 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fc77f0f1b73516b37cc29f1f17deb7a207cc5d8e582f7fbf0d28febb053d684f
MD5 c5ec6322b6ac971203543eacccc89c4b
BLAKE2b-256 40f20832fb1c2ab08e8cdc87af8b4ef8e89c59ef6f59e1590449d14b2558544e

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