Skip to content

有料記事 AI 相談チャット ​

有料記事(月刊まっく / paid_article)編集画面の AI 相談パネルと、記事単位の会話履歴を定義する。一括生成(EP-021 / EP-022)や Cursor 会話執筆(MCP / Skill)とは別経路であり、編集画面内で対話しながら下書きを欄末尾へ追記する。

日別記事の AI 相談(EP-027 / EP-028)と UI 上は類似するが、対象選択・履歴テーブル・Tool カタログは有料記事専用とする。

画面 ​

項目契約
投稿タイプpaid_article
配置編集画面右端ドック(メタボックス paid-article-ai-chat を wpwrap 直下へ移設)
対象ホールHallEnum::get_available_halls_for_daily_article() のチェック。初期は全オン。未選択は送信エラー(全日別扱いしない)
対象欄選択ページ上の .paid-article-ai-generate__button[data-target-field][data-editor-id] から検出。「全てつける」「全て外す」で一括切替可
対象欄ラベル生成ボタンの data-label を優先(固定欄は PaidArticleAiTargetField、可変/特定機種は表題+サフィックス)。fieldLabels は固定欄のフォールバック。postbox 見出しは使わない
送信・消去EP-029 / EP-030
下書き反映post meta へは自動保存しない。window.paidArticleCommentEditorAppendContent(editorId, html) で末尾追記(置換しない)
未保存投稿post_id <= 0 のとき送信・消去を無効化し案内を表示
文字サイズパネルヘッダの「小 / 中 / 大」(共通モジュール article-ai-chat-font-size)。既定は中(ルート 15px)。localStorage キー articleAiChatFontSize に保存(未設定時のみ旧キー paidArticleAiChatFontSize を読む)。ラベル・履歴・エラー・入力はルート基準の em で連動する。日別記事 AI 相談ドックも同一契約

サーバ ​

項目契約
ServicePaidArticleAiChatService(PaidArticleAiChatServiceInterface)
入力post_id / message / halls(1 つ以上) / target_fields(1 つ以上) / current_field_contents
halls日別記事対象ホール slug。空は拒否(全日別へフォールバックしない)。履歴テーブルには保存しない
target_fieldsPaidArticleAiTargetField::parse で検証。許可外は拒否
LLM 設定PaidArticleAiOptions(プロバイダ・モデル・API キー・欄別指針・有料相談用システムプロンプト)
システムプロンプトADM-028 の mycustom_paid_article_ai_chat_system_prompt。空のときは PaidArticleAiChatServiceCopy::DEFAULT_SYSTEM_PROMPT。生成用システムプロンプトは使わない
ユーザープロンプト対象月・選択ホール・選択欄・欄別指針・現行欄本文(切り詰め)・ユーザー文
ToolPaidArticleAiToolDispatcherInterface(管理画面カタログ)のみ。DailyArticleAiToolDispatcher は使わない
投稿コンテキスト対象月を解決後、set_post_context(post_id, month, '' if multiple else single field)
Tool ホール制約送信中のみ set_selected_halls。halls 引数を持つ Tool は省略/選択外を UI 選択へ交差・置換(選択外へ広げない)。終了時に clear_selected_halls。CLI/一括生成は制約なしのまま
LLM 応答形式{"reply":"...","drafts":{"paid_article_intro":"<p>...</p>"}}。drafts キーは選択 target_field のみ
下書き保存Service は post meta を更新しない。返信と drafts を返すだけ

履歴 ​

項目契約
テーブルdb_paid_article_ai_chat_message
スコープpost_id 単位(セッション分割は対象外)
列id / post_id / role / body / target_fields_json / drafts_json / created_at
インデックス(post_id, id)
上限投稿あたり直近 50 件(古い行は insert 後に削除)
消去EP-030、および before_delete_post で当該 paid_article の行を削除

日別記事 AI 相談との差分 ​

観点有料記事(本設計)日別記事(EP-027 / EP-028)
対象選択ホール + target_field(考察欄)。ホールは履歴に保存しないホール + pre / after(ホールは履歴に保存)
履歴テーブルdb_paid_article_ai_chat_messagedb_daily_article_ai_chat_message
Tool カタログ有料記事管理画面カタログ日別記事専用カタログ
下書き挿入 APIpaidArticleCommentEditorAppendContentdailyArticleAppendConsiderationContent
文字サイズ両 CPT 共通(小 / 中 / 大・articleAiChatFontSize)同左

関連 ​