코딩을 지휘하다 — AI 에이전트와 함께하는 코드 심포니 🎼
Maestro는 AI 에이전트가 생성하거나 수정한 코드 변경을 "승인 노트" 형태로 제시하고, 사람이 빠르게 승인/반려하여 안전하게 병합하도록 돕는 개발 보조 도구입니다.
- AI 에이전트 자동 생성 코드를 인간이 빠르게 확인하고 승인할 수 있도록 가시화
- 승인(merge) 워크플로우를 단순화하여 생산성 향상
- 로컬 개발 환경에서 안전하게 에이전트와 협업할 수 있는 도구 제공
- 에이전트가
POST /api/request로 승인 요청 전송 - Maestro 서버는 WebSocket으로 대시보드에 알림 브로드캐스트
- 사용자가 대시보드에서 APPROVE / REJECT / UNDO 조작 가능
- 승인 시 서버에서 로컬
git merge를 수행 MAESTRO_SERVER_TOKEN설정 시Authorization: Bearer인증 적용- 기본
HOST=127.0.0.1+ALLOWED_ORIGINS화이트리스트 기반 CORS 적용 - 승인 이력 악보뷰(
WP-009):GET /api/history+HISTORY_APPEND실시간 히스토리 패널 function bach: 상단 미니 플레이어에서 YouTube 기반 BGM 재생/일시정지/볼륨/채널 URL 등록- 조건부 자동승인(
WP-008) 2~3차: explicit/cooldown/dry-run/중복승인 차단 + 운영 가시성 API(GET /api/auto-approve/status,GET /api/auto-approve/events) 반영
- 단계: 실행 가능한 MVP
- 확인된 동작:
npm run build성공, 서버/health응답 확인 - 완료된 기반 작업
- React + Vite + Tailwind 기반 대시보드
- WebSocket 기반 승인 요청 수신 및 표시
- 승인(
APPROVE) / 반려(REJECT) / 롤백(UNDO) 이벤트 처리 및 Git 연동 - 에이전트 연동용 훅 스크립트(
hooks/notify-maestro.sh) 제공 - CI 품질 게이트(
npm run qa, E2E), 통합 스모크(npm run smoke:integration) 구축 - 터치스크린 조작(레인 승인/반려, 롤백 버튼) 지원
- 승인 이력 악보뷰(
WP-009) 1~2차 구현 완료- 서버 링버퍼 + 조회 API:
GET /api/history - WebSocket 실시간 이벤트:
HISTORY_APPEND - 헤더
History버튼/H단축키 + 우측 패널 필터(프로젝트/결과/소스)
- 서버 링버퍼 + 조회 API:
- 원클릭 실행 경로(
npm run start:app,npm run check:env) 제공 start:app오류 조치 메시지/대시보드 URL 자동 감지 고도화
- 확인된 개선 필요 항목
- 조건부 자동승인(
WP-008) 운영 API 기반 대시보드 UI 가시화(후속) KI-001function bachHz 미노출 환경 원인 분석/재현 확보 필요
- 조건부 자동승인(
우선순위 중심의 상세 실행 계획은 docs/WORK_PLAN.md에 정리되어 있습니다.
즉시 진행할 핵심 3가지:
- P1 조건부 자동승인 운영 UI(운영 API 시각화) 고도화
- P2 승인 이력(
WP-009) 3차: 악보 시각화 고도화 + 접근성 마감 - P2 문서/운영 동기화: 실행 표준 경로와 장애 대응 가이드 지속 업데이트
설치 단순화 1차 상세 계획은 docs/INSTALL_SIMPLIFICATION_PHASE1.md를 참고하세요.
# 1. 레포지토리 클론
git clone https://github.com/redsunjin/maestro-coding.git
cd maestro-coding
# 2. 의존성 설치
npm install
# 3. 설정 파일(.env) 준비 — 대화형 설정 사용
npm run configure
# 또는 직접 .env.example을 복사해 편집
cp .env.example .env
# 4. 원클릭 실행 (권장)
npm run start:app
# (대안) 수동 실행
# 터미널 A: npm run server
# 터미널 B: npm run dev
# 환경 점검만 먼저 하려면
npm run check:env에이전트(또는 훅)에서 승인 요청 전송 예시:
curl -X POST http://localhost:8080/api/request \
-H 'Content-Type: application/json' \
-d '{"agentId":"local_agent","branchName":"feature/x","diffSummary":{"title":"작업 완료","shortDescription":"변경요약"}}'토큰 인증을 활성화했다면 Authorization 헤더를 함께 보내야 합니다.
curl -X POST http://localhost:8080/api/request \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <MAESTRO_SERVER_TOKEN>' \
-d '{"agentId":"local_agent","branchName":"feature/x","diffSummary":{"title":"작업 완료","shortDescription":"변경요약"}}'조건부 자동승인에서 명시 플래그를 요구하도록 설정했다면(MAESTRO_AUTO_APPROVE_REQUIRE_EXPLICIT=true), 요청 본문에 "autoApprove": true를 포함해야 자동승인 대상이 됩니다.
운영 상태 확인 API 예시:
curl -s http://localhost:8080/api/auto-approve/status | jq
curl -s "http://localhost:8080/api/auto-approve/events?limit=20" | jq자세한 설치/사용법은 USER_GUIDE.md를 참고하세요.
변경 후 품질 검증은 프로젝트 QA 에이전트 커맨드로 수행합니다.
npm run qaQA 범위와 수동 체크리스트는 docs/QA_AGENT.md를 참고하세요.
기본 테스트 구성은 npm test (server regression + UI regression)입니다.
E2E 최소 시나리오는 npm run test:e2e로 실행합니다.
기획 및 아키텍처 문서는 docs/PLAN.md에 보관되어 있습니다.
진행 현황 기반 작업계획은 docs/WORK_PLAN.md를 참고하세요.
QA 실행 가이드는 docs/QA_AGENT.md를 참고하세요.
- 이 레포는 오픈 실험용입니다. 기여하려면 이슈를 남기고 PR을 보내주세요.
- 민감 정보(토큰 등)는 절대 커밋하지 마세요.
.env를 사용하세요.