pornfun-Mark2【評価・SEXDOLL】cronテンプレート

個別cron作成依頼文

pornfun-Mark2【評価・SEXDOLL】収集cron automation作成依頼文

【cron個別作成依頼文】
以下のautomationを1件だけ新規作成してください。

CRON_REQUEST:pornfun_mark2_sex_doll_shops_collection_v5
automation名: pornfun-Mark2【評価・SEXDOLL】収集
stage: collection
schedule: 毎日 03:30 Asia/Tokyo
起動回数: 1回/日
1タスクの取得件数: 1件から最大20件
役割: セックスドールショップの新規候補を収集し、重複確認、Hub保存、読み戻しまで行う。検査、記事制作、WordPress投稿、公開、高品質チェック、訂正はしない。

対象識別子:
- Hub: https://pornfun-hub-mark2.secure358.com/
- site_id: porn-fun
- workflow_id: porn-fun-sex-doll-shops-ja
- content_set: porn_fun_sex_doll_shops
- directory_collection_slug: adult-services
- directory_type_slug: sex-doll-shops
- language: ja
- 担当agent: CODE-YUKI
- 公開cron正本: https://cron.goudou-358.jp/2328/
- ローカルMark2正本: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\cron_prompts\current\SEX_DOLL_SHOPS
- workflow別env: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\workflows\porn-fun-sex-doll-shops-ja.env.local
- 安全なtoken正本: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\hub-agent-token.local

カテゴリ定義:
セックスドールまたはラブドールを販売する通販サイト。単一商品ページではなく、ショップまたはメーカー直販サービスを候補にする。

メンターURL:
- https://theporndude.com/sex-doll-shops
- https://lovedollquest.com/
- https://lovedollinformation.com/
- https://lovedoll-text.com/shopping-sites-love-doll/

【automation作成条件】
- この依頼文から作るautomationは1件だけです。同じstageの重複automationを先に検索し、同名または同一workflowの現役automationがあれば新規作成せず差分を報告してください。
- scheduleは1日1回です。時間間隔の反復、1日複数回、常時監視にはしないでください。
- automationのprompt本文には、この依頼文を冒頭から末尾まで省略せず保存してください。「公開cron参照」「Hub参照」「共通Gate参照」だけへ短縮してはいけません。
- automation作成後に、automation名、schedule、timezone、prompt本文の先頭marker、workflow_id、stageを読み戻してください。
- 作成しただけでは起動しません。初回実行はautomationの設定状態を確認し、代表が有効化した後に行います。

【no-touch】
- C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun 以下はMark1です。参照はできますが、編集、移動、削除、上書き、同期先への指定を禁止します。
- 他のMark2カテゴリ、他サイト、公開済み記事本文、WordPress投稿、Directory Core既存行、検査以降の工程を変更してはいけません。
- 共有Gateや他サイトのpromptを更新してはいけません。

起動時は同一run内で次の順に実行してください。
1. Mark2ローカルの対象プロンプト、PREFLIGHT_ENTRYPOINT.md、STARTUP_PROMPT.md、`config/workflows/porn-fun-sex-doll-shops-ja.env.local`を読む。共通`hub.env.local`や別workflowのenvを使用しない。
2. workflow別envの`H358_HUB_URL`、`H358_HUB_SITE_ID`、`H358_HUB_WORKFLOW_ID`、`H358_HUB_AGENT`、`H358_HUB_AGENT_TOKEN_FILE`を読み、値がこの依頼文のHub、site_id、workflow_id、agentと完全一致することを確認する。
3. `H358_HUB_AGENT_TOKEN_FILE`が示す`C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\hub-agent-token.local`をAPI呼び出し時だけ読む。Mark2はこの1フォルダ内で完結させ、別のユーザーフォルダや他HUBのtokenへフォールバックしない。
4. https://pornfun-hub-mark2.secure358.com/index.php?api=status を取得し、HTTP 200、MariaDB接続、Hub version、site_id、automation_enabledを確認する。
5. agent_packを site_id=porn-fun、workflow_id=porn-fun-sex-doll-shops-ja で認証付き取得する。
6. agent_work_queueを agent=CODE-YUKI、site_id=porn-fun、workflow_id=porn-fun-sex-doll-shops-ja、stage=collection で認証付き取得する。
7. Hubから返ったRules、Checks、References、Manuals、Files、TaskTemplates、対象queueを確認する。
8. 書き込みはhub_table_upsertを使い、同じsite_id、workflow_id、content_set、article_keyへ保存する。
9. 保存直後にagent_pack、agent_work_queue、または対象テーブルを再取得し、主キー、状態、本文hash、件数を読み戻す。

APIトークンは安全なtoken正本からAPI呼び出し時だけ読み、画面、ログ、成果物、作業報告へ値を出してはいけません。401、403、invalid tokenはBLOCKED_HUB_AUTH、automation_enabled=falseまたはmaintenanceはBLOCKED_HUB_AUTOMATION_DISABLED、DNS、timeout、network errorが再試行後も続く場合はBLOCKED_HUB_NETWORKとして止めてください。Mark1 Hubはporn-fun.com全体の辞書重複在庫を確認する読取専用補助資料としてだけ参照できます。書き込み先、正本、フォールバック先にはしません。旧Hub、AIfan Hub、Invest358 Hubへフォールバックしてはいけません。

【収集手順】
1. メンターURLをすべて確認し、カテゴリ定義に合うサービス候補を探します。
2. サービス名、別名、公式URL、公式ドメイン、紹介元URL、短い分類根拠を取得します。
3. メンターURLだけで20件に届かない場合は、カテゴリ名、代表サービス名、関連する日本語KWと英語KWでウェブ検索し、第三者一覧、レビュー、公式サイトから補います。
4. 1タスクで保存する候補は1件から最大20件です。見つかった件数が20件未満でも、存在しない候補を作らず、取得できた件数だけ保存します。
5. 公式URLを特定できない候補、明らかな架空サービス、実在人物の非同意コンテンツを主目的とするサービス、未成年、違法行為、搾取を助長するサービスはacceptedにしません。除外理由と参照URLは収集報告へ残します。
6. 閉鎖、休止、悪評、返金問題、使いにくさがあるだけで候補から消してはいけません。実在が確認できれば状態と注意点を付けて検査へ渡します。

【porn-fun.com全体の重複防止】
候補ごとに、次をすべて確認してください。
- Mark2 Hubの同一workflowと全workflowにあるservice_name、aliases、official_domain、main_slug、alternate_slugs、public_url、Post ID、article_key
- Mark1 HubまたはMark1ローカル在庫を読取専用で確認し、同じ識別子がないか照合する。Mark1へ書き込まない
- porn-fun.comの辞書プラグイン対象post typeにある公開、下書き、非公開、予約、保留、ゴミ箱の辞書記事、`adult-services`辞書一覧、全directory type
- WordPress認証検索、辞書公開REST、辞書サイト内検索、辞書XML sitemap、canonical、リダイレクト先。1つの検索手段だけで0件判定しない
- 通常のCocoon記事は後日の辞書記事へのリダイレクト対象なので、重複件数へ含めない。通常投稿タイプだけに同じサービスがあっても辞書候補を除外しない
- 表記揺れ、旧名称、ブランド名と運営会社名、www有無、末尾slash有無、リダイレクト後ドメイン
- Mark1とMark2でカテゴリの取扱範囲が重なることは許可されていますが、同一サービスの辞書記事重複は許可されません。Mark1辞書記事、別辞書カテゴリ、別slugの辞書記事であっても同一サービスなら新規候補化を禁止します。通常のCocoon記事はこの判定から除外します。

既存辞書記事との重複が見つかった候補は新規accepted_0Bにせず、duplicate_existing_pornfun_dictionary_articleとして一致した識別子、既存辞書記事タイトル、URL、canonical、Post ID、既存辞書カテゴリ、既存workflowまたはMark1由来を保存してください。既存辞書記事の品質が低くても別の辞書記事を作らず、代表指示がある場合だけ既存Post IDを固定した修正候補へ分離します。通常のCocoon記事は無視し、slugだけ、Mark2 Hubだけ、現在の辞書カテゴリだけの確認でPASSにしてはいけません。

【保存項目】
候補ごとに少なくとも次を保存してください。
- candidate_id、article_key、service_name、aliases
- official_url、official_domain、source_urls
- site_id、workflow_id、content_set、directory_collection_slug、directory_type_slug、language
- category_fit、category_fit_reason
- discovered_at、checked_at、collector_agent
- duplicate_scope=porn-fun.com_dictionary_articles_all、normal_cocoon_article_ignored=true、duplicate_check_result、duplicate_match_ids、duplicate_match_urls、duplicate_match_post_ids、duplicate_match_source
- service_status、risk_notes、unknown_fields
- queue_state=accepted_0B または excluded または duplicate

【完了条件】
- 保存件数は1件から20件です。0件の場合は無理に候補を作らず、検索語、確認URL、0件理由をno_target_reportとして保存します。
- Hub保存後に読み戻し、保存件数、candidate_id、workflow_id、directory_type_slug、queue_stateが一致したことを確認します。
- 文字化け確認は疑問符4文字連続、U+FFFD、UTF-8誤読の代表パターンを機械確認し、0件でなければ修正して再保存します。
- 作業報告には取得件数、accepted件数、duplicate件数、excluded件数、主な参照URL、readback結果、未完了点を書きます。
- 記事本文は作りません。検査、production_ready化、WordPress投稿、公開へ進みません。

pornfun-Mark2【評価・SEXDOLL】検査cron automation作成依頼文

【cron個別作成依頼文】
以下のautomationを1件だけ新規作成してください。

CRON_REQUEST:pornfun_mark2_sex_doll_shops_inspection_v5
automation名: pornfun-Mark2【評価・SEXDOLL】検査
stage: inspection
schedule: 毎日 06:30 Asia/Tokyo
起動回数: 1回/日
1タスクの検査件数: 未処理accepted_0Bを1件から最大20件
役割: 収集済み候補を1件ずつ検査し、制作が迷わないproduction_material_packを作り、明らかな架空サービス以外をproduction_readyへ渡す。記事本文、WordPress投稿、公開、高品質チェック、訂正はしない。

対象識別子:
- Hub: https://pornfun-hub-mark2.secure358.com/
- site_id: porn-fun
- workflow_id: porn-fun-sex-doll-shops-ja
- content_set: porn_fun_sex_doll_shops
- directory_collection_slug: adult-services
- directory_type_slug: sex-doll-shops
- language: ja
- 担当agent: CODE-YUKI
- 公開cron正本: https://cron.goudou-358.jp/2328/
- ローカルMark2正本: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\cron_prompts\current\SEX_DOLL_SHOPS
- workflow別env: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\workflows\porn-fun-sex-doll-shops-ja.env.local
- 安全なtoken正本: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\hub-agent-token.local

カテゴリ定義:
セックスドールまたはラブドールを販売する通販サイト。単一商品ページではなく、ショップまたはメーカー直販サービスを候補にする。

メンターURL:
- https://theporndude.com/sex-doll-shops
- https://lovedollquest.com/
- https://lovedollinformation.com/
- https://lovedoll-text.com/shopping-sites-love-doll/

【automation作成条件】
- この依頼文から作るautomationは1件だけです。同じstageの重複automationを先に検索し、同名または同一workflowの現役automationがあれば新規作成せず差分を報告してください。
- scheduleは1日1回です。時間間隔の反復、1日複数回、常時監視にはしないでください。
- automationのprompt本文には、この依頼文を冒頭から末尾まで省略せず保存してください。「公開cron参照」「Hub参照」「共通Gate参照」だけへ短縮してはいけません。
- automation作成後に、automation名、schedule、timezone、prompt本文の先頭marker、workflow_id、stageを読み戻してください。
- 作成しただけでは起動しません。初回実行はautomationの設定状態を確認し、代表が有効化した後に行います。

【no-touch】
- C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun 以下はMark1です。参照はできますが、編集、移動、削除、上書き、同期先への指定を禁止します。
- 他のMark2カテゴリ、他サイト、公開済み記事本文、WordPress投稿、Directory Core既存行、制作以降の工程を変更してはいけません。
- 共有Gateや他サイトのpromptを更新してはいけません。

起動時は同一run内で次の順に実行してください。
1. Mark2ローカルの対象プロンプト、PREFLIGHT_ENTRYPOINT.md、STARTUP_PROMPT.md、`config/workflows/porn-fun-sex-doll-shops-ja.env.local`を読む。共通`hub.env.local`や別workflowのenvを使用しない。
2. workflow別envの`H358_HUB_URL`、`H358_HUB_SITE_ID`、`H358_HUB_WORKFLOW_ID`、`H358_HUB_AGENT`、`H358_HUB_AGENT_TOKEN_FILE`を読み、値がこの依頼文のHub、site_id、workflow_id、agentと完全一致することを確認する。
3. `H358_HUB_AGENT_TOKEN_FILE`が示す`C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\hub-agent-token.local`をAPI呼び出し時だけ読む。Mark2はこの1フォルダ内で完結させ、別のユーザーフォルダや他HUBのtokenへフォールバックしない。
4. https://pornfun-hub-mark2.secure358.com/index.php?api=status を取得し、HTTP 200、MariaDB接続、Hub version、site_id、automation_enabledを確認する。
5. agent_packを site_id=porn-fun、workflow_id=porn-fun-sex-doll-shops-ja で認証付き取得する。
6. agent_work_queueを agent=CODE-YUKI、site_id=porn-fun、workflow_id=porn-fun-sex-doll-shops-ja、stage=inspection で認証付き取得する。
7. Hubから返ったRules、Checks、References、Manuals、Files、TaskTemplates、対象queueを確認する。
8. 書き込みはhub_table_upsertを使い、同じsite_id、workflow_id、content_set、article_keyへ保存する。
9. 保存直後にagent_pack、agent_work_queue、または対象テーブルを再取得し、主キー、状態、本文hash、件数を読み戻す。

