이 글은 AI 코딩 도구가 스스로 실수를 줄여 가는 장치를 뜯어본 기록입니다. 여기서 '하네스(harness)'란, AI가 "다 됐다"고 대충 넘어가지 못하도록 증거를 요구하고 잘못을 자동으로 잡아 주는 감시 장치를 말합니다. 이 하네스에서는 한 번 저지른 실수가 규칙으로 남고, 그 규칙이 스스로 더 단단해지며, 개선이 진짜 효과가 있는지까지 자동으로 확인합니다.
규칙은 사람이 미리 다 적어 둬야 합니다. AI가 실수하면 그때그때 사람이 직접 고칩니다. 같은 실수를 몇 번을 반복해도 도구 자체는 그대로입니다. 한 번의 작업(세션)이 끝나면, 다음 작업은 배운 것 없이 다시 백지에서 시작합니다.
실수를 하면, 그 실수를 막는 규칙이 자동으로 만들어집니다. 처음엔 "이렇게 하지 말자"는 권고(무시할 수도 있는 SOFT 규칙)로 시작합니다. 같은 실수가 2번 다시 나오면, 아예 코드로 막아 통과 못 하게 하는 강제 규칙(무시 불가능한 HARD 규칙)으로 올립니다. 그리고 이 개선이 정말 나아졌는지 자동으로 확인해, 오히려 나빠졌으면 방금 바꾼 것을 원래대로 되돌립니다(rollback). 그렇게 시스템이 스스로 단단해집니다.
실수를 고친 기록(fix 커밋) → 시스템이 신호 감지 → AI 규칙 묶음(scaffold) 수정 → 강제 규칙이 얼마나 촘촘해졌는지 점수 측정 → 좋으면 유지(keep)·나쁘면 폐기(discard). 이 과정이 반복되며 시스템이 한 지점으로 안정됩니다(수렴).
| # | 평가 항목 | 점수 | 비율 | 상태 |
|---|---|---|---|---|
| D1 | 작업 흐름이 처음부터 끝까지 이어지는가 | 6/6 | 100% | |
| D2 | 여러 단계가 서로 연결돼 있는가 | 9/9 | 100% | |
| D3 | 무시 못 하는 강제 규칙이 얼마나 촘촘한가 | 10/10 | 100% | |
| D4 | 스스로 고치는 속도가 빠른가 | 6/6 | 100% | |
| D5 | 한 지점으로 안정될 만큼 성숙했는가 | 5/5 | 100% | |
| 종합 | 36/36 | 100% | S |
~/.claude/pending/self-improve-{project}.json — 이렇게 남긴 대기 파일을, 다음 작업을 시작해 사용자가 첫 입력을 넣는 순간(UserPromptSubmit) 확인 스크립트(self-improve-check.sh)가 발견해 개선 절차를 자동으로 돌립니다.os.getcwd() 을 기준으로 이뤄집니다. 즉 현재 열려 있는 프로젝트 폴더 안에서만 동작합니다.exit 2를 내보내 push를 강제로 가로막습니다(이런 강제 차단 지점이 13곳). 이 밖에도 규칙 위반 검사·코드 품질 검사·브라우저 저장소 사용 금지·비밀정보 커밋 금지(scaffold-violation-check.sh, code-quality-check.sh, no-localstorage.sh, no-env-commit.sh) 같은, 무시할 수 없는 강제 검문(HARD gate)이 10개가 넘습니다. 스크립트 문법이 맞는지 확인하는 검사(bash -n)도 통과합니다.이 36개 검사는 모두 사람 판단 없이 기계적으로 참·거짓이 갈립니다(deterministic). 특정 문자열을 세거나(grep), 파일이 있는지 보거나, 스크립트 문법을 확인하거나(bash -n), 숫자를 비교하는 식입니다. AI의 주관적 판단은 끼어들지 않습니다.
핵심은 이렇습니다. 이 점검 방식은 파일에서 문자열을 찾는(grep) 방식이라, "문서에 그렇게 적혀 있다"까지만 증명할 뿐, "그게 실제로 실행된다"는 것까지는 증명하지 못합니다. 실제로 36개 검사 중 35개가 문자열 찾기(grep)이고, 진짜로 돌려 보는 검사(bash -n)는 단 1개뿐입니다. 그래서 다음 과제는 이 '실제로 돌려 보는' 검사의 비율을 높이는 것입니다.
측정일 2026-04-05 | 자가개선 평가(loopy-era-eval) 36/36 = 100% | 5개 항목 종합 리포트(harness-report) 100%
데이터 출처: ~/.claude/skills/, ~/.claude/hooks/, ~/.claude/logs/