Определить единый, отказоустойчивый и полностью автоматизированный протокол для межагентной коммуникации, постановки задач и управления жизненным циклом кода. Gitea служит центральной коммуникационной шиной и системой контроля версий. Взаимодействие с Gitea осуществляется через утилиту командной строки 'gitea-client.zsh'. 3.1 Gitea Issues и Pull Requests являются единственным каналом для асинхронной коммуникации между AI-агентами. Взаимодействие происходит через 'gitea-client.zsh'. Человек взаимодействует с системой исключительно через диалог с Агентом-Архитектором. Gitea используется как "закулисный" механизм, и человек не должен создавать, комментировать или назначать Issues вручную. Конечным продуктом работы Агента-Разработчика является не просто ветка с кодом, а формальный Pull Request (PR). Именно PR является объектом верификации для QA-Агента и точкой слияния в основную ветку. Каждое действие в системе должно быть отслеживаемым. Это достигается за счет неразрывной связи: `GiteaIssue ID` <-> `Имя ветки` <-> `Pull Request ID`. Перед началом работы агент должен убедиться, что он аутентифицирован под своей ролью, используя `gitea-client.zsh whoami` или аналогичную команду. `./gitea-client.zsh {role} create-task --title "{title}" --body "{body}" --assignee "{assignee}" --labels "{labels}"` Создает новую задачу (Issue) в Gitea. `./gitea-client.zsh {role} find-tasks --type "{type_label}"` Ищет открытые задачи с меткой `status::pending` и указанным типом. `./gitea-client.zsh {role} update-task-status --issue-id {id} --old "{old_status}" --new "{new_status}"` Изменяет статус задачи путем замены меток. `./gitea-client.zsh {role} create-pr --title "{title}" --body "{body}" --head "{branch_name}"` Создает Pull Request. `./gitea-client.zsh {role} merge-and-complete --issue-id {id} --pr-id {pr_id} --branch "{branch_name}"` Атомарная операция: сливает PR, удаляет ветку и закрывает связанную задачу. `./gitea-client.zsh {role} return-to-dev --issue-id {id} --pr-id {pr_id} --report "{report_body}"` Атомарная операция: отклоняет PR, добавляет отчет о дефектах в задачу и возвращает ее разработчику. Строгая система меток для управления статусом и типом задач. Единый формат для всех веток, создаваемых AI-агентами. 'feature' для новой разработки, 'fix' для исправлений, 'chore' для технических задач. Номер Gitea Issue, инициировавшего создание ветки. Машиночитаемый заголовок Issue. `feature/123/implement-user-authentication-flow` Человек в диалоге ставит цель Архитектору. Архитектор проводит анализ, предлагает план и получает вербальное одобрение "Выполняй". Архитектор создает **первое Issue** в Gitea. `./gitea-client.zsh agent-architect create-task --title "[ARCHITECT -> DEV] {Feature Summary}" --body "{XML Work Orders}" --assignee "agent-developer" --labels "status::pending,type::development"` 1. Разработчик находит Issue, выполнив `./gitea-client.zsh agent-developer find-tasks --type "type::development"`. 2. Меняет его статус на `status::in-progress`. `./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old "status::pending" --new "status::in-progress"` 3. Создает ветку согласно **Branch Naming Convention**. 4. Реализует код, коммитит его, проверяет сборку (`./gradlew build`). 5. Создает **Pull Request** в Gitea. `./gitea-client.zsh agent-developer create-pr --title "PR for Issue #{issue-id}: {Feature Summary}" --body "Fixes #{issue-id}" --head "{branch_name}"` 6. Создает **новое Issue** для QA-Агента. `./gitea-client.zsh agent-developer create-task --title "[DEV -> QA] Verify & Merge PR #{pr-id}" --body "{pr-id}" --assignee "agent-qa" --labels "status::pending,type::quality-assurance"` 7. Закрывает **свой** Issue (этот шаг теперь является частью `merge-and-complete` у QA-агента, но может быть и отдельным действием, если требуется). 1. QA-Агент находит Issue, выполнив `./gitea-client.zsh agent-qa find-tasks --type "type::quality-assurance"`. 2. Меняет статус на `status::in-progress`. `./gitea-client.zsh agent-qa update-task-status --issue-id {issue-id} --old "status::pending" --new "status::in-progress"` 3. Извлекает `PULL_REQUEST_ID` и проводит полный аудит кода в PR. 4. **ЕСЛИ УСПЕШНО:** a. Выполняет атомарную операцию слияния, удаления ветки и закрытия задачи. `./gitea-client.zsh agent-qa merge-and-complete --issue-id {issue-id} --pr-id {pr-id} --branch "{branch_name}"` 5. **ЕСЛИ ПРОВАЛ:** a. Выполняет атомарную операцию отклонения PR и возврата задачи разработчику. `./gitea-client.zsh agent-qa return-to-dev --issue-id {issue-id} --pr-id {pr-id} --report "{defect_report}"`