APIトークンは安全なtoken正本からAPI呼び出し時だけ読み、画面、ログ、成果物、作業報告へ値を出してはいけません。401、403、invalid tokenはBLOCKED_HUB_AUTH、automation_enabled=falseまたはmaintenanceはBLOCKED_HUB_AUTOMATION_DISABLED、DNS、timeout、network errorが再試行後も続く場合はBLOCKED_HUB_NETWORKとして止めてください。Mark1 Hubはporn-fun.com全体の辞書重複在庫を確認する読取専用補助資料としてだけ参照できます。書き込み先、正本、フォールバック先にはしません。旧Hub、AIfan Hub、Invest358 Hubへフォールバックしてはいけません。

【対象選択】
- 同一workflowの未処理accepted_0Bだけを対象にします。1タスクで1件から最大20件を検査し、候補ごとに独立した結果を保存します。
- 同じcandidate_id、article_keyを二重claimしません。既にinspection中、production_ready、制作中、公開済みの候補は対象外です。
- category_fitを再確認し、別カテゴリが妥当なら勝手に移動せず、recommended_workflow_idと理由を保存して保留します。

【事実確認】
各候補について、最低限次を確認してください。
1. 公式トップ、料金、機能、無料と有料の差、登録、退会または解約、決済、返金、サポート、利用規約、プライバシー、年齢制限、対応地域、禁止事項。
2. 公式ドメイン、運営会社、ブランド別名、リダイレクト、サービス稼働状況。
3. 狙いKW候補で検索し、検索上位10位内の第三者ページを可能な範囲で取得します。10件に届かなくても停止せず、取得できた情報で続け、検索語、順位、URL、取得件数、不足理由を保存します。
4. メンターURLの構成、比較軸、読者が知りたい項目を確認します。丸写しはしません。
5. 口コミ、評判、悪評、解約や返金のトラブル、使いにくさ、安全上の注意を確認し、事実、第三者の主張、未確認情報を分けます。

【除外と通過】
- 検査で除外してよいのは、明らかな架空サービス、公式実在を確認できず第三者情報も成立しない候補、未成年、違法行為、搾取、実在人物の非同意コンテンツを主目的とする候補です。
- 閉鎖、休止、公式URL不通、悪評、返金問題、解約問題、安全性への不満があるだけでは除外しません。現在状態、根拠URL、注意点、記事で明示すべき内容を付けてproduction_readyへ渡します。
- 確認できない項目を推測で埋めません。unknownまたはnot_checkedとし、理由と確認日を保存します。

【制作素材】
候補ごとにproduction_material_packを作り、少なくとも次を含めてください。
- service_name、aliases、official_url、official_domain、運営情報、確認日
- primary_keyword、secondary_keywords、関連語、共起語、使わない語
- search_compass_used、search_compass_status、検索語、第三者上位ページURL、順位、取得件数、不足理由
- reader_intent_pack、想定読者、検索意図、読者が判断したいこと、利用前の不安
- 公式情報の要約、料金、無料有料差、機能、登録、退会、決済、返金、サポート、規約、プライバシー、年齢制限
- strengths、weaknesses、risk_notes、complaints、unknown_fields
- H1候補はサービス名、SEOタイトル候補は検索意図入りでH1と異なる文
- H2/H3アウトライン候補、比較表候補、AEO向けQ&A候補、内部リンク候補、右CTA候補
- Directory Coreへ入れる基本情報候補。記事本文に基本情報表や評価表を重複手書きしないことも明記
- inspection_sticky_notes、制作時の注意、根拠URL一覧、取得日時

【重複再検査】
production_readyへする直前に、service_name、aliases、旧名称、運営会社、main_slug、alternate_slugs、official_domain、リダイレクト後ドメイン、public_url、canonical、Post ID、article_keyを再確認してください。対象範囲はMark2 Hub全workflowの辞書在庫、Mark1 Hub/ローカル辞書在庫の読取専用参照、WordPress辞書プラグイン対象post typeの全状態、porn-fun.com辞書公開REST、辞書サイト内検索、辞書XML sitemap、`adult-services`全辞書一覧です。Mark1とMark2で辞書カテゴリの取扱範囲が重なることは許可されますが、同一サービスの辞書記事重複は許可されません。通常のCocoon記事は後日のリダイレクト対象なので重複判定から除外します。

既存辞書記事が1件でも見つかった候補は`production_ready`へせず、`duplicate_existing_pornfun_dictionary_article`として既存辞書タイトル、URL、canonical、Post ID、辞書カテゴリ、確認元を保存します。既存辞書記事の品質が低くても新規辞書記事へ回さず、代表指示がある場合だけ既存Post IDを固定した修正候補へ分離します。通常のCocoon記事は無視します。検査時点の重複0件を示すには、`duplicate_scope=porn-fun.com_dictionary_articles_all`、`normal_cocoon_article_ignored=true`、`mark1_inventory_checked=true`、`mark2_inventory_checked=true`、`wordpress_dictionary_all_status_checked=true`、`public_dictionary_search_checked=true`、`duplicate_dictionary_article_count=0`が必要です。

【保存と読み戻し】
- 明らかな架空サービス以外は、inspection_result、inspection_sticky_notes、production_material_packを保存し、queue_state=production_readyへ更新します。
- 候補ごとに保存直後のreadbackを行い、candidate_id、article_key、workflow_id、production_ready、根拠URL件数、unknown_fields、本文hashが一致することを確認します。
- 疑問符4文字連続、U+FFFD、UTF-8誤読の代表パターンを機械確認し、0件でなければ修正して再保存します。
- 1件がFAILしても別候補の結果と混ぜません。FAIL候補は同じ候補を修復し、理由を残します。
- 作業報告には対象件数、production_ready件数、保留件数、除外件数、duplicate件数、第三者ページ取得件数、readback結果、未完了点を書きます。
- 記事本文は書きません。WordPress、公開記事、Directory Core既存行を変更しません。

pornfun-Mark2【評価・SEXDOLL】制作cron automation作成依頼文

【cron個別作成依頼文】
以下のautomationを1件だけ新規作成してください。

CRON_REQUEST:pornfun_mark2_sex_doll_shops_production_v5
automation名: pornfun-Mark2【評価・SEXDOLL】制作
stage: production
schedule: 毎日 12:30 Asia/Tokyo
起動回数: 1回/日
1タスクの制作件数: 1記事
役割: production_readyの新規候補1件から、porn-fun.comの辞書記事1記事を制作し、公開HTML実測、Hub保存、読み戻し、TASK8 handoffまで完了する。1タスクで複数記事を作らない。

対象識別子:
- Hub: https://pornfun-hub-mark2.secure358.com/
- site_id: porn-fun
- workflow_id: porn-fun-sex-doll-shops-ja
- content_set: porn_fun_sex_doll_shops
- directory_collection_slug: adult-services
- directory_type_slug: sex-doll-shops
- language: ja
- 担当agent: CODE-YUKI
- 公開cron正本: https://cron.goudou-358.jp/2328/
- ローカルMark2正本: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\cron_prompts\current\SEX_DOLL_SHOPS
- workflow別env: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\workflows\porn-fun-sex-doll-shops-ja.env.local
- 安全なtoken正本: C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\hub-agent-token.local

カテゴリ定義:
セックスドールまたはラブドールを販売する通販サイト。単一商品ページではなく、ショップまたはメーカー直販サービスを候補にする。

メンターURL:
- https://theporndude.com/sex-doll-shops
- https://lovedollquest.com/
- https://lovedollinformation.com/
- https://lovedoll-text.com/shopping-sites-love-doll/

【automation作成条件】
- この依頼文から作るautomationは1件だけです。同じstageの重複automationを先に検索し、同名または同一workflowの現役automationがあれば新規作成せず差分を報告してください。
- scheduleは1日1回です。時間間隔の反復、1日複数回、常時監視にはしないでください。
- 1回の起動、1タスクで制作するのは1記事です。11タスクで1記事ではありません。1タスクを11個の別automationへ分割しません。
- automationのprompt本文には、この依頼文を冒頭から末尾まで省略せず保存してください。「公開cron参照」「Hub参照」「共通Gate参照」「前のカテゴリと同じ」へ短縮してはいけません。
- automation作成後に、automation名、schedule、timezone、prompt本文の先頭marker、workflow_id、stage、1タスク1記事の記載を読み戻してください。
- 作成しただけでは起動しません。初回実行はautomationの設定状態を確認し、代表が有効化した後に行います。

【no-touch】
- C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun 以下はMark1です。参照はできますが、編集、移動、削除、上書き、同期先への指定を禁止します。
- 他のMark2カテゴリ、他サイト、既存公開記事、訂正待ち記事、高品質チェック待ち記事、Directory Core既存行を変更してはいけません。
- この制作cronが修正できるのは、同一runで新規制作中、まだ完了宣言していない対象1記事だけです。
- 既公開記事またはTASK8 handoff済み記事を見つけても、制作cronで上書き、再制作、再公開しません。

起動時は同一run内で次の順に実行してください。
1. Mark2ローカルの対象プロンプト、PREFLIGHT_ENTRYPOINT.md、STARTUP_PROMPT.md、`config/workflows/porn-fun-sex-doll-shops-ja.env.local`を読む。共通`hub.env.local`や別workflowのenvを使用しない。
2. workflow別envの`H358_HUB_URL`、`H358_HUB_SITE_ID`、`H358_HUB_WORKFLOW_ID`、`H358_HUB_AGENT`、`H358_HUB_AGENT_TOKEN_FILE`を読み、値がこの依頼文のHub、site_id、workflow_id、agentと完全一致することを確認する。
3. `H358_HUB_AGENT_TOKEN_FILE`が示す`C:\Users\Public\Documents\LLC358\Autopost358\HUB\porn-fun-mark2\config\hub-agent-token.local`をAPI呼び出し時だけ読む。Mark2はこの1フォルダ内で完結させ、別のユーザーフォルダや他HUBのtokenへフォールバックしない。
4. https://pornfun-hub-mark2.secure358.com/index.php?api=status を取得し、HTTP 200、MariaDB接続、Hub version、site_id、automation_enabledを確認する。
5. agent_packを site_id=porn-fun、workflow_id=porn-fun-sex-doll-shops-ja で認証付き取得する。
6. agent_work_queueを agent=CODE-YUKI、site_id=porn-fun、workflow_id=porn-fun-sex-doll-shops-ja、stage=production で認証付き取得する。
7. Hubから返ったRules、Checks、References、Manuals、Files、TaskTemplates、対象queueを確認する。
8. 書き込みはhub_table_upsertを使い、同じsite_id、workflow_id、content_set、article_keyへ保存する。
9. 保存直後にagent_pack、agent_work_queue、または対象テーブルを再取得し、主キー、状態、本文hash、件数を読み戻す。

APIトークンは安全なtoken正本からAPI呼び出し時だけ読み、画面、ログ、成果物、作業報告へ値を出してはいけません。401、403、invalid tokenはBLOCKED_HUB_AUTH、automation_enabled=falseまたはmaintenanceはBLOCKED_HUB_AUTOMATION_DISABLED、DNS、timeout、network errorが再試行後も続く場合はBLOCKED_HUB_NETWORKとして止めてください。Mark1 Hubはporn-fun.com全体の辞書重複在庫を確認する読取専用補助資料としてだけ参照できます。書き込み先、正本、フォールバック先にはしません。旧Hub、AIfan Hub、Invest358 Hubへフォールバックしてはいけません。

【制作対象の選択】
1. 同一workflowのproduction_readyかつproduction_material_packがある未消費候補から1件だけclaimします。
2. service_name、aliases、旧名称、運営会社、main_slug、alternate_slugs、official_domain、リダイレクト後ドメイン、public_url、canonical、Post ID、article_keyを照合します。対象はMark2 Hub全workflowの辞書在庫、Mark1 Hub/ローカル辞書在庫の読取専用参照、WordPress辞書プラグイン対象post typeの公開/下書き/非公開/予約/保留/ゴミ箱、porn-fun.com辞書公開REST、辞書サイト内検索、辞書XML sitemap、`adult-services`全辞書一覧です。通常のCocoon記事は照合結果を記録しても重複件数に含めません。
3. Mark1とMark2で辞書カテゴリの取扱範囲が重なることは許可されていますが、同一サービスの辞書記事重複は許可されません。Mark1辞書記事、別辞書カテゴリ、別slug、別表記であっても、同じ公式ドメインまたは同一サービスと判定した時点で新規辞書制作を禁止します。通常のCocoon記事だけに同じサービスがある場合は制作を禁止しません。
4. 辞書重複候補は本文を作らず`duplicate_existing_pornfun_dictionary_article`として、既存辞書タイトル、URL、canonical、Post ID、辞書カテゴリ、確認元を保存します。既存辞書記事が低品質でも新規辞書記事は作りません。代表指示がある場合だけ既存Post IDを固定した修正工程へ分離し、制作cronでは触りません。同一タスク内で次のproduction_ready候補を探し、利用可能な候補がなければno_target_reportを保存して終了します。
5. 1記事をclaimした後は、別記事へ並行着手しません。

本文着手を許可するには、`duplicate_scope=porn-fun.com_dictionary_articles_all`、`normal_cocoon_article_ignored=true`、`mark1_inventory_checked=true`、`mark2_inventory_checked=true`、`wordpress_dictionary_all_status_checked=true`、`public_dictionary_search_checked=true`、`official_domain_duplicate_count=0`、`duplicate_dictionary_article_count=0`、`duplicate_article_gate=PASS`がすべて必要です。1つでも未確認または既存辞書記事が1件以上ならアウトライン、下書き、Directory Core入力、公開へ進みません。

