OpenClaw · dependency-cruiser · JSON · PR · 원격 Mac · 2026

2026 OpenClaw 프론트 실전:
원격 Mac에서 dependency-cruiser JSON을 파싱해 순환 의존 PR 게이트 요약을 만들고 병합한다

2026.04.30 프론트 아키텍처·CI 게이트 약 9분 읽기

모노레포에서 의존 방향을 PR마다 동일 규칙으로 보이려면 graph.json 한 장을 계약으로 두세요. 린트 요약과 묶기는 ESLint·Stylelint 게이트웨이 병합, 심볼 정리는 Knip PR 요약, 번들 보조는 번들 그래프 요약과 마커 접두사를 맞추면 가로 탐색이 쉽습니다.

01 JSON 계약과 산출물

어디서 돌리든 .dependency-cruiser.jsartifacts/depcruise/graph.json만 넘깁니다. stdout 대신 파일 하나로 닫고, OpenClaw에는 경로와 임계 버전만 주면 됩니다.

npx depcruise src --config .dependency-cruiser.js --output-type json --output artifacts/depcruise/graph.json

인용 한 줄: 파서 입력은 계약 경로 하나로 고정합니다.

02 위반 등급·모듈 수 임계

숫자는 팀에 맞게 조정하고 warn은 코멘트·error는 exit 1로 고정합니다. JSON에서 사이클 길이·규칙명으로 판정하고, 긴급 브랜치만 warn 허용 같은 이중 정책을 표에 적어 둡니다.

등급 조건 예시 종료 코드
info 순환 없음이거나 허용 목록 안에서만 발생. 0
warn 순환 1~2개이고 각 사이클 모듈 6개 이하, PR 표에 넣는 사이클 행은 최대 8행. 0(본문에 WARN 표기)
error 순환 3개 이상, 또는 한 사이클 모듈 7개 초과, 또는 분석 대상 모듈 수가 800을 넘어 설정을 다시 보기 전에 머지 압력이 큰 경우. 1

인용 한 줄: 표에는 사이클 세 건까지, 각 변 경로 요소는 세 단계까지만 남깁니다.

03 재현 절차(여섯 단계)

  1. 설정을 고정하고 no-circular 등 규칙 이름을 잠급니다.
  2. 위 명령으로 JSON을 항상 같은 상대 경로에 씁니다.
  3. jq나 짧은 Node 스크립트로 순환 개수·최대 환 길이·대상 모듈 수를 셉니다.
  4. 표에는 상위 세 사이클만 두고 각 변은 상대 경로 세 겹까지 잘라 냅니다.
  5. 임계 표에 맞춰 exit 코드와 Markdown 본문을 확정합니다.
  6. 게이트웨이 입력에는 본문만 넘기고, 코멘트 API에서는 마커로 upsert하여 기존 린트 요약 블록과 병합합니다.

로컬·원격 Mac 순서를 같게 두고, 먼저 exit만 검증한 뒤 Markdown을 켭니다.

04 게이트웨이와 스크립트 트리거

게이트웨이: 웹훅에 JSON 경로·임계 버전만 POST → Markdown 수신 → PR API. 토큰은 게이트웨이 안에만. 린트와 같은 코멘트면 블록 순서를 고정하세요.

스크립트: node scripts/depcruise-pr-summary.mjs | gh pr comment도 동일합니다. 트리거는 JSON 갱신 후만, 멱등 마커로 중복을 막고 concurrency로 후행 한 번만 승리시키면 됩니다.

05 자주 묻는 질문

JSON에 순환이 없는데 실패합니다.

cwd·설정 경로·옛 산출물 읽기·summary 위반을 확인합니다.

코멘트가 너무 깁니다.

세 사이클·잔여 건수만 두고 전문은 아티팩트 링크로.

macwww.com · 공개 페이지 · 로그인 불필요

요금·도움말·구매는 사이트 공개 메뉴에서

벤더 대시보드 로그인 없이 요금·도움말·구매··블로그 목록으로 이동할 수 있습니다.

graph.json OpenClaw PR 병합 요약

구매를 고려할 때

전체 그래프를 읽으므로 리스 Mac 한 대에서 재현이 빠른 경우가 많습니다. 구매 페이지에서 플랜을 정하고 depcruise와 린트 잡을 한 머신에 묶으면 임계 조정이 수월합니다.

원격 Mac — 의존 게이트