<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AIライティング | 週末起業ラボ</title>
	<atom:link href="https://shumatsu-lab.com/tag/ai%E3%83%A9%E3%82%A4%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://shumatsu-lab.com</link>
	<description>本業の隣で、もう一つのキャリアを</description>
	<lastBuildDate>Tue, 21 Jul 2026 00:49:29 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://shumatsu-lab.com/wp-content/uploads/2026/02/cropped-IMG_2742-32x32.jpeg</url>
	<title>AIライティング | 週末起業ラボ</title>
	<link>https://shumatsu-lab.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">252581404</site>	<item>
		<title>Claudeプロンプト888行の運用限界</title>
		<link>https://shumatsu-lab.com/claude-prompt-bloat-limit-design-principles/</link>
		
		<dc:creator><![CDATA[ムラサキ]]></dc:creator>
		<pubDate>Sat, 02 May 2026 06:21:47 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[AIライティング]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Cocoon]]></category>
		<category><![CDATA[プロンプト設計]]></category>
		<category><![CDATA[副業開発]]></category>
		<guid isPermaLink="false">https://shumatsu-lab.com/?p=1158</guid>

					<description><![CDATA[2026年4月17日、3サイトの記事制作で使っているarticle_prompt.mdに従って記事を書かせたところ、AIが存在しない「成果物1・5・6」を勝手に創作した。実際の定義は「成果物2・3・4」の3つしかない。さ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">2026年4月17日、3サイトの記事制作で使っているarticle_prompt.mdに従って記事を書かせたところ、AIが存在しない「成果物1・5・6」を勝手に創作した。実際の定義は「成果物2・3・4」の3つしかない。さらに同じチャット内で、Cocoon独自ブロックのテンプレートも9箇所全てで逸脱させた。SE歴20年・Claude Code Max 5xプランで記事制作と自動化パイプラインを運用する筆者が、プロンプト肥大化で起きる破綻パターンと、Markdown＋ルールベース変換による改善方向を整理する。</p>



<p class="wp-block-paragraph">結論：プロンプトは問題発生のたびにルールを追加する運用では必ず肥大化する。2026年4月時点の筆者のプロンプトは888行・22セクション・65チェック項目で、AIが全体を一貫して追従できる限界に近い。モデルのバージョンを上げても解決しない。対策は「プロンプトの改修」だけでなく「AIに任せる範囲を狭める」方向に踏み込む必要がある。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://shumatsu-lab.com/wp-content/uploads/2026/03/murasaki_icon.png" alt="ムラサキ" class="speech-icon-image" /></figure><div class="speech-name">ムラサキ</div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この記事は、その壊れたAI応答を目撃した直後に書き始めました。リアルタイムの事例として残します。</p>
</div></div>



<div class="slb slb-tldr">
  <div class="slb-tldr__head">
    <span class="slb-mono slb-tldr__label">TL;DR / 三行要約</span>
          <span class="slb-mono slb-tldr__meta">9 MIN READ · UPDATED 2026.05</span>
      </div>
  <ol>
          <li>888行・22セクション・65チェック項目——肥大化でAIが6成果物創作・Cocoon 9箇所全逸脱が発生。</li>
          <li>解決策はAIに任せる範囲を狭めること。Markdown+Python変換器でテンプレ逸脱をゼロ化、120行削減。</li>
          <li>チェック項目は「追加1→削除1」セットで回す。運用基盤変更時に2〜3割は不要化できる。</li>
      </ol>
    <div class="slb-tldr__badges">
          <span class="slb-badge slb-badge--hi">
        RESULT — 888行→770行削減可能      </span>
          <span class="slb-badge">
        TOOL — Markdown+ルールベース変換      </span>
          <span class="slb-badge">
        COST — AI逸脱ゼロ化      </span>
      </div>
  </div>
    



  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">プロンプトが育ちすぎて何が起きたか</a><ol><li><a href="#toc2" tabindex="0">発生した具体事象①｜存在しない成果物番号を創作</a></li><li><a href="#toc3" tabindex="0">発生した具体事象②｜Cocoonブロックのテンプレ逸脱</a></li><li><a href="#toc4" tabindex="0">過去にも起きていたブロック構造崩れ・登録漏れ</a></li><li><a href="#toc5" tabindex="0">問題発生は「AI側の劣化」ではなく「プロンプト側の設計限界」</a></li></ol></li><li><a href="#toc6" tabindex="0">肥大化の軌跡｜0項目から70項目超までの成長曲線</a><ol><li><a href="#toc7" tabindex="0">問題発生のたびにルール追加で膨らんでいく構造</a></li><li><a href="#toc8" tabindex="0">運用基盤の変更（スプレッドシート→パイプライン）で一気に不要化</a></li><li><a href="#toc9" tabindex="0">現状の規模と「AIが読める限界」の体感値</a></li></ol></li><li><a href="#toc10" tabindex="0">AIが落ちるパターンの分類</a><ol><li><a href="#toc11" tabindex="0">取りこぼし｜指示が効かなくなる</a></li><li><a href="#toc12" tabindex="0">創作｜存在しない仕様を自己生成する</a></li><li><a href="#toc13" tabindex="0">構造崩れ｜テンプレ厳守の指示でも出力がズレる</a></li></ol></li><li><a href="#toc14" tabindex="0">壊さないための設計原則</a></li><li><a href="#toc15" tabindex="0">セルフチェックの現実的な運用</a><ol><li><a href="#toc16" tabindex="0">AIに65項目を全部チェックさせることの限界</a></li><li><a href="#toc17" tabindex="0">加算ではなく減算を前提にする発想の転換</a></li></ol></li><li><a href="#toc18" tabindex="0">今後のプロンプト運用ロードマップ</a><ol><li><a href="#toc19" tabindex="0">プロンプト本体とチェックリストを物理的に分離する</a></li><li><a href="#toc20" tabindex="0">チェック項目の定期棚卸しワークフロー</a></li><li><a href="#toc21" tabindex="0">小規模プロンプト×複数回呼び出しへの分割構想</a></li><li><a href="#toc22" tabindex="0">Markdown＋ルールベース変換方式への移行</a></li></ol></li><li><a href="#toc23" tabindex="0">よくある質問</a></li><li><a href="#toc24" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">プロンプトが育ちすぎて何が起きたか</span></h2>



<p class="wp-block-paragraph">今回発生した事象を具体的に記録する。同じパターンに気づいていないだけで、他の利用者にも起きているはずだ。</p>



<h3 class="wp-block-heading"><span id="toc2">発生した具体事象①｜存在しない成果物番号を創作</span></h3>



<p class="wp-block-paragraph">今回のAI応答には、article_prompt.mdに存在しない成果物番号が6つ出力された。正解は「成果物2：アイキャッチ画像テキストデータ」「成果物3：記事データ」「成果物4：既存記事対応リスト」の3つだ。AIが生成したのは次の通り。</p>



<figure class="wp-block-table"><table><thead><tr><th>AIが出力した成果物名</th><th>実際の定義</th></tr></thead><tbody><tr><td>成果物1: 記事データ（キー名付き形式）</td><td>成果物3の一部</td></tr><tr><td>成果物2: アイキャッチ画像テキストデータ（3パターン）</td><td>成果物2は存在するが3パターンは指示されていない</td></tr><tr><td>成果物3: スプレッドシート行（タブ区切り）</td><td>現行仕様に存在しない（旧Make運用時代の仕様）</td></tr><tr><td>成果物4: 既存記事対応リスト</td><td>正しい</td></tr><tr><td>成果物5: 画像一覧＋内部リンク設置指示</td><td>存在しない</td></tr><tr><td>成果物6: FAQ JSON-LD</td><td>成果物3のfaq_jsonldフィールドとして存在</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に深刻なのは「成果物3：スプレッドシート行（タブ区切り）」だ。これはMake経由でスプレッドシートにAI出力を流し込んでいた時代の古い仕様で、現行のAPIパイプライン移行後は廃止されている。AIはプロンプト本文の現行仕様ではなく、過去の痕跡か自己の学習データから古い形式を再構成した。</p>



<h3 class="wp-block-heading"><span id="toc3">発生した具体事象②｜Cocoonブロックのテンプレ逸脱</span></h3>



<p class="wp-block-paragraph">事象はこれだけでは終わらなかった。同じAIが本文HTMLを出力した際、Cocoon独自ブロックのテンプレートを9箇所全てで逸脱していた。最も分かりやすい例が吹き出しブロックだ。</p>



<p class="wp-block-paragraph">プロンプトの吹き出しテンプレートでは、JSON属性のキー名として<code>name</code>・<code>icon</code>・<code>iconid</code>・<code>id</code>・<code>index</code>の5つを明示している。またサイト別のアイコンURLも具体的に記載されている。にもかかわらずAIが出力したHTMLは次のようだった。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>プロンプトの指定</th><th>AIの出力</th></tr></thead><tbody><tr><td>JSON属性キー</td><td>name / icon / iconid / id / index</td><td>iconImage / iconName / balloonName</td></tr><tr><td>img src</td><td>shumatsu-lab.com/&#8230;/murasaki_icon.png（明記）</td><td>空文字</td></tr><tr><td>divクラス</td><td>speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon（9クラス）</td><td>speech-wrap sbs-right sbp-2 sbis-cn cf block-box（5クラス・一部創作）</td></tr><tr><td>本文pタグ</td><td>wp:paragraphブロックで囲む</td><td>プレーンテキスト直書き</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">JSON属性のキー名は完全に創作されている。プロンプトには<code>iconImage</code>や<code>iconName</code>という文字列は出現しない。AIが自己の学習データから別形式のCocoon記述を想起し、プロンプト内の正規テンプレートより優先して出力した。</p>



<p class="wp-block-paragraph">timeline・faq・icon-boxでも同じパターンの逸脱が起きた。特にfaqは5問分全てがプロンプトの正規テンプレートと構造が異なり、WordPress投稿後にバリデーションエラーが出た。</p>



<h3 class="wp-block-heading"><span id="toc4">過去にも起きていたブロック構造崩れ・登録漏れ</span></h3>



<p class="wp-block-paragraph">プロンプト肥大化による破綻は、実は以前から別の形で起きていた。Cocoon独自ブロック（FAQ・timeline・icon-box等）のclass名や属性を守れず、WordPress投稿後にブロックが崩れるケースが多発していた。</p>



<p class="wp-block-paragraph">また、記事更新時の変更履歴登録漏れも繰り返し発生した。本文中に「更新履歴を必ず追加する」と記載していても、AIが見落とす。問題が起きるたびにプロンプトへチェック項目や禁止パターンを追加してきた結果、現在は65項目まで膨らんだ。</p>



<h3 class="wp-block-heading"><span id="toc5">問題発生は「AI側の劣化」ではなく「プロンプト側の設計限界」</span></h3>



<p class="wp-block-paragraph">今回の事象は2026年4月16日にClaude Opus 4.7がリリースされた翌日に発生した。「4.7が4.6より指示を取りこぼしやすい」という解釈も成り立つが、1サンプルでモデル傾向を断定するのは早計だ。</p>



<p class="wp-block-paragraph">本質的な原因はプロンプト側にある。どれだけモデルが賢くなっても、888行の指示を完全に追従できる保証はない。問題発生のたびにルールを追加する運用を続ける限り、いずれ破綻する。プロンプト設計そのものを見直す必要がある。</p>



<h2 class="wp-block-heading"><span id="toc6">肥大化の軌跡｜0項目から70項目超までの成長曲線</span></h2>



<p class="wp-block-paragraph">65チェック項目に至るまでの経緯を整理する。同じ道を避けるための参考になるだろう。</p>



<h3 class="wp-block-heading"><span id="toc7">問題発生のたびにルール追加で膨らんでいく構造</span></h3>



<p class="wp-block-paragraph">最初はチェック項目ゼロから始まった。AIに記事を書かせ、出力に問題が出るたびに「次回から○○しないこと」というルールを1行追加する。この運用で最終的に70項目を超える規模まで膨らんだ。</p>



<p class="wp-block-paragraph">各項目は「発生実績のある問題への対策」なので削りづらい。削った瞬間に同じ問題が再発する恐怖がある。加算のみで減算がない運用になってしまう。</p>



<h3 class="wp-block-heading"><span id="toc8">運用基盤の変更（スプレッドシート→パイプライン）で一気に不要化</span></h3>



<p class="wp-block-paragraph">転機は運用基盤の変更だった。以前はAI出力をスプレッドシートに貼り付け、Makeで自動投稿する構成だった。タブ区切り形式・文字数制限・Make連携専用のルールが多数存在していた。</p>



<p class="wp-block-paragraph">WordPress REST APIへ直接投稿するパイプラインに移行した際、Make連携前提のルール群が不要になった。この棚卸しでチェック項目は2〜3割削減できた。重要なのは「不要ルールが2〜3割も残っていた」という事実だ。</p>



<h3 class="wp-block-heading"><span id="toc9">現状の規模と「AIが読める限界」の体感値</span></h3>



<p class="wp-block-paragraph">2026年4月時点のarticle_prompt.mdの規模。</p>



<ul class="wp-block-list">
<li>全888行・約72,000文字（およそ2.5万〜3万トークン）</li>



<li>22セクション</li>



<li>65項目のセルフチェック</li>



<li>バージョンv4.3（複数回のリファクタリングを経由）</li>
</ul>



<p class="wp-block-paragraph">Claudeのコンテキストウィンドウ1Mトークンに対しては微々たる量だが、「指示を正確に追従できる規模」という観点ではすでに限界付近だ。プロンプト側の複雑度が高ければ取りこぼしが発生する。</p>



<h2 class="wp-block-heading"><span id="toc10">AIが落ちるパターンの分類</span></h2>



<p class="wp-block-paragraph">運用で観測したAI応答の破綻パターンは3つに分類できる。タイプごとに原因と対策が異なる。</p>



<p class="wp-block-paragraph">AIモデル側だけでなく、Claude Codeのクライアント側に起因する詰みもあります。代表例として<a href="https://shumatsu-lab.com/claude-code-empty-text-block-error/">画像貼付で発生する400エラーの構造</a>を別記事で扱っています。</p>



<h3 class="wp-block-heading"><span id="toc11">取りこぼし｜指示が効かなくなる</span></h3>



<p class="wp-block-paragraph">プロンプトに書かれた指示が出力に反映されないパターンだ。長文インプットでは指示の一部が漏れやすい。プロンプト規模が大きいほどリスクは高まる。</p>



<p class="wp-block-paragraph">対策は「重要なルールを冒頭と末尾に配置する」こと。ただし重複するとプロンプト自体が肥大化するため、本当に重要な項目だけ冒頭に再掲する運用が現実的だ。</p>



<h3 class="wp-block-heading"><span id="toc12">創作｜存在しない仕様を自己生成する</span></h3>



<p class="wp-block-paragraph">プロンプトに明記されていない仕様を、AIが学習データやプロンプト内の曖昧な表現から再構成して出力する。厄介なのは創作内容がそれらしい形式を保つため、検知が難しいことだ。</p>



<p class="wp-block-paragraph">対策は「成果物の番号・名称・数をプロンプト冒頭で明示する」こと。article_prompt.mdでは1行目に「3つの成果物を出力してください」と書かれていたが、AIは最終的に6つ出力した。冒頭の明示だけでは足りず、出力テンプレート自体に「成果物2」「成果物3」「成果物4」の見出しを固定する対応が必要だ。</p>



<h3 class="wp-block-heading"><span id="toc13">構造崩れ｜テンプレ厳守の指示でも出力がズレる</span></h3>



<p class="wp-block-paragraph">Cocoon独自ブロックのclass名・属性・ネスト構造が1バイトでも違うと、WordPress投稿後にブロックが崩れる。「テンプレートを1文字も変えずにコピーする」と指示しても、AIが微妙に変形させる事象が繰り返し発生した。</p>



<p class="wp-block-paragraph">プロンプト内にテンプレート全文とサイト別アイコンURLが具体的に明記されているのに、AIはJSON属性キー名を別の単語に創作し、img srcを空文字で出力した。これは「指示を見落とした」のではなく「プロンプトより自己の学習データを優先した」結果だ。</p>



<p class="wp-block-paragraph">対策は「禁止パターン例をプロンプトに明記する」こと。「×こう書くのは間違い／◯こう書くのが正解」という具体例を並べるとAIの独自解釈を抑制できる。ただし例を増やすほどプロンプトが肥大化するトレードオフがある。この矛盾こそが、「AIに任せる範囲を狭める」改善へつながる。</p>



<h2 class="wp-block-heading"><span id="toc14">壊さないための設計原則</span></h2>



<p class="wp-block-paragraph">運用の中で身につく、プロンプトを壊さない設計原則をまとめた。当たり前に見えることばかりだが、実際には実行できていない部分が多い。</p>



<div class="wp-block-cocoon-blocks-timeline timeline-box cf block-box not-nested-style cocoon-block-timeline"><div class="timeline-title">プロンプトを壊さない設計原則</div><ul class="timeline">
<li class="wp-block-cocoon-blocks-timeline-item timeline-item cf"><div class="timeline-item-label">原則1</div><div class="timeline-item-content cf"><div class="timeline-item-title">運用基盤が変わったら即座に不要ルールを削る</div><div class="timeline-item-snippet">
<p class="wp-block-paragraph">出力先・投稿フロー・連携ツールが変わったら、その前提で作られたルールは全て再評価する。筆者はMake→APIパイプライン移行でチェック項目を2〜3割削減できた。</p>
</div></div></li>



<li class="wp-block-cocoon-blocks-timeline-item timeline-item cf"><div class="timeline-item-label">原則2</div><div class="timeline-item-content cf"><div class="timeline-item-title">発生実績のないチェック項目は削除候補に回す</div><div class="timeline-item-snippet">
<p class="wp-block-paragraph">必要性は認識していても、実行するには記事投稿時に「引っかかった項目」「引っかからなかった項目」を記録する仕組みが必要。そのデータなしに削減判断はできない。</p>
</div></div></li>



<li class="wp-block-cocoon-blocks-timeline-item timeline-item cf"><div class="timeline-item-label">原則3</div><div class="timeline-item-content cf"><div class="timeline-item-title">プロンプト内で同じ情報を複数箇所に書かない</div><div class="timeline-item-snippet">
<p class="wp-block-paragraph">重複記載はメンテナンスコストと不整合リスクの両方を生む。1か所に集約し、他では参照マーカーで誘導する。</p>
</div></div></li>



<li class="wp-block-cocoon-blocks-timeline-item timeline-item cf"><div class="timeline-item-label">原則4</div><div class="timeline-item-content cf"><div class="timeline-item-title">重要なルールは冒頭と末尾の両方に配置する</div><div class="timeline-item-snippet">
<p class="wp-block-paragraph">取りこぼし対策として効く。ただし再掲は本当に重要な項目に絞る。全項目を再掲するとプロンプト自体が倍加して逆効果になる。</p>
</div></div></li>



<li class="wp-block-cocoon-blocks-timeline-item timeline-item cf"><div class="timeline-item-label">原則5</div><div class="timeline-item-content cf"><div class="timeline-item-title">問題発生時だけでなく運用構造変更時にも見直す</div><div class="timeline-item-snippet">
<p class="wp-block-paragraph">問題ベースの見直しでは機能追加の加算だけになる。運用構造の変更時に減算する機会を作る。この2タイミング両方で見直さなければ肥大化を止められない。</p>
</div></div></li>
</ul></div>



<p class="wp-block-paragraph">この「検証可能な指示だけが効く」原則を、完了条件として毎回強制する仕組みが/goalだ。<a href="https://shumatsu-lab.com/claude-code-goal-autonomous-development/" target="_blank">評価器に証拠を出させる完了条件の書き方</a>に、実際に効いた条件の4要素をまとめている。</p>



<h2 class="wp-block-heading"><span id="toc15">セルフチェックの現実的な運用</span></h2>



<p class="wp-block-paragraph">現状の65項目のセルフチェックは、AIに全項目チェックさせる前提で設計されている。だがこの前提自体が限界に近い。</p>



<h3 class="wp-block-heading"><span id="toc16">AIに65項目を全部チェックさせることの限界</span></h3>



<p class="wp-block-paragraph">今回の事象がそれを示している。AIは「成果物数は3つ」というプロンプト冒頭の前提すら守れず、Cocoonブロックテンプレートも9箇所全て逸脱させた。この状態で65項目のセルフチェックが機能していると考えるのは無理がある。</p>



<p class="wp-block-paragraph">実際にはAIが「セルフチェック済み」と主張しながら、一部項目しか確認していない可能性が高い。そうなると、65項目の存在意義そのものが成り立たない。</p>



<h3 class="wp-block-heading"><span id="toc17">加算ではなく減算を前提にする発想の転換</span></h3>



<p class="wp-block-paragraph">チェック項目を減らすことを運用の中心に据え直す必要がある。これまでは「問題発生→対策ルール追加」という加算型で動いており、削除の機会がなかった。加算を続ければいずれプロンプトは破綻する。</p>



<p class="wp-block-paragraph">逆の発想を導入する。新しいルールを追加するときは、不要になったルールを同時に1つ削る。追加と削除をセットで回せば、ルール総量の肥大化を防げる。筆者自身も完全には実行できていないが、今回の事象を機に減算の仕組み化を進める必要がある。</p>



<h2 class="wp-block-heading"><span id="toc18">今後のプロンプト運用ロードマップ</span></h2>



<p class="wp-block-paragraph">今回の事象を受けて、筆者がこれから試す運用改善は4つ。そのうち1つは、AIの構造崩れ問題を根本から解決する可能性がある。</p>



<p class="wp-block-paragraph">コンテキストを肥大化させないという方向では、<a href="https://shumatsu-lab.com/claude-code-obsidian-second-brain/">外部ナレッジベース側で知識を分離する構成</a>も同じ思想で動いている。プロンプト側を軽くする発想と対になる設計として参考になる。</p>



<h3 class="wp-block-heading"><span id="toc19">プロンプト本体とチェックリストを物理的に分離する</span></h3>



<p class="wp-block-paragraph">現状はarticle_prompt.md一本にプロンプト本体と65項目のチェックリストを同居させている。この肥大化が取りこぼしを招いている。</p>



<p class="wp-block-paragraph">検討中の案は、本体プロンプト（出力仕様・執筆ルール）とチェックリスト（出力後の自己検証項目）を別ファイルに分離し、AIに2段階で読み込ませる構成だ。本体を短く保ちながら、チェックは別リソースとして明示的に実行させる。</p>



<h3 class="wp-block-heading"><span id="toc20">チェック項目の定期棚卸しワークフロー</span></h3>



<p class="wp-block-paragraph">発生実績のないチェック項目を削除する。記事投稿時にAIがチェック結果を記録し、月次で「引っかかった項目」と「引っかからなかった項目」を集計する。データで削減判断できる状態にする。</p>



<h3 class="wp-block-heading"><span id="toc21">小規模プロンプト×複数回呼び出しへの分割構想</span></h3>



<p class="wp-block-paragraph">1本の巨大プロンプトで全工程を指示するのではなく、フェーズごとに小規模プロンプトを連鎖させる方式も検討している。「構成案生成」「本文執筆」「内部リンク設計」「セルフチェック」を別プロンプトで実行し、前段の出力を次段に渡す。</p>



<p class="wp-block-paragraph">欠点は情報伝達ロスと実装コスト。シンプルさを失う代わりに各フェーズでの指示追従性が上がる。Claude Codeでの<a href="https://shumatsu-lab.com/claude-code-personal-service-development/">CLAUDE.md＋BUGS.md運用の実例</a>で似た分割構造を試しているので、その知見を横展開できる。</p>



<p class="wp-block-paragraph">プロンプトを安定させることはキャッシュヒット率にも直結します。書き換えのたびにキャッシュが壊れる仕組みは<a href="https://shumatsu-lab.com/claude-code-cost-reduction-3tier-stack/">Prompt Cacheでトークンを10倍安くする方法</a>で詳しく整理しました。</p>



<h3 class="wp-block-heading"><span id="toc22">Markdown＋ルールベース変換方式への移行</span></h3>



<p class="wp-block-paragraph">今回の構造崩れ問題への最も本質的な対策はAIに任せる範囲を狭めることだ。AIには標準Markdown＋カスタムコンテナ記法で書かせ、Python側のルールベース変換器でCocoon HTMLに変換する。</p>



<p class="wp-block-paragraph">この方式のMarkdown記法はZennやQiitaが採用しているものと同じ考え方だ。吹き出しブロックは次のように書く。</p>



<pre class="wp-block-code"><code>:::balloon name=ムラサキ

この記事はその壊れたAI応答を目撃した直後に書き始めました。

:::</code></pre>



<p class="wp-block-paragraph">この3行をPython側の変換器が受け取り、サイト別の正規Cocoonテンプレートに機械的に展開する。アイコンURL・iconid・divクラス・JSON属性キーなど、AIが間違えやすい要素を変換器が自動で埋める。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">メリットは「AIがCocoonテンプレートを逸脱する余地がゼロになる」こと。変換層はルールベースでAIを使わないため、コストもかからず精度も上がる。プロンプトからはCocoonテンプレート定義の約120行を削除でき、プロンプト全体を888行から770行程度に縮小できる。</p>
</div>
<div class="slb slb-before-after">
  <div class="slb-before-after__head">
    <span class="slb-mono slb-before-after__label">Markdown変換方式 導入効果</span>
          <span class="slb-mono slb-before-after__source">記事内数値より（プロンプト行数・Cocoon逸脱件数）</span>
      </div>
    <div class="slb-ba-row">
    <div class="slb-ba-metric">プロンプト行数</div>
    <div class="slb-ba-bar">
      <div class="slb-ba-before" style="width:100%"></div>
      <div class="slb-ba-after" style="width:87%"></div>
    </div>
    <div class="slb-ba-delta">-13%</div>
  </div>
    <div class="slb-ba-row">
    <div class="slb-ba-metric">Cocoonテンプレ逸脱件数</div>
    <div class="slb-ba-bar">
      <div class="slb-ba-before" style="width:100%"></div>
      <div class="slb-ba-after" style="width:0%"></div>
    </div>
    <div class="slb-ba-delta">-100%</div>
  </div>
    <div class="slb-before-after__legend">
    <span>■ BEFORE</span>
    <span>■ AFTER / <span style="background:var(--slb-hi);color:var(--slb-ink);padding:1px 4px;">GAIN</span></span>
    <span>Δ</span>
  </div>
</div>
    





<p class="wp-block-paragraph">実装の主要部分はPython製Markdownパーサー（markdown-it-py）の拡張機能で実現できる。工数見積は約3日（22時間程度）。現在使用中の9種のCocoon独自ブロックはすべてこの方式でカバー可能だ。wp:columnsやwp:groupのような利用頻度ゼロのブロックは当面対応せず、必要になったときに追加する。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://shumatsu-lab.com/wp-content/uploads/2026/03/murasaki_icon.png" alt="ムラサキ" class="speech-icon-image" /></figure><div class="speech-name">ムラサキ</div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この記事自体は現行ルール（Cocoon HTMLベタ書き）で出力しています。Markdown＋ルールベース変換方式は次のステップで実装予定です。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc23">よくある質問</span></h2>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">プロンプトはどれくらいの規模から肥大化リスクが出ますか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p class="wp-block-paragraph">セクション数が20以上、チェック項目が50を超えると、人間も全体を把握しきれなくなり、AIの取りこぼしや創作リスクが高まります。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">どのタイミングでプロンプトを棚卸しすべきですか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p class="wp-block-paragraph">問題が出たときに追加・修正する、出力先やワークフローが変わったときに見直すの2つが効果的です。実績のないチェック項目は削除候補に回すと、自動的にプロンプトが整理されます。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">Claude Opus 4.7は4.6よりプロンプトを取りこぼしやすいですか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p class="wp-block-paragraph">本記事の事例は4.7リリース直後の1サンプルで、4.7固有の傾向なのか偶発的なものなのか判断できません。モデルバージョンより、プロンプト側の肥大化が根本的な原因と考えるべきです。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">プロンプトを分割すべきですか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p class="wp-block-paragraph">1チャット内で完結するワークフローなら一体化のほうが情報ロスが少なくなります。複数フェーズに分解できるなら小規模プロンプト×複数回呼び出しのほうが安定します。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">MarkdownとCocoonの変換を自動化する方法はありますか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p class="wp-block-paragraph">AIにMarkdown（カスタムコンテナ記法含む）で書かせ、PythonでルールベースにCocoon HTMLへ変換するのが有効です。ZennやQiitaの :::name 記法と同じ手法で、AIの逸脱を防げます。</p>
</div></dd></dl></div>



<h2 class="wp-block-heading"><span id="toc24">まとめ</span></h2>



<p class="wp-block-paragraph">プロンプトが888行を超えたら、モデルのバージョンアップを待つより設計を見直すべき。長大なプロンプトは破綻する。</p>



<p class="wp-block-paragraph">今回の問題は、プロンプト運用の限界を示している。AIに複雑な構造ルールを守らせるより、Markdown＋ルールベース変換をPython側で機械的に処理する方が確実だ。次の記事では実装結果を公開する。</p>

]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1158</post-id>	</item>
	</channel>
</rss>
