AIとの5万文字のチャットログから「指示ノイズ」だけを物理排除し、Zenn記事を自動生成するツールを作った
「AIとの壁打ちログ、そのまま記事にできたら楽なのに…」と思ってツールを作ってみたら、AI特有の「コンテキスト汚染」や「コードの破壊」と死闘を繰り広げる羽目になりました。
本記事は、その死闘の末に完成した自作ツール「ChatLog Converter」自身に、直近の開発ログを読み込ませて30秒で自動生成させたドッグフーディング記事です。
Introduction: AIチャットログを資産化する技術記事変換SaaSの開発
AIチャットモデルの進化に伴い、開発プロセスにおける試行錯誤のログは膨大な知見の宝庫となっている。本プロジェクトでは、Gemini Proの広大なコンテキスト処理能力とClaude Proの緻密な論理構成力を組み合わせ、チャットログから高品質な技術記事を自動生成するSaaS「ChatLog Converter」の開発を試みた。対象読者は、AIとの対話を技術資産として公開したいエンジニアや、Next.jsを用いたAIアプリケーション開発に携わる開発者である。
本ツールのゴールは、単なる要約ではなく、コード資産を完全に保護しながらAI検索エンジン(GEO)に最適化された記事を生成することにある。技術スタックにはNext.js、TypeScript、Gemini 3.0 Flash APIを採用し、自律型コーディングAIであるClaude Codeを併用することで、数ヶ月を要する開発サイクルを数日に短縮する高速プロトタイピングを実践した。
今回の変換実績
Auto-generated by ChatLog Converter
date: 2026-02-26
fact_density_score: 1.78
total_words: 1617
factual_elements: 36
frozen_blocks: 47
Struggle: プレースホルダーの破損とコンテキスト汚染
開発の初期段階において、Markdown AST変換ライブラリであるremark-stringifyの仕様に起因する問題に直面した。プレースホルダー内のアンダースコア(_)が意図せずエスケープされ、_ のような形式が崩れることで、コードブロックの復元(Rehydration)に失敗する事象が確認された。また、Gemini 3.0 Flash APIを用いた生成プロセスにおいて、出力の再現性が低く、同一の入力に対しても品質にムラが生じる課題が浮き彫りとなった。
さらに深刻な問題として、入力ログに含まれる「AIへの指示文(プロンプト)」が記事本文に混入する「コンテキスト汚染」が発生した。LLMは情報密度の高いマークダウン形式の指示文を重要な結論と誤認しやすく、# 調査目的 などのメタ情報が記事の大部分を占拠してしまう。これにより、読者が求める技術的洞察がノイズに埋もれ、記事としての価値が著しく低下する事態となった。
Insight: 物理的フィルタリングと事実密度の定量化
調査の結果、LLMに対する「〜を引用するな」というネガティブ・プロンプトによる制御には限界があることが判明した。特に長大なログを扱う場合、AIの注意機構(Attention)が構造化された指示文に吸い寄せられるため、APIに渡す前の段階で物理的にノイズを除去する「Pre-flight Filter」の必要性に気付いた。また、AI検索エンジン(GEO)に選ばれる記事には、一般的な形容詞を排した「事実密度(Fact Density)」の高さが求められるという知見を得た。
再現性の問題については、Temperature設定を 0.1 の極小値に固定し、Few-shotプロンプティングによって「理想的な変換例」を提示することで、モデルの決定性を大幅に向上させることが可能であると確信した。これにより、orchestrator.ts に示すような「Freeze → LLM → Rehydrate → GEO → Capsule Injection」という5段階の堅牢なパイプラインの設計思想が確立された。
Solution: 5段階パイプラインとスマートフィルターの実装
最終的な解決策として、プレースホルダーの形式をアンダースコアからハイフン区切り(例:{{CODEBLOCK-01}})へ統一し、エスケープ問題を完全に回避した。次に、オーケストレーターの最上流に noise-filter.ts モジュールを配置し、特定のメタ・キーワードや言語タグ(ts,` 等)を検知してプロンプト部分を自動削除するロジックを実装した。これにより、5万文字を超える長大なログから純粋な技術的知見のみを抽出することが可能となった。
さらに、fact-density.ts による事実密度のスコアリング機能と、TechArticle によるSchema.org準拠のJSON-LD自動生成機能を統合した。フェーズ3の完了報告である「実装要件のドキュメント」によれば、49項目のテストをすべてパスし、事実密度スコア2.0超という極めて高い品質を安定して出力できることを確認した。UIのスクリーンショットで示される3カラム構成により、入力ログ、変換記事、GEO分析結果を同時に確認できる実戦的なSaaSプロトタイプが完成した。
本ツールを用いたドッグフーディングの結果、Zennの文化に馴染む「Struggle → Insight → Solution」の構造を持った記事を、チャットログからスムーズに出力できるようになりました。
まだまだ荒削りですが、今後は remark を用いたAST解析の精度向上や、Mermaid図解の自動リファクタリング機能などを追加し、まずは自分自身が一番のヘビーユーザーとして使い倒しながら改善を続けていく予定です。
Appendix: JSON-LD (TechArticle)
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "AIチャットから生成された技術記事",
"description": "チャットログを基に自動生成された技術記事",
"author": {
"@type": "Person",
"name": "ChatLog Converter"
},
"datePublished": "2026-02-26",
"keywords": [
"AI",
"技術記事",
"自動生成"
]
}