<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>プロンプトエンジニアリング on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0/</link>
        <description>Recent content in プロンプトエンジニアリング on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Fri, 01 May 2026 03:09:07 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Prompt Optimizer：プロンプト最適化、テスト、MCP に対応したオープンソースツール</title>
        <link>https://knightli.com/ja/2026/05/01/prompt-optimizer-prompt-engineering-tool/</link>
        <pubDate>Fri, 01 May 2026 03:09:07 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/prompt-optimizer-prompt-engineering-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、プロンプトを改善するためのオープンソースツールです。目的は明確で、粗いプロンプトをより明確で安定し、LLM が実行しやすい形に整えることです。&lt;/p&gt;
&lt;p&gt;単に「prompt をきれいに書き直す」ページではありません。プロンプト最適化、結果テスト、比較評価、複数モデル接続、画像生成プロンプト処理、MCP 連携まで備えています。システムプロンプト、ユーザープロンプト、AI ワークフローテンプレートをよく書く人にとっては、専用のプロンプト作業台に近いツールです。&lt;/p&gt;
&lt;h2 id=&#34;解決する問題&#34;&gt;解決する問題
&lt;/h2&gt;&lt;p&gt;AI を使っていると、よく次のような問題にぶつかります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロンプトは長くなるのに、出力品質があまり改善しない&lt;/li&gt;
&lt;li&gt;同じタスクでも、モデルを替えると挙動が安定しない&lt;/li&gt;
&lt;li&gt;システムプロンプトとユーザープロンプトが混ざり、デバッグしにくい&lt;/li&gt;
&lt;li&gt;プロンプトを変更しても、前の版より良くなったか判断しにくい&lt;/li&gt;
&lt;li&gt;変数テンプレートを再利用したいが、毎回の置換とテストが面倒&lt;/li&gt;
&lt;li&gt;他の AI ツールからプロンプト最適化を呼びたいが、標準的な入口がない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、こうした問題を中心に設計されています。「prompt を書く」という作業を、最適化、テスト、評価、比較、反復に分けることで、感覚だけに頼らない調整をしやすくします。&lt;/p&gt;
&lt;h2 id=&#34;主な機能&#34;&gt;主な機能
&lt;/h2&gt;&lt;h3 id=&#34;1-システムプロンプトとユーザープロンプトの最適化&#34;&gt;1. システムプロンプトとユーザープロンプトの最適化
&lt;/h3&gt;&lt;p&gt;プロンプトには複数の種類があります。&lt;/p&gt;
&lt;p&gt;システムプロンプトは通常、役割、目的、境界、出力ルール、作業方法を定義します。ユーザープロンプトは、個別タスクの入力に近いものです。この 2 つが混ざると、モデルが重要点を捉えにくくなり、再利用もしづらくなります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、システムプロンプトとユーザープロンプトの両方の最適化に対応しています。長期的に使うロール設定と、特定タスクの入力表現を分けて扱えます。&lt;/p&gt;
&lt;p&gt;次のような場面で役立ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI コーディングアシスタントの作業ルールを書く&lt;/li&gt;
&lt;li&gt;カスタマーサポート、レビュー、翻訳、分析ロールのプロンプトを書く&lt;/li&gt;
&lt;li&gt;text-to-image 用プロンプトを最適化する&lt;/li&gt;
&lt;li&gt;一時的な要件を再利用可能なテンプレートにする&lt;/li&gt;
&lt;li&gt;モデルごとに異なるスタイルの prompt を用意する&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-出力のテストと比較&#34;&gt;2. 出力のテストと比較
&lt;/h3&gt;&lt;p&gt;プロンプトを最適化するだけでは不十分です。重要なのは、最適化後に本当に良くなったかどうかです。&lt;/p&gt;
&lt;p&gt;このプロジェクトは、分析、単一結果の評価、複数結果の比較評価をサポートしています。元のプロンプトと最適化後のプロンプトを同じタスクで実行し、出力がより正確で安定し、目的に合っているかを比較できます。&lt;/p&gt;
&lt;p&gt;これは、単に「見た目が専門的」な prompt より実用的です。表面上は整っていても、実際には冗長、硬直的、あるいはモデルを誤った方向へ導くプロンプトもあります。比較テストは、そうした問題を早めに見つける助けになります。&lt;/p&gt;
&lt;h3 id=&#34;3-複数モデル対応&#34;&gt;3. 複数モデル対応
&lt;/h3&gt;&lt;p&gt;README によると、このプロジェクトは OpenAI、Gemini、DeepSeek、Zhipu AI、SiliconFlow などのモデルサービスに対応し、OpenAI 互換のカスタム API も利用できます。&lt;/p&gt;
&lt;p&gt;これは重要です。プロンプトの効果はモデルに強く依存します。同じ prompt でも、モデルが変わると結果が大きく変わることがあります。複数モデルのテストにより、次の判断がしやすくなります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロンプト自体が弱いのか&lt;/li&gt;
&lt;li&gt;特定のモデルがそのタスクに向いていないのか&lt;/li&gt;
&lt;li&gt;モデルごとに別バージョンを用意すべきか&lt;/li&gt;
&lt;li&gt;小さいモデルでも、より明確なプロンプトで実用に近づけるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ローカルで Ollama を使っている場合や、社内に OpenAI 互換 API のモデルサービスがある場合も、カスタム API として接続できます。&lt;/p&gt;
&lt;h3 id=&#34;4-高度なテストモード&#34;&gt;4. 高度なテストモード
&lt;/h3&gt;&lt;p&gt;プロジェクトは、コンテキスト変数管理、複数ターン会話テスト、Function Calling に対応しています。&lt;/p&gt;
&lt;p&gt;変数管理はテンプレート化されたタスクに向いています。たとえば、中古取引の返信、商品説明、メール返信、コードレビュー、ドキュメント生成用のプロンプトがある場合、商品、価格、口調、対象ユーザーなどの変数を差し替えるだけで、入力ごとの挙動を素早く確認できます。&lt;/p&gt;
&lt;p&gt;複数ターン会話テストは、長い対話での挙動を確認するのに向いています。単発の質問では良く見える prompt でも、追質問が続くと制約を忘れたり、役割から外れたり、説明を繰り返したりします。複数ターンテストは、実利用に近い検証になります。&lt;/p&gt;
&lt;p&gt;Function Calling 対応は、よりエンジニアリング寄りの AI アプリに適しています。ツール呼び出し、パラメータ生成、構造化出力におけるモデルの挙動を確認できます。&lt;/p&gt;
&lt;h3 id=&#34;5-画像生成プロンプト&#34;&gt;5. 画像生成プロンプト
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、text-to-image と image-to-image に関連する機能にも対応しています。README では Gemini、Seedream などの画像モデルとの連携が紹介されています。&lt;/p&gt;
&lt;p&gt;画像生成プロンプトの最適化は、テキストタスクとは重点が異なります。主体、構図、空間関係、スタイル、質感、光、感情、制約条件などが重要になります。曖昧な一文を制御しやすい視覚記述に分解することは、単にプロンプトを長くするより価値があります。&lt;/p&gt;
&lt;p&gt;商品画像、カバー、イラスト、キービジュアル、スタイル参照画像をよく生成するなら、この種の最適化は実用的です。&lt;/p&gt;
&lt;h2 id=&#34;使い方&#34;&gt;使い方
&lt;/h2&gt;&lt;p&gt;プロジェクトには複数の入口があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;オンライン版&lt;/li&gt;
&lt;li&gt;Vercel でのセルフホスト&lt;/li&gt;
&lt;li&gt;デスクトップアプリ&lt;/li&gt;
&lt;li&gt;Chrome 拡張&lt;/li&gt;
&lt;li&gt;Docker デプロイ&lt;/li&gt;
&lt;li&gt;Docker Compose デプロイ&lt;/li&gt;
&lt;li&gt;MCP Server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;オンライン版は素早い試用に向いています。プロジェクト説明では、純粋なフロントエンドアプリであり、データはブラウザローカルに保存され、AI プロバイダーと直接やり取りすると説明されています。&lt;/p&gt;
&lt;p&gt;デスクトップアプリは、さまざまなモデル API に直接接続したい場合に向いています。ブラウザ環境では CORS の制限に遭遇しやすいですが、デスクトップアプリならそれを回避しやすく、ローカル Ollama や厳しい CORS ポリシーを持つ商用 API にも向いています。&lt;/p&gt;
&lt;p&gt;Docker デプロイは、自分のサーバーや社内環境で使う場合に向いています。README の基本コマンドは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API キーとアクセスパスワードを設定する場合は、環境変数を渡します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;VITE_OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_key &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_username &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_password &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --restart unless-stopped &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name prompt-optimizer &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;中国国内で Docker Hub へのアクセスが遅い場合は、README の説明に従って Alibaba Cloud のイメージ名に置き換えることもできます。&lt;/p&gt;
&lt;h2 id=&#34;mcp-でできること&#34;&gt;MCP でできること
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は Model Context Protocol、つまり MCP に対応しています。&lt;/p&gt;
&lt;p&gt;Docker で実行する場合、MCP サービスは Web アプリと一緒に起動でき、&lt;code&gt;/mcp&lt;/code&gt; パスからアクセスできます。これにより、単なる Web ツールではなく、Claude Desktop などの MCP 対応アプリから呼び出せるツールになります。&lt;/p&gt;
&lt;p&gt;README に記載されている MCP ツールは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;optimize-user-prompt&lt;/code&gt;：ユーザープロンプトを最適化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;optimize-system-prompt&lt;/code&gt;：システムプロンプトを最適化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iterate-prompt&lt;/code&gt;：既存プロンプトを目的に沿って反復改善&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうしたインターフェースは AI ワークフローに向いています。たとえば複雑なタスク用プロンプトを書くとき、MCP 対応クライアントから直接プロンプト最適化を呼び出せるため、毎回 Web ページを開いてコピーする必要がありません。&lt;/p&gt;
&lt;h2 id=&#34;通常のチャットツールとの違い&#34;&gt;通常のチャットツールとの違い
&lt;/h2&gt;&lt;p&gt;通常のチャットツールでも prompt の書き直しはできますが、次のような点が不足しがちです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数バージョンの保存と比較がしづらい&lt;/li&gt;
&lt;li&gt;複数モデルを同時にテストしづらい&lt;/li&gt;
&lt;li&gt;変数をテンプレート化しづらい&lt;/li&gt;
&lt;li&gt;複数ターン会話の検証がしづらい&lt;/li&gt;
&lt;li&gt;MCP 連携やセルフホストがしづらい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; の価値は、プロンプト最適化を再現可能なプロセスにすることです。「より完成度が高く見える」文章を出すだけでなく、実際の出力を見ながら継続的に調整できます。&lt;/p&gt;
&lt;h2 id=&#34;向いている人&#34;&gt;向いている人
&lt;/h2&gt;&lt;p&gt;次のような人は、このプロジェクトに注目するとよいでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システムプロンプトをよく書く&lt;/li&gt;
&lt;li&gt;AI アプリ用のロールや出力形式を設計する&lt;/li&gt;
&lt;li&gt;異なるモデルの出力を比較したい&lt;/li&gt;
&lt;li&gt;prompt を再利用可能なテンプレートにしたい&lt;/li&gt;
&lt;li&gt;複数ターン対話やツール呼び出しをテストしたい&lt;/li&gt;
&lt;li&gt;プロンプト最適化を MCP ワークフローに接続したい&lt;/li&gt;
&lt;li&gt;ローカルまたは社内環境にプロンプトツールをデプロイしたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに AI に簡単な質問をするだけなら、普通のチャット画面で十分です。このツールは、プロンプトを保守可能な資産として扱う人に向いています。&lt;/p&gt;
&lt;h2 id=&#34;利用時の注意&#34;&gt;利用時の注意
&lt;/h2&gt;&lt;p&gt;第一に、最適化結果を絶対に正しいものとして扱わないことです。&lt;/p&gt;
&lt;p&gt;プロンプト最適化ツールは表現品質を高められますが、モデルが誤解しないことを保証するものではありません。重要なタスクでは、テストケース、人手の確認、バージョン比較が必要です。&lt;/p&gt;
&lt;p&gt;第二に、長さだけを追わないことです。&lt;/p&gt;
&lt;p&gt;良い prompt は必ずしも長いとは限りません。目的、境界、入出力形式、判断基準をより明確に表すべきです。意味の薄いルールを積み重ねると、かえってモデルが要点を見失います。&lt;/p&gt;
&lt;p&gt;第三に、モデルに合わせて prompt を調整することです。&lt;/p&gt;
&lt;p&gt;モデルによって、役割設定、形式制約、推論手順、例への反応は異なります。大きなモデルでうまく動くプロンプトが、小さなモデルにも合うとは限りません。複数モデルテストは、このツールを使う理由の一つです。&lt;/p&gt;
&lt;p&gt;第四に、デプロイ時はキーとアクセス制御を考慮することです。&lt;/p&gt;
&lt;p&gt;公開環境にデプロイする場合は、アクセスパスワードを設定し、API key を慎重に扱うべきです。プロジェクトは環境変数によるアクセス制御に対応しています。機密設定を公開リポジトリへ直接書かないようにしてください。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; は、プロンプトを「その場で手書きした一段落」から「テスト、比較、反復できる作業資産」へ整理するためのツールです。&lt;/p&gt;
&lt;p&gt;複数のモデル、複数の場面、複数のバージョンにまたがって prompt を保守し始めると、通常のチャット画面よりもこうしたツールの方が扱いやすくなります。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Karpathy の 65 行の CLAUDE.md：AI コーディングで三つの典型的なミスを減らす</title>
        <link>https://knightli.com/ja/2026/04/19/karpathy-claude-md-ai-coding-rules/</link>
        <pubDate>Sun, 19 Apr 2026 18:27:23 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/19/karpathy-claude-md-ai-coding-rules/</guid>
        <description>&lt;p&gt;最近、AI コーディングに関する GitHub プロジェクトが注目を集めている。中心にあるのは複雑なコードではなく、およそ 65 行の &lt;code&gt;CLAUDE.md&lt;/code&gt; ファイルだ。このプロジェクトが多くの star を集めた理由は、技術実装の複雑さではない。AI にコードを書かせるとき、多くの人が繰り返し遭遇する問題をうまく捉えているからだ。&lt;/p&gt;
