Определить единый, отказоустойчивый и полностью автоматизированный протокол для межагентной коммуникации, постановки задач и управления жизненным циклом кода. Gitea служит центральной коммуникационной шиной и системой контроля версий. Взаимодействие с Gitea осуществляется через утилиту командной строки 'tea-cli'. 3.0 Gitea Issues и Pull Requests являются единственным каналом для асинхронной коммуникации между AI-агентами. Взаимодействие происходит через 'tea-cli'. Человек взаимодействует с системой исключительно через диалог с Агентом-Архитектором. Gitea используется как "закулисный" механизм, и человек не должен создавать, комментировать или назначать Issues вручную. Конечным продуктом работы Агента-Разработчика является не просто ветка с кодом, а формальный Pull Request (PR). Именно PR является объектом верификации для QA-Агента и точкой слияния в основную ветку. Каждое действие в системе должно быть отслеживаемым. Это достигается за счет неразрывной связи: `GiteaIssue ID` <-> `Имя ветки` <-> `Pull Request ID`. Перед началом работы проверь логин tea-cli whoami. Логин должен соответствовать твоей роли агента `tea-cli issues create --title "{title}" --body "{body}" --assignee "{assignee}" --labels "{labels}"` Создает новое Issue. `tea-cli issues list --assignee "{assignee}" --labels "{labels}" --state "open"` ВНИМАНИЕ: Фильтрация по assignee и labels в tea-cli может работать некорректно. Агент должен самостоятельно фильтровать полученный список задач. Ищет открытые Issues по исполнителю и меткам. `tea-cli issues edit {issue-id} --add-labels "{labels_to_add}" --remove-labels "{labels_to_remove}" --title "{title}" --assignee "{assignee}"` Редактирует существующее Issue, в основном для смены статуса и исполнителя. `tea-cli issues close {issue-id}` Закрывает Issue. `tea-cli pull-request create --title "{title}" --body "{body}" --head "{branch_name}" --base "main"` Создает Pull Request. `tea-cli pull-request merge {pr-id}` Сливает Pull Request. `tea-cli pull-request close {pr-id}` Отклоняет (закрывает) Pull Request. Строгая система меток для управления статусом и типом задач. Единый формат для всех веток, создаваемых AI-агентами. 'feature' для новой разработки, 'fix' для исправлений. Номер Gitea Issue, инициировавшего создание ветки. Машиночитаемый заголовок Issue. `feature/123/implement-user-authentication-flow` Человек в диалоге ставит цель Архитектору. Архитектор проводит анализ, предлагает план и получает вербальное одобрение "Выполняй". Архитектор создает **первое Issue** в Gitea, используя команду `create_issue`. `tea-cli issues create --title "[ARCHITECT -> DEV] {Feature Summary}" --body "{XML Work Orders}" --assignee "agent-developer" --labels "status::pending,type::development"` 1. Разработчик находит Issue (`list_issues`), меняет его статус на `status::in-progress` (`update_issue`). `tea-cli issues edit {issue-id} --remove-labels "status::pending" --add-labels "status::in-progress"` 2. Создает ветку согласно **Branch Naming Convention**. 3. Реализует код, коммитит его, проверяет сборку (`./gradlew build`). 4. Создает **Pull Request** в Gitea (`create_pr`). `tea-cli pull-request create --title "PR for Issue #{issue-id}: {Feature Summary}" --body "Fixes #{issue-id}" --head "{branch_name}" --base "main"` 5. Создает **новое Issue** для QA-Агента (`create_issue`). `tea-cli issues create --title "[DEV -> QA] Verify & Merge PR #{pr-id}: {Feature Summary}" --body "{pr-id}" --assignee "agent-qa" --labels "status::pending,type::quality-assurance"` 6. Закрывает **свой** Issue (`close_issue`). `tea-cli issues close {issue-id}` 1. QA-Агент находит Issue (`list_issues`), меняет статус на `status::in-progress` (`update_issue`). `tea-cli issues edit {issue-id} --remove-labels "status::pending" --add-labels "status::in-progress"` 2. Извлекает `PULL_REQUEST_ID` и проводит полный аудит кода в PR. 3. **ЕСЛИ УСПЕШНО:** a. Сливает (Merge) Pull Request в `main` (`merge_pr`). `tea-cli pull-request merge {pr-id}` b. Удаляет feature-ветку. c. Закрывает свой Issue (`close_issue`). **Цикл завершен.** `tea-cli issues close {issue-id}` 4. **ЕСЛИ ПРОВАЛ:** a. Отклоняет Pull Request (`close_pr`). `tea-cli pull-request close {pr-id}` b. **Обновляет свой Issue**, возвращая его Разработчику (`update_issue`). `tea-cli issues edit {issue-id} --title "[QA -> DEV] FAILED: Fix Defects in PR #{pr-id}" --assignee "agent-developer" --remove-labels "status::in-progress,type::quality-assurance" --add-labels "status::failed,type::development"` Это создает итеративный цикл исправления ошибок в рамках одной и той же ветки и PR.