Claude 시스템 프롬프트를 Git 히스토리로 추적하기
Anthropic이 공개하는 Claude 시스템 프롬프트 페이지를 모델별 파일로 쪼개고, 가짜 커밋 날짜를 붙여 git 타임라인으로 만드는 자동화 레시피예요. Claude Code 한 번이면 로컬에 브라우저블한 프롬프트 히스토리 레포가 생겨요.
Simon Willison이 재밌는 걸 했어요. Anthropic이 공개하는 Claude 시스템 프롬프트 마크다운 페이지를 Claude Code에 넘기고, 모델별 파일로 분리한 뒤 각 버전에 가짜 커밋 날짜를 붙여서 git 히스토리로 만든 거예요. 그러면 GitHub의 커밋 뷰에서 Opus 4.5 → 4.6 → 4.7 사이에 프롬프트가 어떻게 바뀌었는지 diff로 볼 수 있어요. 같은 방식을 로컬에서 그대로 재현할 수 있어요.
준비물
- Claude Code (최신 버전,
claude --version으로 확인) - Git 2.x 이상
- Node.js 18+ (Claude Code 의존성)
- Anthropic 시스템 프롬프트 페이지 마크다운 원본 (공개 URL에서 직접 받아요)
스텝
1. 작업 디렉터리 만들기
레포로 쓸 폴더를 만들고 git을 초기화해요. 나중에 커밋 날짜를 조작할 거라서 빈 레포에서 시작하는 게 깔끔해요.
mkdir claude-system-prompts && cd claude-system-prompts
git init
2. 시스템 프롬프트 마크다운 받아오기
Anthropic 공식 문서에서 시스템 프롬프트 페이지를 마크다운으로 저장해요. curl로 받아도 되고, 브라우저에서 복붙해도 돼요.
curl -o raw_prompts.md "https://platform.claude.com/docs/en/release-notes/system-prompts.md"
3. Claude Code에 파싱 명령 내리기
이 스텝이 핵심이에요. Claude Code가 마크다운을 파싱해서 모델별 파일을 만들고, 각 파일에 맞는 커밋을 날짜와 함께 생성해요. 아래 프롬프트를 그대로 Claude Code에 붙여넣으면 돼요.
raw_prompts.md 파일을 읽어서 모델 버전별로 파일을 분리해줘.
각 모델(예: claude-opus-4-7, claude-sonnet-4-5 등)마다 별도 .md 파일을 만들고,
해당 모델이 출시된 날짜를 추정해서 GIT_AUTHOR_DATE와 GIT_COMMITTER_DATE 환경변수를
사용해 git commit을 날짜 순으로 만들어줘.
커밋 메시지는 "Add system prompt: <model-name>" 형식으로.
Claude Code가 파일 생성과 git 커밋을 직접 실행해요. 중간에 날짜 추정이 애매한 모델이 있으면 물어보기도 하더라고요.
4. 커밋 날짜 직접 지정하는 방법 (선택)
Claude Code가 날짜를 틀리게 잡는 경우엔 직접 수정할 수 있어요. git commit --amend보다 아래 방식이 편해요.
GIT_AUTHOR_DATE="2024-11-04T00:00:00" \
GIT_COMMITTER_DATE="2024-11-04T00:00:00" \
git commit --allow-empty -m "Add system prompt: claude-opus-4-5"
확인 방법
git log --oneline --graph
출력이 이런 식으로 나오면 잘 된 거예요.
* a3f91c2 Add system prompt: claude-opus-4-7
* b12d445 Add system prompt: claude-opus-4-6
* c98e301 Add system prompt: claude-sonnet-4-5
* d04fa12 Add system prompt: claude-3-opus
두 커밋 사이 diff를 보고 싶으면 이렇게 해요.
git diff b12d445 a3f91c2
GitHub에 올리면 커밋 뷰에서 클릭 한 번으로 모델 간 프롬프트 변경 내역을 볼 수 있어요.
응용
로컬에서만 쓰기 아깝다면 GitHub Actions를 붙여서 Anthropic 문서 페이지를 주기적으로 폴링하고, 변경이 생기면 자동으로 커밋을 추가하게 만들 수 있어요. cron: '0 9 * * *' 정도로 하루 한 번 체크하면 새 모델이 나왔을 때 알아서 히스토리가 쌓여요.
트러블슈팅
Claude Code가 git 커밋을 직접 실행 안 하는 경우, 프롬프트에 "bash 명령을 직접 실행해서 커밋까지 완료해줘"를 명시적으로 추가해요. 기본적으로 파일만 만들고 멈추는 경우가 있어요.
날짜 순서가 뒤섞이는 경우, git rebase -i --root로 커밋 순서를 정렬하거나, 처음부터 Claude Code에 "날짜 오름차순으로 커밋해줘"를 명시하면 돼요.
raw_prompts.md 파싱이 엉키는 경우, 마크다운 헤더 구조가 모델마다 다를 수 있어요. Claude Code에 "각 H2 또는 H3 헤더를 모델 구분자로 써줘"처럼 구조를 알려주면 훨씬 정확하게 쪼개요.
레포를 GitHub에 올리고 나면 커밋 히스토리 페이지 하나로 Claude 프롬프트 변천사를 한눈에 볼 수 있게 돼요.