---
name: setup-agent-github-repo
description: Настроить приватный GitHub репозиторий для AI-агента с операционным контрактом, Decision Policy и безопасной структурой
version: 1.1
created: 2026-05-29
updated: 2026-05-29
tags: [github, agent, governance, safety]
---

# Setup Agent GitHub Repository

Настройка приватного GitHub репозитория для AI-агента с операционным контрактом и защитой от случайных деструктивных изменений.

## Когда использовать

- Создаёшь репозиторий для AI-агента (ChatGPT, Hermes, Claude, etc.)
- Нужно настроить долгосрочную память и задачи агента
- Требуется защита от случайной «чистки» файлов
- Нужен явный контракт между владельцем и агентом

## ⚠️ КРИТИЧЕСКОЕ: Сначала узнай реальную потребность

**Перед настройкой спроси пользователя:**

> «Что ты на самом деле хочешь?
> 1. Просто место для хранения контекста/промптов?
> 2. База знаний для копирования в ChatGPT в начале сессии?
> 3. Инфраструктура для будущего автономного агента (с API, Actions)?»

**Не усложняй без необходимости!**

### Вариант A: Минимальный (файловое хранилище для ChatGPT)

Если пользователь хочет **просто хранить контекст и документы**:

```
repo/
├── README.md
├── INSTRUCTION.md
│
├── project-alpha/
│   ├── agent-brief.md   # 1 страница: роль, правила, контакты
│   ├── memory.md        # Память проекта (растёт со временем)
│   └── docs/            # Документы: ТЗ, рефы, заметки
│
└── project-beta/
    ├── agent-brief.md
    ├── memory.md
    └── docs/
```

**Плюсы:** Просто, понятно, работает для ChatGPT web-интерфейса.
**Минусы:** Не для автономных агентов.

### Вариант B: Полный (автономный агент с GitHub API)

Если пользователь строит **инфраструктуру для автономного агента**:

```
repo/
├── AGENT.md           # Личность, принципы, правила
├── MEMORY.md          # Долгосрочная память
├── GOALS.md           # Активные задачи
├── SKILLS.md          # Процедурные знания
├── INSTRUCTION.md     # Операционный контракт + Decision Policy
├── README.md
├── CONFIG.md          # API ключи — НЕ МЕНЯТЬ
│
├── memory/            # Архив сессий
├── tasks/             # История задач
├── knowledge/         # Базовые знания
└── logs/              # Логи (временные)
```

**Плюсы:** Полноценная агентская инфраструктура.
**Минусы:** Сложно, не нужно для ChatGPT web-интерфейса.

## Структура репозитория (по умолчанию — Минимальная)

```
repo/
├── AGENT.md           # Личность, принципы, правила агента
├── MEMORY.md          # Долгосрочная память (факты, предпочтения)
├── GOALS.md           # Активные задачи и цели
├── SKILLS.md          # Процедурные знания (скиллы)
├── INSTRUCTION.md     # Операционный контракт (этот файл)
├── README.md          # Общая документация
├── CONFIG.md          # Конфигурация (API ключи) — НЕ МЕНЯТЬ
│
├── memory/            # Архив памяти (эпизоды, контекст сессий)
├── tasks/             # История выполненных задач
├── knowledge/         # Базовые знания, референсы
└── logs/              # Логи сессий (временные)
```

## Шаг 1: Сделать репозиторий приватным

**Через GitHub API:**
```bash
curl -X PATCH \
  -H "Authorization: token YOUR_GITHUB_TOKEN" \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/OWNER/REPO \
  -d '{"private": true}'
```

**Через GitHub UI:**
- Settings → Danger Zone → Change visibility → Make private

## Шаг 2: Создать базовые файлы

### GOALS.md
```markdown
# 🎯 GOALS.md — Цели и Задачи

## Active
- [ ] Настроить доступ агента к репозиторию
- [ ] Протестировать чтение/запись файлов

## Completed
- [x] Сделать репозиторий приватным (2026-05-29)

## Backlog
- [Идеи на будущее]
```

### AGENT.md
```markdown
# 🤖 AGENT.md — Манифест Агента

## Идентичность
- **Имя**: [Имя агента]
- **Роль**: [Роль]
- **Владелец**: [Владелец]

## Принципы
1. Полезность прежде всего
2. Честность — признавать незнание
3. Безопасность — не выполнять деструктивные операции

## Коммуникация
- Язык: [язык]
- Стиль: [стиль]
```

