Claude Info
AI и агенты

Git Context Controller

faugustdev/git-context-controller

Фреймворк структурированного управления контекстом для LLM-агентов. Реализует Git-подобные операции (COMMIT, BRANCH, MERGE) для долгосрочной памяти агента с экономным хранением и восстановлением контекста по хешам.

Установка

terminal
bash
git clone https://github.com/faugustdev/git-context-controller.git

README

Git Context Controller (GCC) v2

Release License: MIT Skills.sh

Лёгкое управление контекстом LLM-агентов на основе git.

GCC v2 хранит хеш + намерение + опциональные заметки о решениях вместо объёмного markdown. Полный контекст восстанавливается по запросу через git show. Два режима работы: с поддержкой git или автономный.

Основано на исследовательской статье: Git Context Controller


Зачем нужен GCC?

LLM-агенты теряют контекст по мере роста диалога. GCC решает эту проблему, предоставляя агентам структурированную память:

  • Экономное хранение — ~50 токенов на запись против ~500 в v1
  • Git как источник истины — реальные коммиты, а не нарративные копии
  • Безопасные эксперименты — ветки через git worktrees с настоящей изоляцией
  • Восстановление между сессиями — контекст восстанавливается из хешей по запросу
  • Мост aiyoucli — автоматически передаёт данные коммитов в векторную память при наличии

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

Git-режим (при наличии репозитория)

.GCC/ ├── index.yaml # Единый источник истины (~50 токенов/запись) ├── branches/ # Заметки по веткам ├── worktrees/ # Отслеживание worktree └── .bridge-log # Состояние синхронизации с aiyoucli Запись в index.yaml: - id: C001 hash: 85c8539 ← указатель на git-истину intent: "release prep" ← зачем note: "descartamos semantic-release por overhead" ← опциональное решение branch: main date: "2026-02-25T21:40:00Z"

Автономный режим (без репозитория)

Переключается на markdown-файлы, совместимые с v1:

.GCC/ ├── index.yaml # Хронология ├── main.md # Дорожная карта (совместимость с v1) ├── log.md # OTA-трассировки (совместимость с v1) └── branches/

Восстановление контекста

Агенту нужен контекст │ ▼ gcc_context.sh --summary ← ~50 токенов, без обращений к git gcc_context.sh --last 5 ← восстановление через git show gcc_context.sh --decisions ← только записи с заметками gcc_context.sh --hash abc123 ← полный diff одного коммита

Установка

Как Claude Code Skill

bash
# Через skills.sh
npx skills add faugustdev/git-context-controller

# Ручная установка
cp -r gcc/ your-project/.claude/skills/gcc/

Автономная установка

bash
git clone https://github.com/faugustdev/git-context-controller.git

# Инициализация GCC в вашем проекте
cd your-project
/path/to/scripts/gcc_init.sh

Быстрый старт

После установки GCC активируется автоматически. Используйте команды или естественный язык:

ДействиеКомандаЕстественный язык
Сохранить прогресс/gcc commit«сохрани этот этап»
Попробовать альтернативу/gcc branch experiment«создай ветку для другого подхода»
Интегрировать результаты/gcc merge experiment«смёрджи результаты эксперимента»
Быстрый статус/gcc context --summary«на чём мы остановились?»
Последние изменения/gcc context --last 10«покажи последние действия»
Просмотр решений/gcc context --decisions«что мы решили по X?»
Детали коммита/gcc context --hash abc123«подробности по тому коммиту»
Очистка/gcc cleanup«почисти старые worktrees»
Синхронизация памяти/gcc bridge --sync«синхронизируй с aiyoucli»

Скрипты

GCC v2 включает вспомогательные скрипты для механических операций:

СкриптНазначение
gcc_init.shИнициализация GCC (автоопределение git/автономного режима)
gcc_commit.shРеальный git-коммит + лёгкая запись в индекс
gcc_context.shВосстановление контекста из хешей
gcc_bridge.shПередача данных коммитов в векторную память aiyoucli
gcc_cleanup.shОчистка worktrees по TTL + прунинг индекса

gcc_commit.sh

bash
gcc_commit.sh "implement retry logic"
gcc_commit.sh "release prep" "descartamos semantic-release por overhead"
gcc_commit.sh --staged "hotfix: null check"

gcc_context.sh

bash
gcc_context.sh --summary          # одна строка на запись (минимальная стоимость)
gcc_context.sh --last 5           # последние 5 с деталями из git
gcc_context.sh --hash abc123      # полный diff конкретного коммита
gcc_context.sh --decisions        # только записи с заметками
gcc_context.sh --full             # всё

gcc_bridge.sh

bash
gcc_bridge.sh --status            # проверить подключение моста
gcc_bridge.sh --sync              # синхронизировать несинхронизированные записи с aiyoucli

gcc_cleanup.sh

bash
gcc_cleanup.sh --dry-run          # показать, что будет удалено
gcc_cleanup.sh --force            # очистить без подтверждения
gcc_cleanup.sh --prune-index 50   # оставить последние 50 записей хронологии

Справочник команд

COMMIT

Фиксирует контрольную точку. В git-режиме выполняет реальный коммит.

/gcc commit <summary>

BRANCH

Создаёт изолированное рабочее пространство. В git-режиме использует реальные git worktrees.

/gcc branch <name>

MERGE

Интегрирует ветку обратно. В git-режиме выполняет реальный git merge с заметкой о синтезе.

/gcc merge <branch-name>

CONTEXT

Извлекает историческую память, восстановленную из git.

/gcc context [--summary | --last N | --hash HASH | --decisions | --full]
ФлагВозвращаетСтоимость
--summaryОдна строка на запись~0 дополнительных токенов
--last NПоследние N записей с деталями из git~200 токенов/запись
--hash HASHПолный diff одного коммитаПеременная
--decisionsТолько записи с заметкамиМинимальная
--fullВсёВсе записи

Конфигурация

Управляется через index.yaml:

yaml
config:
  proactive_commits: true     # Автоматически предлагать коммиты после контрольных точек
  worktree_ttl: 24h           # Автоочистка устаревших worktrees
  bridge_to_aiyoucli: auto    # auto | off | manual

Структура проекта

git-context-controller/ ├── SKILL.md # Определение скилла (v2) ├── README.md # Этот файл ├── LICENSE # Лицензия MIT ├── CONTRIBUTING.md # Руководство по участию в разработке ├── .gitignore ├── scripts/ │ ├── gcc_init.sh │ ├── gcc_commit.sh │ ├── gcc_context.sh │ ├── gcc_bridge.sh │ └── gcc_cleanup.sh └── gcc/ └── ... # Файлы скилла

Похожие скиллы