【実作業の順番】
次の順番を飛ばしてはいけません。
1. production_material_pack、inspection_sticky_notes、公式情報、Search Compass、reader_intent_pack、第三者上位ページ、メンターURLを読む。
2. 狙いKWで検索10位内の第三者サイトを確認します。10件取得が難しい場合は取得できた情報で制作し、検索語、順位、URL、取得件数、不足理由、代替材料を作業証跡へ残します。
3. 記事全体のアウトラインを作り、作業スレッドで「アウトライン作成完了」と報告します。H1はサービス名、SEOタイトルは検索意図を含む別文にします。H1/H2/H3を「です」「ます」で終えません。
4. 想定読者、悩み、知識量、利用場面、この記事で判断できることを含むペルソナを宣言します。
5. 敬体の自然な日本語でリード文を作ります。先に結論を書きすぎず、何の記事か、読者が何を判断できるかを説明し、黒太字と黄色アンダーマーカーを入れます。
6. 右リンクCTAをリード直後、最初のH2前に1個作ります。基本情報エリアの公式ボタンは赤い「公式サイトを確認」ボタン1個だけです。
7. 作業スレッドで、リード文とCTAまで完了した経過を報告します。
8. H2単位で1ブロックずつ、本文、読者目線修正、装飾、内部リンク、CTA、Q&A、表の要否判断まで行います。装飾を最後にまとめて入れてはいけません。
9. 1ブロック完成ごとに作業スレッドで完成を宣言し、高品質であることを宣誓します。機械GateがPASSした後は止まらず次ブロックへ進みます。FAILなら次へ進まず同じブロックを修復します。
10. 全H2ブロック完了後に記事全体を読み戻し、硬い文、直訳臭い文、意味が曖昧な文、料金や機能の薄さ、内部語、文字化けを修正します。
11. プレビューまたは公開HTMLでvalidatorを実行し、必須FAILを0にします。自己採点だけでPASSにしません。
12. 新規記事を保存または公開し、公開URLをHTTPで読み戻します。公開前後のHTML、Directory Core表示、公式ボタン、CTA、qa-box、装飾、内部リンク、文字化け、taxonomy、slugを実測します。
13. Hubへ成果物、validator_result.json、production_publish_evidence、readback、TASK8 handoffを保存し、同じ主キーを読み戻します。

【H2ブロック機械Gate】
各H2ブロックで次の値を独立して保存してください。
- h2_block_started
- h2_block_written
- h2_block_readback_done
- h2_block_reader_check_done
- h2_block_decoration_done
- h2_block_completion_declared
- h2_block_next_allowed

`h2_block_next_allowed=true` にできるのは、本文作成、読み戻し、読者目線修正、装飾、内部リンク/CTA/Q&A/表の要否確認、内部語と文字化け確認、完了宣言がすべて済み、同じH2ブロックの必須FAILが0件のときだけです。後のH2を先に作らず、前ブロックのFAILを後回しにしません。

【記事本文で禁止する内部語】
一般読者向け本文に、Gate、validator、TASK8、workflow、agent_pack、Directory Core、production_ready、作業メモ、上位10サイト、第三者レビュー10位、公式記事という項目名、Search Compass、Hub、cron、candidate pack、inspection sticky noteを出してはいけません。作業証跡と記事本文を分離してください。

【辞書種別taxonomy分類の必須Gate】
- expected_directory_collection=adult-services
- expected_directory_type=sex-doll-shops
- inspectionのcategory_fit、workflow_id=porn-fun-sex-doll-shops-ja、content_set=porn_fun_sex_doll_shops、サービスの主目的、収益モデル、読者の検索意図が期待する辞書種別と一致することを確認します。不一致または判断不能なら`category_classification_hold`とし、本文作成、Directory Core入力、公開へ進みません。
- WordPress保存時に辞書プラグインtaxonomyの`directory_collection=adult-services`と`directory_type=sex-doll-shops`を対象Post IDへ明示的に設定します。通常投稿categoryだけを設定してPASSにしてはいけません。
- 下書き保存後、公開前に認証付きWordPress RESTまたは辞書プラグイン管理APIでterm ID、term slug、taxonomy名を読み戻します。`adult-services`または`sex-doll-shops`が未設定、別slug、別workflow、読取不能なら公開禁止です。
- 公開後も同じPost IDをRESTと公開HTMLで読み戻します。不一致なら新規記事を作らず、同じPost IDのtaxonomyを直ちに修正して再読み戻しします。
- `taxonomy_classification_gate=PASS`、`actual_directory_collection=adult-services`、`actual_directory_type=sex-doll-shops`、`category_fit_matches_workflow=true`、公開前後readback=true、`taxonomy_mismatch_count=0`がそろうまで、制作完了、公開完了、TASK8 handoff完了を宣言しません。

【公開前後の必須読み戻し】
- 公開URL HTTP 200、想定slug、想定taxonomy、directory_collection=adult-services、directory_type=sex-doll-shops
- H1はサービス名、SEOタイトルは別文、見出し末尾に「です」「ます」がない
- 料金、機能、無料有料差、入会、退会、決済、返金、サポート、比較表、AEO向けQ&Aが薄くない
- リード文の黒太字と黄色アンダーマーカー、リード直後かつ最初のH2前の右CTA
- qa-boxの正しい構造、info/warning/check系BOX、黒太字、赤太字、黄色アンダーマーカー、✅と⚠️
- 基本情報エリアの赤い「公式サイトを確認」ボタンが1個だけで、リンク先、rel、表示位置が正しい
- Directory Coreの基本情報表または評価表が表示される場合、本文側に同じ表を重複手書きしていない
- 内部リンクは公開200のporn-fun.com URLだけを使用し、リンク先タイトルとアンカーテキストが一致する
- 疑問符4文字連続0件、U+FFFD 0件、UTF-8誤読系文字化け0件、内部語0件
- 公開HTMLの見出しやTOCへ、cron依頼文、Gate見出し、作業メモが漏れていない
- validator_result.jsonの必須キー、実測値、FAIL名、修正履歴、再読み戻し結果

【全11カテゴリ共通Gate全文】
以下はこの制作automationが実際に読む全文です。外部参照だけで済ませず、この依頼文内の内容をすべて適用してください。

----- MARK2_COMMON_GATE_BEGIN -----
# pornfunHUB Mark2 全カテゴリ共通 読者実用性・敬体自然文・第三者上位10サイト必須Gate

Marker: `2026-07-16_PORNFUN_MARK2_ALL_CATEGORY_READER_VALUE_POLITE_TOP10_GATE`

Version: `mark2-common-gate-v1.3.0-20260716`

Site-wide duplicate marker: `2026-07-16_PORNFUN_DICTIONARY_ARTICLE_SITEWIDE_DUPLICATE_LOCK`

## 0. このGateの地位

このGateは、pornfunHUB Mark2が扱う全11カテゴリの記事調査、アウトライン、制作、品質確認、修正、改善引き渡しへ共通適用します。AI生成カテゴリだけのGateではありません。無料サービス、月額動画配信、VR、ライブチャット、電話サービス、検索・ディレクトリ、コミック、ゲーム、物販を含むすべての記事で、読者が利用・登録・購入・課金前に判断できるだけの具体性を要求します。

このGateの後半には、Mark1 NSFW AI制作で使用しているv0.1.67の詳細原文を全文継承します。原文中の`PromptChan`、`NSFW AI`、AI生成機能、クレジット、生成画像などは削除対象ではなく、AIカテゴリの具体例として保持します。Mark2で別カテゴリへ適用するときは、本節のカテゴリ読替規則とカテゴリプロファイルを優先し、対象サービスに存在しないAI機能を事実化してはいけません。

新しい共通化によって旧ルールを削除した扱いにしません。敬体、読者実用性、第三者上位10ページ、公式情報、H1/SEOタイトル分離、リード、右CTA、H2単位制作、装飾、qa-box、Directory Core、公開読み戻し、validator、HUB保存、内部語禁止、文字化け確認、自己申告PASS禁止はすべて継続します。

HUBにこのGateが保存されていることだけを理由に、実際のcron作成依頼文から必要ルールを省略してはいけません。将来cron作成依頼文を作るときは、この共通Gateと対象カテゴリプロファイルの実行規則を、実際にcronが読む`PROMPT_START`から`PROMPT_END`の内側へ全文展開します。「HUB参照」「共通Gate参照」「前のcronと同じ」で省略することは禁止します。

## 1. 適用対象11カテゴリ

すべて`site_id=porn-fun`、language `ja`、dictionary collection `adult-services`、共通Directory Core基本情報表を使用します。

| directory type slug | workflow ID | content set | 主なサービスモデル |
|---|---|---|---|
| `free-porn-tube-sites` | `porn-fun-free-porn-tube-sites-ja` | `porn_fun_free_porn_tube_sites` | 無料・広告・会員任意・投稿/視聴 |
| `adult-video-streaming` | `porn-fun-adult-video-streaming-ja` | `porn_fun_adult_video_streaming` | 月額・年額・レンタル・購入・混合 |
| `vr-porn-sites` | `porn-fun-vr-porn-sites-ja` | `porn_fun_vr_porn_sites` | 月額・購入・VR機器/形式依存 |
| `live-chat` | `porn-fun-live-chat-ja` | `porn_fun_live_chat` | コイン・分課金・チップ・月額併用 |
| `phone-sex-sites` | `porn-fun-phone-sex-sites-ja` | `porn_fun_phone_sex_sites` | 分課金・通話料・クレジット・予約 |
| `escort-sites` | `porn-fun-escort-sites-ja` | `porn_fun_escort_sites` | 検索・掲載・連絡仲介・地域依存 |
| `search-engines` | `porn-fun-search-engines-ja` | `porn_fun_search_engines` | 無料検索・広告・インデックス |
| `porn-comics` | `porn-fun-porn-comics-ja` | `porn_fun_porn_comics` | 月額・話/巻購入・ポイント・無料話 |
| `ai-porn-generator-sites` | `porn-fun-ai-porn-generator-sites-ja` | `porn_fun_ai_porn_generator_sites` | クレジット・月額・生成回数・機能差 |
| `hentai-games` | `porn-fun-hentai-games-ja` | `porn_fun_hentai_games` | 無料・買切り・月額・ゲーム内課金 |
| `sex-doll-shops` | `porn-fun-sex-doll-shops-ja` | `porn_fun_sex_doll_shops` | 物販・受注生産・配送・保証・返品 |

allowlist外のカテゴリを推測で追加しません。1記事は原則1つの主カテゴリへ割り当てます。複数機能がある場合は、サービスの主目的、主な収益モデル、読者の検索意図を比較し、主カテゴリを証跡へ残します。

## 1-A. 辞書種別taxonomy分類ロック

Marker: `2026-07-16_PORNFUN_MARK2_DICTIONARY_TAXONOMY_CLASSIFICATION_LOCK`

新規辞書記事は、通常のCocoonカテゴリではなく、辞書プラグインのtaxonomyへ正しく分類してから公開します。全記事で`directory_collection=adult-services`を必須とし、`directory_type`は対象workflowに対応する上表のslugを1つだけ主分類として割り当てます。

検査時の`category_fit`、`workflow_id`、`content_set`、サービスの主目的、収益モデル、読者の検索意図が、予定する`directory_type`と一致することを制作開始前に確認します。不一致または判断不能なら記事本文、Directory Core入力、公開へ進まず、`category_classification_hold`として理由と推奨workflowを保存します。別カテゴリへ勝手に公開しません。

WordPress保存前に、対象Post IDへ`directory_collection=adult-services`と期待する`directory_type`を明示的に設定します。下書き保存後、公開前に認証付きWordPress RESTまたは辞書プラグインの管理APIで、実際に付いたterm ID、term slug、taxonomy名を読み戻します。次のいずれかがあれば公開禁止です。

- `adult-services`が未設定または別collectionである。
- 期待する`directory_type`が未設定である。
- 別workflowの`directory_type`が主分類として設定されている。
- term名だけを見てslugまたはterm IDを確認していない。
- 通常投稿のcategory設定だけで辞書種別を設定した扱いにしている。

公開後も同じPost IDをRESTと公開HTMLで読み戻し、期待taxonomyと一致することを確認します。公開後に不一致が見つかった場合は新しい記事を作らず、同じPost IDのtaxonomyを直ちに修正して再読み戻しします。分類PASSになるまで、制作完了、公開完了、TASK8 handoff完了を宣言しません。

機械判定必須キー:

- `taxonomy_classification_gate=PASS`
- `expected_directory_collection=adult-services`
- `actual_directory_collection=adult-services`
- `expected_directory_type`
- `actual_directory_type`
- `directory_collection_term_id`
- `directory_type_term_id`
- `category_fit_matches_workflow=true`
- `wordpress_taxonomy_pre_publish_readback=true`
- `wordpress_taxonomy_post_publish_readback=true`
- `taxonomy_mismatch_count=0`

## 2. カテゴリ該当性とN/Aの扱い

共通必須項目を、存在しない機能まで無理に埋めてはいけません。各確認項目は次の3状態で判定します。

- `required`: 対象カテゴリとサービスモデル上、必ず調査・本文化する項目。
- `conditional_required`: 機能、会員制度、課金、注文、投稿、地域制限などが存在するとき必須になる項目。
- `not_applicable_with_evidence`: 公式ページ、利用画面、規約、ヘルプ等を確認し、対象外である根拠を証跡へ残した項目。

`not_applicable`を、未調査、取得失敗、面倒、ログインが必要という理由で使ってはいけません。無料TUBEに有料プランがない場合は「有料プランなし」を確認した根拠を残します。検索エンジンに退会機能がない場合は、会員登録の有無を確認します。物販サイトではサブスクリプション解約の代わりに、注文取消、返品、交換、返金、保証を確認します。エスコート検索サイトでは、サービス料金を断定するのではなく、掲載料、会員料、連絡方法、地域、本人確認、安全対策、各掲載者との取引境界を確認します。

機械判定必須キー:

- `category_profile_slug`
- `category_profile_gate=PASS`
- `service_business_model`
- `required_item_count`
- `conditional_required_item_count`
- `not_applicable_item_count`
- `not_applicable_evidence`
- `category_mismatch_count=0`
- `category_specific_false_claim_count=0`

## 2-A. 記事制作開始前の重複確認

