Локальные AI-агенты, Git и DevOps/aka-gst

Эксперимент 15 · 4 мин

Эксперимент 15. Поставка в fork

Содержание раздела
  1. Что мы делаем и зачем
  2. Что должно быть готово
  3. Где выполнять
  4. Scope
  5. Команды PowerShell
  6. Как действовать при запросе разрешения
  7. Что должно получиться
  8. Типовые ошибки и действия
  9. Артефакты и доказательства
  10. Критерий завершения

Атомарная цель. Проверить scope, зафиксировать gateway и открыть draft PR в собственном fork без изменения upstream main.

Что мы делаем и зачем

Финальный этап проверяет инженерную дисциплину: commit должен содержать только согласованный gateway и документацию, тесты должны быть воспроизводимы, а публикация выполняется отдельно после показа точного scope.

Что должно быть готово

  • Все тесты зелёные.
  • В Git нет .env, audio, model files и персональных screenshots.
  • gh auth status успешен.

Где выполнять

local-agent-gateway. Open-LLM-VTuber публикуется только если там есть отдельно согласованный diff; по умолчанию он остаётся чистым.

Scope

РазрешеноТолько действия, прямо указанные в prompt и командах этого эксперимента.
ЗапрещеноСекреты, изменение main/upstream, расширение scope и скрытое исправление новых ошибок.
РезультатАртефакты и критерии на третьей странице эксперимента.

Откройте Codex из папки, указанной на предыдущей странице. Для независимого аудита обязательно создайте новую сессию. Скопируйте следующий prompt целиком, не вырезая ограничения.

PROMPT ДЛЯ CODEX - КОПИРОВАТЬ ЦЕЛИКОМ

Работай как инженер в режиме контролируемого агента.
Перед любым изменением покажи карту релевантной части репозитория, одну атомарную цель, файлы чтения и изменения, риски и команды проверки.
Сначала покажи план. Не меняй файлы до моего явного подтверждения.
Не используй sudo, force push, git reset --hard, git clean -fd и опасные команды удаления.
Не переключай и не изменяй main.
Не читай и не печатай .env, токены, SSH-ключи, cookies и keychain.
Не трогай файлы за пределами указанного scope.
Не скрывай ошибки и не подменяй тест словесным утверждением.
После изменения покажи краткий diff, реальный минимальный тест и git status --short.
Если нужен больший scope, остановись и запроси новый атомарный шаг.

Текущая задача: подготовить поставку local-agent-gateway в собственный GitHub fork.

Сначала read-only покажи branch, remotes, git status --short, diff --stat, список untracked и результаты secret/large-file audit. Затем выполни git diff --check и полный pytest. Сформулируй точный commit scope и draft PR title/body.

Не выполняй commit, push и создание PR до моего отдельного подтверждения. После подтверждения сделай один commit, push только рабочей ветки без force и открой draft PR в мой fork. Покажи URL, target/base и финальный git status --short. Не меняй main и upstream.

Команды PowerShell

Команды ниже нужны либо для ручного выполнения, либо для сверки предложения Codex. Строки после комментария «после подтверждения» не запускаются заранее.

КОМАНДЫ - КОПИРОВАТЬ ПО ПОРЯДКУ

bash
git branch --show-current
git remote -v
git status --short
git diff --stat
git diff --check
uv run pytest -q
# commit/push/PR - только после отдельного подтверждения

Как действовать при запросе разрешения

Прочитайте команду и рабочую папку; сразу сверьте их со scope этого эксперимента.

Для одной безопасной команды выберите разовое Yes, proceed.

Если команда читает секреты, пишет за пределами scope или меняет main - нажмите Esc и объясните ограничение.

Что должно получиться

  • Diff содержит только ожидаемые gateway-файлы и README.
  • pytest и diff --check PASS.
  • Draft PR target - собственный fork и рабочая base branch.
  • Нет force push.

Типовые ошибки и действия

  • В diff есть .env/audio/model: остановиться и исключить без удаления пользовательских данных.
  • PR направлен upstream: не создавать/закрывать автоматически; исправить target до публикации.
  • Рабочая ветка main: остановиться.

Артефакты и доказательства

Критерий завершения

ГОТОВАЯ ЗАПИСЬ В ОТЧЁТ

Эксперимент 15: Поставка в fork | Статус: PASS / FAIL / NOT PROVEN
Доказательство: <минимальный обезличенный вывод> | Не доказано: <ограничение>
Source tree: unchanged / <известный diff> | Следующий шаг: Выполнить финальный Definition of Done и сохранить итоговый отчёт.