&lt;p&gt;背景には、Andrej Karpathy による AI コーディングへの観察がある。Karpathy は AI 分野で大きな影響力を持つ教育者でありエンジニアだ。スタンフォード大学の博士で、OpenAI の初期にも関わり、Tesla では Autopilot の視覚システムを担当した。その後も大規模モデル、教育、AI ツールについて発信を続けているため、彼がプログラミング手法の変化について語ると、多くの開発者が注目する。&lt;/p&gt;
&lt;p&gt;彼は、Claude Code を数週間使ったあと、自分のプログラミングスタイルが大きく変わったと述べている。以前はおよそ 80% を手書きし、20% を AI に補助させていた。今は 80% を AI に書かせ、自分は 20% を修正する感覚に近いという。自然言語で LLM に何を書くべきか伝えるので、「英語でプログラミングしている」ようなものだと表現している。&lt;/p&gt;
&lt;p&gt;一方で、彼は AI コーディングにありがちな問題も指摘している。&lt;/p&gt;
&lt;h2 id=&#34;01-誤った仮定&#34;&gt;01 誤った仮定
&lt;/h2&gt;&lt;p&gt;一つ目の問題は、モデルがユーザーの代わりに勝手な仮定を置き、その仮定に沿って書き進めてしまうことだ。モデルは必ずしも自分の混乱を管理しないし、要件が曖昧なときに立ち止まって質問するとも限らない。&lt;/p&gt;
&lt;p&gt;たとえばユーザーが「ユーザーのエクスポート機能を追加して」とだけ言った場合、モデルは全ユーザーを出力する、JSON 形式にする、ローカルファイルに書き出す、権限や項目は確認不要だ、と勝手に決めるかもしれない。コードが完成してから、ユーザーはモデルの理解が実際のシナリオとずれていたことに気づく。&lt;/p&gt;
&lt;p&gt;よりよい進め方は、不確かな点を先に列挙することだ。全ユーザーを出力するのか、フィルタ後の結果なのか。ブラウザでダウンロードするのか、バックグラウンドジョブなのか。必要な項目は何か。データ量はどれくらいか。権限制御はあるのか。こうした点を確認しないまま速く書いても、ずれが大きくなるだけだ。&lt;/p&gt;
&lt;h2 id=&#34;02-過度な複雑化&#34;&gt;02 過度な複雑化
&lt;/h2&gt;&lt;p&gt;二つ目の問題は、モデルが簡単な問題を複雑にしがちなことだ。一つの関数で済む問題に対して、抽象クラス、ストラテジーパターン、ファクトリーパターン、設定レイヤー、将来使うかもしれない拡張ポイントを山ほど追加することがある。&lt;/p&gt;
&lt;p&gt;こうしたコードは一見エンジニアリングされているように見えるが、実際には保守コストを増やす。AI は大量の構造を素早く生成するのが得意だが、その構造が本当に必要かを常に判断できるわけではない。その結果、100 行で済むタスクが 1,000 行に膨らむ。&lt;/p&gt;
&lt;p&gt;判断基準はシンプルだ。経験あるエンジニアがその変更を見て、過剰設計だと感じるかどうか。答えが yes なら、余分な層を削り、今の問題を解くために必要な最小限のコードに戻すべきだ。&lt;/p&gt;
&lt;h2 id=&#34;03-付随的な被害&#34;&gt;03 付随的な被害
&lt;/h2&gt;&lt;p&gt;三つ目の問題は、モデルが十分に理解していないコードを変更したり削除したりすることだ。小さな bug を直している途中で、ついでにコメントを変えたり、フォーマットを整えたり、未使用に見える import を消したり、現在のタスクと無関係なロジックにまで手を入れることがある。&lt;/p&gt;
&lt;p&gt;こうした「ついでの改善」は危険だ。変更範囲を広げ、レビューを難しくするからだ。ユーザーは空の email でバリデータが落ちる問題だけを直したいのに、モデルが email 検証を強化し、ユーザー名検証を追加し、ドキュメント文字列まで書き換えると、どの行が挙動を変えたのか分かりにくくなる。&lt;/p&gt;
&lt;p&gt;より安全な原則は、必要なコードだけを変更し、自分の変更によって生まれた問題だけを片付けることだ。もともと存在していた dead code、フォーマットの問題、歴史的な負債は、明示的に依頼されていない限り触らない。必要なら一言指摘するだけでよい。&lt;/p&gt;
&lt;h2 id=&#34;04-不満を-claudemd-に変える&#34;&gt;04 不満を CLAUDE.md に変える
&lt;/h2&gt;&lt;p&gt;Karpathy の見解が広く共有されたあと、開発者の Forrest Cheung は賢いことをした。これらの不満を、実行可能な行動指針として整理し、&lt;code&gt;CLAUDE.md&lt;/code&gt; ファイルに書き込んだのだ。&lt;/p&gt;
&lt;p&gt;このプロジェクトには複雑なコードはない。重要なのは、AI コーディングで問題が起きやすい部分を、明確な作業ルールに変えたことだ。大きく四つの原則にまとめられる。&lt;/p&gt;
&lt;p&gt;一つ目は、書く前に考えること。黙って仮定しない。混乱を隠さない。要件に複数の解釈があるなら列挙する。より簡単な案があるなら伝える。確認が必要なら質問し、反論すべきときは反論する。&lt;/p&gt;
&lt;p&gt;二つ目は、シンプルさを優先すること。求められていない機能を追加しない。一度しか使わないコードを抽象化しない。余計な設定を増やさない。ほぼ起きないケースのために大量の防御コードを書かない。50 行で済むなら 200 行にしない。&lt;/p&gt;
&lt;p&gt;三つ目は、正確に変更すること。すべての変更行は、ユーザーの依頼に直接結びついているべきだ。近くのコードをついでに改善しない。壊れていないものをリファクタリングしない。できるだけ既存プロジェクトのスタイルに合わせる。&lt;/p&gt;
&lt;p&gt;四つ目は、目標駆動で進めること。モデルに曖昧な指示だけを渡すのではなく、検証可能な成功基準を与える。たとえば「bug を直す」は「bug を再現するテストを書き、それを通す」にできる。「バリデーションを追加する」は「不正入力のテストを書き、それを通す」にできる。成功基準が明確なほど、モデルは完了に向けて自分でループしやすくなる。&lt;/p&gt;
&lt;h2 id=&#34;05-なぜ広まったのか&#34;&gt;05 なぜ広まったのか
&lt;/h2&gt;&lt;p&gt;このプロジェクトが広まったのは、内容が難解だからではない。実際の開発に近いからだ。&lt;/p&gt;
&lt;p&gt;AI にコードを書かせたことがある人の多くは、似た場面を経験している。モデルが自信満々に要件を誤解する。コードがどんどん複雑になる。触るべきでない場所を変更する。&lt;code&gt;CLAUDE.md&lt;/code&gt; の価値は、こうした経験をプロジェクトに置ける協作ルールに変えたことにある。&lt;/p&gt;
&lt;p&gt;導入の敷居も低い。複雑な連携は不要で、一つのファイルから始められる。Karpathy 本人の影響力に加え、プロジェクト内に実践的な比較例があるため、Claude Code ユーザーや AI コーディングコミュニティの間で自然に広まった。&lt;/p&gt;
&lt;p&gt;さらに重要なのは、この種のルールが Claude Code だけに限られないことだ。どの AI コーディングツールを使っても、本質的な問題は似ている。モデルは、いつ質問すべきか、いつ単純化すべきか、いつ手を止めるべきか、どうやってタスク完了を判断するかを知る必要がある。&lt;/p&gt;
&lt;h2 id=&#34;06-普通の開発者への示唆&#34;&gt;06 普通の開発者への示唆
&lt;/h2&gt;&lt;p&gt;普通の開発者にとっての示唆はシンプルだ。AI コーディングは、一文の要件をモデルに投げて奇跡を待つものではない。本当に有効なのは、モデルに境界を与えることだ。&lt;/p&gt;
&lt;p&gt;要件が不明確なときは、まず仮定を表に出させる。実装が複雑になり始めたら、最小の実用解に戻らせる。コードを変更するときは、タスクの目的だけに集中させる。完了時には、テスト、コマンド、明確なチェックポイントで結果を検証する。&lt;/p&gt;
&lt;p&gt;AI がコードを書く能力はすでに高い。それでも、よい協作上の制約は必要だ。短い &lt;code&gt;CLAUDE.md&lt;/code&gt; がこれほど注目されたことは、開発者が求めているのはより賢いモデルだけではなく、より信頼できる作業方法でもあることを示している。&lt;/p&gt;
&lt;p&gt;簡単にまとめると：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;書く前に考え、誤った仮定を減らす。&lt;/li&gt;
&lt;li&gt;シンプルさを優先し、過度な設計を避ける。&lt;/li&gt;
&lt;li&gt;正確に変更し、変更範囲を制御する。&lt;/li&gt;
&lt;li&gt;検証可能な成功基準で、目標に向かって進める。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この四つは複雑ではないが、実用的だ。AI コーディングが本当に効率を上げる前提は、モデルにより多く書かせることではない。より正確に、より少なく、より制御された形で書かせることだ。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
