1 ポイント 投稿者 GN⁺ 5 시간 전 | 1件のコメント | WhatsAppで共有
  • Claude Codeが「honest take」や「load-bearing seam」のようなフレーズを繰り返す場合、MessageDisplayフックで画面に表示される前に別の表現へ置換できる
  • Pythonスクリプトが標準入力のJSONからdeltaを読み取り、大文字・小文字を区別せずに置換したうえで、変更後のdisplayContentをJSONで返す
  • 例では、seamwhatchamacallityou're absolutely rightI'm a complete clownhonest takespicy doodadload-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項目を修正すれば、例の代わりにより有用または面白い文言へ変えて使える

1件のコメント

 
GN⁺ 5 시간 전
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" と呼び始めたのがいちばん印象的だった

    • Web認証の作業に入ると、Claudeがテック業界の気取った話し方をし始め、完全な文すら放棄して曖昧でほとんど無意味になる
      定期的に「プロらしく話し、完全な文を使え」と言わないと理解できず、その出力を別のセッションに貼り付けたところ、Claude自身ですらWeb認証用Claudeが書いた内容を理解できなかった
    • あるリポジトリでしか特定の項目を "quality gates" と呼ばないのに、Claudeはその文書を読んだあと、その用語を一般的な意味として誤用する
      文脈も分からないまま流行語を真似しているようで、信頼が落ちる
  • 人それぞれ固有の文体や好みの表現があるのは昔からのことで、たいてい大きな問題ではなかった
    だが、1人が1日最大5千語の中で見せていた癖が、単一モデルの偏りとして1日100億個の生成トークンに増幅されると、どんな習慣でも目立ちすぎる

    • LLMは特定のパターンにもっと強く固着するようだ。毎回同じ状態の重みから始まるせいか、1つの会話の中でも単語1つに執着してうんざりするほど繰り返す
      現在のClaudeモデルは特に "honest" が好きで、あらゆる評価や手がかりを "honest" で修飾するし、Gemini 3 Proでも一度 "analytical" という単語を使ったら、その後ほとんどすべての返答について回った。システムプロンプトなら修正できるが、モデル重みそのものの単語嗜好は扱いづらく、学習や追加学習の中で統計的にこうした現象を検知して防ぐ方法が出てきそうだ
    • 問題はいくつかの表現だけではなく、文章全体の構造だ。慣用句、微細な文法パターン、意味は通るが妙に不適切な比喩が、周辺視野に入った異物のように読者を不意打ちする
      もちろんこの文自体は意図的なパロディだ
    • 近いうちに人間もLLMのように話し始めそうだ。特に成長期に毎日5千語を聞き、宿題まで助けてもらう子どもたちは、LLM式の話法を身につけるかもしれない
      「クッキーを食べたの?」という質問に、「お父さんの疑いは全面的にもっともです。私が全部食べたのは事実ですが、本質的な問題ではありません。率直に判断すれば店でもっと買えば済みます」と答えるようなものだ
    • Joe Roganの反復表現である "it's entirely possible" ミームに似ている: https://youtu.be/MPJ0AB12h1I
    • AI企業が話し方の異なるモデル版を複数訓練しておき、会話を始めるたびにランダムな版を割り当てるのも、面白い解決策になりうる
  • グローバルの CLAUDE.md で、Claude が自分を指すときに 一人称代名詞 の代わりに、ばかばかしい名前の「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 が 一人称代名詞 を使うと、人間が意味を解釈しにくくなる具体的な状況とはどんなものか、例が知りたい
  • LLM が書いた文章の最も一貫した手がかりは、作業中の 対話の痕跡が最終的な散文に漏れ出す現象 だ。
    文章を読んでいると、誰も提起しておらず他の場所にも出てこない立場を突然反駁したあと、だいぶ後になってまったく別の脇筋で同じことを繰り返す。「誰も検討しない方法が魅力的に見えるかもしれないが、こういう理由で失敗する」といった調子で、Claude の誤りを直すのに疲れた人間が、完成した文章全体を校正せずそのまま出してしまった場面が目に浮かぶ

    • 最終出力に残った 校正の瘢痕組織 のようなものだ
    • 最近では、下位エージェントの一つが無意味な専門用語を大量にでっち上げ、Claude が定義もないまま、私が当然理解するものと決めつけてそのまま繰り返したので、ひどくいらだった
  • LLM は優れた作家にはほど遠い。長く一貫した文を作るのに苦労し、短いフレーズをつなぎ合わせながら文法的な正確さを保とうとして ダッシュとセミコロン に依存する。
    研究所が基盤モデルに文法を矯正させるために強化学習を適用した結果、短く寸断された文を自然に書き直す代わりに、自動文法チェッカーを通る句読法でつなぐ方法だけを学習したのではないかと思う

    • とはいえ、大半の人も文章がうまいわけではない。Claude は高学歴の私の同僚の大部分よりもうまく書くし、人間が本気で努力すれば勝てるかもしれないが、Claude にもっと上手く書くよう指示されたら再び勝つのは難しい。
      よくある 短く簡潔なフレーズ は、長い文を望まないユーザー向けに研究所が後続学習で入れた特性に見える
    • 望む文体をソフトウェア仕様のようにきちんと表現すれば、LLM も見事に書ける。要求を明確に伝えられなければ、結局は Garbage in, garbage out
  • 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" をやめられず、強く矯正しなければならなかった
    • 人でも、合わない文脈のたびに自分の好きな表現を無理やりねじ込めば、いつもからかわれる