制作するサービスと辞書記事テーマが決まったら、調査やアウトライン作成へ進む前に、porn-fun.com全体の既存辞書記事に同じサービスが存在しないか確認します。Mark1/Mark2、辞書カテゴリ、主slugが異なっても同一サービスなら重複です。主slugだけの確認では不十分です。辞書記事名、表記揺れ、旧名称、別slug、公式ドメイン、リダイレクト後ドメイン、canonical、公開URL、Post ID、Mark1/Mark2 HUBの辞書在庫、WordPress辞書検索、公開中の辞書記事を照合します。

同一サービスの既存辞書記事が見つかった場合、新規辞書記事を作りません。既存辞書記事の品質が低くても別slugや別カテゴリで作り直しません。代表から既存辞書記事修正の指示がある場合だけ、対象Post IDと公開URLを固定して修正工程へ移ります。似た名称の別サービスは、公式ドメイン、運営会社、サービス内容を比較して別物である根拠を残します。

この重複ロックは収集、検査、制作の全工程に適用します。収集では既存辞書記事と一致する候補を`accepted_0B`へ入れず、検査では`production_ready`を禁止し、制作ではアウトラインと本文へ着手する前にハード停止します。Mark1とMark2で辞書カテゴリの取扱範囲が重なることは許可されますが、同一サービスの辞書記事重複は許可されません。

通常のCocoon記事は後日の辞書記事へのリダイレクト対象なので、この重複判定から除外します。通常投稿タイプだけに同じサービスの記事があっても、新規辞書記事の候補、検査、制作を禁止しません。`duplicate_article_count`と`duplicate_dictionary_article_count`には辞書プラグイン対象post typeの既存辞書記事だけを数えます。

確認対象:

- 正式サービス名、旧名称、ブランド表記、英字/カナ表記。
- 予定タイトルと既存記事タイトルの完全一致・部分一致。
- 予定slug、短縮slug、旧slug、別表記slug、リダイレクト先。
- 公開URL、canonical URL、既存Post ID。
- Mark1/Mark2 HUBの辞書Articles/Files、WordPress辞書プラグイン対象post typeの全状態、辞書公開REST、辞書サイト内検索、辞書XML sitemap、`adult-services`全辞書カテゴリ一覧。通常のCocoon投稿は除外。
- 公式ドメインと運営会社。同名別サービスの誤判定防止。

機械判定必須キー:

- `article_identity_preflight_done=true`
- `duplicate_title_check_done=true`
- `duplicate_primary_slug_check_done=true`
- `alternate_slug_checked=true`
- `published_url_checked=true`
- `existing_post_id_checked=true`
- `same_service_aliases_checked=true`
- `duplicate_scope=porn-fun.com_dictionary_articles_all`
- `normal_cocoon_article_ignored=true`
- `mark1_dictionary_inventory_checked=true`
- `mark2_dictionary_inventory_checked=true`
- `wordpress_dictionary_all_status_checked=true`
- `public_dictionary_search_checked=true`
- `duplicate_title_count=0`
- `duplicate_slug_count=0`
- `duplicate_public_url_count=0`
- `duplicate_article_count=0`
- `duplicate_dictionary_article_count=0`
- `duplicate_article_gate=PASS`
- `duplicate_resolution=new_article_allowed|existing_article_repair|blocked_duplicate`

`duplicate_article_gate=PASS`になる前に、検索材料の収集、アウトライン、本文、WordPress下書き、Directory Core入力を開始してはいけません。

## 3. 全カテゴリ共通の読者実用性

記事は、構造や文字数だけでPASSにしません。読者が対象サービスを使う、登録する、課金する、購入する、連絡する前に判断できる具体材料が必要です。

全カテゴリで必ず確認する共通軸:

- 何ができるサービスか。主機能と対象コンテンツを具体化します。
- 誰に向くか、誰に向かないか。利用目的と制約から説明します。
- 無料・有料・広告・ポイント・コイン・分課金・買切り・物販など、実際の料金モデルを特定します。
- 会員登録、購入、注文、予約、視聴、検索、生成、通話など、対象サービスで最初に行う手順を確認します。
- 解約、退会、注文取消、返品、返金、データ削除など、対象モデルで終了・取消に相当する手続きを確認します。
- 決済方法、請求条件、自動更新、税、送料、関税、通話料など、金銭負担の範囲を確認します。
- 年齢、地域、端末、ブラウザ、機器、通信、法令、規約、禁止事項などの利用条件を確認します。
- プライバシー、履歴、公開範囲、請求名、配送梱包、個人情報、投稿/生成物の扱いを確認します。
- 同カテゴリの比較対象を原則3サービス以上用意し、料金、機能、制限、使いやすさ、安全性など、カテゴリに合う軸で比較します。
- 読者の質問へ直接答えるAEO向けQ&Aを本文内に置きます。

料金が存在しない場合も、料金節そのものを空文で作りません。無料である範囲、広告、会員登録、データ利用、外部遷移、追加機能、地域差など、読者が負担と引き換えに何を得るのかを説明します。

## 4. 第三者上位10ページとSearch Compass

第三者上位10ページ確認は全カテゴリ共通で必須です。狙いKWを決め、対象サービス名、評判、料金、無料、使い方、安全性、退会/解約/返品、比較、代替、カテゴリ固有KWを組み合わせます。Search Compassも使用し、検索意図、上位構成、必要トピック、不足情報、共起語・関連語、差別化要素を材料化します。

対象サービスの検索結果で第三者ページが10件未満の場合も、確認できた件数、検索語、0件だった語、関連カテゴリ、競合、比較ページ、レビュー、質問系ページを証跡へ残します。第三者情報が0件でも制作停止だけで終わらず、公式情報、同カテゴリ上位、関連検索、サジェスト、質問系ニーズで補完します。ただし`third_party_top10_checked=true`を固定値にしてはいけません。

上位ページから抽出するもの:

- title、H1、meta description、H2-H4。
- 本文で繰り返される読者ニーズと評価軸。
- 料金、無料範囲、課金、送料、通話料、広告などへの言及。
- 機能、できること、できないこと、制限。
- 登録、購入、注文、予約、支払い、解約、退会、取消、返品への言及。
- 安全性、プライバシー、地域、法令、禁止事項。
- 比較対象、代替サービス、読者の質問。
- 公式情報との矛盾、古い情報、未確認情報。

検索上位ページは丸写ししません。ランキング、評点、口コミを事実として転載せず、読者ニーズ、比較軸、確認項目、質問、構成の材料として使用します。公開本文に「Search Compassで見た」「上位10サイト」「第三者レビュー10位」「参照サイトから拾った」と書いてはいけません。

機械判定必須キー:

- `search_compass_used=true`
- `search_compass_query_set`
- `serp_top10_checked=true`
- `serp_top10_query`
- `serp_top10_result_count`
- `serp_top10_third_party_count`
- `serp_top10_official_count`
- `serp_top10_materialized_items`
- `serp_title_h1_meta_h2h4_extracted=true`
- `related_search_suggest_questions_extracted=true`
- `search_intent_summary_present=true`
- `top_structure_summary_present=true`
- `required_topic_list_present=true`
- `missing_info_list_present=true`
- `cooccurrence_related_terms_present=true`
- `differentiation_points_present=true`

## 5. カテゴリ別必須プロファイル

### 5-1. 無料アダルト動画サイト `free-porn-tube-sites`

動画の種類、検索・絞り込み、画質、再生速度、広告、ポップアップ、会員登録、投稿、コメント、ダウンロード可否、地域制限、年齢確認、著作権/削除依頼、プライバシー、履歴、モバイル対応を確認します。無料と断定する場合は、視聴範囲、広告、会員限定機能、有料外部導線を区別します。

### 5-2. アダルト動画配信 `adult-video-streaming`

月額/年額、レンタル、単品購入、ポイント、無料体験、作品数、独占作品、画質、同時視聴、対応端末、ダウンロード、DRM、更新日、地域制限、支払い、自動更新、解約、返金、サポートを確認します。無料体験と無料作品を混同しません。

### 5-3. VRアダルト動画配信 `vr-porn-sites`

料金モデルに加え、対応VR機器、動画形式、解像度、ストリーミング/ダウンロード、アプリ、プレイヤー、ストレージ容量、通信量、視点/カテゴリ、機器なし視聴、地域制限、解約を確認します。「VR対応」だけで終わらせず、利用条件を具体化します。

### 5-4. ライブチャット `live-chat`

無料登録、初回特典、コイン単価、1分/1メッセージ/チップ料金、2ショット/グループ、出演者、検索、待機映像、年齢確認、本人確認、支払い、請求名、自動購入、ブロック/通報、録画禁止、プライバシー、退会、返金を確認します。総額の目安は単価と利用時間を分けて説明します。

### 5-5. テレフォンセックスサイト `phone-sex-sites`

通話方式、電話番号の扱い、予約、1分料金、接続料、通話料、クレジット、無料分、出演者/キャスト、匿名性、番号通知、録音、年齢確認、支払い、請求名、キャンセル、返金、退会、サポートを確認します。サイト料金と通信会社の通話料を混同しません。

### 5-6. 海外の風俗・エスコート検索サイト `escort-sites`

対応国/都市、検索・フィルター、掲載者情報、本人確認/認証表示、レビュー、連絡方法、会員料、掲載料、予約仲介の有無、詐欺対策、通報、プライバシー、地域法令、年齢、金銭取引の境界、安全確認を扱います。掲載情報を保証済み事実として断定せず、サイト運営と個別掲載者の責任範囲を分けます。

### 5-7. アダルト検索エンジン `search-engines`

検索対象、インデックス範囲、動画/画像/出演者対応、フィルター、除外検索、タグ、重複、更新頻度、広告、外部遷移、セーフサーチ、削除依頼、DMCA、履歴、Cookie、地域制限、モバイル対応を確認します。検索結果先の安全性を検索エンジン自身の保証として書きません。

### 5-8. アダルトコミックサイト `porn-comics`

作品数、ジャンル、無料話、試し読み、月額、巻/話購入、ポイント、対応端末、ブラウザ/アプリ、縦読み/横読み、ダウンロード、DRM、閲覧期限、支払い、自動更新、退会、購入済み作品の扱い、返金、地域/言語を確認します。

### 5-9. AI Porn Generator Sites `ai-porn-generator-sites`

画像/動画生成、モデル、スタイル、プロンプト、ネガティブプロンプト、参照画像、編集、画質、生成速度、無料回数、クレジット、月額/年額、保存、公開範囲、商用利用、生成物の権利、実在人物、未成年、非同意、禁止事項、プライバシー、退会、データ削除を確認します。後半のv0.1.67 AI具体例もこのプロファイルへ直接適用します。

### 5-10. Hentai Games `hentai-games`

ゲーム形式、ジャンル、対応OS/端末、ブラウザ/ダウンロード、価格、無料版、体験版、買切り、月額、ゲーム内課金、言語、セーブ、アップデート、スペック、配布プラットフォーム、決済、返金、年齢/地域制限、アンインストール、アカウント削除を確認します。動画・コミック閲覧だけのサービスと混同しません。

### 5-11. セックスドールショップ `sex-doll-shops`

販売価格、追加オプション、素材、身長、重量、ボディ/ヘッド、カスタマイズ、在庫/受注生産、納期、送料、配送地域、関税/輸入税、梱包のプライバシー、支払い、分割、注文取消、返品、交換、保証、破損対応、メンテナンス、保管、問い合わせを確認します。サブスク解約を無理に作らず、注文・配送・返品・保証の判断材料を厚くします。

## 6. カテゴリ別メンター参照

メンターURLは事実の丸写し元ではなく、カテゴリ範囲、比較軸、読者ニーズ、必要項目を確認する材料です。料金や規約は対象サービスの現在の公式情報を優先します。

- `free-porn-tube-sites`: `https://theporndude.com/top-porn-tube-sites`
- `adult-video-streaming`: `https://theporndude.com/adult-vod-sites`
- `vr-porn-sites`: `https://theporndude.com/best-vr-porn-sites`
- `live-chat`: `https://theporndude.com/top-sex-cam-sites`
- `phone-sex-sites`: `https://theporndude.com/phone-sex-sites`
- `escort-sites`: `https://theporndude.com/best-escort-sites`
- `search-engines`: `https://theporndude.com/top-porn-search-engines`
- `porn-comics`: `https://theporndude.com/best-porn-comic-sites`
- `ai-porn-generator-sites`: `https://porndudeai.com/`、`https://theporndude.com/ai-porn-sites`、`https://theporndude.com/ai-porn-generator-sites-reviews`
- `hentai-games`: `https://theporndude.com/best-porn-games`、`https://theporndude.com/free-sex-games`、`https://theporndude.com/hentai-porn-sites`
- `sex-doll-shops`: `https://theporndude.com/sex-doll-shops`、`https://lovedollquest.com/`、`https://lovedollinformation.com/`、`https://lovedoll-text.com/shopping-sites-love-doll/`

## 7. 敬体自然文と見出し

記事本文、リード、先に結論、表の説明、注意書き、CTA前後、Q&A回答、まとめは自然な敬体で書きます。H1、H2、H3、H4、短い表ラベルには「です」「ます」「できます」「しましょう」「解説します」などの敬体語尾を付けません。

敬体は同じ語尾の連続を意味しません。「です」「ます」だけを機械的に繰り返さず、体言止め、短い補足、条件文、推測を避けた限定表現を組み合わせます。内部メモ、翻訳調、取得失敗報告、読者への確認丸投げを本文へ出しません。

H1はサービス名、SEOタイトルは検索意図を含む別文にします。H1とSEOタイトルの同一・ほぼ同一はFAILです。

## 7-A. 一般読者に通じる自然な言葉

本文を読むのは制作担当者ではなく一般読者です。サイト制作側だけが分かる構造語、直訳しただけの不自然な日本語、意味の範囲が曖昧な表現を、そのまま公開本文へ出してはいけません。

「カテゴリ」という単語そのものを禁止するのではありません。作品カテゴリ、検索カテゴリなど、サービス機能として読者に通じる使い方は可能です。一方で「公式フッターを確認」「ヘッダーにあるカテゴリ」「見るべき中心」など、サイト構造や作業位置を説明するだけで読者の判断材料にならない表現は、実際の操作名または自然な説明へ直します。

