Skip to content

운영 교훈 · 문제 해결 ​

하네스를 운영하며 실제로 부딪힌 것들입니다. 새 프로젝트에서 같은 데서 넘어지지 않도록 증상 → 원인 → 대처 순으로 적습니다.

에이전트 · 러너 ​

증상원인대처
처리가 자꾸 중간에 끊긴다모델이 배포를 기다리다 턴을 끝내거나 머지 타임아웃 — 실패 9번 모두 「모델이 운전하던 주변」모델은 plan.json 까지만, 나머지는 스크립트로
GitHub self-hosted job 이 버려지고 에이전트도 죽는다Mac 의 러너 연결이 15~25분마다 끊김러너를 GitHub job 밖 launchd 로
launchd 에서 저장소를 못 읽는다macOS 보호 폴더(Desktop 등) 접근 제한신뢰 사본을 홈 아래 숨김 폴더에
러너가 머지했는데 검사 · 배포가 안 돈다GITHUB_TOKEN 으로 만든 이벤트는 다른 워크플로를 깨우지 않음러너 Mac 의 gh 로그인 사용
allow 규칙이 적용되지 않는다그 폴더에서 신뢰 창을 수락하지 않음사본 폴더에서 claude 를 한 번 열어 수락
같은 작업을 재시도하면 「시작하지 않음」두 번째 에이전트가 첫 번째의 파일을 보고 미커밋 변경으로 판단재시도하는 오케스트레이터 대신 단일 실행 · 깨끗한 트리
막힌 명령이 다른 꼴로 실행됐다권한 규칙은 문자열 대조지시문에 「꼴 바꿔 재시도 금지」, 산출물 경계 검사로 이중 차단

측정이 바꾼 결정 ​

처음 생각재 보니바꾼 것
Figma 호출이 느리다호출은 0.2초, 23분의 원인은 모델이 옮겨 적는 코드 분량빌더를 문서에 한 번 저장 + 해시 검사 → 42단계 → 23단계
「조각 내용이 바뀌었다」 오류는 파일 문제단계 파일은 모두 일관됨, 모델의 전사 실수단계 상한을 줄이고, 의심되면 로컬에서 해시를 다시 계산해 본다
Figma 를 거치면 화면이 더 정확하다A/B: 요청과 어긋난 곳 4~5건 vs 0~1건Figma 는 정본이 아니다 → 처리 흐름에서 제거
단계 순서를 묶어 빨리 돌리자뒤 단계의 부모가 앞 단계에서 정해짐단계는 절대 재배열 · 생략하지 않는다

CI · 검사 ​

  • 검사가 안 돌고 있는 줄 몰랐다. 루트 check 가 한 앱만 빌드 · 테스트해서 생성 화면 테스트가 CI 에 없었습니다. 리뷰어 에이전트가 찾았습니다. 「무엇을 검사하는지」도 검사 대상입니다.
  • 같은 나무를 두 번 재지 않는다. dev 에서 검사한 커밋을 main 에서 또 검사하지 않습니다(네 번 → 두 번). 볼 것 없는 실행은 취소합니다.
  • gh pr checks --watch 는 너무 일찍 끝날 수 있다. PR 을 만든 직후엔 검사가 아직 등록되지 않아 「없음」으로 끝납니다. head SHA 로 실행 목록을 먼저 확인합니다.
  • 브라우저 검사는 포트를 나눈다. 여러 캡처를 동시에 돌리면 기본 DevTools 포트가 겹쳐 멈춥니다. 명령마다 포트를 따로 줍니다.
  • 에이전트 worktree 는 디스크를 먹는다. .claude/worktrees/ 를 gitignore 하고 끝나면 정리합니다.

디자인 시스템 ​

  • 빌드는 초록인데 색이 빈다 → 브랜드 변수 주입 누락. 새 프로젝트 A 단계 참고.
  • 이름과 실제가 다른 변형 → 리뷰에서 「…·medium」 이름이 실제로는 small 로 그려지는 것을 찾았습니다. 견본은 이름이 아니라 렌더 결과로 검사합니다.
  • Base UI 상태 속성은 빈 문자열 → data-checked="" 이므로 값 비교가 아니라 hasAttribute 로 봅니다.
  • 테스트에서 라벨 이중 매칭 → 체크박스 필드는 getByLabelText 가 두 개를 잡습니다. getByRole("checkbox") 를 씁니다.

사람과 일하기 ​

  • 「뜻이 갈리면 묻지 말고 만들어서 보여 준다.」 기다림이 사라지고, 버린 갈래는 needsDecision 에 남습니다.
  • 지금 무엇이 배포를 일으키는지 문서 첫머리에 적습니다. 믿음과 실제가 다를 수 있습니다.
  • 다른 세션이 같은 저장소를 동시에 고칠 수 있습니다. 작업 전 pull, 그리고 「이번에 무엇을 건드리는지」를 먼저 말합니다.

사내에서 운영 중인 하네스를 새 프로젝트에 다시 쓰기 위해 일반화해 정리한 문서입니다.