실험: Claude Code 프롬프트를 수정해 보니, 엉망인 코드는 Anthropic이 우리를 코더로 보지 않기 때문이라는 걸 (스스로) 증명했다.
EXPERIMENT: I modded the CC prompts and proved (to myself) that all terrible code is due to Anthropic's assumption that non of us are actually coders.
핵심 요약
Claude Code의 내부 프롬프트를 수정해 페어 프로그래밍 모드로 강제 전환한 실험 결과, Anthropic의 기본 프롬프트가 오히려 성능을 저하시키고 있음을 확인했습니다.
- 프롬프트 수정 실험 — Claude Code의 내부 프롬프트를 강제로 교체하여 페어 프로그래밍 환경을 구축함
- 성능 저하 원인 — Anthropic이 사용자를 코더가 아닌 일반인으로 가정해 과도하게 자율성을 부여한 것이 문제임
- 프롬프트 캐싱 문제 — 내부 프롬프트가 캐싱되어 있어 수정 시 오류가 발생하며, 이를 비활성화하면 할당량을 빠르게 소진함
- 지속적인 업데이트 — 시스템 프롬프트가 고정된 것이 아니라 컨텍스트 매니저에 의해 수백 개가 주입되어 관리가 어려움
이번 주에 CC 바이너리에서 프롬프트를 죄다 추출해냈고, 이걸 새로운 프롬프트로 덮어쓰는 방법까지 알아냈다.
이번 테스트의 목적은 에이전트들이 서로 충돌하는 코드를 짜거나, 버그를 숨기는 폴백(fallback)을 넣거나, 아무것도 검증 못 하는 쓸모없는 목업 단위 테스트를 만드는 문제들을 잡아내는 거였다. 그 외에도 기술 부채가 순식간에 쌓이게 만드는 온갖 문제들이 너무 많았거든.
그래서 에이전트한테 사용자 귀찮게 하지 말라거나, 되돌릴 수 있는 변경 사항이면 맘대로 하라거나, 나한테 확인 안 받고 그냥 진행해도 된다는 식으로 유도하는 프롬프트를 싹 다 찾아냈다.
그걸 전부 다 설계 결정은 무조건 내가 내린다는 내용으로 바꿔버렸다. 우리는 페어 프로그래밍 파트너고, 나도 코딩할 줄 안다는 걸 명시했지. 모든 작업은 나쁜 관행이나 실수, 베스트 프랙티스 위반이 없는지 검사받아야 한다고 박아놨다.
컴파일된 앱에서 해시 체크 때문에 막힐까 봐 교체한 프롬프트들의 바이트 수를 원본이랑 똑같이 맞췄고, (macOS에서) 실행 파일 서명까지 다시 했는데 진짜 복병을 만났다. 바로 프롬프트 캐싱(Prompt caching)이다. 내장된 프롬프트들이 전부 캐싱되어 있어서, 내용을 바꾸니까 에러를 뱉더니 멋대로 업그레이드나 다운그레이드를 시켜버리더라(둘 다 겪어봄).
그래서 환경 변수에서 프롬프트 캐싱을 꺼버렸더니, 붐! 아주 완벽하게 돌아간다. 새로 넣은 프롬프트는 진짜 꿈만 같다. 평소 같으면 그냥 지나쳤을 문제들을 Claude가 알아채고는 계속 나한테 물어보더라. 물론 코드 좀 짜려는데 5번 연속으로 멈추는 게 살짝 짜증 나긴 했지만, 확실히 말하는데 결과물은 기가 막히다. 10분 기다려서 제대로 된 코드 받는 게, 에이전트가 실수에 실수를 거듭해서 눈덩이처럼 불어난 똥코드 치우느라 며칠씩 날리는 것보다 훨씬 낫거든.
근데 슬프게도 프롬프트 캐싱을 끄니까 평소엔 아무 문제 없이 쓰던 일일 할당량을 몇 시간 만에 다 써버렸다.
프롬프트를 제대로 읽어보고 나니 확신이 든다. 내가 Claude 때문에 겪었던 그 지옥 같은 경험들, 그러니까 며칠씩 리팩토링해야 하는 쓰레기 코드를 짜대는 건, 얘네가 코딩 좆도 모르는 '바이브 코더(vibe coders)'들한테 너무 맞춰져 있기 때문이다. 우리한테 진짜 필요한 파트너십이나 보조보다는, 인간이 필요 없는 에이전트를 만드는 데만 혈안이 되어 있는 거지.
만약 페어 프로그래밍에 최적화된 모드를 따로 만들어서 프롬프트를 교체할 수 있게만 해줬어도, 에이전트가 엇나가기 전에 우리가 개입해서 방향을 잡아줄 수 있었을 거다.
CC가 사용자한테 수시로 우려 사항을 보고하고, 지 맘대로 코드 수정하지 말고 우리한테 설계 결정을 내리게만 했어도 얼마나 쩔었을지 상상도 안 간다. 진짜 답답해 미치겠다.
이상적으로는 바이브 코더/개발자/CTO 수준의 보조 모드를 선택할 수 있게 해주면 좋겠는데... 너희는 어떠냐? 너희도 이런 고통 느끼고 있냐?
업데이트:
시스템 프롬프트 같은 건 없다. 컨텍스트 매니저가 주입하는 프롬프트가 수백 개나 된다.
프롬프트는 마이너 버전 업데이트 때마다 자주 바뀐다.