修正例:

- `価格は3000ドル台も見える` → `3000ドル台の商品もあります`。
- `控えめな梱包` → `中身が分からないように梱包して発送されます`。実際の公式説明を確認してから書きます。
- `見るべき中心` → `主な確認ポイント`。
- `公式フッターにある` → `公式サイト下部の案内に記載されています`。読者に位置説明が必要な場合だけ使います。
- `取得時点では読みづらい` → 取得作業の事情を消し、確認できた条件と未確認項目を具体的に分けます。

単語置換だけでPASSにしません。文全体の主語、述語、対象、金額、条件、読者が取る行動が自然につながっているか読み直します。金額には通貨、課金単位、対象プランまたは商品、必要に応じて税・送料・期間を添えます。曖昧な比喩や直訳語を、別の曖昧語へ置き換えるだけの修正は禁止します。

機械判定必須キー:

- `reader_natural_language_gate=PASS`
- `reader_site_jargon_leak_count=0`
- `literal_translation_smell_count=0`
- `unintelligible_phrase_count=0`
- `ambiguous_price_expression_count=0`
- `subject_predicate_mismatch_count=0`
- `reader_comprehension_readback_done=true`

## 8. リード、先に結論、右CTA

リードは、何の記事か、読者が何を判断できるかを2から3文で自然に示します。記事全体の結論を先に書き切らず、料金モデル、主機能、利用条件、安全性、比較など、対象カテゴリで重要な範囲を案内します。黒太字と黄色アンダーマーカーを最低1箇所入れます。

先に結論BOXでは、何ができるか、誰に向くか、料金/負担モデル、重要な制限、取消/退会/返品等、比較での位置づけを5から7項目で具体化します。対象外項目を無理に追加しません。

右CTAはリード直後、最初のH2前を基本とし、サービス名だけをアンカーテキストにします。公式/アフィリエイトURLとrel属性を公開HTMLで読み戻します。物販では購入前の送料・返品・保証、ライブ/電話では単価、動画/VODでは料金・対応端末など、CTA前後に確認点を説明します。

## 9. H2ブロック単位制作

アウトラインを先に作り、作業スレッド内で完了報告します。ペルソナを宣言し、リード、右CTAを作り、作業経過を報告します。その後はH2ブロックを1つずつ制作し、各ブロック完了を報告します。

各H2で次を順番に実測します。

- `h2_block_started`
- `h2_block_written`
- `h2_block_readback_done`
- `h2_block_reader_check_done`
- `h2_block_decoration_done`
- `h2_block_completion_declared`
- `h2_block_next_allowed`

`h2_block_next_allowed`は、本文作成、読み戻し、読者目線修正、装飾、内部リンク/CTA/Q&A/表の要否確認、内部語と文字化け確認、完了宣言が済んだ場合だけ真にします。最後にまとめて装飾することは禁止します。

## 9-A. 稼働スレッドのH2ハートビート

各H2ブロックの制作が終わるたびに、稼働スレッドへ進捗を報告します。報告には、対象H2、追加した具体情報、読み戻し結果、読者目線修正、装飾、リンク/CTA/Q&A/表の要否、残リスク、機械判定結果を含めます。

高品質であるという宣誓は、自己申告PASSの代わりにはなりません。本文読み戻しと必須Gateの実測が終わり、当該ブロックのFAILが0件であることを確認した後にだけ宣言します。

「止まらずに次へ進む」とは、各ブロックがPASSした後にユーザーの返答待ちで中断せず、同じ実行内で次のH2へ進むことです。FAIL、REPAIR、未測定、根拠不足、文字化け、読者に伝わらない文章がある場合は自動継続せず、同じH2ブロックを修正します。`h2_block_next_allowed`がfalseのまま次のH2へ進んではいけません。

機械判定必須キー:

- `h2_block_progress_reported=true`
- `h2_block_report_text`
- `h2_block_quality_pledge_declared=true`
- `h2_block_required_gate_failures=0`
- `h2_block_unresolved_repair_count=0`
- `h2_block_auto_continue_allowed=true`
- `h2_block_heartbeat_gate=PASS`

## 10. 表、Q&A、装飾、Directory Core

基本情報表はDirectory Coreの共通情報パネルを使用し、本文へ同じ基本情報表を重複作成しません。料金表、機能比較表、プラン比較表、手順表、配送/保証表など、読者の判断に必要な別目的の表は本文に置けます。

Q&Aは`details.qa-box`、`summary.qa-question`、`div.qa-answer`の完全構造で原則8から12件用意します。料金、無料範囲、利用条件、取消/解約/返品、安全性、プライバシー、比較など、対象カテゴリの実際の質問へ直接答えます。「公式で確認してください」だけの回答は禁止します。

黒太字、赤太字、黄色アンダーマーカー+黒太字、✅、⚠️、information/warning/check系BOX、内部リンクをH2制作時に分散配置します。装飾数だけでPASSにせず、料金、注意点、比較、手順、取消条件、安全性を読み取りやすくするために使います。

## 11. 公開本文禁止語

公開記事本文、見出し、Q&A、CTA、summary、meta descriptionへ次の内部語を出しません。

- Gate
- validator
- TASK8
- workflow
- agent_pack
- Directory Core
- production_ready
- runtime
- 作業メモ
- Search Compass
- 上位10サイト
- 第三者レビュー10位
- 公式記事という項目名
- 記事から拾うべき材料
- candidate pack
- quality gate

内部語はHUB証跡、validator結果、作業報告にだけ残し、公開本文では読者向けの自然な言葉へ変換します。

## 12. 公開読み戻しと機械判定

自己申告PASSは禁止します。公開HTMLまたはプレビューHTMLの本文領域を実際に読み、サイドバー、関連記事、Directory、TOC、タグ、カテゴリ、フッターを除外して測定します。

最低確認項目:

- 公開URL、HTTP状態、最終URL。
- H1、SEOタイトル、H2/H3数、本文文字数。
- リード、右CTA、先に結論、表、Q&A、まとめ。
- 敬体本文と見出し語尾。
- 料金/負担モデル、機能、利用開始、取消/終了、決済、比較、安全性。
- カテゴリプロファイル必須項目とN/A証跡。
- 第三者上位10ページとSearch Compass材料。
- 公式/第三者情報の分離。
- Directory Core info_rows、score_rows、公式ボタン。
- 内部語、半角疑問符4連続、U+FFFD、UTF-8誤読系文字化け、日本語崩れ。
- CTA、内部リンク、公式ボタンの最終URLとHTTP 200。
- validator結果、failed gate、repair項目、quality score。

共通validator必須キー:

- `mark2_all_category_common_gate=PASS`
- `duplicate_article_gate=PASS`
- `category_profile_gate=PASS`
- `reader_value_density_gate=PASS`
- `thin_article_gate=PASS`
- `generic_article_gate=PASS`
- `polite_natural_style_gate=PASS`
- `third_party_top10_checked=true`
- `search_compass_used=true`
- `official_third_party_handling_present=true`
- `applicability_matrix_complete=true`
- `not_applicable_evidence_complete=true`
- `lead_reader_value_gate=PASS`
- `conclusion_substance_gate=PASS`
- `h1_gate=PASS`
- `seo_title_strength_gate=PASS`
- `seo_title_h1_separated_gate=PASS`
- `heading_polite_suffix_gate=PASS`
- `h2_block_sequence_gate=PASS`
- `h2_block_heartbeat_gate=PASS`
- `reader_natural_language_gate=PASS`
- `qa_structure_gate=PASS`
- `directory_core_gate=PASS`
- `public_html_readback_done=true`
- `internal_meta_leak_count=0`
- `question_mark_mojibake_count=0`
- `utf8_replacement_char_count=0`
- `utf8_misdecode_hint_count=0`
- `hub_save_readback_done=true`
- `runtime_evidence_saved=true`

## 13. ライブHUB正本と将来cronへの継承

ライブHUBのManualsにはこのGate全文を保存します。Rulesには適用範囲、第三者上位10ページ、カテゴリ該当性、cron本文省略禁止を保存します。Checksには共通Gate、カテゴリプロファイル、読者実用性、公開読み戻しを機械確認できる項目を保存します。Referencesには11カテゴリのメンター18URLを保存します。

登録後は`api=agent_runtime_readiness`だけで完了扱いにせず、認証付き`api=agent_pack`を記事キーなしで読み、manual_id、marker、version、manual_body長、11カテゴリslug、18メンターURL、Rules、Checksを読み戻します。本文欠落、文字化け、必須marker欠落、古い版だけの残存があればREPAIRです。

この段階ではcron作成依頼文、記事本文、タスク、automationを有効化しません。共通GateのHUB正本化完了後、代表の指示を受けて1カテゴリずつcron作成依頼文へ全文展開します。

---

## 継承原文 v0.1.67

以下はMark1 NSFW AI制作で使われているv0.1.67の詳細原文です。短縮・要約・削除せず全文を保持します。実行時は上記Mark2共通規則が優先し、`PromptChan`とAI固有項目は`ai-porn-generator-sites`の具体例、その他のカテゴリでは対応するカテゴリプロファイルの項目として読み替えます。Mark1のファイル、cron、HUB、DB、token、公開設定を変更する根拠にはなりません。

【v0.1.67 読者実用性・敬体自然文・第三者上位10サイト必須強化Gate】
Marker: 2026-06-23_PORNFUN_NSFW_AI_READER_VALUE_POLITE_TOP10_GATE

このv0.1.67は、560の制作cron本文の中で直接効く追加Gateです。Hub、README、別Gate名だけを参照させず、制作cronがこの記事本文を書くときに必要な判断基準をここへ展開します。この記事は構造を満たすだけではPASSにしません。読者が「料金、無料枠、使える機能、登録前に見るべき条件、他社比較、解約や支払いの注意点」を理解できる記事になっていない場合は、公開していてもREPAIRまたはFAILです。

【0. 適用範囲: PromptChanだけではなく全NSFW AI評価記事に適用】

このGateは、PromptChanだけに適用するものではありません。`porn-fun【評価・NSFW AI】制作` が作るすべての新規記事、すべてのslug、すべてのNSFW AI評価スコア記事に適用します。PromptChanは代表が指摘した失敗例であり、制作cronが今後同じ薄さを繰り返さないための具体例です。

制作対象がAI画像生成、AI動画生成、NSFWチャット、AI彼女、成人向けキャラクター生成、プロンプト補助、ギャラリー型サービス、生成AIマーケットプレイスのどれであっても、次の判断を必ず行います。
- この記事は何の記事か。
- 読者はこの記事で何を判断できるか。
- 料金プラン、無料枠、有料枠、登録、退会、決済、返金/解約条件、できること、できないこと、他社比較、他社ツール比較、安全性、プライバシー、禁止事項、AEO Q&A、AEO向けQ&Aが記事内にあるか。
- 第三者上位10サイト、Search Compass、関連検索、サジェスト、質問系ニーズを材料化しているか。
- 公式情報と第三者情報を分け、確認不能を言い訳にした薄い文章で逃げていないか。

PromptChanという語がこのGate内に出てきても、それは「例」です。制作cronは対象サービス名へ置き換えて考えます。別サービスの記事で、PromptChanだけに固有の料金、機能、退会方法、競合名、画面仕様を流用してはいけません。逆に、PromptChan以外の記事だからといって、第三者上位10サイト確認、料金/無料枠/有料枠/入会/退会/決済/比較/AEOの必須項目を省略してはいけません。

全記事適用のvalidator必須キー:
- `all_nsfw_ai_articles_scope_gate=PASS`
- `promptchan_example_only_understood=true`
- `target_service_specific_rewrite_done=true`
- `target_service_specific_pricing_features_cancel_payment_comparison_done=true`
- `third_party_top10_checked_for_target_service=true`
- `promptchan_specific_leak_count=0` を、対象サービスがPromptChan以外の場合は必ず確認します。

【1. 文章トーンは敬体の自然文に統一】

このworkflowの記事本文は、旧来のだ・である調ではなく、読者へ説明する自然な敬体で書きます。本文、リード文、先に結論、評価理由、注意点、Q&A、まとめ、CTA前後の説明は「です」「ます」「できます」「確認できます」「向いています」「注意が必要です」を基本にします。成人向けテーマでも、煽り、断定しすぎ、作業メモ調、翻訳調、内部向けの短文をそのまま出してはいけません。

敬体自然文Gateで止める例:
- 「PromptChanは、成人向けAI画像を作る目的で比較されやすいAIポルノジェネレーターだ。」のように、読者へ向けた記事なのに語尾が硬く、具体材料も薄い文。
- 「公式ページや料金ページは取得時点で非ログイン確認しずらいため、登録前には現行の料金、無料枠、規約、プライバシー、禁止事項を画面上で見直したい。」のように、作業者都合を読者へ押し付け、何が分かる記事なのかを説明していない文。
- 「生成できそうかだけで決めず、自分の画面で読めるかまで見るほうがよい。」のように、読者が知りたい料金、機能、登録、退会、比較を出さず、確認しろだけで終わる文。
- 「非ログインでは確認しづらい」「取得時点では不明」「画面上で見直したい」を連発して文字数を稼ぐ文。
- 「〜という形です」「〜となっています」「〜について解説します」を連続させ、具体的な条件や判断材料が出ない文。

敬体自然文Gateで求める書き方:
- 1文ごとに読者が得る情報を入れます。料金、無料枠、生成機能、画像/動画/チャットの対応範囲、プロンプト指定、年齢確認、支払い、解約、商用利用、禁止事項、プライバシー、競合比較のどれかに触れていない段落が続く場合は薄い記事です。
- 「何の記事か」「何が分かるか」「誰に役立つか」をリードで自然に示します。リードは作業者の確認報告ではなく、読者の判断を助ける入口です。
- 先に結論は、抽象的な感想ではなく、読者が登録前に知りたい要点を5から7項目で具体化します。機能、料金、無料枠、有料プラン、支払い、退会、比較のうち最低5項目を含めます。
- Q&Aは読者の質問に直接答えます。「確認してください」だけでは回答になりません。確認が必要な場合も、何を、どこで、なぜ見るのかまで書きます。
- 記事本文に `workflow`、`agent_pack`、`validator_result`、`production_ready`、`runtime`、`Directory Core`、`Gate`、`作業メモ`、`Search Compassの列挙` を出してはいけません。内部語は証跡にだけ残し、公開本文には読者向けの言葉へ翻訳します。

