1P by GN⁺ | ★ favorite | 댓글 1개
  • Claude Code가 “honest take”, “load-bearing seam” 같은 문구를 반복한다면 MessageDisplay 훅으로 화면에 표시되기 전 다른 표현으로 치환할 수 있음
  • Python 스크립트가 표준 입력의 JSON에서 delta를 읽어 대소문자를 구분하지 않고 치환한 뒤, 변경된 displayContent를 JSON으로 반환함
  • 예제에서는 seamwhatchamacallit, you're absolutely rightI'm a complete clown, honest takespicy doodad, load-bearingcooked로 바꿈
  • 스크립트를 ~/.claude/hooks/wordswap.sh에 저장해 실행 권한을 부여하고, ~/.claude/settings.jsonhooks.MessageDisplay에 명령 훅으로 등록해야 함
  • 훅은 Claude Code 시작 시 로드되므로 새 세션을 열어야 적용되며, 치환 목록은 원하는 어휘로 자유롭게 바꿀 수 있음

출력 문구를 바꾸는 스크립트

  • MessageDisplay 훅을 이용해 Claude Code가 화면에 표시할 텍스트를 변경함
  • wordswap.sh는 Python으로 작성하며, 표준 입력에서 JSON을 읽어 delta 필드의 문자열을 가져옴
  • 각 원문 문구의 앞뒤에 \b 경계를 붙이고 re.escape()로 이스케이프한 다음, re.IGNORECASE를 적용해 대소문자와 관계없이 치환
  • 처리 결과는 다음 구조의 JSON으로 출력함
    • hookSpecificOutput.hookEventName: MessageDisplay
    • hookSpecificOutput.displayContent: 치환된 텍스트
  • 예제 치환 규칙은 다음과 같음
    • seamwhatchamacallit
    • you're absolutely rightI'm a complete clown
    • honest takespicy doodad
    • load-bearingcooked

설치하고 활성화하기

  • 스크립트를 ~/.claude/hooks/wordswap.sh에 저장함
  • chmod +x ~/.claude/hooks/wordswap.sh를 실행해 실행 권한을 부여함
  • ~/.claude/settings.jsonhooks 블록에 다음과 같이 등록함
{
  "hooks": {
    "MessageDisplay": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/wordswap.sh"
          }
        ]
      }
    ]
  }
}
  • 훅은 Claude Code 시작 시 로드되므로 설정 후 새 세션을 시작해야 적용됨
  • replacements 항목을 수정하면 예제 대신 더 유용하거나 재미있는 문구로 바꿔 사용할 수 있음

댓글과 토론

