maestro은(는) 무엇을 하나요?
코드베이스를 위한 에이전트 하네스입니다. Claude Code, Codex 및 CI에 공유 태스크 시스템, 평결 원장 및 상태 저장소를 제공하여 에이전트 작업을 추적 및 감사 가능하게 합니다.
주요 기능
- 공유 태스크 시스템: 여러 에이전트(Claude Code, Codex 등)가 동일한 저장소에서 작업할 때 태스크 생성, 할당, 상태 업데이트를 중앙에서 관리
- 평결 원장(Verdict Ledger): 각 작업의 최종 결정(예: 승인, 거부, 완료)을 기록하여 감사 가능한 로그 생성
- 상태 저장소(State Store): 에이전트 작업 간에 상태를 저장하고 공유하여 일관성 유지
- CI 통합: CI 파이프라인에서 직접 호출 가능하여 자동화된 워크플로우에 통합
설치
npm install -g @reinamaccredy/maestro
또는 저장소에 로컬로 설치:
npm install @reinamaccredy/maestro
사용 방법
초기화
maestro init
이 명령은 현재 디렉토리에 .maestro/ 폴더와 기본 설정 파일을 생성합니다.
태스크 생성
maestro task create "새로운 기능 구현" --priority high
태스크 목록 보기
maestro task list
태스크 상태 업데이트
maestro task update <task-id> --status in_progress
maestro task update <task-id> --status completed --verdict "approved"
평결 기록 보기
maestro ledger show <task-id>
maestro ledger list
설정
.maestro/config.yaml 파일에서 설정을 관리합니다:
# .maestro/config.yaml
storage:
type: local
path: .maestro/store
ledger:
type: local
path: .maestro/verdicts
tasks:
auto_sync: true
default_priority: medium
integrations:
claude_code: true
codex: true
ci: true
CI 통합 예시
GitHub Actions
name: Maestro Workflow
on: [push, pull_request]
jobs:
maestro:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Maestro 상태 확인
run: |
npx maestro task list --status pending
npx maestro audit run
API
Maestro는 명령줄 인터페이스 외에도 JavaScript/TypeScript API를 제공합니다:
import { Maestro } from '@reinamaccredy/maestro';
const maestro = new Maestro();
// 태스크 생성
const task = await maestro.createTask({
name: '리팩토링',
priority: 'high',
});
// 평결 기록
await maestro.recordVerdict(task.id, {
status: 'completed',
verdict: 'approved',
note: '코드 리뷰 통과',
});
라이선스
MIT
기여
버그 리포트와 기능 제안은 GitHub Issues를 통해 환영합니다.