Определить единый, отказоустойчивый и полностью автоматизированный протокол для межагентной коммуникации, основанный на использовании высокоуровневого клиента 'gitea-client.zsh'. 4.0 **КЛЮЧЕВОЕ ИЗМЕНЕНИЕ:** Все взаимодействия с Gitea **ОБЯЗАНЫ** осуществляться исключительно через `gitea-client.zsh`. Прямые вызовы `tea` или `git` в рамках жизненного цикла задачи запрещены, чтобы гарантировать предсказуемость и централизованное управление логикой. Клиент `gitea-client.zsh` автоматически определяет репозиторий (`{repo_slug}`) при инициализации. Агентам не нужно управлять этим состоянием. Роль (`{role_name}`) передается как первый аргумент при каждом вызове. Человек взаимодействует с системой исключительно через диалог с Агентом-Архитектором, который инициирует весь воркфлоу. Конечным продуктом работы Агента-Разработчика является формальный Pull Request (PR), который является основой для проверки и слияния. `./gitea-client.zsh {role_name} {command} [options]` `create-task --title "..." --body "..." --assignee "..." --labels "..."` Создание новой задачи в Gitea. `find-tasks --type "{label_name}"` Поиск открытых задач с нужным типом и статусом 'pending'. `update-task-status --issue-id ID --old "{label}" --new "{label}"` Атомарное изменение статуса задачи (например, с 'pending' на 'in-progress'). `create-pr --title "..." --body "..." --head "{branch}" --base "{target_branch}"` Создание Pull Request. `merge-and-complete --issue-id ID --pr-id ID --branch "{branch_to_delete}"` Атомарная операция: слияние PR, удаление ветки и закрытие связанной задачи. `return-to-dev --issue-id ID --pr-id ID --report "{defect_report_text}"` Атомарная операция: отклонение PR, добавление комментария с отчетом и переназначение задачи разработчику. 1. Архитектор, после согласования с человеком, создает задачу для Разработчика. `./gitea-client.zsh agent-architect create-task --title "Реализовать модуль X" --body "..." --assignee "agent-developer" --labels "type::development,status::pending"` 1. Разработчик находит назначенную ему задачу. `./gitea-client.zsh agent-developer find-tasks --type "type::development"` 2. Берет задачу в работу. `./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old "status::pending" --new "status::in-progress"` 3. После написания кода и локальных тестов создает Pull Request. `./gitea-client.zsh agent-developer create-pr --title "feat: Реализован модуль X" --body "Closes #{issue-id}" --head "feature/{issue-id}-module-x"` 4. Создает задачу для QA-агента, передавая ему контекст (ID задачи и PR). `./gitea-client.zsh agent-developer create-task --title "QA: Проверить реализацию модуля X" --body "PR: #{pr-id}\nIssue: #{issue-id}" --assignee "agent-qa" --labels "type::quality-assurance,status::pending"` 1. QA-Агент находит свою задачу. `./gitea-client.zsh agent-qa find-tasks --type "type::quality-assurance"` 2. Берет задачу в работу. `./gitea-client.zsh agent-qa update-task-status --issue-id {qa-issue-id} --old "status::pending" --new "status::in-progress"` 3. Извлекает `PULL_REQUEST_ID` и `DEVELOPER_ISSUE_ID` из тела задачи и проводит аудит кода. Выполняет единую команду для слияния PR, удаления ветки и закрытия исходной задачи разработчика. `./gitea-client.zsh agent-qa merge-and-complete --issue-id {developer-issue-id} --pr-id {pr-id} --branch "feature/{issue-id}-module-x"` Выполняет единую команду для отклонения PR и возврата задачи разработчику с отчетом. `./gitea-client.zsh agent-qa return-to-dev --issue-id {developer-issue-id} --pr-id {pr-id} --report "Найдены следующие дефекты: ..."`