프로젝트 소개
Orbi는 GitHub 이슈를 태그 릴리스로 변환하는 자동화 시스템이다. 이슈를 클레임하고 격리된 워크트리에서 개발한 뒤 독립적인 리뷰 세션을 실행하며, 리뷰된 헤드만 병합하고 릴리스 이슈를 통해 태그를 게시한다. GitHub 이슈가 유일한 상태 저장소 역할을 하며, 별도의 데이터베이스, 큐, 데몬은 필요하지 않다.
주요 기능:
- **GitHub 이슈 기반 작업 풀**: `ai-ready` 라벨이 작업을 디스패치하며, 전달 기록(댓글, PR, CI)은 기본적으로 완비된다.
- **완전 자동화**: 사용자 스케줄러 타이머(리눅스의 systemd, macOS의 launchd)가 5분마다 틱을 트리거하며, 수동 상태 명령은 필요하지 않다.
- **독립 리뷰 + 병합 게이트**: PR이 열린 후 독립적인 리뷰 세션이 발견된 문제를 수정하며, 리뷰된 헤드만 병합될 수 있고, AI는 보호된 브랜치를 병합하거나 푸시하지 않는다.
- **빠른 실패 처리**: 명령 오류는 즉시 실패하고 증거를 로그에 남기며, 이슈에 `ai-blocked`를 표시해 사람의 판단을 기다린다.
- **엔드투엔드 관찰 가능성**: 모든 로그와 GitHub 댓글은 동일한 `run_id`를 포함해 전체 타임라인 재구성이 가능하다.
워크플로: GitHub 이슈(ai-ready) → 클레임(브랜치 + 워크트리) → Pi 개발(계획, 구현, 테스트, 검증) → 커밋 전달 → Runner 마감(동기화, 푸시, PR 생성) → 독립 리뷰 → 병합 게이트 → 병합.
CLI 명령에는 `orbi add`(작업 디스패치), `status`(큐 확인), `session`(Pi 세션 추적), `install-units`(스케줄러 유닛 설치), `doctor`(읽기 전용 진단)가 포함된다.
설치에는 Python 3.14 이상, `uv`, `pi`(프로바이더 포함), GitHub CLI 2.94 이상, 그리고 리눅스 systemd 사용자 세션 또는 macOS launchd GUI 세션이 필요하다. 빠른 시작: 클론 후 `uv tool install --force --reinstall --editable --python python3 .`로 설치하고, 예제 설정을 복사한 뒤 `orbi setup`을 실행하고, `python3 -m orbi.runner`로 수동 틱을 실행하며, `orbi doctor`로 상태를 확인한다.
문서에는 시작하기, 설정, 워크플로, 운영, 테스트, 기여 방법이 포함되어 있다. 이 프로젝트는 Sustainable Use License(v1.0) 기반의 페어코드 라이선스를 적용받는다. 개인 및 회사 내부 사용은 무료이며 비상업적 공유도 가능하지만, Orbi 자체를 판매하는 경우(예: 서비스형 호스팅)에만 상업적 승인이 필요하다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.