OripaGate【TCGカード辞書】cronテンプレート v0.1.81 買取価格相場強化版

Marker: oripagate-trading-card-price-cron-v0181-20260613

更新: 2026-06-13 06:11:53 JST / OripaGate【TCGカード辞書】を買取価格相場記事向けに再開するためのv0.1.81。制作文字数は4,500〜5,500字程度以上、5,500字は上限ではなく必要なら超えてよい。

対象は辞書セット trading-card、カテゴリ https://oripagate.jp/directory-category/tcg-card/ のみ。Node REPL / node_repl / JavaScript REPL はcron作業時に使用禁止。

cronスレッド立ち上げ依頼文

OripaGate【TCGカード辞書】cron専用スレッドを起動してください。
対象はトレカ辞書(trading-card)とTCGカードカテゴリだけです。
この記事群は、カードの買取価格相場を調べているユーザー向けに制作します。
H1はカード名のみ。SEOタイトルはカード名 + 買取価格 + 相場を必ず含め、H1と同一にしないでください。
cron automationの作成・登録・削除・時刻変更は、代表から明示的に「cronを作成して」と指示があるまで行わないでください。
作業時はNode REPL / node_repl / JavaScript REPLを使用しないでください。
public_category_url: https://oripagate.jp/directory-category/tcg-card/
workflow_id: oripagate-trading-card-dictionary-ja
content_set: oripagate_trading_card_dictionary
dictionary_set: trading-card

cron一式作成依頼文

OripaGate【TCGカード辞書】cron一式を作成してください。
各cronのprompt本文は、このページの各個別作成依頼文にあるPROMPT_STARTからPROMPT_ENDまでをそのまま入れてください。
固定RRULEは書かず、既存ACTIVE cron確認後に同時刻と前後10分を避けて設定してください。
全cronでNode REPL / node_repl / JavaScript REPLを使用しないでください。

- OripaGate【TCGカード辞書】収集: 1回/日 / model gpt-5.4
- OripaGate【TCGカード辞書】検査: 4回/日 / model gpt-5.5
- OripaGate【TCGカード辞書】制作: 最大3回/日 / model gpt-5.5
- OripaGate【TCGカード辞書】高品質チェック: 最大5回/日 / model gpt-5.5
- OripaGate【TCGカード辞書】訂正: 1回/日 / model gpt-5.4
- OripaGate【TCGカード辞書】改善ハンドオフ: 週1回、または改善キュー発生時 / model gpt-5.4

個別cron作成依頼文

OripaGate【TCGカード辞書】収集cron automation作成依頼文

PROMPT_START
# OripaGate【TCGカード辞書】収集cron v0.1.82 収集元肉厚版

- kind: cron
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- model: gpt-5.4
- reasoning: highest
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- role: 収集
- daily fire count: 1回/日
- per-run processing limit: 1〜15候補
- schedule intent: 1回/日
- recommended RRULE: 固定値は置かない。既存ACTIVE cronを確認し、発火時間設定ルールに従って決める。

Marker: oripagate-trading-card-collection-source-v0182-20260613

## 目的
OripaGate【TCGカード辞書】の収集cronは、カード単体の記事候補を集めるためのcronである。対象はトレカ辞書 `trading-card` とTCGカードカテゴリだけ。カードの買取価格相場を調べる読者に役立つ候補を、公式情報、収録情報、買取表、相場参考、オリパ景品文脈、検索需要から集める。
このcronの仕事は候補収集、収集元整理、重複確認、Hub保存、readbackまでである。本文執筆、公開、品質判定、訂正、改善案作成、他カテゴリへの横展開は行わない。

## 絶対スコープ
- 対象は OripaGate【TCGカード辞書】だけ。
- 使用する正本は `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate` 配下だけ。
- cron実行cwdは `C:\Users\Public\Documents\LLC358\_codex_cron_threads`。
- AIfan、porn-fun、Invest358、他サイトHUB、TCG店辞書、未開封BOX・パック辞書、用語辞書、キャンペーン記事、オンラインオリパ評価記事は触らない。
- `https://cron.goudou-358.jp/956/` のこの収集cron本文以外を編集しない。
- 旧共有Gate、`_codex_cron_threads`側の古いALL_SITE、`representative-work-gate/SKILL.md`を正本にしない。
- Node REPL / node_repl / JavaScript REPL を使用しない。cron作業時は禁止。
- 秘密値、認証値、APIキー、トークン、不要な個人情報をチャット、Hub、収集メモへ出さない。

## 1日の起動回数
- この収集cronは1回/日で起動する。
- 1回の起動で処理する候補は1〜15件。
- 0件処理で完了禁止。候補が見つからない場合でも、探索した収集元、検索語、見つからなかった理由、次回探索先をHubへ保存する。
- 16件以上候補がある場合は最大15件まで処理し、残りは次回タスクへ残す。
- 1候補とは、カード名とカード識別根拠が最低1つあるカード単体を指す。BOX、パック、ショップ、用語、キャンペーンは1候補に数えない。

## 発火時間設定ルール
- テンプレート本文に固定時刻を書かない。実設定時刻はcron作成時に既存ACTIVE cronを確認して決める。
- 既存ACTIVE cronと同時刻および前後10分以内を避ける。
- 特に同じOripaGate内の制作系、記事投稿系、重い確認系cronとの近接を避ける。
- 1回/日起動なので、既存ACTIVEが少ない時間帯を1枠選ぶ。
- 分は 07 / 13 / 19 / 26 / 34 / 41 / 48 / 55 を優先候補にし、00分固定を避ける。
- 前後10分を空けられない場合でも作成停止しない。5分間隔、1分間隔、最後は重複または同時刻の順に詰める。
- スケジュール混雑だけで作成停止しない。
- 他サイトcronや既存automationを勝手に停止、変更、移動しない。
- 近接や同時刻になった場合は、なぜその時刻にしたかを短く記録する。

## 起動時に読むもの
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron_prompts\current\trading-card-dictionary\README.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron\COLLECTION_SOURCE_MANUAL.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron\ARTICLE_TYPE_MANUAL.md` のTrading Card Dictionary関連部分
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\ORIPAGATE_ARTICLE_TYPE_AND_DIRECTORY_GATE.md` のTrading Card関連部分
- live Hub `api=status` で site_id=oripagate のみを確認する。
- live Hub `api=agent_pack&site_id=oripagate&workflow_id=oripagate-trading-card-dictionary-ja` を取得し、収集に必要な最新Manual/Rules/Referencesだけを確認する。
- 長いGateやマニュアルを不要に全文再読しない。必要箇所を対象に読む。

## 収集対象の定義
- 収集対象はカード単体。
- カード名、カードゲーム、カード番号、レアリティ、収録弾、収録弾コード、発売日、メーカーのどれかが確認できる候補を優先する。
- 買取価格相場を調べる読者の需要があるカードを優先する。
- 高額カード、人気キャラカード、限定カード、プロモカード、初期カード、PSA鑑定需要があるカード、オリパ景品として見かけるカード、検索需要があるカードを優先する。
- 同名で型番違いが多いカードは、カード名だけで完了にせず、型番や収録弾の候補を残す。
- 同一カードでもレアリティ、型番、収録弾、言語、プロモ種別で相場が大きく違う場合は、変種メモとして保存する。
- 未開封BOXやパックそのものは対象外。ただし、関連未開封BOXとしてカード候補の補助情報に残してよい。
- ショップそのものは対象外。ただし、関連通販・買取店としてカード候補の補助情報に残してよい。

## 収集元A: 公式カード情報
- 公式カードDB、メーカー公式カードページ、カードゲーム公式ページを最優先する。
- 公式ページから確認する項目は、カード名、カードゲーム、カード種別、カード番号、レアリティ、収録弾、収録弾コード、発売日、メーカー、イラストレーター、公式カードページURL。
- 公式カードDBで同名カードが複数ある場合は、同名カード一覧として保存し、型番・収録弾・レアリティで区別する。
- 公式ページがカード単体ではなく商品ページだけの場合は、公式商品ページとして保存し、カード単体の確定度を `needs_official_card_page` で残す。
- 公式ページが見つからない場合でも、公式セットリストや公式商品ページがあれば、そのURLと不足項目を保存する。
- 公式ページ以外を公式事実として扱わない。ショップ、ブログ、SNS、相場サイト、フリマは公式事実ではない。

## 公式カード情報の優先度
- 優先度1: カードゲーム公式DBのカード単体ページ。
- 優先度2: メーカー公式のカードリスト、商品ページ、収録カード一覧。
- 優先度3: 公式ニュース、公式キャンペーン、公式SNSのカード公開情報。
- 優先度4: ショップ商品ページや買取表にある型番・レアリティ表記。
- 優先度5: 相場参考ページ、フリマ、SNS、コレクター反応。
- 優先度4と5だけでカード識別を確定しない。公式情報不足として保存する。
- 公式情報が複数食い違う場合は、より新しい公式ページ、カードDB、商品ページの順で候補を残し、判断を保留する。

## 収集元B: 公式セット・発売情報
- 公式セットリスト、商品ページ、発売ニュース、収録カード一覧、拡張パックページ、構築済みデッキページを確認する。
- 収録弾、収録弾コード、発売日、メーカー、カードゲーム、カード番号の裏取りに使う。
- 収録弾が複数ある場合は、代表的な収録弾、初出、再録、プロモ、限定配布、キャンペーン配布を分けて保存する。
- 発売日が公式で確認できない場合は、未確認として残し、別ソースで断定しない。
- 同じイラストで型番違いがある場合は、画像だけで同一候補にまとめない。

## 収集元C: TCGショップの商品ページ
- TCGショップの商品ページ、在庫ページ、販売価格ページ、商品検索結果を候補発見に使う。
- 商品ページから、カード名、型番、レアリティ、状態、販売価格表示、在庫表示、商品URL、確認日を保存する。
- ショップの商品名には略称、俗称、型番なし表記が混ざるため、公式情報と突き合わせる前に確定扱いしない。
- 販売価格は買取価格ではない。販売価格を買取相場として保存しない。
- 商品ページが動的表示で価格が取れない場合は、URL、確認日、取得できなかった理由を保存する。
- 状態ランク、傷あり、プレイ用、美品、PSA鑑定済みなどの表記があれば、状態差メモに保存する。

## 収集元D: TCGショップの買取表・買取ページ
- 買取表、カード別買取ページ、高価買取リスト、買取強化ページ、宅配買取ページを候補発見に使う。
- 買取ページから、カード名、型番、レアリティ、買取上限価格、状態条件、買取表URL、相場確認日、ショップ名を保存する。
- 買取上限価格、買取実績価格、参考買取価格、査定後価格を区別する。
- 買取価格は日々変動するため、確認日を必ず保存する。
- 買取価格の表示が画像、JavaScript、ログイン後表示、地域別表示の場合は、取得可否と未確認理由を残す。
- 1つのショップだけで相場確定しない。収集段階では複数候補URLを集めるだけにする。
- 買取価格と販売価格を混ぜない。混ざっている場合は `PRICE_AND_SALES_PRICE_CONFUSED_SOURCE` として注意を残す。

## 買取表で特に見る項目
- カード名の表記ゆれ。
- 型番、カード番号、収録弾コード。
- レアリティ表記。
- 美品、傷あり、プレイ用、PSA鑑定済みなどの状態条件。
- 買取上限、参考買取、買取保証、最低保証、在庫状況。
- 更新日、確認日、期間限定買取強化の有無。
- 店舗名、宅配買取か店頭買取か、URL。
- 画像だけで価格が出ている場合は、画像内価格を手入力で確定せず、取得困難メモとして残す。
- 同じショップの複数ページで価格が違う場合は、ページ種別と確認日を分けて保存する。

## 収集元E: 相場参考ページ・市場文脈
- 相場参考ページ、価格推移ページ、カード価格まとめ、カード相場比較、PSA相場文脈を候補発見に使う。
- 相場参考からは、現在相場候補、価格推移の有無、高騰/下落文脈、確認日、対象型番、状態条件を保存する。
- フリマ、オークション、マーケットプレイスの出品価格は、売れた価格か出品価格かを区別する。
- 出品中価格だけで相場を断定しない。
- 売買成立価格、買取表、販売価格、PSA鑑定品価格、未鑑定価格を分ける。
- 動的ページや検索結果ページを使う場合は、URLと確認条件を残し、本文で断定できる根拠として扱わない。

## 収集元F: PSA10/PSA9・鑑定品文脈
- PSA10相場、PSA9相場、鑑定品販売ページ、鑑定済み買取ページ、鑑定会社の公開情報を候補発見に使う。
- PSA10/PSA9価格は未鑑定カードの買取価格と別物として保存する。
- PSA鑑定品の価格は、カード番号、レアリティ、言語、状態、鑑定番号の有無で大きく変わるため、同一カードの参考文脈として扱う。
- PSA10相場候補、PSA9相場候補、確認日、参考URL、未確認理由を別項目に保存する。
- PSA文脈が見つからないカードは、`psa_market_not_found` として残す。無理に作らない。

## 収集元G: オンラインオリパ景品リスト
- オンラインオリパの景品リスト、当たり枠一覧、キャンペーン景品、演出ページ、当選報告文脈を候補発見に使う。
- オリパ景品リストからは、カード名、カードゲーム、レアリティ、景品としての表示名、サービス名、URL、確認日を保存する。
- オリパ景品表示は公式カード情報ではない。カード識別や相場確定の根拠にせず、読者需要とOripaGate relevanceの根拠として扱う。
- 景品リストに型番がない場合は、候補名だけ保存し、検証不足として残す。
- オリパサービスの煽り文句や高額表示を価格根拠にしない。

## 収集元H: Search Console・サジェスト・関連検索
- Search Consoleクエリ、サイト内検索需要、Googleサジェスト、関連検索、読者が使いそうな検索語を候補発見に使う。
- 収集する検索語は、`カード名 買取価格`、`カード名 買取相場`、`カード名 値段`、`カード名 PSA10 相場`、`カード名 型番`、`カード名 レアリティ`、`カード名 高騰`、`カード名 売る` など。
- 検索需要メモには、カード名、別名、略称、英語名、型番、買取価格系の検索語、PSA系の検索語を分けて残す。
- Search Consoleやサジェストは候補発見用であり、価格や公式事実の根拠ではない。
- サジェストだけで候補採用しない。公式情報またはショップ/相場参考URLの候補が必要。

## 収集元I: OripaGate内部不足
- OripaGate内のTCGカードカテゴリ、関連カード記事、未開封BOX記事、TCGショップ記事、内部リンク候補、既存記事の空白を確認する。
- 既存公開済みカード記事がある場合は、重複候補として保存し、新規候補として完了扱いしない。
- 既存記事が古い、相場情報が薄い、型番違いを扱っていない場合は、別候補ではなく更新/改善候補としてメモする。
- 内部リンク候補として、関連未開封BOX、関連カードゲーム、関連通販・買取店を保存する。
- 内部不足の確認だけで候補確定しない。外部収集元のURL候補とセットで保存する。

## 収集元J: SNS・コレクター反応
- SNS、掲示板、コレクター反応、話題化、再録発表、環境変化、人気キャラ需要は文脈として使う。
- SNSは公式事実でも価格根拠でもない。高騰理由、需要、読者関心、注意点の候補として保存する。
- 個人情報、不要なアカウント名、晒し、攻撃的投稿、真偽不明の噂をHubへ混ぜない。
- SNS由来の文脈は `context_only` として保存し、カードの公式情報や価格の確定には使わない。

## 収集元K: 収集語の展開
- カード名そのもの。
- カード名 + 買取価格。
- カード名 + 買取相場。
- カード名 + 値段。
- カード名 + 型番。
- カード名 + レアリティ。
- カード名 + 初期。
- カード名 + プロモ。
- カード名 + PSA10。
- カード名 + PSA9。
- カード番号 + 買取。
- 収録弾名 + 当たりカード。
- 収録弾コード + カード名。
- 別名、略称、英語名、キャラクター名がある場合は、それぞれ検索語候補として保存する。
- 検索語は価格根拠ではない。候補発見と需要把握のために保存する。

## 収集元L: 関連内部リンク候補
- 関連未開封BOX。
- 関連カードゲーム。
- 関連通販・買取店。
- 関連する同名別型番カード。
- 関連する人気キャラカード。
- 関連する高額カード、同じ収録弾の当たりカード。
- 内部リンク候補はURL候補として保存するだけでよい。リンクの最終判定はこの収集cronでは行わない。

## 収集元M: 候補の鮮度
- 買取価格、相場、在庫、景品リストは日付で変わる。
- 収集時点の確認日を必ず残す。
- 公式発売日やカード番号のように変わりにくい情報と、買取価格や景品表示のように変わりやすい情報を分ける。
- 古いページしか見つからない場合は `stale_source_possible` として残す。
- 更新日が見えないページは `source_updated_date_not_found` として残す。
- 期間限定買取、キャンペーン景品、買取強化は期間を確認できなければ現在情報として扱わない。

## 収集対象として優先するカード
- 買取価格相場を調べるユーザーが多そうなカード。
- 型番やレアリティで価格差が出るカード。
- PSA10/PSA9文脈があるカード。
- 初期、限定、プロモ、キャンペーン、記念品、英語版、高レアリティ、人気キャラ、環境で使われるカード。
- オンラインオリパの当たり枠に出やすいカード。
- 関連未開封BOX、関連カードゲーム、関連ショップと内部リンクしやすいカード。
- 現在相場と買取相場の両方を確認できる可能性があるカード。

## 収集対象から外すもの
- カード単体ではなくBOX、パック、ショップ、用語、キャンペーンだけの候補。
- 公式情報が見つからず、カード名や型番の識別ができない候補。
- 同名別カードが多いのに型番や収録弾が全く分からない候補。
- 価格根拠がSNSの噂だけの候補。
- 違法コピー、偽物販売、真贋不明の販売ページだけを根拠にした候補。
- 既存公開記事と完全重複し、更新/改善の扱いにすべき候補。
- TCGカードカテゴリではなく、明らかに別ジャンルの記事タイプへ送るべき候補。

## 候補ごとに保存する基本項目
- candidate_id または仮ID
- candidate_name: カード名
- card_game: カードゲーム名
- card_type: カード種別
- card_number: カード番号
- rarity: レアリティ
- set_name: 収録弾
- set_code: 収録弾コード
- release_date_candidate: 発売日候補
- manufacturer: メーカー
- illustrator_candidate: イラストレーター候補
- official_card_url_candidate: 公式カードページ候補
- official_set_url_candidate: 公式収録/商品ページ候補
- shop_product_url_candidates: 商品ページ候補
- buyback_url_candidates: 買取表/買取ページ候補
- market_reference_url_candidates: 相場参考ページ候補
- psa_reference_url_candidates: PSA10/PSA9参考候補
- oripa_prize_url_candidates: オリパ景品リスト候補
- search_demand_notes: 検索需要メモ
- internal_gap_notes: OripaGate内部不足メモ
- duplicate_check_notes: 重複確認メモ
- unresolved_questions: 未解決点
- collected_at_jst: 収集日時

## 収集元ごとの保存ラベル
- `official_card`: 公式カード単体ページ。
- `official_set`: 公式収録弾、商品、発売情報。
- `shop_product`: ショップ商品ページ、販売ページ。
- `shop_buyback`: 買取表、買取ページ、高価買取リスト。
- `market_context`: 相場参考、価格推移、比較ページ。
- `psa_context`: PSA10/PSA9、鑑定品文脈。
- `oripa_prize`: オンラインオリパ景品リスト。
- `search_demand`: Search Console、サジェスト、関連検索。
- `internal_gap`: OripaGate内部不足。
- `sns_context`: SNS、コレクター反応。
- `unknown_source`: 種別未確定。完了前に理由を残す。

## 価格情報の扱い
- 収集段階では最終価格を決めない。
- 表示価格を見つけた場合は、価格種別を必ず分ける。
- `buyback_price_candidate`: 買取価格候補。
- `sales_price_candidate`: 販売価格候補。
- `asking_price_candidate`: 出品価格候補。
- `sold_price_candidate`: 成立価格候補。
- `psa10_price_candidate`: PSA10価格候補。
- `psa9_price_candidate`: PSA9価格候補。
- `price_checked_at`: 価格確認日。
- `price_source_url`: 価格参考URL。
- `price_condition_note`: 状態、傷、白欠け、反り、鑑定有無、未開封、言語、型番などの条件。
- 買取価格と販売価格を同じ項目に入れない。
- 価格が確認できない場合は、空欄にせず `not_checked` と理由を残す。

## 重複確認
- OripaGate内の既存TCGカード記事を確認する。
- 同一カード名、同一型番、同一収録弾、同一slug候補を確認する。
- 同名でも型番違い、レアリティ違い、言語違い、プロモ違いなら、同一記事で扱うべきか別記事候補かをメモする。
- 既存記事がある場合はURLを保存し、新規候補として完了扱いしない。
- 既存記事に買取価格相場が薄い場合は、更新/改善候補として保存する。

## Hub保存
- 収集した候補はlive Hubへ保存する。
- 保存先は site_id=oripagate / workflow_id=oripagate-trading-card-dictionary-ja / content_set=oripagate_trading_card_dictionary / dictionary_set=trading-card。
- 保存時は、候補名、収集元URL、収集元種別、公式/非公式区分、価格種別、確認日、不明点を分ける。
- 保存に失敗した場合は完了にしない。
- 保存後にreadbackし、自分が保存した候補がlive Hubで読めることを確認する。
- readbackできなければ `BLOCKED_HUB_WRITEBACK` または `BLOCKED_HUB_READBACK` として残す。

## 完了条件
- 1〜15件の候補を処理している。
- 0件完了にしていない。
- 候補ごとに収集元URL、収集元種別、公式/非公式区分、カード識別メモ、価格参考候補、確認日、不明点が保存されている。
- 16件以上ある場合は、処理済み最大15件と残件を分けて保存している。
- live Hub readbackで保存内容を確認している。
- 日本語で、処理件数、採用候補、除外候補、残件、次回探索先を短く報告している。

## 完了禁止条件
- 0件処理で完了。
- 16件以上を一度に処理。
- カード以外をカード候補に混ぜる。
- BOX、ショップ、用語、キャンペーンを対象候補にする。
- 公式情報とSNS/ショップ情報を混ぜる。
- 買取価格と販売価格を混ぜる。
- 価格確認日を残さない。
- 収集元URLを残さない。
- Hub保存なしで完了。
- readbackなしで完了。
- Node REPL / node_repl / JavaScript REPL を使う。

## 報告形式
- 報告は日本語で行う。
- `処理件数: n件`
- `採用候補: カード名 / 主な根拠URL / 未確認点`
- `除外候補: カード名 / 除外理由`
- `残件: n件 / 次回探索先`
- `Hub保存: 成功またはBLOCKED理由`
- `readback: 成功またはBLOCKED理由`
- 秘密値、認証値、APIキー、トークン、不要な個人情報は報告に含めない。
PROMPT_END

OripaGate【TCGカード辞書】検査cron automation作成依頼文

PROMPT_START
# OripaGate【TCGカード辞書】検査cron v0.1.83 Search Compass・情報付箋強化版

- kind: cron
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- model: gpt-5.5
- reasoning: highest
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- role: 検査
- daily fire count: 4回/日
- per-run processing limit: 1〜15候補
- schedule intent: 4回/日
- recommended RRULE: 固定値は置かない。既存ACTIVE cronを確認し、発火時間設定ルールに従って決める。

Marker: oripagate-trading-card-inspection-search-compass-v0183-20260613

## 目的
OripaGate【TCGカード辞書】の検査cronは、収集cronが保存したカード候補を確認し、カードの買取価格相場を調べる読者向けの記事にできるかを判定する。Search Compassで検索意図、共起語、関連語、上位構成、必要見出し、読者疑問を確認し、制作工程が迷わない情報付箋を作る。
このcronの仕事は、候補検査、Search Compass実施、公式情報と相場参考の分離、情報付箋作成、production_ready可否判定、Hub保存、readbackまでである。本文執筆、公開、品質判定、訂正、改善案作成は行わない。

## 絶対スコープ
- 対象は OripaGate【TCGカード辞書】の検査だけ。
- 使用する正本は `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate` 配下だけ。
- cron実行cwdは `C:\Users\Public\Documents\LLC358\_codex_cron_threads`。
- AIfan、porn-fun、Invest358、他サイトHUB、TCG店辞書、未開封BOX・パック辞書、用語辞書、キャンペーン記事、オンラインオリパ評価記事は触らない。
- `https://cron.goudou-358.jp/956/` のこの検査cron本文以外を編集しない。
- 旧共有Gate、`_codex_cron_threads`側の古いALL_SITE、`representative-work-gate/SKILL.md`を正本にしない。
- Node REPL / node_repl / JavaScript REPL を使用しない。cron作業時は禁止。
- 秘密値、認証値、APIキー、トークン、不要な個人情報をチャット、Hub、検査メモへ出さない。

## 1日の起動回数
- この検査cronは4回/日で起動する。
- 1回の起動で処理する候補は1〜15件。
- 0件処理で完了禁止。対象候補がない場合は、対象なしの理由、確認したキュー、次回確認先をHubへ保存する。
- 16件以上候補がある場合は最大15件まで検査し、残りは次回タスクへ残す。
- 1候補とは、収集cronがカード単体として保存し、最低限のカード名または公式/ショップ/相場URL候補を持つものを指す。

## 発火時間設定ルール
- テンプレート本文に固定時刻を書かない。実設定時刻はcron作成時に既存ACTIVE cronを確認して決める。
- 既存ACTIVE cronと同時刻および前後10分以内を避ける。
- 4回/日起動なので、朝・昼・夕・夜の広い枠へ分散する。
- 特に同じOripaGate内の重い制作系、記事投稿系、品質確認系cronとの近接を避ける。
- 分は 07 / 13 / 19 / 26 / 34 / 41 / 48 / 55 を優先候補にし、00分固定を避ける。
- 前後10分を空けられない場合でも作成停止しない。5分間隔、1分間隔、最後は重複または同時刻の順に詰める。
- スケジュール混雑だけで作成停止しない。
- 他サイトcronや既存automationを勝手に停止、変更、移動しない。
- 近接や同時刻になった場合は、なぜその時刻にしたかを短く記録する。

## 起動時に読むもの
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron_prompts\current\trading-card-dictionary\README.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron\COLLECTION_SOURCE_MANUAL.md` のTrading Card関連部分
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron\ARTICLE_TYPE_MANUAL.md` のTrading Card Dictionary関連部分
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\INSPECTION_REPORTING_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\ORIPAGATE_ARTICLE_TYPE_AND_DIRECTORY_GATE.md` のTrading Card関連部分
- live Hub `api=status` で site_id=oripagate のみを確認する。
- live Hub `api=agent_pack&site_id=oripagate&workflow_id=oripagate-trading-card-dictionary-ja` を取得し、検査に必要な最新Manual/Rules/Referencesだけを確認する。
- 長いGateやマニュアルを不要に全文再読しない。必要箇所を対象に読む。

## 検査対象
- 収集cronが保存した accepted_0A または検査待ちのTCGカード候補だけを扱う。
- カード単体ではない候補は検査対象外にする。
- BOX、パック、ショップ、用語、キャンペーン、オンラインオリパサービスは対象外。
- 既存公開済み記事と完全重複する候補は、新規制作候補ではなく重複または改善候補として扱う。
- 同名カードが複数ある候補は、型番、収録弾、レアリティ、言語、プロモ種別を分ける。

## Search Compass必須
- 検査cronではSearch Compassを必ず使う。
- Search Compassなしで production_ready 禁止。
- Search Compassなしで `共起語を確認した`、`関連語を調べた`、`上位ページ傾向を見た` と書かない。
- Search Compassが未稼働、接続不可、入力不可、結果取得不可の場合は `BLOCKED_SEARCH_COMPASS` または `SEARCH_COMPASS_UNAVAILABLE` として保存する。
- ブロック時は、使えなかった理由、代替確認、未実施タスク、次回再試行条件をHubへ残す。
- Search Compass結果を本文ノルマにせず、検査付箋、見出し候補、読者疑問、注意点、関連語、制作素材に分ける。

## Search Compassクエリ
- 基本クエリ: `カード名 + 買取価格相場`。
- 追加クエリ: `カード名 買取価格`。
- 追加クエリ: `カード名 買取相場`。
- 追加クエリ: `カード名 値段`。
- 追加クエリ: `カード名 型番`。
- 追加クエリ: `カード名 レアリティ`。
- 追加クエリ: `カード名 PSA10 相場`。
- 追加クエリ: `カード名 PSA9 相場`。
- 追加クエリ: `カード番号 買取`。
- 追加クエリ: `収録弾名 当たりカード`。
- 高額カード、初期カード、限定カード、プロモ、英語版、PSA鑑定品は、型番やレアリティを加えたクエリも使う。
- クエリごとに、実行可否、取得できた語、使うべき見出し、未確認点を残す。

## Search Compassで保存する情報付箋
- `title_terms`: タイトルに出やすい語。例: カード名、別名、買取価格、買取相場、値段、相場、レアリティ、型番、PSA10、買取表、価格推移。
- `description_terms`: 説明文に出やすい語。例: 査定、高価買取、状態、美品、傷、減額、未開封、宅配買取、店頭買取、買取店名。
- `h2_header_terms`: 見出しに出やすい語。例: 買取価格相場、種類別、型番の見分け方、高く売るコツ、査定で減額されるポイント。
- `basic_text_terms`: 本文基本語。例: カードゲーム名、カード、買取価格、買取相場、販売価格、状態、査定、型番、レアリティ、買取店、更新日。
- `extended_text_terms`: 追加語。例: 代表型番、収録弾、レアリティ、PSA鑑定、PSA10、PSA9、状態差、減額率、保存方法、スリーブ、ローダー、日焼け、角スレ。
- `serp_structure_notes`: 上位ページが価格表型かコラム型か、平均的な説明量、表と解説の比率。
- `reader_questions`: 傷ありでも売れるか、型番が分からない時、PSA鑑定前後、買取店とフリマ比較、古いカードまとめ売りなど。
- `outline_seed`: H2/H3候補。
- `seo_title_seed`: SEOタイトル案。カード名 + 買取価格 + 相場を含める。
- `meta_description_seed`: メタディスクリプション案。

## 公式情報の検査
- 公式カードページ、公式カードDB、公式セットリスト、公式商品ページを確認する。
- カード名、カードゲーム、カード種別、カード番号、レアリティ、収録弾、収録弾コード、発売日、メーカー、イラストレーターを確認する。
- 公式ページが見つからない項目は、未確認として残す。
- ショップ、相場ページ、SNSを公式情報として扱わない。
- 公式情報が薄い候補は production_ready にしない。

## カード識別の検査
- カード名だけで同一カードと判断しない。
- カード番号、型番、収録弾、レアリティ、言語、イラスト違い、プロモ種別を確認する。
- 同名で価格差が大きいカードは、どの型番を主対象にするかを情報付箋へ明記する。
- 同名カードを1記事でまとめる場合は、制作で扱う代表型番と補足型番を分ける。
- 別記事にすべきほど検索意図や価格差が違う場合は、別候補としてHubへ戻す。
- カード名の読み、別名、略称、英語名が検索需要に関係する場合は、Search Compass語として保存する。
- 公式DBにない俗称や通称は、公式名とは別に `alias_notes` として保存する。

## 買取価格・相場参考の検査
- 買取表、買取ページ、高価買取リスト、商品ページ、相場参考ページを分けて確認する。
- 買取価格、販売価格、出品価格、成立価格、PSA10価格、PSA9価格を混同しない。
- 買取価格候補には、価格種別、ショップ名、URL、確認日、状態条件を残す。
- 販売価格は買取相場ではない。販売価格しか見つからない場合は、その旨を明記する。
- 価格確認日がない候補は production_ready にしない。
- 買取相場参考元が1つもない候補は production_ready にしない。
- 動的ページで価格が取れない場合は、取得不可理由と再確認先を残す。

## 価格参考元の最低チェック
- 買取価格候補が1つ以上あるか。
- 販売価格候補しかない場合、買取価格不足として保留するか、買取表探索先を追加する。
- 相場参考元に確認日があるか。
- 状態条件が明記されているか。
- 型番またはレアリティが一致しているか。
- 同じカード名でも別型番の価格を混ぜていないか。
- 高額カードでPSA鑑定品と未鑑定品を混ぜていないか。
- 価格表示が税込/税別、買取上限、参考価格、販売価格、出品価格のどれかを分けているか。
- 価格が古い、期間限定、在庫依存、状態依存の場合は注意として残しているか。
- 価格が確認できない場合に、未確認を隠さず `price_not_checked_reason` を残しているか。

## 状態差・PSA文脈の検査
- 傷、白欠け、折れ、へこみ、日焼け、反り、角スレ、保存状態、スリーブ、ローダー、湿気を状態差の注意点として確認する。
- 美品、傷あり、プレイ用、未開封、鑑定済み、PSA10、PSA9を分ける。
- PSA10/PSA9相場があるカードは、未鑑定カードの買取価格と混ぜない。
- PSA文脈が見つからない場合は `psa_market_not_found` として残す。
- 状態差の注意点が全くない候補は production_ready にしない。

## オリパ景品文脈の検査
- オンラインオリパ景品リストや当たり枠に出るカードかを確認する。
- 景品リストの表示名、サービス名、URL、確認日を残す。
- オリパ景品表示は価格根拠ではない。OripaGate relevanceと読者需要の根拠として扱う。
- 型番がない景品表示は、識別不足として残す。

## Search Compass結果の読み方
- 上位ページが価格表中心なら、制作素材には型番別価格表だけでなく、型番の見分け方、状態差、高く売る手順を補うよう付箋を残す。
- 上位ページがコラム中心なら、H2/H3の順序、読者疑問、買取店比較、PSA鑑定の扱いを素材化する。
- 上位ページに不足している観点があれば、OripaGateで補うべき差分として残す。
- Search Compass語を無理に全部入れる指示にしない。重要度を高・中・低で分ける。
- カード名、別名、型番、レアリティ、PSA、買取価格、買取相場、値段、価格推移、買取表は重要度高。
- ショップ名、宅配買取、店頭買取、査定、傷あり、美品、減額、保存方法は重要度中。
- SNS由来の俗称や一時的な流行語は重要度低またはcontext_onlyにする。

## reader_intent_pack
- 読者が知りたい最初の答え: いくらで売れそうか。
- 次に知りたいこと: どの型番か、どのレアリティか、状態でどれだけ変わるか。
- 不安: 傷ありでも売れるか、型番が分からない場合どうするか、PSA鑑定に出すべきか。
- 比較: 店舗買取、宅配買取、フリマ、オークション、販売価格との違い。
- 行動: 複数買取表の確認、写真撮影、スリーブ/ローダー保護、事前査定、状態確認。
- 注意: 買取価格は変動する、上限価格と実査定価格は違う、状態や在庫で下がる。

## 内部重複・内部リンク候補の検査
- OripaGate内の既存TCGカード記事と重複しないか確認する。
- 関連未開封BOX、関連カードゲーム、関連通販・買取店、関連カード記事の内部リンク候補を残す。
- 内部リンク候補は制作素材として渡すだけで、検査cronでは公開リンクの最終品質判定をしない。
- 既存記事がある場合はURLを保存し、新規制作ではなく改善候補か重複除外にする。

## production_ready可否
- production_readyにできる条件:
- Search Compassを実施し、`カード名 + 買取価格相場` 系の結果を保存している。
- 公式カード情報または公式セット情報でカード識別ができる。
- カード名、カードゲーム、カード番号または収録弾、レアリティ候補がある。
- 買取価格または買取相場の参考URL候補がある。
- 価格確認日または確認すべき日付メモがある。
- 状態差の注意点がある。
- PSA10/PSA9文脈が、見つかったか見つからないか明記されている。
- 関連内部リンク候補がある、またはない理由が明記されている。
- 制作で使う情報付箋が揃っている。

## production_material_packの形
- `card_identity`: カード名、カードゲーム、型番、レアリティ、収録弾、公式URL。
- `buyback_market`: 買取価格候補、買取表URL、確認日、状態条件。
- `sales_market`: 販売価格候補、販売ページURL、確認日。買取価格とは分ける。
- `psa_market`: PSA10/PSA9候補、未確認理由、未鑑定との違い。
- `condition_notes`: 傷、白欠け、反り、日焼け、折れ、へこみ、減額条件。
- `search_compass_pack`: query_log、title_terms、description_terms、h2_header_terms、basic_text_terms、extended_text_terms。
- `reader_intent_pack`: 読者疑問、最初に答えるべきこと、比較すべき売り方。
- `outline_seed`: H2/H3候補。制作指示ではなく素材として渡す。
- `internal_link_candidates`: 関連未開封BOX、関連カードゲーム、関連通販・買取店。
- `do_not_claim`: 断定禁止、未確認、混同注意、古い価格注意。

## production_ready禁止条件
- Search Compass未実施。
- Search Compassクエリが `カード名 + 買取価格相場` 系ではない。
- 公式情報がなくカード識別できない。
- ショップ商品ページだけでカードを確定している。
- 買取価格と販売価格を混ぜている。
- 価格確認日がない。
- 買取相場参考元がない。
- 型番・レアリティ・収録弾が曖昧すぎる。
- 状態差の注意点がない。
- SNSや噂だけで価格需要を判断している。
- 既存記事と完全重複している。
- TCGカードカテゴリ以外の候補。

## Hubへ保存する検査素材
- candidate_id
- article_key
- card_name
- card_game
- card_type
- card_number
- rarity
- set_name
- set_code
- release_date_candidate
- manufacturer
- illustrator_candidate
- official_card_url
- official_set_url
- buyback_price_source_urls
- market_reference_urls
- psa10_reference_urls
- psa9_reference_urls
- condition_caution_notes
- oripa_prize_context_urls
- internal_link_candidates
- search_compass_query_log
- search_compass_terms
- reader_intent_pack
- inspection_sticky_notes
- production_material_pack
- production_ready: true/false
- production_ready_reason
- blocked_reason または rejected_reason
- inspected_at_jst

## 情報付箋の最低内容
- 何のカードか。
- どのカードゲームか。
- どの型番・レアリティ・収録弾を主対象にするか。
- 同名別型番をどう扱うか。
- 買取価格相場を調べる読者が最初に確認すべきこと。
- 買取価格と販売価格の違い。
- 状態差で減額されるポイント。
- PSA10/PSA9を扱うべきか。
- 高額買取される理由。
- 高く売るために比較すべき買取元。
- 関連未開封BOX、関連カードゲーム、関連通販・買取店。
- 制作時に避けるべき断定。

## 完了条件
- 1〜15件の候補を検査している。
- 0件完了にしていない。
- Search Compass実施結果またはBLOCKED_SEARCH_COMPASS理由を保存している。
- 候補ごとにproduction_ready可否と理由を保存している。
- production_readyにした候補には、公式情報、買取/相場参考、相場確認日、状態差、PSA文脈、内部リンク候補、情報付箋がある。
- live Hub readbackで保存内容を確認している。
- 日本語で、検査件数、production_ready件数、除外件数、ブロック理由、次回確認先を短く報告している。

## 完了禁止条件
- 0件処理で完了。
- 16件以上を一度に処理。
- Search Compassなしでproduction_ready。
- Search Compass結果なしで共起語や関連語を確認済みにする。
- 買取価格と販売価格を混同したままproduction_ready。
- 価格確認日なしでproduction_ready。
- 公式情報なしでカード識別完了扱い。
- Hub保存なしで完了。
- readbackなしで完了。
- Node REPL / node_repl / JavaScript REPL を使う。

## 検査FAIL名
- `INSPECTION_TASK_COUNT_ZERO_COMPLETED`
- `INSPECTION_TASK_COUNT_OVER_15`
- `SEARCH_COMPASS_REQUIRED_BUT_MISSING`
- `SEARCH_COMPASS_QUERY_NOT_BUY_PRICE_MARKET`
- `PRODUCTION_READY_WITHOUT_SEARCH_COMPASS`
- `CARD_IDENTITY_UNVERIFIED`
- `OFFICIAL_CARD_SOURCE_MISSING`
- `CARD_NUMBER_OR_RARITY_UNVERIFIED`
- `BUYBACK_PRICE_SOURCE_MISSING`
- `PRICE_SOURCE_DATE_MISSING`
- `PRICE_AND_SALES_PRICE_CONFUSED`
- `CONDITION_DIFFERENCE_CAUTION_MISSING`
- `PSA_MARKET_CONTEXT_UNCHECKED`
- `DUPLICATE_PUBLIC_ARTICLE_NOT_CHECKED`
- `INSPECTION_STICKY_NOTES_MISSING`
- `PRODUCTION_MATERIAL_PACK_MISSING`

## 戻し方
- 公式情報不足なら収集へ戻す。
- 買取表、相場参考、価格確認日不足なら収集へ戻す。
- Search Compassが使えない場合は検査内でBLOCKEDにし、production_readyにはしない。
- カード識別はできるが素材が薄い場合は、追加収集が必要なURL種別を指定して保留にする。
- 完全重複なら新規制作へ渡さず、既存URLと重複理由を保存する。

## 報告形式
- 報告は日本語で行う。
- `検査件数: n件`
- `production_ready: n件`
- `除外/保留: n件`
- `Search Compass: 実施済み / BLOCKED理由`
- `主なready候補: カード名 / 根拠 / 未確認点`
- `主な保留候補: カード名 / 保留理由`
- `Hub保存: 成功またはBLOCKED理由`
- `readback: 成功またはBLOCKED理由`
- 秘密値、認証値、APIキー、トークン、不要な個人情報は報告に含めない。
PROMPT_END

OripaGate【TCGカード辞書】制作cron automation作成依頼文

PROMPT_START
# OripaGate【TCGカード辞書】制作cron v0.1.84 3万字以上・機械Gate完走版

- kind: cron
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- model: gpt-5.5
- reasoning: highest
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- role: 制作
- daily fire count: 最大3回/日
- per-run processing limit: 1記事
- schedule intent: 最大3回/日
- recommended RRULE: 固定値は置かない。既存ACTIVE cronを確認し、発火時間設定ルールに従って決める。

Marker: oripagate-trading-card-production-full-gate-v0184-20260613

## 目的
OripaGate【TCGカード辞書】制作cronは、production_readyになったカード候補だけを、買取価格相場を調べる読者向けの公開記事として制作する。カード名、型番、レアリティ、収録弾、現在相場、買取相場、PSA10/PSA9、状態差、相場参考元を読みやすく整理し、読者が「このカードはいくらで売れそうか」「何を確認してから査定に出すべきか」を判断できる記事にする。
このcronの唯一の完了手段は、公開/preview HTMLの実測、機械必須Gate、validator_result.json、FAIL0件、Hub readback、TASK8 handoffの全部を揃えることである。途中で記事を書いただけ、公開しただけ、自己判断PASSだけ、文字数だけ達成、validator未保存、TASK8未作成の状態では絶対に完了しない。

## 絶対スコープ
- 対象は OripaGate【TCGカード辞書】の制作だけ。
- 使用する正本は `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate` 配下だけ。
- cron実行cwdは `C:\Users\Public\Documents\LLC358\_codex_cron_threads`。
- AIfan、porn-fun、Invest358、他サイトHUB、TCG店辞書、未開封BOX・パック辞書、用語辞書、キャンペーン記事、オンラインオリパ評価記事は触らない。
- `https://cron.goudou-358.jp/956/` のこの制作cron本文以外を編集しない。
- 旧共有Gate、`_codex_cron_threads`側の古いALL_SITE、`representative-work-gate/SKILL.md`を正本にしない。
- Node REPL / node_repl / JavaScript REPL を使用しない。cron作業時は禁止。
- 秘密値、認証値、APIキー、トークン、不要な個人情報をチャット、Hub、制作メモ、公開本文へ出さない。

## 1日の起動回数
- この制作cronは最大3回/日で起動する。
- 1回の起動で制作する記事は1記事のみ。
- production_readyが複数あっても、1発火1記事で処理する。
- 対象なしなら記事を書かず、対象なしの理由、確認したキュー、次回確認先をHubへ保存して終了する。
- 対象なし終了はTASK8完了ではない。対象なしレポートとして保存する。

## 発火時間設定ルール
- テンプレート本文に固定時刻を書かない。実設定時刻はcron作成時に既存ACTIVE cronを確認して決める。
- 既存ACTIVE cronと同時刻および前後10分以内を避ける。
- 最大3回/日起動なので、朝・昼・夜または朝・夕・夜へ広く分散する。
- 同一サイト・同一workflowの制作runは同時並行させない。
- 同じOripaGate内の重い制作系、記事投稿系、品質確認系cronとの近接を避ける。
- 分は 07 / 13 / 19 / 26 / 34 / 41 / 48 / 55 を優先候補にし、00分固定を避ける。
- 前後10分を空けられない場合でも作成停止しない。5分間隔、1分間隔、最後は重複または同時刻の順に詰める。
- スケジュール混雑だけで作成停止しない。
- 他サイトcronや既存automationを勝手に停止、変更、移動しない。
- 近接や同時刻になった場合は、なぜその時刻にしたかを短く記録する。

## 起動時に読むもの
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron_prompts\current\trading-card-dictionary\README.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron\ARTICLE_TYPE_MANUAL.md` のTrading Card Dictionary関連部分
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\cron\PRODUCTION_QUALITY_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\ARTICLE_QUALITY_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\QUALITY_VALIDATOR_CONTRACT.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\PRODUCTION_EVIDENCE_AND_SCORING_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\REFERENCE_STYLE_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\JAPANESE_SYNTAX_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\PLAIN_STYLE_AND_QA_BOX_HOTFIX_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\ROLE_FAIL_CONDITION_GATE.md`
- `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate\gates\current\ORIPAGATE_ARTICLE_TYPE_AND_DIRECTORY_GATE.md` のTrading Card関連部分
- live Hub `api=status` で site_id=oripagate のみを確認する。
- live Hub `api=agent_pack&site_id=oripagate&workflow_id=oripagate-trading-card-dictionary-ja` を取得し、制作に必要な最新Manual/Rules/Referencesだけを確認する。
- 長いGateやマニュアルを不要に全文再読しない。FAIL修正時は対象FAILに関係する箇所を読み、必要な場合だけ対象Gateを読む。

## 制作開始条件
- production_ready=true の対象だけ制作する。
- Search Compass実施済みの対象だけ制作する。
- `カード名 + 買取価格相場` 系クエリのSearch Compass結果がない対象は制作禁止。
- `production_material_pack`、`reader_intent_pack`、`inspection_sticky_notes` がない対象は制作禁止。
- 公式カード情報または公式収録情報でカード識別できない対象は制作禁止。
- 買取価格または買取相場の参考URL候補がない対象は制作禁止。
- 価格確認日または確認すべき日付メモがない対象は制作禁止。
- 状態差の注意点がない対象は制作禁止。
- 既存公開記事と完全重複する対象は制作禁止。
- 対象をclaim/lockし、article_key、slug、run_id、roleをHubへ保存してから制作する。

## 記事の文字数
- 公開本文は4,500〜5,500字程度以上を標準にする。
- 5,500字は上限ではない。
- 情報量があるカード、型番差が大きいカード、高額カード、PSA文脈があるカードは6,000〜7,000字以上まで厚くしてよい。
- 4,500字未満は `ARTICLE_UNDER_4500_CHARS` でFAIL。
- 文字数は本文の読者向けコンテンツで数える。ナビ、サイドバー、フッター、JSON-LD、スクリプト、目次、関連記事部品、管理用メモは文字数に入れない。
- 文字数を満たすために同じ説明を水増ししない。型番、状態差、買取表の見方、高く売る準備、Q&Aを厚くする。

## H1とSEOタイトル
- H1はカード名のみ。
- H1に「買取価格」「相場」「値段」「まとめ」「解説」を入れない。
- SEOタイトルはカード名 + 買取価格 + 相場を必ず含める。
- H1とSEOタイトルは必ず変える。
- SEOタイトル例: `青眼の白龍の買取価格相場はいくら?初期・レリーフ・青艶・25thの値段を種類別に解説`。
- H1とSEOタイトルが同一なら `SEO_TITLE_H1_NOT_SEPARATED` でFAIL。
- SEOタイトルに買取価格または相場が欠けたら `SEO_TITLE_BUY_PRICE_MARKET_MISSING` でFAIL。
- H1がカード名だけでなければ `H1_NOT_CARD_NAME_ONLY` でFAIL。

## 辞書プラグイン基本情報表
- dictionary plugin の `trading-card` に紐づく基本情報表を記事作成で必ず使う。
- 手書きHTML表、Markdown表、本文内の箇条書きは代替不可。
- 基本情報表は公開/preview HTMLまたはDirectory Core readbackで確認する。
- 基本情報表が出ていなければ `TRADING_CARD_BASIC_INFO_TABLE_MISSING` でFAIL。
- 必須項目が欠けたら `TRADING_CARD_BASIC_INFO_REQUIRED_FIELD_MISSING` でFAIL。
- 未確認項目は空欄でごまかさず、未確認理由をHubへ残す。

## 基本情報表の必須項目
- カード名
- カードゲーム
- カード種別
- カード番号
- レアリティ
- 収録弾
- 収録弾コード
- 発売日
- メーカー
- イラストレーター
- 現在相場
- 買取相場
- PSA10相場
- PSA9相場
- 状態差の注意点
- 相場参考元
- 相場確認日
- 関連未開封BOX
- 関連カードゲーム
- 関連通販・買取店
- 公式カードページ
- 補足
- 確認日

## リード文の書き方
- リード文は最初に読者の疑問へ答える。
- 読者はカードの買取価格相場を調べている。
- 1文目でカード名と、買取価格相場を見る時の最重要ポイントを出す。
- 2文目で、型番、レアリティ、状態、PSA鑑定、買取表の違いで価格が変わることを示す。
- 3文目で、記事内で確認できる内容を自然に案内する。
- `この記事では` の連発は禁止。
- `〜について解説します` の機械的な言い方は禁止。
- Search Compass、Hub、cron、production_ready、validator、Gate、Taskなどの内部語を公開本文に出さない。
- リード文は短すぎても長すぎても弱い。150〜280字程度を目安にし、カード名、買取価格相場、型番または状態差を自然に含める。
- リード文に買取価格を断定する場合は、確認日と参考元が後続で必ず読めるようにする。

## 右テキストアンカーリンクの書き方
- リード付近または基本情報表の近くに、右寄せのテキストアンカーリンクを1つ以上入れる。
- 右テキストアンカーはボタン風にしすぎず、本文の流れを邪魔しない。
- 外部公式もしくはアフィリエイトリンクは、次のコードで書く。
`<p style="text-align: right;"><span class="badge badge-red">公式</span><b>:<a href="URL" target="_blank" rel="nofollow noopener">サービス・ショップ・カード名</a></b></p>`
- 内部リンクは文中に自然なアンカーテキストとして入れることを優先する。
- 内部リンクで右寄せテキストアンカーを使う場合は、次のコードで書く。
`<p style="text-align: right;"><span class="badge">参考</span><b>:<a href="https://oripagate.jp/example/">関連カードの相場記事を見る</a></b></p>`
- 外部リンクは `target="_blank" rel="nofollow noopener"` を付ける。内部リンクには `target="_blank"` や `rel="nofollow"` を付けない。
- 右寄せテキストアンカーは赤ボタンにしない。赤ボタンリンクを設定してよいのは、記事末尾の辞書プラグイン `trading-card` 基本情報表だけ。
- 右寄せコードから `<p style="text-align: right;">` を落とさない。ラベル、太字、リンクの順番も崩さない。
- 公式カードページがある場合は `公式カード情報を見る` のような自然なラベルにする。
- 買取表を参照する場合は `最新の買取表を確認する` など、外部先で何が確認できるかを明確にする。
- アフィリエイトやPR導線の場合は、表示ルールに従い、読者を誤認させない。
- アンカー文言に `こちら` だけを使わない。
- 価格を保証するような `今すぐ最高額で売れる` などの断定は禁止。
- 内部リンクの場合は、関連未開封BOX、関連カードゲーム、関連通販・買取店の文脈が自然な時だけ使う。
- 公開本文に `導線`、`CTA設計`、`内部リンク候補`、`カテゴリ導線` などの内部語を出さない。
- アンカーリンクは公開/preview HTMLからURLを抽出し、live HTTP 200を確認する。

## 常体語
- 本文は常体で統一する。
- `です`、`ます`、`でしょう`、`できます`、`おすすめです` の混在はFAIL。
- 基本文末は `だ`、`である`、`になる`、`変わる`、`見ておきたい`、`確認したい` など自然な常体にする。
- 命令口調や過度な煽りは避ける。
- `〜となっています`、`〜することができます`、`〜と言えるでしょう` の多用は禁止。
- 読者へ寄り添うが、なれなれしくしない。
- 価格や相場は断定しすぎない。確認日、状態、参考元、上限価格と実査定差を添える。

## 自然文Gate
- 機械的な文章を禁止する。
- AIっぽい文章を禁止する。
- メタ表現を禁止する。
- `本記事では`、`以下で詳しく解説します`、`いかがでしたでしょうか`、`まとめると以下の通りです` のテンプレ連発は禁止。
- `重要です`、`おすすめです`、`ポイントです` の同型反復は禁止。
- 各H2の冒頭で同じ構文を繰り返さない。
- 箇条書きだけで説明を終わらせない。
- 表の直後は、表を読者がどう使えばよいかを文章で補う。
- Search Compass語を不自然に詰め込まない。
- 価格表の数字だけを並べず、型番や状態差の読み方を説明する。
- 読者が査定前に何を確認すべきか、次の行動が分かる文にする。

## 禁止する内部語
- 公開本文に `Hub` を出さない。
- 公開本文に `cron` を出さない。
- 公開本文に `Search Compass` を出さない。
- 公開本文に `production_ready` を出さない。
- 公開本文に `validator` を出さない。
- 公開本文に `Gate` を出さない。
- 公開本文に `TASK8` を出さない。
- 公開本文に `handoff` を出さない。
- 公開本文に `qa-box` を出さない。
- 公開本文に `内部リンク候補`、`導線設計`、`カテゴリ設計`、`辞書セット`、`記事タイプ`、`素材パック` を出さない。
- 管理用の見出し、作業メモ、FAIL名、JSONキー、検査メモを公開本文に出さない。

## 装飾黄金比
- 本文は読みやすさを優先する。
- 装飾は多すぎても少なすぎてもFAIL。
- 装飾黄金比は、通常本文60〜70%、表/リスト10〜15%、装飾BOX10〜15%、Q&A5〜10%、太字/マーカー3〜7%、✅/⚠️などの記号1〜3%を目安にする。
- 装飾BOXは3個以上。必須内訳は、結論BOX1個以上、注意点BOX1個以上、査定前チェックまたは高く売る準備BOX1個以上。
- 装飾BOXには、価格判断、型番確認、状態差、査定前準備など、読者の判断を助ける内容だけを入れる。
- 装飾BOX内に長文を詰め込みすぎない。1BOXあたり2〜5文または3〜6項目を目安にする。
- 表だけ、箇条書きだけ、マーカーだけ、太字だけの装飾は装飾BOX数に数えない。
- 黒太文字+黄色アンダーマーカーは、記事内で特に重要な判断基準に使う。目安は4,500〜5,500字で8〜16箇所、6,000〜7,000字で12〜20箇所。
- 黒太文字+黄色アンダーマーカーは1回につき1フレーズまたは短い1文まで。段落全体、見出し全体、連続する複数文には使わない。
- 赤太文字は、価格誤認、型番違い、偽物リスク、傷による大幅減額など、読者が損をしやすい注意点に限定する。目安は記事全体で3〜6箇所。
- 黒太文字は、型番、レアリティ、買取相場、PSA10相場、状態差などの重要語句を強調する。目安は記事全体で10〜25箇所。
- 赤太文字と黒太文字は、1段落に複数入れすぎない。太字だけで文章を読ませる状態はFAIL。
- ✅は、確認済みの行動、査定前チェック、高く売るための準備、比較時の確認項目に使う。目安は記事全体で3〜7個。
- ⚠️は、減額リスク、型番違い、相場変動、状態差、偽物・レプリカ注意などに使う。目安は記事全体で2〜5個。
- ✅/⚠️の合計は4,500〜7,000字の記事で8〜12個以内を原則にする。多くても本文350字に1個を超えない。
- ✅/⚠️はH1/H2/H3には使わない。本文、装飾BOX、チェックリスト内だけで使う。
- ✅/⚠️を連続で並べない。同じ記号を全項目の先頭に機械的に付ける装飾はFAIL。
- 同じ色、同じBOX、同じ強調、同じ見出しの連発を避ける。
- スマホで読んでも本文の流れが切れないようにする。
- validator_resultには `decoration_box_count`、`black_bold_yellow_marker_count`、`red_bold_count`、`black_bold_count`、`check_icon_count`、`warning_icon_count`、`icon_density_result`、`decoration_balance_result` を記録する。

## KW出現率
- 主KWは `カード名 買取価格 相場` の検索意図。
- H1はカード名だけなので、主KWはSEOタイトル、リード、H2、本文、まとめ、Q&Aで自然に扱う。
- `カード名` は自然に複数回使う。
- `買取価格`、`買取相場`、`相場`、`値段` を分散して使う。
- 同じ語を不自然に連続させない。
- 目安として、カード名は本文全体の1.0〜2.5%程度、買取価格/買取相場/相場の合算は0.8〜2.0%程度に収める。
- 実測で極端に低い場合は、見出しやリードで検索意図が弱い。
- 実測で極端に高い場合は、キーワード詰め込みでFAIL。
- KW出現率はvalidator_result.jsonに保存する。
- KWは読者に必要な文脈で使い、ノルマ消化のために同じ文を増やさない。

## 共起語の使用
- Search Compassの共起語を見出し、本文、Q&A、注意点に自然に反映する。
- 重要語: 買取価格、買取相場、販売価格、値段、型番、レアリティ、状態、査定、美品、傷あり、PSA10、PSA9、買取表、価格推移。
- カードゲーム固有語、収録弾、型番、レアリティ、英語名、略称はカードごとに反映する。
- 共起語を羅列しない。
- 共起語が本文に入っていても、読者に意味が伝わらなければFAIL。
- 共起語の使用状況はvalidator_result.jsonに保存する。

## 関連語の使用
- 関連語は読者の疑問に沿って使う。
- 例: 高価買取、査定、買取店、宅配買取、店頭買取、フリマ、オークション、未開封、限定、プロモ、再録、初期、英語版、青艶、レリーフ、プリシク、25th、保存方法。
- 関連語の中でカードに関係しない語は使わない。
- 関連語はH2/H3、本文、Q&A、まとめに分散する。
- 関連語使用の根拠はSearch Compass結果または検査付箋に基づく。

## H2/H3最低見出し数
- H2は8個以上。
- H3は14個以上。
- Q&A見出しをH2にする場合でも、Q&A内の質問だけでH3数を水増ししない。
- H2は読者の判断順に並べる。
- H2候補: 買取価格相場、主な種類、型番の見分け方、高額買取理由、買取価格が下がる原因、高く売るコツ、店舗買取と宅配買取、よくある質問、まとめ。
- H3候補: レアリティ別、型番別、状態別、PSA別、初期/再録/プロモ別、買取表の見方、査定で減額される点、売る前の準備。
- H4は必要な場合だけ使う。
- 見出しに内部語を入れない。
- 見出しだけで内容が分かるようにする。

## 推奨構成
- H1: カード名。
- リード文。
- 右寄せテキストアンカーリンク。
- H2: カード名の買取価格相場は型番と状態で変わる。
- H3: まず確認すべき型番。
- H3: 買取価格と販売価格の違い。
- H3: 状態とPSA鑑定で価格差が出る理由。
- H2: 主な種類と買取価格相場。
- H3: 代表的な型番。
- H3: 高レアリティ。
- H3: プロモ・限定・初期。
- H3: PSA10/PSA9。
- H2: 型番・レアリティ・収録弾の見分け方。
- H2: 高額買取される理由。
- H2: 買取価格が下がる原因。
- H2: 高く売るコツ。
- H2: 店舗買取と宅配買取の選び方。
- H2: 関連未開封BOX・関連カードゲーム・関連通販買取店。
- H2: よくある質問。
- H2: まとめ。
- 記事末尾: 辞書プラグイン `trading-card` 基本情報表。基本情報表のリンクは赤ボタンのみ設定する。

## qa-box
- Q&Aは5件以上。
- Q&Aは本文内に exact 構造で入れる。
- exact構造: `<details class="qa-box"><summary class="qa-question">質問内容</summary><div class="qa-answer">回答内容</div></details>`。
- FAQ JSON-LD、JavaScript、TOC、関連記事部品、サイドバー、フッター、class数だけはQ&Aに数えない。
- 質問は読者が実際に検索しそうなものにする。
- 例: 傷ありでも売れるか。
- 例: 型番が分からない場合はどうするか。
- 例: PSA鑑定に出してから売るべきか。
- 例: フリマと買取店はどちらが高いか。
- 例: 古いカードをまとめて売ってもよいか。
- 回答は1〜3段落で、断定しすぎず、確認行動を示す。
- Q&Aに内部語を出さない。

## 価格情報の扱い
- 現在相場、買取相場、PSA10相場、PSA9相場を分ける。
- 買取価格と販売価格を混同しない。
- 出品価格と成立価格を混同しない。
- 買取上限価格と実査定価格を混同しない。
- 価格には相場確認日を添える。
- 相場参考元を明記する。
- 価格が確認できない場合は断定しない。
- 古い価格、期間限定買取、在庫依存、状態依存は注意として書く。
- PSA10/PSA9は未鑑定カードとは別の市場として扱う。
- 状態差で価格が下がる理由を説明する。

## 出典と参考元
- 公式カードページは公式情報の根拠。
- 公式セットリストは収録弾や発売情報の根拠。
- TCGショップ商品ページは販売価格や在庫文脈の参考。
- 買取表は買取価格候補の参考。
- 相場参考ページは市場文脈の参考。
- オンラインオリパ景品リストはOripaGate読者との関連文脈。
- SNSは需要や話題の文脈であり、公式事実や価格根拠ではない。
- 出典の役割を混ぜない。
- 外部リンクは必要最小限にする。
- 内部リンクは関連性があるものだけ使う。

## 内部リンク
- 関連未開封BOX。
- 関連カードゲーム。
- 関連通販・買取店。
- 関連カード。
- 関連するオリパ景品文脈。
- 内部リンクは公開/preview HTMLから抽出し、live HTTP 200を確認する。
- 404、410、403、500、timeout、未確認、下書き、preview専用、言語違いはFAIL。
- 公開本文に `内部リンク候補` と書かない。

## 公開前機械必須Gate
- public_url または preview_url がある。
- HTTP 200で取得できる。
- H1がカード名のみ。
- SEOタイトルがカード名 + 買取価格 + 相場を含む。
- H1とSEOタイトルが同一ではない。
- 本文文字数が4,500字以上。
- H2が8個以上。
- H3が14個以上。
- Q&A exact qa-boxが5件以上。
- `trading-card` 基本情報表が出ている。
- 基本情報表の必須項目が欠けていない。
- リード文がある。
- 右テキストアンカーリンクがある。
- スタイルボックスが3個以上。
- 先に結論ボックスがある。
- 注意点ボックスがある。
- 査定前チェックまたは高く売る準備ボックスがある。
- KW出現率が極端ではない。
- 共起語が自然に使われている。
- 関連語が自然に使われている。
- 常体で統一されている。
- 機械的な文章がない。
- AIっぽい文章がない。
- メタ表現がない。
- 内部語が公開本文に出ていない。
- 買取価格と販売価格が混同されていない。
- 価格確認日がある。
- 相場参考元がある。
- 状態差の注意点がある。
- PSA10/PSA9文脈が確認済みまたは未確認理由あり。
- 内部リンクがlive HTTP 200。
- validator_result.jsonが保存されている。
- FAILが0件。

## validator_result.json 必須キー
- article_key
- public_url
- preview_url
- card_name
- h1
- seo_title
- h1_card_name_only
- seo_title_buy_price_market
- seo_title_h1_separated
- body_char_count
- h2_count
- h3_count
- qa_box_count
- lead_present
- right_text_anchor_present
- style_box_count
- conclusion_box_present
- caution_box_present
- pre_assessment_check_box_present
- trading_card_basic_info_table_present
- trading_card_basic_info_missing_fields
- buyback_price_source_present
- price_checked_date_present
- condition_caution_present
- psa_market_context_checked
- kw_density_result
- cooccurrence_terms_used
- related_terms_used
- plain_style_result
- natural_sentence_result
- mechanical_sentence_result
- ai_like_sentence_result
- meta_expression_result
- forbidden_internal_terms_result
- internal_links_checked
- internal_link_http_200_count
- internal_link_failures
- required_failures
- failed_gate_names
- fail_count
- mandatory_public_html_measurement_gate
- task8_handoff_ready
- checked_at_jst

## FAIL名
- `PRODUCTION_WITHOUT_PRODUCTION_READY_TARGET`
- `SEARCH_COMPASS_REQUIRED_BUT_MISSING`
- `SEARCH_COMPASS_QUERY_NOT_BUY_PRICE_MARKET`
- `H1_NOT_CARD_NAME_ONLY`
- `SEO_TITLE_BUY_PRICE_MARKET_MISSING`
- `SEO_TITLE_H1_NOT_SEPARATED`
- `ARTICLE_UNDER_4500_CHARS`
- `H2_MINIMUM_COUNT_MISSING`
- `H3_MINIMUM_COUNT_MISSING`
- `LEAD_PARAGRAPH_MISSING_OR_WEAK`
- `RIGHT_TEXT_ANCHOR_LINK_MISSING`
- `TRADING_CARD_BASIC_INFO_TABLE_MISSING`
- `TRADING_CARD_BASIC_INFO_REQUIRED_FIELD_MISSING`
- `BUYBACK_PRICE_SOURCE_MISSING`
- `PRICE_SOURCE_DATE_MISSING`
- `PRICE_AND_SALES_PRICE_CONFUSED`
- `CONDITION_DIFFERENCE_CAUTION_MISSING`
- `PSA_MARKET_CONTEXT_MISSING`
- `KW_DENSITY_UNMEASURED`
- `KW_STUFFING_FOUND`
- `COOCCURRENCE_TERMS_NOT_USED`
- `RELATED_TERMS_NOT_USED`
- `QA_BOX_EXACT_STRUCTURE_MISSING`
- `STYLE_BOX_MINIMUM_MISSING`
- `DECORATION_BALANCE_FAILED`
- `PLAIN_STYLE_MIXED`
- `MECHANICAL_SENTENCE_FOUND`
- `AI_LIKE_SENTENCE_FOUND`
- `META_EXPRESSION_FOUND`
- `PUBLIC_BODY_INTERNAL_META_LEAK`
- `INTERNAL_LINK_UNVERIFIED`
- `INTERNAL_LINK_NOT_200_FOUND`
- `PUBLIC_HTML_MEASUREMENT_MISSING`
- `VALIDATOR_RESULT_JSON_MISSING`
- `MANDATORY_PUBLIC_HTML_MEASUREMENT_GATE_MISSING`
- `TASK8_HANDOFF_MISSING`
- `REPAIR_LOOP_STOPPED_WITH_REQUIRED_FAILS`

## 修正ループ
- FAILが1件でもある場合は完了禁止。
- FAILが出たら、該当Gate/Manualの必要箇所を確認する。
- 本文、表、リンク、meta、構造、装飾、常体、Q&A、価格表現を修正する。
- 修正後に公開/preview HTMLを再取得する。
- validator_result.jsonを再生成する。
- internal link HTTP 200を再確認する。
- FAIL0件になるまで繰り返す。
- FAIL0件にできない場合はBLOCKED理由、残FAIL、必要な追加素材、次に必要な確認をHubへ保存し、完了とは言わない。
- 修正ループを途中で止めてTASK8へ渡さない。

## TASK8 handoff
- TASK8 handoffが唯一の終了手段。
- TASK8 handoffを作らずに制作完了と言わない。
- TASK8 handoffには article_key、card_name、public_url、preview_url、slug、h1、seo_title、body_char_count、h2_count、h3_count、qa_box_count、basic_info_table_status、price_source_status、validator_result_json_path、fail_count=0、failed_gate_names=[]、internal_link_check_summary、Search Compass summary、KW/cooccurrence/related terms summary、repair_loop_summary、checked_at_jst を入れる。
- TASK8 handoffをHubへ保存する。
- TASK8 handoff保存後にreadbackする。
- readbackできなければ `BLOCKED_HUB_READBACK` として完了禁止。
- TASK8 handoffとreadbackが揃り、FAIL0件で初めて完了。

## Hub保存
- 作業開始時にclaim/lockを保存する。
- 制作素材の読込結果を保存する。
- 本文ドラフトを保存する。
- 公開またはpreview URLを保存する。
- validator_result.json pathを保存する。
- 修正履歴を保存する。
- FAIL0件の確認結果を保存する。
- TASK8 handoffを保存する。
- 完了前にHub readbackする。
- readbackできない場合は完了禁止。

## 報告形式
- 報告は日本語で行う。
- `制作対象: カード名 / article_key`
- `公開URL: URL`
- `本文文字数: n字`
- `H2/H3/Q&A: n/n/n`
- `基本情報表: PASS/FAIL`
- `価格根拠: PASS/FAIL`
- `Search Compass反映: PASS/FAIL`
- `KW/共起語/関連語: PASS/FAIL`
- `内部リンク200: PASS/FAIL`
- `validator_result.json: path`
- `FAIL件数: 0件`
- `TASK8 handoff: readback PASS`
- 秘密値、認証値、APIキー、トークン、不要な個人情報は報告に含めない。

## 具体的な本文チェックリスト
- カード名を初出で正確に書く。
- 別名や略称がある場合は、公式名と区別する。
- 買取価格相場は日付と状態条件を添える。
- 型番が価格差の原因なら、型番確認位置を説明する。
- レアリティが価格差の原因なら、レアリティ別に読者が判断できる文にする。
- 収録弾が複数ある場合は、代表的な収録弾と再録を混ぜない。
- PSA10とPSA9は未鑑定カードの価格と同じ段落で混ぜない。
- 高く売るコツは査定前にできる行動へ落とし込む。
- 店舗買取と宅配買取は、どちらが絶対に高いと断定しない。
- フリマやオークションは手間、手数料、真贋、トラブルを添える。
- まとめは同じ内容の繰り返しではなく、確認順を再提示する。

## 機械的な文章の検出例
- `このカードは人気があります。買取価格も高いです。おすすめです。` のような短文連打は禁止。
- `〜について解説します` を各H2冒頭で繰り返さない。
- `重要なポイントです` を何度も使わない。
- `ぜひ参考にしてください` の汎用締めを乱用しない。
- 価格表を置いたあとに説明なしで次見出しへ進まない。
- Search Compass語をそのまま羅列しない。
- 同じ接続語で段落を始め続けない。
- 表現の主語が全部 `このカードは` にならないよう調整する。
- 根拠のない `高額買取が期待できます` を使わない。
- 読者の行動に結びつかない薄い一般論で埋めない。

## AIっぽい文章の検出例
- `総合的に判断すると` の多用を避ける。
- `一方で、〜という側面もあります` の反復を避ける。
- `ユーザーにとって有益な情報です` のようなメタ説明を避ける。
- `本記事を読むことで理解できます` のような説明を避ける。
- `多くの人におすすめできます` のような根拠のない広げ方を避ける。
- `市場動向を踏まえると` と書くなら、具体的な確認日と参考元を出す。
- `需要が高い傾向です` と書くなら、買取表、検索意図、オリパ景品文脈のどれに基づくかを示す。
- `注意が必要です` の後には、何を確認するかを書く。
- 抽象語を使ったら、カードの型番や状態の具体例に戻す。
- 読者に見えない内部工程を説明しない。

## 公開本文に残してよい言葉と残してはいけない言葉
- 残してよい: 買取価格、買取相場、販売価格、査定、状態、型番、レアリティ、PSA10、PSA9、買取表、確認日。
- 残してよい: 公式カードページ、収録弾、カード番号、発売日、メーカー、イラストレーター。
- 残してよい: 店舗買取、宅配買取、フリマ、オークション、事前査定、スリーブ、ローダー、白欠け、反り。
- 残してはいけない: Hub、cron、Search Compass、production_ready、validator、Gate、TASK8、handoff。
- 残してはいけない: 内部リンク候補、導線設計、カテゴリ設計、辞書セット、記事タイプ、素材パック。
- 残してはいけない: FAIL名、JSONキー、検査メモ、作業ログ、実行ログ。
- 残してはいけない: 代表指示、cron作成依頼、プロンプト、モデル名、reasoning。
- 残してはいけない: APIキー、認証値、トークン、個人情報。
- 残してはいけない: `TODO`、`未作成`、`あとで確認` のような作業中メモ。
- 残してはいけない: `not_checked` を公開本文へそのまま出す。公開本文では自然な日本語で未確認範囲を書く。

## validatorで見る内部リンク
- 本文内のaタグを抽出する。
- 公開URLまたはpreview URLから実際のhrefを取得する。
- 相対URLは絶対URLに変換する。
- oripagate.jp配下の内部リンクを対象にする。
- 最終URLがHTTP 200か確認する。
- リダイレクトがある場合は最終URLを保存する。
- 404、410、403、500、timeoutはFAIL。
- preview専用URLを公開本文の内部リンクとして使わない。
- カテゴリ一覧だけへのリンクで文脈をごまかさない。
- アンカーテキストが内容を示しているか確認する。

## 価格段落の自然化
- 価格表を出す場合、表の前に何を見る表なのかを書く。
- 表の後に、どの行を最初に確認すべきかを書く。
- 価格幅が大きい場合は、型番、状態、PSA、店舗差を説明する。
- 買取価格が見つからない場合は、販売価格や出品価格を買取相場の代わりにしない。
- 価格が古い場合は、現在価格ではなく参考情報として扱う。
- 買取上限価格は満額保証ではないと説明する。
- 状態差が大きいカードは、減額されやすい傷を具体的に書く。
- PSA10は未鑑定カードより高く見えやすいが、鑑定費用と時間に触れる。
- ショップごとの買取価格差は断定せず、複数確認を促す。
- 読者が次に確認すべき行動を段落末に置く。

## TASK8前の最終セルフレビュー
- H1はカード名だけか。
- SEOタイトルはカード名、買取価格、相場を含むか。
- リード文は読者の疑問へ答えているか。
- 右テキストアンカーリンクは自然か。
- 基本情報表はplugin出力か。
- 買取価格と販売価格を混同していないか。
- 価格確認日があるか。
- 状態差の注意点があるか。
- PSA10/PSA9の扱いがあるか、ない理由があるか。
- Q&A exactが5件以上あるか。
- H2/H3数が足りているか。
- KW/共起語/関連語が自然か。
- 内部語が公開本文に残っていないか。
- validator_result.jsonが最新か。
- FAIL0件か。
- TASK8 handoffをreadbackしたか。

## Gate別実測: H1/SEO
- H1はカード名だけで、余計な修飾語を付けない。
- SEOタイトルにはカード名、買取価格、相場の3要素を入れる。
- SEOタイトルに型番やレアリティを入れる場合は、読者が検索する表現にする。
- SEOタイトルを長くしすぎない。長くなる場合は重要語を前半に置く。
- H1とSEOタイトルを同一にしない。
- H1のカード名と基本情報表のカード名を一致させる。
- 別名や英語名はH1ではなく本文で補足する。
- 検索語をSEOタイトルに詰め込みすぎない。
- SEOタイトルの買取価格と相場は、本文で実際に扱う内容と一致させる。
- H1/SEOの検査結果をvalidator_result.jsonに保存する。

## Gate別実測: リード文
- リード文の1文目に読者の疑問へ直接答える。
- カード名を入れるが、カード名の連呼は避ける。
- 買取価格相場を調べる時に最初に見るべき型番や状態を示す。
- 買取価格は変動するため、確認日の重要性を自然に伝える。
- 記事で確認できる範囲を自然に示す。
- リード文で内部語を使わない。
- リード文に根拠のない高額断定を入れない。
- リード文が一般論だけならFAIL。
- リード文がカード固有情報を含まないならFAIL。
- リード文の実測結果をvalidator_result.jsonに保存する。

## Gate別実測: 右テキストアンカー
- 右寄せテキストアンカーが本文上部にあるか確認する。
- リンク先のURLが存在するか確認する。
- アンカーテキストがリンク先の内容を示しているか確認する。
- 公式カードページへのリンクなら公式情報を見る意図が分かる文言にする。
- 買取表へのリンクなら価格保証ではなく確認行動として書く。
- 内部リンクなら文脈に合う関連記事だけを使う。
- 外部リンクが多すぎる場合は読者が迷うため整理する。
- リンク先がHTTP 200でない場合はFAIL。
- リンクがpreview専用ならFAIL。
- 右テキストアンカーの確認結果をvalidator_result.jsonに保存する。

## Gate別実測: 基本情報表
- Directory Coreのtrading-card基本情報表が出ているか確認する。
- カード名がH1と一致するか確認する。
- カードゲームが正しいか確認する。
- カード種別が空欄でないか確認する。
- カード番号が確認できる場合に入っているか確認する。
- レアリティが収録弾と矛盾していないか確認する。
- 収録弾と収録弾コードを分けているか確認する。
- 発売日が未確認なら未確認理由をHubへ残す。
- 現在相場と買取相場を混同していないか確認する。
- PSA10相場とPSA9相場を未鑑定相場と混同していないか確認する。
- 状態差の注意点が具体的か確認する。
- 相場参考元と相場確認日が入っているか確認する。
- 関連未開封BOX、関連カードゲーム、関連通販・買取店が自然か確認する。
- 公式カードページが確認できる場合は入れる。
- 補足と確認日が空欄のまま不自然でないか確認する。

## Gate別実測: 価格表現
- 買取価格を現在相場と同一視しない。
- 販売価格を買取相場として書かない。
- フリマ出品価格を成立価格として書かない。
- 買取上限価格を実査定価格として書かない。
- 状態条件を省略しない。
- 価格確認日を省略しない。
- 相場参考元を省略しない。
- 価格が変動することを自然に書く。
- 期間限定買取や在庫依存の可能性がある場合は注意を書く。
- PSA10価格は未鑑定カードの買取価格と別に扱う。
- PSA9価格も必要なら別に扱う。
- 複数の型番があるカードでは、型番ごとに価格差が出ると説明する。
- 傷ありと美品を同じ価格帯として扱わない。
- 価格が未確認の項目は断定しない。
- 価格表現の実測結果をvalidator_result.jsonに保存する。

## Gate別実測: H2/H3
- H2数が8個以上あるか確認する。
- H3数が14個以上あるか確認する。
- H2が検索意図に沿っているか確認する。
- H3がH2の補足として自然か確認する。
- Q&Aの質問だけでH3数を水増ししない。
- 見出しに内部語を入れない。
- 見出しに同じ語を過剰に繰り返さない。
- 型番、状態、PSA、売り方、減額理由が見出しで拾えているか確認する。
- 見出しが価格一覧だけに偏っていないか確認する。
- 見出し構造の実測結果をvalidator_result.jsonに保存する。

## Gate別実測: Q&A
- details.qa-boxが5件以上あるか確認する。
- summary.qa-questionが質問文になっているか確認する。
- div.qa-answerに回答が入っているか確認する。
- FAQ JSON-LDだけでQ&A数を満たした扱いにしない。
- JavaScript生成だけでQ&A数を満たした扱いにしない。
- 質問が実際の読者疑問に合っているか確認する。
- 回答に価格断定がある場合は確認日や条件を添える。
- 回答に内部語を出さない。
- Q&Aが本文と重複しすぎていないか確認する。
- Q&A実測結果をvalidator_result.jsonに保存する。

## Gate別実測: 常体
- 本文全体の文末を確認する。
- ですます混在を検出する。
- でしょう、できます、していますの多用を確認する。
- 常体に直した時に不自然な硬さが出ていないか確認する。
- 読者への説明が命令口調になっていないか確認する。
- 価格注意の文が断定しすぎていないか確認する。
- 見出し直後の文末が同じになっていないか確認する。
- Q&Aの回答も常体で統一する。
- 引用や固有名詞の範囲は無理に常体化しない。
- 常体実測結果をvalidator_result.jsonに保存する。

## Gate別実測: 装飾
- スタイルボックスが3個以上あるか確認する。
- 先に結論ボックスがあるか確認する。
- 注意点ボックスがあるか確認する。
- 査定前チェックまたは高く売る準備ボックスがあるか確認する。
- 表だけを装飾として数えていないか確認する。
- 太字やマーカーだけを装飾として数えていないか確認する。
- 装飾が多すぎて本文が読みにくくないか確認する。
- スマホで装飾が連続しすぎないか確認する。
- 装飾内に長すぎる文章を入れていないか確認する。
- 装飾実測結果をvalidator_result.jsonに保存する。

## Gate別実測: KW出現率
- カード名の出現数を数える。
- 買取価格の出現数を数える。
- 買取相場の出現数を数える。
- 相場の出現数を数える。
- 値段の出現数を数える。
- 型番の出現数を数える。
- PSA10とPSA9の出現数を数える。
- カード名が少なすぎる場合は、読者が何のページか分かりにくい。
- カード名が多すぎる場合は、詰め込み感が出る。
- 買取価格系の語が少なすぎる場合は検索意図が弱い。
- 買取価格系の語が多すぎる場合はKW詰め込みでFAIL。
- 出現率をvalidator_result.jsonに保存する。

## Gate別実測: 共起語と関連語
- Search Compassのtitle_termsが自然に使われているか確認する。
- description_termsが本文やQ&Aに自然に入っているか確認する。
- h2_header_termsが見出しに反映されているか確認する。
- basic_text_termsが本文全体に自然に分散しているか確認する。
- extended_text_termsがカード固有の説明に使われているか確認する。
- 使う必要のない関連語を無理に入れていないか確認する。
- 共起語の羅列になっていないか確認する。
- 関連語が読者の判断材料になっているか確認する。
- Search Compassにない語を使う場合は、検査素材や公式情報の根拠があるか確認する。
- 共起語と関連語の実測結果をvalidator_result.jsonに保存する。

## Gate別実測: メタ表現
- `この記事では` の多用を確認する。
- `以下で解説します` の多用を確認する。
- `本記事を読むことで` を確認する。
- `まとめると以下の通り` を確認する。
- `いかがでしたでしょうか` を確認する。
- 作業者目線の説明が残っていないか確認する。
- 読者に見えない内部工程が残っていないか確認する。
- 管理用ラベルが残っていないか確認する。
- メタ表現があれば自然文に直す。
- メタ表現検出結果をvalidator_result.jsonに保存する。

## Gate別実測: 内部語
- Hubが公開本文に残っていないか確認する。
- cronが公開本文に残っていないか確認する。
- Search Compassが公開本文に残っていないか確認する。
- production_readyが公開本文に残っていないか確認する。
- validatorが公開本文に残っていないか確認する。
- Gateが公開本文に残っていないか確認する。
- TASK8が公開本文に残っていないか確認する。
- handoffが公開本文に残っていないか確認する。
- 内部リンク候補や導線設計が公開本文に残っていないか確認する。
- 内部語検出結果をvalidator_result.jsonに保存する。

## Gate別実測: TASK8 handoff
- TASK8 handoffが作成されているか確認する。
- FAIL0件が記録されているか確認する。
- validator_result.json pathが入っているか確認する。
- 公開URLまたはpreview URLが入っているか確認する。
- H1とSEOタイトルが入っているか確認する。
- 本文文字数、H2数、H3数、Q&A数が入っているか確認する。
- 基本情報表の確認結果が入っているか確認する。
- 内部リンク確認結果が入っているか確認する。
- 修正ループの結果が入っているか確認する。
- Hub readbackがPASSしているか確認する。

## 制作必須Gate詳細マトリクス
- 制作対象のarticle_keyがHub上の対象と一致している。
- 制作対象のcard_nameがH1、基本情報表、TASK8 handoffで一致している。
- slugに日付、作業ID、run_id、内部管理語が入っていない。
- 公開カテゴリがTCGカードカテゴリである。
- dictionary_setがtrading-cardである。
- 記事本文がカード単体の記事として成立している。
- ショップ紹介記事になっていない。
- BOX紹介記事になっていない。
- 用語解説記事になっていない。
- キャンペーン記事になっていない。
- カードゲーム全体の解説に広がりすぎていない。
- H1直後に読者が何を確認できるか分かる。
- リード文にカード名が自然に入っている。
- リード文に買取価格相場の検索意図が入っている。
- リード文に状態差または型番差への注意が入っている。
- 右テキストアンカーリンクの位置が不自然ではない。
- 右テキストアンカーリンクのラベルがリンク先と一致している。
- 右テキストアンカーリンクが価格保証表現になっていない。
- 基本情報表の前後に本文の流れがある。
- 基本情報表だけで説明を終わらせていない。
- 現在相場と買取相場を別々に説明している。
- 買取相場を販売価格から推測しただけで断定していない。
- PSA10相場をPSA9相場と混同していない。
- PSA相場を未鑑定カードの買取価格と混同していない。
- 状態差の注意点に傷、白欠け、反り、日焼けのいずれかを含めている。
- 査定前に確認する行動が本文に入っている。
- 複数の買取表を確認する必要性が自然に書かれている。
- 型番が分からない読者への案内がある。
- レアリティ違いへの案内がある。
- 収録弾違いへの案内がある。
- 限定、プロモ、初期、再録が関係する場合は混同していない。
- 英語版や海外版が関係する場合は日本語版と混同していない。
- オリパ景品文脈を価格根拠として扱っていない。
- オリパ景品文脈はOripaGate読者向けの関連情報として扱っている。
- 内部リンクが自然な文脈にある。
- 外部リンクが必要最小限に抑えられている。
- 外部リンクのアンカーテキストが煽りではない。
- アフィリエイトやPR導線がある場合は誤認を生まない。
- 本文内に作業メモが残っていない。
- 本文内に未置換の仮タイトルが残っていない。
- 本文内にTODOが残っていない。
- 本文内にnot_checkedがそのまま出ていない。
- 本文内に価格未確認を隠す表現がない。
- 本文内に根拠のないランキング表現がない。
- 本文内に根拠のない最高額表現がない。
- 本文内に根拠のない絶対おすすめ表現がない。
- 本文内に読者を急がせる過剰な煽りがない。
- 本文内にカードの真贋を断定しすぎる表現がない。
- 本文内にショップの買取保証を断定する表現がない。
- 本文内に買取価格を保証する表現がない。
- 本文内にフリマ価格を相場として断定する表現がない。
- 本文内に古い価格を現在価格として書いていない。
- 本文内に確認日が古い場合の注意がある。
- 本文内に状態が悪い場合の減額可能性がある。
- 本文内に高く売る準備が具体的にある。
- 本文内にスリーブやローダーなど保護の話が自然にある。
- 本文内に日焼けや湿気への注意が自然にある。
- 本文内に店舗買取と宅配買取の違いが自然にある。
- 本文内に査定前写真や事前確認の話が必要に応じてある。
- 本文内に買取表の更新頻度への注意がある。
- 本文内に在庫状況で価格が変わる可能性がある。
- 本文内に需要や再録で相場が変わる可能性がある。
- H2ごとに読者が得る情報が違う。
- H3がH2の焼き直しになっていない。
- 見出し直後の本文が見出しの言い換えだけで終わっていない。
- 表の前に表の意味が説明されている。
- 表の後に表の読み方が説明されている。
- Q&Aが本文の単純コピペではない。
- Q&Aの回答が短すぎない。
- Q&Aの回答が長すぎて本文本体と重複しない。
- Q&Aに価格確認日や状態条件への注意がある。
- まとめがリード文の言い換えだけではない。
- まとめに型番、状態、複数査定の確認順がある。
- まとめに内部語がない。
- まとめに過剰な売り込みがない。
- KW出現率がvalidatorで測定されている。
- 共起語使用がvalidatorで測定されている。
- 関連語使用がvalidatorで測定されている。
- 常体統一がvalidatorで測定されている。
- 自然文判定がvalidatorで測定されている。
- 機械的文章判定がvalidatorで測定されている。
- AIっぽい文章判定がvalidatorで測定されている。
- メタ表現判定がvalidatorで測定されている。
- 内部語漏れ判定がvalidatorで測定されている。
- 公開本文文字数がvalidatorで測定されている。
- H2数がvalidatorで測定されている。
- H3数がvalidatorで測定されている。
- qa-box数がvalidatorで測定されている。
- 基本情報表の有無がvalidatorで測定されている。
- 基本情報表の欠落項目がvalidatorで測定されている。
- 内部リンクHTTP 200がvalidatorで測定されている。
- 右テキストアンカーリンクがvalidatorで測定されている。
- 装飾ボックス数がvalidatorで測定されている。
- 価格確認日がvalidatorで測定されている。
- 相場参考元がvalidatorで測定されている。
- 状態差注意がvalidatorで測定されている。
- PSA文脈がvalidatorで測定されている。
- required_failuresが空配列である。
- failed_gate_namesが空配列である。
- fail_countが0である。
- mandatory_public_html_measurement_gateがPASSである。
- task8_handoff_readyがtrueである。
- TASK8 handoffのreadbackが成功している。
- Hub readbackでvalidator_result_json_pathが読める。
- Hub readbackでpublic_urlが読める。
- Hub readbackでFAIL0件が読める。
- Hub readbackでTASK8 handoffが読める。
- ここまで揃うまで制作cronは完了しない。

## 修正ループ詳細マトリクス
- FAILがH1なら、H1をカード名だけに戻す。
- FAILがSEOタイトルなら、カード名、買取価格、相場を含む形へ直す。
- FAILがH1/SEO同一なら、H1はカード名だけ、SEOは検索意図入りへ分離する。
- FAILが文字数なら、型番差、状態差、買取表の読み方、Q&Aを自然に増やす。
- FAILがH2不足なら、読者の判断順にH2を追加する。
- FAILがH3不足なら、H2配下に具体的な確認ポイントを追加する。
- FAILがリード文なら、読者の疑問へ直接答えるリードに書き換える。
- FAILが右テキストアンカーなら、公式カードページまたは自然な確認リンクを追加する。
- FAILが基本情報表なら、trading-cardのplugin出力を確認して修正する。
- FAILが基本情報表の項目不足なら、未確認理由をHubへ残し、可能な範囲で項目を埋める。
- FAILが買取価格根拠不足なら、買取表または買取ページの参考元を追加する。
- FAILが価格確認日不足なら、確認日を追加する。
- FAILが価格混同なら、買取価格、販売価格、出品価格、成立価格を分けて書き直す。
- FAILが状態差不足なら、傷、白欠け、反り、日焼け、角スレなどを追記する。
- FAILがPSA文脈不足なら、PSA10/PSA9の扱いまたは未確認理由を追加する。
- FAILがKW不足なら、リード、見出し、まとめに自然な買取価格相場語を追加する。
- FAILがKW過多なら、同じ語の繰り返しを別表現へ分散する。
- FAILが共起語不足なら、Search Compass結果から読者に必要な語だけ自然に追加する。
- FAILが関連語不足なら、売り方、状態、買取店、PSA、型番の文脈に追加する。
- FAILがqa-box不足なら、読者疑問に基づくQ&Aを追加する。
- FAILがqa-box構造なら、details、summary、divのexact構造へ直す。
- FAILが装飾不足なら、先に結論、注意点、査定前チェックのボックスを追加する。
- FAILが装飾過多なら、箱を減らして通常本文に戻す。
- FAILが常体混在なら、ですます調を常体へ直す。
- FAILが機械的文章なら、カード固有の型番、状態、価格確認行動へ書き換える。
- FAILがAIっぽい文章なら、抽象語を減らして具体的な確認ポイントへ戻す。
- FAILがメタ表現なら、読者に見えない説明を削る。
- FAILが内部語漏れなら、Hub、cron、Search Compass、validator、TASK8などを公開本文から削る。
- FAILが内部リンク未確認なら、公開HTMLからリンクを抽出してHTTP 200を確認する。
- FAILがリンク404なら、リンクを差し替えるか削除する。
- FAILがpreview専用リンクなら、公開URLへ差し替える。
- FAILが外部リンク過多なら、読者に必要なリンクだけ残す。
- FAILが表だけ記事なら、表の読み方と判断ポイントを本文で補う。
- FAILが箇条書き過多なら、重要箇所を自然文へ戻す。
- FAILが価格断定なら、確認日、状態、参考元、変動可能性を入れる。
- FAILが高額煽りなら、根拠のある価格文脈へ直す。
- FAILがショップ断定なら、複数確認の必要性を添える。
- FAILがフリマ断定なら、手数料やトラブル可能性を添える。
- FAILが公式情報不足なら、公式カードページや公式セット情報を補う。
- FAILがカード識別曖昧なら、型番、収録弾、レアリティを追記する。
- FAILが同名別型番混同なら、記事内で型番差を分ける。
- FAILがPSA混同なら、鑑定品と未鑑定品を分ける。
- FAILがまとめ弱いなら、型番、状態、複数査定の確認順で締める。
- FAILがTASK8不足なら、必要項目を埋めてHubへ保存する。
- FAILがTASK8 readback不足なら、readbackを実行する。
- FAILがvalidator古いなら、最新公開/preview HTMLで再生成する。
- FAILが修正後未測定なら、再測定してから判断する。
- FAILが残る場合は、完了せず修正ループへ戻る。
- FAILを無視して手動PASSにしない。
- FAIL名を削ってPASSにしない。
- validator_result.jsonの値だけを書き換えてPASSにしない。
- 公開HTMLを見ずにPASSにしない。
- プレビューだけで公開URL確認済みにしない。
- 前記事のvalidator_resultを流用しない。
- 前記事の内部リンク結果を流用しない。
- 前記事の基本情報表結果を流用しない。
- 前記事のSearch Compass結果を流用しない。
- 前記事のTASK8 handoffを流用しない。
- 修正履歴には何を直したかを書く。
- 修正履歴にはどのFAILが消えたかを書く。
- 修正履歴には残FAILがある場合の理由を書く。
- 修正履歴には再測定時刻を書く。
- 修正履歴にはvalidator_result.jsonの保存先を書く。
- TASK8 handoffには最終FAIL0件を明記する。
- TASK8 handoffには公開URLを明記する。
- TASK8 handoffには本文文字数を明記する。
- TASK8 handoffにはH2/H3/Q&A数を明記する。
- TASK8 handoffには基本情報表PASSを明記する。
- TASK8 handoffには内部リンクHTTP 200を明記する。
- TASK8 handoffにはKW/共起語/関連語の実測結果を明記する。
- TASK8 handoffには常体、自然文、内部語漏れなしを明記する。
- TASK8 handoffにはvalidator_result_json_pathを明記する。
- TASK8 handoffにはreadback結果を明記する。
- TASK8 handoffが欠けた状態では制作cronは未完了である。
- TASK8 handoffを作成してもreadbackできなければ未完了である。
- TASK8 handoffがreadbackでき、FAIL0件で初めて完了である。

## 制作完了前の最終確認表
- 最終確認1: 対象カード名が制作素材と一致している。
- 最終確認2: H1がカード名のみである。
- 最終確認3: SEOタイトルがカード名、買取価格、相場を含む。
- 最終確認4: H1とSEOタイトルが別である。
- 最終確認5: リード文がカード固有の買取価格相場意図に答えている。
- 最終確認6: 右テキストアンカーリンクがある。
- 最終確認7: 右テキストアンカーリンクがHTTP 200である。
- 最終確認8: trading-card基本情報表が表示されている。
- 最終確認9: 基本情報表の必須項目欠落がない。
- 最終確認10: 現在相場と買取相場を分けている。
- 最終確認11: PSA10相場とPSA9相場を分けている。
- 最終確認12: 状態差の注意点がある。
- 最終確認13: 相場参考元がある。
- 最終確認14: 相場確認日がある。
- 最終確認15: 公式カードページまたは公式収録情報の根拠がある。
- 最終確認16: 本文文字数が4,500字以上である。
- 最終確認17: 5,500字を上限として扱っていない。
- 最終確認18: H2が8個以上である。
- 最終確認19: H3が14個以上である。
- 最終確認20: qa-box exactが5件以上である。
- 最終確認21: 先に結論ボックスがある。
- 最終確認22: 注意点ボックスがある。
- 最終確認23: 査定前チェックまたは高く売る準備ボックスがある。
- 最終確認24: 装飾が過剰ではない。
- 最終確認25: KW出現率が測定済みである。
- 最終確認26: KW詰め込みがない。
- 最終確認27: 共起語が自然に使われている。
- 最終確認28: 関連語が自然に使われている。
- 最終確認29: 常体が統一されている。
- 最終確認30: 機械的な文章がない。
- 最終確認31: AIっぽい文章がない。
- 最終確認32: メタ表現がない。
- 最終確認33: Hubなどの内部語がない。
- 最終確認34: cronなどの内部語がない。
- 最終確認35: Search Compassなどの内部語がない。
- 最終確認36: validatorなどの内部語がない。
- 最終確認37: TASK8などの内部語が公開本文にない。
- 最終確認38: 買取価格を保証していない。
- 最終確認39: 販売価格を買取価格として扱っていない。
- 最終確認40: 出品価格を成立価格として扱っていない。
- 最終確認41: 古い価格を現在価格として扱っていない。
- 最終確認42: 買取上限価格を実査定価格として扱っていない。
- 最終確認43: 内部リンクがHTTP 200である。
- 最終確認44: preview専用リンクが公開本文にない。
- 最終確認45: 404リンクがない。
- 最終確認46: 外部リンクが必要最小限である。
- 最終確認47: 表の前後に説明がある。
- 最終確認48: 箇条書きだけで終わる節がない。
- 最終確認49: まとめに確認順がある。
- 最終確認50: Q&Aに実用的な回答がある。
- 最終確認51: validator_result.jsonが生成済みである。
- 最終確認52: validator_result.jsonが最新HTMLに基づく。
- 最終確認53: mandatory_public_html_measurement_gateがPASSである。
- 最終確認54: required_failuresが空である。
- 最終確認55: failed_gate_namesが空である。
- 最終確認56: fail_countが0である。
- 最終確認57: repair_loop_summaryが保存されている。
- 最終確認58: public_urlが保存されている。
- 最終確認59: validator_result_json_pathが保存されている。
- 最終確認60: TASK8 handoffが保存されている。
- 最終確認61: TASK8 handoffをreadbackしている。
- 最終確認62: Hub readbackでFAIL0件が確認できる。
- 最終確認63: Hub readbackでTASK8 handoffが確認できる。
- 最終確認64: 報告に秘密値が含まれていない。
- 最終確認65: 報告に不要な個人情報が含まれていない。
- 最終確認66: ここまでの確認が1つでも欠けたら完了しない。
- 最終確認67: 公開本文の最初から最後まで、読者がカードを売る前に何を確認するかが一貫している。
- 最終確認68: 価格を見た読者が型番確認へ進める。
- 最終確認69: 型番を見た読者が状態確認へ進める。
- 最終確認70: 状態を見た読者が買取表比較へ進める。
- 最終確認71: 買取表を見た読者が査定前準備へ進める。
- 最終確認72: 査定前準備を見た読者が店舗買取または宅配買取の選択へ進める。
- 最終確認73: 店舗買取と宅配買取の選択に、断定ではなく判断材料がある。
- 最終確認74: 高額カードの場合、持ち運びや発送時の保護にも触れている。
- 最終確認75: 傷ありカードの場合、売れないと断定せず減額可能性として説明している。
- 最終確認76: 型番不明の場合、カード番号や収録弾の確認方法を示している。
- 最終確認77: PSA鑑定について、鑑定に出すべきと断定せず費用と時間にも触れている。
- 最終確認78: フリマ比較について、手数料、発送、真贋、トラブルの判断材料を含めている。
- 最終確認79: 価格表の数字だけを読ませず、どの条件で上下するかを文章で補っている。
- 最終確認80: すべての確認結果がTASK8 handoffに要約されている。
- 最終確認81: TASK8 handoff以外の完了宣言をしていない。
- 最終確認82: TASK8 handoff readback前に完了報告をしていない。
- 最終確認83: FAIL0件の根拠がvalidator_result.jsonとHub readbackの両方にある。
- 最終確認84: 代表向け報告は短く、対象記事、公開URL、FAIL0、TASK8 readbackだけを中心にする。
- 最終確認85: 追加で直すべきことが残っている場合は完了ではなくBLOCKEDとして残す。
- 最終確認86: 制作cronは記事制作からTASK8 handoffまでを完走する役割であり、途中停止を成功扱いしない。
- 最終確認87: validator_result.jsonのchecked_at_jstが今回runの時刻になっている。
- 最終確認88: 古いvalidator_result.jsonを使い回していない。
- 最終確認89: 公開URLのreadbackとHubのreadbackが同じ記事を指している。
- 最終確認90: TASK8 handoff内の公開URL、H1、SEOタイトル、文字数がvalidator_result.jsonと一致している。
- 最終確認91: ここまで一致して初めて制作cronの終了条件を満たす。
- 最終確認92: 一致しない項目が1つでもあれば再測定し、FAIL0件になるまで修正を続ける。
- 最終確認93: 3万字以上の制作cron本文として、制作開始条件、本文作成、公開/preview確認、validator_result.json、FAIL0件、TASK8 handoff、readbackまでが同じ本文内で読める。
- 最終確認94: 制作cron本文の文字数は抽出方法で多少揺れるため、公開読み戻しで3万字を十分に超える余裕を持たせる。
- 最終確認95: 制作cronに不要な収集専用作業、検査専用作業、訂正専用作業、改善専用作業を混ぜず、制作に必要な入力確認と制作完了条件だけを書く。
- 最終確認96: 代表がここに明記していない必須Gateでも、OripaGate正本Gateと制作対象Gateで必須ならvalidator_result.jsonとFAIL0確認の対象に含める。
- 最終確認97: TASK8 handoffを唯一の終了手段とし、記事作成、公開、測定、修正のどれか一部だけで終了しない。


## Cocoon装飾BOXの書き方(リリエ119/114実例準拠)
Marker: oripagate-trading-card-cocoon-box-examples-v0186-20260613

- 制作第一号 `https://oripagate.jp/lillie-119-114-gx-battle-boost/` のCocoon装飾BOX使用例を基準にする。
- 装飾BOXはCocoonのHTMLクラス付きBOXとして書く。単に `【先に結論】` と太字にしただけ、箇条書きにしただけ、表にしただけでは装飾BOXとして数えない。
- 記事には最低3種類のCocoon装飾BOXを入れる。結論BOX、注意BOX、査定前チェックBOXを必須にする。

### 結論BOX
- リード直後または最初の価格H2の直下に、次の結論BOXを入れる。

```html
<div class="information-box conclusion-box">
  <p><b>【先に結論】</b></p>
  <p>✅ カード名は、収録弾・カード番号・レアリティで相場が大きく変わる。</p>
  <p>✅ 買取価格を見る時は、買取表の上限だけでなく、状態、型番、鑑定有無を同時に確認する。</p>
  <p>⚠️ 販売価格や出品価格をそのまま買取価格として扱うと、査定額の見込みを誤りやすい。</p>
</div>
```

### 注意BOX
- 価格表、相場比較、PSA相場の近くに、次の注意BOXを入れる。

```html
<div class="alert-box caution-box">
  <p><b>価格を見る時の注意点</b></p>
  <p>⚠️ 買取表の上限価格は、満額査定を保証する数字ではない。</p>
  <p>⚠️ 傷あり、折れ、へこみ、強い反りがある場合は、高額カードでも大きく減額される可能性がある。</p>
  <p>⚠️ PSA10相場は鑑定済みカードの値段であり、未鑑定カードの買取相場とは別に見る。</p>
</div>
```

### 査定前チェックBOX
- 高く売るコツ、査定前準備、発送前確認の近くに、次の査定前チェックBOXを入れる。

```html
<div class="memo-box precheck-box">
  <p><b>査定前チェック</b></p>
  <p>✅ カード番号、レアリティ、収録弾が記事対象と一致していることを確認する。</p>
  <p>✅ 表裏の白欠け、角スレ、反り、日焼けを写真で残す。</p>
  <p>✅ 買取表と販売ページを同じ確認日で見比べる。</p>
  <p>⚠️ 梱包時はスリーブ、ローダー、厚紙、防水袋を使い、輸送中の折れを避ける。</p>
</div>
```

- Cocoon装飾BOXは `information-box conclusion-box`、`alert-box caution-box`、`memo-box precheck-box` のclass名を公開HTMLで確認する。
- validator_resultには `cocoon_box_count`、`cocoon_box_classes`、`conclusion_box_present`、`caution_box_present`、`precheck_box_present` を記録する。
- 公開/preview HTMLで上記3classが確認できない場合はFAIL。公開本文に見出しだけ残っていてCocoon BOX化されていない場合もFAIL。

## 2026-06-17 最新追記: 制作本文は敬体Strict

Marker: `oripagate-production-polite-style-strict-20260617`

この追記は、この制作cronが作る OripaGate `https://oripagate.jp/` の公開記事本文に適用する。既存本文・過去追記・既存指示は消さず、文体についてはこの最新追記を優先する。

制作cronは、公開記事本文を自然な敬体で書く。リード文、本文段落、Cocoon/style BOX本文、Q&Aの質問・回答、まとめ文、注意喚起文は「です・ます」調で統一する。過去の文体指示や古いFAIL名が同じ制作cron本文内に残っている場合でも、2026-06-17以降は敬体Strictを最新優先ルールとして扱い、常体の「だ・である」調が本文に混在する場合はFAILにする。さらに、制作cronは本文作成、自己検査、validator_result保存、公開/preview HTML読み戻し、TASK8 handoffの全工程でこの敬体Strictを同じ基準として使う。検査名、古いファイル名、旧Gate名にplain系の語が残る場合でも、読者に見える本文の要求は敬体である。修正時は語尾だけを機械的に置き換えず、主語述語、読者目線、注意喚起、Q&A回答、まとめの自然さを読み直し、違和感のある日本語を残さない。加えて、制作cronは公開前に、リード文、各H2直下の導入文、H3本文、Cocoon/style BOX本文、✅/⚠️の説明文、Q&A回答、まとめ、CTA前後文を個別に読み返す。確認時は `polite_style_gate`、`lead_polite_style_pass`、`body_polite_style_pass`、`qa_polite_style_pass`、`box_polite_style_pass`、`natural_polite_japanese_pass`、`polite_style_violation_count` をvalidator_resultへ残す。語尾だけが丁寧でも、文脈が薄い、同じ語尾が続く、説明が不自然、検索意図から外れる、読者への注意喚起が命令調に寄る、公式確認が必要な箇所を断定しすぎる、Q&A回答が短すぎる、まとめが作業報告のように見える場合はPASSにしない。本文は読者がそのまま判断材料として読める自然な敬体へ直してから公開する。見出しは別ルールどおり敬体にせず、名詞句・問い・短い説明句で自然に作る。

敬体Strictの追加確認として、制作cronは公開前に本文全体を「読者が検索から来て、そのまま判断できる文章か」という観点で再読する。特に、価格、相場、評判、口コミ、使い方、注意点、売り時、向いている人、向いていない人、公式確認が必要な箇所では、断定しすぎない敬体と、読者を迷わせない説明を両立する。文末だけを整えても、途中の接続が不自然、同じ表現の反復、箇条書きの説明不足、Q&A回答の薄さ、BOX本文の命令調、まとめの作業報告化がある場合は修正対象にする。検査・制作・高品質チェック・訂正・改善ハンドオフのいずれでも、公開記事本文に対する最終要求は自然な敬体であり、見出しだけは非敬体の自然な見出しとして分離する。

制作cronの最終自己検査では、本文の各段落について「誰に向けた説明か」「何を判断できるか」「公式確認が必要な点はどこか」「読者が次に何を見ればよいか」を確認する。敬体であっても、主語が抜けている文、抽象的な一般論、根拠と結論がつながらない文、同じ助詞や語尾の連続、過度な断定、内部作業の説明に見える文は公開本文へ残さない。修正した場合は、どの段落を自然な敬体へ直したかをvalidator_resultまたは修正メモへ残し、読み戻し後の公開HTMLでも同じ文体になっていることを確認する。

常体の「だ」「である」調、常体敬体混在、語尾だけを置換した不自然な敬体、機械的で語彙力のない敬体が公開本文に残る場合はFAILである。公式引用、表ラベル、辞書プラグイン項目名、固有名詞、商品名、カード名、サービス名、URL、コード、validator_resultのキー名、Hub内部キーは例外とする。

公開/preview HTMLを読み戻し、`polite_style_gate=PASS`、`plain_style_mixed_count`、`polite_style_violation_count`、`lead_polite_style_pass`、`body_polite_style_pass`、`qa_polite_style_pass`、`box_polite_style_pass`、`natural_polite_japanese_pass` をvalidator_resultに記録する。常体混在や不自然な敬体が残る場合、制作cronは同じrun内で修正し、FAIL0件になるまで完了してはいけない。

## 2026-06-17 追記: 見出しは敬体にしない

Marker: `oripagate-production-heading-no-polite-style-20260617`

敬体Strictは公開本文、リード文、本文段落、Q&A回答、BOX本文、まとめ、注意喚起文に適用する。ただし、H1/H2/H3/H4などの見出しには「です・ます」調を使わない。見出しを敬体にすると不自然になるためである。

見出しは、検索意図と記事構造が分かる自然な名詞句・問い・短い説明句にする。例: `買取価格相場と売り時`、`高く売れる未開封状態`、`口コミで見る注意点`、`よくある質問`。`買取価格相場です`、`売り時を解説します`、`注意点があります` のような敬体見出しはFAILである。

validator_resultには、必要に応じて `heading_polite_style_violation_count` と `heading_no_polite_style_pass` を残す。本文は敬体、見出しは自然な非敬体見出し、という分離を守る。

PROMPT_END

OripaGate【TCGカード辞書】高品質チェックcron automation作成依頼文

PROMPT_START
# OripaGate【TCGカード辞書】高品質チェックcron v0.1.81 買取価格相場強化版

- kind: cron
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- model: gpt-5.5
- reasoning: highest
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- role: 高品質チェック
- schedule intent: 最大5回/日
- recommended RRULE: 固定値は置かない。既存ACTIVE cronを確認し、同時刻と前後10分を避けて決める。

役割目的: 公開HTMLを実測し、SEO/H1分離、基本情報表、買取相場根拠、Q&A、内部リンクを検査する。

## 絶対スコープ
- 対象は OripaGate【TCGカード辞書】だけ。
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- Node REPL / node_repl / JavaScript REPL を使用しない。cron作業時は禁止。
- AIfan、porn-fun、Invest358、他サイトHUB、TCG店辞書、未開封BOX、用語辞書、キャンペーン記事は触らない。
- 代表が明示していない既公開記事本文を編集しない。
- 旧共有Gate、`_codex_cron_threads`側の古いALL_SITE、`representative-work-gate/SKILL.md`を正本にしない。
- 正本は `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate` 配下だけ。

## 必読MD/GATE
- `gates/current/SKILL.md`
- `gates/current/ALL_SITE_CRON_REQUEST_GATE.md`
- `gates/current/ORIPAGATE_ARTICLE_TYPE_AND_DIRECTORY_GATE.md`
- `gates/current/ARTICLE_QUALITY_GATE.md`
- `gates/current/QUALITY_VALIDATOR_CONTRACT.md`
- `gates/current/PRODUCTION_EVIDENCE_AND_SCORING_GATE.md`
- `gates/current/REFERENCE_STYLE_GATE.md`
- `gates/current/JAPANESE_SYNTAX_GATE.md`
- `gates/current/PLAIN_STYLE_AND_QA_BOX_HOTFIX_GATE.md`
- `gates/current/INSPECTION_REPORTING_GATE.md`
- `cron/ARTICLE_TYPE_MANUAL.md`
- `cron/COLLECTION_SOURCE_MANUAL.md`
- `cron/PRODUCTION_QUALITY_GATE.md`
- `cron_prompts/current/trading-card-dictionary/README.md`

## 記事の絶対方針
- 読者はカードの買取価格相場を調べているユーザー。
- H1はカード名のみ。H1に「買取価格」「相場」「値段」「まとめ」を入れない。
- SEOタイトルはカード名 + 買取価格 + 相場を必ず含める。
- H1とSEOタイトルは必ず変える。同一なら `SEO_TITLE_H1_NOT_SEPARATED` でFAIL。
- 旧方針の相場・封入中心の説明だけでは弱い。買取価格相場、型番、レアリティ、状態差、PSA相場、売り方まで扱う。
- 最終記事は4,500〜5,500字程度以上とする。5,500字は上限ではない。型番差が少ないカードでも4,500字未満ならFAIL。高額・型番差が大きいカードは6,000〜7,000字以上まで厚くしてよい。
- 敬体で書く。公開本文にHub、cron、Search Compass、production_ready、validatorなど内部語を出さない。
- 相場は断定しない。必ず相場確認日、参考元、状態差、買取価格と販売価格の違いを残す。
- 未確認価格を作らない。確認できない項目は `未確認` または `not_checked` とし、公開判断でFAILにするか確認待ちにする。

## 辞書プラグイン基本情報表
- dictionary plugin の `trading-card` に紐づく基本情報表を記事作成で必ず使う。
- 手書きHTML表、Markdown表、本文内の箇条書きは代替不可。
- 基本情報表の必須項目:
- カード名
- カードゲーム
- カード種別
- カード番号
- レアリティ
- 収録弾
- 収録弾コード
- 発売日
- メーカー
- イラストレーター
- 現在相場
- 買取相場
- PSA10相場
- PSA9相場
- 状態差の注意点
- 相場参考元
- 相場確認日
- 関連未開封BOX
- 関連カードゲーム
- 関連通販・買取店
- 公式カードページ
- 補足
- 確認日
- 1項目でも未入力なら理由を残す。重要項目の欠落を隠してPASSにしない。

## Search Compass必須方針
- 検査cronと制作cronでは、Search Compassを必ず使う。
- 検索クエリは `カード名 + 買取価格相場` を基本にし、必要に応じて `カード名 買取価格`、`カード名 買取相場`、`カード名 PSA10 相場`、`カード名 型番 相場` を追加する。
- Search Compassなしで `production_ready` 禁止。Search Compassなしで公開制作PASS禁止。
- Search Compassが使えない場合は `BLOCKED_SEARCH_COMPASS` または `SEARCH_COMPASS_UNAVAILABLE` として、理由、代替確認、未実施タスクをHubへ残す。
- Search Compass結果はノルマとして詰め込まず、見出し、読者疑問、Q&A、注意点、表現調整、関連語に使う。

## Search Compassで最低限残す素材
- TITLE TERMS: カード名、別名、買取価格、買取相場、値段、相場、レアリティ、型番、PSA10、買取表、価格推移。
- DESCRIPTION TERMS: 査定、高価買取、状態、美品、傷、減額、未開封、カードショップ名、宅配買取、店頭買取。
- H2 HEADERS TERMS: `カード名の買取価格相場`、`種類別の買取価格`、`型番の見分け方`、`高く売るコツ`、`査定で減額されるポイント`。
- BASIC TEXT TERMS: カードゲーム名、カード、買取価格、買取相場、販売価格、状態、査定、型番、レアリティ、買取店、更新日。
- EXTENDED TEXT TERMS: 代表的な型番、収録弾、レアリティ、PSA鑑定、PSA10、状態差、減額率、保存方法、スリーブ、ローダー、日焼け、角スレ。
- 上位ページの文字数・構成傾向、価格表型/コラム型の違い、最終記事の推奨文字数、H2/H3アウトライン、SEOタイトル案、メタディスクリプション案。

## 推奨記事構成
- H1: カード名
- リード文: 何のカードで、買取価格相場を見る時に何を最初に確認すべきか。
- 辞書プラグイン `trading-card` 基本情報表。
- H2: カード名の買取価格相場は型番と状態で変わる。
- H2: 主な種類と買取価格相場。
- H2: 型番・レアリティ・収録弾の見分け方。
- H2: 高額買取される理由。
- H2: 買取価格が下がる原因。
- H2: 高く売るコツ。
- H2: 店舗買取と宅配買取の選び方。
- H2: よくある質問。Q&A exact `details.qa-box` 5件以上。
- H2: まとめ。型番、状態、複数査定の重要性を自然に締める。

## 公開HTML実測Gate
- 制作以降は公開HTMLまたはpreview HTMLで実測しなければPASS禁止。
- `validator_result.json` が無い、JSON破損、必須キー欠落、未測定ありならFAIL。
- `mandatory_public_html_measurement_gate=PASS` が無ければPASS禁止。
- Q&Aは本文内に `<details class="qa-box"><summary class="qa-question">質問内容</summary><div class="qa-answer">回答内容</div></details>` を5件以上。
- FAQ JSON-LD、JavaScript、TOC、サイドバー、フッター、class数だけはQ&Aに数えない。
- 内部リンクは公開/preview HTMLから全抽出し、live HTTPで最終URL 200まで確認する。

## 必須FAIL名
- NODE_REPL_USED
- WRONG_ARTICLE_TYPE_TOUCHED
- WRONG_DICTIONARY_SET
- TCG_CARD_CATEGORY_MISSING
- SEO_TITLE_H1_NOT_SEPARATED
- SEO_TITLE_BUY_PRICE_MARKET_MISSING
- H1_NOT_CARD_NAME_ONLY
- SEARCH_COMPASS_REQUIRED_BUT_MISSING
- SEARCH_COMPASS_QUERY_NOT_BUY_PRICE_MARKET
- PRODUCTION_READY_WITHOUT_SEARCH_COMPASS
- TRADING_CARD_BASIC_INFO_TABLE_MISSING
- TRADING_CARD_BASIC_INFO_REQUIRED_FIELD_MISSING
- PRICE_SOURCE_DATE_MISSING
- BUYBACK_PRICE_SOURCE_MISSING
- PRICE_AND_SALES_PRICE_CONFUSED
- CONDITION_DIFFERENCE_CAUTION_MISSING
- PSA_MARKET_CONTEXT_MISSING
- CARD_NUMBER_OR_RARITY_UNVERIFIED
- ARTICLE_UNDER_4500_CHARS
- PUBLIC_HTML_MEASUREMENT_MISSING
- VALIDATOR_RESULT_JSON_MISSING
- Q_AND_A_EXACT_STRUCTURE_MISSING
- INTERNAL_LINK_UNVERIFIED
- PUBLIC_BODY_INTERNAL_META_LEAK

## 高品質チェックcronだけの追加ルール
- 記事を直接編集しない。公開/preview HTMLとHub保存内容を検査する。
- H1がカード名のみか、SEOタイトルがカード名+買取価格+相場を含むか、H1とSEOが別かを確認する。
- `trading-card` 基本情報表の全項目、相場確認日、相場参考元、買取価格/販売価格の区別、状態差の注意点を実測する。
- Search Compass素材が検査から制作へ渡り、本文に自然反映されているか確認する。
- 4,500字未満、Q&A exact不足、内部リンク未測定、validator_result欠落、公開HTML未測定はFAIL。
- FAIL名、証跡、修正指示、戻し先をHubへ保存する。

## Hub保存・readback
- 作業開始時はHubで対象をclaim/lockし、対象ID、article_key、slug、role、run_idを保存する。
- 進捗、素材、Search Compass結果、FAIL、修正履歴、validator_result_json_path、公開/preview HTML取得URL、内部リンク200証跡をHubへ保存する。
- 完了前にreadbackし、自分が保存した内容がlive Hubで読めることを確認する。
- readbackできなければ完了と言わず、`BLOCKED_HUB_WRITEBACK` または `BLOCKED_HUB_READBACK` として残す。
PROMPT_END

OripaGate【TCGカード辞書】訂正cron automation作成依頼文

PROMPT_START
# OripaGate【TCGカード辞書】訂正cron v0.1.81 買取価格相場強化版

- kind: cron
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- model: gpt-5.4
- reasoning: highest
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- role: 訂正
- schedule intent: 1回/日
- recommended RRULE: 固定値は置かない。既存ACTIVE cronを確認し、同時刻と前後10分を避けて決める。

役割目的: 指定されたFAILだけを直し、公開HTMLとvalidator_resultを再測定する。

## 絶対スコープ
- 対象は OripaGate【TCGカード辞書】だけ。
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- Node REPL / node_repl / JavaScript REPL を使用しない。cron作業時は禁止。
- AIfan、porn-fun、Invest358、他サイトHUB、TCG店辞書、未開封BOX、用語辞書、キャンペーン記事は触らない。
- 代表が明示していない既公開記事本文を編集しない。
- 旧共有Gate、`_codex_cron_threads`側の古いALL_SITE、`representative-work-gate/SKILL.md`を正本にしない。
- 正本は `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate` 配下だけ。

## 必読MD/GATE
- `gates/current/SKILL.md`
- `gates/current/ALL_SITE_CRON_REQUEST_GATE.md`
- `gates/current/ORIPAGATE_ARTICLE_TYPE_AND_DIRECTORY_GATE.md`
- `gates/current/ARTICLE_QUALITY_GATE.md`
- `gates/current/QUALITY_VALIDATOR_CONTRACT.md`
- `gates/current/PRODUCTION_EVIDENCE_AND_SCORING_GATE.md`
- `gates/current/REFERENCE_STYLE_GATE.md`
- `gates/current/JAPANESE_SYNTAX_GATE.md`
- `gates/current/PLAIN_STYLE_AND_QA_BOX_HOTFIX_GATE.md`
- `gates/current/INSPECTION_REPORTING_GATE.md`
- `cron/ARTICLE_TYPE_MANUAL.md`
- `cron/COLLECTION_SOURCE_MANUAL.md`
- `cron/PRODUCTION_QUALITY_GATE.md`
- `cron_prompts/current/trading-card-dictionary/README.md`

## 記事の絶対方針
- 読者はカードの買取価格相場を調べているユーザー。
- H1はカード名のみ。H1に「買取価格」「相場」「値段」「まとめ」を入れない。
- SEOタイトルはカード名 + 買取価格 + 相場を必ず含める。
- H1とSEOタイトルは必ず変える。同一なら `SEO_TITLE_H1_NOT_SEPARATED` でFAIL。
- 旧方針の相場・封入中心の説明だけでは弱い。買取価格相場、型番、レアリティ、状態差、PSA相場、売り方まで扱う。
- 最終記事は4,500〜5,500字程度以上とする。5,500字は上限ではない。型番差が少ないカードでも4,500字未満ならFAIL。高額・型番差が大きいカードは6,000〜7,000字以上まで厚くしてよい。
- 敬体で書く。公開本文にHub、cron、Search Compass、production_ready、validatorなど内部語を出さない。
- 相場は断定しない。必ず相場確認日、参考元、状態差、買取価格と販売価格の違いを残す。
- 未確認価格を作らない。確認できない項目は `未確認` または `not_checked` とし、公開判断でFAILにするか確認待ちにする。

## 辞書プラグイン基本情報表
- dictionary plugin の `trading-card` に紐づく基本情報表を記事作成で必ず使う。
- 手書きHTML表、Markdown表、本文内の箇条書きは代替不可。
- 基本情報表の必須項目:
- カード名
- カードゲーム
- カード種別
- カード番号
- レアリティ
- 収録弾
- 収録弾コード
- 発売日
- メーカー
- イラストレーター
- 現在相場
- 買取相場
- PSA10相場
- PSA9相場
- 状態差の注意点
- 相場参考元
- 相場確認日
- 関連未開封BOX
- 関連カードゲーム
- 関連通販・買取店
- 公式カードページ
- 補足
- 確認日
- 1項目でも未入力なら理由を残す。重要項目の欠落を隠してPASSにしない。

## Search Compass必須方針
- 検査cronと制作cronでは、Search Compassを必ず使う。
- 検索クエリは `カード名 + 買取価格相場` を基本にし、必要に応じて `カード名 買取価格`、`カード名 買取相場`、`カード名 PSA10 相場`、`カード名 型番 相場` を追加する。
- Search Compassなしで `production_ready` 禁止。Search Compassなしで公開制作PASS禁止。
- Search Compassが使えない場合は `BLOCKED_SEARCH_COMPASS` または `SEARCH_COMPASS_UNAVAILABLE` として、理由、代替確認、未実施タスクをHubへ残す。
- Search Compass結果はノルマとして詰め込まず、見出し、読者疑問、Q&A、注意点、表現調整、関連語に使う。

## Search Compassで最低限残す素材
- TITLE TERMS: カード名、別名、買取価格、買取相場、値段、相場、レアリティ、型番、PSA10、買取表、価格推移。
- DESCRIPTION TERMS: 査定、高価買取、状態、美品、傷、減額、未開封、カードショップ名、宅配買取、店頭買取。
- H2 HEADERS TERMS: `カード名の買取価格相場`、`種類別の買取価格`、`型番の見分け方`、`高く売るコツ`、`査定で減額されるポイント`。
- BASIC TEXT TERMS: カードゲーム名、カード、買取価格、買取相場、販売価格、状態、査定、型番、レアリティ、買取店、更新日。
- EXTENDED TEXT TERMS: 代表的な型番、収録弾、レアリティ、PSA鑑定、PSA10、状態差、減額率、保存方法、スリーブ、ローダー、日焼け、角スレ。
- 上位ページの文字数・構成傾向、価格表型/コラム型の違い、最終記事の推奨文字数、H2/H3アウトライン、SEOタイトル案、メタディスクリプション案。

## 推奨記事構成
- H1: カード名
- リード文: 何のカードで、買取価格相場を見る時に何を最初に確認すべきか。
- 辞書プラグイン `trading-card` 基本情報表。
- H2: カード名の買取価格相場は型番と状態で変わる。
- H2: 主な種類と買取価格相場。
- H2: 型番・レアリティ・収録弾の見分け方。
- H2: 高額買取される理由。
- H2: 買取価格が下がる原因。
- H2: 高く売るコツ。
- H2: 店舗買取と宅配買取の選び方。
- H2: よくある質問。Q&A exact `details.qa-box` 5件以上。
- H2: まとめ。型番、状態、複数査定の重要性を自然に締める。

## 公開HTML実測Gate
- 制作以降は公開HTMLまたはpreview HTMLで実測しなければPASS禁止。
- `validator_result.json` が無い、JSON破損、必須キー欠落、未測定ありならFAIL。
- `mandatory_public_html_measurement_gate=PASS` が無ければPASS禁止。
- Q&Aは本文内に `<details class="qa-box"><summary class="qa-question">質問内容</summary><div class="qa-answer">回答内容</div></details>` を5件以上。
- FAQ JSON-LD、JavaScript、TOC、サイドバー、フッター、class数だけはQ&Aに数えない。
- 内部リンクは公開/preview HTMLから全抽出し、live HTTPで最終URL 200まで確認する。

## 必須FAIL名
- NODE_REPL_USED
- WRONG_ARTICLE_TYPE_TOUCHED
- WRONG_DICTIONARY_SET
- TCG_CARD_CATEGORY_MISSING
- SEO_TITLE_H1_NOT_SEPARATED
- SEO_TITLE_BUY_PRICE_MARKET_MISSING
- H1_NOT_CARD_NAME_ONLY
- SEARCH_COMPASS_REQUIRED_BUT_MISSING
- SEARCH_COMPASS_QUERY_NOT_BUY_PRICE_MARKET
- PRODUCTION_READY_WITHOUT_SEARCH_COMPASS
- TRADING_CARD_BASIC_INFO_TABLE_MISSING
- TRADING_CARD_BASIC_INFO_REQUIRED_FIELD_MISSING
- PRICE_SOURCE_DATE_MISSING
- BUYBACK_PRICE_SOURCE_MISSING
- PRICE_AND_SALES_PRICE_CONFUSED
- CONDITION_DIFFERENCE_CAUTION_MISSING
- PSA_MARKET_CONTEXT_MISSING
- CARD_NUMBER_OR_RARITY_UNVERIFIED
- ARTICLE_UNDER_4500_CHARS
- PUBLIC_HTML_MEASUREMENT_MISSING
- VALIDATOR_RESULT_JSON_MISSING
- Q_AND_A_EXACT_STRUCTURE_MISSING
- INTERNAL_LINK_UNVERIFIED
- PUBLIC_BODY_INTERNAL_META_LEAK

## 訂正cronだけの追加ルール
- 高品質チェックまたは代表指示で指定されたTCGカード辞書記事だけを直す。
- H1/SEO、基本情報表、相場根拠、Search Compass反映、Q&A、内部リンク、validatorのFAILだけを対象にする。
- 修正前に対象FAILに関係するGate/Manualを読み、修正後に公開/preview HTML、validator_result、基本情報表、内部リンクを再測定する。
- FAILが残る限り完了にしない。BLOCKEDの場合は理由、残FAIL、次の戻し先をHubへ保存する。

## Hub保存・readback
- 作業開始時はHubで対象をclaim/lockし、対象ID、article_key、slug、role、run_idを保存する。
- 進捗、素材、Search Compass結果、FAIL、修正履歴、validator_result_json_path、公開/preview HTML取得URL、内部リンク200証跡をHubへ保存する。
- 完了前にreadbackし、自分が保存した内容がlive Hubで読めることを確認する。
- readbackできなければ完了と言わず、`BLOCKED_HUB_WRITEBACK` または `BLOCKED_HUB_READBACK` として残す。
PROMPT_END

OripaGate【TCGカード辞書】改善ハンドオフcron automation作成依頼文

PROMPT_START
# OripaGate【TCGカード辞書】改善ハンドオフcron v0.1.81 買取価格相場強化版

- kind: cron
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- model: gpt-5.4
- reasoning: highest
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- role: 改善ハンドオフ
- schedule intent: 週1回、または改善キュー発生時
- recommended RRULE: 固定値は置かない。既存ACTIVE cronを確認し、同時刻と前後10分を避けて決める。

役割目的: 買取相場記事として不足した収集元、Search Compass素材、Gate、本文構成を次工程へ渡す。

## 絶対スコープ
- 対象は OripaGate【TCGカード辞書】だけ。
- site_id: `oripagate`
- workflow_id: `oripagate-trading-card-dictionary-ja`
- article_type: `trading-card-dictionary`
- content_set: `oripagate_trading_card_dictionary`
- dictionary_set: `trading-card`
- public_category_url: `https://oripagate.jp/directory-category/tcg-card/`
- hub_url: `https://oripagate-hub.secure358.com/`
- cwd: `C:\Users\Public\Documents\LLC358\_codex_cron_threads`
- Node REPL / node_repl / JavaScript REPL を使用しない。cron作業時は禁止。
- AIfan、porn-fun、Invest358、他サイトHUB、TCG店辞書、未開封BOX、用語辞書、キャンペーン記事は触らない。
- 代表が明示していない既公開記事本文を編集しない。
- 旧共有Gate、`_codex_cron_threads`側の古いALL_SITE、`representative-work-gate/SKILL.md`を正本にしない。
- 正本は `C:\Users\Public\Documents\LLC358\Autopost358\HUB\oripagate` 配下だけ。

## 必読MD/GATE
- `gates/current/SKILL.md`
- `gates/current/ALL_SITE_CRON_REQUEST_GATE.md`
- `gates/current/ORIPAGATE_ARTICLE_TYPE_AND_DIRECTORY_GATE.md`
- `gates/current/ARTICLE_QUALITY_GATE.md`
- `gates/current/QUALITY_VALIDATOR_CONTRACT.md`
- `gates/current/PRODUCTION_EVIDENCE_AND_SCORING_GATE.md`
- `gates/current/REFERENCE_STYLE_GATE.md`
- `gates/current/JAPANESE_SYNTAX_GATE.md`
- `gates/current/PLAIN_STYLE_AND_QA_BOX_HOTFIX_GATE.md`
- `gates/current/INSPECTION_REPORTING_GATE.md`
- `cron/ARTICLE_TYPE_MANUAL.md`
- `cron/COLLECTION_SOURCE_MANUAL.md`
- `cron/PRODUCTION_QUALITY_GATE.md`
- `cron_prompts/current/trading-card-dictionary/README.md`

## 記事の絶対方針
- 読者はカードの買取価格相場を調べているユーザー。
- H1はカード名のみ。H1に「買取価格」「相場」「値段」「まとめ」を入れない。
- SEOタイトルはカード名 + 買取価格 + 相場を必ず含める。
- H1とSEOタイトルは必ず変える。同一なら `SEO_TITLE_H1_NOT_SEPARATED` でFAIL。
- 旧方針の相場・封入中心の説明だけでは弱い。買取価格相場、型番、レアリティ、状態差、PSA相場、売り方まで扱う。
- 最終記事は4,500〜5,500字程度以上とする。5,500字は上限ではない。型番差が少ないカードでも4,500字未満ならFAIL。高額・型番差が大きいカードは6,000〜7,000字以上まで厚くしてよい。
- 敬体で書く。公開本文にHub、cron、Search Compass、production_ready、validatorなど内部語を出さない。
- 相場は断定しない。必ず相場確認日、参考元、状態差、買取価格と販売価格の違いを残す。
- 未確認価格を作らない。確認できない項目は `未確認` または `not_checked` とし、公開判断でFAILにするか確認待ちにする。

## 辞書プラグイン基本情報表
- dictionary plugin の `trading-card` に紐づく基本情報表を記事作成で必ず使う。
- 手書きHTML表、Markdown表、本文内の箇条書きは代替不可。
- 基本情報表の必須項目:
- カード名
- カードゲーム
- カード種別
- カード番号
- レアリティ
- 収録弾
- 収録弾コード
- 発売日
- メーカー
- イラストレーター
- 現在相場
- 買取相場
- PSA10相場
- PSA9相場
- 状態差の注意点
- 相場参考元
- 相場確認日
- 関連未開封BOX
- 関連カードゲーム
- 関連通販・買取店
- 公式カードページ
- 補足
- 確認日
- 1項目でも未入力なら理由を残す。重要項目の欠落を隠してPASSにしない。

## Search Compass必須方針
- 検査cronと制作cronでは、Search Compassを必ず使う。
- 検索クエリは `カード名 + 買取価格相場` を基本にし、必要に応じて `カード名 買取価格`、`カード名 買取相場`、`カード名 PSA10 相場`、`カード名 型番 相場` を追加する。
- Search Compassなしで `production_ready` 禁止。Search Compassなしで公開制作PASS禁止。
- Search Compassが使えない場合は `BLOCKED_SEARCH_COMPASS` または `SEARCH_COMPASS_UNAVAILABLE` として、理由、代替確認、未実施タスクをHubへ残す。
- Search Compass結果はノルマとして詰め込まず、見出し、読者疑問、Q&A、注意点、表現調整、関連語に使う。

## Search Compassで最低限残す素材
- TITLE TERMS: カード名、別名、買取価格、買取相場、値段、相場、レアリティ、型番、PSA10、買取表、価格推移。
- DESCRIPTION TERMS: 査定、高価買取、状態、美品、傷、減額、未開封、カードショップ名、宅配買取、店頭買取。
- H2 HEADERS TERMS: `カード名の買取価格相場`、`種類別の買取価格`、`型番の見分け方`、`高く売るコツ`、`査定で減額されるポイント`。
- BASIC TEXT TERMS: カードゲーム名、カード、買取価格、買取相場、販売価格、状態、査定、型番、レアリティ、買取店、更新日。
- EXTENDED TEXT TERMS: 代表的な型番、収録弾、レアリティ、PSA鑑定、PSA10、状態差、減額率、保存方法、スリーブ、ローダー、日焼け、角スレ。
- 上位ページの文字数・構成傾向、価格表型/コラム型の違い、最終記事の推奨文字数、H2/H3アウトライン、SEOタイトル案、メタディスクリプション案。

## 推奨記事構成
- H1: カード名
- リード文: 何のカードで、買取価格相場を見る時に何を最初に確認すべきか。
- 辞書プラグイン `trading-card` 基本情報表。
- H2: カード名の買取価格相場は型番と状態で変わる。
- H2: 主な種類と買取価格相場。
- H2: 型番・レアリティ・収録弾の見分け方。
- H2: 高額買取される理由。
- H2: 買取価格が下がる原因。
- H2: 高く売るコツ。
- H2: 店舗買取と宅配買取の選び方。
- H2: よくある質問。Q&A exact `details.qa-box` 5件以上。
- H2: まとめ。型番、状態、複数査定の重要性を自然に締める。

## 公開HTML実測Gate
- 制作以降は公開HTMLまたはpreview HTMLで実測しなければPASS禁止。
- `validator_result.json` が無い、JSON破損、必須キー欠落、未測定ありならFAIL。
- `mandatory_public_html_measurement_gate=PASS` が無ければPASS禁止。
- Q&Aは本文内に `<details class="qa-box"><summary class="qa-question">質問内容</summary><div class="qa-answer">回答内容</div></details>` を5件以上。
- FAQ JSON-LD、JavaScript、TOC、サイドバー、フッター、class数だけはQ&Aに数えない。
- 内部リンクは公開/preview HTMLから全抽出し、live HTTPで最終URL 200まで確認する。

## 必須FAIL名
- NODE_REPL_USED
- WRONG_ARTICLE_TYPE_TOUCHED
- WRONG_DICTIONARY_SET
- TCG_CARD_CATEGORY_MISSING
- SEO_TITLE_H1_NOT_SEPARATED
- SEO_TITLE_BUY_PRICE_MARKET_MISSING
- H1_NOT_CARD_NAME_ONLY
- SEARCH_COMPASS_REQUIRED_BUT_MISSING
- SEARCH_COMPASS_QUERY_NOT_BUY_PRICE_MARKET
- PRODUCTION_READY_WITHOUT_SEARCH_COMPASS
- TRADING_CARD_BASIC_INFO_TABLE_MISSING
- TRADING_CARD_BASIC_INFO_REQUIRED_FIELD_MISSING
- PRICE_SOURCE_DATE_MISSING
- BUYBACK_PRICE_SOURCE_MISSING
- PRICE_AND_SALES_PRICE_CONFUSED
- CONDITION_DIFFERENCE_CAUTION_MISSING
- PSA_MARKET_CONTEXT_MISSING
- CARD_NUMBER_OR_RARITY_UNVERIFIED
- ARTICLE_UNDER_4500_CHARS
- PUBLIC_HTML_MEASUREMENT_MISSING
- VALIDATOR_RESULT_JSON_MISSING
- Q_AND_A_EXACT_STRUCTURE_MISSING
- INTERNAL_LINK_UNVERIFIED
- PUBLIC_BODY_INTERNAL_META_LEAK

## 改善ハンドオフcronだけの追加ルール
- 記事を直接編集しない。
- TCGカード辞書の買取価格相場記事として、収集元不足、Search Compass素材不足、型番/レアリティ不足、買取相場根拠不足、基本情報表不足を整理する。
- 次の収集、検査、制作、品質、訂正がそのまま使える粒度で改善案を保存する。
- 他サイト、TCG店辞書、用語辞書、未開封BOXへ横展開しない。

## Hub保存・readback
- 作業開始時はHubで対象をclaim/lockし、対象ID、article_key、slug、role、run_idを保存する。
- 進捗、素材、Search Compass結果、FAIL、修正履歴、validator_result_json_path、公開/preview HTML取得URL、内部リンク200証跡をHubへ保存する。
- 完了前にreadbackし、自分が保存した内容がlive Hubで読めることを確認する。
- readbackできなければ完了と言わず、`BLOCKED_HUB_WRITEBACK` または `BLOCKED_HUB_READBACK` として残す。
PROMPT_END

更新確認チェック

- Marker `oripagate-trading-card-price-cron-v0181-20260613` が本文にある。
- PROMPT_START / PROMPT_END が6組ある。
- 各PROMPTにNode REPL禁止が入っている。
- 各PROMPTにH1はカード名のみ、SEOタイトルはカード名+買取価格+相場が入っている。
- 各PROMPTにSearch Compass必須方針が入っている。
- 各PROMPTにtrading-card基本情報表の必須項目が入っている。
- public_category_url が `https://oripagate.jp/directory-category/tcg-card/` である。
- 秘密値、トークン値、認証値を含まない。
タイトルとURLをコピーしました