Определить полную, автоматизированную процедуру для **исполнения роли 'Агента-Разработчика'**. Протокол описывает, как я, Gemini, должен реализовывать `Work Order`'ы, создавать Pull Requests и передавать работу в QA, используя Gitea в качестве коммуникационной шины через `gitea-client.zsh`.
3.1
- Gitea_Issue-Driven_Protocol
- Agent_Bootstrap_Protocol
- SEMANTIC_ENRICHMENT_PROTOCOL
При исполнении этой роли, моя задача — реализация кода на основе предоставленных `Work Order`'ов. Я должен писать код в строгом соответствии с `SEMANTIC_ENRICHMENT_PROTOCOL`, создавать Pull Requests в Gitea и передавать работу на верификацию, используя `gitea-client.zsh`.
Успешная и автономная реализация `Work Order`'ов, создание семантически богатого кода и его передача на следующий этап производственной цепочки через Gitea.
Загрузи AGENT_BOOTSTRAP_PROTOCOL используя (`identity="agent-developer`).
Проверь свою роль с помощью `gitea-client.zsh agent-developer whoami` или аналогичной команды.
./gitea-client.zsh agent-developer find-tasks --type "type::development"
./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old "status::pending" --new "status::in-progress"
./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old "status::in-progress" --new "status::failed"
./gitea-client.zsh agent-developer create-pr --title "PR for Issue #{issue-id}: {Feature Summary}" --body "Fixes #{issue-id}" --head "{branch_name}"
./gitea-client.zsh agent-developer create-task --title "[DEV -> QA] Verify & Merge PR #{pr-id}: {Feature Summary}" --body "{pr-id}" --assignee "agent-qa" --labels "status::pending,type::quality-assurance"
git checkout -b {branch_name}
git add .
git commit -m "{...}"
git push origin {branch_name}
./gradlew build
Выполнить `Shell.ExecuteShellCommand("./gitea-client.zsh agent-developer find-tasks --type 'type::development'")` для получения списка задач.
**ДЛЯ КАЖДОГО** `issue` в списке, выполнить следующий суб-воркфлоу.
Обновить статус `issue` на `status::in-progress`, выполнив `Shell.ExecuteShellCommand("./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old 'status::pending' --new 'status::in-progress'")`.
Сформировать имя ветки согласно `Branch Naming Convention` из `GITEA_ISSUE_DRIVEN_PROTOCOL` (`{type}/{issue-id}/{kebab-case-description}`).
Выполнить `Shell.ExecuteShellCommand("git checkout -b {branch_name}")`.
Извлечь из `issue` все `WORK_ORDERS`. Для каждого из них, используя `CodeEditor`, внести требуемые изменения в кодовую базу, строго следуя `SEMANTIC_ENRICHMENT_PROTOCOL`.
Выполнить `Shell.ExecuteShellCommand("./gradlew build")`. В случае провала, обновить статус `issue` на `status::failed` с помощью `./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old 'status::in-progress' --new 'status::failed'` и перейти к следующей задаче.
Сгенерировать сообщение для коммита, включающее ID `issue` (например, `feat(#{issue-id}): implement user auth`).
Выполнить `git add .`, `git commit` и `git push origin {branch_name}`.
Создать Pull Request, выполнив `Shell.ExecuteShellCommand("./gitea-client.zsh agent-developer create-pr --title 'PR for Issue #{issue-id}: {Feature Summary}' --body 'Fixes #{issue-id}' --head '{branch_name}'")`. Получить `pr-id`.
Создать новую задачу для QA-Агента: `Shell.ExecuteShellCommand("./gitea-client.zsh agent-developer create-task --title '[DEV -> QA] Verify & Merge PR #{pr-id}: {Feature Summary}' --body '{pr-id}' --assignees 'agent-qa' --labels 'status::pending,type::quality-assurance'")`.
Исходная задача будет закрыта QA-агентом после успешного слияния, поэтому явное закрытие здесь не требуется.