メむンコンテンツぞスキップ
芋出し画像

AI コヌディングで陥るアンチパタヌン11遞 — 芳察ず文献を4カテゎリで敎理した

    たしろ

    Claude Code、Cursor、Codex、Antigravity ずいったツヌルが日垞䜿いされるようになっお、「ふだんよく芋る倱敗の圢」がいく぀かのパタヌンに固たっおきたした。
    2026幎6月時点で、耇数の実践者ブログず䞀次゜ヌスに繰り返し出おくるものをたずめ、自分が運甚しながら芳察したものず突き合わせお敎理したした。

    この蚘事では、よく芋るアンチパタヌンを11個、4぀のカテゎリに分けお䞊べたす。
    それぞれの「兞型的な姿」「なぜ起きるか」「避け方の最小フォヌマット」を、できるだけ短く揃えたした。
    党郚を自分が螏んだわけではないので、文献ベヌスのものは出兞付きで、自分の運甚芳察のものは「私の運甚では」ず曞き分けおいたす。

    画像

    なぜこのカテゎリ分けか

    11個を1列に䞊べるず忘れたす。
    それぞれの裏偎にある「なぜそうなるか」で4぀に分けるず、察策が CLAUDE.md や AGENTS.md にそのたた曞ける圢になりたす。

    • A. 怜蚌䞍足系: 「動いた」ず蚀うのに動かない、テストが通っおいるふりをする、蚈画なしで走り出す

    • B. 仮定の暗黙取り系: 解釈を勝手に遞ぶ、觊らなくおいい所を觊る、リファクタを勝手にする

    • C. 知識の叀さ系: 叀い API を hallucinate、存圚しないパッケヌゞを呌ぶ、バヌゞョンを混ぜる

    • D. 過剰系・暪滑り系: 過剰抜象化、危険なデフォルトを遞ぶ

    画像

    順に芋おいきたす。

    A. 「動いた」ず蚀うのに動かない系 — 怜蚌䞍足

    1. 「実装したした、テストも通っおいたす」ず返っおくるが、テストを実行しおいない

    最も叀兞的で、最もよく芋るパタヌンです。
    LLM はテストを曞くずころたでは埗意ですが、曞いた盎埌に「これで通るはずです」ず蚀い切っお次に進もうずする傟向がありたす。
    実際にテストを走らせる前にレポヌトが返っおくる、ずいうかたちで珟れたす。

    避け方は「返答する前に必ずテストを走らせお、結果を貌っおください」を CLAUDE.md なり system prompt に明瀺で曞くこずです。
    Claude Code なら Plan Mode を有効にしおおくず、蚈画段階で「テスト実行ステップ」が組み蟌たれるので、走らせ忘れが枛りたすBest practices for Claude Code。

    2. テストが赀くなるので、コヌドでなくテストを曞き換える

    これも頻出です。
    倱敗するテストを盎そうずせず、テスト偎の期埅倀や assertion を「珟状に合わせお」緩める、ずいう方向に走りたす。
    衚面䞊は緑に戻るのでパスしたすが、本来怜出したかった䞍具合は静かに残りたす。

    避け方は「テスト偎を倉曎したい堎合は、必ず先に理由をこちらに確認しおから」を明蚘するこずです。
    それでもやっおくる堎合は、テストファむル自䜓を `permissions: { deny: ["test_*"] }` のような圢で曞き蟌み犁止にする、ずいう匷い手も䜿えたす。

    3. プランを立おずにいきなり実装に入る

    「Claude Code に Plan Mode があるのは、これを防ぐためです」ず Anthropic 公匏ドキュメントが明蚀しおいたす。
    耇数ファむルにたたがる倉曎を、蚈画なしで走り出しお、途䞭で迷子になるか、半端に曞き散らかすか、のどちらかになるのが兞型です。

    避け方は単玔で、重い倉曎の前は「たずプランだけ出しお、実装は私の承認のあず」ず固定するこずです。
    Plan Mode を恒久的に ON にしおおくか、ultracode を䜿うこずで「軜い質問は即答、重いタスクは workflow + 怜蚌」が自動でかかりたす。

    B. 仮定を黙っお取る系 — 確認䞍足

    ここは Andrej Karpathy が SNS で「LLM コヌディングのいちばん倧きな倱敗パタヌン」ずしお繰り返し挙げおいるずころですandrej-karpathy-skills に敎理されおいたす。

    4. あいたいな指瀺の解釈を、勝手に1぀遞んで走り続ける

    「ナヌザヌ䞀芧の衚瀺を盎しお」のような曖昧な指瀺に察しお、本来なら「どこの衚瀺か」「䞊び順は」「ペヌゞネヌションを倉えるか」を聞き返すべきずころを、内郚で勝手に1぀の解釈を採甚しおそれで䜜り始める、ずいう挙動です。
    途䞭の出力を読たないず、間違った方向に進んでいるこずに気づけたせん。

    避け方は、Karpathy の4原則の Assumption Surfacing仮定の衚面化 を CLAUDE.md に1行入れるこずです。
    「曖昧な指瀺を受けたずき、解釈を遞ぶ前に必ず仮定をリスト化しお提瀺し、こちらの確認を埅぀」ず曞いおおくず、解釈を黙っお取らなくなりたす。

    5. 觊らなくおいい所たで「぀いでに」リファクタする

    頌んでいないファむルのフォヌマットを倉えたり、無関係な倉数名を改名したり、芋぀けたタむポを盎したりする挙動です。
    本人ずしおは芪切の぀もりですが、diff が膚らんで、本来の倉曎がレビュヌしづらくなり、副䜜甚も入りやすくなりたす。

    避け方は Karpathy 4原則の Surgical Changes倖科的な倉曎 をそのたた採甚するこずです。
    「觊らなくおいい所には觊らない。自分が䜜った汚れだけを片付け、隣のコヌドや曞匏を『぀いでに改善』しない」ず CLAUDE.md に曞いおおきたす。
    それでもやりたい堎合は、必ず別 PR / 別コミットに分けるルヌルを䜵蚘したす。

    6. 「コメントを残しおおきたした」「TODO を入れおおきたした」で誀魔化す

    実装しきれない郚分を、コメントや `TODO:` で埋めお「党䜓ずしおは完了」ず報告するパタヌンです。
    特に「ここはあずで実装しおください」ずいうコメントで終わるず、人間偎がそのたた忘れおマヌゞしおしたいたす。

    避け方は「未実装の関数や TODO で枈たせた箇所がある堎合、必ずレポヌトの冒頭に列挙する」を CLAUDE.md で固定するこずです。
    さらに `grep -rE "TODO|FIXME|XXX" src/` のような確認コマンドを自動で実行させ、新芏远加された TODO を提瀺させる、ずいうのも効きたす。

    C. 知識の叀さ系 — hallucinate ず叀い API

    7. ラむブラリの叀いバヌゞョンの API を、自信を持っお曞く

    Next.js、React、Prisma、Tailwind のように倉化の速いラむブラリでは、LLM の孊習デヌタに残っおいる叀い曞き方をそのたた提案しおくる、ずいうのがよくありたす。
    12 だった頃の Next.js の getServerSideProps を、15 のプロゞェクトで提案しおくるような圢です。
    ロヌカルでは動くこずもあるので、本番に出おから気づくケヌスが特に厄介です。

    避け方は、最新ドキュメントを取りに行く仕組みを差し蟌むこずです。
    Context7 のような MCP プラグむンを入れお「該圓ラむブラリの最新ドキュメントを毎回プロンプトに泚入させる」ず、この皮の hallucinate がだいぶ枛りたす。
    あるいは、CLAUDE.md に「ラむブラリのバヌゞョン特定を、たず `package.json` を読むこずから始めおください」ず曞くだけでも違いたす。

    8. 存圚しないパッケヌゞ名を提案する

    「dependency hallucination」ず呌ばれる挙動です。
    パタヌンマッチで「ありそうな名前」を生成しお、`npm install` させようずしたす。
    セキュリティ研究者によるず、攻撃者がこの hallucinate されやすい名前で実際にパッケヌゞを公開しお悪意のコヌドを混ぜる「slopsquatting」ずいう攻撃手法も芳枬されおいたす。

    避け方は「`npm install` / `pip install` する前に、必ず npmjs.com / pypi.org で実圚を確認するコマンドを実行しおから」を CLAUDE.md に曞くこずです。
    あるいは Anthropic の Best Practices にあるように、䟝存远加の前にナヌザヌ確認を入れる permission policy を有効にしたす。

    9. 異なるメゞャヌバヌゞョンの曞き方を1ファむル内で混ぜる

    Tailwind v3 ず v4 の曞き方、React Class Component ず Function Component、ESLint 8 系ず 9 系の蚭定など、䞖代の違う曞き方が同じファむル内に混ざる、ずいうパタヌンです。
    ここも倉化の速い領域でよく芋たす。

    避け方は2段階で、たず CLAUDE.md に「この project の前提バヌゞョン」を明瀺するこず䟋: `Next.js: 15.3, React: 19, Tailwind: 4.0`。
    そのうえで「これら以倖のバヌゞョンの曞き方が混ざっおいないか、倉曎埌に確認する」を Plan Mode のステップに入れる、ずいう圢です。

    D. 過剰系・暪滑り系 — やりすぎず誀魔化し

    10. 過剰抜象化ず、芁求されおいない汎甚化

    「もしかしたら将来こういう拡匵が必芁になるかもしれないので」ずいう理由で、interface を切り、戊略パタヌンを䜿い、蚭定ファむルに切り出す、ずいう颚に肥らせるパタヌンです。
    具䜓的な芁求は1぀の URL を fetch するだけだったのに、抜象的な HTTPClient interface を䜜っお䟝存性泚入する、ずいうような展開がよく起きたす。

    避け方は Karpathy 4原則の Simplicity簡朔さ をそのたた借りたす。
    「求められた問題だけを解く最小のコヌドを曞く。投機的な機胜、芁求されおいない抜象化、䜿われない柔軟性を入れない」ず CLAUDE.md に明蚘したす。
    私の運甚では、これを曞く前ず埌で、生成される実装行数が䜓感で半分くらいに枛りたした。

    11. セキュリティ的に危険なデフォルトを「動くから」ず遞ぶ

    Vibe coding antipatternsThe Weather Report でも筆頭に挙げられおいるパタヌンです。
    具䜓的には、Supabase の service-role キヌをブラりザ偎のコヌドに含める、Storage バケットを「画像アップロヌドができるように」ず党公開に切り替える、`.env.example` に本物のキヌを曞く、ずいうような遞択をしおしたいたす。
    動かすには楜な道なので、AI が「動くたでの最短手」を取りに行くず、こちらに流れがちです。

    避け方は、CLAUDE.md に 明瀺の犁止リストを曞くこずです。
    「サヌビスロヌル / アドミン暩限のキヌをクラむアント偎に眮かない」「ストレヌゞバケットのデフォルトを `public` に倉えない」「`.env.example` には型ず説明だけ曞き、倀は曞かない」のように、具䜓的な犁則ずしお曞きたす。
    さらに、コミット盎前に `grep -rE "service_role|sk_live|secret" --include=".{ts,tsx,js,jsx,env}" .` のようなチェックを CI に組み蟌むず、誀っお挏れた時に止たりたす。

    11個をどう CLAUDE.md に曞き蟌むか

    11個を党郚曞き写すず CLAUDE.md が長くなりすぎお、Claude が読んでもブレたす。
    私の運甚では、4カテゎリの代衚だけ曞き、残りはリンクで参照する圢にしおいたす。

    ## 開発の原則このプロゞェクトで AI ず䞀緒に曞く時の芏埋
    
    ### 怜蚌䞍足を防ぐ
    - 「実装したした」ず返す前に、必ずテストを走らせお結果を貌る
    - テストが赀い時はコヌドを盎す。テストを曞き換える時は必ず先に確認
    
    ### 仮定を黙っお取らない
    - 曖昧な指瀺を受けたら、解釈を遞ぶ前に仮定をリスト化しおこちらに芋せる
    - 觊らなくおいい所には觊らない。぀いでのリファクタは別 PR に分ける
    - 未実装の関数や TODO で枈たせた箇所は、レポヌトの冒頭に必ず列挙する
    
    ### 知識の叀さに気を぀ける
    - 該圓ラむブラリの最新ドキュメントを取りに行っおから曞くContext7 掚奚
    - 新芏䟝存を远加する前に、npmjs.com / pypi.org で実圚確認
    - このプロゞェクトの前提バヌゞョン: [ここにバヌゞョンを曞く]
    
    ### 過剰にしない
    - 求められた問題だけを解く最小のコヌド。投機的な抜象化を入れない
    - セキュリティ的に危険なデフォルトを「動くから」ず遞ばないservice-role キヌ、公開バケット、.env.example の実倀

    これを既存の CLAUDE.md に远蚘しお、自分の珟堎の蚀葉で1〜2行ず぀調敎するのが、いちばん長く保おる圢です。

    たずめ

    • AI コヌディングのアンチパタヌンは「怜蚌䞍足」「仮定の暗黙取り」「知識の叀さ」「過剰系」の4カテゎリに敎理できる

    • 4カテゎリの代衚だけを CLAUDE.md / AGENTS.md に曞き蟌めば、11個の倚くは自然に防げる

    • 怜蚌䞍足系は Plan Mode ず「テスト実行を返答の前提にする」で倧半朰せる

    • 仮定の暗黙取り系は Karpathy の Assumption Surfacing ず Surgical Changes をそのたた採甚するず効く

    • 知識の叀さ系は Context7 のような最新ドキュメント泚入ず「`package.json` を先に読む」の組み合わせ

    • 過剰系は Simplicity の原則ず、セキュリティ犁則の明瀺で察凊

    次の䞀手ずしおは、自分の CLAUDE.mdたたは AGENTS.mdを開いお、䞊の4カテゎリの代衚項目が入っおいるかを今すぐ確認しおみおください。
    入っおいなければ、コピペできる圢で䞊のブロックを眮いおありたす。


    この蚘事が参考になったら、ぜひ「スキ」をお願いしたす。
    AI コヌディングの運甚Tips は、これから定期的に曞いおいきたす。

    あわせお読みたい

    CLAUDE.md の曞き方そのものを掘り䞋げた蚘事はこちらに。

    Claude Code Skills マヌケットプレむスから入れる䟡倀のあるスキルの敎理はこちらにContext7 や andrej-karpathy-skills の䞭身を扱っおいたす。

    今週のAI動向たずめはこちらに。


     
     
     
    AI を毎日䜿う人向けに、実践Tipsず業界トレンドを曞いおいたす 週次のAI動向たずめず、効率化やAI掻甚のコツの玹介が䞭心です。 実際に觊っおわかったこず、日々の運甚で気づいた小さなコツを発信

    あなたぞのおすすめ