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)
  • установит upstream GRACE skills (grace-init, grace-plan, grace-execute, …) через opkg — без них doubled-graph init/plan/… отдают директиву, которую IDE-skill-system не может выполнить
  • скопирует prompts/ и methodology/ в репозиторий
  • зарегистрирует 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/ — если они больше не нужны
  • 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.1.1.tar.gz (185.2 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.1.1-py3-none-any.whl (240.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doubled_graph-1.1.1.tar.gz
  • Upload date:
  • Size: 185.2 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.1.1.tar.gz
Algorithm Hash digest
SHA256 dae3b47265a3e8e3221dcf532b8975cb73f48e6011acc859241d43cb8f2143c7
MD5 49506ef24c80291c36dfd718a25a67aa
BLAKE2b-256 8334462002a91485ec7052ce1f1e1d0cf68a8ad39a41155cdb8e56c8d588d9db

See more details on using hashes here.

File details

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

File metadata

  • Download URL: doubled_graph-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 240.4 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d03c458c62f09852331e44a410d7413dc61ba43a17f8b0b3c20deb027c38cac
MD5 407fb8c4e8269d4d18c9b68944245c50
BLAKE2b-256 cfb2985eb47ea94de498bc35c156debe297db0b12117aebdb542005efaafb677

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