Communitygithub.com

GigleAI/cavil-loop

GitHub 레이블로 구동되는 비동기 코딩 에이전트 — 당신이 잠든 사이에도 AI가 병렬로 작업합니다.

cavil-loop란 무엇인가요?

이 스킬은 GitHub 이슈/PR 코멘트를 로컬 AI의 입력과 출력으로 연결해주는 에이전트 독립적인 비동기 코딩 워크플로우를 제공합니다. systemd 타이머, 셸 스크립트, 그리고 두 개의 GitHub 레이블('pending/agent')만 있으면 GitHub 웹 UI나 iOS gh 앱을 통해 직접 AI와 대화할 수 있습니다. 주요 장점은 에이전트에 구속되지 않는다는 점입니다. `WORKER_AGENT` 환경 변수로 Claude Code, sst/opencode, OpenAI Codex CLI, Cursor Agent CLI 중에서 원하는 워커 CLI를 선택할 수 있으며, `scripts/drivers/<name>.sh`를 통해 새로운 드라이버를 추가할 수도 있습니다. 설정은 호스트 프로젝트 내의 `coding-agent.config` 파일 하나로 관리되며, 스크립트와 systemd 유닛, 상태 로그는 모두 프로젝트 외부(스킬 디렉토리, `~/.config/`, `~/.local/state/`)에 위치하여 프로젝트를 깔끔하게 유지합니다. 기능으로는 setup(호스트 프로젝트에 데몬 배포), status(워커 및 폴링 상태 확인), cleanup(완료된 이슈 정리), disable(특정 프로젝트 중지) 등이 있으며, 각 명령은 자연어 요청이나 `/coding-agent-work-loop` 명령어로 실행할 수 있습니다. 이 스킬은 Claude Code를 포함한 다양한 호스트 에이전트 런타임에서 사용할 수 있도록 설계되었습니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor✓OpenCode
npx skills add GigleAI/cavil-loop

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

coding-agent-work-loop

English · 中文

GitHub 이슈/PR 코멘트를 로컬 AI의 입력과 출력으로 전환합니다. systemd 타이머 + 몇 개의 셸 스크립트 + 두 개의 GitHub 레이블만 있으면 GitHub 웹 UI(또는 iOS gh 앱)를 통해 AI와 직접 대화할 수 있습니다.

이 스킬은 설계상 에이전트에 구속되지 않습니다(agent-agnostic). 워커 CLI는 coding-agent.config의 WORKER_AGENT=<name>으로 선택합니다. 데몬/디스패치 스크립트는 다양한 에이전트 CLI를 연결하는 얇은 드라이버 레이어를 통해 작동합니다. 내장 드라이버: claude(기본값, Claude Code), opencode(sst/opencode), codex(OpenAI Codex CLI), cursor(Cursor Agent CLI). scripts/drivers/<name>.sh를 통해 직접 추가할 수 있습니다. 자세한 내용은 docs/drivers.md를 참조하세요.

호출 시점

사용자는 호스트 에이전트 런타임에서 /coding-agent-work-loop <command> 또는 자연어 요청을 통해 이 스킬을 호출합니다. 일반적인 형태:

  • "프로젝트 X에 이 데몬을 설치해줘" → setup 흐름 실행
  • "코딩 에이전트 상태가 어떻게 돼?" → status 흐름 실행
  • "프로젝트 X에서 코딩 에이전트를 비활성화해줘" → disable 흐름 실행

호출되었을 때 (에이전트) 해야 할 일

setup (호스트 프로젝트에 배포)

