TECH NOTE · DESKTOP AI PET
커밋의 Co-Authored-By 트레일러를 세면 어떤 AI 도구를 언제 썼는지 나옵니다. 379개 커밋을 집계해 기억과 대조한 결과를 정리했습니다.
기억으로 적은 도구 이력이 틀렸다
프로젝트 문서에 “이건 Codex로 시작했고 나중에 Claude로 넘어갔다”고 적어둔 게 있었다. 나중에 커밋 기록으로 확인해 보니 순서가 달랐다.
기억은 흐려진다. 그런데 커밋에는 흔적이 남는다. 커밋 메시지 끝에 붙는 Co-Authored-By 트레일러다. AI 코딩 도구들이 커밋을 만들 때 자기 이름을 여기에 넣는다.
379개 커밋을 세어 보니 이렇게 나왔다.
| 도구 | 커밋 수 |
|---|---|
| Claude Fable 5 | 91 |
| OmX | 80 |
| Claude Sonnet 5 | 16 |
| 트레일러 없음 | 192 |

세는 방법
트레일러는 커밋 본문 끝에 이렇게 들어간다.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
git log로 본문을 뽑아서 이 줄을 찾으면 된다. 커밋 하나에 여러 줄이 들어갈 수 있어서, 본문 전체를 읽고 그 안에서 패턴을 찾는 방식이 안전하다.
git log --format='%b' | grep -oiE "Co-Authored-By: [^<]*" | sort | uniq -c | sort -rn
날짜까지 같이 보고 싶으면 커밋 단위로 나눠서 세야 한다. 본문이 여러 줄이라 한 줄씩 읽으면 날짜와 트레일러가 어긋난다. 이걸 놓치면 집계가 통째로 틀어진다.
시기별로 갈렸다
날짜별로 묶으면 도구가 바뀐 지점이 보인다.
| 날짜 | 커밋 | 주로 쓴 도구 |
|---|---|---|
| 07-10 | 40 | Claude Fable 5 (30) |
| 07-11 | 15 | Claude Fable 5 (15) |
| 07-13 | 50 | OmX (48) |
| 07-14 | 30 | OmX (27) |
| 07-23 | 21 | Claude Fable 5 (21) |
07-13에서 07-14 사이가 뚜렷하다. 이틀 동안 75개가 한 도구로 몰려 있다. 그전 이틀은 다른 도구였다.
기억에 남은 건 “여러 도구를 섞어 썼다”는 인상뿐이었는데, 기록을 보면 구간별로 하나씩 몰아 쓴 패턴이다. 도구를 바꾼 게 아니라 작업 성격이 바뀔 때 같이 바뀌었다.
절반은 알 수 없다
트레일러가 없는 커밋이 192개다. 전체의 절반이 넘는다.
여기서 조심할 게 있다. 트레일러가 없다는 것과 도구를 안 썼다는 것은 다른 말이다. 가능한 경우가 몇 가지다.
- 사람이 직접 친 커밋
- 도구를 썼지만 트레일러를 남기지 않는 설정이었던 경우
- 트레일러를 붙이지 않는 도구를 쓴 경우
기록만으로는 이 셋을 구분할 수 없다. 07-09에 59개가 전부 트레일러 없이 들어가 있는데, 그날은 Tauri 기반 구현을 몰아친 날이라 도구를 안 썼다고 보기 어렵다. 그래도 기록에 없으면 없는 것으로 두는 편이 낫다. “아마 이 도구였을 것”이라고 적으면 그게 다음 사람의 기억이 된다.
그래서 습관을 바꿨다
이 확인을 하고 나서 정한 게 하나 있다. 커밋을 만들 때 트레일러를 남기는 쪽으로 설정을 맞춘다.
지금은 트레일러가 있는 커밋이 절반이 안 되는데, 앞으로 쌓이는 것부터는 채워진다. 도구 이력을 글감으로 쓸 생각이라면, 나중에 세는 것보다 남기는 쪽이 훨씬 싸다.
과거 커밋을 소급해서 채우는 방법도 있지만 하지 않았다. 기억으로 다시 채우면 처음 문제로 돌아간다.
같이 나오는 질문
트레일러는 누가 붙이나
AI 코딩 도구가 커밋을 만들 때 자동으로 넣는 경우가 많다. 도구나 설정에 따라 다르고, 사람이 직접 규칙으로 넣을 수도 있다. 형식은 GitHub가 공동 작성자를 인식하는 데 쓰는 것과 같다.
이걸로 무엇을 알 수 있나
어떤 도구를 언제 얼마나 썼는지다. 반대로 알 수 없는 것도 분명하다. 그 도구가 무엇을 얼마나 잘했는지, 사람이 얼마나 고쳤는지는 커밋 수에 안 나온다.
기억이 틀렸다는 걸 어떻게 확신했나
확신한 게 아니라 기록과 다르다는 것만 확인했다. 기록도 절반이 비어 있어서, 비어 있는 구간에 대해서는 여전히 모른다. 확인한 것과 여전히 모르는 것을 나눠 두는 게 이 작업의 결과였다.
다음에 볼 건 이 확인 작업을 AI에게 시켰을 때 무슨 일이 있었는지다. 시키는 쪽과 하는 쪽의 기록을 따로 남겼다.
