diff --git a/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md b/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md index 86485be..8a6e678 100644 --- a/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md +++ b/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md @@ -1,170 +1,101 @@ -# Консолидация проектов в единое рабочее пространство +# Развернуть рабочее пространство Agent_projects на этой машине - **Кому:** antigravity - **Дата:** 2026-08-18 - **От кого:** владелец проекта (через Claude) -- **Ветка:** `antigravity/workspace-consolidation` +- **Ветка:** ветка не нужна, работа идёт только на диске - **Файл отчёта:** `../done/2026-08-18-консолидация-рабочего-пространства.md` -## Зачем это делается - -На машине владельца проекты расползлись: десятки клонов одного репозитория в -разных папках, задания и отчёты агентов вперемешку с бинарниками, и часть -работы существовала только на диске — ни в одном репозитории её не было. -Найти, кто что сделал, было нельзя. - -На основной машине разбор уже выполнен. Нужно сделать то же самое на этой. -Результат: один каталог `Agent_projects` с клонами всех репозиториев, единая -структура `agents/` внутри каждого, и ничего ценного за пределами git. - ## Что нужно сделать -Порядок обязателен: сначала опись, потом спасение, и только потом уборка. -Обратный порядок уничтожает данные. +Собрать в `C:\Users\Ochenstarik\Agent_projects` клоны всех проектов и +убедиться, что в каждом есть папка `agents/`. Ничего разбирать, переносить и +удалять не нужно — только выгрузка из git и проверка структуры. -### 1. Опись +### 1. Каталог -Найти все папки проектов: домашний каталог пользователя, `~/projects`, -рабочий стол, и любые другие места, где агенты создавали клоны. Для каждой -папки записать: git это или нет, remote, текущая ветка, число незакоммиченных -изменений, число файлов. +Создать `C:\Users\Ochenstarik\Agent_projects`, если его нет. Все проекты +живут здесь и только здесь. -Опись сохранить в отчёт целиком. Она — доказательство, что ничего не пропущено. +### 2. Выгрузить репозитории -### 2. Проверка, что работа есть на GitHub - -Для **каждой** папки с git проверить **все локальные ветки**, а не только -текущую. Одной проверки HEAD недостаточно: в брошенных клонах лежат ветки, -которых нет ни на GitHub, ни в других копиях. - -Метод, который работает: +Владелец — `ochenstarik-ui`. Проверить, что `gh auth status` показывает +именно его, и склонировать 17 репозиториев: ```bash -# один свежий клон репозитория как эталон -git fetch origin '+refs/heads/*:refs/remotes/origin/*' -git rev-list --remotes | sort -u > /tmp/remote-shas.txt - -# в каждой проверяемой папке -git for-each-ref refs/heads --format='%(objectname) %(refname:short)' +cd "C:/Users/Ochenstarik/Agent_projects" +for r in business-platform kagent hermes-config-backup server-monitor-manager \ + randomayzer trade-signal-platform trading-knowledge-base \ + finance-telegram-bot agent-control-center agent-control-center-server \ + lightweight-server safetest-platform agent-engineering-quality-system \ + hermes-lossless-context-layer hermes-task-inbox singbox-ai-router \ + trade-signal-bot-legacy; do + gh repo clone "ochenstarik-ui/$r" "$r" +done ``` -Тип ветки, чей tip отсутствует в списке, проверить вторым способом — ветка -могла быть удалена на GitHub после мержа, но коммит в репозитории остаётся: +Часть репозиториев приватные — без авторизованного `gh` они не склонируются. +Если какой-то не выгрузился, это в отчёт, а не «пропустил и пошёл дальше». + +### 3. Структура agents/ + +Структура уже лежит в самих репозиториях, отдельно её создавать не надо. +На 2026-08-18 она находится в ветке `chore/agents-workspace` и ждёт приёмки в +открытом PR. Поэтому в каждом клоне: ```bash -gh api "repos///commits/" --jq .sha +git fetch origin +git checkout chore/agents-workspace 2>/dev/null || git checkout main ``` -Если оба способа говорят «нет» — работа существует только на этом диске. +Если к моменту выполнения PR уже смержены — структура будет в `main`, и +переключаться никуда не нужно. -Отдельно проверить, что удалённый репозиторий вообще существует: -`gh api repos//`. На основной машине нашлась папка с 163 файлами, -чей remote отвечал 404 — репозитория не было вовсе. - -### 3. Спасение - -- **Незапушенные ветки** — запушить под их собственными именами. - В `main` не пушить: приёмку делает главный агент. -- **Код без существующего репозитория** — создать приватный репозиторий - (`gh repo create / --private`) и залить туда все ветки. - Перед заливкой проверить на секреты: `.env`, `*.pem`, `*.key`, присвоения - вида `TOKEN=...`, и убедиться, что `.gitignore` закрывает `.venv` и `.env`. -- **Незакоммиченные правки** — сохранить патчем `git diff HEAD > имя.patch` - в `agents/<агент>/notes/salvage-<дата>/` того проекта, к которому они - относятся. Неотслеживаемые файлы скопировать туда же, кроме мусора - (`.venv`, `node_modules`, `*.exe`, `*.zip`). -- Прежде чем считать правки ценными, посмотреть на них. На основной машине - папка с 3870 «изменениями» оказалась сломанным индексом: `git rm` без - коммита, содержимое совпадает с GitHub. Спасать там было нечего. - -### 4. Клоны и структура agents/ - -Склонировать все репозитории владельца в `Agent_projects` (список — -`gh repo list --limit 100`). В каждом создать: +Проверить, что в каждом проекте есть: ``` agents/ README.md TASK-TEMPLATE.md REPORT-TEMPLATE.md claude/ codex/ antigravity/ hermes/ grok/ opencode/ - inbox/ done/ notes/ (в каждой .gitkeep) + inbox/ done/ notes/ _accepted/ ``` -Тексты `README.md` и шаблонов взять из любого уже разобранного репозитория — -они одинаковы во всех. В `AGENTS.md` дописать раздел со ссылкой на -`agents/README.md`; если `AGENTS.md` нет — создать. +Если в каком-то репозитории `agents/` не оказалось ни в `main`, ни в +`chore/agents-workspace` — не выдумывать структуру самому: записать в отчёт, +какой это репозиторий. -### 5. Раскладка заданий и отчётов +### 4. Как здесь работать дальше -Папки с заданиями и отчётами агентов разложить по `agents/` нужного проекта. -Агента определять по имени файла или пути: `antigravity`, `codex`, `hermes`, -`claude`/`клод`, `grok`, `opencode`. Файлы со словом `task`/`задач` — в -`inbox/`, остальные — в `done/`. Что не опознаётся — в -`agents/_salvage-<дата>/`, разбирается вручную потом. - -Тяжёлое в git не класть. Архивы, инсталляторы, бинарники и файлы больше 5 МБ — -в `Agent_projects/_archive/<дата>/`, наборы данных — в `Agent_projects/_data/`. -Обе папки вне репозиториев. - -### 6. Уборка - -Папки, чьё содержимое доказано лежит на GitHub, переместить в -`_trash_<дата>/` рядом с домашним каталогом. **Не удалять.** Удаление — -решение владельца, он сотрёт карантин сам, когда проверит. - -### 7. Публикация - -В каждом репозитории — ветка `chore/agents-workspace`, один коммит структуры, -второй коммит разбора, PR. В `main` не мержить. +Коротко, полные правила — в `agents/README.md` внутри любого проекта: +задание — в `agents/antigravity/inbox/`, черновики — в `notes/`, результат — +в `done/`. Задание, пришедшее в чате, сначала записывается в `inbox/`, и +только потом начинается работа. Своих папок за пределами +`agents/antigravity/` не заводить — из-за этого всё и разъехалось. ## Границы -- Ничего не удалять безвозвратно. Только карантин. -- Не пушить в `main` и не мержить PR. -- Не трогать клоны чужих репозиториев (владелец != владелец проектов), даже - если в них есть локальные правки. Записать их в отчёт и оставить на месте. -- Не трогать пользовательские файлы: фотографии, книги, документы, бэкапы. -- Не менять глобальный `git config`. Подпись ставить локально в репозитории, - ту же, что в истории коммитов (`git log --format='%an <%ae>'`). +- Ничего не удалять и не переносить с диска. Эта задача — только выгрузка. +- В `main` не пушить, PR не мержить. +- Существующие папки с проектами вне `Agent_projects` не трогать: что с ними + делать, решается отдельной задачей. ## Что здесь ломается -Проверено на основной машине, повторится и тут: - -- **Длинные пути Windows.** Cherry-pick и checkout падают с `Filename too - long`. Лечится `git config core.longpaths true` и коротким путём рабочей - копии. -- **Занятые файлы.** Часть папок не переместится: их держит работающий - процесс другого агента. Это не ошибка — записать в отчёт и оставить. -- **Чужая работа в той же копии.** В клоне может параллельно работать другой - агент: проверять `git branch --show-current` перед каждым коммитом, иначе - свой коммит ляжет на чужую ветку. Если это уже случилось — переносить - коммит через `git worktree`, а не переключать ветку под чужой работой. -- **CRLF.** При `core.autocrlf=true` рабочая копия получает CRLF, в git - уходит LF. Проверять надо содержимое коммита, а не файл на диске. -- **Валидаторы документации.** В `business-platform` есть - `node scripts/check-docs.mjs`: он считает все `.md` в репозитории и - требует обновления статистики после добавления файлов - (`node scripts/check-docs.mjs --write-stats`). Прогнать до коммита. -- **Ветка по умолчанию.** Не везде `main`; у части репозиториев `master`. - PR создавать с явным `--base`. +- **Длинные пути Windows.** Часть репозиториев имеет глубокую вложенность и + падает с `Filename too long`. Лечится `git config --global core.longpaths true` + до клонирования. +- **Ветка по умолчанию.** У `agent-control-center-server` это `master`, а не + `main`. Не считать `main` данностью. +- **Занятые файлы.** Если клон не создаётся из-за занятого файла — значит, в + этой папке работает другой процесс. Не ломать, записать в отчёт. ## Как проверить результат -Считается сделанным, когда одновременно: +Считается сделанным, когда: -1. `Agent_projects` содержит клоны всех репозиториев владельца, у каждого - `agents/` с полным набором папок; -2. для каждой папки из описи в отчёте сказано, что с ней стало: перенесена, - в карантине, оставлена и почему; -3. ни одна ветка ни в одной папке не осталась незапушенной — доказать - повторным прогоном проверки из пункта 2 и приложить её вывод; -4. в каждом репозитории открыт PR, `main` не тронут; -5. карантин на месте, ничего не удалено. - -## Контекст - -Как выглядит результат на основной машине — в этом же репозитории: -`agents/README.md` описывает схему, `Agent_projects/README.md` (у владельца) -— карту рабочего пространства. Если структура папок на этой машине окажется -принципиально другой — не подгонять её под описание, а сообщить в отчёте. +1. в `Agent_projects` лежат все 17 клонов; +2. в каждом есть `agents/` с полным набором папок; +3. в отчёте приведён вывод проверки — по строке на репозиторий: имя, текущая + ветка, наличие `agents/`; +4. на диске за пределами `Agent_projects` ничего не изменилось.