Skip to content

feat: add --claude, --codex, --auto flags for AI agent automation#115

Merged
skulidropek merged 2 commits intoProverCoderAI:mainfrom
alex-radchenko-github:add-flags-claude-auto
Mar 7, 2026
Merged

feat: add --claude, --codex, --auto flags for AI agent automation#115
skulidropek merged 2 commits intoProverCoderAI:mainfrom
alex-radchenko-github:add-flags-claude-auto

Conversation

@alex-radchenko-github
Copy link
Copy Markdown
Contributor

Summary

Добавлена поддержка AI-агентов (Claude, Codex) с тремя режимами работы через CLI-флаги.

Новые флаги

Флаг Описание
--claude Запуск Claude Code агента внутри контейнера после clone
--codex Запуск Codex агента внутри контейнера после clone
--auto Полностью автономный режим: агент выполняет задачу, создаёт PR, пушит (требует --claude или --codex)

Режимы работы

--force                        → SSH в контейнер (shell)
--force --claude               → SSH в контейнер с запуском claude интерактивно
--force --claude --auto        → claude работает автономно, контейнер удаляется после завершения

Пример использования

pnpm run docker-git clone https://github.com/agiens/crm/issues/123 --force --claude --auto

Результат:

  • Автовыполнение задачи из issues/123
  • Описание результата выполнения в карточке issues/123 + перенос карточки в столбец In Review (GitHub Projects V2)
  • Создание PR
  • Контейнер удаляется после завершения

Что изменено

  • CLI parser (parser-options.ts): добавлены --claude, --codex, --auto флаги
  • Domain model (domain.ts): новый тип AgentMode = "claude" | "codex", расширен TemplateConfig
  • Command builders (command-builders.ts): резолвинг agentMode из raw options
  • Docker Compose template (docker-compose.ts): проброс AGENT_MODE / AGENT_AUTO env vars в контейнер
  • Entrypoint tasks (tasks.ts): логика запуска агента внутри контейнера:
    • Формирование промпта из номера issue
    • Запуск claude --dangerously-skip-permissions -p или codex --approval-mode full-auto
    • Постинг результата как комментарий к issue
    • Перемещение issue в столбец "In Review" через GitHub Projects V2 GraphQL API
  • Docker up (docker-up.ts): polling agent.done / agent.failed маркеров, cleanup контейнера после --auto
  • Error handling (errors.ts, program.ts): новый AgentFailedError с pattern matching

Архитектура

CLI (--claude --auto)
  → buildCreateCommand() — resolveAgentMode()
    → TemplateConfig { agentMode: "claude", agentAuto: true }
      → docker-compose.yml: AGENT_MODE=claude, AGENT_AUTO=1
        → entrypoint.sh: запуск агента после clone
          → polling agent.done/agent.failed
            → runDockerDownCleanup() — удаление контейнера

Следует принципу Functional Core, Imperative Shell: вся логика резолвинга опций — чистые функции, эффекты (docker, SSH, polling) изолированы в shell-слое через Effect-TS.

Test plan

  • pnpm run docker-git clone <repo> --force — SSH в контейнер (без агента)
  • pnpm run docker-git clone <repo> --force --claude — SSH + интерактивный Claude
  • pnpm run docker-git clone <repo>/issues/123 --force --claude --auto — полный автономный цикл
  • pnpm run docker-git clone <repo> --force --codex --auto — то же для Codex
  • Проверить что --auto без --claude/--codex не запускает агента
  • Проверить cleanup контейнера после --auto завершения
  • Проверить постинг комментария к issue и перенос в "In Review"

🤖 Generated with Claude Code

alex-radchenko-github and others added 2 commits March 7, 2026 08:07
  - --force → SSH в контейнер (shell)
  - --force --claude → SSH в контейнер с запуском claude интерактивно
  - --force --claude --auto → claude работает автономно, контейнер удаляется после завершения

Пример
pnpm run docker-git clone https://github.com/agiens/crm/issues/123 --force --claude --auto

Результат
- автовыпонение задачи issues/123
- описание результата выполнения в карточке issues/123 + перенос карточки в столбец In review
- создание PR
- контейнер удаляется после завершения
@skulidropek skulidropek merged commit 7514bc1 into ProverCoderAI:main Mar 7, 2026
9 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants