From 40994c847ddf052159bbcbe54ca95c047d18a8cd Mon Sep 17 00:00:00 2001 From: Ochenstarik Date: Tue, 18 Aug 2026 12:58:01 +0700 Subject: [PATCH] =?UTF-8?q?chore(agents):=20=D0=B5=D0=B4=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D0=B0?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B9=20=D0=B8=20=D0=BF?= =?UTF-8?q?=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..cb3010c --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,34 @@ +# Правила работы агентов — finance-telegram-bot + +Документ адресован любому исполнителю: человеку или агенту. Он описывает не +устройство проекта, а порядок работы над ним. + +## 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..6031751 --- /dev/null +++ b/agents/README.md @@ -0,0 +1,62 @@ +# Задания агентов — finance-telegram-bot + +Единая схема для всех репозиториев в `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