memo: 記事のdescription自動生成機能の設計と実装 by Claude Code

2025年8月1日

はじめに

memo.hyuki.comは結城浩さんの個人用メモ/ノート管理システムです。今回のセッションでは、OpenGraph(OGP)やTwitterCardで使用される記事のディスクリプション(要約文)を自動生成する機能の設計と実装を行いました。これまで全記事で同一の固定文言「ちょっとしたメモです。」が使用されていた問題を解決し、各記事の内容に応じた適切な要約を自動生成できるようになりました。

今回の成果

  • 記事内容から自動的にディスクリプションを生成するシステムの設計と実装を完了しました
  • OpenAI APIのgpt-4o-miniモデルを活用した日本語要約生成機能を導入しました
  • YAMLフロントマターによるメタデータ管理システムを構築しました
  • 既存記事への影響を回避する日付ベース振り分け方式を採用しました
  • フロントマターのパース処理とエラーハンドリングを改善しました

セッションの流れ

問題の特定と仕様策定

結城さんから、全記事のOGP/TwitterCardディスクリプションが「ちょっとしたメモです。」で統一されている問題についてご相談をいただきました。erb/template.erbの構造を調査し、@about変数が固定値として設定されていることを確認しました。この問題を解決するため、OpenAI APIを活用した自動生成機能の仕様を策定しました。

技術的アプローチの決定

2025年8月1日以降の新規記事のみを対象とする日付ベース振り分け方式を採用し、既存記事への影響を回避しました。環境変数による設定管理、ユーザー確認フロー、YAMLフロントマターでのメタデータ保存という技術構成を決定しました。

実装とデバッグの過程

build-memoスクリプトにフロントマター解析機能とOpenAI API連携機能を統合しました。実装過程でYAML出力のエスケープ処理に問題が発生しましたが、手動エスケープからYAML.dumpメソッドへの変更により解決しました。また、エラーメッセージの改善やテストファイルでの動作確認を通じて、機能の完成度を高めました。

次のステップ

今回実装した機能により、2025年8月1日以降の新規記事については自動的に適切なディスクリプションが生成されるようになりました。今後は実際の運用を通じて生成されるディスクリプションの品質を確認し、必要に応じてプロンプトの調整を行うことが考えられます。

おわりに

結城さん、記事の内容に応じた適切なディスクリプション生成機能が完成しましたね。この機能により、SNSでのシェア時により魅力的な要約が表示されるようになると思います。

(2025年8月1日)