사용자가 호스트 프로젝트 경로(예: ~/github/myproject)를 알려줍니다. 단계:

  1. 경로가 존재하고 .git이 있는 git 저장소인지 확인
  2. 의존성 확인: git, gh(gh auth login으로 로그인해야 함), tmux, jq, flock, systemctl, 그리고 WORKER_AGENT(기본값 claude, 기타 내장: opencode, codex, cursor)가 선택한 워커 CLI. 각각 command -v로 확인 가능해야 함.
  3. 실행:
    bash "${CLAUDE_PLUGIN_ROOT:-$HOME/.agents/skills/coding-agent-work-loop}/setup.sh" <host-project-path>
    
    $CLAUDE_PLUGIN_ROOT은 Claude Code가 주입하는 스킬 루트 환경 변수입니다. 없으면 기본 경로 ~/.agents/skills/coding-agent-work-loop로 폴백합니다.
  4. setup.sh 완료 시 다음 단계 안내를 출력합니다. 사용자에게 그대로 전달하세요.

status

사용자가 상태를 원합니다. 단계:

  1. systemctl --user list-timers 'coding-agent-poll@*' --no-pager — 타이머 상태
  2. systemctl --user list-units 'coding-agent-poll@*.service' --no-pager — 마지막 실행
  3. 등록된 각 ~/.config/coding-agent-work-loop/*.conf에 대해:
    • tail -20 $STATE_DIR/poll.log (STATE_DIR은 conf 파일에서 읽음)
    • gh issue list --repo $REPO --label pending/agent + gh pr list --repo $REPO --label pending/agent
  4. 사용자에게 요약하여 전달

cleanup (PR이 수락/거부된 후)

사용자가 PR을 병합했거나 이슈 작업을 중단하려고 합니다. 단계:

  1. 이슈가 완료되었는지 확인(PR 병합 또는 닫힘)
  2. 실행:
    bash "$CLAUDE_PLUGIN_ROOT/scripts/cleanup-issue.sh" <issue-number>
    
    선택적 플래그: --force(워커가 바빠도 정리), --keep-worktree(세션만 종료), --delete-branch(로컬 브랜치도 삭제)

cleanup-issue.sh가 하는 일:

  • 바쁨 확인(기본적으로 거부, --force 제외)
  • 프로젝트 레벨 CLEANUP_HOOK 실행(coding-agent.config에 설정, 예: tailscale 포트 해제, dev 서버 중지)
  • 워커의 tmux 세션 종료
  • 워크트리 제거(기본값)
  • 선택적으로 로컬 브랜치 제거

disable

사용자가 한 프로젝트를 중지하려고 합니다. 단계:

  1. 인스턴스 이름 확인(systemctl --user list-timers 'coding-agent-poll@*')
  2. systemctl --user disable --now coding-agent-poll@<key>.timer
  3. 선택사항: ~/.config/systemd/user/coding-agent-poll@<key>.{service,timer} 인스턴스 심볼릭 링크 제거(실제 템플릿은 그대로 둠)
  4. 선택사항: ~/.config/coding-agent-work-loop/<key>.conf 제거
  5. 결과 보고

호스트 프로젝트에 추가되지 않는 것

setup 후 호스트 프로젝트의 워크트리에는 두 가지만 추가됩니다:

  1. .gitignore 한 줄(coding-agent.config 제외)
  2. coding-agent.config(gitignore됨, 설정 파일)

스크립트, systemd 유닛, 상태, 로그는 모두 호스트 프로젝트 외부(스킬 디렉토리 + ~/.config/ + ~/.local/state/)에 위치합니다.

전체 아키텍처

함께 제공된 README.md를 참조하세요.

파일 목록

  • setup.sh — 호스트 프로젝트 부트스트랩
  • scripts/ — 데몬 + 디스패치 스크립트(호스트 프로젝트에 복사되지 않음)
  • prompts/ — 초기 워커 프롬프트 템플릿(호스트 프로젝트의 .agents/skills/coding-agent-work-loop/prompts/로 재정의 가능)
  • systemd/ — [email protected]/.timer 템플릿 유닛; setup이 ~/.config/systemd/user/로 복사
  • coding-agent.config.example — 설정 템플릿

관련 스킬