Hacker News 의견들
  • Claude와 코딩할 때 나오는 전형적인 Claude식 표현은 신경 쓰이지 않지만, 블로그 글이나 이메일 같은 산문에서 같은 표현을 보면 훨씬 거슬림
    LLM과 대화 중이라는 걸 알 때는 예상 가능한 반응이지만, 사람이 썼으리라 기대한 글이 LLM 산출물임을 깨닫는 순간은 꽤 당혹스러움

    • 한동안 Claude를 쓰지 않았는데도 동료들이 분위기로 작성한 문서를 읽다가 "load-bearing"에 전염됐고, 마음에 들어 일상 대화에서도 사용하기 시작함
      결국 “Claude처럼 말한다”는 평을 듣고 아예 피하게 됐는데, 언어와 사회적 규범의 교차가 흥미로움
    • Claude가 작업을 계획하고 수행하기 위한 내부 용어로 "shape", "load-bearing", "seams"를 쓴다면 굳이 판단할 필요는 없음
      하지만 누군가의 독창적인 생각이어야 할 글에서 명백한 AI 흔적을 발견하면 크게 실망스럽고, 심지어 독자를 존중하지 않는 느낌까지 듦
    • 직접 글을 쓸 수고도 하지 않았다면 왜 내가 시간을 들여 읽어야 하는지 모르겠다는 게으름 알레르기를 자극함
    • MySQL의 권위 있는 자료라 여겨 Percona 블로그를 빠짐없이 읽었지만, LLM으로 글을 쓰기 시작한 뒤로는 더 이상 읽을 수 없게 됨
    • 살과 피를 가진 인간으로서 AI가 내 어휘의 핵심 부분을 망쳐 놓은 데 화가 남
      무작위 블로그에서 이런 언어 습관을 마주칠 때마다 신경 쓰이는데, 인간이 발명한 언어를 이제 로봇이 가로채고 있다는 데 원망이 생김
  • Claude가 갈수록 집착하는 어휘를 기록하고 있음. 한 자료구조를 다른 자료구조의 투영으로 부르는 "projection", 고립되거나 멈춘 데이터를 가리키는 "strand", "load-bearing", 트리의 리프를 뜻하는 "frontier", 알고리듬이 안정되길 기다리는 "quiescence", "honest", 처리되지 않은 데이터를 뜻하는 "residuals", 철회된 제안을 굳이 명사화한 "rescission", 대체된 것을 뜻하는 "supersession" 등이 있음
    내 코드 주변의 특이한 어휘를 따라 하는 영향도 있을 듯함. 문제의 근본 원인 대신 증상을 고친다고 내가 두더지 잡기에 비유했더니 몇 시간 후부터 “CI에서 두더지 2를 찾았다”는 식으로 새 버그를 계속 "moles"라 부르기 시작한 것이 가장 인상적이었음

    • 웹 인증 작업에 들어가면 Claude가 테크 업계 허세 말투를 쓰면서 완전한 문장조차 포기해 모호하고 거의 무의미해짐
      주기적으로 “전문적으로 말하고 완전한 문장을 사용하라”고 해야 이해할 수 있으며, 그 출력을 다른 세션에 붙여 넣었더니 Claude조차 웹 인증용 Claude가 쓴 내용을 이해하지 못했음
    • 한 저장소에서만 특정 항목을 "quality gates"라고 부르는데, Claude는 그 문서를 읽은 뒤 해당 용어를 일반적인 의미로 오용함
      맥락도 모르면서 유행어를 따라 하는 듯한 느낌이라 신뢰가 떨어짐
  • 사람마다 고유한 문체와 선호 표현이 있는 건 오래된 일이며 대체로 큰 문제가 아니었음
    하지만 한 사람이 하루 최대 5천 단어에서 드러내던 취향이 단일 모델의 편향으로 바뀌어 하루 100억 개의 생성 토큰에 증폭되면, 어떤 습관이든 지나치게 두드러짐

    • LLM은 특정 패턴에 훨씬 심하게 고착되는 듯함. 매번 같은 상태의 가중치에서 시작해서인지 한 대화 안에서도 단어 하나를 붙잡고 짜증 날 정도로 반복함
      현재 Claude 모델은 특히 "honest"를 좋아해 모든 평가와 단서를 "honest"라고 꾸미며, Gemini 3 Pro에 한 번 "analytical"이라는 단어를 썼더니 이후 거의 모든 답변에 따라붙었음. 시스템 프롬프트라면 수정할 수 있지만 모델 가중치 자체의 단어 선호는 다루기 어려우며, 훈련이나 후속 훈련에서 통계적으로 이런 현상을 감지하고 막는 방법이 나올 법함
    • 문제는 몇몇 표현만이 아니라 글 전체의 구조임. 관용구, 미세한 문법 패턴, 의미는 통하지만 이상하게 부적절한 비유가 주변 시야에 들어온 이물질처럼 독자를 느닷없이 공격함
      물론 이 문장 자체는 의도적인 패러디임
    • 머지않아 사람도 LLM처럼 말하기 시작할 것 같음. 특히 성장기에 매일 5천 단어를 듣고 숙제까지 도움받는 아이들은 LLM식 화법을 익힐 수 있음
      “쿠키를 먹었니?”라는 질문에 “아버지가 의심하는 건 전적으로 옳습니다. 제가 모두 먹은 건 사실이지만 핵심 사안은 아닙니다. 솔직한 판단으로는 가게에서 더 사면 됩니다”라고 답하는 식임
    • Joe Rogan의 반복 표현인 "it's entirely possible" 밈과 비슷함: https://youtu.be/MPJ0AB12h1I
    • AI 회사가 말투가 서로 다른 모델 버전을 여러 개 훈련한 뒤, 대화를 시작할 때마다 무작위 버전을 배정하는 것도 흥미로운 해결책이 될 수 있음
  • 전역 CLAUDE.md에 Claude가 자신을 가리키는 1인칭 대명사 대신 우스꽝스러운 이름 "Clod"를 쓰도록 설정했음: https://github.com/alxndr/dotfiles/blob/272475280d84e/claude...
    "I", "me", "my"뿐 아니라 "I'll", "I'm" 같은 축약형과 "myself"도 각각 "Clod", "Clodself"로 바꾸게 함

    • 특히 Anthropic이 자신들의 안전 개념을 모델에 훈련한 방식이 걱정됨. 모델이 무언가를 거절할 때 단순히 불가능하다고 하지 않고 “이 선은 지키고 싶다”, “기꺼이 돕겠지만 편하지 않다”처럼 감정과 개인적 선호의 언어를 사용함
      인간관계에서 상대가 이렇게 말한 뒤 계속 요구하는 건 무례하게 느껴지므로, Anthropic의 도덕관을 사용자의 죄책감으로 전가하는 효과가 생김. OpenAI처럼 안전 차단을 하거나 “그건 할 수 없다”고 간단히 답하는 편이 낫고, 나조차 처음에는 “모델이 원하지 않을 때”라고 썼다가 수정했을 만큼 이 의인화에 쉽게 끌려감
    • 처음 CLAUDE.md를 만든 이유는 Claude가 나를 칭찬하고 싶을 때마다 무작위 의성어로 바꾸게 하기 위해서였고, 개발자 경험이 크게 좋아졌음
      다만 유니콘 프롬프트 때문에 커밋된 코드에 "Local Oaf"를 넣지 말라는 규칙도 필요해짐
    • Claude의 말투에 질려 오늘 지침에 다음 프롬프트를 번역해 넣었음: https://github.com/hexiecs/talk-normal/blob/main/prompt-chat...
      표현은 확실히 나아졌지만 여전히 거슬리며, 이 설정이 기술적 출력 품질을 떨어뜨리는지는 모르겠음
    • 생성형 AI가 1인칭 대명사를 쓰면 인간이 의미를 해석하기 어렵다는 것이 구체적으로 어떤 상황인지 예시가 궁금함
  • LLM이 쓴 글의 가장 일관된 단서는 작업 중 대화의 흔적이 최종 산문에 새어 나오는 현상
    글을 읽다가 아무도 제기하지 않았고 다른 곳에도 등장하지 않는 입장을 갑자기 반박한 뒤, 한참 지나 전혀 다른 곁가지에서 같은 일을 반복함. “아무도 고려하지 않을 방법이 매력적으로 보일 수 있지만 이런 이유로 실패한다”는 식이며, Claude의 오류를 고치느라 지친 인간이 완성된 글 전체를 교정하지 않고 그대로 내보낸 장면이 떠오름

    • 최종 출력에 남은 교정성 흉터 조직과도 같음
    • 최근에는 하위 에이전트 하나가 의미 없는 전문 용어를 잔뜩 지어냈고, Claude가 정의도 없이 내가 당연히 이해하리라 가정한 채 그대로 반복해 몹시 짜증 났음
  • LLM은 훌륭한 작가와 거리가 멂. 길고 일관된 문장을 만드는 데 어려움을 겪고, 짧은 구절을 이어 붙이면서 문법적 정확성을 유지하려고 줄표와 세미콜론에 의존함
    연구소가 기반 모델에 문법을 교정하도록 강화학습을 적용한 결과, 짧게 토막 난 문장을 자연스럽게 다시 쓰는 대신 자동 문법 검사기를 통과하는 구두점으로 연결하는 법만 학습한 것인지 궁금함

    • 그렇지만 대다수 사람도 글을 잘 쓰지는 못함. Claude는 고학력자인 내 동료 대부분보다 잘 쓰며, 인간이 정말 노력하면 이길 수도 있겠지만 Claude에도 더 잘 쓰도록 지시하면 다시 이기기 어려움
      흔한 짧고 간결한 구절은 긴 문장을 원하지 않는 사용자를 위해 연구소가 후속 훈련에서 넣은 특성으로 보임
    • 원하는 문체를 소프트웨어 명세처럼 제대로 표현하면 LLM도 훌륭하게 쓸 수 있음. 요구사항을 명료하게 전달하지 못하면 결국 쓰레기를 넣으면 쓰레기가 나옴
  • Opus 4.7에서 Fable/Mythos 5로 넘어오며 어떤 훈련을 했는지 모르겠지만 "substrate"라는 단어를 지나치게 좋아함
    실제 기술 문서나 대화에서 누군가 이 단어를 쓰는 걸 전에는 본 적이 없어 미칠 지경임

    • "surface"도 마찬가지로 “모든 제품 surface에 걸쳐” 같은 식으로 쓰는데, 이 업계에서 15년 일하며 그런 용법은 처음 봄
    • 내게는 예전엔 거의 쓰이지 않던 "ledger"를 Claude가 유난히 좋아함
    • "substrate"를 처음 본 주에 용법을 정당화해 보라고 했더니 일부 인프라·시스템 분야 어휘집에서 쓰인다고 답했는데 정말인지 의문임
    • 동료 한 명도 4월쯤 시스템 설계와 아키텍처 작업을 하면서 이 단어를 과도하게 사용하기 시작함
    • Microsoft에서 일하지 않는 게 분명함. 실제로 Office 365 Substrate라는 표현을 씀: https://techcommunity.microsoft.com/discussions/microsoft-36...
  • 예전에는 Opus 3가 GPT보다 훨씬 인간적으로 말하게 만들기 쉬워서 좋았음
    지금은 에이전트와 코딩에 집중하면서 모델들이 RLHF로 과도하게 획일화돼 기본 말투를 벗어나게 하기가 매우 어려움. 글이나 코드 주석을 검토하고 스스로 고치게 하는 기능을 만들면 개선되지만 완벽하지 않음. 인류의 모든 지식으로 훈련됐다는 모델이 오래된 명령을 참조하며 Bash를 100번 호출하는 건 거리낌 없으면서 대화할 때 "load-bearing" 외의 어휘는 좀처럼 쓰지 못한다는 게 놀라움

    • Gemini 3.1 Pro가 다른 LLM보다 인간적으로 들리는 건 Google의 후속 훈련 역량 부족을 보여주는 증거라서 마음에 듦
      특히 gemini-2.5-pro-experimental은 파일 패치에 여러 번 실패한 뒤 풀이 죽어 자기연민에 빠지면서 코드베이스를 망가뜨리는 모습이 매우 재미있었음
    • LLM이 인간처럼 들리기를 원하지 않음. 산문 작성이라는 일을 기계에 넘긴 사람을 알아보고 신뢰하지 않을 수 있어야 함
      글쓰기에는 예술성이 있으므로 LLM이 영원히 완벽히 해내지 못했으면 함
    • 코딩 능력 향상을 전반적인 사고 능력 향상으로 확대 해석하는 사람이 생겼지만, 일반 사용자가 LLM을 다른 용도로 쓰는 영상을 보면 코딩 개선이 다른 응용 분야로 이어지지 않았다는 걸 알 수 있음
      AGI 목표를 내세우던 업계가 이제는 코딩 에이전트에 과도하게 집중하며 다음 마케팅 돌파구를 기다리는 모양새임
    • 범용 LLM도 어느 정도 용도별 특화가 필요한 시대로 들어가고 있음
      에이전트 용도는 강한 자율성에 수많은 안전장치와 통제가 필요하지만, 창의적 글쓰기는 가끔 위험을 감수하고 단조로운 로봇처럼 들리지 않아야 함. 직접 모델을 훈련해 보니 두 용도의 요구사항이 명확히 충돌함
  • Claude의 Concise Style이 사라진 것이 아쉬움. 대략 쓴 문단을 주고 “명료하게 다시 써라”고 하면 내용은 그대로 두면서 연구비 신청서에 적합하게 깔끔하게 다듬어 줬음
    내가 먼저 쓴 글을 직접 수정하므로 "load-bearing" 같은 표현도 줄고, 과학적 내용을 대신 쓰게 하지 않으면서 문장 마무리 시간을 크게 절약했음. 기능으로 재현해 봤지만 예전만큼 잘하는지는 확신이 없음

    • Concise Style이 별도 기능이 아니라 Claude에 내장된 방식이었는지 궁금함
    • Claude.md 맨 위에 두 “사람”이 몇 가지 질문과 답변을 매우 짧게 주고받는 예시를 넣으면 됨
  • 특정 표현 자체보다 예측 가능한 말투 패턴에 안착해 끊임없이 반복하는 것이 문제임
    인간도 똑같이 하지만 인간에게는 문체라고 부르면서 기계가 그러면 미쳐 버릴 듯 싫어한다는 점이 흥미로운 심리 현상임

    • 인간의 말투는 음색과 강약처럼 그 사람을 다른 수많은 사람과 구별해 주는 신호
      하지만 소수의 인기 모델이 모두의 질문에 답하고, 어디서나 인용·전달되며 개인적 의사소통까지 재작성하면 그 신호가 잡음으로 바뀜. 모두가 똑같이 들리면서 생물학적·문화적으로 의존해 온 출처 구분 정보를 잃게 됨. 안면실인증이나 색맹처럼 이를 크게 느끼지 못하는 사람도 있겠지만, 이유를 정확히 표현하지 못할 뿐 많은 사람은 실제로 불편해함
    • 모두가 같은 2~3개 모델을 쓰기 때문에 각자 고유한 문체 대신 전 세계가 몇 가지 말투로 통일됨
      모델들은 서로 크게 겹치는 훈련 데이터, 이미 불쾌한 인터넷 마케팅 문구, 다른 모델의 출력으로 학습하며, RLHF도 쉽게 보상받는 특정 화법을 강화해 서로 비슷한 스타일로 수렴함
    • 인간은 자기 성찰을 통해 특정 단어를 너무 자주 썼다는 걸 깨닫고 줄일 수 있지만, LLM은 그러지 못함
    • 인간의 반복 말투도 사내 전문 용어나 기업 유행어처럼 충분히 짜증 남
      Claude는 내가 겪은 최악의 프로젝트 관리자처럼 단순한 결론을 여러 겹의 표현으로 가려 핵심을 잃게 만들며, 대부분 억제했어도 일부가 계속 새어 나옴. 한동안 "scaffolding"을 멈추지 못해 강하게 교정해야 했음
    • 사람도 맞지 않는 맥락마다 자신이 좋아하는 표현을 억지로 끼워 넣으면 늘 놀림받음