From 085110bf59b60682ff2bec8e81e90c440c791723 Mon Sep 17 00:00:00 2001 From: Ochenstarik Date: Tue, 18 Aug 2026 13:33:43 +0700 Subject: [PATCH 1/4] =?UTF-8?q?chore(agents):=20=D0=B5=D0=B4=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B9=20=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D1=91=D0=BC=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Общая для всех проектов схема: задание — в agents//inbox/, черновики — в notes/, результат — в done/, принятое главным агентом — в _accepted/. Папки заведены для claude, codex, antigravity, hermes, grok, opencode. Причина: результаты работы расползались по личным папкам агентов и по переписке, и найти, кто что сделал, было нельзя. Место результата теперь определено заранее и одинаково во всех репозиториях. Co-Authored-By: Claude Opus 5 --- AGENTS.md | 34 +++++++++++++++++ agents/README.md | 62 +++++++++++++++++++++++++++++++ agents/REPORT-TEMPLATE.md | 27 ++++++++++++++ agents/TASK-TEMPLATE.md | 27 ++++++++++++++ agents/_accepted/.gitkeep | 0 agents/antigravity/done/.gitkeep | 0 agents/antigravity/inbox/.gitkeep | 0 agents/antigravity/notes/.gitkeep | 0 agents/claude/done/.gitkeep | 0 agents/claude/inbox/.gitkeep | 0 agents/claude/notes/.gitkeep | 0 agents/codex/done/.gitkeep | 0 agents/codex/inbox/.gitkeep | 0 agents/codex/notes/.gitkeep | 0 agents/grok/done/.gitkeep | 0 agents/grok/inbox/.gitkeep | 0 agents/grok/notes/.gitkeep | 0 agents/hermes/done/.gitkeep | 0 agents/hermes/inbox/.gitkeep | 0 agents/hermes/notes/.gitkeep | 0 agents/opencode/done/.gitkeep | 0 agents/opencode/inbox/.gitkeep | 0 agents/opencode/notes/.gitkeep | 0 23 files changed, 150 insertions(+) create mode 100644 AGENTS.md create mode 100644 agents/README.md create mode 100644 agents/REPORT-TEMPLATE.md create mode 100644 agents/TASK-TEMPLATE.md create mode 100644 agents/_accepted/.gitkeep create mode 100644 agents/antigravity/done/.gitkeep create mode 100644 agents/antigravity/inbox/.gitkeep create mode 100644 agents/antigravity/notes/.gitkeep create mode 100644 agents/claude/done/.gitkeep create mode 100644 agents/claude/inbox/.gitkeep create mode 100644 agents/claude/notes/.gitkeep create mode 100644 agents/codex/done/.gitkeep create mode 100644 agents/codex/inbox/.gitkeep create mode 100644 agents/codex/notes/.gitkeep create mode 100644 agents/grok/done/.gitkeep create mode 100644 agents/grok/inbox/.gitkeep create mode 100644 agents/grok/notes/.gitkeep create mode 100644 agents/hermes/done/.gitkeep create mode 100644 agents/hermes/inbox/.gitkeep create mode 100644 agents/hermes/notes/.gitkeep create mode 100644 agents/opencode/done/.gitkeep create mode 100644 agents/opencode/inbox/.gitkeep create mode 100644 agents/opencode/notes/.gitkeep diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..6f70202 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,34 @@ +# Правила работы агентов — agent-control-center + +Документ адресован любому исполнителю: человеку или агенту. Он описывает не +устройство проекта, а порядок работы над ним. + +## 1. Границы задачи + +Задание определяет область. Выход за неё запрещён, даже когда исправление +очевидно и занимает минуту: перемешанные изменения нельзя ни отревьюить, ни +откатить по отдельности. Замеченное рядом — списком в отчёт, отдельными +предложениями задач. + +## 2. Факты и догадки + +Выдумывать нельзя. Если решение не принято, версия неизвестна, а поведение не +проверено — так и пишем. Правдоподобная выдумка дороже честного «не определено»: +по ней начнут работать. + +## 3. Проверка + +«Работает» — не результат проверки. В отчёт идёт команда и её фактический +вывод. Если проверка не запускалась, это пишется прямо. + +## 4. Задания и результаты + +Задания и отчёты живут в `agents/`. Схема одинакова во всех репозиториях +рабочего пространства `Agent_projects`, полные правила — в `agents/README.md`. + +Коротко: задание — в `agents/<твой-id>/inbox/`, результат — в +`agents/<твой-id>/done/`, черновики — в `agents/<твой-id>/notes/`. Задание, +пришедшее в чате, агент сначала записывает в свой `inbox/`, и только потом +работает. Своих папок за пределами `agents/<твой-id>/` не заводить. + +Принимает работу и пушит в `main` только главный агент. diff --git a/agents/README.md b/agents/README.md new file mode 100644 index 0000000..5e3ad65 --- /dev/null +++ b/agents/README.md @@ -0,0 +1,62 @@ +# Задания агентов — agent-control-center + +Единая схема для всех репозиториев в `Agent_projects`. Смысл один: задание, +результат и приёмка лежат в репозитории, а не в переписке и не в личных папках +агента на диске. Через месяц найти работу можно только так. + +## Правило, из-за которого всё это заведено + +Агент не создаёт папок за пределами `agents/<свой-id>/`. Черновики, логи +прогонов, промежуточные заметки — в `notes/`. Если своей папки не хватило, +это повод изменить схему в этом файле, а не завести `my_review/` в корне. + +## Кто есть кто + +| id | Агент | Папка | Префикс ветки | +|----|-------|-------|---------------| +| `claude` | Claude | `agents/claude/` | `claude/` | +| `codex` | Codex | `agents/codex/` | `codex/` | +| `antigravity` | Antigravity | `agents/antigravity/` | `antigravity/` | +| `hermes` | Hermes | `agents/hermes/` | `hermes/` | +| `grok` | Grok | `agents/grok/` | `grok/` | +| `opencode` | OpenCode | `agents/opencode/` | `opencode/` | + +Внутри каждой папки: + +- `inbox/` — задания агенту; +- `done/` — готовые результаты и отчёты; +- `notes/` — рабочие черновики агента. + +## Маршрут задания + +1. **Задание попадает в `/inbox/`** файлом `ГГГГ-ММ-ДД-краткое-имя.md` + по шаблону [TASK-TEMPLATE.md](TASK-TEMPLATE.md). Если задание пришло голосом + или в чате — агент сам записывает его в свой inbox **до** начала работы. + Незаписанного задания не существует: его нельзя ни проверить, ни повторить. +2. **Агент работает.** Черновики — в `/notes/`. Ветка — с префиксом + из таблицы выше. +3. **Результат — в `/done/`** файлом с тем же именем, что и задание, + по шаблону [REPORT-TEMPLATE.md](REPORT-TEMPLATE.md). Задание остаётся + в inbox до приёмки: пара «задание — отчёт» должна читаться рядом. +4. **Главный агент принимает работу:** сверяет отчёт с тем, что реально + изменилось, объединяет результаты разных агентов, переносит пару файлов + в `agents/_accepted/ГГГГ-ММ-ДД-краткое-имя/` и только после этого пушит. + +Пункт 4 выполняет только главный агент. Остальные в `main` не пушат — иначе +приёмка превращается в разбор того, что уже влито. + +## Что обязано быть в отчёте + +- что сделано и какими файлами; +- как это проверено — команда и её вывод, а не «протестировано»; +- что не сделано и почему; незакрытая часть в отчёте лучше, чем найденная + при приёмке; +- замеченные рядом дефекты — списком, отдельными предложениями задач, без + самовольного исправления. + +## Чего делать нельзя + +- Класть результат в `inbox/`, а задание в `done/`. +- Править чужой отчёт в `done/`. Возражения — отдельным файлом в своём + `done/` со ссылкой на разбираемый отчёт. +- Удалять принятое из `_accepted/`. Это архив приёмки. diff --git a/agents/REPORT-TEMPLATE.md b/agents/REPORT-TEMPLATE.md new file mode 100644 index 0000000..f434508 --- /dev/null +++ b/agents/REPORT-TEMPLATE.md @@ -0,0 +1,27 @@ +# Отчёт: заголовок задания + +- **Задание:** `../inbox/` — файл с тем же именем +- **Агент:** id агента +- **Дата:** ГГГГ-ММ-ДД +- **Ветка / коммиты:** ветка и хеши + +## Что сделано + +Списком, с указанием файлов. + +## Как проверено + +Команда и её фактический вывод. Если проверка не запускалась — так и написать. + +## Что не сделано + +Незакрытая часть задания и причина. Пусто — тоже ответ, но осознанный. + +## Замечено рядом + +Дефекты и улучшения за границами задачи — предложениями отдельных задач, +без самовольного исправления. + +## Вопросы к приёмке + +Места, где решение спорное и нужен взгляд главного агента. diff --git a/agents/TASK-TEMPLATE.md b/agents/TASK-TEMPLATE.md new file mode 100644 index 0000000..ada3c9f --- /dev/null +++ b/agents/TASK-TEMPLATE.md @@ -0,0 +1,27 @@ +# Заголовок задания + +- **Кому:** id агента из таблицы в README +- **Дата:** ГГГГ-ММ-ДД +- **От кого:** владелец проекта / главный агент +- **Ветка:** `<префикс-агента>/краткое-имя` +- **Файл отчёта:** `../done/` с тем же именем, что у этого файла + +## Что нужно сделать + +Одна задача — один файл. Если задач две, это два файла: иначе половину примут, +а половину нет, и состояние станет непонятным. + +## Границы + +Чего в этой задаче делать не нужно, даже если исправление очевидно и занимает +минуту. Замеченное рядом — в отчёт списком. + +## Как проверить результат + +Команды, которые должны пройти, и что считается доказательством. «Работает» — +не критерий приёмки. + +## Контекст и ограничения + +Файлы, документы, решения, которые нельзя нарушать. Если чего-то не знаешь — +пиши «не определено», а не правдоподобную выдумку. diff --git a/agents/_accepted/.gitkeep b/agents/_accepted/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/antigravity/done/.gitkeep b/agents/antigravity/done/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/antigravity/inbox/.gitkeep b/agents/antigravity/inbox/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/antigravity/notes/.gitkeep b/agents/antigravity/notes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/claude/done/.gitkeep b/agents/claude/done/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/claude/inbox/.gitkeep b/agents/claude/inbox/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/claude/notes/.gitkeep b/agents/claude/notes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/codex/done/.gitkeep b/agents/codex/done/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/codex/inbox/.gitkeep b/agents/codex/inbox/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/codex/notes/.gitkeep b/agents/codex/notes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/grok/done/.gitkeep b/agents/grok/done/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/grok/inbox/.gitkeep b/agents/grok/inbox/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/grok/notes/.gitkeep b/agents/grok/notes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/hermes/done/.gitkeep b/agents/hermes/done/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/hermes/inbox/.gitkeep b/agents/hermes/inbox/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/hermes/notes/.gitkeep b/agents/hermes/notes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/opencode/done/.gitkeep b/agents/opencode/done/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/opencode/inbox/.gitkeep b/agents/opencode/inbox/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agents/opencode/notes/.gitkeep b/agents/opencode/notes/.gitkeep new file mode 100644 index 0000000..e69de29 -- 2.45.2 From 723deea95fbe17f0eb2896dacc4954b6ceb8d0e5 Mon Sep 17 00:00:00 2001 From: Ochenstarik Date: Tue, 18 Aug 2026 14:20:57 +0700 Subject: [PATCH 2/4] =?UTF-8?q?chore(agents):=20=D1=80=D0=B0=D0=B7=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B8=D1=85=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=BF=D0=BE=D0=BA=20=D1=81=20=D0=B4=D0=B8=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D0=B0=202026-08-18?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Задания, отчёты и патчи, лежавшие в C:\Users\Ochenstarik\projects и в домашней папке, перенесены в agents/. Разложено по агентам там, где имя файла позволяло определить автора; остальное — в _salvage-2026-08-18/ и разбирается вручную. Патчи в notes/salvage-2026-08-18/ — незакоммиченная работа из брошенных рабочих копий: она существовала только на диске. Тяжёлое (релизные архивы, инсталляторы, наборы данных) в репозиторий не попало: оно лежит рядом, в Agent_projects/_archive и Agent_projects/_data. Co-Authored-By: Claude Opus 5 --- agents/_salvage-2026-08-18/acc-desktop-create-shortcut.vbs | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 agents/_salvage-2026-08-18/acc-desktop-create-shortcut.vbs diff --git a/agents/_salvage-2026-08-18/acc-desktop-create-shortcut.vbs b/agents/_salvage-2026-08-18/acc-desktop-create-shortcut.vbs new file mode 100644 index 0000000..1969454 --- /dev/null +++ b/agents/_salvage-2026-08-18/acc-desktop-create-shortcut.vbs @@ -0,0 +1,7 @@ +Set oShell = CreateObject("WScript.Shell") +Set oLink = oShell.CreateShortcut(oShell.SpecialFolders("Desktop") & "\Agent Control Center.lnk") +oLink.TargetPath = oShell.ExpandEnvironmentStrings("%LOCALAPPDATA%") & "\hermes\hermes-agent\node_modules\.bin\electron.cmd" +oLink.Arguments = oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\acc-desktop" +oLink.WorkingDirectory = oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\acc-desktop" +oLink.Description = "Agent Control Center — управление ИИ-агентами" +oLink.Save -- 2.45.2 From e96343882e837aa4b58281aeb6e1d1102a289b84 Mon Sep 17 00:00:00 2001 From: Ochenstarik Date: Tue, 18 Aug 2026 14:30:44 +0700 Subject: [PATCH 3/4] =?UTF-8?q?task(antigravity):=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=81=D0=BE=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B9=20=D0=BC=D0=B0=D1=88=D0=B8?= =?UTF-8?q?=D0=BD=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Задание повторяет разбор, выполненный на основной машине 2026-08-18: опись всех папок, проверка каждой локальной ветки против GitHub, спасение незапушенного, единая структура agents/, карантин вместо удаления. Отдельно записаны грабли, на которые разбор уже наступил: длинные пути Windows, занятые процессом папки, чужая работа в той же копии, CRLF, валидатор документации, ветка master вместо main. Co-Authored-By: Claude Opus 5 --- ...8-18-консолидация-рабочего-пространства.md | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md diff --git a/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md b/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md new file mode 100644 index 0000000..86485be --- /dev/null +++ b/agents/antigravity/inbox/2026-08-18-консолидация-рабочего-пространства.md @@ -0,0 +1,170 @@ +# Консолидация проектов в единое рабочее пространство + +- **Кому:** antigravity +- **Дата:** 2026-08-18 +- **От кого:** владелец проекта (через Claude) +- **Ветка:** `antigravity/workspace-consolidation` +- **Файл отчёта:** `../done/2026-08-18-консолидация-рабочего-пространства.md` + +## Зачем это делается + +На машине владельца проекты расползлись: десятки клонов одного репозитория в +разных папках, задания и отчёты агентов вперемешку с бинарниками, и часть +работы существовала только на диске — ни в одном репозитории её не было. +Найти, кто что сделал, было нельзя. + +На основной машине разбор уже выполнен. Нужно сделать то же самое на этой. +Результат: один каталог `Agent_projects` с клонами всех репозиториев, единая +структура `agents/` внутри каждого, и ничего ценного за пределами git. + +## Что нужно сделать + +Порядок обязателен: сначала опись, потом спасение, и только потом уборка. +Обратный порядок уничтожает данные. + +### 1. Опись + +Найти все папки проектов: домашний каталог пользователя, `~/projects`, +рабочий стол, и любые другие места, где агенты создавали клоны. Для каждой +папки записать: git это или нет, remote, текущая ветка, число незакоммиченных +изменений, число файлов. + +Опись сохранить в отчёт целиком. Она — доказательство, что ничего не пропущено. + +### 2. Проверка, что работа есть на GitHub + +Для **каждой** папки с git проверить **все локальные ветки**, а не только +текущую. Одной проверки HEAD недостаточно: в брошенных клонах лежат ветки, +которых нет ни на GitHub, ни в других копиях. + +Метод, который работает: + +```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)' +``` + +Тип ветки, чей tip отсутствует в списке, проверить вторым способом — ветка +могла быть удалена на GitHub после мержа, но коммит в репозитории остаётся: + +```bash +gh api "repos///commits/" --jq .sha +``` + +Если оба способа говорят «нет» — работа существует только на этом диске. + +Отдельно проверить, что удалённый репозиторий вообще существует: +`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) + _accepted/ +``` + +Тексты `README.md` и шаблонов взять из любого уже разобранного репозитория — +они одинаковы во всех. В `AGENTS.md` дописать раздел со ссылкой на +`agents/README.md`; если `AGENTS.md` нет — создать. + +### 5. Раскладка заданий и отчётов + +Папки с заданиями и отчётами агентов разложить по `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` не мержить. + +## Границы + +- Ничего не удалять безвозвратно. Только карантин. +- Не пушить в `main` и не мержить PR. +- Не трогать клоны чужих репозиториев (владелец != владелец проектов), даже + если в них есть локальные правки. Записать их в отчёт и оставить на месте. +- Не трогать пользовательские файлы: фотографии, книги, документы, бэкапы. +- Не менять глобальный `git config`. Подпись ставить локально в репозитории, + ту же, что в истории коммитов (`git log --format='%an <%ae>'`). + +## Что здесь ломается + +Проверено на основной машине, повторится и тут: + +- **Длинные пути 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`. + +## Как проверить результат + +Считается сделанным, когда одновременно: + +1. `Agent_projects` содержит клоны всех репозиториев владельца, у каждого + `agents/` с полным набором папок; +2. для каждой папки из описи в отчёте сказано, что с ней стало: перенесена, + в карантине, оставлена и почему; +3. ни одна ветка ни в одной папке не осталась незапушенной — доказать + повторным прогоном проверки из пункта 2 и приложить её вывод; +4. в каждом репозитории открыт PR, `main` не тронут; +5. карантин на месте, ничего не удалено. + +## Контекст + +Как выглядит результат на основной машине — в этом же репозитории: +`agents/README.md` описывает схему, `Agent_projects/README.md` (у владельца) +— карту рабочего пространства. Если структура папок на этой машине окажется +принципиально другой — не подгонять её под описание, а сообщить в отчёте. -- 2.45.2 From 8f4cf4f4a371b8dd5628dccb63503a24f8c99c0c Mon Sep 17 00:00:00 2001 From: Ochenstarik Date: Tue, 18 Aug 2026 14:33:45 +0700 Subject: [PATCH 4/4] =?UTF-8?q?task(antigravity):=20=D0=B2=D1=8B=D0=B3?= =?UTF-8?q?=D1=80=D1=83=D0=B7=D0=BA=D0=B0=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7?= =?UTF-8?q?=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D0=B5=D0=B2=20=D0=B8=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D0=B0=20agents/=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B9=20=D0=BC?= =?UTF-8?q?=D0=B0=D1=88=D0=B8=D0=BD=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Задание переписано: требуется не разбор диска, а развёртывание рабочего пространства — клоны 17 репозиториев в C:\Users\Ochenstarik\Agent_projects и проверка, что структура agents/ на месте. Co-Authored-By: Claude Opus 5 --- ...8-18-консолидация-рабочего-пространства.md | 189 ++++++------------ 1 file changed, 60 insertions(+), 129 deletions(-) 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` ничего не изменилось. -- 2.45.2