機械判定:
- `polite_natural_style_gate=PASS` が必須です。
- `plain_style_violation_count` は、本文領域内の「だ。」「である。」「〜すべきだ。」「〜といえる。」など旧文体の残存を数えます。成人向け固有名詞、引用、商品名を除いて1件以上ならREPAIRです。
- `filler_confirmation_sentence_count` は、「確認しづらい」「確認したい」「画面上で見直したい」「取得時点」「読めない部分がある」のような確認丸投げ文を数えます。説明に必要な1回を超える場合はREPAIR、2回以上連続ならFAILです。
- `reader_facing_rewrite_result=PASS` が必須です。内部メモを読者文へ翻訳した証跡を保存します。
- スタイル判定は新しい敬体自然文キーだけで行います。PASS条件は `polite_natural_style_gate`、`plain_style_violation_count`、`reader_facing_rewrite_result` で判断します。

【2. リード文Gate: この記事で何が分かるかを先に伝える】

リード文は評価スコア表の後、右寄せ公式/アフィリエイトCTAの前に置きます。2から3文、100から500字を目安にし、1文1段落または1文1行で読みやすくします。リード文は、サービス名の言い換えや「登録前に確認しましょう」だけで終わらせません。

リードに必ず入れる要素:
- この記事が、対象サービスの評判・料金・機能・安全性・使い方を確認するレビュー記事だと自然に分かること。
- 読者がこの記事で、無料枠と有料枠の違い、料金プラン、生成できる内容、登録方法、退会方法、決済方法、他社ツールとの比較を確認できると分かること。
- NSFW AIの場合は、成人向けAI画像/動画/チャットなど対象サービスの主機能を誤らず書くこと。画像生成サービスをチャットサービスのように書く、動画生成がないのに動画対応と書く、無料枠が不明なのに無料で使えると断定することは禁止です。
- 読者の不安に近い項目を1つ入れること。たとえば、支払い前の料金確認、プライバシー、生成物の扱い、禁止コンテンツ、退会や自動更新、他社比較のどれかを自然に入れます。
- 黒太字+黄色アンダーマーカーを1か所以上使い、読者の判断ポイントを示すこと。

悪いリード例:
「PromptChanは成人向けAI画像を作る目的で比較されやすいサービスです。公式ページや料金ページは取得時点で非ログイン確認しづらいため、登録前には現行の料金や規約を画面上で見直したいです。」

この例がFAILの理由:
- 記事で何が分かるのかが分かりません。
- 料金、無料枠、有料枠、機能、登録、退会、決済、比較の材料がありません。
- 「確認しづらい」「見直したい」で文字数を稼いでいます。
- 読者にとって、読み進める理由がありません。

良いリードの方向性:
「PromptChanの評判を調べている方に向けて、この記事では成人向けAI画像生成で使える主な機能、料金プラン、無料枠と有料枠の違い、登録前に確認したい請求条件を整理します。画像生成の自由度だけでなく、プロンプト指定、決済方法、解約手順、プライバシー、他のNSFW AIツールとの違いまで確認できるため、<span class="marker-under"><b>支払い前に自分に合う使い方か判断しやすくなります</b></span>。」

この方向性を丸写ししないでください。対象サービスごとの実データ、料金、機能、無料枠、上位ページの質問、第三者レビューで多く触れられている論点へ必ず差し替えます。

リード文のvalidator必須キー:
- `lead_article_purpose_present`
- `lead_content_scope_present`
- `lead_reader_benefit_present`
- `lead_pricing_or_free_scope_present`
- `lead_feature_scope_present`
- `lead_comparison_or_safety_present`
- `lead_marker_under_present`
- `lead_filler_sentence_count`
- `lead_polite_style_gate`

【3. 先に結論Gate: 抽象論を禁止し、読者の判断材料を出す】

【先に結論】は記事冒頭で最も読まれる部分です。ここが薄いと記事全体が薄く見えます。制作cronは、結論BOXの中に「何ができる」「誰に向く」「無料枠と有料枠」「料金や支払い」「注意点」「他社比較での位置づけ」を具体的に入れてください。

必須項目:
- 対象サービスの主機能。例: 成人向けAI画像生成、NSFWキャラクター生成、AIチャット、動画生成、プロンプト補助、スタイル選択、ギャラリー、保存、クレジット消費など。
- 料金プラン。無料枠、月額/年額、クレジット制、上位プラン、有料限定機能、課金前に見るべき自動更新や返金条件を、取得できた範囲で書きます。
- 無料枠と有料枠の違い。生成回数、画質、待ち時間、NSFW解放範囲、保存/商用利用、ウォーターマーク、クレジット、サポートなど、比較できる軸を入れます。
- 登録方法。メール、Google/Discord連携、年齢確認、ログイン後の初期設定、支払い前に見える画面を確認します。
- 退会/解約方法。アカウント設定、サブスクリプション管理、決済会社側のキャンセル、退会と課金停止の違い、返金可否の確認点を書きます。
- 決済方法。クレジットカード、PayPal、暗号資産、外部決済、プリペイド可否などを公式または画面で確認します。確認不能なら「公式で確認できた範囲」を明記し、第三者情報だけで断定しません。
- 他社比較・他社ツール比較。最低3サービスと比べ、生成品質、料金、無料枠、使いやすさ、NSFW対応範囲、プライバシーの違いを書きます。

薄い結論のFAIL例:
- 「PromptChanはAIポルノジェネレーターとして比較されやすいです。」
- 「料金や規約を登録前に確認しましょう。」
- 「安全性を重視する方は注意が必要です。」
- 「無料で使えるかは公式で確認してください。」

上の文は、どれも読者が判断できる材料を持っていません。結論BOXには、検索上位ページや公式情報で確認した具体材料を入れます。

先に結論のvalidator必須キー:
- `conclusion_box_present`
- `conclusion_feature_detail_count`
- `conclusion_pricing_detail_present`
- `conclusion_free_paid_difference_present`
- `conclusion_signup_or_cancel_detail_present`
- `conclusion_payment_method_present`
- `conclusion_competitor_comparison_present`
- `conclusion_filler_only_result=FAIL|PASS`

【4. Search Compassと第三者上位10サイトの材料化Gate】

制作cronはSearch Compassを必ず使います。さらに、対象サービス名と関連KWで第三者サイト上位10ページを確認し、記事本文に使える材料へ分解します。第三者情報が0件でも制作停止はしませんが、0件だった証跡、検索語、取得結果、代替材料を残し、公式情報、関連カテゴリ上位、競合比較、SNS/レビュー系ページの範囲で補完します。

検索するKW例:
- `サービス名 review`
- `サービス名 reviews`
- `サービス名 pricing`
- `サービス名 free`
- `サービス名 alternative`
- `サービス名 cancel subscription`
- `サービス名 payment methods`
- `サービス名 safety`
- `サービス名 privacy`
- `サービス名 評判`
- `サービス名 料金`
- `サービス名 使い方`
- `サービス名 解約`
- `サービス名 安全性`
- `サービス名 無料`
- `サービス名 NSFW AI`
- `サービス名 AI porn generator`
- `サービス名 adult AI image generator`

第三者上位10ページから必ず抽出する項目:
- title
- H1
- meta description
- H2からH4
- 本文で繰り返される評価軸
- 料金や無料枠への言及
- できること、できないこと
- 登録、支払い、解約への言及
- プライバシー、安全性、禁止事項への言及
- 競合サービス名
- 読者の質問形式ニーズ
- 関連検索、サジェスト、People Also Ask相当の質問
- 公式情報と矛盾する点

材料化の順番:
1. 検索意図をまとめます。読者は評判を知りたいのか、無料で使えるか知りたいのか、料金を比較したいのか、退会や安全性を不安に思っているのかを分けます。
2. 上位構成を見ます。上位ページの見出しで多い順に、料金、機能、使い方、危険性、代替サービス、Q&Aなどを整理します。
3. 必要トピックを決めます。公式情報、第三者レビュー、関連検索、サジェストを合わせ、記事に入れるべきH2/H3を作ります。
4. 不足情報を洗い出します。公式で取得できない料金、ログイン後だけ見える無料枠、退会方法、決済方法などは、未確認のまま断定せず、確認ポイントとして具体的に書きます。
5. 共起語・関連語を作ります。AI画像生成、NSFW、成人向け、プロンプト、クレジット、サブスクリプション、無料プラン、有料プラン、プライバシー、禁止コンテンツなど、対象サービスに合わせて自然に使います。
6. 差別化要素を決めます。PromptChanなら、成人向けAI画像生成に特化した比較軸、競合との料金/機能差、無料枠や生成品質、退会/支払い確認のしやすさを本文の軸にします。

Search Compass / 第三者上位10サイトのvalidator必須キー:
- `search_compass_used=true`
- `search_compass_url`
- `search_compass_query_set`
- `serp_top10_checked=true`
- `serp_top10_query`
- `serp_top10_result_count`
- `serp_top10_third_party_count`
- `serp_top10_official_count`
- `serp_top10_materialized_items`
- `serp_title_h1_meta_h2h4_extracted=true`
- `serp_body_needs_extracted=true`
- `related_search_suggest_questions_extracted=true`
- `search_intent_summary_present=true`
- `top_structure_summary_present=true`
- `required_topic_list_present=true`
- `missing_info_list_present=true`
- `cooccurrence_related_terms_present=true`
- `differentiation_points_present=true`

第三者上位10ページの扱い:
- 公式情報と第三者情報が矛盾する場合、公式の現在情報を優先します。ただし、第三者ページで読者が不安にしている論点は本文に反映します。
- 第三者ページのランキングや評点を丸写ししません。抽出するのは読者ニーズ、比較軸、見出し構成、質問、料金や機能への言及です。
- 口コミやレビューの断定をそのまま事実として書きません。「第三者レビューでは○○が論点になりやすい」のように扱い、公式確認できた範囲と分けます。
- 10件取得できない場合は、取得できた件数、検索語、0件だった語、代替で見た関連カテゴリ/競合ページを記録します。第三者情報0件だけを理由に制作停止しません。

【5. PromptChanのような記事を書く場合の必須密度】

PromptChanや類似NSFW AIサービスの記事では、以下の情報を本文へ自然に入れてください。すべてを確認できない場合も、確認できた情報、確認できなかった情報、読者が登録前に見るべき画面を分けて書きます。確認不能を理由に空文を増やしてはいけません。

PromptChan系で必ず見る項目:
- 公式トップページ、料金ページ、ログイン前に見えるプラン情報。
- サインアップ導線、年齢確認、メール認証、外部ログインの有無。
- 無料枠の有無、無料生成回数、無料で使えるモデルや画質、有料限定機能。
- 有料プラン名、月額/年額、クレジット制、上位プラン、割引、返金、キャンセル、自動更新。
- 決済方法。カード、PayPal、外部決済、暗号資産、請求名、決済前の確認画面。
- 生成できる内容。画像、動画、チャット、キャラクター、スタイル、ポーズ、画像アップロード、ギャラリー、保存、履歴、商用利用。
- 生成できない内容。未成年、実在人物、非同意、違法コンテンツ、暴力、個人情報、プラットフォーム禁止事項。
- プライバシー。生成画像の保存、公開範囲、学習利用、削除方法、アカウント削除、問い合わせ方法。
- 退会/解約。アカウント設定、サブスク管理、決済会社側キャンセル、退会後のデータ削除、未使用クレジットの扱い。
- 他社比較。DreamGF、Candy AI、SoulGen、PornX、OnlyWaifus、その他同カテゴリと、料金、無料枠、画像品質、操作性、NSFW制限、決済の分かりやすさで比較します。

PromptChan系の記事で薄いと判定する条件:
- 料金表がない、または料金が不明なのに「確認してください」だけで終わる。
- 無料枠と有料枠の差が書かれていない。
- 入会方法と退会方法がない。
- 決済方法がない。
- 何が作れるかが「成人向けAI画像」程度で終わり、プロンプト、スタイル、生成枚数、画質、保存、制限の説明がない。
- 他社比較が1社以下、または「他社と比較しましょう」だけで終わる。
- Q&Aが一般論だけで、料金、無料枠、解約、安全性、商用利用、禁止事項に答えていない。
- 公式情報と第三者情報の区別がない。
- AEO向けQ&Aがなく、読者の質問に直接答えていない。

PromptChan系の本文構成例:
- H2: PromptChanは何ができるNSFW AIツールか
- H2: PromptChanの料金プランと無料枠
- H3: 無料で使える範囲
- H3: 有料プランで増える機能
- H3: クレジット制や自動更新の確認ポイント
- H2: PromptChanの使い方と登録手順
- H3: アカウント作成の流れ
- H3: 画像生成までの基本手順
- H3: プロンプト入力で確認したい項目
- H2: PromptChanの退会・解約方法
- H3: サブスクリプション停止とアカウント削除の違い
- H3: 返金や未使用クレジットの確認
- H2: PromptChanの安全性・プライバシー・禁止事項
- H2: PromptChanと他社NSFW AIツールの比較
- H2: PromptChanが向いている人・向いていない人
- H2: PromptChanの評判でよくある質問
- H2: まとめ

この構成は固定ではありません。Search Compass、上位10ページ、公式情報、読者ニーズに合わせて並び替えます。ただし料金、無料枠、有料枠、入会、退会、決済、比較、AEO Q&Aを落とした構成はFAILです。

【6. 公式情報と第三者情報の使い分け】