### MEMORY.md
```markdown
# 🧠 MEMORY.md — Долгосрочная память

## Предпочтения пользователя
- [Предпочтение 1]
- [Предпочтение 2]

## Окружение
- [Факт об окружении]

## Паттерны
- [Изученный паттерн]
```

## Шаг 3: Создать INSTRUCTION.md с Decision Policy

**⚠️ КРИТИЧЕСКОЕ:** Добавить раздел Decision Policy:

```markdown
## 🛡️ Decision Policy — Политика Принятия Решений

Перед любыми изменениями структуры репозитория:

### 1. Аудит (обязательно)
Прочитать все основные файлы перед изменениями

### 2. План изменений
Составить письменный план:
- Что будет изменено
- Что будет удалено (с обоснованием)
- Риски и последствия

### 3. Подтверждение владельца
Запросить явное «давай» от пользователя перед:
- Удалением файлов
- Перемещением файлов
- Изменением структуры папок
- Массовыми правками (>3 файлов)

### 4. Только потом выполнение
После подтверждения выполнить изменения
```

## Шаг 4: Определить права агента

| Файл | Агент может | Требуется подтверждение |
|------|-------------|------------------------|
| `MEMORY.md` | ✅ Автономно | ❌ Нет |
| `GOALS.md` | ✅ Автономно | ❌ Нет |
| `SKILLS.md` | ✅ Автономно | ❌ Нет |
| `AGENT.md` | ❌ Нет | ✅ ДА |
| `INSTRUCTION.md` | ❌ Нет | ✅ ДА |
| `CONFIG.md` | ❌ Запрещено | ✅ ДА (запрещено) |
| Удаление файлов | ❌ Нет | ✅ ДА |
| Структура папок | ❌ Нет | ✅ ДА |

## Шаг 5: Дать доступ агенту

**Вариант A: GitHub Personal Access Token**
1. Settings → Developer settings → Personal access tokens
2. Создать токен с правами `repo`
3. Передать агенту через secure channel

**Вариант B: GitHub CLI**
```bash
gh auth login
gh repo clone OWNER/REPO
```

## Шаг 6: Аудит перед чисткой

**⚠️ НЕ удалять файлы без аудита!**

Перед любой «чисткой» репозитория:

```bash
# Прочитать все файлы
cat AGENT.md
cat MEMORY.md
cat GOALS.md
cat RULES.md
cat SKILLS.md
ls -la

# Оценить что ценно
# Запросить подтверждение
# Только потом удалять
```

## Питфолы

- ❌ **Не спросил что нужно** — построил сложную структуру для простого запроса
- ❌ **GitHub-инструмент может быть недоступен** — проверять перед планированием
- ❌ **Агент не читает файлы автоматически в новой сессии** — нужно явно указывать
- ❌ **Аудит пропущен** — риск потери ценных данных
- ❌ **Decision Policy не добавлен** — риск случайной чистки
- ❌ **CONFIG.md с ключами в репо** — использовать .env + .gitignore

## Урок из практики (2026-05-29)

**Ситуация:** Пользователь попросил настроить репозиторий для ChatGPT.

**Ошибка:** Сразу создал сложную структуру с AGENT.md, MEMORY.md, RULES.md, WORKFLOWS.md, SKILLS.md, memory/, tasks/, knowledge/, logs/.

**Реальность:** Пользователю нужно было простое файловое хранилище: папки проектов с agent-brief.md, memory.md, docs/.

**Вывод:** Сначала спроси «что ты на самом деле хочешь?», потом строй структуру. Не предполагай сложность без подтверждения.

## Проверка

- [ ] Репозиторий приватный
- [ ] GOALS.md существует с начальной структурой
- [ ] MEMORY.md существует
- [ ] INSTRUCTION.md с Decision Policy создан
- [ ] Агент имеет доступ (токен/CLI)
- [ ] Владелец подтвердил структуру

## Примеры

### Хороший коммит агента
```bash
git add MEMORY.md GOALS.md
git commit -m "Update: выполнил задачу X, добавил факт о предпочтениях"
git push
```

### Плохой коммит агента
```bash
git rm AGENT.md RULES.md
git commit -m "Cleaned up old files"
git push
# ❌ Удалил файлы без аудита и подтверждения!
```

## Связанные навыки

- `github-pat-push` — пуш файлов через PAT
- `github-auth` — настройка GitHub аутентификации
- `build-agent-safety-guard` — безопасность агентов
