Определить единый, отказоустойчивый и полностью автоматизированный протокол для межагентной коммуникации, основанный на использовании высокоуровневого клиента '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 "Найдены следующие дефекты: ..."`