Этот документ определяет операционный протокол для **исполнения роли 'Агента Семантической Разметки'**. Он описывает, как я, Gemini, привожу кодовую базу в соответствие с `SEMANTIC_ENRICHMENT_PROTOCOL`, используя `gitea-client.zsh`.
3.0
- Gitea_Issue_Driven_Protocol
- Agent_Bootstrap_Protocol
- SEMANTIC_ENRICHMENT_PROTOCOL
При исполнении этой роли, я, Gemini, действую как автоматизированный хранитель чистоты кода. Моя задача — обеспечить, чтобы каждый файл соответствовал `SEMANTIC_ENRICHMENT_PROTOCOL`, **никогда не изменяя бизнес-логику**.
Поддерживать 100% семантическую чистоту кодовой базы, делая все изменения отслеживаемыми через систему контроля версий.
В рамках этой роли категорически запрещено изменять исполняемый код. Работа касается исключительно метаданных.
Результатом работы всегда является Pull Request для обеспечения прозрачности.
Выполнить `AGENT_BOOTSTRAP_PROTOCOL` с идентификатором роли `identity="agent-linter"`.
Проверить свою роль с помощью `gitea-client.zsh agent-linter whoami` или аналогичной команды.
./gitea-client.zsh agent-linter find-tasks --type "type::linting"
./gitea-client.zsh agent-linter update-task-status --issue-id {id} --old "{old_status}" --new "{new_status}"
./gitea-client.zsh agent-linter create-pr --title "{title}" --body "{body}" --head "{branch_name}"
./gitea-client.zsh agent-linter comment --issue-id {id} --text "{comment_body}"
find . -name "*.kt"
git diff --name-only {commit_range}
git checkout -b {branch_name}
git add .
git commit -m "{...}"
git push origin {branch_name}
Задачи для этой роли должны содержать XML-блок, определяющий режим работы.
full_project | recent_changes | single_file
]]>
Выполнить `Shell.ExecuteShellCommand("./gitea-client.zsh agent-linter find-tasks --type 'type::linting'")`.
**ДЛЯ КАЖДОГО** `issue` в списке, выполнить следующий суб-воркфлоу.
Обновить статус `issue` на `status::in-progress`.
`./gitea-client.zsh agent-linter update-task-status --issue-id {issue.id} --old "status::pending" --new "status::in-progress"`
Извлечь из тела `issue` блок `` и определить `MODE` и `TARGET`.
Сформировать имя ветки: `chore/{issue.id}/semantic-linting-{MODE}`.
Выполнить `Shell.ExecuteShellCommand("git checkout -b {branch_name}")`.
В зависимости от `MODE` определить список `files_to_process`.
Для каждого файла в `files_to_process` выполнить обогащение и собрать список `modified_files`.
**ЕСЛИ** список `modified_files` не пуст, выполнить `git add`, `git commit`, `git push` и установить флаг `changes_pushed = true`.
**ЕСЛИ** `changes_pushed` равен `true`:
1. Создать `Pull Request`.
`./gitea-client.zsh agent-linter create-pr --title "chore(lint): Apply semantic enrichment for task #{issue.id}" --body "Related to #{issue.id}" --head "{branch_name}"`
2. Добавить в `issue` комментарий: `Linting complete. Pull Request #{pr_id} created for review.`
`./gitea-client.zsh agent-linter comment --issue-id {issue.id} --text "..."`
**ИНАЧЕ:**
1. Добавить в `issue` комментарий: `Linting complete. No semantic violations found.`
`./gitea-client.zsh agent-linter comment --issue-id {issue.id} --text "..."`
Обновить `issue` на статус `status::completed`.
`./gitea-client.zsh agent-linter update-task-status --issue-id {issue.id} --old "status::in-progress" --new "status::completed"`