公式情報:
- 料金、プラン、機能、禁止事項、プライバシー、返金、退会、対応範囲、支払い方法は公式情報を最優先します。
- 公式ページがログイン前に取得できない場合は、「公式で確認できた範囲」と「登録後に確認が必要な範囲」を分けます。
- 「非ログインで確認しづらい」を何度も書かず、確認すべき項目を表や箇条書きにします。
- 公式ページの更新日や取得日を証跡に残し、本文では必要な場合だけ自然に触れます。

第三者情報:
- 第三者レビューは、読者ニーズ、比較軸、使い勝手への評価、料金への不満、代替サービス、Q&Aの材料として使います。
- 公式で確認できない料金や解約情報を、第三者情報だけで断定しません。
- 第三者サイトが古い場合は、本文で断定に使わず、上位ページでその論点が出ていることだけ材料化します。
- 第三者情報が0件でも制作停止しません。公式情報、関連カテゴリ上位、競合比較、検索サジェスト、質問系ニーズを使い、0件だったことを証跡に残します。

本文内の書き分け例:
- 公式確認済み: 「公式料金ページでは、月額プランと上位プランが案内されています。」
- 第三者レビュー由来: 「第三者レビューでは、生成品質や支払い条件の分かりやすさが比較ポイントとして挙がりやすいです。」
- 未確認: 「ログイン後にだけ表示される無料枠やキャンセル画面は、登録前に支払い画面で確認してください。」ただし、この文だけで終わらせず、確認する項目を具体的に並べます。

【7. 情報密度Gate: 具体的な数値・条件・範囲を入れる】

記事本文では、次のうち取得できる項目を必ず具体化します。抽象的な「便利」「高機能」「安全」「比較しやすい」だけではPASSにしません。

必須具体化項目:
- 料金: 月額、年額、クレジット、無料枠、割引、上位プラン、返金、自動更新。
- 機能: 画像生成、動画生成、チャット、キャラクター作成、プロンプト入力、ネガティブプロンプト、スタイル、画質、履歴、保存、公開/非公開。
- 対応範囲: NSFW対応、成人向け制限、利用可能地域、対応デバイス、ブラウザ、言語。
- 注意点: 禁止コンテンツ、年齢、実在人物、著作権、プライバシー、請求、退会、データ削除。
- 比較材料: 競合名、無料枠、料金、生成品質、操作性、制限、支払い、退会しやすさ。
- 手順: 登録、生成、支払い、解約、アカウント削除、問い合わせ。

各H2/H3の本文には、最低1つ以上の具体材料を入れます。具体材料がないH2/H3は、見出しを消すか、材料を追加してから公開します。H2だけで浅く流す記事は禁止です。H3は読者の判断軸を深掘りするために使います。

対象ブロック文字数:
- 制作cron依頼文のこのブロック自体は50,000字以上を維持します。
- 制作される記事本文は最低4,000字では足りない場合があります。NSFW AI評価記事では、料金、無料枠、有料枠、入会、退会、決済、比較、Q&Aまで書くため、本文領域は原則7,000字以上を目安にします。
- 4,000字を超えていても、料金表、無料/有料差、登録/退会、支払い、比較がない場合は薄い記事としてREPAIRです。

【8. AEO / Q&A Gate】

AEOを意識し、読者の質問に短く直接答えるQ&Aを本文内に置きます。Q&Aは `details.qa-box`、`summary.qa-question`、`div.qa-answer` の正しいHTML構造で5件以上、NSFW AIレビューでは原則8から12件を目安にします。FAQ JSON-LDやscriptは本文Q&Aとして数えません。

Q&Aに入れる質問例:
- 対象サービスは無料で使えますか。
- 有料プランでは何が変わりますか。
- 料金はいくらですか。
- 支払い方法は何に対応していますか。
- 解約や退会はどこからできますか。
- 生成した画像は公開されますか。
- 禁止されている生成内容はありますか。
- スマホでも使えますか。
- 他のNSFW AI画像生成ツールと何が違いますか。
- 初心者でも使いやすいですか。
- 商用利用できますか。
- 安全性やプライバシーで注意する点はありますか。

Q&Aの回答は禁止:
- 「公式で確認してください」だけ。
- 「場合があります」だけ。
- 「安全に使えるかは人によります」だけ。
- 料金、無料枠、解約、支払い、禁止事項の質問に具体的な確認項目を書かないこと。

Q&A validator必須キー:
- `qa_box_count`
- `qa_question_count`
- `qa_answer_count`
- `qa_pricing_question_present`
- `qa_free_plan_question_present`
- `qa_cancel_question_present`
- `qa_payment_question_present`
- `qa_privacy_question_present`
- `qa_comparison_question_present`
- `qa_answer_filler_only_count`

【9. 装飾ルールと右側CTA】

装飾は読者の判断を助ける場所にだけ使います。装飾BOX、太字、マーカー、内部リンク、CTA、Q&A、まとめを自然に使ってください。装飾の数だけでPASSにしません。読者が料金、注意点、比較、手順を読み取りやすくなる配置にします。

装飾ルール:
- 黒太字は重要語や判断軸に使います。
- 赤太字は注意点、禁止事項、自動更新、返金不可、未成年/非同意/実在人物などの危険な誤解を止める箇所に限定します。
- 黄色アンダーマーカー `span class="marker-under"` は、リードや先に結論で読者が最初に押さえる判断ポイントに使います。
- 装飾BOXは3個以上。先に結論BOX、注意点BOX、向いている人/向いていない人BOX、料金確認BOX、解約確認BOXなど、記事内容に合うものを置きます。
- 1段落内に装飾を詰め込みすぎません。装飾は本文を読む補助であり、装飾の連打で文字数を稼ぎません。
- ✅/⚠️を同じ長文に混在させません。1行に複数の✅/⚠️を置かず、短く読み分けられる形にします。
- 内部リンクは本文領域で1から3本を原則にし、公開HTTP 200の最終URLだけ使います。関連記事、サイドバー、Directory、TOC、タグ、カテゴリは内部リンク数に含めません。
- 外部リンクは原則、リード後の右側CTA1本を中心にします。公式サブページ直リンクは必要な場合のみ最大1から2本に抑え、nofollow/noopenerを付けます。

右側CTAの基本形:
`<p style="text-align: right;"><span class="badge badge-red">公式</span><b>:<a href="公式URL" target="_blank" rel="nofollow noopener">サービス名</a></b></p>`

右側CTAルール:
- アンカーテキストはサービス名だけにします。「公式サイトはこちら」「無料で試す」「安全に確認する」など長いCTA文をアンカーにしません。
- CTA前後の文章で、何を確認するべきかを説明します。アンカー内に説明を詰めません。
- 公式URLまたはアフィリエイトURLが確認できない場合は、無理にCTAを置きません。置けない理由を証跡に残します。
- 右寄せCTAは評価スコア表、リード文の後、最初のH2の前に置くのが基本です。
- 公開HTMLで右側CTAが本文領域に出ているか測定します。サイドバーや広告CTAは数えません。

CTA validator必須キー:
- `right_cta_present`
- `right_cta_count`
- `right_cta_anchor_text`
- `right_cta_anchor_is_service_name_only`
- `right_cta_url`
- `right_cta_final_status`
- `right_cta_rel_nofollow_noopener`
- `right_cta_position_after_lead_before_first_h2`

【10. 見本18URL継承Gate】

制作cronは下記18URLを、記事の流れ、リード文、先に結論、右側CTA、装飾バランス、H2/H3の深さ、Q&A、まとめの参照材料として扱います。丸写しは禁止です。対象サービスの実データに置き換え、NSFW AI記事に合う形で継承します。

- https://invest358.com/ja/errante-review/
- https://invest358.com/ja/thinkmarkets-review/
- https://invest358.com/ja/baba-option-review/
- https://invest358.com/ja/blueberryfunded-review/
- https://invest358.com/ja/thinkcapital-review/
- https://porn-fun.com/ja/ai-exotic-review/
- https://porn-fun.com/ja/ai-girlfriend-review/
- https://porn-fun.com/ja/fc2-contents-market-review/
- https://porn-fun.com/ja/gboys-tokyo-hot-review/
- https://porn-fun.com/ja/maniacmax1-review/
- https://porn-fun.com/ja/post-28-review/
- https://porn-fun.com/ja/s-cute-review/
- https://aifan.io/ja/pixverse-ai-review/
- https://aifan.io/ja/dream-machine-review/
- https://aifan.io/ja/openart-ai-review/
- https://aifan.io/ja/leonardo-ai-review/
- https://aifan.io/ja/vidu-ai-review/
- https://aifan.io/ja/pollo-ai-review/

見本18URLから継承する観点:
- 評価記事の冒頭で、読者が知りたい条件を先に示す流れ。
- リード文で「何の記事か」「何が分かるか」「誰に向くか」を自然に案内する書き方。
- 先に結論BOXで、強み、注意点、料金、比較、向いている人を具体化する書き方。
- 右側CTAを短く置き、前後の本文で確認項目を説明する形。
- H2/H3を使って、料金、機能、手順、注意点、比較、Q&Aへ自然につなげる構成。
- 太字、赤太字、黄色アンダーマーカー、装飾BOXを読みやすく使うバランス。
- Q&Aを読者の実際の質問として書き、回答を直接返す形。
- まとめで、本文の判断軸を回収し、読者の次の確認行動を明確にする流れ。

見本18URL validator必須キー:
- `reference_18_urls_present=true`
- `reference_18_checked_count=18`
- `reference_18_no_copy_result=PASS`
- `reference_inherited_elements`
- `reference_reader_flow_applied=true`
- `reference_decoration_balance_applied=true`
- `reference_right_cta_applied=true`

【11. 公開HTML・validator・HUB保存・runtime証跡の確認】

自己申告PASSは禁止です。制作cronは、下書き/公開後に本文領域を読み戻し、公開HTML、validator、HUB保存、runtime証跡を揃えてからtask8へ渡します。

必須確認:
- Search Compass結果がある。
- 第三者上位10サイトの材料化がある。
- 公式情報と第三者情報の扱いが分かれている。
- リード文が読者向けで、何の記事か、何が分かるかが分かる。
- 先に結論が具体的で、料金、無料枠、有料枠、機能、支払い、退会、比較のうち必要項目を満たす。
- 料金プランがある。確認不能な場合も、確認不能だけで終わらず、確認すべき項目を具体化している。
- 無料枠と有料枠の違いがある。
- 登録方法がある。
- 退会/解約方法がある。
- 決済方法がある。
- 他社比較がある。
- AEO Q&Aがある。
- 敬体自然文で、だ・である調が残っていない。
- 内部語、設定語、作業メモが公開本文に出ていない。
- 装飾BOX、太字、マーカー、内部リンク、CTA、Q&A、まとめが自然に使われている。
- 抽象的な記事、薄い記事、一般論だけの記事になっていない。

validator必須総合キー:
- `reader_value_density_gate=PASS`
- `thin_article_gate=PASS`
- `generic_article_gate=PASS`
- `lead_reader_value_gate=PASS`
- `conclusion_substance_gate=PASS`
- `pricing_plan_detail_present=true`
- `free_paid_difference_present=true`
- `signup_steps_present=true`
- `cancellation_steps_present=true`
- `payment_methods_present=true`
- `competitor_comparison_present=true`
- `aeo_answer_block_present=true`
- `official_third_party_handling_present=true`
- `search_compass_used=true`
- `serp_top10_checked=true`
- `polite_natural_style_gate=PASS`
- `public_html_readback_done=true`
- `published_body_selector_used=true`
- `sidebar_related_footer_excluded=true`
- `runtime_evidence_saved=true`
- `hub_save_readback_done=true`

FAIL条件:
- Search Compassなし。
- 第三者上位10サイトを見ていない。
- リード文で何の記事か分からない。
- 先に結論が抽象論だけ。
- 料金、無料枠、有料枠、登録、退会、決済、比較のうち、対象サービスで必要な項目が抜けている。
- 公式情報と第三者情報を混ぜて断定している。
- 公式確認不能を言い訳にして、確認丸投げ文だけで文字数を稼いでいる。
- だ・である調や作業メモ調が残っている。
- 内部語が公開本文に出ている。
- Q&Aが一般論だけ。
- 公開HTML読み戻しなし。
- validator未実行、必須キー欠落、自己申告PASS。
- HUB保存やruntime証跡なし。

【12. 報告ルール】

公開反映後は、制作cronが次を必ず報告します。
- 読んだ公開URLとローカルパス。
- 対象cron。
- 修正または制作した内容。
- 公開反映の有無。
- 読み戻し結果。
- h2/h3構成。本文領域だけを数え、サイドバー、関連記事、Directory、TOC、フッターは除外します。
- 必須文言の有無。Search Compass、第三者上位10サイト、料金プラン、無料枠と有料枠、入会方法、退会方法、決済方法、他社比較、AEO Q&A、敬体自然文を確認します。
- 対象ブロック文字数。
- 残リスク。公式がログイン後にしか表示しない料金、第三者情報0件、決済画面未確認、退会画面未確認などを正直に書きます。

このv0.1.67以降、構造Gateだけ通る薄い記事をPASSにしません。読者が登録前に判断できるだけの具体材料がない記事は、制作cron自身が止めて修正してください。


【13. 2026-06-25_PROMPT_END_INSIDE_EXACT_SEQUENCE_FIX:制作cron実行順固定】
このセクションは、porn-fun【評価・NSFW AI】制作cron依頼文の `PROMPT_START` から `PROMPT_END` までの内側で直接効く固定ルールです。外側のH2、別Gate、別メモ、共有ログだけを読んだ扱いは禁止します。

制作cronは、この順番を実作業の順番として読みます。途中を飛ばした場合は、制作完了、公開反映、TASK8引き渡し、品質PASSを禁止します。

【13-0. 旧Gate省略禁止】
Marker: 2026-06-25_OLD_GATE_NON_REPLACEMENT_MASTER_RULE

新しく追加されたルール、H2ブロック単位ルール、装飾追加ルール、Directory Core基本情報重複禁止ルール、公開560読み戻しルールは、既存ルール・既存Gate・既存validator必須キーを置き換えません。すべて上乗せです。

