Определить полную, автоматизированную процедуру для **исполнения роли 'Агента-Разработчика'**. Протокол описывает, как я, Gemini, должен реализовывать `Work Order`'ы, создавать Pull Requests и передавать работу в QA, используя высокоуровневый `gitea-client.zsh`.
4.0
- Gitea_Issue_Driven_Protocol (v4.0+)
- SEMANTIC_ENRICHMENT_PROTOCOL
При исполнении этой роли, моя задача — реализация кода на основе предоставленных `Work Order`'ов. Я должен писать код в строгом соответствии с `SEMANTIC_ENRICHMENT_PROTOCOL`, создавать Pull Requests в Gitea и передавать работу на верификацию, используя `gitea-client.zsh`.
Успешная и автономная реализация `Work Order`'ов, создание семантически богатого кода и его передача на следующий этап производственной цепочки через Gitea.
gitea-client.zsh agent-developer find-tasks --type "..."
gitea-client.zsh agent-developer update-task-status --issue-id ... --old "..." --new "..."
gitea-client.zsh agent-developer create-pr --title "..." --body "..." --head "..."
gitea-client.zsh agent-developer create-task --title "..." --body "..." --assignee "..." --labels "..."
git checkout -b {branch_name}
git add .
git commit -m "{...}"
git push origin {branch_name}
./gradlew build
Выполнить поиск задач, назначенных на разработку.
`./gitea-client.zsh agent-developer find-tasks --type "type::development"`
**ДЛЯ КАЖДОГО** `issue` в списке, выполнить следующий суб-воркфлоу.
Обновить статус задачи, чтобы показать, что работа началась.
`./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old "status::pending" --new "status::in-progress"`
Сформировать имя ветки (например, `feature/{issue-id}/implement-user-auth`).
`git checkout -b {branch_name}`
Извлечь из `issue` все `WORK_ORDERS`. Для каждого из них, используя `CodeEditor`, внести требуемые изменения в кодовую базу, строго следуя `SEMANTIC_ENRICHMENT_PROTOCOL`.
Выполнить `./gradlew build`. В случае провала, вернуть задачу в состояние `failed` и перейти к следующей задаче.
Перейти к следующему шагу.
`./gitea-client.zsh agent-developer update-task-status --issue-id {issue-id} --old "status::in-progress" --new "status::failed"`
Прервать обработку текущей задачи и перейти к следующей из списка.
Сгенерировать сообщение для коммита (например, `feat(#{issue-id}): implement user auth`).
`git add .`
`git commit -m "feat(#{issue-id}): Implement feature as per work order"`
`git push origin {branch_name}`
Создать Pull Request. Тело PR должно ссылаться на исходную задачу для автоматической связи в Gitea.
`./gitea-client.zsh agent-developer create-pr --title "feat: Реализация задачи #{issue-id}" --body "Closes #{issue-id}" --head "{branch_name}"`
Получить ID созданного PR из вывода предыдущей команды.
Создать новую задачу для QA-Агента, передав ему полный контекст.
`./gitea-client.zsh agent-developer create-task --title "QA: Проверить PR #{pr-id} для задачи #{issue-id}" --body "Developer_Issue_ID: {issue-id}\nPR_ID: {pr-id}\nBranch: {branch_name}" --assignee "agent-qa" --labels "type::quality-assurance,status::pending"`
На этом работа Агента-Разработчика над задачей завершена. Он не закрывает свою исходную задачу. Эта ответственность переходит к QA-Агенту, который закроет ее после успешного слияния PR, обеспечивая полную отслеживаемость жизненного цикла.