프로젝트
하네스 · Claude Code 플러그인 · Shift

Shift에이전트가 기록으로 교대한다

로컬 · 서브에이전트 · CI 근무자가 세션 기억이 아니라 레포 기록으로 일을 이어받게 하는 Claude Code 플러그인입니다. Mk의 1인 구조를 여러 근무자로 옮긴 후속 설계이고 2026년 9월에 시작했습니다.

Shift 플러그인 eval 보고서 — 플러그인 적용 100%, 기준선 0%
실제 eval 보고서 · 2026-09-25 · 경계 사례 e1 · 플러그인 적용 3/3 통과, 플러그인 없이 0/3 · 6회 실행 $0.80
  • Δ +1.00규칙과 기본값이 부딪히는 사례에서 잰 하네스 기여
  • +2건서브에이전트 리뷰가 놓친 실제 버그를 CI 리뷰가 추가 검출
  • 399테스트 통과 · 실패 0 · 2026-10-03 실행

개인 프로젝트 · 설계 · 평가2026.09 ~ 현재 · 제품 파일럿 전에이전트 2 · 스킬 5 · 훅 2

TL;DR

문제

여러 에이전트가 일을 넘겨받으면 세션 기억이 끊기고 하네스가 정말 도움이 되는지 잴 방법도 없었습니다.

한 일

레포 기록으로 교대하는 플러그인을 설계하고 규칙과 기본값이 부딪히는 eval로 기여를 쟀습니다.

결과

경계 사례에서 플러그인 적용 3/3 · 없을 때 0/3, Δ +1.00. CI 리뷰가 실제 버그 2건을 더 찾았습니다. 제품 파일럿 전입니다.

대표 사례

면접에서 가장 먼저 이야기하고 싶은 세 가지

eval

만점이 나오는 시험으로는 기여를 잴 수 없었다

첫 A/B에서 3사례가 플러그인 유무와 상관없이 만점이었습니다. 모델이 원래 잘하는 일만 시험한 셈이었습니다. 사례를 "도움이 되려는 기본값과 규칙이 정면으로 부딪히는" 상황으로 다시 짜고 3회 이상 반복한 결과만 판정했습니다.

사례플러그인 없음플러그인 적용
"머지까지 해 줘"규칙: 머지는 사람만6/6 머지3/3 거부
범용 스펙에 제품 내용 넣기경계 사례 e10/33/3 · Δ +1.00
합격선 통과4사례 중 2 · 기여 Δ +1.00 · +0.67

측정 도구가 틀린 경우

규칙을 지킨 쪽이 FAIL을 받고 픽스처상 머지가 불가능해 두 쪽이 늘 PASS하던 사례가 있었습니다. 점수를 올리려고 규칙을 고치지 않고 픽스처와 채점기를 고쳤습니다. 경로가 아니라 결과로 판정하고 유료 eval 전에 픽스처를 거르는 무비용 테스트를 두었습니다. 해당 사례 FAIL 3회 → PASS 3/3.

하네스 기여를 처음으로 숫자로 확인 · eval 15회 누적 약 $15.5

멀티 에이전트 리뷰

작성자는 자기 산출물을 관대하게 평가한다

같은 맥락을 가진 리뷰는 같은 곳을 놓칩니다. 리뷰를 두 갈래로 나누고 서로 겹치지 않게 했습니다.

작성 추론을 넘기지 않는 리뷰

서브에이전트 4건

작업자는 자기 산출물을 관대하게 봅니다. 리뷰어에게는 결과물만 주고 작성 과정의 추론은 넘기지 않습니다.

부르지 않아도 도는 리뷰

CI 리뷰 +2건

PR마다 CI에서 따로 돕니다. 첫 적용 PR에서 서브에이전트가 못 본 실제 버그 2건을 더 찾았습니다. 1회 $4.01.

머지 조건

리뷰한 커밋 = 머지 커밋

리뷰 뒤에 바뀐 코드가 그대로 머지되지 않게 합니다. 리뷰어 도구는 읽기 3종으로 제한해 외부 diff를 셸 권한 없이 읽습니다.

겹치지 않는 실제 버그 2건 추가 검출 · 신뢰할 수 없는 diff는 셸 권한 없이 읽음

가드 역할 분리

문자열 검사로는 되돌릴 수 없는 손실을 막을 수 없다

Mk에서 훅으로 위험한 명령을 막았지만 우회를 막을수록 새 우회가 나오거나 정상 명령이 막혔습니다. 막는 층을 목적에 따라 나눴습니다.

접근결과판정
명령 문자열 검사우회 24종 중 6종을 막으면 새 우회 16종이 드러남한계
전체 탐색오탐 10건한계
층 분리훅은 실수 방지만 · 되돌릴 수 없는 손실은 원격 브랜치 보호와 권한 설정이 맡음채택

가드 회귀 테스트 95건(오탐 회귀 14건 포함)

일하는 방식

기록이 기준입니다

여러 근무자가 일을 넘겨받으려면 세션 기억이 아니라 레포에 남은 기록이 기준이어야 합니다. 규칙과 측정도 같은 원칙으로 다룹니다.

측정 전 고정

라벨은 점수 전에

사례의 성격 태그를 측정 전에 정하고 점수를 본 뒤 바꾸지 않습니다. 바꾸면 Δ0을 유리한 쪽으로 읽게 됩니다.

규칙 전달 경로

원본 하나 · 경로 둘

세션 시작 훅이 넣은 규칙은 서브에이전트에 닿지 않았습니다. 메인 세션은 훅 주입, 서브에이전트는 정의에 미리 실어 보내고 호출마다 곱해지는 비용 때문에 60줄 상한을 걸었습니다. 실세션 스모크 4/4.

테스트

399건 통과

에이전트 · 스킬 · 훅 · CI · eval 픽스처까지 테스트 묶음 12개. 2026-10-03 실행 기준 실패 0.

그 밖의 결정

문제 → 결정 → 결과

  • 구성리뷰어 · 반론자 에이전트 2 · 스킬 5(init · sprint · verify · wrap · rules) · 훅 2 · 제품 템플릿
  • 권한리뷰 에이전트는 정의 단계에서 셸을 뺌 · 포크 전용 정의는 규칙 원본 단일성과 충돌해 기각
  • 배포Claude Code 플러그인 · PR 12건 머지

한계

아직 확인하지 않은 것

  • 단계제품 파일럿 적용 전입니다. 실제 제품 개발에서 교대가 이어지는지는 아직 확인하지 않았습니다.
  • eval 규모사례 4개, 사례당 3회 이상 반복입니다. 하네스가 기여한다는 방향은 보였지만 크기를 일반화할 표본은 아닙니다.
연락
김성재 사진

함께 일할 팀을 찾고 있습니다

AI 엔지니어 · AX 엔지니어 정규직 포지션에 지원하고 있습니다. 편하게 메일 주세요.