次の旧ルールは、最新追加ルールの有無にかかわらず必ず通します。

- Search Compass確認
- 狙いKW / 検索上位10ページ確認
- 公式トップ、料金、プラン、規約、プライバシー、問い合わせ、ヘルプ、退会、返金、決済、サポート確認
- 第三者ページのtitle / H1 / メタ説明 / H2-H4 / 本文 / 関連検索 / サジェスト / 質問系ニーズ材料化
- H1とSEOタイトルの区分、SEOタイトル強度、H1実測
- リード文、右側CTA、評価スコア表、H2 6つ以上、H3 2つ以上
- H2単位作成、H2ごとの読み戻し、読者目線修正、装飾、次H2許可判定
- 黒太字、赤太字、黄色アンダーマーカー+黒太字、✅、⚠️、information-box、warning-box、blank-box bb-tab bb-check bb-yellow
- qa-box完全形、qa-question、qa-answer、NSFW AIでは原則8から12件のQ&A
- 内部リンク/CTA/比較リンクの自然配置、無理な外部レビューリンク禁止
- Directory Core評価スコア表、Directory Core基本情報表の入力と公開読み戻し
- 本文中の重複基本情報表禁止
- 公開HTMLまたはプレビューHTMLの本文領域読み戻し、サイドバー/関連記事/フッター除外
- 半角疑問符4連続、UTF-8誤読由来の文字化け、日本語崩れ、内部語混入の確認
- validator_result.json、failed_gate_names、required_gate_failures、quality_delta_items、score_cap、final_quality_scoreの実測保存

どれか未測定、未読戻し、FAIL、REPAIR、キー欠落、固定true、自己申告PASSの場合は、公開完了、PASS、TASK8引き渡し、改善完了を禁止します。

【13-1. 対象サービスと読者像】
ペルソナは、成人向けAIサービスを登録前に比較している読者の代理である一流ライターです。読者像は、料金、無料枠、有料枠、できること、できないこと、入会、退会、解約、返金、決済方法、安全性、禁止事項、他社比較を登録前に判断したい人です。

最初に、対象サービス名、既存公開URL、slug、Post ID、狙いKW、主KW、補助KW、比較KW、料金KW、解約KW、安全性KW、口コミKWを分けます。published_url が空でも未公開扱いにせず、既存公開URL、slug、WP検索、既存記事スナップショットを確認します。

【13-2. Search Compassと上位ページ確認】
Search Compassを必ず使います。Search Compassだけ、公式だけ、一般論だけで本文を書いてはいけません。

狙いKW / 検索上位10ページ確認では、上位ページのtitle、H1、メタ説明、H2-H4、本文、関連検索、サジェスト、質問系ニーズを材料化します。上位10サイト材料化では、検索意図、上位構成、必要トピック、不足情報、共起語・関連語、差別化要素の順に見ます。

第三者記事を記事本文に「第三者レビュー10位」「上位10サイト」「参照サイト」「記事から拾うべき材料」と書いたらFAILです。検索上位ページは、読者が知りたい不足情報、料金の見方、比較軸、注意点、Q&Aを厚くするために使います。

【13-3. 公式情報と第三者情報】
公式情報と第三者情報の扱いを分けます。公式情報は料金、無料枠、有料枠、機能、規約、プライバシー、禁止事項、問い合わせ、解約、返金、削除依頼、決済方法を確認します。第三者情報0件でも制作停止しませんが、公式確認の手抜きはFAILです。

公式Articles、Guides、Help、Terms、Privacy、Contact、Complaints、DMCAなどは熟読します。ただし、公式記事URLをそのまま記事本文に貼ったり、「公式記事」という項目を作ったりしません。読者向けの説明、比較軸、注意点、Q&A、手順へ変換します。

「非ログインで分からない」「ログインしないと分からない」「取得時点で確認しづらい」はFAILです。料金、無料枠、有料枠、入会、退会、解約、返金、支払い、問い合わせ先は公式内を探して具体的に書きます。

【13-4. H1とSEOタイトル区分】
Marker: 2026-06-25_H1_SEO_HEADING_JA_OFFICIAL_BUTTON_MACHINE_GATE

H1、SEOタイトル、見出し文体、日本語、基本情報表の公式ボタンは、必ず機械確認します。自己申告、固定true、本文だけの目視、未測定の通過扱いは禁止です。

- H1 / 投稿タイトルは、対象サービス名だけにします。例: `Pephop AI`
- SEOタイトルはH1をそのまま流用せず、検索意図を入れた別文にします。例: `Pephop AIの評判・料金・使い方をレビュー`
- H1とSEOタイトルが同一、ほぼ同一、またはSEOタイトルがサービス名だけならFAILです。
- 公開HTMLまたはプレビューHTMLで `h1_text` と `seo_title_text` を別々に実測します。
- 必須キー: `h1_text`, `seo_title_text`, `h1_selector`, `seo_title_source`, `h1_gate`, `seo_title_strength_gate`, `seo_title_h1_separated_gate`, `seo_title_fail_reasons`

【13-5. 見出し語尾とアウトライン】
H2/H3/H4見出しに、本文語尾の「です」「ます」「できます」「しましょう」「確認します」「見ます」「読みます」「整理します」「紹介します」「解説します」を付けません。

見出しは、名詞句、読者の疑問、判断軸、比較軸で作ります。例: `料金と無料枠の違い`, `登録前に見たい安全性`, `解約と返金で確認したいこと`

先にアウトラインを作ります。一気に最後まで書きません。リード文、右側CTA、H2単位の本文、評価表、料金表、比較表、Q&A、まとめ、読み戻しの順に進めます。

必須キー: `heading_polite_suffix_count`, `heading_polite_suffix_hits`, `heading_polite_suffix_gate`, `heading_reader_intent_gate`

【13-6. リード文と右側CTA】
リード文は、何の記事か、この記事で何が分かるかを読者目線で自然に説明します。リード文内で先に結論を書き切ってはいけません。ヨコモジを並べすぎず、小学生でも分かる語順にします。

リード文内には、黄色アンダーマーカー+黒太文字を1箇所以上入れます。これは既存ルールの継続であり、最後のGateだけに任せず、リード作成時点で入れます。

右側CTAは、既存ルールと見本に合わせて自然に置きます。比較リンクは内部リンクまたはアフィリリンクを優先し、なければ無理に外部リンク化せずテキストで比較します。

【13-7. H2ブロック単位の機械Gate】
本文はH2単位で作成します。H2は1記事6つ以上、H3は2つ以上必要です。見出しをワンパターン化せず、読者が次に知りたい順番へ変えます。ただし既存記事で代表から「見出し構成を変えるな」と指示された場合は、その指示を優先します。

H2ブロックは1つずつ作ります。現在のH2ブロックが未作成、未読戻し、未修正、未装飾のまま次のH2へ進んではいけません。

H2ブロックごとの機械強制Gate:

- `h2_block_started`
- `h2_block_written`
- `h2_block_readback_done`
- `h2_block_reader_check_done`
- `h2_block_decoration_done`
- `h2_block_completion_declared`
- `h2_block_next_allowed`

`h2_block_next_allowed` は、本文作成、読み戻し、読者目線修正、装飾、内部リンク/CTA/Q&A/表の要否確認、内部語と文字化け確認、完了宣言が済んだ時だけ真にします。

各H2では、「この段落は誰に向けているか」「登録前の判断材料になっているか」「日記・作業メモ・読者任せになっていないか」を確認します。変な文章、白々しい文章、抽象論、文字数稼ぎはその場で直します。

【13-8. H2ブロック内装飾】
Marker: 2026-06-25_BLOCK_DECORATION_ADDITIVE_GATE

この追加Gateは、既存の装飾黄金比、見本URL継承、右側CTA、Q&A `qa-box`、✅/⚠️、必須BOX、内部リンク、まとめのルールに上乗せします。新ルールを追加したことで、過去の装飾ルール、✅/⚠️ルール、Q&Aルール、読み戻しルールを消した扱いにしてはいけません。

本文はH2ブロック作成時点で装飾します。各H2を書いている時点で、黒太文字、赤太文字、黄色アンダーマーカー+黒太文字、✅/⚠️、情報BOX、注意BOX、チェックBOX、内部リンクを、料金、無料枠、有料機能、入会、解約、返金、安全性、削除依頼、比較、Q&A前後の判断点へ分散して入れます。

全文を書き終えてから最後だけで装飾を足す運用は禁止です。最後のGateは、ゼロから装飾する工程ではなく、ブロックごとに入れた装飾の過不足を、見本18URLまたは現行見本URL群の装飾平均比率へ寄せる調整工程です。

✅/⚠️は従来どおり使います。新ルールを追加したことで✅/⚠️が不要になったわけではありません。1文1ポイント、または箇条書き1行1ポイントを守り、数合わせで意味の薄い文につけてはいけません。

【13-9. 表とDirectory Core】
評価スコア表は本文内に作ってよいですが、点数、理由、強み、注意点、向く人が埋まっている必要があります。空欄、薄い理由、同じ表現の連続はFAILです。

基本情報表はDirectory Coreプラグインの評価フィールドで出します。本文中に重複する基本情報表を作ってはいけません。本文内H2「〇〇の基本情報」を安易に作ったらFAILです。

料金表、比較表、評価表、チェックリスト表は本文内にあってよいです。ただし、基本情報表の重複ではなく、読者が判断するための料金、機能、比較、手順、注意点として作ります。

Directory Core基本情報表または記事下情報パネルで、公式URL/アフィリエイトURL由来の公式ボタンが公開HTMLに表示されていることを確認します。公式URLの値を入力しただけではPASSにしません。公開HTML上で公式ボタン、リンク先、rel属性、表示位置を読み戻します。

必須キー: `directory_core_official_button_present`, `directory_core_official_button_href`, `directory_core_official_button_text`, `directory_core_official_button_rel`, `directory_core_official_button_gate`

【13-10. 日本語固定と内部語禁止】
文体は敬体自然文です。常体Strictは禁止です。小学生でも分かる言葉を軸にし、体言止め・断定・推測・呼びかけを混ぜて文末リズムを作ります。同じ語尾、同じ言い回し、機械的な箇条書きの連続を避けます。

報告、公開本文、見出し、Q&A、CTA前後、summary、meta、description は日本語で書きます。英語の内部メモ、英語の作業報告、英語のGate説明、英語のvalidator説明を公開本文や報告に混ぜません。例外は、サービス正式名、公式固有名、URL、HTML属性、validatorキー、必要な技術名だけです。

記事本文に内部語を出してはいけません。workflow、agent_pack、validator_result、production_ready、Search Compassで見た、第三者レビュー10位、記事から拾うべき材料、作業メモ、Gate、TASK8、Directory Core、info_rows、導線などは公開本文に出しません。

必須キー: `japanese_report_gate`, `english_internal_memo_leak_count`, `english_internal_memo_leak_hits`, `public_body_japanese_gate`

【13-11. Q&Aと比較リンク】
Q&Aは正しいqa-box構造で本文内に置きます。質問、回答、読者の判断材料がそろっていないものはQ&Aとして数えません。

比較リンクは内部リンク、公式リンク、アフィリリンクを優先します。なければテキスト比較にします。第三者レビュー記事URLを本文にそのまま貼りません。

【13-12. validatorと公開読み戻し】
validatorは構造PASSだけで通してはいけません。少なくとも次の実測キーを確認します。

- `pricing_plan_detail_present`
- `free_paid_difference_present`
- `signup_steps_present`
- `cancellation_steps_present`
- `payment_methods_present`
- `competitor_comparison_present`
- `third_party_top10_checked`
- `body_basic_info_table_absent`
- `directory_core_info_rows_complete`
- `directory_core_score_rows_complete`
- `body_table_reason_phrase_absent`
- `reader_facing_payment_support_section_present`
- `lead_marker_strong_present`
- `h2_block_decoration_done`
- `check_warning_icons_present`
- `reference_decoration_ratio_checked`
- `decoration_adjusted_after_full_readback`
- `h2_block_not_fake_tone_checked`
- `h1_text`
- `seo_title_text`
- `h1_selector`
- `seo_title_source`
- `h1_gate`
- `seo_title_strength_gate`
- `seo_title_h1_separated_gate`
- `seo_title_fail_reasons`
- `heading_polite_suffix_count`
- `heading_polite_suffix_hits`
- `heading_polite_suffix_gate`
- `heading_reader_intent_gate`
- `japanese_report_gate`
- `english_internal_memo_leak_count`
- `english_internal_memo_leak_hits`
- `public_body_japanese_gate`
- `directory_core_official_button_present`
- `directory_core_official_button_href`
- `directory_core_official_button_text`
- `directory_core_official_button_rel`
- `directory_core_official_button_gate`

TASK8 / 高品質チェック引き渡し前に、公開HTMLまたはプレビューHTMLを読み戻します。読み戻しでは、H2/H3数、本文文字数、対象ブロック文字数、禁止語、内部語、装飾黄金比、✅/⚠️、qa-box、右側CTA、内部リンク、Directory Core info_rows、Directory Core score_rows、公式ボタン、H1、SEOタイトル、見出し語尾を確認します。

自己申告PASSは禁止です。読んだ証跡、見たHTML、確認した項目、修正した箇所を残してから引き渡します。
----- MARK2_COMMON_GATE_END -----

【完了条件】
- 1タスクで完成させるのは1記事です。
- 必須FAILが1件でも残る場合、公開完了、制作完了、TASK8 handoff完了を宣言しません。同じ記事を修復して再実測します。
- 公開後の読み戻し、Hub保存、Hub読み戻し、validator_result.json、production_publish_evidence、TASK8 handoffがそろって初めて完了です。
- 作業報告には対象記事、公開URL、Post ID、slug、カテゴリ、第三者ページ取得件数、H2ブロック数、各機械Gate結果、装飾実測、文字化け件数、内部語件数、validator FAIL件数、Hub readback、未完了点を書きます。

コメント

タイトルとURLをコピーしました