# AGENT.md — правила работы с репозиторием ## Источник истины: GitVerse (gitverse.ru) - **GitVerse (gitverse.ru) — ИСТОЧНИК ИСТИНЫ (authoritative upstream).** Все коммиты и изменения проекта пушатся именно туда. - **Gitea (gitea.nixg.ru) — ЗЕРКАЛО (mirror).** Не источник; используется как вторичная/внутренняя копия. Не пушить в gitea как в основное хранилище. Pull mirror: `estorozhenko/email-assistant` ← gitverse `kpa39l/email-assistant`, интервал 12h (создан 2026-09-15). ## URL-ы - **GitVerse (истина, https c токеном):** `https://kpa39l:@gitverse.ru/kpa39l/email-assistant.git` (remote `gitverse`; токен в `/opt/hermes/.hermes/secrets/git-tokens.env` — source его, значения не хранить в коде/коммитах) - **GitVerse API:** `api.gitverse.ru` (переменная `GITVERSE_API` из git-tokens.env) - **Gitea (зеркало, https):** `https://gitea.nixg.ru/hermes/email-assistant.git` (текущий remote `origin`) - **SSH-ключ gitverse:** `~/.ssh/gitverse` (алиас `Host gitverse.ru` в `~/.ssh/config`, IdentityFile ~/.ssh/gitverse, IdentitiesOnly yes) — валиден для аутентификации, но push-to-create отключён; для создания репо — API. ## Как пушить ```bash cd /opt/hermes/email-assistant set -a && source /opt/hermes/.hermes/secrets/git-tokens.env && set +a # пуш в источник истины (gitverse) git push gitverse master # (опционально) обновить зеркало gitea git push origin master ``` Создание репозитория на gitverse (если его нет) — через API: ```bash curl -X POST "$GITVERSE_API/user/repos" \ -H "Authorization: Bearer $GITVERSE_PAT" \ -H "Accept: application/vnd.gitverse.object+json;version=1" \ -H "Content-Type: application/json" \ -d '{"name":"","description":"<описание>","private":true,"auto_init":false}' ``` HTTP 201 = создан; 409 = уже существует. `auto_init:false` — иначе первый push упадёт (non-fast-forward). ## Правила работы - Перед работой: `git fetch` + аудит сделанного (`git ls-files`, `git log`) — не дублировать чужую/прошлую работу (см. USER.md: пользователь сам коммитит в dedinit.ru; импорт old_content 358d56d). - Все правки — в /opt/hermes/email-assistant; за пределами проекта не оставлять артефактов. - Внутри проекта не удалять чужие файлы (правило пользователя). - Токены НЕ хранить в коде/README/коммитах — только в remote URL git и в /opt/hermes/.hermes/secrets/git-tokens.env. --- **Статус (2026-09-15):** репозиторий `kpa39l/email-assistant` создан на gitverse (private, id 336792, https://gitverse.ru/kpa39l/email-assistant); remote `gitverse` добавлен; master запушен (HEAD 39df85b51cd4263b0b3350e79eeb8926c7a95ec7). Пуш подтверждён ls-remote. Pull mirror в gitea `estorozhenko/email-assistant` создан (201, id 54, интервал 12h), HEAD совпадает с gitverse, mirror-sync 200.