caveman の使い方:AI に前置きをやめさせて、要点だけ言わせる
AI はどの返事もまず三行の挨拶から入る。caveman はその社交辞令をまるごと削り落とす 50 行の prompt だ。技術的な中身は一文字も減らさない。日・英・中の三言語で実測した。
github.com/mattpocock/skills @2bf7005 1. AI の社交辞令は、あなたが毎日払っている税金だ
AI とペアでコードを書く。一日に何十往復もする。一番うんざりするのは何か?
技術がわからないことじゃない。どの返事も、まず三行の前置きから入ってくることだ。
もちろんです!喜んでお手伝いします。あなたが直面しているこの問題は、おそらく……
本当に役に立つのは、最後の一文だけ。その前は全部ただの助走だ。
この助走は目が疲れるだけじゃない。実際に token を燃やし、レスポンスを遅らせ、context window を少しずつ埋めていく。AI と長く話すほど、この「社交辞令税」をたくさん取られる。しかも、こっちは一度も頼んだ覚えがないのに、だ。
caveman がやることは一言で済む。AI を、賢い穴居人(caveman)みたいにしゃべらせる。技術的な中身は一文字も減らさない。挨拶、前置き、含みを持たせて逃げ道を作る言い回し、それを全部削る。
これは Matt Pocock の skills 群の中で一番小さい一つだ。ファイル全体でたった 50 行。でも入れて一度使ったら、たぶんもう元には戻れない。
2. 仕掛けなんてない:「黙って要点だけ言え」という取り決め
裏で何か複雑な仕組みが動いていると思うかもしれない。違う。caveman のSKILL.md 全体は、返事のスタイルに関する取り決めでしかない。核は三つ。
何を削るか。 情報量ゼロの飾り言葉(「実は」「基本的に」「簡単に言うと」)、社交辞令(「もちろん」「喜んで」)、そして言い切らずに逃げを打つ言い回し。一語で済むなら一文を使うな。因果関係は矢印で直接書く:X -> Y。
ただし一本だけ越えてはいけない線がある。太字で見せる。
技術用語はそのまま、コードブロックは原文のまま、エラーメッセージは一文字も変えるな。
つまり、削るのは無駄話であって、情報じゃない。これは「もっと短くしゃべって」式の乱暴な圧縮とはまるで別物だ。あちらは役立つディテールごと捨ててしまう。caveman は捨てない。
一度オンにしたら、ずっと効き続ける(skill 内では Persistence と呼ぶ)。何往復かするうちにまた冗長へ戻る、ということがない。あなたが止めろと言わない限り、ずっとこの調子でしゃべる。
危ない場面では、自分で通常モードに戻る(skill 内の Auto-Clarity 例外)。DB を消すような不可逆な操作、何ステップにも分けないと説明できない話。そういうときは一時的にフル表現へ戻り、きちんと言い切ってから、また縮める。
この三つ目こそ、caveman が「とにかく簡潔に」の一段上をいくところだ。token は節約する、でも丁寧に言うべき場面で手を抜かない。 この匙加減が、ちゃんと設計として組み込まれている。地味だが、ここが効く。
3. 三ステップで、違いがすぐ見える
口で言っても始まらない。入れて、ビフォーアフターを自分の目で見てほしい。
入れる。 これは mattpocock/skills の中の一 skill だ。公式の一行コマンドで入れて、プロンプトに従って caveman にチェックを入れる。
npx skills@latest add mattpocock/skills
(すでにリポジトリをローカルに clone してあるなら、そのディレクトリを自分のプロジェクトの .claude/skills/ に直接コピーしてもいい。)
オンにする。 Claude Code に caveman mode と一言言うか、/caveman を叩く。やめたくなったら normal mode と言えばいい。
比べる。 同じ質問を投げてみる。たとえば「React コンポーネントで、親が再レンダリングすると子もつられて再レンダリングされるのはなぜ?」
普段なら三、四段落返ってくる。デフォルトの挙動、React.memo、useMemo/useCallback、children、最後に「早すぎる最適化はやめろ」という念押しまで。caveman モードだとこうなる(これは実際に走らせた結果で、こちらでこしらえたものじゃない)。
デフォルト挙動。親 render -> 子 render、props が変わったかどうかに関係なく。
再レンダリングを止める三手:
React.memo(子)-> props を浅い比較、変化なしならスキップ- 子に渡すオブジェクト/配列/関数:
useMemo/useCallbackで包め、さもないと毎回新しい参照 -> memo が効かない- state を下げる、無関係な state 変化で親が render しないように
調査:React DevTools Profiler を入れて、誰がなぜ render しているか見ろ。
React.memo、浅い比較、参照の安定、state を下げる、Profiler。情報の点は一つも欠けていない。なのに一目で読み終わる。
これが最初の本物の結果だ。私が売り込むまでもない。自分で一度走らせれば、すぐわかる。
4. ちゃんと勘定した:日本語は約 52%、ただし言語で変わる
caveman の元の説明には「token を約 75% 節約する」と書いてある。
でもこれは作者が自分で出した数字で、測り方は書いていない。こういう話は話半分でいい。他人が「これだけ減る」と言っても当てにならない。自分で測れ。
だから測った。しかも三言語でやった。開発者がふだん何気なく聞きそうな本物の質問を 6 つ選んで(React の再レンダリング、コネクションプール、Node のメモリリーク、async/await、git の commit 取り消し、JWT vs session)、AI に通常モードと caveman モードでそれぞれ答えさせ、文字数を数えた。基準にしたのは自然で、わざと冗長にしていない回答だ。わざと水ぶくれにした回答を叩いて「ほら減った」と見せる、そんなインチキはしていない。
結果:
| 言語(それぞれ通常 vs caveman) | 文字数の削減率 |
|---|---|
| 中国語 | 約 70% |
| 英語 | 約 63% |
| 日本語 | 約 52% |
七割、六割、五割。どれもかなりの量で、情報は一つも落ちていない。でも気づくはずだ。削減率は言語によってけっこう違う。 中国語は飾り言葉や前置きが一番多く、絞れる水分が大きい。一方で日本語は通常モードでもそもそも比較的引き締まっていて、caveman が削れる余地はその分小さい。だから**「75% 節約」をどこでも通じる謳い文句にはできない。** 何語でしゃべるかに左右される。
手の内を見せる。エセ厳密はやらない:私が使ったのは「空白を除いた文字数」という代理指標で、正確な token 数ではない(テスト環境に tokenizer が入っていなかった)。同じ言語の中なら文字数の比率はほぼ token の比率に等しいので、同一言語内の削減率は信頼できる。だが言語をまたぐ絶対文字数は直接比べられない。私が比べたのは各言語それぞれの削減率だ。サンプルは 6 問だけ、あくまで桁感をつかむためのものだ。
もう一つ、測って初めて出てきた驚きも言っておく。これは日本語ユーザーには特に刺さる話だ。caveman は放っておくと英語の電報体へ流れていく。もともと英語向けに作られた skill なので、日本語で聞いても英語の極端に短い文で返してくることがよくある。日本語のままでいてほしいなら、オンにするときに「日本語で」と一言はっきり指定するしかない。
しかも日本語と英語は文字種からして別物だから、この「英語への漂流」は中国語のとき以上に目につく。返事の途中で、急に画面が英単語だらけになるのだ。(白状すると、私も最初の測定ではここを押さえ込まなかった。おかげで数字に「日本語→英語」という言語の切り替わりが混じり、きれいに測れなかった。言語を固定して測り直して、ようやく上の表になった。)
5. でも一日中つけっぱなしにするな――こいつには癖がある
caveman はよくできている。でも「入れたら一生それでいい」スイッチではない。先に何点か言っておく。
- 英語へ流れる(さっき言った通り)。どの言語がいいかは、オンにするときにはっきり言え。日本語なら「日本語で」と。
- 切れ切れの文が多く、読み違えやすい。 接続詞を削り、短い断片を好む。情報密度は高いが、ちょっと気を抜くと読み取りを誤る。だから:人に見せる成果物、外に出す正式なドキュメント、複雑な多段の推論――そこでは caveman を使うな。 そういう場では「節約」より「はっきり伝わる」方がずっと大事だ。(幸い Auto-Clarity が危険な場面や多段の場面では自動でフル表現に戻してくれる。だが頭には入れておけ。これは「あなたと AI の高速な対話」のための道具で、「AI が他人に向けて書く」ための道具じゃない。)
- これはスタイルであって、能力じゃない。 caveman が代わりに仕事を一つ余分にこなしてくれるわけじゃない。AI のしゃべり方を変えるだけだ。常駐の「省データモード」くらいに思っておけ。何かのワークフローを完遂してくれると期待するな。
一言でいえば:対話のときはオン、ちゃんとした出力のときはオフ。 この匙加減さえ押さえれば、ずっと良い相棒でいてくれる。
6. チートシート
インストール:npx skills@latest add mattpocock/skills # プロンプトで caveman にチェック
オン:AI に "caveman mode" と言う または /caveman
オフ:"normal mode" / "stop caveman"
言語:オン時に「日本語で」と明言、さもないと英語へ流れる
削るもの:情報ゼロの飾り言葉(実は/基本的に)、社交辞令(喜んで)、逃げの言い回し
残すもの:技術用語、コードブロック、エラー原文 ―― 一文字も変えない
因果:矢印で X -> Y
例外:危険な操作 / 多段の手順 -> 自動でフル表現に戻る(Auto-Clarity)
使うな:正式ドキュメント / 教材 / 他人に見せる成果物 -> オフにする
実測:中国語 約 70%、英語 約 63%、日本語 約 52%(作者の自己申告は約 75%)
7. もっと知る
- この skill のソース:mattpocock/skills · caveman(MIT ライセンス)
- 「prompt 一段で AI の振る舞いを変える」この遊び方が気に入ったら、Matt のリポジトリにはまだ山ほどある。このシリーズで順に解剖していく。
- Matt 本人や数万人の開発者と一緒にこうした skill を語りたいなら、彼の newsletter が行き先だ。
この記事は usesuperpowers.com のオリジナル解説で、扱っている caveman skill は mattpocock/skills(
source_commit: 2bf7005)に由来し、その MIT ライセンスに従う。本文中で引用した原作のルールの著作権は原作者に帰属する。解説・実測・文章はすべて当サイトのオリジナルだ。