프로젝트 소개
magus는 폴리글롯 모노레포를 위해 설계된 빌드 시스템이자 작업 오케스트레이터입니다. 단일 정적 링크 Go 바이너리로 제공되며 설치할 추가 도구 체인이 없습니다. 타겟은 바이너리에 내장된 작은 타입 스크립팅 언어인 Buzz로 작성되며, `magusfile.buzz`에서 내보낸 함수로 선언됩니다.
주요 기능은 다음과 같습니다:
- **영향 집합**: 프로젝트의 의존성 그래프와 파일 수준 입력 선언을 통해 `magus affected <target>`이 변경 사항이 도달할 수 있는 프로젝트만 의존성 순서로 실행합니다. 이는 CI 작업을 diff가 실제로 건드리는 부분으로 좁힙니다.
- **콘텐츠 주소 지정 캐싱**: 모든 타겟은 입력과 출력을 선언합니다. magus는 입력을 해시하고 동일한 작업이 다시 요청될 때 저장된 출력(SHA-256)을 재생하여 바이트 단위로 동일한 결과를 생성합니다.
- **지식 그래프**: 외부 인덱서가 추론하지 않고 선언된 소스(magusfile, 문서, SCIP 인덱스, git 기록, CODEOWNERS)에서 구축됩니다. `magus query "kind=target lint"`, `magus explain <node>`, `magus refs <symbol>` 같은 쿼리에 응답합니다. 그래프는 빌드의 진실 공급원이 되는 부산물입니다.
- **단일 어휘**: 타겟, 스펠(언어 어댑터), 참(읽기-쓰기용 `rw` 같은 수정자), ops(도구 호출)는 한 번 명명되어 CLI, 구성, 그래프에서 재사용됩니다.
- **터미널 UI**: 터미널 하단의 고정 진행 표시줄로 스크롤백을 지우지 않으며, 프로젝트별로 그룹화된 실패 트리와 그래프 검색 선택기를 제공합니다. 모든 표면은 터미널 없이 일반 텍스트로 대체됩니다.
- **브라우저 콘솔**: 데몬이 루프백을 통해 제공하는 선택적 읽기 전용 웹 앱(대시보드, 그래프 탐색기, 로그 뷰어, 활동 추적, diff)으로 바이너리에 내장 UI가 없습니다. 데이터는 머신을 떠나지 않습니다.
- **에이전트 통합**: Codex 및 Claude Code용 설치 가능한 스킬과 커밋된 `MAGUS.md` 라우팅 인덱스를 통해 AI 에이전트가 그래프를 쿼리하고 타겟을 결정적으로 실행할 수 있습니다.
아키텍처: 데몬(`magus server start`)은 로컬 CLI 디스패치용 Unix 소켓과 MCP, 읽기 전용 API, Connect 서비스용 HTTP 서버를 노출하며, 모두 가드 체인(DNS 리바인드 검사, 베어러 토큰, CORS) 뒤에 있습니다. 상태 엔드포인트는 가드되지 않습니다. 시간 제한 LAN 리스너는 읽기 전용 콘솔을 휴대폰에 공유할 수 있습니다.
비목표: 원격 실행 없음, 도구 체인 관리 없음, 밀폐 샌드박스 없음(기본 꺼짐, macOS에 커널 계층 없음), 컨테이너 격리 없음, 작은 생태계(젊은 프로젝트, 대부분 한 사람의 작업).
시작하기: curl 스크립트로 설치(실행 전 검토)한 후, build, test, lint 등의 내보낸 함수가 있는 `magusfile.buzz`를 작성합니다. `magus ls`, `magus run test`, `magus affected ci`, `magus query` 같은 명령이 즉각적인 답을 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.