task(antigravity): выгрузка репозиториев и структура agents/ на второй машине
Задание переписано: требуется не разбор диска, а развёртывание рабочего пространства — клоны 17 репозиториев в C:\Users\Ochenstarik\Agent_projects и проверка, что структура agents/ на месте. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e96343882e
commit
8f4cf4f4a3
1 changed files with 60 additions and 129 deletions
|
|
@ -1,170 +1,101 @@
|
||||||
# Консолидация проектов в единое рабочее пространство
|
# Развернуть рабочее пространство Agent_projects на этой машине
|
||||||
|
|
||||||
- **Кому:** antigravity
|
- **Кому:** antigravity
|
||||||
- **Дата:** 2026-08-18
|
- **Дата:** 2026-08-18
|
||||||
- **От кого:** владелец проекта (через Claude)
|
- **От кого:** владелец проекта (через Claude)
|
||||||
- **Ветка:** `antigravity/workspace-consolidation`
|
- **Ветка:** ветка не нужна, работа идёт только на диске
|
||||||
- **Файл отчёта:** `../done/2026-08-18-консолидация-рабочего-пространства.md`
|
- **Файл отчёта:** `../done/2026-08-18-консолидация-рабочего-пространства.md`
|
||||||
|
|
||||||
## Зачем это делается
|
|
||||||
|
|
||||||
На машине владельца проекты расползлись: десятки клонов одного репозитория в
|
|
||||||
разных папках, задания и отчёты агентов вперемешку с бинарниками, и часть
|
|
||||||
работы существовала только на диске — ни в одном репозитории её не было.
|
|
||||||
Найти, кто что сделал, было нельзя.
|
|
||||||
|
|
||||||
На основной машине разбор уже выполнен. Нужно сделать то же самое на этой.
|
|
||||||
Результат: один каталог `Agent_projects` с клонами всех репозиториев, единая
|
|
||||||
структура `agents/` внутри каждого, и ничего ценного за пределами git.
|
|
||||||
|
|
||||||
## Что нужно сделать
|
## Что нужно сделать
|
||||||
|
|
||||||
Порядок обязателен: сначала опись, потом спасение, и только потом уборка.
|
Собрать в `C:\Users\Ochenstarik\Agent_projects` клоны всех проектов и
|
||||||
Обратный порядок уничтожает данные.
|
убедиться, что в каждом есть папка `agents/`. Ничего разбирать, переносить и
|
||||||
|
удалять не нужно — только выгрузка из git и проверка структуры.
|
||||||
|
|
||||||
### 1. Опись
|
### 1. Каталог
|
||||||
|
|
||||||
Найти все папки проектов: домашний каталог пользователя, `~/projects`,
|
Создать `C:\Users\Ochenstarik\Agent_projects`, если его нет. Все проекты
|
||||||
рабочий стол, и любые другие места, где агенты создавали клоны. Для каждой
|
живут здесь и только здесь.
|
||||||
папки записать: git это или нет, remote, текущая ветка, число незакоммиченных
|
|
||||||
изменений, число файлов.
|
|
||||||
|
|
||||||
Опись сохранить в отчёт целиком. Она — доказательство, что ничего не пропущено.
|
### 2. Выгрузить репозитории
|
||||||
|
|
||||||
### 2. Проверка, что работа есть на GitHub
|
Владелец — `ochenstarik-ui`. Проверить, что `gh auth status` показывает
|
||||||
|
именно его, и склонировать 17 репозиториев:
|
||||||
Для **каждой** папки с git проверить **все локальные ветки**, а не только
|
|
||||||
текущую. Одной проверки HEAD недостаточно: в брошенных клонах лежат ветки,
|
|
||||||
которых нет ни на GitHub, ни в других копиях.
|
|
||||||
|
|
||||||
Метод, который работает:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# один свежий клон репозитория как эталон
|
cd "C:/Users/Ochenstarik/Agent_projects"
|
||||||
git fetch origin '+refs/heads/*:refs/remotes/origin/*'
|
for r in business-platform kagent hermes-config-backup server-monitor-manager \
|
||||||
git rev-list --remotes | sort -u > /tmp/remote-shas.txt
|
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 \
|
||||||
git for-each-ref refs/heads --format='%(objectname) %(refname:short)'
|
hermes-lossless-context-layer hermes-task-inbox singbox-ai-router \
|
||||||
|
trade-signal-bot-legacy; do
|
||||||
|
gh repo clone "ochenstarik-ui/$r" "$r"
|
||||||
|
done
|
||||||
```
|
```
|
||||||
|
|
||||||
Тип ветки, чей tip отсутствует в списке, проверить вторым способом — ветка
|
Часть репозиториев приватные — без авторизованного `gh` они не склонируются.
|
||||||
могла быть удалена на GitHub после мержа, но коммит в репозитории остаётся:
|
Если какой-то не выгрузился, это в отчёт, а не «пропустил и пошёл дальше».
|
||||||
|
|
||||||
|
### 3. Структура agents/
|
||||||
|
|
||||||
|
Структура уже лежит в самих репозиториях, отдельно её создавать не надо.
|
||||||
|
На 2026-08-18 она находится в ветке `chore/agents-workspace` и ждёт приёмки в
|
||||||
|
открытом PR. Поэтому в каждом клоне:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gh api "repos/<owner>/<repo>/commits/<sha>" --jq .sha
|
git fetch origin
|
||||||
|
git checkout chore/agents-workspace 2>/dev/null || git checkout main
|
||||||
```
|
```
|
||||||
|
|
||||||
Если оба способа говорят «нет» — работа существует только на этом диске.
|
Если к моменту выполнения PR уже смержены — структура будет в `main`, и
|
||||||
|
переключаться никуда не нужно.
|
||||||
|
|
||||||
Отдельно проверить, что удалённый репозиторий вообще существует:
|
Проверить, что в каждом проекте есть:
|
||||||
`gh api repos/<owner>/<repo>`. На основной машине нашлась папка с 163 файлами,
|
|
||||||
чей remote отвечал 404 — репозитория не было вовсе.
|
|
||||||
|
|
||||||
### 3. Спасение
|
|
||||||
|
|
||||||
- **Незапушенные ветки** — запушить под их собственными именами.
|
|
||||||
В `main` не пушить: приёмку делает главный агент.
|
|
||||||
- **Код без существующего репозитория** — создать приватный репозиторий
|
|
||||||
(`gh repo create <owner>/<name> --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 <owner> --limit 100`). В каждом создать:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
agents/
|
agents/
|
||||||
README.md TASK-TEMPLATE.md REPORT-TEMPLATE.md
|
README.md TASK-TEMPLATE.md REPORT-TEMPLATE.md
|
||||||
claude/ codex/ antigravity/ hermes/ grok/ opencode/
|
claude/ codex/ antigravity/ hermes/ grok/ opencode/
|
||||||
inbox/ done/ notes/ (в каждой .gitkeep)
|
inbox/ done/ notes/
|
||||||
_accepted/
|
_accepted/
|
||||||
```
|
```
|
||||||
|
|
||||||
Тексты `README.md` и шаблонов взять из любого уже разобранного репозитория —
|
Если в каком-то репозитории `agents/` не оказалось ни в `main`, ни в
|
||||||
они одинаковы во всех. В `AGENTS.md` дописать раздел со ссылкой на
|
`chore/agents-workspace` — не выдумывать структуру самому: записать в отчёт,
|
||||||
`agents/README.md`; если `AGENTS.md` нет — создать.
|
какой это репозиторий.
|
||||||
|
|
||||||
### 5. Раскладка заданий и отчётов
|
### 4. Как здесь работать дальше
|
||||||
|
|
||||||
Папки с заданиями и отчётами агентов разложить по `agents/` нужного проекта.
|
Коротко, полные правила — в `agents/README.md` внутри любого проекта:
|
||||||
Агента определять по имени файла или пути: `antigravity`, `codex`, `hermes`,
|
задание — в `agents/antigravity/inbox/`, черновики — в `notes/`, результат —
|
||||||
`claude`/`клод`, `grok`, `opencode`. Файлы со словом `task`/`задач` — в
|
в `done/`. Задание, пришедшее в чате, сначала записывается в `inbox/`, и
|
||||||
`inbox/`, остальные — в `done/`. Что не опознаётся — в
|
только потом начинается работа. Своих папок за пределами
|
||||||
`agents/_salvage-<дата>/`, разбирается вручную потом.
|
`agents/antigravity/` не заводить — из-за этого всё и разъехалось.
|
||||||
|
|
||||||
Тяжёлое в git не класть. Архивы, инсталляторы, бинарники и файлы больше 5 МБ —
|
|
||||||
в `Agent_projects/_archive/<дата>/`, наборы данных — в `Agent_projects/_data/`.
|
|
||||||
Обе папки вне репозиториев.
|
|
||||||
|
|
||||||
### 6. Уборка
|
|
||||||
|
|
||||||
Папки, чьё содержимое доказано лежит на GitHub, переместить в
|
|
||||||
`_trash_<дата>/` рядом с домашним каталогом. **Не удалять.** Удаление —
|
|
||||||
решение владельца, он сотрёт карантин сам, когда проверит.
|
|
||||||
|
|
||||||
### 7. Публикация
|
|
||||||
|
|
||||||
В каждом репозитории — ветка `chore/agents-workspace`, один коммит структуры,
|
|
||||||
второй коммит разбора, PR. В `main` не мержить.
|
|
||||||
|
|
||||||
## Границы
|
## Границы
|
||||||
|
|
||||||
- Ничего не удалять безвозвратно. Только карантин.
|
- Ничего не удалять и не переносить с диска. Эта задача — только выгрузка.
|
||||||
- Не пушить в `main` и не мержить PR.
|
- В `main` не пушить, PR не мержить.
|
||||||
- Не трогать клоны чужих репозиториев (владелец != владелец проектов), даже
|
- Существующие папки с проектами вне `Agent_projects` не трогать: что с ними
|
||||||
если в них есть локальные правки. Записать их в отчёт и оставить на месте.
|
делать, решается отдельной задачей.
|
||||||
- Не трогать пользовательские файлы: фотографии, книги, документы, бэкапы.
|
|
||||||
- Не менять глобальный `git config`. Подпись ставить локально в репозитории,
|
|
||||||
ту же, что в истории коммитов (`git log --format='%an <%ae>'`).
|
|
||||||
|
|
||||||
## Что здесь ломается
|
## Что здесь ломается
|
||||||
|
|
||||||
Проверено на основной машине, повторится и тут:
|
- **Длинные пути Windows.** Часть репозиториев имеет глубокую вложенность и
|
||||||
|
падает с `Filename too long`. Лечится `git config --global core.longpaths true`
|
||||||
- **Длинные пути Windows.** Cherry-pick и checkout падают с `Filename too
|
до клонирования.
|
||||||
long`. Лечится `git config core.longpaths true` и коротким путём рабочей
|
- **Ветка по умолчанию.** У `agent-control-center-server` это `master`, а не
|
||||||
копии.
|
`main`. Не считать `main` данностью.
|
||||||
- **Занятые файлы.** Часть папок не переместится: их держит работающий
|
- **Занятые файлы.** Если клон не создаётся из-за занятого файла — значит, в
|
||||||
процесс другого агента. Это не ошибка — записать в отчёт и оставить.
|
этой папке работает другой процесс. Не ломать, записать в отчёт.
|
||||||
- **Чужая работа в той же копии.** В клоне может параллельно работать другой
|
|
||||||
агент: проверять `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`.
|
|
||||||
|
|
||||||
## Как проверить результат
|
## Как проверить результат
|
||||||
|
|
||||||
Считается сделанным, когда одновременно:
|
Считается сделанным, когда:
|
||||||
|
|
||||||
1. `Agent_projects` содержит клоны всех репозиториев владельца, у каждого
|
1. в `Agent_projects` лежат все 17 клонов;
|
||||||
`agents/` с полным набором папок;
|
2. в каждом есть `agents/` с полным набором папок;
|
||||||
2. для каждой папки из описи в отчёте сказано, что с ней стало: перенесена,
|
3. в отчёте приведён вывод проверки — по строке на репозиторий: имя, текущая
|
||||||
в карантине, оставлена и почему;
|
ветка, наличие `agents/`;
|
||||||
3. ни одна ветка ни в одной папке не осталась незапушенной — доказать
|
4. на диске за пределами `Agent_projects` ничего не изменилось.
|
||||||
повторным прогоном проверки из пункта 2 и приложить её вывод;
|
|
||||||
4. в каждом репозитории открыт PR, `main` не тронут;
|
|
||||||
5. карантин на месте, ничего не удалено.
|
|
||||||
|
|
||||||
## Контекст
|
|
||||||
|
|
||||||
Как выглядит результат на основной машине — в этом же репозитории:
|
|
||||||
`agents/README.md` описывает схему, `Agent_projects/README.md` (у владельца)
|
|
||||||
— карту рабочего пространства. Если структура папок на этой машине окажется
|
|
||||||
принципиально другой — не подгонять её под описание, а сообщить в отчёте.
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue