- 2026-05-19 最新Gate同期 / 全評価スコアcron共通
- 掲載範囲
- 読み方
- Rule指令全文
- Manual指令全文
- Check指令全文
- TaskTemplate指令全文
- 関連cron置き場ページ
- 2026-05-19 KW調査パック・出現率Gate / 全評価スコアcron共通
- 2026-05-19 本文品質・網羅性Writing Gate / 全評価スコアcron共通
- 2026-05-19 キーワード出現率Hub API / 全評価スコアcron共通
- 2026-05-19 自然なキーワードファミリー出現率Gate(全評価スコアcron共通)
- 2026-05-19 Search Compass分析パックGate(共起語・検索意図・出現率・網羅性)
- 2026-05-19 Search Compass API稼働確認済み
- 2026-05-19 評価スコアcron 装飾黄金律原案・KW三層Gate
- 2026-05-19 評価スコアcron 並行スレッド共通仕様
- 2026-05-19 評価スコアcron リード文自然導入・掲載内容マーカーGate
- 2026-05-19 評価スコアcron KW自然化・FAQ qa-box Gate
- 2026-05-19 Hub Auth / Network Classification Gate
- 2026-05-19 Quality Verdict Concurrency Gate
- 2026-05-19 H2/H3 Heading Hierarchy Gate
- 2026-05-19 Content Volume / Natural Expansion Gate
- 2026-05-20 Runtime Retry / Revision Lock Gate
- 2026-05-20 porn-fun Directory Category Genre Gate
- 2026-05-20 cron automation命名Gate
- 2026-05-20 porn-fun日本語URL正本Gate
- 更新履歴:2026-05-23 v6.7 検査cronの止めすぎ防止
2026-05-19 最新Gate同期 / 全評価スコアcron共通
正本: cronは毎回 Main 358 Hub の agent_pack / agent_work_queue / agent_runtime_readiness を読む。cron.goudou-358.jp は公開テンプレート置き場であり、Hubが読めない場合の判断代替ではない。Hub認証が401/403/invalid token/token expired/timeout/DNS/network error等で読めない場合は BLOCKED_HUB_AUTH とし、対象なし、PASS、完了、制作readyなしとは判断しない。
適用範囲: AIfunIO、Nightlife店舗、Nightlifeホテル、porn-fun単体サービス移行を含む評価スコアcron全体。サイト固有Gateがある場合は、共通Gateの上にサイト固有Gateを優先する。
必ず読むHub参照
- Rules/evaluation-score-cron-six-point-reinforcement-rule-v6-6
- Manuals/evaluation-score-cron-six-point-reinforcement-gate-v6-6
- Checks/evaluation-score-cron-six-point-reinforcement-check-v6-6
- Rules/evaluation-score-cron-lock-gate-rule-v6-6
- Manuals/evaluation-score-cron-lock-gate-v6-6
- Checks/evaluation-score-cron-lock-gate-check-v6-6
- Rules/evaluation-score-cron-lock-fallback-rule-v6-6
- Manuals/evaluation-score-cron-lock-fallback-gate-v6-6
- Checks/evaluation-score-cron-lock-fallback-check-v6-6
- Rules/evaluation-score-cron-release-persistence-rule-v6-6
- Manuals/evaluation-score-cron-release-persistence-gate-v6-6
- Checks/evaluation-score-cron-release-persistence-check-v6-6
- Rules/evaluation-score-cron-runtime-statistics-rule-v6-6
- Manuals/evaluation-score-cron-runtime-statistics-gate-v6-6
- Checks/evaluation-score-cron-runtime-statistics-check-v6-6
- Rules/evaluation-score-cron-visual-originality-rule-v6-6
- Manuals/evaluation-score-cron-visual-originality-gate-v6-6
- Checks/evaluation-score-cron-visual-originality-check-v6-6
- Rules/evaluation-score-cron-search-intent-application-rule-v6-6
- Manuals/evaluation-score-cron-search-intent-application-gate-v6-6
- Checks/evaluation-score-cron-search-intent-application-check-v6-6
- Rules/evaluation-score-cron-stage-ownership-rule-v6-6
- Manuals/evaluation-score-cron-stage-ownership-gate-v6-6
- Checks/evaluation-score-cron-stage-ownership-check-v6-6
- Rules/evaluation-score-cron-decoration-implementation-rule-v6-6
- Manuals/evaluation-score-cron-decoration-implementation-gate-v6-6
- Checks/evaluation-score-cron-decoration-implementation-check-v6-6
- Rules/evaluation-score-cron-score-item-heading-rule-v6-6
- Manuals/evaluation-score-cron-score-item-heading-gate-v6-6
- Checks/evaluation-score-cron-score-item-heading-check-v6-6
- Rules/evaluation-score-cron-no-gap-complete-rule-v6-6
- Manuals/evaluation-score-cron-no-gap-complete-gate-v6-6
- Checks/evaluation-score-cron-no-gap-complete-check-v6-6
排他ロックGate
- cron開始時に対象行へ task_lock / in_progress を作り、locked_by、run_id、lock_expires_at、idempotency_key をHubへ残す。
- 他cronがロック中の対象は触らない。結果は SKIP_LOCKED として残す。
- ロック取得前にWordPress本文、Directory Core、FAQ JSON-LD、301、削除、公開状態を書き換えない。
- 同一記事を制作cronと訂正cronが同時に触らない。制作は新規または明示された全面再制作、訂正は correction_queue / ready_for_retest の既存記事を担当する。
ロック自動復旧Gate
- agent_task_action task_lock が task_not_found_or_not_recorded を返しただけで代表待ち停止にしない。
- Hub認証が成功し、agent_pack / agent_work_queue / agent_runtime_readiness が読め、対象候補の旧URL・新URL・slug・article_key相当・workflow_id・task_code・stage ownership が確認できる場合は、自動復旧ロックへ進む。
- 自動復旧ロックは hub_table_upsert で References に reference_type=cron_soft_lock / source_type=cron_lock_fallback として作る。
- soft lockには reference_id=cron-soft-lock-{workflow_id}-{article_key_or_slug}-{task_code}、locked_by、lock_owner_agent、lock_stage、run_id、lock_acquired_at、lock_expires_at、idempotency_key、target_old_url、target_new_url を残す。
- soft lock作成成功なら lock_source=hub_reference_soft_lock / task_lock_missing_recovered=true / target_task_bootstrap_created=true として処理を続ける。
- soft lockも作れない場合だけ LOCK_ACQUIRE_FAILED。Hub認証不備は BLOCKED_HUB_AUTH、WordPress認証不備は BLOCKED_WP_AUTH。
リリース粘りGate
- cronの目的は止まる理由を探すことではなく、安全な範囲で高品質記事を前へ進めること。
- Hub認証不備は BLOCKED_HUB_AUTH、WordPress認証不備は BLOCKED_WP_AUTH。対象不明、工程所有違反、危険情報根拠不足、承認必須操作は停止する。
- task_not_found_or_not_recorded、公式情報の一部不足、通常の品質不足、候補1件のHOLD/EXCLUDE/LOCKEDだけで代表待ち停止にしない。
- 制作cronは品質不足を同一run内で最低2回自己修正する。常体Strict、公式タグ、marker-under+b、赤太字、✅/⚠️とli分離、評価項目見出し化、見本4URL実照合、section id / h2 id は自己修正対象。
- 高品質cronは不足点を quality_delta_items / fix_targets / expected_html_conditions / retest_required=true として訂正cronへ渡す。
- 訂正cronは quality_delta_items を実修正し、公開HTMLまたはプレビューHTMLで再確認する。直せない場合だけ BLOCKED_CORRECTION_UNRESOLVED。
- 結果には release_attempted=true、self_repair_passes、attempted_repair_count、remaining_delta_items、next_candidate_selected、next_stage を残す。
所要時間統計Gate
- 各cron/各タスクの平均必要時間を後で統計化するため、実行ごとに開始・終了・所要秒数・工程・結果をHubへ残す。
- 開始時に run_started_at_jst、run_id、automation_id、workflow_id、task_code、task_stage、site_id、article_type_id、content_set を保持する。
- 終了時に run_finished_at_jst、elapsed_seconds、elapsed_minutes、result_status、processed_count、skipped_count、blocked_count、failure_reason、next_stage を残す。
- Hub記録先は References。reference_type=cron_runtime_stat / source_type=cron_run_metrics / reference_id=cron-runtime-{workflow_id}-{task_code}-{run_id} とする。
- 統計集計キーは site_id、article_type_id、content_set、task_code、task_stage、result_status、elapsed_seconds。
- Hub認証が通っている限り、WP認証不備、対象不明、ロック競合、品質FAIL、訂正未解決でも cron_runtime_stat を残す。
- Hub認証そのものが読めない BLOCKED_HUB_AUTH の場合はHubへ書けないため、memoryへ runtime_stat_pending=true を残す。
工程所有Gate
- 制作cronは新規制作または明示された全面再制作だけを扱う。task8_recheck、ready_for_retest、correction_queue、quality_pass、301_ready、published は制作対象にしない。
- 高品質cronは公開HTMLを厳格検査し、直接本文修正を主目的にしない。修正場所、修正条件、再確認条件を quality_delta_items として訂正cronへ渡す。
- 訂正cronは高品質cronから来た不足点を実修正し、公開HTMLまたはプレビューHTMLで再確認して ready_for_retest / task8_recheck へ返す。
- 工程所有違反は SKIP_STAGE_OWNERSHIP とし、対象記事を勝手に進めない。
評価スコア記事の冒頭構成Gate
- 冒頭順は H1タイトル → 評価スコア表 → リード文 → 公式テキストリンク → 最初のH2。
- H1とSEOタイトルは分離する。H1に「評判」「レビュー」「評価」「デリヘル呼べる?」などのSEOタイトル語を混ぜない。
- H1重複、H1へのSEOタイトル混入、言語不一致、公式リンク漏れ、公式タグ欠落はFAILまたは訂正対象。
- H1を本文HTML内に新たに書くという意味ではない。WordPress/辞書プラグイン側のH1表示を確認する。
公式リンク実装Gate
テキストで公式またはアフィリエイトリンクへ誘導する場合は、右寄せ、公式タグ、太字リンクをセットで扱う。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
<p style="text-align:right;"><span class="badge badge-red">公式</span><b>:<a href="公式またはアフィリエイトURL" rel="nofollow noopener">サービス名</a></b></p>
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
- PC表示で本文右側または右寄せに見える位置へ置く。
- 表示文言には必ず「公式」または「公式サイト」を含める。
- アフィリエイトリンクがある場合はアフィリエイトリンク、無い場合は公式リンクを使う。
- 画像だけ、バッジだけ、テキストだけで公式導線を済ませない。official_link_checked=true と official_badge_checked=true を残す。
装飾実装Gate
- 黄色アンダーマーカーは <b><span class=”marker-under”>…</span></b> をセット条件にする。marker_under_without_b_count が1以上ならFAIL。
- 赤太字を必要箇所に入れる。red_bold_count=0 で装飾バランス不足ならFAIL。
- ✅ / ⚠️ と li を重複させない。<li>✅ …</li> や <li>⚠️ …</li> は li_signal_overlap_count としてFAIL。
- ボックスと ✅ / ⚠️ は役割を分ける。ボックス内を記号だらけにしない。
- 白々しい装飾、装飾0件、公式タグ欠落、マーカー単独使用、赤太字0件は decoration_balance_checked=false として訂正対象。
視覚シグナル・独自性Gate
- 星評価は✅/⚠️の代替ではない。★★★★★や★★★★☆は評価点表現であり、visual_signal_checkには数えない。
- 高品質PASSには positive_signal_count>=2、warning_signal_count>=2、red_bold_count>=1、marker_under_b_count>=1、li_signal_overlap_count=0 が必要。
- ✅/⚠️が0件、星だけ、淡い見出しと普通文だけ、汎用文だけの場合はPASS不可。
- 対象サービス固有の根拠、プラン名、運営名、導線、退会条件、料金条件、利用条件を評価理由へ展開する。
- 「項目名 + 点数 + 一般論 + 確認する必要がある」の同型文が続く場合は repetitive_pattern_count としてFAILまたは訂正対象。
- unique_service_fact_count が不足する場合は generic_rewrite_risk=high とし、quality_delta_itemsに修正場所と追加論点を残す。
- 独自性確認は originality_check=pass で明示する。汎用文反復や対象固有情報不足があれば originality_check=fail として訂正へ戻す。
検索意図・共起語反映Gate
- 共起語は収集だけではPASS不可。本文構造、評価理由、注意点、FAQへ反映する。
- search_intent_summary、serp_competitor_topics、cooccurrence_terms、reader_questions、comparison_axes、selected_original_headings をHubへ残す。
- 高品質PASSには search_intent_applied=true、cooccurrence_terms_used_count>=3、serp_topic_coverage_count>=2、original_heading_count>=1、reader_question_coverage_count>=1、comparison_axis_count>=2、generic_rewrite_risk=low が必要。
- 定番見出しだけで終わらせず、検索意図・共起語・読者疑問から記事固有のH2/H3を最低1つ追加する。
- 検索上位や共起語から、評価項目本文に具体的な比較軸を最低2つ入れる。
- 読者疑問をFAQまたは注意点へ最低1つ反映する。
- 過去PASSでも、✅/⚠️不足、汎用文反復、共起語反映不足、記事固有見出し不足が見つかった場合は quality_pass_invalidated_by_new_gate=true として訂正へ戻す。301_readyへ進めない。
評価項目見出し化Gate
- 評価スコア表の各評価項目は、本文内のH2/H3またはsectionとして読者判断材料になる説明へ展開する。
- 点数と理由、本文見出し、本文説明が対応していることを score_reason_alignment で確認する。
- お決まり見出しだけでなく、検索上位、共起語、読者疑問から記事固有の見出しを1つ以上追加する。
- score_items_from_table、score_item_heading_plan、score_item_heading_coverage をHub結果に残す。
文体 / FAQ / 構造化データGate
- 日本語評価ページは常体Strict。本文、FAQ、リスト、評価項目説明に「です」「ます」「ください」「ません」「ましょう」が残ればFAILまたは訂正対象。
- FAQ本文とFAQPage JSON-LDの質問・回答を一致させる。
- FAQの script type=”application/ld+json” を記事本文へ直接入れない。WordPress側のカスタムJavaScript、構造化データ欄、または指定運用欄へ分離する。
- 内部運用語、Hub、cron、301準備、旧記事移行、ローカルパス、認証値、APPパスワード、トークンを公開本文へ出さない。
見本ページ実照合Gate
- 見本ページは完全コピー対象ではない。構成、導線、装飾バランス、情報密度、評価項目の展開を照合する。
- 参照4URL: https://invest358.com/ja/errante-review/ / https://invest358.com/ja/thinkmarkets-review/ / https://aifan.io/ja/pollo-ai-review/ / https://aifan.io/ja/crowdworks-ai-review/
- 見本ページ実照合ログなしで ready_for_high_quality_test / ready_for_retest / quality_pass に進めない。
- Hub結果には style_reference_urls、style_reference_checked_at、style_reference_findings、public_html_checked=true/false を残す。
品質スコア / 差分修正Gate
- 0〜49点: 制作cronが高品質へ渡してはいけない。止まり続けないよう、確認中で進められる項目は確認中として進め、通常の品質不足は制作棚へ戻す。
- 50〜80点: 制作cron通過可。ただし quality_delta_items として不足点、修正場所、再確認条件を明記する。
- 80〜90点: 高品質cronで軽微扱いせず、不足を具体的修正単位へ分解する。
- 90〜99点: 訂正cronが最後の不足を潰し、100点化チェックシートで確認する。
- 100点: 訂正cron後、公開HTMLまたはプレビューHTMLで確認済み。correction_completion_score=100 として再検査PASS候補にする。
- production_quality_score、quality_score_before、quality_delta_items、minimum_gate_failures、target_score=100、retest_required=true をHubへ残す。
外部PCでのcron実行前提
- このテンプレートを貼るPCが本社PCでなくても、毎回Main Hubの最新正本を読む設計にする。
- cron置き場の本文だけを固定正本として扱わない。Hubが読めなければ BLOCKED_HUB_AUTH。
- modelは可能な範囲で最新・高性能、reasoningEffortは可能な範囲で最高。確認できない場合は BLOCKED_AUTOMATION_MODEL_CONFIG。
- YUKI/TAKUMIがcron検証中の記事本文を直接直して、cronの失敗を隠さない。
2026-05-18 v6.6更新: この記事は、358Hubへ入れている評価スコアcron指令を全件そのまま確認できるようにした全文版です。要約や例だけではなく、v6.6でHubへupsertしたRule、Manual、Check、TaskTemplateをすべて掲載しています。
公開範囲: ここには運用指令、品質Gate、工程連携、停止条件だけを載せます。Hubトークン、WordPress認証情報、APPパスワード、秘密値、個人ローカルパスは含めません。
掲載範囲
- Rules: 1件
- Manuals: 18件
- Checks: 9件
- TaskTemplates: 25件
- 合計: 53件
- このページはcommonカテゴリの代表確認用コピー。実行正本はMain 358 Hub。
読み方
- Manual指令全文に、起動、共通Gate、工程連携、公開本文境界、FAQ、装飾、文章構造・装飾雰囲気の参照ページ、制作前倒し最低品質、訂正必達、訂正、起動時間、model / reasoningEffort設定、サイト別Gate、記事タイプ分岐、リリース前チェックシートの本文が入っています。
- 検査cronのready表記は、候補ready、参照URL ready、制作投入readyを分けます。汎用check_status=readyだけでは制作投入readyとして数えず、READY_STRONG / READY_WITH_FACT_RISKだけを制作cronへ渡します。
- TaskTemplate指令全文に、4サイトのautomation作成時に読む指令が入っています。porn-funは11 cron 301実行も含みます。
- RuleとCheckに、Hub正本方針とリリース前停止条件が入っています。
- 表ではなく、各指令を折りたたみ本文として掲載しています。折りたたみ内も公開本文に含まれます。
Rule指令全文
評価スコアcronはHub正本を毎回読む v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
rule_key: evaluation-score-cron-hub-source-rule-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcronはHub正本を毎回読む v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
status: active
content:
cron.goudou-358.jpはスレッド貼り付け用の公開テンプレート置き場。実行判断、品質Gate、停止判断、記事タイプ分岐はMain Hubを正本にする。Hub認証不備はBLOCKED_HUB_AUTH、WordPress認証不備はBLOCKED_WP_AUTH、記事タイプ不明はBLOCKED_UNKNOWN_ARTICLE_KIND。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
Manual指令全文
evaluation-score-cron-hub-path-map-v6-6 / 評価スコアcron Hub参照パス v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-hub-path-map-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron Hub参照パス v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron Hub参照パス v6.6
cron.goudou-358.jp は、スレッドへ貼るための公開テンプレート置き場である。実行判断、品質判断、停止判断、記事タイプ分岐、工程連携、公開本文境界、装飾、FAQ、訂正、301はMain Hubの以下を正本にする。
## 必ず読む共通パス
- Rules/evaluation-score-cron-hub-source-rule-v6-6
- Manuals/evaluation-score-cron-startup-thread-manual-v6-6
- Manuals/evaluation-score-cron-common-gate-v6-6
- Manuals/evaluation-score-cron-stage-map-v6-6
- Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6
- Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6
- Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6
- Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6
- Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6
- Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6
- Manuals/evaluation-score-cron-schedule-and-limits-v6-6
- Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6
- Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6
- Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6
- Manuals/evaluation-score-cron-site-gates-v6-6
- Manuals/porn-fun-migration-301-cron-gate-v6-6
- Manuals/autopost-cron-article-type-routing-v6-6
- Manuals/evaluation-score-cron-release-checksheet-v6-6
- Checks/evaluation-score-cron-hub-reference-check-v6-6
- Checks/evaluation-score-cron-style-reference-pages-gate-v6-6
- Checks/evaluation-score-cron-produce-pre-hq-minimum-check-v6-6
- Checks/evaluation-score-cron-quality-score-handoff-check-v6-6
- Checks/evaluation-score-cron-correction-must-fix-check-v6-6
- Checks/evaluation-score-cron-model-reasoning-config-check-v6-6
- Checks/evaluation-score-cron-tasktemplate-agent-pack-real-record-check-v6-6
- Checks/evaluation-score-cron-inspect-ready-fact-risk-check-v6-6
- Checks/evaluation-score-cron-release-checksheet-gate-v6-6
## サイト別TaskTemplates
- TaskTemplates/evaluation-score-aifunio-collect-v6-6
- TaskTemplates/evaluation-score-aifunio-inspect-v6-6
- TaskTemplates/evaluation-score-aifunio-produce-v6-6
- TaskTemplates/evaluation-score-aifunio-high-quality-test-v6-6
- TaskTemplates/evaluation-score-aifunio-correction-v6-6
- TaskTemplates/evaluation-score-aifunio-improvement-handoff-v6-6
- TaskTemplates/evaluation-score-nightlife-store-collect-v6-6
- TaskTemplates/evaluation-score-nightlife-store-inspect-v6-6
- TaskTemplates/evaluation-score-nightlife-store-produce-v6-6
- TaskTemplates/evaluation-score-nightlife-store-high-quality-test-v6-6
- TaskTemplates/evaluation-score-nightlife-store-correction-v6-6
- TaskTemplates/evaluation-score-nightlife-store-improvement-handoff-v6-6
- TaskTemplates/evaluation-score-nightlife-hotel-collect-v6-6
- TaskTemplates/evaluation-score-nightlife-hotel-inspect-v6-6
- TaskTemplates/evaluation-score-nightlife-hotel-produce-v6-6
- TaskTemplates/evaluation-score-nightlife-hotel-high-quality-test-v6-6
- TaskTemplates/evaluation-score-nightlife-hotel-correction-v6-6
- TaskTemplates/evaluation-score-nightlife-hotel-improvement-handoff-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-collect-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-inspect-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-produce-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-high-quality-test-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-correction-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-improvement-handoff-v6-6
- TaskTemplates/evaluation-score-porn-fun-migration-redirect-301-v6-6
## 読めない場合
Hub認証が壊れて読めない、401/403、invalid token、token expired、timeout、DNS/network error の場合は BLOCKED_HUB_AUTH。対象なし、FAILなし、PASS、完了扱いにしない。Hub正本を読めない状態で公開、修正、301、Hub更新、PASS/FAIL確定を行わない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-startup-thread-manual-v6-6 / 評価スコアcron 専用スレッド立ち上げManual v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-startup-thread-manual-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 専用スレッド立ち上げManual v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: startup
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 専用スレッド立ち上げManual v6.6
## 目的
サイト別に1つだけ専用スレッドを立ち上げ、そのスレッド内で個別cron作成依頼文を1件ずつ受ける。スレッド立ち上げ時点ではcron/automationを作成しない。
## 起動直後に復元すること
1. 自分の役割、対象サイト、CRON_FAMILY、ARTICLE_KIND、CONTENT_SET、WORKFLOW_IDを名乗る。
2. Hub参照パス一覧、Rules、Manuals、agent_pack、Work Queue、Task Test、References、FactChecksを読む。
3. Work Queue、既存タスク、既存automation名、公開後FAIL/訂正キュー、棚在庫、301_ready/redirect_readyを確認する。
4. 収集、検査、制作、高品質テスト、訂正、改善担当ハンドオフ、porn-funでは11 cronの作成済み/未作成を一覧化する。
5. ユーザーが個別cron作成依頼文を貼るまでは、automation作成・スケジュール変更・既存cron修正をしない。
## Hub認証bootstrap
- 実行開始時は、汎用クライアントの既定トークンだけに依存しない。作業環境の `H358_HUB_AGENT_TOKEN`、または作業ディレクトリ配下の `CODE-YUKI/.env.hub.local` にあるHub認証値を内部利用してMain Hub APIを読む。
- 認証値、APPパスワード、トークン値は出力、memory、公開ページ、Hub本文、配布物へ書かない。
- 最初のHub APIが401/403/invalid token/token expiredの場合、同じ無効トークンで再試行を繰り返さず、上記bootstrap経路で読み直す。
- bootstrap経路でも `agent_pack`、`agent_work_queue`、`agent_runtime_readiness`、対象article_keyのagent_packが読めない場合は BLOCKED_HUB_AUTH として停止する。対象なし、PASS、完了、制作readyなしとは扱わない。
- Hubを読めない状態で、WordPress投稿、公開、本文編集、Directory Core、FAQ JSON-LD、301、削除、Hub更新をしない。
## スレッド起動時の最低報告
- 起動したcron専用スレッド名
- 対象サイト、記事タイプ、CONTENT_SET、WORKFLOW_ID
- 読めたHubパスと読めなかったHubパス
- 既存automationと未作成automation
- 現在の棚状態、同時本流記事数、FAIL/訂正キュー、301_ready件数
- BLOCKED_HUB_AUTH / BLOCKED_WP_AUTH / BLOCKED_UNKNOWN_ARTICLE_KIND の有無
- 次にユーザーが貼るべき個別cron作成依頼文の候補
## cron作成Gate
- サイト別スレッド立ち上げ文を貼っただけではcronを作成しない。
- cron作成は、ユーザーが各タスク欄のcron作成依頼文を個別に貼った時だけ行う。
- 1回のcron作成依頼文で作るautomationは1つだけ。
- ユーザーが「全cronをまとめて作って」と明示しない限り、複数cronを一括作成しない。
- automation名には必ず「評価スコアページ」を入れ、まとめ/ランキング/比較/通常/速報/ブログ/量産/つぶやき用cronと分ける。
- 個別cron作成時は model と reasoningEffort を必ず指定する。旧世代/低性能モデル、reasoningEffort=medium以下のまま作成しない。
- 指定できない場合、勝手に作成完了扱いにせず BLOCKED_AUTOMATION_MODEL_CONFIG として返す。
## ブロッカー
Hubが読めない場合は BLOCKED_HUB_AUTH。WordPress認証が切れている場合は BLOCKED_WP_AUTH。記事タイプが評価スコア系か判定できない場合は BLOCKED_UNKNOWN_ARTICLE_KIND。model / reasoningEffort を指定できない場合は BLOCKED_AUTOMATION_MODEL_CONFIG。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-common-gate-v6-6 / 評価スコアcron 共通Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-common-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 共通Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 共通Gate v6.6
## 共通前提
- Main Hubを正本にする。Standby Hubはreadonly。Googleスプレッドシート、Apps Script、Google承認運用には戻らない。
- ローカルPC内の storage/data/358-hub.sqlite が無いだけで止まらない。Main Hub Web、agent_pack、Work Queue、References、FactChecks、hub_table_upsert相当を優先する。
- 通常の.mdログ、記事本文、キュー、投稿結果の更新ではapply_patchを使わない。承認が出にくい安全な書き込み手段を使う。
- 公開投稿そのものは停止条件ではない。止めるのは未承認、未検査、危険操作、GATE失敗の場合だけ。
- ファイル削除、フォルダ移動、上書き置換、権限変更、reportカテゴリ変更、ユーザー権限変更、新しい外部送信先、新しい課金/契約/解約、未承認サイト初回投稿、GATE失敗時の公開継続、認証情報操作、税務/法務判断は停止または確認する。
## 最初に確認するもの
- Main HubのRules / Manuals / agent_pack / Work Queue / Task Test
- 対象サイトの既存良質記事、既存評価ページ、Directory Coreまたは辞書プラグインの入力仕様
- 公式サイト、公式予約ページ、公式SNS、公式FAQ、料金ページ、利用規約、ヘルプなど一次情報
- 公開後HTML、H1、title、本文冒頭、公式リンク、FAQ、構造化データ、内部リンク、アイキャッチ、canonical
## 必ず守ること
- cron.goudou-358.jpは公開テンプレート置き場であり、実行判断の正本はHub。
- 個別cron作成依頼文1つにつきautomationは1件だけ。
- スレッド立ち上げ文だけで全cronを一括作成しない。
- 記事制作、公開、高品質テスト、訂正は1記事ずつ扱う。0-A/0-Bなど棚処理だけは複数候補を扱ってよい。
- 公開QAをユーザーへ丸投げしない。公開URLとHTMLの一次確認はCODE側で行う。
- 秘密値、認証値、WordPress REST認証情報、APPパスワード、個人ローカルパスはHub本文、公開本文、配布物、ログに出さない。
- GATE失敗のままリリースしない。
## 全記事共通Gate
- 冒頭構成は H1タイトル → 評価スコア表 → リード文 → 公式テキストリンク → 最初のH2。
- 公式テキストリンクは、アフィリエイトリンクがある場合はアフィリエイトリンク、無い場合は公式リンク。
- 公式テキストリンクはPC表示で本文右側または右寄せに置く。読者が本文導線として見つけられる位置にする。
- 公式テキストリンクの表示文言には「公式」または「公式サイト」を含める。例: 「【公式】サービス名公式サイトを確認」。単にサービス名だけのリンク、URLだけ、右寄せされていても公式導線だと読者に分からないリンクはFAIL。
- 参照例は https://invest358.com/ja/thinkmarkets-review/ と https://aifan.io/ja/pollo-ai-review/。完全コピーではなく、冒頭構成、評価表、導線、読者判断材料、装飾バランスを継承する。
- H1重複、H1へのSEOタイトル混入、評価表の順序崩れ、公式リンク漏れ、コード露出、言語不一致はFAIL。
- 日本語ページは常体を基本にし、偉そうにせず落ち着いた説明文にする。装飾しても常体を維持する。
- 日本語ページは常体Strict。本文、FAQ、リスト、評価項目説明に「です」「ます」「ください」「ません」「ましょう」等の敬体が残る場合は、公式文言引用やUIラベルを除いてFAIL。
- 各言語ページでは、そのページの言語で基本表、補足情報、FAQを書く。
- 評価項目は本文見出しや本文内説明と対応し、読者判断材料として十分な文章量を確保する。
## ファクトチェック
- 「公式情報で要確認」など、調査していないことを表の値として書かない。
- 公式情報と本文に差異がある場合は Fact Risk / 要確認 として扱う。ただし年齢制限、法務、安全、金融、技術的危険は停止または修正対象。
- 上位表示サイトの傾向、検索意図、共起語は構成材料であり、詰め込みノルマにしない。
- 公式情報は優先するが、公式情報だけに限定しない。検索上位サイト、既存記事、公式以外の補助情報、SERP傾向は制作判断材料として使う。ただし出典種別とFact Riskを必ず分ける。
- 安全、年齢、決済、退会、規約、法務、金融、技術的危険に関わる断定は公式または一次情報がなければHOLD。軽い利用感、評判、比較観点、検索意図、構成材料は補助情報でREADY_WITH_FACT_RISKにできる。
- どうしても不明な部分は、本文や制作パックで「確認中」「公式確認中」「要確認」「Fact Risk」として扱ってよい。ただし表の確定値として断定しない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-stage-map-v6-6 / 評価スコアcron 工程連携Manual v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-stage-map-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 工程連携Manual v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 工程連携Manual v6.6
## collect / 0-A
候補を収集し、候補ID、対象名、公式URL候補、カテゴリ、優先度、既存記事の有無、アイキャッチ有無、注意点をHubの棚へ残す。公開、投稿、本文制作はしない。候補をmemoryだけで終えず、次工程が読める形でWork Queue / References / FactChecksへ残す。
## inspect / 0-B, 1-A, 1-B, 1-B2
候補の採否、参照URL、一次情報、検索意図、上位傾向、共起語、使わない語、Fact Risk、制作ready判定を整理する。公式情報と参照URL検証が終わった後、1-C記事制作パック前に必ず 1-B2 検索意図・上位傾向・共起語整理を行う。共起語は本文へ機械的に詰め込むノルマではない。
制作ready判定は READY_STRONG / READY_WITH_FACT_RISK / HOLD / EXCLUDE に分ける。0-A候補、1-A参照URL候補、1-B URL検証の `check_status=ready` は「候補・参照URLとしてready」であり、制作投入readyとして数えない。制作cronへ渡してよい棚は、`readiness_class=READY_STRONG` または `readiness_class=READY_WITH_FACT_RISK`、または同等の `use_status=production_ready/ready_for_produce` が明示されたものだけにする。公式情報が不足していても、公式URLまたは安全に扱える一次導線があり、検索上位・既存記事・補助情報から読者判断材料を作れる場合は READY_WITH_FACT_RISK として制作へ渡してよい。本文では未確認事項を断定せず、確認中/要確認/Fact Riskと追加確認候補を制作パックに残す。危険な断定が必要なもの、公式URL不明、年齢/決済/退会/規約など高リスク根拠不足、単体サービス判定不能はHOLDまたはEXCLUDE。
## produce / 1-C, 2, 3, 3-B, 4, 5, 6, 7
制作投入readyの1記事だけを取り、制作パック、本文、評価表、公式テキストリンク、FAQ、構造化データ、投稿、公開前後の一次確認まで進める。Task8引き渡し前に、制作cron自身が最低品質Gateを通す。冒頭構成、常体Strict、公式リンク位置と公式タグ、H1/SEOタイトル分離、評価表、FAQ本文/FAQ JSON-LD整合、Directory Coreまたは辞書プラグイン入力、装飾バランス、✅/⚠️、li先頭✅/⚠️禁止、内部運用語非露出、H1/canonical/noindexを確認し、直せる不備は制作cron内で直す。評価ページなのに装飾0件、強み/注意点なし、公式リンク導線なし、公式タグ欠落、敬体残り、li先頭アイコン、FAQ不一致、手書き表二重表示、サイト別H1/SEO違反などの明白な最低品質NGを残したまま ready_for_high_quality_test / Task8引き渡しにしない。制作cronは production_quality_score を付け、50点未満はTask8へ渡さない。50〜80点以上ならTask8へ渡せるが、残り20〜50点分を quality_delta_items として明記する。GATE失敗なら公開継続せず訂正キューへ送る。制作完了は最終完了ではなく、8高品質テストへ渡す公開URL/下書きURL、制作ログ、Directory Core入力ログ、FAQ/構造化データログ、制作側セルフチェックログを必ず作る。
## high_quality_test / 8
公開URLとHTMLを取得し、H1、SEOタイトル、評価表、本文冒頭、公式テキストリンク、本文導線、FAQ、構造化データ、言語、表示崩れ、内部運用語露出、装飾不足/過剰、評価項目本文不足を確認する。高品質cronは制作代行ではなく、制作cronが残した20〜50点分の不足を quality_delta_items として精密化し、訂正cronへ渡す。PASSなら台帳更新。FAILなら correction_queue / quality_delta_items / target_score=100 / retest_required=true をHubへ残して訂正キューへ送る。porn-fun移行ではPASS後に301_ready / redirect_readyを作るだけで、301は実行しない。
## correction / 10
高品質テスト、公開QA、Fact Risk、表示崩れ、本文露出、公式情報差異を修正し、再び8高品質テストへ返す。訂正cronはFAIL理由の要約、ハンドオフ、memory更新だけで終わらない。高品質cronから受け取った quality_delta_items の20〜50点分を1件ずつ潰し、correction_completion_score=100 を目標にする。本文、FAQ、装飾、常体Strict、公式リンク位置と公式タグ、H1/SEOタイトル分離、評価表、Directory Core/辞書プラグイン、構造化データ、内部運用語露出、li先頭✅/⚠️禁止など、明示された修正可能項目を実際に直し、公開HTMLまたはプレビューHTMLを再取得して確認してから ready_for_retest / task8_recheck に戻す。100点化チェックシートが未完了、または修正可能な delta が残る場合は再検査返却しない。GATE失敗のまま完了扱いにしない。10は301を実行しない。
## improvement_handoff / 9-A, 9-B, 10
文章QA、共起語改善候補、追加調査候補、Fact Risk、次担当への引継ぎを整理する。改善ハンドオフは公開QAの代替ではない。improvement_status、improvement_owner、improvement_lockを記録する。handed_offかつimprovement_lock=trueの本文は、返却前に主観リライトしない。
## redirect_301 / 11
porn-fun単体サービス移行だけで使う。8高品質テストがPASSしてHubへ301_ready / redirect_ready / 301_ready_retryと記録した記事だけを拾い、旧通常記事URLから新辞書記事URLへの301を実行し、リダイレクト結果を確認してHubへ記録する。
## 連携の必須成果物
- collectは候補棚を作る。
- inspectは候補ready/参照URL ready/制作投入readyを分け、1-B2整理メモを作る。
- produceは公開URLまたは下書きURL、制作ログ、Directory Core入力ログ、FAQ/構造化データログ、8への引き渡し記録を作る。
- high_quality_testはPASS/FAIL、修正理由、訂正キュー、porn-funでは301_ready/redirect_readyを作る。
- correctionは修正ログと8再検査返却を作る。
- improvement_handoffは改善候補、improvement_status、improvement_owner、improvement_lock、次担当ハンドオフを作る。
- redirect_301は301_done / 301_ready_retry / 301_failed / BLOCKED_*を作る。
検査cron v6.7 追記 / INSPECT_NOTICE_READINESS:
- Rules/evaluation-score-cron-inspect-notice-readiness-rule-v6-7
- Manuals/evaluation-score-cron-inspect-notice-readiness-gate-v6-7
- Checks/evaluation-score-cron-inspect-notice-readiness-check-v6-7
- TaskTemplates/evaluation-score-cron-inspect-notice-readiness-template-v6-7
- References/evaluation-score-cron-notice-text-examples-v6-7
- 「記載なし」「公式リンクなし」「調査したが情報見つからず」「公式情報を確認できず」「閉鎖・停止の可能性」「法務・年齢・地域差」は、原則として注意喚起付きで制作へ渡す soft issue として扱う。
- 2回以上同じsoft issueで止まった候補は、明確なhard blockがなければ notice_requirements を作り、readiness_class=READY_WITH_NOTICE、use_status=ready_for_produce、next_stage=produce で制作へ渡す。
- 採点は 75点以上 READY、60〜74点 READY_WITH_NOTICE、45〜59点 NOTICE_REQUIRED、44点以下 NEEDS_REPAIR。hard block があれば HARD_BLOCK。
- hard block は、掲載・リンク・誘導自体が明確に禁止、未成年誘導、違法回避、虚偽保証、秘密値・個人情報露出、確認不能なまま断定が必要な場合などに限定する。
- 法務・年齢制限・管轄違い・規約差のリスクは、掲載自体が禁止でない限り、記事本文に読者向けの注意喚起を入れる形で制作へ渡す。
- 公開本文に「調査中」「Fact Risk」「Gate」「cron」「NOTICE_REQUIRED」「HARD_BLOCK」「ready_for_produce」などの内部語を出さない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-public-content-decoration-gate-v6-6 / 評価スコアcron 公開本文境界・FAQ・装飾Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-public-content-decoration-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 公開本文境界・FAQ・装飾Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 公開本文境界・FAQ・装飾Gate v6.6
## 公開本文境界Gate
- 公開本文には、読者のサービス判断に必要な情報だけを書く。
- 301、リダイレクト、旧URL、旧記事、新辞書記事、移行、公開QA、Gate、PASS、FAIL、Hub、Work Queue、References、FactChecks、agent_pack、heartbeat、cron、automation、タスク番号、制作パック、台帳、作業ログ、作業者都合を本文に書かない。
- 「この制作cronでは301を実行しない」「別工程で旧URLからの301を扱う」「辞書記事では整理する」など、作業工程の説明を本文に出さない。
- 本文・見出し・表・FAQ・CTA周辺に内部運用語があればFAILとし、公開継続または301実行前に修正する。
- 公開本文では、サービス内容、料金、無料範囲、年齢制限、登録、決済、退会、安全面、注意点、公式リンクなど読者向け情報へ書き換える。
## 評価項目本文化Gate
- 評価スコア表の各項目は、本文内でH2またはH3見出しとして扱い、スコア理由、読者が確認すべき点、向いている人/注意点を書く。表だけで終わらせない。
- 評価項目名と本文見出し名は、完全一致または読者が同じ項目だと分かる名前にする。
- 評価項目の説明が無い場合は本文ボリューム不足としてFAIL。
## FAQ / 構造化データGate
- 本文FAQは <details class="qa-box"><summary>質問文</summary><div class="qa-answer">回答文</div></details> を標準にする。
- FAQPage JSON-LDは Schema & Structured Data for WP & AMP 用に作成し、本文FAQと質問文・回答内容を一致させる。
- JSON-LDだけあり本文FAQが無い、本文FAQがqa-boxでない、本文FAQとFAQPage JSON-LDが食い違う場合はFAIL。
- FAQには、旧記事、301、公開QA、Hub、heartbeat、cron、Gate、PASS/FAILなど内部作業設問を入れない。
## 装飾バランスGate
- 装飾は既存良質記事を継承する。太字、太字+黄色アンダー、赤太字、✅、⚠️、Cocoon系ボックス、リストをバランスよく使い分ける。
- 太字は判断材料になる要点、太字+黄色アンダーは読者が押さえるべき重要ポイント、赤太字は注意・リスク・失敗条件に使う。
- ✅は強み/向いている人/判断しやすい利点、⚠️は注意点/向いていない人/確認が必要な条件/制約に使う。
- 強み・注意点・向いている人・向いていない人を短く見せられる箇所では、ただの箇条書きより✅/⚠️の単独強調文を優先する。
- 1文で伝わる強み/注意点は <p>✅ ...</p> / <p>⚠️ ...</p> のような単独文を優先する。
- 複数条件を並列整理するときは<ul><li>を使ってよいが、各li先頭へ毎回✅/⚠️を付けない。`<li>✅ ...</li>` / `<li>⚠️ ...</li>` はliマーカーとアイコンの二重シグナルになりやすいためFAIL。✅/⚠️は単独の<p>、ボックス冒頭、短い強調文で使い、リスト項目は plain li を基本にする。
- information-box / warning-box / blank-box などボックス自体が意味を持つ場合、ボックス内へ✅/⚠️を機械的に重ねない。
- 評価ページで✅/⚠️が0件のまま、強みや注意点をすべて普通のliやボックスだけで処理している場合は装飾不足としてFAIL。
- 装飾不足も過剰装飾もFAIL。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-structure-decoration-reference-pages-v6-6 / 評価スコアcron 文章構造・装飾雰囲気 参照ページManual v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-structure-decoration-reference-pages-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 文章構造・装飾雰囲気 参照ページManual v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 文章構造・装飾雰囲気 参照ページManual v6.6
このManualは、評価スコアcronが記事本文を作る時に「どの文章構造、どの装飾の雰囲気を基準にするか」を迷わせないための参照ページ記録である。
## 参照ページ
- References/style-ref-invest358-errante-review
- References/tone-ref-invest358-errante-review
- References/style-ref-invest358-thinkmarkets-opening-layout
- References/style-ref-invest358-thinkmarkets-review
- References/tone-ref-invest358-thinkmarkets-review
- References/style-ref-aifan-pollo-ai-review
- References/tone-ref-aifan-pollo-ai-review
- References/style-ref-aifan-crowdworks-ai-review
- References/tone-ref-aifan-crowdworks-ai-review
- 公開参照URL: https://invest358.com/ja/errante-review/
- 公開参照URL: https://invest358.com/ja/thinkmarkets-review/
- 公開参照URL: https://aifan.io/ja/pollo-ai-review/
- 公開参照URL: https://aifan.io/ja/crowdworks-ai-review/
## 文章構造Gate
- 参照ページの文章構造は、H1、評価スコア表、リード文、公式テキストリンク、最初のH2、評価項目別の判断材料、FAQ、公開後の読みやすさを確認するために使う。
- 見本ページ実照合を行う。参照ページを読んだと報告するだけでは不可。公開URLまたはHub Reference本文と対象記事HTMLを実際に照合し、冒頭順、公式リンク文言、常体、装飾/リスト使い分け、FAQの差分をセルフチェックログへ残す。
- 見本4URL(Errante、ThinkMarkets、Pollo AI、CrowdWorks AI)のうち、対象ジャンルに近い最低1本と、共通構造確認用にもう1本を照合する。AIfunIOはPollo AI/CrowdWorks AIを優先し、投資系はErrante/ThinkMarketsを優先する。Nightlife/porn-funはサイト別Gateを優先しつつ、4URLから冒頭順、情報密度、公式導線、装飾バランスを参照する。
- 評価スコアページは、H1タイトル → 評価スコア表 → リード文 → 公式テキストリンク → 最初のH2 の順序を基本にする。
- 評価スコアの各項目は、必要に応じて本文見出し化し、読者が判断できる文章量を確保する。
- 完全コピーは禁止。見出し順、導線、情報密度、読者判断材料の置き方を継承する。
## 装飾雰囲気Gate
- 装飾の雰囲気は、既存良質記事と同等の読みやすさ、強弱、注意喚起、本文導線を基準にする。
- 太字、太字+黄色アンダー、赤太字、✅、⚠️、Cocoon系ボックス、リスト、qa-boxを、本文の意味に合わせて使い分ける。
- ✅/⚠️は優先装飾Gateの対象。強み、注意点、要確認点がすべて通常liや通常ボックスだけで処理され、✅/⚠️が0件のままなら装飾不足としてFAIL。
- 装飾は増やせばよいものではない。本文判断材料が薄いまま装飾だけ増やしたもの、注意喚起が過剰なもの、表示崩れを起こすものはFAIL。
## サイト別適用
- AIfunIOは、AIサービス評価ページとしてPollo AI reviewの文章構造、評価表、公式導線、装飾バランス、FAQの雰囲気を優先参照する。
- 投資/金融系評価ページは、ThinkMarkets reviewの文章構造、公式導線、評価項目の説明量、文体、装飾バランスを優先参照する。
- Nightlife、porn-funは、各サイト別Gateと公開本文境界を優先したうえで、評価スコアページとしての共通構造と装飾バランスを参照する。
- サイト固有の既存良質記事や追加ReferenceがHubにある場合は、それも併読する。
## 停止条件
- HubでこのManual、上記References、または参照ページURLが読めない場合、参照なしでPASSしない。
- Hub認証不備ならBLOCKED_HUB_AUTH。Reference不足ならHUB_REFERENCE_INCOMPLETEとして止め、CODE-YUKIがHubを補修する。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6 / 評価スコアcron 制作前倒し最低品質Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 制作前倒し最低品質Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: produce
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 制作前倒し最低品質Gate v6.6
内部識別: PRODUCE_PRE_HQ_MINIMUM_GATE
## 適用範囲
全サイト共通。AIfunIO、Nightlife夜遊び店舗、Nightlifeホテル、porn-fun単体サービス移行、今後追加される評価スコア系サイト・セット・記事タイプのproduce cronすべてに適用する。
## 目的
制作cronは「とりあえず公開して高品質テストへ丸投げ」しない。高品質テストは厳しく落とす工程だが、制作cron側でも評価ページとして最低限必要な品質を前倒しで整えてからTask8へ渡す。
## Task8引き渡し前セルフチェック
produce cronは公開URL、下書きURL、またはプレビューHTMLを取得し、次を確認する。
- 冒頭構成は H1タイトル → 評価スコア表 → リード文 → 公式テキストリンク → 最初のH2。
- 日本語ページは常体Strict。本文、FAQ、リスト、評価項目説明に「です」「ます」「ください」「ません」「ましょう」等の敬体が残る場合は、公式引用やUIラベルを除いて修正する。
- 公式テキストリンクは、アフィリエイトリンクがある場合はアフィリエイトリンク、無い場合は公式リンク。PC表示で本文右側または右寄せ、または読者が自然に見つけられる本文導線に置く。表示文言には「公式」または「公式サイト」を含める。単なるサービス名リンクは公式タグ欠落として修正する。
- 評価表はサイト別Gateに合う。Nightlifeホテルはhotel-directory、porn-funは辞書プラグイン/Directory Core等のネイティブ表を優先し、手書き表二重表示を残さない。
- 評価項目は本文見出しまたは本文内説明と対応し、表だけで終わらせない。
- 本文FAQとFAQPage JSON-LDの質問文・回答内容を一致させる。
- 公式情報、検索上位、既存記事、補助情報、Fact Riskを混ぜて断定しない。どうしても不明な部分は「確認中」「要確認」「Fact Risk」とし、評価表の確定値として断定しない。
- 内部運用語、Hub、cron、automation、Gate、PASS/FAIL、301、旧記事、制作パック、ローカルパス、認証情報を公開本文に出さない。
- H1重複、canonical、noindex、コード露出、公開HTML 200、公式リンク、アイキャッチ、内部リンクを確認する。
## 装飾最低品質Gate
- 評価ページは、既存良質記事と同等の読みやすさ、強弱、注意喚起を持たせる。
- ✅は強み、向いている人、読者が安心して判断できる利点に使う。
- ⚠️は注意点、向いていない人、確認が必要な条件、制約に使う。
- 太字、太字+黄色アンダー、赤太字、Cocoon系ボックス、qa-box、リストを意味に合わせて使う。
- li先頭✅/⚠️禁止。`<li>✅ ...</li>` / `<li>⚠️ ...</li>` はliマーカーとアイコンの二重シグナルとして修正する。✅/⚠️は単独の<p>、ボックス冒頭、短い強調文で使い、リスト項目はplain liにする。
- 評価ページなのに✅/⚠️が0件、強み/注意点の視覚シグナルが0件、全体が通常段落と通常liだけの場合は装飾不足としてTask8へ渡さない。
- 装飾を増やすだけではPASSにしない。本文判断材料が薄い、注意喚起が過剰、表示崩れがある場合は制作cron内で修正する。
## 見本ページ実照合Gate
- Task8へ渡す前に、Hubの参照ページManual/Referencesまたは公開参照URLを読み、対象記事HTMLと見比べる。
- 照合対象は冒頭順、評価表、リード、公式テキストリンクの公式タグ、最初のH2、常体Strict、✅/⚠️とliの使い分け、FAQ本文/FAQ JSON-LD。
- 見本ページ実照合ログが無いまま `ready_for_high_quality_test` にしない。
## produce cronの停止・返却条件
- 直せる不備は制作cron内で直す。装飾0件、FAQ不一致、公式リンク導線漏れ、公式タグ欠落、敬体残り、li先頭✅/⚠️、内部運用語露出などは、WordPress本文やDirectory Core/FAQ JSON-LDを修正してから再確認する。
- 情報不足が残っても、危険な断定を避けて確認中/要確認/Fact Riskとして扱えるなら制作を続けてよい。
- 年齢、決済、退会、規約、法務、安全、金融、技術的危険で断定が必要な場合、またはWordPress認証/Hub認証/対象記事不明の場合はBLOCKEDまたはHOLDにする。
- 明白な最低品質NGを残したまま `ready_for_high_quality_test`、`ready_for_task8`、`Task8引き渡し`、`制作完了` と記録しない。
- Task8へ渡す場合は、制作側セルフチェック結果、直した項目、残したFact Risk、次に高品質テストで見るべき項目をHubへ残す。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-quality-score-handoff-gate-v6-6 / 評価スコアcron 品質スコア・差分引き渡しGate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-quality-score-handoff-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 品質スコア・差分引き渡しGate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 品質スコア・差分引き渡しGate v6.6
内部識別: QUALITY_SCORE_HANDOFF_GATE
## 適用範囲
全サイト共通。produce、high-quality-test、correction の品質連携に適用する。
## 品質スコア運用
- 0〜49点: 制作cronがTask8へ渡してはいけない。通常の品質不足は制作側で直すか、`production_quality_fail_requeued` / `needs_production_revision` として制作棚へ戻す。BLOCKEDはHub認証、WordPress認証、対象記事不明、必須外部確認不能など、cron自身の品質修正では解消できない停止条件だけに使う。
- 50〜80点以上: 制作cronから高品質テストへ渡してよい。ただし production_quality_score と quality_delta_items を必ず残す。
- 80〜90点: 高品質cronが残り不足を精査し、軽微ではなく具体的な修正単位として correction_queue へ渡す。
- 90〜99点: 訂正cronが最後の詰めを行う。修正可能なdeltaが残る限り100点扱いにしない。
- 100点: 訂正cronが公開HTMLまたはプレビューHTMLで確認し、100点化チェックシートを満たした状態。高品質テスト再検査へ返す。
## high-quality-test が訂正cronへ渡す必須フォーマット
高品質cronは「なんとなくFAIL」と書かない。Hubの correction_queue / quality_fail / FactChecks / References へ、最低限以下を残す。
- `quality_score_before`: 高品質テスト時点の点数。
- `target_score`: 原則100。
- `quality_delta_items`: 不足点リスト。各項目に category、location、current_issue、required_fix、evidence_html_or_url、severity、retest_condition を入れる。
- `minimum_gate_failures`: H1/SEO、公式タグ、常体Strict、FAQ整合、装飾、li先頭✅/⚠️、内部運用語、評価表、構造化データ、見本ページ実照合などのGate別結果。
- `retest_required`: true。
## correction 100点化チェックシート
訂正cronは次を全て満たすまで `ready_for_retest` / `task8_recheck` にしない。
- H1はサイト別ルール通り。SEOタイトル語がH1へ混入していない。
- SEOタイトルはサイト別KW方針に沿う。H1とは分離する。
- 冒頭順は H1 → 評価スコア表 → リード文 → 公式テキストリンク → 最初のH2。
- 公式テキストリンクの表示文言に「公式」または「公式サイト」がある。
- 本文、FAQ、リスト、評価項目説明が常体Strict。
- FAQ本文とFAQPage JSON-LDが一致する。
- ✅/⚠️が意味に沿って使われ、li先頭✅/⚠️の二重シグナルがない。
- Directory Core/辞書プラグイン/評価表がサイト別Gate通りで、手書き表二重表示がない。
- 内部運用語、Hub、cron、automation、Gate、PASS/FAIL、301、旧記事、ローカルパス、認証情報が公開本文に出ていない。
- 見本4URLまたはHub Referenceを実照合し、差分ログを残している。
- 公開HTMLまたはプレビューHTMLで200、canonical、noindex、H1重複、構造化データ、表示崩れを確認している。
## BLOCKED
Hub認証、WordPress認証、対象記事不明、危険な断定が必要な項目は100点化対象にせずBLOCKEDまたはFact Risk/HOLDへ分ける。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-correction-and-end-state-gate-v6-6 / 評価スコアcron 訂正対象取得・終了状態Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-correction-and-end-state-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 訂正対象取得・終了状態Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 訂正対象取得・終了状態Gate v6.6
## 訂正対象取得Gate
- task10 / 公開後訂正管理、8高品質テスト後の差し戻し、9-A/9-B/10改善担当ハンドオフは、「task10/FAILキュー」という名前だけを見て0件判定しない。
- Main HubのWork Queue / Tasks、References、FactChecks、9-A/9-Bのreturned状態を横断して確認する。
- Referencesの use_status=correction_queue、public_qa_handoff、quality_fail、correction_required、または check_status=ready/fail/failed を訂正対象として見る。
- FactChecksの fact_check_id、check_status、notes に fail / FAIL / Gate failed / Gate失敗 / 要修正 があるものを拾う。
- workflow共通のarticle_keyだけに限定せず、記事別key、slug別key、移行記事keyも同じsite/workflow/domain内なら拾う。
- agent_packに他サイトのFAILが混在して見える場合は、対象site / workflow / domain / article_typeで絞り込み、別サイトのFAILを自分の訂正対象にしない。
- 上記を確認せずに「FAILキュー0件」「対象なし」「記事修正なし」「301対応なし」「PASS/完了」と報告しない。
## Task10本文修正Gate
- FAIL原因が本文、FAQ、冒頭構成にある場合、第一手はWordPress本文修正にする。
- Cocoon設定、page_type、テーマ設定、広告/PR表示設定などの設定側変更は補助手段。H1重複、表示崩れ、評価表欠落、本文順序崩れのリスクが出た時点で撤回し、本文修正ルートへ戻る。
- 設定側を触って失敗しただけで本文修正せずに終了しない。
- 内部作業文を公開本文から削除する。
- FAQ内の内部作業設問を削除し、必要なら読者向けFAQへ置き換える。
- 冒頭順を H1 → 評価スコア表 → リード文 → 公式テキストリンク → 最初のH2 に整える。
- 公開HTMLでH1重複、コード露出、内部作業語、評価表、公式リンク、canonical、noindexを再確認する。
## 終了状態Gate
- 作業は必ず PASS / FAIL_REQUEUED / BLOCKED_HUB_AUTH / BLOCKED_WP_AUTH / BLOCKED_WP_WRITE / BLOCKED_LAYOUT_RISK / BLOCKED_MISSING_TARGET / BLOCKED_UNKNOWN_ARTICLE_KIND のいずれかで終了する。ローディングし続けない。
- Hubが401/403/invalid token/token expired/timeout/DNS/network errorで読めない場合は、対象なし扱いにせず BLOCKED_HUB_AUTH / Hub認証不備 / 正本未確認 / 記事修正なし と報告する。
- WordPress認証または書き込み権限が不足する場合は BLOCKED_WP_AUTH または BLOCKED_WP_WRITE。
- GATE失敗のまま「確認済み」「完了」「公開OK」と書かない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-correction-must-fix-gate-v6-6 / 評価スコアcron 訂正必達Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-correction-must-fix-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 訂正必達Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: correction
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 訂正必達Gate v6.6
内部識別: CORRECTION_MUST_FIX_GATE
## 適用範囲
全サイト共通。AIfunIO、Nightlife夜遊び店舗、Nightlifeホテル、porn-fun単体サービス移行、今後追加される評価スコア系サイト・セット・記事タイプのcorrection cronすべてに適用する。
## 目的
訂正cronは、FAIL理由の要約、別担当への丸投げ、memory更新だけで終わらない。高品質テストや公開QAが出した具体的なFAIL理由を、1記事ずつ実際に修正し、再検査へ戻す。
## 必ず実修正する項目
- 常体Strict崩れ、言語混入、読者向けでない内部作業文。本文、FAQ、リスト、評価項目説明に「です」「ます」「ください」「ません」「ましょう」等の敬体が残る場合は修正する。
- 冒頭順崩れ、公式テキストリンク導線漏れ、PC表示で公式リンクが見つけにくい状態、表示文言に「公式」または「公式サイト」が無い公式タグ欠落。
- 評価表の順序崩れ、手書き表二重表示、Directory Core/辞書プラグイン入力漏れ、hotel-directory実キー違反。
- FAQ本文とFAQPage JSON-LDの不一致、FAQ本文欠落、qa-box形式崩れ。
- ✅/⚠️が0件、強み/注意点の装飾不足、太字/黄色アンダー/赤太字/ボックスの意味づけ不足、または過剰装飾。`<li>✅ ...</li>` / `<li>⚠️ ...</li>` のようなli先頭✅/⚠️は二重シグナルとして修正する。
- 内部運用語、Hub、cron、automation、Gate、PASS/FAIL、301、旧記事、制作パック、ローカルパス、認証情報の公開本文露出。
- H1重複、canonical/noindex、コード露出、表示崩れ、公開HTML 200確認漏れ。
## 訂正cronの進め方
1. Main Hubのcorrection_queue、quality_fail、public_qa_handoff、FactChecks、Referencesを横断して対象1記事を取る。
2. 高品質テストが示したFAIL理由を具体項目へ分解する。
3. WordPress本文、Directory Core/辞書プラグイン、FAQ JSON-LD、メタ、アイキャッチ、内部リンクなど、必要な箇所を実際に直す。
4. 公開URLまたはプレビューHTMLを再取得し、FAIL理由が解消したことを確認する。見本ページ実照合も行い、冒頭順、公式タグ、常体Strict、li先頭✅/⚠️禁止、FAQ整合を確認する。
5. Hubへ修正ログ、確認URL、残ったFact Risk、`ready_for_retest` または `task8_recheck` を返す。
## やってはいけないこと
- 「訂正候補を整理しました」「改善担当へ渡しました」だけでcorrection完了にしない。
- 明示された修正可能FAILを残したままPASS、完了、確認済みにしない。公式タグ欠落、敬体残り、li先頭✅/⚠️、見本ページ未照合が残る場合は `ready_for_retest` / `task8_recheck` に戻さない。
- 認証が読めないまま対象なし、FAILなし、完了としない。
- 10は301を実行しない。301はporn-fun 11 cronだけが扱う。
## BLOCKED / HOLD
- Hub認証が読めない場合はBLOCKED_HUB_AUTH。
- WordPress認証または書き込み権限不足はBLOCKED_WP_AUTH / BLOCKED_WP_WRITE。
- 対象記事、旧URL/新URL、投稿IDが不明ならBLOCKED_MISSING_TARGET。
- 法務、安全、年齢、決済、退会、規約、金融、技術的危険で追加確認なしに断定できない場合はFact Risk/HOLDにし、危険な断定で修正しない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-schedule-and-limits-v6-6 / 評価スコアcron 起動時間・処理上限Manual v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-schedule-and-limits-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron 起動時間・処理上限Manual v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron 起動時間・処理上限Manual v6.6
## 共通上限
- AIfunIO / Nightlifeは0-A候補在庫最大30件、0-B採用済み/1-A待ち最大10件、同時本流記事最大3件。
- 制作、公開、高品質テスト、訂正、改善担当ハンドオフは1回1記事ずつ。
- 棚処理の0-A/0-Bは複数候補を扱ってよい。
- 起動時間・頻度・処理上限はcron本文から削らない。個別cron依頼文にも必ず入れる。
## AIfunIO
- 収集cron: JST 02:00 / 1日1回 / 1回最大10件。
- 検査cron: JST 00:30, 06:30, 14:30, 18:30 / 1回最大6件。
- 制作cron: JST 08:00開始、約8時間ごと / 1回1記事。
- 高品質テストcron: JST 10:00開始、約8時間ごと / 1回1記事。
- 訂正cron: JST 21:00 / FAILキューがある場合のみ / 1回1記事。
- 改善担当ハンドオフcron: JST 23:00 / 1回1記事。
## Nightlife夜遊び店舗
- 収集cron: JST 02:10 / 1日1回 / 1回最大10件。
- 検査cron: JST 00:40, 06:40, 14:40, 18:40 / 1回最大6件。
- 制作cron: JST 08:30開始、約8時間ごと / 1回1記事。
- 高品質テストcron: JST 10:30開始、約8時間ごと / 1回1記事。
- 訂正cron: JST 21:30 / FAILキューがある場合のみ / 1回1記事。
- 改善担当ハンドオフcron: JST 23:10 / 1回1記事。
## Nightlifeホテル
- 収集cron: JST 02:20 / 1日1回 / 1回最大10件。
- 検査cron: JST 00:50, 06:50, 15:00, 19:00 / 1回最大6件。
- 制作cron: JST 09:00開始、約8時間ごと / 1回1記事。
- 高品質テストcron: JST 11:00開始、約8時間ごと / 1回1記事。
- 訂正cron: JST 22:00 / FAILキューがある場合のみ / 1回1記事。
- 改善担当ハンドオフcron: JST 23:20 / 1回1記事。
## porn-fun単体サービス移行
- 移行期は0-A在庫40〜60件を維持する。
- 収集cron: JST 01:00, 07:00, 13:00, 19:00 / 1回最大15件。
- 検査cron: JST 00:30, 04:30, 08:30, 12:30, 16:30, 20:30 / 1回最大10件。
- 制作cron: JST 00:00開始、約2時間ごと / 1回1記事。
- 高品質テストcron: JST 01:00開始、約2時間ごと / 1回1記事。
- 訂正cron: JST 10:30開始、約6時間ごと / FAILキューがある場合のみ / 1回1記事。
- 改善担当ハンドオフcron: JST 23:30 / 1回1記事。
- 11 cron 301実行・リダイレクト確認: 約6時間ごと / 1回最大3件、初回または失敗が続く場合は1件。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-model-reasoning-config-gate-v6-6 / 評価スコアcron model / reasoningEffort 設定Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-model-reasoning-config-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron model / reasoningEffort 設定Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron model / reasoningEffort 設定Gate v6.6
評価スコアcronは、記事品質、公開QA、訂正判断、Hub正本確認を扱うため、作成時に model と reasoningEffort を明示し、その環境で指定できる範囲でなるべく最新・高性能・高推論にする。
## 作成時の必須指定
- model: その環境で選択できる範囲で、なるべく最新の高性能GPTモデルを指定する。高性能モデルを選べるのに旧世代モデル、低性能モデル、mini系、既定値のまま作成しない。
- reasoningEffort: その環境で選択できる範囲で最高値を指定する。xhigh が選べる場合は xhigh。xhigh がない場合も、選択可能な最大値にする。
- 収集、検査、制作、高品質テスト、訂正、改善担当ハンドオフ、301実行/分類の全cronで、可能な限り最高推論を標準にする。
## stage別標準
- collect: reasoningEffort=xhigh
- inspect: reasoningEffort=xhigh
- produce: reasoningEffort=xhigh
- high-quality-test: reasoningEffort=xhigh
- correction: reasoningEffort=xhigh
- improvement-handoff: reasoningEffort=xhigh
- redirect-301: reasoningEffort=xhigh
## 作成後確認
- automation作成後、設定画面または作成結果で model と reasoningEffort が指定どおりか確認する。
- 既存automationを更新する場合も、作り直しではなく可能なら設定更新で model / reasoningEffort を上げる。
- 指定可能な範囲で最高にした場合は、実際に設定した model / reasoningEffort を報告する。
- model / reasoningEffort を指定できない、設定確認ができない、または高くできるのに medium/既定値のままになる場合は BLOCKED_AUTOMATION_MODEL_CONFIG。
- BLOCKED_AUTOMATION_MODEL_CONFIG の場合、低い設定のまま作成完了、PASS、運用開始扱いにしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6 / 評価スコアcron TaskTemplate実体レコードGate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron TaskTemplate実体レコードGate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron TaskTemplate実体レコードGate v6.6
## 目的
各cronは、Hub参照一覧本文に `TaskTemplates/...` の文字列があるだけでは通過扱いにしない。対象WORKFLOW_IDの `agent_pack&article_key=<WORKFLOW_ID>` 内で、TaskTemplateを実体レコードとして確認する。
## 必須確認
対象サイト・対象工程ごとに、agent_pack内のレコードで以下を確認する。
- `record_type=TaskTemplates`
- `task_template_id`
- `workflow_id`
- `article_type_id`
- `article_kind`
- `content_set`
- `task_code`
- `task_name`
- `completion_rule`
- `required_outputs`
- `status=active`
## 対象
AIfunIO、Nightlife夜遊び店舗、Nightlifeホテル、porn-fun単体サービス移行の全工程に適用する。porn-funのみの例外修正にしない。
## 不足時
参照一覧本文の文字列だけで、上記の実体フィールドが確認できない場合は `BLOCKED_HUB_REFERENCE_INCOMPLETE`。候補収集、検査再実行、本文制作、公開判断、301実行など通常cron本作業へ進まない。
## 共通修正範囲
このGateは共通Gateである。新しい評価スコア系サイト、セット、工程を追加する場合も、TaskTemplates本体とagent_pack実体レコード露出の両方を作る。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6 / 評価スコアcron Inspect ready / Fact Risk Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron Inspect ready / Fact Risk Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: inspect
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron Inspect ready / Fact Risk Gate v6.6
## 適用範囲
全サイト共通。AIfunIO、Nightlife夜遊び店舗、Nightlifeホテル、porn-fun単体サービス移行、今後追加される評価スコア系サイト・セット・記事タイプのinspect cronすべてに適用する。
## 目的
検査cronは公式情報だけを過剰に要求して制作readyを0件にし続けない。公式情報、検索上位サイト、既存記事、補助情報、SERP傾向、検索意図、共起語を分けて記録し、危険な断定だけを止める。
## 参照ソースの扱い
- 公式/一次情報: 公式サイト、公式予約ページ、公式SNS、公式FAQ、料金、規約、特商法、運営会社、年齢確認、決済、退会、問い合わせ。
- 補助情報: 検索上位サイト、比較/レビュー/まとめ記事、旧記事、既存公開記事、ASP説明、SNSの評判、SERPスニペット。
- 構成情報: 検索意図、上位傾向、共起語、読者が気にする見出し、FAQ候補、メリット/デメリット観点。
## 必須記録
References / FactChecks には `source_type`、`use_status`、`check_status`、`confidence`、`fact_risk`、`used_for` をできる限り入れる。空欄のまま公式・補助・構成材料を混ぜない。
## ready表記の分離
- 0-A候補、1-A参照URL候補、1-B URL検証で使う `check_status=ready` は、候補・URL・材料が次工程へ渡せるという意味であり、制作cronへ投入できる制作readyではない。
- 制作readyとして数えてよいのは、inspectが `readiness_class=READY_STRONG` または `readiness_class=READY_WITH_FACT_RISK` を明示し、制作パック作成に必要な対象名、対象URL、記事種別、slug候補、参照URL、Fact Risk、確認中項目、禁止断定項目を渡したものだけ。
- `use_status=candidate_article`、`use_status=0a_candidate`、`use_status=reference_ready`、汎用の `check_status=ready` だけのレコードを「制作readyがある」と表示しない。
- 表示上は「候補ready」「参照URL ready」「制作投入ready」を分ける。制作投入ready数は READY_STRONG と READY_WITH_FACT_RISK の合計だけにする。
## 制作ready分類
- READY_STRONG: 公式URL、基本情報、高リスク項目の根拠、検索意図、制作パックがそろっている。
- READY_WITH_FACT_RISK: 公式URLまたは安全に扱える一次導線があり、検索上位/既存記事/補助情報で本文構成が作れる。未確認項目はFact Riskとして制作パックへ渡し、本文で断定しない。
- HOLD: 公式URL不明、単体サービス判定不能、年齢/決済/退会/規約/法務/安全など高リスク項目に危険な断定が必要、または新URL/slugなど制作前提が欠ける。
- EXCLUDE: まとめ/ランキング/比較記事、サービス終了、重複、対象外ジャンル、単体サービス記事ではない候補。
## READY_WITH_FACT_RISKで渡してよい例
- 評判や使い勝手は上位サイト/既存記事/レビュー傾向を補助情報として整理できる。
- 料金の細部が公式で完全に取れなくても、本文で「料金は公式確認が必要」と注意し、評価表の断定値にしない。
- 退会/問い合わせなどが見つからない場合でも、危険な断定を避け、注意点として制作パックに残せる。
- 補足情報・細かな仕様・利用感などは「確認中」「要確認」として本文やFAQの断定を避ければ制作へ渡してよい。
## HOLDにする例
- 公式URLまたは公式に準じる到達先が確認できない。
- 年齢制限、決済、安全、規約、退会、法務、金融、技術的危険について、断定しないと本文が成立しない。
- 旧記事URLだけで新辞書記事URL/slugや対象名が確定できない。
## inspect cronの成果物
inspect cronは0件で終わる場合も、理由を「公式不足」だけにしない。各候補について、READY_STRONG / READY_WITH_FACT_RISK / HOLD / EXCLUDE、公式情報、補助情報、検索上位/SERP材料、Fact Risk、次に必要な確認をHubへ残す。
## 制作側への渡し方
READY_WITH_FACT_RISKで渡す場合、produce cronへ「確認中で本文に残してよい項目」と「公開本文で断定禁止の項目」を分けて渡す。produce cronは確認中項目を確定値として表に入れず、読者向け注意・補足・FAQの慎重表現にする。
検査cron v6.7 追記 / INSPECT_NOTICE_READINESS:
- Rules/evaluation-score-cron-inspect-notice-readiness-rule-v6-7
- Manuals/evaluation-score-cron-inspect-notice-readiness-gate-v6-7
- Checks/evaluation-score-cron-inspect-notice-readiness-check-v6-7
- TaskTemplates/evaluation-score-cron-inspect-notice-readiness-template-v6-7
- References/evaluation-score-cron-notice-text-examples-v6-7
- 「記載なし」「公式リンクなし」「調査したが情報見つからず」「公式情報を確認できず」「閉鎖・停止の可能性」「法務・年齢・地域差」は、原則として注意喚起付きで制作へ渡す soft issue として扱う。
- 2回以上同じsoft issueで止まった候補は、明確なhard blockがなければ notice_requirements を作り、readiness_class=READY_WITH_NOTICE、use_status=ready_for_produce、next_stage=produce で制作へ渡す。
- 採点は 75点以上 READY、60〜74点 READY_WITH_NOTICE、45〜59点 NOTICE_REQUIRED、44点以下 NEEDS_REPAIR。hard block があれば HARD_BLOCK。
- hard block は、掲載・リンク・誘導自体が明確に禁止、未成年誘導、違法回避、虚偽保証、秘密値・個人情報露出、確認不能なまま断定が必要な場合などに限定する。
- 法務・年齢制限・管轄違い・規約差のリスクは、掲載自体が禁止でない限り、記事本文に読者向けの注意喚起を入れる形で制作へ渡す。
- 公開本文に「調査中」「Fact Risk」「Gate」「cron」「NOTICE_REQUIRED」「HARD_BLOCK」「ready_for_produce」などの内部語を出さない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-site-gates-v6-6 / 評価スコアcron サイト別Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-site-gates-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: 評価スコアcron サイト別Gate v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# 評価スコアcron サイト別Gate v6.6
## AIfunIO
- H1はツール名またはサービス名のみ。
- SEOタイトルは「ツール名 + 評判 / 評価レビュー」系を基本にする。
- 料金、無料枠、商用利用、権利、API、対応言語、制限、安全性は公式情報を優先する。
- プレースホルダー、未調査ラベル、推測値を基本表や評価表に残さない。
- 評価表、基本情報、補足情報、FAQはページ言語に合わせる。
## Nightlife夜遊び店舗
- H1は店名または施設名のみ。
- SEOタイトルKWは「店舗名 + 評価・評判・レビュー」。
- 公式サイト、公式SNS、予約ページ、料金、営業時間、エリア、支払い、注意事項を優先確認する。
- 断定しにくい内容はFact Riskとして残し、危険な断定で公開しない。
- 年齢制限、安全、料金、営業情報の危険な誤りは停止または修正対象にする。
## Nightlifeホテル
- H1はホテル名のみ。
- SEOタイトルKWは「ホテル名 + デリヘル呼べる?」。
- 評価表を本文HTMLで手書きしない。Directory Core / 辞書プラグインの hotel-directory 評価スコア表へ入力する。
- hotel-directory実キーは location、price_value、cleanliness、facilities、nightlife_use、overall。
- official_info、price_clarity、access_area、callability、entry_route などの推測キーは使わない。
- 「デリヘルを呼べるか」は読者の主目的として扱うが、公式が用途を保証するものではない。呼べる候補として検討できる、事前確認が必要、という整理にする。
## porn-fun単体サービス移行
- H1はサービス名のみ。サービス名以外の「評判」「レビュー」「評価」「安全」「料金」「使い方」などのSEO語をH1に混ぜない。
- SEOタイトルは「サービス名 + 評判 / レビュー / 評価」系を基本にし、必要に応じて年齢・料金・退会など読者検索意図をtitle側へ入れる。H1へSEOタイトルを混入しない。
- 単体サービス評判記事を辞書記事へ移行する。まとめ、ランキング、比較記事は通常記事のまま残す。
- 旧記事にアイキャッチがある場合、新辞書記事へ同じfeatured_media/_thumbnail_idを引き継ぐ。新規推測画像で置き換えない。
- 新辞書記事の公開QA後に旧URLを301する。新辞書記事の公開QA前に旧URLを301しない。
- 8は公開QAと301_ready/redirect_ready作成まで、10は訂正反映と8再検査返却まで、11は301実行と301_failed分類を担当する。
- 手書き基本情報表、手書き評価スコア表、内部運用語、旧記事、301、制作heartbeatなどの公開本文露出はFAILまたは訂正対象。
- 旧通常記事から移した手書き表を新辞書記事の公開本文に残したままPASSにしない。
- 対象は、旧記事由来の手書き基本情報表、手書き評価スコア表、星評価や点数を本文HTMLで手書きした表、Directory Core / 辞書プラグインのネイティブ表示と重複する表。
- adult-services用のネイティブ表テンプレート未保存などで一時的な本文内フォールバックが必要な場合でも、表は1箇所だけにする。ネイティブ表示と手書き表を同時に出さない。
- ndc-review-score 等のネイティブ評価表示と本文HTML手書き評価表が同時に出ていればFAIL。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
porn-fun-migration-301-cron-gate-v6-6 / porn-fun移行 11 cron 301実行・リダイレクト確認Gate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: porn-fun-migration-301-cron-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: porn-fun移行 11 cron 301実行・リダイレクト確認Gate v6.6
scope: autopost-cron
site_id: porn-fun-migration
article_type_id: evaluation_score
language_id: ja
task_code: redirect-301
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# porn-fun移行 11 cron 301実行・リダイレクト確認Gate v6.6
## 対象
TaskTemplates/evaluation-score-porn-fun-migration-redirect-301-v6-6 専用。8高品質テストがPASSしてHubへ301_ready / redirect_ready / 301_ready_retryと記録した記事だけを扱う。
## 11 cronの役割
- 旧通常記事URLから新辞書記事URLへの301を実行し、リダイレクト結果を確認してHubへ記録する。
- heartbeatは増やさず、11 cron一本で301実行、301_failedの原因分類、301_ready_retryへの戻し、BLOCKED_*停止まで扱う。
- task8未PASS、FAIL_REQUEUED、Task10修正後の再検査待ちは301しない。
- 旧URLと新URLが両方あり、同一ドメイン内であることを確認する。
- 新URLが200、noindexなし、H1重複なし、内部作業文なし、手書き表二重表示なしであることを確認する。
- 301_failedはTask10へ戻さない。本文修正が必要な失敗だけTask10へ戻す。
- URL/権限/redirect設定/API/プラグインの失敗は11 cron内で分類する。
- 外部ドメインへの転送、新規外部送信先、権限変更、削除、危険操作が必要な場合はBLOCKED_*で止める。
## 失敗分類
- BLOCKED_OLD_URL_MISSING: 旧URLが見つからない。
- BLOCKED_NEW_URL_NOT_OK: 新URLが200でない、またはnoindex等で公開先として不適切。
- REDIRECT_TARGET_MISMATCH: 既存リダイレクト先が新URLと違う。
- REDIRECT_LOOP: リダイレクトループがある。
- BLOCKED_DOMAIN_MISMATCH: 旧URLと新URLが同一ドメインではない、または外部ドメインが混じる。
- BLOCKED_WP_AUTH: WordPress認証または権限が不足している。
- BLOCKED_REDIRECT_WRITE: リダイレクト設定の書き込みに失敗した。
- BLOCKED_HUB_AUTH: Hub正本を読めない。
- BLOCKED_NEEDS_USER_CONFIRMATION: 危険操作または未承認操作が必要。
## 完了状態
- 301_done: 旧URLが新URLへ301され、最終URLが新URLで200を返す。
- 301_ready_retry: 一時的失敗で安全に再試行できる。
- 301_failed: 失敗理由を分類済みだが、次回以降の再確認が必要。
- BLOCKED_*: ユーザー確認または別途対応が必要。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
autopost-cron-article-type-routing-v6-6 / Autopost cron 記事タイプ分岐Manual v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: autopost-cron-article-type-routing-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: Autopost cron 記事タイプ分岐Manual v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# Autopost cron 記事タイプ分岐Manual v6.6
現在の主対象は評価スコア系だが、今後はまとめ、ランキング、比較、速報、通常、ブログ、量産、つぶやき等が増える前提で分ける。
## 評価スコア系
CRON_FAMILY=evaluation_score。評価表、基本情報、公式リンク、FAQ、Directory Coreまたは辞書プラグイン入力、公開QAまで含む。automation名には必ず「評価スコアページ」を入れる。
ARTICLE_KINDは少なくとも evaluation_score_ai_review、evaluation_score_nightlife_store、evaluation_score_nightlife_hotel、evaluation_score_dictionary_migration を分ける。今後サイトやセットが増えても、CRON_FAMILY=evaluation_scoreの中で content_set / workflow_id / site_id を分け、H1/SEO/評価表/FAQ/装飾Gateを継承する。
## 評価スコアではない記事タイプ
summary、ranking、comparison、breaking、normal、blog、mass、tweet などは評価スコアcronのTaskTemplatesから作成しない。専用のCRON_FAMILYとテンプレートを別に持つ。
- summary: まとめ記事。評価スコア表、Directory Core入力、評価スコアGateを標準適用しない。
- ranking: ランキング記事。順位根拠、比較軸、更新日、対象範囲を別Gateで扱う。
- comparison: 比較記事。比較表、比較条件、選び方を別Gateで扱う。
- breaking: 速報記事。鮮度、日時、一次情報、更新履歴を別Gateで扱う。
- normal: 通常記事。検索意図、本文構成、内部リンクを別Gateで扱う。
- blog: ブログ用記事。署名、体験、口調、カテゴリ運用を別Gateで扱う。
- mass: 量産用記事。重複、薄さ、テンプレート露出を別Gateで扱う。
- tweet: つぶやき用。短文、SNS導線、公開先を別Gateで扱う。
## 不明な記事タイプ
ARTICLE_KINDまたはCRON_FAMILYが判定できない場合は BLOCKED_UNKNOWN_ARTICLE_KIND。無理にevaluation_scoreへ寄せない。
評価スコアページ用cronが、まとめ/ランキング/比較/速報/通常/ブログ/量産/つぶやき用の記事を拾った場合はEXCLUDEまたはBLOCKED_UNKNOWN_ARTICLE_KINDにし、評価スコア記事として制作しない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-release-checksheet-v6-6 / CODE-YUKI 評価スコアcron リリース前チェックシート v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
manual_id: evaluation-score-cron-release-checksheet-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
title: CODE-YUKI 評価スコアcron リリース前チェックシート v6.6
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
language_id: ja
task_code: *
version: 2026-05-18-v6.6
status: active
visibility: agent
body_format: markdown
manual_body:
# CODE-YUKI 評価スコアcron リリース前チェックシート v6.6
YUKIはこのGATEを自分で保持する。通らないものはリリースしない。ユーザーの目視確認を公開QAの代替にしない。
## Gate 0 Hub参照
- Hub参照パス一覧がagent_packで読める。
- 共通Gate、工程連携、公開本文境界/装飾、訂正/終了状態、起動時間/上限、サイト別Gate、記事タイプ分岐、TaskTemplateが読める。
- TaskTemplateは参照一覧本文の文字列だけでなく、対象WORKFLOW_IDのagent_pack内で `record_type=TaskTemplates`、`task_template_id`、`workflow_id`、`task_code`、`completion_rule`、`required_outputs` を持つ実体レコードとして確認できる。
- inspectは公式情報だけを過剰要求せず、全サイト共通でREADY_STRONG / READY_WITH_FACT_RISK / HOLD / EXCLUDEを分ける。検索上位、既存記事、補助情報、SERP傾向をsource_type付きで記録する。汎用の `check_status=ready` を制作投入readyとして数えない。
- 読めない場合は BLOCKED_HUB_AUTH。完了扱いにしない。
## Gate 1 スレッド立ち上げ
- スレッド立ち上げ文が詳細で、対象サイト、記事タイプ、CONTENT_SET、WORKFLOW_ID、読むHubパス、復元する棚、既存automation確認、停止条件を含む。
- スレッド立ち上げ文だけでautomationを作成しない。
- 起動時の報告項目が明確。
## Gate 2 個別cron依頼文
- 依頼文は貼り付けやすいプレーンテキスト。
- 依頼文1つで作成するautomationは1件だけ。
- automation名、TASK_STAGE、ARTICLE_KIND、CRON_FAMILY、WORKFLOW_ID、推奨頻度、起動時間、処理上限、model、reasoningEffort、Hub参照パスを含む。
- model はなるべく最新・高性能、reasoningEffort は選択可能な最高値。高くできるのに medium/既定値のままにしない。
- 依頼文内にHTML表を入れない。
## Gate 3 cron連携
- collectは候補棚、inspectは候補ready/参照URL ready/制作投入readyを分けた棚、produceは公開URLと制作ログと8への引き渡し、high_quality_testはPASS/FAILと訂正キュー、correctionは8再検査返却、improvement_handoffは改善候補とlock状態、porn-fun redirect_301は301_done/301_failedを出す。
- 前工程の成果物なしに次工程が勝手に進まない。
- 同時本流記事は原則3件以内。制作・公開・高品質テスト・訂正は1記事ずつ。
- inspectは制作投入readyを READY_STRONG と READY_WITH_FACT_RISK に分け、READY_WITH_FACT_RISKも制作cronへ渡してよい。ただし汎用 `check_status=ready` だけの候補を制作投入readyとして数えず、本文で未確認事項を断定せず、Fact Riskと追加確認候補を制作パックに残す。
- 不明項目は確認中として扱ってよい。ただし高リスク項目を確定値として本文・評価表・FAQに出さない。
- produceはTask8引き渡し前に最低品質Gateを前倒し実施する。装飾0件、FAQ不一致、公式リンク導線漏れ、公式タグ欠落、常体Strict崩れ、li先頭✅/⚠️、内部運用語露出、評価表/Directory Core不備など、直せる不備を残したまま ready_for_high_quality_test にしない。
- correctionはFAIL理由を実修正してから ready_for_retest / task8_recheck に戻す。修正候補整理、改善担当ハンドオフ、memory更新だけで訂正完了にしない。公式タグ欠落、敬体残り、li先頭✅/⚠️、見本ページ未照合が残る場合は再検査返却しない。
- produceは production_quality_score を付ける。0〜49点はTask8へ渡さず、通常の品質不足は production_quality_fail_requeued / needs_production_revision として制作棚へ戻す。BLOCKEDは認証、対象不明、外部確認不能など停止条件だけに限定する。50〜80点以上で渡す場合も quality_delta_items を必ず添える。
- high_quality_testは不足点を quality_delta_items として category / location / current_issue / required_fix / evidence_html_or_url / severity / retest_condition 付きで訂正cronへ渡す。
- correctionは quality_delta_items を潰し、correction_completion_score=100 と100点化チェックシートを満たすまで ready_for_retest にしない。
## Gate 4 記事品質
- 例示された評価ページ水準と同等に、H1、評価表、リード、公式テキストリンク、最初のH2、本文判断材料、FAQ、装飾、公開HTML確認がそろう。
- 公式テキストリンクはPC表示で本文右側または右寄せ、読者が本文導線として見つけられる位置にあり、表示文言に「公式」または「公式サイト」を含む。
- 日本語ページは常体Strict。本文、FAQ、リスト、評価項目説明に「です」「ます」「ください」「ません」「ましょう」等の敬体が残る場合はFAIL。
- H1重複、評価表順序崩れ、公式リンク漏れ、公式タグ欠落、未調査ラベル、言語不一致、コード露出、内部運用語露出、FAQ不一致、✅/⚠️不足、li先頭✅/⚠️、手書き表二重表示はFAIL。
- AIfunIOはH1=ツール名/サービス名のみ、SEOタイトル=ツール名+評判/評価レビュー系。Nightlife店舗はH1=店名/施設名のみ、SEOタイトルKW=店舗名+評価・評判・レビュー。NightlifeホテルはH1=ホテル名のみ、SEOタイトルKW=ホテル名+デリヘル呼べる?。porn-funはH1=サービス名のみ、SEOタイトル=サービス名+評判/レビュー/評価系。
- 参照4URL(Errante、ThinkMarkets、Pollo AI、CrowdWorks AI)をHubまたは公開URLから参照でき、対象ジャンルに合わせて実照合できる。
- 公開後HTMLをCODE側で取得して確認する。
- 高品質テストは厳しくチェックする工程であり、制作cronの最低品質作業を代行しない。制作cronはできる限り仕上げ、高品質テストで落ちたものは訂正cronが確実に直して再検査へ返す。
## Gate 5 サイト別
- AIfunIO、Nightlife店舗、Nightlifeホテル、porn-fun移行のサイト別Gateに合格する。
- Nightlifeホテルはhotel-directory実キー以外を使わない。
- porn-fun移行は301_ready前に公開QAを通す。301は11 cronだけが実行する。
## Gate 6 リリース判定
- 全GateがPASSで公開または更新。
- FAILは訂正へ、認証不備はBLOCKED、記事タイプ不明はBLOCKED_UNKNOWN_ARTICLE_KIND。
- GATE失敗のまま「確認済み」「完了」「公開OK」と書かない。
検査cron v6.7 追記 / INSPECT_NOTICE_READINESS:
- Rules/evaluation-score-cron-inspect-notice-readiness-rule-v6-7
- Manuals/evaluation-score-cron-inspect-notice-readiness-gate-v6-7
- Checks/evaluation-score-cron-inspect-notice-readiness-check-v6-7
- TaskTemplates/evaluation-score-cron-inspect-notice-readiness-template-v6-7
- References/evaluation-score-cron-notice-text-examples-v6-7
- 「記載なし」「公式リンクなし」「調査したが情報見つからず」「公式情報を確認できず」「閉鎖・停止の可能性」「法務・年齢・地域差」は、原則として注意喚起付きで制作へ渡す soft issue として扱う。
- 2回以上同じsoft issueで止まった候補は、明確なhard blockがなければ notice_requirements を作り、readiness_class=READY_WITH_NOTICE、use_status=ready_for_produce、next_stage=produce で制作へ渡す。
- 採点は 75点以上 READY、60〜74点 READY_WITH_NOTICE、45〜59点 NOTICE_REQUIRED、44点以下 NEEDS_REPAIR。hard block があれば HARD_BLOCK。
- hard block は、掲載・リンク・誘導自体が明確に禁止、未成年誘導、違法回避、虚偽保証、秘密値・個人情報露出、確認不能なまま断定が必要な場合などに限定する。
- 法務・年齢制限・管轄違い・規約差のリスクは、掲載自体が禁止でない限り、記事本文に読者向けの注意喚起を入れる形で制作へ渡す。
- 公開本文に「調査中」「Fact Risk」「Gate」「cron」「NOTICE_REQUIRED」「HARD_BLOCK」「ready_for_produce」などの内部語を出さない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
Check指令全文
evaluation-score-cron-correction-must-fix-check-v6-6 / 評価スコアcron 訂正必達Check v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-correction-must-fix-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron 訂正必達Check v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: correction
severity: blocker
status: active
notes: 全サイト共通。correction cronはFAIL理由を読むだけ、改善担当へ渡すだけ、memory更新だけで完了しない。quality_delta_items、本文、FAQ、装飾、常体Strict、公式リンク位置/公式タグ、サイト別H1/SEOタイトル分離、評価表、Directory Core/辞書プラグイン、構造化データ、li先頭✅/⚠️禁止、見本ページ実照合、内部運用語露出など修正可能なFAILを実修正し、公開HTMLまたはプレビューHTMLを再確認してcorrection_completion_score=100を満たしてからready_for_retest/task8_recheckへ戻す。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-hub-reference-check-v6-6 / 評価スコアcron Hub参照完全性Check v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-hub-reference-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron Hub参照完全性Check v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: *
severity: blocker
status: active
notes: Hub参照パス一覧、共通Gate、工程連携、公開本文境界/装飾、制作前倒し最低品質、訂正必達、訂正/終了状態、起動時間/上限、サイト別Gate、記事タイプ分岐、リリース前チェックシート、サイト別TaskTemplatesがagent_packで読めない場合はBLOCKED_HUB_AUTHまたはHub正本不足としてリリースしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-inspect-ready-fact-risk-check-v6-6 / 評価スコアcron Inspect ready / Fact Risk Check v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-inspect-ready-fact-risk-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron Inspect ready / Fact Risk Check v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: inspect
severity: blocker
status: active
notes: 全サイト共通。inspect cronは公式情報だけを過剰要求せず、READY_STRONG / READY_WITH_FACT_RISK / HOLD / EXCLUDEを分ける。検索上位、既存記事、補助情報、SERP傾向、検索意図、共起語をsource_type/fact_risk付きで記録する。0-A候補や1-B URL検証の汎用check_status=readyを制作投入readyとして数えない。READY_WITH_FACT_RISKは制作へ渡せるが、確認中/要確認項目を本文で断定しない。
検査cron v6.7 追記 / INSPECT_NOTICE_READINESS:
- Rules/evaluation-score-cron-inspect-notice-readiness-rule-v6-7
- Manuals/evaluation-score-cron-inspect-notice-readiness-gate-v6-7
- Checks/evaluation-score-cron-inspect-notice-readiness-check-v6-7
- TaskTemplates/evaluation-score-cron-inspect-notice-readiness-template-v6-7
- References/evaluation-score-cron-notice-text-examples-v6-7
- 「記載なし」「公式リンクなし」「調査したが情報見つからず」「公式情報を確認できず」「閉鎖・停止の可能性」「法務・年齢・地域差」は、原則として注意喚起付きで制作へ渡す soft issue として扱う。
- 2回以上同じsoft issueで止まった候補は、明確なhard blockがなければ notice_requirements を作り、readiness_class=READY_WITH_NOTICE、use_status=ready_for_produce、next_stage=produce で制作へ渡す。
- 採点は 75点以上 READY、60〜74点 READY_WITH_NOTICE、45〜59点 NOTICE_REQUIRED、44点以下 NEEDS_REPAIR。hard block があれば HARD_BLOCK。
- hard block は、掲載・リンク・誘導自体が明確に禁止、未成年誘導、違法回避、虚偽保証、秘密値・個人情報露出、確認不能なまま断定が必要な場合などに限定する。
- 法務・年齢制限・管轄違い・規約差のリスクは、掲載自体が禁止でない限り、記事本文に読者向けの注意喚起を入れる形で制作へ渡す。
- 公開本文に「調査中」「Fact Risk」「Gate」「cron」「NOTICE_REQUIRED」「HARD_BLOCK」「ready_for_produce」などの内部語を出さない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-model-reasoning-config-check-v6-6 / 評価スコアcron model / reasoningEffort 設定Check v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-model-reasoning-config-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron model / reasoningEffort 設定Check v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: *
severity: blocker
status: active
notes: 個別cron作成依頼文に model と reasoningEffort を含める。model はその環境で選べる範囲でなるべく最新・高性能、reasoningEffort は選べる範囲で最高値にする。xhigh が選べる場合は全cronで xhigh。高くできるのに medium/既定値のまま、または設定確認不可なら BLOCKED_AUTOMATION_MODEL_CONFIG とし、作成完了扱いにしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-produce-pre-hq-minimum-check-v6-6 / 評価スコアcron 制作前倒し最低品質Check v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-produce-pre-hq-minimum-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron 制作前倒し最低品質Check v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: produce
severity: blocker
status: active
notes: 全サイト共通。produce cronはTask8引き渡し前に最低品質Gateを通す。冒頭構成、サイト別H1/SEOタイトル分離、常体Strict、公式リンク位置、公式タグ、評価表、FAQ本文/FAQ JSON-LD、Directory Core/辞書プラグイン、✅/⚠️、li先頭✅/⚠️禁止、装飾バランス、見本ページ実照合、内部運用語、H1/canonical/noindexをセルフチェックし、装飾0件やFAQ不一致など直せる不備を残したままready_for_high_quality_testにしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-quality-score-handoff-check-v6-6 / 評価スコアcron 品質スコア・差分引き渡しCheck v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-quality-score-handoff-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron 品質スコア・差分引き渡しCheck v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: *
severity: blocker
status: active
notes: 全サイト共通。produceはproduction_quality_scoreとquality_delta_itemsを出し、0〜49点はTask8へ渡さない。通常の品質不足はproduction_quality_fail_requeued / needs_production_revisionとして制作棚へ戻し、BLOCKEDは認証、対象不明、外部確認不能など停止条件だけに限定する。high-quality-testはquality_score_before、target_score=100、quality_delta_items、minimum_gate_failures、retest_required=trueをHubへ残す。correctionはquality_delta_itemsを潰し、correction_completion_score=100と100点化チェックシートを満たすまでready_for_retestにしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-release-checksheet-gate-v6-6 / CODE-YUKI 評価スコアcron リリース前GATE v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-release-checksheet-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: CODE-YUKI 評価スコアcron リリース前GATE v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: *
severity: blocker
status: active
notes: Gate 0からGate 6までPASSしないものはリリースしない。ユーザー目視確認を公開QAの代替にしない。FAILは訂正、認証不備はBLOCKED、記事タイプ不明はBLOCKED_UNKNOWN_ARTICLE_KIND。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-style-reference-pages-gate-v6-6 / 評価スコアcron 文章構造・装飾雰囲気 参照ページGate v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-style-reference-pages-gate-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron 文章構造・装飾雰囲気 参照ページGate v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: *
severity: blocker
status: active
notes: Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6と、References/style-ref-invest358-errante-review、References/style-ref-invest358-thinkmarkets-opening-layout、References/style-ref-invest358-thinkmarkets-review、References/style-ref-aifan-pollo-ai-review、References/style-ref-aifan-crowdworks-ai-review、References/tone-ref-invest358-errante-review、References/tone-ref-invest358-thinkmarkets-review、References/tone-ref-aifan-pollo-ai-review、References/tone-ref-aifan-crowdworks-ai-review、公開URL https://invest358.com/ja/errante-review/、https://invest358.com/ja/thinkmarkets-review/、https://aifan.io/ja/pollo-ai-review/、https://aifan.io/ja/crowdworks-ai-review/ がagent_packまたはManualで読めること。文章構造、装飾雰囲気、✅/⚠️優先装飾、公式テキストリンク導線、公式タグ、常体Strict、li先頭✅/⚠️禁止を見本ページ実照合できない場合はリリースしない。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
evaluation-score-cron-tasktemplate-agent-pack-real-record-check-v6-6 / 評価スコアcron TaskTemplate実体レコードCheck v6.6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
check_id: evaluation-score-cron-tasktemplate-agent-pack-real-record-check-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
check_name: 評価スコアcron TaskTemplate実体レコードCheck v6.6
target: autopost-cron-template
scope: autopost-cron
site_id: *
article_type_id: evaluation_score
task_template_id: evaluation_score
task_code: *
severity: blocker
status: active
notes: 各cronは対象WORKFLOW_IDのagent_pack内で record_type=TaskTemplates / task_template_id / workflow_id / task_code / task_name / completion_rule / required_outputs を持つ実体レコードを確認する。参照一覧本文の文字列だけなら BLOCKED_HUB_REFERENCE_INCOMPLETE。AIfunIO、Nightlife店舗、Nightlifeホテル、porn-fun移行の全工程に適用する。
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
TaskTemplate指令全文
AIfunIO
収集 / evaluation-score-aifunio-collect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-aifunio-collect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: aifunio-directory-review-ja
article_type_id: evaluation_score
article_kind: evaluation_score_ai_review
content_set: aifunio_ai_service
task_code: collect
task_name: AIfunIO評価スコアページ 収集cron
sort_order: 10
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-A候補棚を作り、公開・投稿はしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: collect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=aifunio-directory-review-ja / ARTICLE_KIND=evaluation_score_ai_review / CONTENT_SET=aifunio_ai_service
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
検査 / evaluation-score-aifunio-inspect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-aifunio-inspect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: aifunio-directory-review-ja
article_type_id: evaluation_score
article_kind: evaluation_score_ai_review
content_set: aifunio_ai_service
task_code: inspect
task_name: AIfunIO評価スコアページ 検査cron
sort_order: 11
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-B/1-A/1-B/1-B2を整理し、候補ready/参照URL ready/制作投入readyを分ける。汎用check_status=readyだけを制作投入readyとして数えず、制作投入readyはreadiness_class=READY_STRONG/READY_WITH_FACT_RISKまたはuse_status=production_ready/ready_for_produceで明示する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: inspect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=aifunio-directory-review-ja / ARTICLE_KIND=evaluation_score_ai_review / CONTENT_SET=aifunio_ai_service
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
制作 / evaluation-score-aifunio-produce-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-aifunio-produce-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: aifunio-directory-review-ja
article_type_id: evaluation_score
article_kind: evaluation_score_ai_review
content_set: aifunio_ai_service
task_code: produce
task_name: AIfunIO評価スコアページ 制作cron
sort_order: 12
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 1記事だけ制作し、公開前後の一次確認まで行う。Task8引き渡し前に制作前倒し最低品質Gateを通し、冒頭構成、サイト別H1/SEOタイトル分離、常体Strict、公式リンク位置/公式タグ、評価表、FAQ/FAQ JSON-LD、装飾、✅/⚠️、li先頭✅/⚠️禁止、二重シグナル回避、見本ページ実照合、内部運用語非露出、H1/canonical/noindexを確認する。porn-funはH1はサービス名のみ、SEOタイトルはサービス名 + 評判 / レビュー / 評価 系を基本にする。公式リンク表示文言は例として「【公式】サービス名公式サイトを確認」のように公式と分かる形にする。production_quality_scoreを付け、0〜49点はTask8へ渡さず、通常の品質不足はproduction_quality_fail_requeued / needs_production_revisionとして制作棚へ戻す。BLOCKEDは認証、対象不明、外部確認不能など停止条件だけに限定する。50〜80点以上で渡す場合もquality_delta_itemsを添える。本文に「です」「ます」「ください」等の敬体が残る、または直せる不備を残したままready_for_high_quality_testにしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: produce-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=aifunio-directory-review-ja / ARTICLE_KIND=evaluation_score_ai_review / CONTENT_SET=aifunio_ai_service
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
高品質テスト / evaluation-score-aifunio-high-quality-test-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-aifunio-high-quality-test-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: aifunio-directory-review-ja
article_type_id: evaluation_score
article_kind: evaluation_score_ai_review
content_set: aifunio_ai_service
task_code: high-quality-test
task_name: AIfunIO評価スコアページ 高品質テストcron
sort_order: 13
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 公開HTMLを取得し、PASS/FAILと訂正キューを作る。quality_score_before、target_score=100、quality_delta_items、minimum_gate_failures、retest_required=trueをHubへ残し、50〜80点から残った20〜50点分を訂正cronへ渡す。80〜90点は高品質cronが軽微扱いせず具体的修正単位へ分解し、90〜99点は最後の詰めとして100点化チェックシートへ接続する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: high-quality-test-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=aifunio-directory-review-ja / ARTICLE_KIND=evaluation_score_ai_review / CONTENT_SET=aifunio_ai_service
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
訂正 / evaluation-score-aifunio-correction-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-aifunio-correction-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: aifunio-directory-review-ja
article_type_id: evaluation_score
article_kind: evaluation_score_ai_review
content_set: aifunio_ai_service
task_code: correction
task_name: AIfunIO評価スコアページ 訂正cron
sort_order: 14
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: FAIL理由とquality_delta_itemsを実修正し、公開HTMLまたはプレビューHTMLで確認して再検査へ返す。公式タグ欠落、敬体残り、li先頭✅/⚠️、二重シグナル、見本ページ未照合、サイト別H1/SEOタイトル違反を残したままready_for_retest/task8_recheckにしない。90〜99点の残deltaを潰し、correction_completion_score=100と100点化チェックシートを満たすまで完了しない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: correction-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=aifunio-directory-review-ja / ARTICLE_KIND=evaluation_score_ai_review / CONTENT_SET=aifunio_ai_service
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
改善担当ハンドオフ / evaluation-score-aifunio-improvement-handoff-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-aifunio-improvement-handoff-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: aifunio-directory-review-ja
article_type_id: evaluation_score
article_kind: evaluation_score_ai_review
content_set: aifunio_ai_service
task_code: improvement-handoff
task_name: AIfunIO評価スコアページ 改善担当ハンドオフcron
sort_order: 15
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 9-A/9-B/10の改善候補と引継ぎを作る。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: improvement-handoff-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=aifunio-directory-review-ja / ARTICLE_KIND=evaluation_score_ai_review / CONTENT_SET=aifunio_ai_service
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
Nightlifeホテル
収集 / evaluation-score-nightlife-hotel-collect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-hotel-collect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-hotel-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_hotel
content_set: nightlife_hotel
task_code: collect
task_name: Nightlifeホテル評価スコアページ 収集cron
sort_order: 10
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-A候補棚を作り、公開・投稿はしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: collect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-hotel-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_hotel / CONTENT_SET=nightlife_hotel
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
検査 / evaluation-score-nightlife-hotel-inspect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-hotel-inspect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-hotel-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_hotel
content_set: nightlife_hotel
task_code: inspect
task_name: Nightlifeホテル評価スコアページ 検査cron
sort_order: 11
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-B/1-A/1-B/1-B2を整理し、候補ready/参照URL ready/制作投入readyを分ける。汎用check_status=readyだけを制作投入readyとして数えず、制作投入readyはreadiness_class=READY_STRONG/READY_WITH_FACT_RISKまたはuse_status=production_ready/ready_for_produceで明示する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: inspect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-hotel-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_hotel / CONTENT_SET=nightlife_hotel
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
制作 / evaluation-score-nightlife-hotel-produce-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-hotel-produce-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-hotel-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_hotel
content_set: nightlife_hotel
task_code: produce
task_name: Nightlifeホテル評価スコアページ 制作cron
sort_order: 12
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 1記事だけ制作し、公開前後の一次確認まで行う。Task8引き渡し前に制作前倒し最低品質Gateを通し、冒頭構成、サイト別H1/SEOタイトル分離、常体Strict、公式リンク位置/公式タグ、評価表、FAQ/FAQ JSON-LD、装飾、✅/⚠️、li先頭✅/⚠️禁止、二重シグナル回避、見本ページ実照合、内部運用語非露出、H1/canonical/noindexを確認する。porn-funはH1はサービス名のみ、SEOタイトルはサービス名 + 評判 / レビュー / 評価 系を基本にする。公式リンク表示文言は例として「【公式】サービス名公式サイトを確認」のように公式と分かる形にする。production_quality_scoreを付け、0〜49点はTask8へ渡さず、通常の品質不足はproduction_quality_fail_requeued / needs_production_revisionとして制作棚へ戻す。BLOCKEDは認証、対象不明、外部確認不能など停止条件だけに限定する。50〜80点以上で渡す場合もquality_delta_itemsを添える。本文に「です」「ます」「ください」等の敬体が残る、または直せる不備を残したままready_for_high_quality_testにしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: produce-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-hotel-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_hotel / CONTENT_SET=nightlife_hotel
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
高品質テスト / evaluation-score-nightlife-hotel-high-quality-test-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-hotel-high-quality-test-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-hotel-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_hotel
content_set: nightlife_hotel
task_code: high-quality-test
task_name: Nightlifeホテル評価スコアページ 高品質テストcron
sort_order: 13
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 公開HTMLを取得し、PASS/FAILと訂正キューを作る。quality_score_before、target_score=100、quality_delta_items、minimum_gate_failures、retest_required=trueをHubへ残し、50〜80点から残った20〜50点分を訂正cronへ渡す。80〜90点は高品質cronが軽微扱いせず具体的修正単位へ分解し、90〜99点は最後の詰めとして100点化チェックシートへ接続する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: high-quality-test-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-hotel-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_hotel / CONTENT_SET=nightlife_hotel
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
訂正 / evaluation-score-nightlife-hotel-correction-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-hotel-correction-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-hotel-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_hotel
content_set: nightlife_hotel
task_code: correction
task_name: Nightlifeホテル評価スコアページ 訂正cron
sort_order: 14
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: FAIL理由とquality_delta_itemsを実修正し、公開HTMLまたはプレビューHTMLで確認して再検査へ返す。公式タグ欠落、敬体残り、li先頭✅/⚠️、二重シグナル、見本ページ未照合、サイト別H1/SEOタイトル違反を残したままready_for_retest/task8_recheckにしない。90〜99点の残deltaを潰し、correction_completion_score=100と100点化チェックシートを満たすまで完了しない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: correction-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-hotel-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_hotel / CONTENT_SET=nightlife_hotel
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
改善担当ハンドオフ / evaluation-score-nightlife-hotel-improvement-handoff-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-hotel-improvement-handoff-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-hotel-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_hotel
content_set: nightlife_hotel
task_code: improvement-handoff
task_name: Nightlifeホテル評価スコアページ 改善担当ハンドオフcron
sort_order: 15
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 9-A/9-B/10の改善候補と引継ぎを作る。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: improvement-handoff-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-hotel-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_hotel / CONTENT_SET=nightlife_hotel
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
Nightlife夜遊び店舗
収集 / evaluation-score-nightlife-store-collect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-store-collect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-store-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_store
content_set: nightlife_store
task_code: collect
task_name: Nightlife夜遊び店舗評価スコアページ 収集cron
sort_order: 10
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-A候補棚を作り、公開・投稿はしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: collect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-store-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_store / CONTENT_SET=nightlife_store
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
検査 / evaluation-score-nightlife-store-inspect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-store-inspect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-store-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_store
content_set: nightlife_store
task_code: inspect
task_name: Nightlife夜遊び店舗評価スコアページ 検査cron
sort_order: 11
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-B/1-A/1-B/1-B2を整理し、候補ready/参照URL ready/制作投入readyを分ける。汎用check_status=readyだけを制作投入readyとして数えず、制作投入readyはreadiness_class=READY_STRONG/READY_WITH_FACT_RISKまたはuse_status=production_ready/ready_for_produceで明示する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: inspect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-store-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_store / CONTENT_SET=nightlife_store
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
制作 / evaluation-score-nightlife-store-produce-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-store-produce-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-store-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_store
content_set: nightlife_store
task_code: produce
task_name: Nightlife夜遊び店舗評価スコアページ 制作cron
sort_order: 12
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 1記事だけ制作し、公開前後の一次確認まで行う。Task8引き渡し前に制作前倒し最低品質Gateを通し、冒頭構成、サイト別H1/SEOタイトル分離、常体Strict、公式リンク位置/公式タグ、評価表、FAQ/FAQ JSON-LD、装飾、✅/⚠️、li先頭✅/⚠️禁止、二重シグナル回避、見本ページ実照合、内部運用語非露出、H1/canonical/noindexを確認する。porn-funはH1はサービス名のみ、SEOタイトルはサービス名 + 評判 / レビュー / 評価 系を基本にする。公式リンク表示文言は例として「【公式】サービス名公式サイトを確認」のように公式と分かる形にする。production_quality_scoreを付け、0〜49点はTask8へ渡さず、通常の品質不足はproduction_quality_fail_requeued / needs_production_revisionとして制作棚へ戻す。BLOCKEDは認証、対象不明、外部確認不能など停止条件だけに限定する。50〜80点以上で渡す場合もquality_delta_itemsを添える。本文に「です」「ます」「ください」等の敬体が残る、または直せる不備を残したままready_for_high_quality_testにしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: produce-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-store-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_store / CONTENT_SET=nightlife_store
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
高品質テスト / evaluation-score-nightlife-store-high-quality-test-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-store-high-quality-test-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-store-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_store
content_set: nightlife_store
task_code: high-quality-test
task_name: Nightlife夜遊び店舗評価スコアページ 高品質テストcron
sort_order: 13
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 公開HTMLを取得し、PASS/FAILと訂正キューを作る。quality_score_before、target_score=100、quality_delta_items、minimum_gate_failures、retest_required=trueをHubへ残し、50〜80点から残った20〜50点分を訂正cronへ渡す。80〜90点は高品質cronが軽微扱いせず具体的修正単位へ分解し、90〜99点は最後の詰めとして100点化チェックシートへ接続する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: high-quality-test-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-store-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_store / CONTENT_SET=nightlife_store
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
訂正 / evaluation-score-nightlife-store-correction-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-store-correction-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-store-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_store
content_set: nightlife_store
task_code: correction
task_name: Nightlife夜遊び店舗評価スコアページ 訂正cron
sort_order: 14
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: FAIL理由とquality_delta_itemsを実修正し、公開HTMLまたはプレビューHTMLで確認して再検査へ返す。公式タグ欠落、敬体残り、li先頭✅/⚠️、二重シグナル、見本ページ未照合、サイト別H1/SEOタイトル違反を残したままready_for_retest/task8_recheckにしない。90〜99点の残deltaを潰し、correction_completion_score=100と100点化チェックシートを満たすまで完了しない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: correction-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-store-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_store / CONTENT_SET=nightlife_store
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
改善担当ハンドオフ / evaluation-score-nightlife-store-improvement-handoff-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-nightlife-store-improvement-handoff-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: nightlife-store-directory-ja
article_type_id: evaluation_score
article_kind: evaluation_score_nightlife_store
content_set: nightlife_store
task_code: improvement-handoff
task_name: Nightlife夜遊び店舗評価スコアページ 改善担当ハンドオフcron
sort_order: 15
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 9-A/9-B/10の改善候補と引継ぎを作る。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: improvement-handoff-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=nightlife-store-directory-ja / ARTICLE_KIND=evaluation_score_nightlife_store / CONTENT_SET=nightlife_store
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
porn-fun単体サービス移行
収集 / evaluation-score-porn-fun-migration-collect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-collect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: collect
task_name: porn-fun単体サービス評価スコアページ移行 収集cron
sort_order: 10
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-A候補棚を作り、公開・投稿はしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: collect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
検査 / evaluation-score-porn-fun-migration-inspect-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-inspect-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: inspect
task_name: porn-fun単体サービス評価スコアページ移行 検査cron
sort_order: 11
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 0-B/1-A/1-B/1-B2を整理し、候補ready/参照URL ready/制作投入readyを分ける。汎用check_status=readyだけを制作投入readyとして数えず、制作投入readyはreadiness_class=READY_STRONG/READY_WITH_FACT_RISKまたはuse_status=production_ready/ready_for_produceで明示する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: inspect-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
制作 / evaluation-score-porn-fun-migration-produce-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-produce-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: produce
task_name: porn-fun単体サービス評価スコアページ移行 制作cron
sort_order: 12
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 1記事だけ制作し、公開前後の一次確認まで行う。Task8引き渡し前に制作前倒し最低品質Gateを通し、冒頭構成、サイト別H1/SEOタイトル分離、常体Strict、公式リンク位置/公式タグ、評価表、FAQ/FAQ JSON-LD、装飾、✅/⚠️、li先頭✅/⚠️禁止、二重シグナル回避、見本ページ実照合、内部運用語非露出、H1/canonical/noindexを確認する。porn-funはH1はサービス名のみ、SEOタイトルはサービス名 + 評判 / レビュー / 評価 系を基本にする。公式リンク表示文言は例として「【公式】サービス名公式サイトを確認」のように公式と分かる形にする。production_quality_scoreを付け、0〜49点はTask8へ渡さず、通常の品質不足はproduction_quality_fail_requeued / needs_production_revisionとして制作棚へ戻す。BLOCKEDは認証、対象不明、外部確認不能など停止条件だけに限定する。50〜80点以上で渡す場合もquality_delta_itemsを添える。本文に「です」「ます」「ください」等の敬体が残る、または直せる不備を残したままready_for_high_quality_testにしない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: produce-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
高品質テスト / evaluation-score-porn-fun-migration-high-quality-test-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-high-quality-test-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: high-quality-test
task_name: porn-fun単体サービス評価スコアページ移行 高品質テストcron
sort_order: 13
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 公開HTMLを取得し、PASS/FAILと訂正キューを作る。quality_score_before、target_score=100、quality_delta_items、minimum_gate_failures、retest_required=trueをHubへ残し、50〜80点から残った20〜50点分を訂正cronへ渡す。80〜90点は高品質cronが軽微扱いせず具体的修正単位へ分解し、90〜99点は最後の詰めとして100点化チェックシートへ接続する。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: high-quality-test-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
訂正 / evaluation-score-porn-fun-migration-correction-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-correction-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: correction
task_name: porn-fun単体サービス評価スコアページ移行 訂正cron
sort_order: 14
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: FAIL理由とquality_delta_itemsを実修正し、公開HTMLまたはプレビューHTMLで確認して再検査へ返す。公式タグ欠落、敬体残り、li先頭✅/⚠️、二重シグナル、見本ページ未照合、サイト別H1/SEOタイトル違反を残したままready_for_retest/task8_recheckにしない。90〜99点の残deltaを潰し、correction_completion_score=100と100点化チェックシートを満たすまで完了しない。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: correction-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
改善担当ハンドオフ / evaluation-score-porn-fun-migration-improvement-handoff-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-improvement-handoff-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: improvement-handoff
task_name: porn-fun単体サービス評価スコアページ移行 改善担当ハンドオフcron
sort_order: 15
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 9-A/9-B/10の改善候補と引継ぎを作る。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: improvement-handoff-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
301実行・リダイレクト確認 / evaluation-score-porn-fun-migration-redirect-301-v6-6
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
task_template_id: evaluation-score-porn-fun-migration-redirect-301-v6-6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
workflow_id: porn-fun-directory-migration-ja
article_type_id: evaluation_score
article_kind: evaluation_score_dictionary_migration
content_set: porn_fun_single_service_migration
task_code: redirect-301
task_name: porn-fun単体サービス評価スコアページ移行 301実行・リダイレクト確認cron
sort_order: 16
default_status: pending
default_agent: CODE-YUKI
manual_id: evaluation-score-cron-stage-map-v6-6
reference_filter: evaluation_score
file_filter: evaluation_score
fact_check_filter: evaluation_score
completion_rule: 11 cronとして301_ready / redirect_ready / 301_ready_retryだけを処理し、301_done / 301_failed / BLOCKED_*をHubへ残す。 Hub認証bootstrap / HUB_AUTH_BOOTSTRAP: 汎用クライアント既定トークンだけに依存せず、H358_HUB_AGENT_TOKENまたはCODE-YUKI/.env.hub.localを内部利用してMain Hubを読む。認証値は出力しない。401/403/invalid token/token expiredなら同じ無効トークンで再試行せずbootstrap経路へ切り替える。Manuals/evaluation-score-cron-common-gate-v6-6、Manuals/evaluation-score-cron-stage-map-v6-6、Manuals/evaluation-score-cron-public-content-decoration-gate-v6-6、Manuals/evaluation-score-cron-structure-decoration-reference-pages-v6-6、Manuals/evaluation-score-cron-produce-pre-hq-minimum-gate-v6-6、Manuals/evaluation-score-cron-quality-score-handoff-gate-v6-6、Manuals/evaluation-score-cron-correction-and-end-state-gate-v6-6、Manuals/evaluation-score-cron-correction-must-fix-gate-v6-6、Manuals/evaluation-score-cron-schedule-and-limits-v6-6、Manuals/evaluation-score-cron-model-reasoning-config-gate-v6-6、Manuals/evaluation-score-cron-tasktemplate-agent-pack-real-record-gate-v6-6、Manuals/evaluation-score-cron-inspect-ready-fact-risk-gate-v6-6、Manuals/evaluation-score-cron-site-gates-v6-6、Manuals/evaluation-score-cron-release-checksheet-v6-6を通す。produceはTask8引き渡し前に最低品質Gateと品質スコアGateを通し、high_quality_testはquality_delta_itemsを作り、correctionはFAIL理由を実修正してcorrection_completion_score=100でready_for_retest/task8_recheckへ返す。porn-funのredirect-301はManuals/porn-fun-migration-301-cron-gate-v6-6も必ず通す。Hubが読めない場合はBLOCKED_HUB_AUTH。model/reasoningEffortを指定できない場合はBLOCKED_AUTOMATION_MODEL_CONFIG。
required_outputs: redirect-301-result.md
auto_create: FALSE
apply_to_existing: TRUE
status: active
notes: 個別cron作成依頼文で1件だけ作成するテンプレート。WORKFLOW_ID=porn-fun-directory-migration-ja / ARTICLE_KIND=evaluation_score_dictionary_migration / CONTENT_SET=porn_fun_single_service_migration
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
関連cron置き場ページ
- porn-fun: https://cron.goudou-358.jp/13/
- Nightlifeホテル: https://cron.goudou-358.jp/16/
- Nightlife夜遊び店舗: https://cron.goudou-358.jp/18/
- AIfunIO: https://cron.goudou-358.jp/20/
2026-05-19 KW調査パック・出現率Gate / 全評価スコアcron共通
正本: Main 358 Hub の Rules/evaluation-score-cron-keyword-density-rule-v6-6 / Manuals/evaluation-score-cron-keyword-density-gate-v6-6 / Checks/evaluation-score-cron-keyword-density-check-v6-6 を読む。cron.goudou-358.jp はテンプレート置き場であり、Hubが読めない場合の判定代替にはしない。
目的: 共起語・検索意図を確認ログだけで終わらせず、見出し、本文、評価理由、FAQへ反映する。狙いKWの出現率は対象名を含むKWファミリーで1.5〜3.0%を標準とし、未達なら自然に加筆して再計測する。
必読Hub参照
- Rules/evaluation-score-cron-keyword-density-rule-v6-6
- Manuals/evaluation-score-cron-keyword-density-gate-v6-6
- Checks/evaluation-score-cron-keyword-density-check-v6-6
KW調査パックGate
- keyword_research_pack または runtime_keyword_research_pack を必須にする。
- 正式パックが無い場合、cron自身が runtime_keyword_research_pack を生成し、Hubへ保存してから進む。
- 保存する項目は search_intent_summary / serp_competitor_topics / cooccurrence_terms / reader_questions / comparison_axes / selected_original_headings。
- パック生成も検索意図整理もできない場合だけ BLOCKED_KEYWORD_RESEARCH_MISSING とする。
- 共起語を確認しただけ、ログに書いただけ、羅列しただけではPASSにしない。
狙いKW・出現率Gate
- 狙いKWは原則「対象名 + 評判」。AIfunIO / invest358 / porn-fun は primary_target_keyword を「対象名 + 評判」系にする。
- Nightlife店舗は「店名 + 評価・評判・レビュー」、Nightlifeホテルは「ホテル名 + デリヘル呼べる?」を主KWとし、「ホテル名 + 評判」は secondary_reputation_keyword として扱う。
- keyword_density_target_min=1.5 / keyword_density_target_max=3 を必須にする。
- normalized_target_keyword_family に「対象名 評判」「対象名の評判」「対象名 評価」「対象名レビュー」など自然な表記ゆれを入れる。
- 対象名だけ、または「評判」だけの水増しを目標達成扱いにしない。
- 計測対象は公開HTMLまたはプレビューHTMLの可視本文。script / style / JSON-LD / nav / footer / 管理表示は除外する。
未達時の加筆Gate
- target_keyword_density_percent が標準下限1.5%未満なら、共起語・関連語・具体例・FAQ・記事固有見出しで自然に加筆して再計測する。
- target_keyword_density_percent が5%超なら、キーワード詰め込みとして不要な反復を削るか表現を分散する。
- 追加項目はしてよいが、必ず section id または h2/h3 id を付ける。
- 加筆位置は総合評価・まとめ直前、評価項目直後、FAQ直前など、読者の判断に役立つ自然な位置を優先する。
- 文脈のない追記、定型見出しの水増し、同じような文章の量産は禁止する。
- 追加見出しは検索意図・上位傾向・共起語・読者疑問から記事固有のものを最低1つ入れる。
工程別Gate
- 制作cron: keyword_density_report / target_keyword_density_percent / cooccurrence_terms_used_count / original_heading_count をHubへ残す。density未達なら自然に加筆して再計測し、自然KWファミリーGateを満たしてから高品質へ渡す。
- 高品質cron: keyword_density_reportなし、自然KWファミリーGate未確認、cooccurrence_terms_used_count<3、original_heading_count<1、added_section_ids_present=false はPASS禁止。
- 訂正cron: quality_delta_itemsに基づき本文へ自然加筆し、section id / h2 id / h3 idを付け、公開HTMLまたはプレビューHTMLで再計測して ready_for_retest へ返す。
- ready_for_high_quality_test / ready_for_retest / PASS / 301_ready は keyword_density_report と自然KWファミリーGate確認なしでは不可。
2026-05-19 本文品質・網羅性Writing Gate / 全評価スコアcron共通
正本: Main 358 Hub の Rules/evaluation-score-cron-content-depth-writing-rule-v6-6 / Manuals/evaluation-score-cron-content-depth-writing-gate-v6-6 / Checks/evaluation-score-cron-content-depth-writing-check-v6-6 を読む。
目的: 評価スコア記事を同じ型の量産文にしない。検索意図、見出し設計、網羅性、一次情報、読みやすさ、内部リンク、共起語、関連語、具体例、FAQの厚みを本文品質として見る。
必読Hub参照
- Rules/evaluation-score-cron-content-depth-writing-rule-v6-6
- Manuals/evaluation-score-cron-content-depth-writing-gate-v6-6
- Checks/evaluation-score-cron-content-depth-writing-check-v6-6
本文品質10項目
- 検索意図: 読者が登録前に知りたいこと、不安、比較対象を本文に反映する。
- 見出し設計: 定型見出しだけで終わらせず、対象サービス固有のH2/H3を最低1つ追加し、必ずidを付ける。
- 網羅性: 評価項目、料金、退会、利用条件、運営、対応環境、注意点、向いている人、向かない人、FAQを漏らさない。
- 一次情報: 公式サイト、公式FAQ、公式規約、公式料金、公式問い合わせ、公式SNS、公式予約/登録導線を優先する。
- 読みやすさ: 日本語ページは常体Strict。短文羅列、同じ言い回し、薄い一般論を避ける。
- 内部リンク: 関連する既存記事、カテゴリ、比較記事、用語記事がある場合は自然に1〜3件入れる。無い場合は理由を残す。
- 共起語: cooccurrence_termsを最低3件、本文・見出し・FAQ・評価理由へ自然に反映する。
- 関連語: related_terms / comparison_termsを本文に反映し、表記ゆれや読者が使う言葉を拾う。
- 具体例: 料金、退会、確認手順、利用前チェック、比較ポイントなどで具体例を最低2件入れる。
- FAQを厚く: 評価スコア記事ではFAQを原則5問以上にし、本文FAQとFAQPage JSON-LDを一致させる。
工程別Gate
- 制作cron: content_depth_plan と content_depth_checklist をHubへ残す。未達項目がある場合は自然加筆し、重大未達のまま高品質へ渡さない。
- 高品質cron: 公開HTMLまたはプレビューHTMLで10項目を実照合する。確認ログだけで本文反映がない場合はPASS禁止。
- 訂正cron: quality_delta_itemsを本文へ実修正し、追加section/h2/h3には必ずidを付ける。FAQ追加時はJSON-LDも整合させる。
PASS条件マーカー
- content_depth_plan
- content_depth_checklist
- search_intent_covered=true
- heading_design_unique_section_count>=1
- coverage_required_topics_checked=true
- primary_sources_checked=true
- readability_check=pass
- internal_links_count>=1 または internal_link_candidate_absent_reason
- cooccurrence_terms_used_count>=3
- related_terms_used_count>=3
- concrete_examples_count>=2
- faq_question_count>=5
- faq_jsonld_matches_body=true
- added_section_ids_present=true
2026-05-19 キーワード出現率Hub API / 全評価スコアcron共通
正本: Main 358 Hub の Rules/evaluation-score-cron-keyword-density-api-rule-v6-6 / Manuals/evaluation-score-cron-keyword-density-api-manual-v6-6 / Checks/evaluation-score-cron-keyword-density-api-check-v6-6 を読む。
目的: 本社PCが停止していても、支社cronがMain Hub側APIだけで公開HTMLのキーワード出現率を検査し、自然KWファミリーGateを満たすまで自然な加筆・調整・再計測を行えるようにする。
Hub API
- Endpoint: https://hub.goudou-358.jp/index.php?api=keyword_density_check
- Method: POST
- Auth: 既存のHub認証を内部利用する。認証値、APPパス、トークン本文は出力、memory、公開本文、Hub本文、配布物へ書かない。
- 必須payload: url または target_url または published_url / primary_target_keyword / normalized_target_keyword_family / article_key / workflow_id / site_id / task_code / keyword_density_target_min=1.5 / keyword_density_target_max=3。
- API結果: keyword_density_report / target_keyword_density_percent / density_status / visible_text_checked / jsonld_excluded / nav_footer_excluded を確認し、通常cronではHubへ保存する。
Gate
- target_keyword_density_percent が標準下限1.5%未満なら、共起語・関連語・具体例・FAQ・記事固有見出しで自然に加筆して再計測する。
- target_keyword_density_percent が5%超なら、キーワード詰め込みとして表現を分散して再計測する。
- keyword_density_report なし、API未実行、API ok=false、visible_text_checked/jsonld_excluded不明、自然KWファミリーGate未確認のまま ready_for_high_quality_test / ready_for_retest / PASS / 301_ready にしない。
- Hub認証不備は BLOCKED_HUB_AUTH。API取得不能、API未反映、HTTP 4xx/5xx は BLOCKED_KEYWORD_DENSITY_API として止め、対象なし・PASS・完了扱いにしない。
2026-05-19 自然なキーワードファミリー出現率Gate(全評価スコアcron共通)
Hub正本: Rules/evaluation-score-cron-natural-keyword-family-density-rule-v6-6 / Manuals/evaluation-score-cron-natural-keyword-family-density-manual-v6-6 / Checks/evaluation-score-cron-natural-keyword-family-density-check-v6-6 を読む。
目的: 「評判」「評価」「レビュー」「口コミ」単体を不自然に増やさず、対象名を含むKWファミリー、共起語、関連語、具体例、FAQ、記事固有見出しで自然に厚みを出す。
対象キーワード
- primary_target_keyword は「対象名 + 検索意図語」を基本にする。例: Javholic 評判、Pollo AI 評判。
- normalized_target_keyword_family は「対象名 評判」「対象名の評判」「対象名 評価」「対象名レビュー」など、対象名を含む自然表現だけを基本にする。
- single_intent_terms_not_counted=[“評判”,”評価”,”レビュー”,”口コミ”] / intent_only_terms_excluded=true。
- 「評判」単体、「評価」単体、「レビュー」単体を高密度へ増やす作業は禁止。キーワード詰め込みとしてFAILまたは訂正対象にする。
出現率目標
- entity_intent_family_density_target_min=1.5 / entity_intent_family_density_target_max=3.0。
- 3.0〜5.0%は自然に収まる上限余白であり、到達必須ではない。
- 5.0%超、同じ言い回しの反復、本文の白々しい増量は keyword_stuffing / unnatural_repetition として扱う。
- 旧テンプレ内に残る厳しすぎる出現率表記より、この自然KWファミリーGateを優先する。
不足時の加筆方法
- 不足時は検索意図、上位傾向、共起語、関連語、比較される論点、具体例、FAQ、評価項目の本文化で自然に加筆する。
- 追加セクションには section id / h2 id / h3 id を付ける。
- cooccurrence_terms_used_count_min=3 / original_heading_count_min=1。
- 共起語は詰め込みではなく、見出し、比較軸、FAQ、注意点、内部リンク、読みやすさの判断材料として使う。
通過条件
- ready_for_high_quality_test / ready_for_retest / PASS / 301_ready の前に、keyword_density_report に target_is_entity_intent_family=true、intent_only_terms_excluded=true、target_keyword_density_percent を残す。
- cooccurrence_terms_used、original_heading_count、quality_delta_items または failed_items をHubへ残す。
- keyword_density_report なし、API未実行、API ok=false、intent_only_terms_excluded未確認のまま通過しない。
2026-05-19 Search Compass分析パックGate(共起語・検索意図・出現率・網羅性)
Hub正本: Rules/evaluation-score-cron-search-compass-analysis-pack-rule-v6-6 / Manuals/evaluation-score-cron-search-compass-analysis-pack-manual-v6-6 / Checks/evaluation-score-cron-search-compass-analysis-pack-check-v6-6 を読む。
方針: Search Compassは分析エンジン、Main 358 Hubは正本、cronは実行者。cronは起動ごとにHubを読み、必要に応じてSearch Compass分析パックまたは同一スキーマのruntime fallbackを作成し、Hubへ残す。
SEARCH_COMPASS_ANALYSIS_PACK_POLICY
- 推奨API: https://search-compass.goudou-358.jp/api/analysis-pack
- 必須フィールド: search_intent_summary / keyword_family / keyword_density_report / coverage_report / cooccurrence_terms_present / cooccurrence_terms_missing / related_terms / comparison_axes / reader_questions / selected_original_headings / quality_delta_items。
- Search Compass APIが使えないだけで対象なし、PASS、完了、readyなしにしない。Hub保存済packを読む。なければcron_runtime_fallbackとして同一スキーマの分析パックを作る。
- fallback使用時は analysis_pack_source=cron_runtime_fallback / needs_search_compass_recheck=true をHubへ残す。
- Hub認証失敗は従来通り BLOCKED_HUB_AUTH。認証値、APPパスワード、トークン本文、ローカルパスは公開本文・memory・Hub本文・配布物へ出さない。
出現率・共起語・網羅性
- KW出現率は entity+intent family を数える。評判、評価、レビュー、口コミなどのintent-only単語だけでは数えない。
- 標準目標は1.5〜3.0%。3.0〜5.0%は自然に収まる上限域であり、目標ではない。5.0%超や不自然な反復は過剰最適化として扱う。
- 不足時は、検索意図、上位傾向、共起語、関連語、比較軸、具体例、FAQ厚み、内部リンク、評価項目本文化、オリジナル見出しで自然に加筆する。
- 追加見出し・追加セクションには section id / h2 id / h3 id を必ず入れる。
- 評価スコア記事の基本構成 H1→評価スコア表→リード文→公式テキストリンク→最初のH2 は崩さない。
工程別Gate
- 制作cron: keyword_research_packを読んでから制作する。明らかな検索意図・共起語・出現率・網羅性不足は高品質へ丸投げせず、制作側で自然に加筆する。
- 高品質cron: 公開HTMLと分析パックを照合し、足りない箇所を quality_delta_items として具体的に訂正cronへ渡す。直接制作代行ではなく厳格検査を行う。
- 訂正cron: quality_delta_itemsを全部潰し、出現率・網羅性・共起語・見出しID・FAQ厚みを再確認して ready_for_retest に返す。memory更新だけで完了しない。
- ready_for_high_quality_test / ready_for_retest / PASS / 301_ready は、分析パックまたはruntime fallback packの必須フィールドなしでは不可。
2026-05-19 Search Compass API稼働確認済み
Hub正本: References/search-compass-api-live-status-20260519 / Checks/search-compass-api-live-status-check-20260519 を読む。
SEARCH_COMPASS_API_LIVE_STATUS: https://search-compass.goudou-358.jp/api/analysis-pack は稼働確認済み。評価スコアcronは、共起語・検索意図・出現率・網羅性チェックの分析パック取得先として扱う。
- status_url=https://search-compass.goudou-358.jp/api/status
- analysis_pack_url=https://search-compass.goudou-358.jp/api/analysis-pack
- analysis_type=search_intent_keyword_density_coverage_pack
- 必須フィールド: keyword_density_report / search_intent_summary / coverage_report / cooccurrence_terms_present / cooccurrence_terms_missing / related_terms / comparison_axes / selected_original_headings / quality_delta_items。
- freshなkeyword_research_packが無い、または古い場合は、ready_for_high_quality_test / ready_for_retest / PASS / 301_ready の前にSearch Compass分析パックを取得する。
- 取得結果はMain 358 Hubへ keyword_research_pack または runtime_keyword_research_pack として残す。
- API一時失敗時は、Hub保存済packを確認し、それも無い場合だけ同一スキーマのcron_runtime_fallbackを作成して needs_search_compass_recheck=true を残す。
- API失敗を理由に、対象なし・PASS・完了・readyなしとは判断しない。Hub認証不備はBLOCKED_HUB_AUTH。
- 現在の公開エンドポイントは共有サーバー用PHP API fallback。Search Compass本体開発の本命は後日Python側で継続する。
2026-05-19 評価スコアcron 装飾黄金律原案・KW三層Gate
Hub正本: Rules/evaluation-score-decoration-golden-ratio-rule-v1-20260519 / Checks/evaluation-score-decoration-golden-ratio-check-v1-20260519 / Rules/evaluation-score-keyword-three-layer-density-rule-v1-20260519 / Checks/evaluation-score-keyword-three-layer-density-check-v1-20260519 を読む。
目的: 評価スコア記事を同じ薄い文章で量産しないため、見本9記事から取った装飾比率と、KW出現率の三層分離を全サイト共通Gateにする。
DECORATION_GOLDEN_RATIO_V1_DRAFT
- 見本9記事の平均本文文字数は約8,141字。黒太字13.24%、黄色アンダー7.23%、赤太字5.93%、太字系合算26.4%、✅+⚠️は約1.00件/1000字。
- 標準域: 黒太字6-16%、黄色アンダー4-10%、赤太字3-8%、太字系合算18-32%。12%未満は薄い、40%超は過剰装飾候補。
- ✅は最低2件、⚠️も最低2件。合計0.7-2.0件/1000字を目安にする。ただしli先頭に✅/⚠️を入れて二重シグナル化しない。
- 黄色アンダーは必ず <b><span class=”marker-under”>…</span></b> または <strong><span class=”marker-under”>…</span></strong>。
- 赤太字は必ず <b><span style=”color:#FF0000;”>…</span></b> または <strong><span style=”color:#FF0000;”>…</span></strong>。
- 公式テキスト誘導は装飾比率とは別Gateで最低1件。右寄せ公式バッジ形式を使う: <p style=”text-align: right;”><span class=”badge badge-red”>公式</span><b>:<a href=”” target=”_blank” rel=”nofollow noopener”></a></b></p>
- 比率を満たしても、配置が白々しい、同じ装飾だけで稼いでいる、読者判断に寄与しない場合はFAILまたは訂正対象。
THREE_LAYER_KEYWORD_POLICY_V1
- Layer 1: サービス名ファミリー。例: XCITY / エックスシティ / 女体のしんぴ / Javholic。ここだけを出現率の主対象にする。目標1.5-4.0%、自然上限5.0%。
- Layer 2: 検索意図語。例: 評判 / レビュー / 評価 / 口コミ / 料金 / 退会 / 安全 / 年齢確認 / 比較。これは出現率目標ではなく、見出し・FAQ・比較軸・本文内の自然配置と網羅性で見る。
- Layer 3: 複合KW。例: XCITY 評判 / 女体のしんぴ 評判 / Javholic レビュー。これは出現率目標ではなく、SEO title/meta、リード、見出し、FAQなど主要位置の自然配置で見る。
- 複合KWを3-5%にしようとして、本文内に『XCITY 評判では』などを連発するのは過剰最適化としてFAIL。
- Search Compass / keyword_density_checker は entity_family_density_report / intent_coverage_report / composite_query_placement_report を返す。keyword_density_report は後方互換として entity_family_density_report 扱い。
- 不足時の加筆は、検索意図、共起語、関連語、具体例、FAQ厚み、内部リンク、ID付きオリジナル見出しで自然に行う。
工程Gate
- 制作cron: obviousな装飾不足、公式誘導不足、複合KW連発、サービス名密度不足を高品質へ丸投げしない。quality_delta_itemsを残す。
- 高品質テストcron: 公開HTML本文だけを見て、装飾黄金律・KW三層・Search Compass結果を照合し、薄い/不自然/量産臭いページはPASSしない。
- 訂正cron: quality_delta_itemsを全て潰し、再計測と公開HTML確認後に ready_for_retest へ返す。memory更新だけでは完了不可。
2026-05-19 評価スコアcron 並行スレッド共通仕様
Hub正本: Rules/evaluation-score-cron-lock-retry-next-candidate-rule-v6-6 / Manuals/evaluation-score-cron-lock-retry-next-candidate-gate-v6-6 / Checks/evaluation-score-cron-lock-retry-next-candidate-check-v6-6 を読む。
目的: 複数cronが同時期に起動して同じ候補を見ても、二重制作・二重訂正・二重301を起こさず、ロック競合だけで止まり続けないようにする。
LOCK_RETRY_NEXT_CANDIDATE_POLICY
- 候補をメモリ上で選んだだけでは所有していない。所有はHub上の task_lock / production_claim / cron_soft_lock で automation_id / run_id が自分のものと確認できた時だけ成立する。
- 制作cronは production_ready / ready_for_produce / READY_STRONG / READY_WITH_FACT_RISK のうち、active lock / in_progress / claimed / task_stage_owner がない候補だけを見る。
- 候補を1件選んだら、本文制作前に即 task_lock または production_claim をHubへ作る。task_not_found_or_not_recorded 等で正式ロックできない時だけ cron_soft_lock fallback を使う。
- ロック作成直後にHubを再読込し、自分の automation_id / run_id が lock owner になっている場合だけ制作・訂正・検査を続行する。
- 他cronがownerの場合は SKIP_LOCKED としてその候補を捨て、同一run内で次の未ロック候補を探す。ロック失敗だけでFAIL/PASS/完了/対象なしにしない。
- 最大再探索数は max_lock_retry_candidates=8。全部ロック済み、または候補が尽きた時だけ NO_UNLOCKED_TARGET とする。
- 完了時は ready_for_high_quality_test / correction_queue / ready_for_retest / 301_ready など次工程へ渡し、lock_status=completed/returned/failed/excluded をHubへ残す。
- stale lock は lock_expires_at と公開HTML・Hub状態・直近runtime_statを確認したうえでTTL回収する。他cronの有効ロックを勝手に奪わない。
工程別所有範囲
- 制作cron: production_ready / ready_for_produce / READY_STRONG / READY_WITH_FACT_RISK だけを見る。production_claim または task_lock を取得し、失敗したらSKIP_LOCKEDで次候補へ行く。
- 高品質テストcron: ready_for_high_quality_test / ready_for_retest / task8_recheck だけを見る。quality_check_claim または task_lock を取得し、失敗したらSKIP_LOCKEDで次候補へ行く。ロックなしでquality_pass/quality_fail/correction_queue/301_readyを書かない。
- 訂正cron: correction_queue / task10 / quality_fail / returned items だけを見る。correction_claim または task_lock を取得し、失敗したらSKIP_LOCKEDで次候補へ行く。ロックなしでWordPress本文を直さない。
- 改善ハンドオフcron: improvement_handoff / quality_pass_with_improvement / 9-B だけを見る。improvement_claim または task_lock を取得し、失敗したらSKIP_LOCKEDで次候補へ行く。
- 301cron: 明示的な301_readyだけを見る。redirect_301_claim または task_lock を取得し、失敗したらSKIP_LOCKEDで次候補へ行く。ロックなしで301を実行しない。
- 制作cronは correction_queue / ready_for_retest / task8_recheck / quality_pass / 301_ready / published を取らない。訂正cronは新規制作候補を取らない。
失敗条件
- ロック取得前にWordPress本文、Directory Core、FAQ JSON-LD、公開状態、削除、301へ触った。
- ロック失敗後、別候補を探さずに停止した。
- 他cron所有候補を処理した。
- 候補が残っているのに NO_UNLOCKED_TARGET とした。
- ロック競合をPASS/完了/対象なしとして扱った。
- 制作cronが訂正対象や再検査対象を取った、または訂正cronが新規制作候補を取った。
2026-05-19 評価スコアcron リード文自然導入・掲載内容マーカーGate
Hub正本: Rules/evaluation-score-cron-lead-opening-scope-rule-v1-20260519 / Manuals/evaluation-score-cron-lead-opening-scope-gate-v1-20260519 / Checks/evaluation-score-cron-lead-opening-scope-check-v1-20260519
「○○の評判は、」で始める不自然なリードを禁止し、複数の導入パターンから記事内容に合うものを選ぶ。リード終盤には、掲載内容を示す lead_scope_sentence を必ず <b><span class="marker-under">...</span></b> 形式で入れる。
lead_target_japanese_chars=220-360 / lead_max_japanese_chars=420 / lead_paragraph_count_target=2-3 / lead_opening_pattern_id / lead_scope_pattern_id / lead_scope_sentence_html_ok を各工程で記録する。
公開HTMLに lead_opening_scope_sentence / lead_scope_sentence などの内部フィールド名や未置換プレースホルダーが出ている場合は、リードGate失敗として扱う。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron Lead Opening And Scope Sentence Gate v1.2
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Created: 2026-05-19
Scope: all sites / evaluation score articles / produce, high-quality-test, correction
## Purpose
Evaluation score articles must not start the lead paragraph with an unnatural exact-match SEO phrase such as "SERVICE no hyoban wa" or "SERVICE review dewa".
The lead must read like a human introduction. It should draw the reader in through the actual decision points for the article, then clearly tell the reader what the article covers.
## Required Lead Structure
The lead must be readable before the first H2. It must not become a long summary that gives away every conclusion before the article begins.
Lead length and layout:
- Target body-text length: 220-360 Japanese characters.
- Hard upper limit: 420 Japanese characters.
- Paragraph count: 2-3 paragraphs.
- One paragraph should normally be 80-160 Japanese characters.
- One sentence should normally be 45-80 Japanese characters.
- Do not place the whole lead in one long paragraph.
- Do not list every evaluation item or every conclusion in the lead.
- The lead should invite the reader into the article and leave detailed judgment for the later sections.
The lead must do all of the following:
- Start from a natural reader concern, usage context, official-information point, comparison point, risk point, or conclusion point.
- Include search intent, cooccurrence terms, and related terms naturally.
- Include article-specific decision factors such as pricing, cancellation, renewal, payment, safety, usability, feature range, eligibility, official information, or comparison axes.
- End, or nearly end, with a `lead_scope_sentence` that explains what the article covers.
- Decorate `lead_scope_sentence` with black bold plus yellow underline marker.
- Keep `lead_scope_sentence` concise. It should show the coverage of the article, not summarize every conclusion.
Required HTML for `lead_scope_sentence`:
```html
<b><span class="marker-under">...</span></b>
```
or:
```html
<strong><span class="marker-under">...</span></strong>
```
## Public HTML Placeholder / Internal Field Name Ban
Public or preview HTML must not expose runtime field names, template placeholders, or Gate labels that belong only in Hub logs.
The following literal strings must be treated as FAIL when they appear in visible article body, lead text, headings, FAQ, official-link area, or any reader-facing block:
- `lead_opening_scope_sentence`
- `lead_scope_sentence`
- `lead_opening_pattern_id`
- `lead_scope_pattern_id`
- `lead_target_japanese_chars`
- `lead_max_japanese_chars`
- `lead_paragraph_count_target`
- `lead_quality_delta_items`
- `lead_conclusion_dump_detected`
- `LEAD_OPENING_SCOPE_POLICY`
- any unreplaced `{{lead...}}`, `[lead...]`, `LEAD_...`, or similar lead-template placeholder
These strings may appear only in internal result JSON, Hub runtime stat, memory, or non-public logs. They must never be counted as a successful lead check.
## Banned Opening Patterns
The lead must not begin with exact SEO phrase openings such as:
- `SERVICE の評判は、`
- `SERVICE の評価は、`
- `SERVICE レビューでは、`
- `SERVICE 評判では、`
- `SERVICE 口コミでは、`
- `この記事では、SERVICE の評判を...`
The lead must also not mass-produce the same form:
- `SERVICE は、...なサービスだ。`
That sentence form may appear when it is genuinely natural, but it must not become the default opening pattern for every article.
## Opening Pattern IDs
Each produce/correction run must select and record a `lead_opening_pattern_id`.
Allowed pattern families:
- `reader_concern_first`: starts from what the reader wants to check before registration or use.
- `usage_context_first`: starts from how the service/tool/place is used.
- `official_info_first`: starts from what the official page confirms.
- `comparison_first`: starts from how the subject should be compared with alternatives.
- `risk_or_caution_first`: starts from a concrete risk or point that should not be missed.
- `conclusion_first`: starts with a balanced conclusion, then explains what to verify.
- `feature_context_first`: starts from a distinctive feature, then moves to decision factors.
- `question_resolution_first`: starts from a natural reader question and resolves it.
Do not reuse the same `lead_opening_pattern_id` and near-identical lead structure for consecutive articles in the same site/content set when avoidable.
## Scope Sentence Pattern IDs
Each lead must contain one `lead_scope_sentence` and record `lead_scope_pattern_id`.
Allowed pattern families:
- `scope_article_covers`
- `scope_before_use_check`
- `scope_decision_materials`
- `scope_compare_axes`
- `scope_risk_first`
- `scope_official_confirmation`
Examples are reference patterns, not copy-paste text:
```html
<b><span class="marker-under">この記事では、NOZOXの料金、配信内容、使いやすさ、決済と退会、安全面を評価スコアの項目ごとに確認する。</span></b>
```
```html
<b><span class="marker-under">ここでは、NOZOXを使う前に確認したい料金プラン、更新条件、退会フォーム、視聴環境、プライバシー面を順に整理する。</span></b>
```
```html
<b><span class="marker-under">登録前の判断材料として、料金の見方、作品・機能の幅、使いやすさ、解約条件、安全面を評価項目ごとに見ていく。</span></b>
```
The cron must adapt these patterns to the article target, article type, search intent, and site-specific Gate.
## Required Runtime Fields
Every produce, high-quality-test, and correction run must record:
- `lead_opening_pattern_id`
- `lead_scope_pattern_id`
- `lead_char_count`
- `lead_paragraph_count`
- `lead_sentence_length_check`
- `lead_too_long_detected`
- `lead_single_block_detected`
- `lead_conclusion_dump_detected`
- `lead_scope_sentence_present`
- `lead_scope_sentence_html_ok`
- `lead_banned_opening_detected`
- `lead_exact_match_seo_opening_detected`
- `lead_search_intent_terms_used`
- `lead_cooccurrence_terms_used`
- `lead_related_terms_used`
- `lead_originality_check`
- `lead_public_placeholder_terms_absent`
- `lead_internal_field_names_absent`
- `lead_quality_delta_items`
## Produce Cron Gate
Produce cron must create a lead that satisfies this Gate before handing off to high-quality-test.
Produce cron must not hand off to `ready_for_high_quality_test` if:
- The lead starts with a banned exact-match SEO opening.
- The lead is too short to orient the reader or too long to read before the first H2.
- The lead exceeds 420 Japanese characters.
- The lead is one unbroken paragraph.
- The lead dumps too many conclusions before the article begins.
- `lead_scope_sentence` is missing.
- `lead_scope_sentence` is not wrapped in `<b><span class="marker-under">...</span></b>` or `<strong><span class="marker-under">...</span></strong>`.
- The lead is a thin list of facts with no reader pull.
- The lead repeats a recent article's opening structure without a reason.
- Public or preview HTML exposes `lead_opening_scope_sentence`, `lead_scope_sentence`, or any other lead runtime field/template placeholder as reader-facing text.
If the page is otherwise publishable but the lead needs refinement, produce cron must fix it before high-quality handoff instead of pushing a known bad lead downstream.
## High-Quality-Test Cron Gate
High-quality-test cron must inspect public or preview HTML and fail the page when:
- Banned opening pattern remains.
- `lead_scope_sentence` is missing or not marker-under plus bold.
- Lead body is outside the 220-360 character target without a clear reason, or exceeds 420 characters.
- Lead has no paragraph breaks, or has paragraphs that are too long to scan.
- Lead gives away too much of the article before the first H2.
- The lead reads like keyword stuffing.
- The lead has no natural use of search intent, cooccurrence, or related terms.
- The lead's scope sentence is generic and does not mention article-specific evaluation axes.
- Public or preview HTML exposes any lead runtime field name or template placeholder, especially `lead_opening_scope_sentence` or `lead_scope_sentence`.
When failing, high-quality-test must send concrete `quality_delta_items` to correction:
- exact lead issue
- required rewrite direction
- required `lead_opening_pattern_id`
- required `lead_scope_pattern_id`
- expected HTML condition
- recheck condition
## Correction Cron Gate
Correction cron must rewrite the lead itself when the lead fails this Gate.
Correction cron must not finish with memory-only updates. It must:
- Edit the WordPress body or the correct draft/preview source.
- Recheck public or preview HTML.
- Confirm banned opening is gone.
- Confirm `lead_scope_sentence` exists and is marker-under plus bold.
- Confirm lead is 220-360 Japanese characters when possible and never over 420 characters.
- Confirm lead is split into 2-3 readable paragraphs.
- Confirm the lead does not dump all conclusions before the first H2.
- Confirm public or preview HTML does not expose lead runtime field names or placeholders.
- Return to `ready_for_retest` or the correct next stage with recorded fields.
## PASS Prohibited
The page must not be marked PASS, `ready_for_high_quality_test`, `ready_for_retest`, or `301_ready` when this Gate is failing.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-19 評価スコアcron KW自然化・FAQ qa-box Gate
Hub正本: Rules/evaluation-score-cron-kw-naturalization-faq-qa-box-rule-v1-20260519 / Manuals/evaluation-score-cron-kw-naturalization-faq-qa-box-gate-v1-20260519 / Checks/evaluation-score-cron-kw-naturalization-faq-qa-box-check-v1-20260519
NOZOX 評判 のようなスペース区切りKWを本文・見出し・FAQへ直置きせず、NOZOXの評判 など自然な日本語へ変換する。FAQは原則 <details class="qa-box"> と <div class="qa-answer"> を使う。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron KW Naturalization And FAQ qa-box Gate v1
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Created: 2026-05-19
Scope: all sites / evaluation score articles / produce, high-quality-test, correction
## 1. KW Naturalization Gate
### Purpose
Evaluation score articles may need to cover composite search intent such as `SERVICE 評判`, `SERVICE 評価`, `SERVICE レビュー`, or `SERVICE 口コミ`.
However, public body text, headings, and FAQ must not expose unnatural space-separated keyword stuffing such as:
- `NOZOX 評判で差が出る`
- `NOZOX 評価を見る`
- `Javholic レビューでは`
- `Pollo AI 評判を確認`
The search intent must be preserved, but the visible Japanese must be natural.
### Required Naturalization
When using composite keyword intent in public body text, H2/H3, FAQ, tables, or captions, convert it into natural Japanese.
Allowed examples:
- `NOZOXの評判`
- `NOZOXの評価`
- `NOZOXのレビュー`
- `NOZOXの口コミ`
- `NOZOXを評判だけで判断しない`
- `NOZOXの評価を見るとき`
- `NOZOXのレビューで確認したい`
- `NOZOXについて評判を調べる`
- `NOZOXを使う前に見たい評価軸`
For English or mixed-language service names, keep the service name intact and add Japanese particles naturally.
### Where Composite Keywords Are Allowed
Exact composite keyword forms may be allowed in:
- SEO title
- meta title
- internal Search Compass query field
- keyword research log
- non-public runtime fields
Exact composite keyword forms are not allowed in visible article body when they read unnaturally.
### Search Compass Handling
`composite_query_placement_report` must treat naturalized forms as valid placement when the search intent is clearly represented.
The cron must not force exact composite keyword density. Composite query is a placement and intent check, not a density target.
### Runtime Fields
Every produce, high-quality-test, and correction run must record:
- `kw_naturalization_checked`
- `unnatural_composite_kw_found`
- `unnatural_composite_kw_examples`
- `kw_naturalized_forms_used`
- `composite_query_naturalized_placement_ok`
- `kw_naturalization_quality_delta_items`
### Stage Gate
Produce cron must rewrite unnatural composite KW before high-quality handoff.
High-quality-test cron must fail when public HTML contains unnatural composite KW in body text, headings, FAQ, table text, or captions.
Correction cron must rewrite the visible text naturally and recheck public or preview HTML.
## 2. FAQ qa-box Gate
### Purpose
Evaluation score articles should not have thin, plain, or visually weak FAQ blocks. When the site design supports it, FAQ should use the established qa-box display pattern.
### Required HTML
The default FAQ body format for evaluation score articles is:
```html
<details class="qa-box">
<summary>Question text</summary>
<div class="qa-answer">
Answer text.
</div>
</details>
```
### FAQ Requirements
FAQ must satisfy all of the following:
- Use `<details class="qa-box">` for each visible FAQ item.
- Wrap each answer in `<div class="qa-answer">`.
- Use natural question text in `<summary>`.
- Include at least 5 visible FAQ items unless the site-specific Gate says otherwise.
- Answers must be useful, not thin one-line filler.
- Answers should normally be 1-3 sentences or more, depending on complexity.
- FAQ answers may use black bold, black bold plus yellow underline marker, or red bold naturally.
- FAQ body and FAQPage JSON-LD must match in question intent and answer content.
- FAQPage JSON-LD `<script type="application/ld+json">` must not be pasted into the public article body.
### Failure Examples
Fail the page when:
- FAQ uses plain `<details>` without `class="qa-box"`.
- FAQ has `<summary>` only with no useful answer.
- FAQ is just a bullet list.
- FAQ has fewer than 5 questions without a site-specific reason.
- FAQ body and JSON-LD differ materially.
- FAQ JSON-LD script appears inside the article body.
- FAQ answers are generic, repetitive, or do not address reader decision points.
### Runtime Fields
Every produce, high-quality-test, and correction run must record:
- `faq_qa_box_checked`
- `faq_qa_box_item_count`
- `faq_answer_wrapper_ok`
- `faq_question_count`
- `faq_answer_depth_ok`
- `faq_jsonld_body_match_ok`
- `faq_jsonld_script_in_body_found`
- `faq_qa_box_quality_delta_items`
### Stage Gate
Produce cron must create FAQ in qa-box format before high-quality handoff.
High-quality-test cron must inspect public or preview HTML and fail when qa-box or answer wrapper is missing.
Correction cron must convert FAQ to qa-box format, update matching FAQ JSON-LD in the correct non-body field or structured-data workflow, and recheck public or preview HTML.
## PASS Prohibited
The page must not be marked PASS, `ready_for_high_quality_test`, `ready_for_retest`, or `301_ready` while either KW Naturalization Gate or FAQ qa-box Gate is failing.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-19 Hub Auth / Network Classification Gate
Hub source: Rules/evaluation-score-cron-hub-auth-network-classification-rule-v6-6 / Manuals/evaluation-score-cron-hub-auth-network-classification-gate-v6-6 / Checks/evaluation-score-cron-hub-auth-network-classification-check-v6-6
403/invalid-token系は BLOCKED_HUB_AUTH、EACCES/fetch failed/DNS/timeout系は BLOCKED_HUB_NETWORK として分ける。Hubが読めない状態で対象なし、PASS、完了、readyなし、301対象なしとは扱わない。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron Hub Auth / Network Classification Gate
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Version: 2026-05-19 v1
Scope: all evaluation-score cron, all sites, all task stages
## Purpose
Every evaluation-score cron must read Main 358 Hub before it selects a target, changes a stage, writes WordPress, updates Directory Core, updates FAQ JSON-LD, or runs 301.
When Hub cannot be read, the cron must classify the failure accurately. It must not report target none, PASS, done, no ready, no correction target, no 301 target, or production-ready absence while mandatory Hub endpoints are unreadable.
## Mandatory Hub Endpoints
Each run must try to read the required endpoints for its task:
- `agent_pack`
- `agent_work_queue`
- `agent_runtime_readiness`
- workflow/article-specific `agent_pack` when the task requires it
- any required Rules / Manuals / Checks listed by the task template
If any mandatory endpoint cannot be read because of auth or network failure, stop before target selection or write operations.
## Failure Classes
### BLOCKED_HUB_AUTH
Use `BLOCKED_HUB_AUTH` when the Hub response or bootstrap result indicates an auth problem:
- HTTP 401
- HTTP 403
- `invalid token`
- `token expired`
- missing token
- all configured auth sources rejected
- credentials exist but do not have permission for the mandatory endpoint
Do not retry the same rejected auth value repeatedly. Switch to the next approved bootstrap source if available, then stop with `BLOCKED_HUB_AUTH` if every approved source fails.
### BLOCKED_HUB_NETWORK
Use `BLOCKED_HUB_NETWORK` when the auth value is present but the Hub request cannot reach or complete the HTTPS/API call:
- `EACCES`
- `fetch failed`
- DNS error
- timeout
- TLS / SSL error
- connection refused / reset
- network unreachable
- proxy / firewall / execution-environment denial
Network failures may be retried briefly with backoff, but must not loop indefinitely.
### BLOCKED_HUB_AUTH_NETWORK
Use `BLOCKED_HUB_AUTH_NETWORK` only when the run cannot safely distinguish auth failure from network/execution-environment denial. Record why it is ambiguous.
## Retry Policy
The cron must keep retry behavior short and auditable:
- Auth failure: do not retry the same `auth_source` and endpoint after a clear 401/403/invalid-token result.
- Auth bootstrap: try only approved internal auth sources. Record the source label, never the secret value.
- Network failure: retry a small bounded number of times, normally 1 to 3 attempts per endpoint.
- After the bounded retry, stop with the matching blocked status.
- Never continue to target selection or article writes after mandatory Hub read failure.
## Runtime Stat Fields
Every blocked run must leave a runtime status record. If Hub is writable, write it to Hub as a `cron_runtime_stat`. If Hub is not writable, leave it in memory/result files with `runtime_stat_pending=true`.
Required sanitized fields:
- `hub_block_status`
- `hub_error_class`
- `hub_endpoint_statuses`
- `hub_endpoint_name`
- `hub_endpoint_url_label`
- `hub_http_status`
- `hub_error_code`
- `hub_error_message_sanitized`
- `hub_auth_source_label`
- `hub_retry_count`
- `hub_bootstrap_sources_tried`
- `runtime_stat_pending`
- `next_retry_recommendation`
`hub_endpoint_statuses` should be an array or JSON string with one item per attempted endpoint. It must include endpoint name, status/error class, retry count, and auth source label.
## Secret Handling
Never write auth values, app passwords, bearer tokens, Basic auth headers, full local private paths, or token bodies to:
- public article body
- public cron.goudou-358.jp pages
- Hub manual body
- memory
- result markdown
- distributed files
Only source labels such as `default_client_token`, `H358_HUB_AGENT_TOKEN`, `CODE_YUKI_ENV_HUB_LOCAL`, or `bootstrap_fallback` may be recorded.
## Gate Behavior By Stage
All stages follow the same Hub read rule:
- collect / inspect: do not mark no candidates while Hub is unreadable.
- produce: do not create or update a post while Hub is unreadable.
- high-quality-test: do not mark PASS/FAIL based on stale local state while Hub is unreadable.
- correction: do not fix or mark no correction target while Hub is unreadable.
- improvement handoff: do not create handoff state while Hub is unreadable.
- redirect-301: do not write Redirection rules or mark `301_done` while Hub is unreadable.
## Pass Conditions
The Gate passes only when:
- all mandatory Hub endpoints for the task are read successfully, or a non-auth/non-network Hub reference incompleteness is separately classified;
- retry count is bounded and recorded;
- no secret value is written;
- blocked runs use `BLOCKED_HUB_AUTH`, `BLOCKED_HUB_NETWORK`, or `BLOCKED_HUB_AUTH_NETWORK` instead of target-none/PASS/done/no-ready;
- runtime stat or `runtime_stat_pending=true` is present.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-19 Quality Verdict Concurrency Gate
Hub source: Rules/evaluation-score-cron-quality-verdict-concurrency-rule-v6-6 / Manuals/evaluation-score-cron-quality-verdict-concurrency-gate-v6-6 / Checks/evaluation-score-cron-quality-verdict-concurrency-check-v6-6
高品質cronの複数同時起動時、同一記事にはactiveなPASS/FAILを1つだけ残す。Task8は task8_quality_claim を取得し、quality_target_identity と content_hash を記録し、書き込み直前にHubを再読込する。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron Quality Verdict Concurrency Gate
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Version: 2026-05-19 v1
Scope: all evaluation-score cron, all sites, mainly Task8 high-quality-test and the downstream Task10 / Task11 handoff
## Purpose
When multiple high-quality-test cron runs start at nearly the same time, only one active verdict may remain for one article identity.
The cron must not leave both active PASS and active FAIL / correction_queue for the same article. Older or stale verdicts must be marked `superseded` or `stale_quality_fail`, and the newest valid owner run must be the only active state.
## Article Identity
Do not identify a target by display title alone. Display titles can be mojibake, renamed, translated, or normalized differently.
Use a stable `quality_target_identity` built from available fields:
- `canonical_url`
- `wp_post_id`
- `new_url`
- `old_url`
- `article_key`
- `target_slug`
- `site_id`
- `workflow_id`
At least one URL or `wp_post_id` must be present for Task8. If neither URL nor post id is available, do not write PASS/FAIL. Return `BLOCKED_MISSING_TARGET_IDENTITY`.
## Required Claim Before Inspection
Before public HTML inspection, Task8 must acquire a claim:
- `task8_quality_claim`
- `quality_verdict_claim`
- owner fields: `automation_id`, `run_id`, `task_code`, `quality_target_identity`
- TTL / `lock_expires_at`
After writing the claim, immediately reread Hub. Continue only if the current run is the owner.
If another active owner exists, do not inspect or write a verdict. Return `SKIP_LOCKED` and look for another candidate when the task supports next-candidate search.
## Inspection Input Generation
Each high-quality verdict must record the inspected public HTML generation:
- `public_html_checked=true`
- `public_html_status`
- `canonical_url`
- `wp_post_id` when available
- `content_hash`
- `content_hash_method`
- `wp_modified` or `http_last_modified` when available
- `checked_at_jst`
- `quality_claim_owner`
If `content_hash` cannot be obtained from the response body, compute a normalized text hash from the fetched HTML. Do not use stale local HTML without marking it as stale.
## Pre-Write Reread
Before writing PASS, FAIL, `correction_queue`, or `301_ready`, Task8 must reread Hub and check the same `quality_target_identity`.
Do not write a verdict if any newer active state exists for the same article after this run started:
- `quality_pass`
- `301_ready`
- `ready_for_retest`
- `task8_recheck`
- `correction_fixed`
- `correction_completion_score=100`
- another active `quality_verdict_claim` owned by a different run
In that case, classify the current run as:
- `STALE_VERDICT_SUPERSEDED`
- `stale_quality_fail`
- `superseded_by_run_id`
Do not leave an active `correction_queue` from a stale run.
## Single Active Verdict Rule
For one `quality_target_identity`, Hub must have at most one active quality state:
- active `quality_pass`, or
- active `quality_fail / correction_queue`, or
- active `301_ready`, or
- active `ready_for_retest / task8_recheck`.
When a newer valid PASS is written, older active FAIL/correction entries for the same identity must be moved to:
- `superseded`
- `stale_quality_fail`
- `inactive`
When a newer valid FAIL is written, older active PASS/301-ready entries may not be overwritten unless the inspected generation is newer and the pre-write reread confirms this run owns the claim.
## PASS Requirements
Task8 may write PASS only when:
- it owns the active `task8_quality_claim`;
- public HTML was fetched successfully;
- `quality_target_identity` is stable;
- `content_hash` / inspected generation is recorded;
- pre-write Hub reread confirms no newer active state has superseded this run;
- `quality_fail` and `correction_queue` for the same identity are zero or explicitly superseded;
- `quality_delta_items=[]`;
- `minimum_gate_failures=[]`.
## FAIL Requirements
Task8 may write FAIL / `correction_queue` only when:
- it owns the active `task8_quality_claim`;
- the inspected generation is current;
- the target identity matches the candidate;
- fail reasons are concrete and tied to current public HTML;
- pre-write Hub reread confirms no newer correction/PASS/301-ready state already resolved the same target;
- `quality_delta_items` includes fix location, fix condition, and retest condition.
## Downstream Guard
Task10 correction and Task11 redirect-301 must respect the same active verdict state:
- Task10 must ignore `stale_quality_fail` and `superseded` failures.
- Task11 must only process active `301_ready / redirect_ready / 301_ready_retry` generated from a non-stale PASS.
- If Task11 sees active FAIL/correction for the same identity, it must stop with `BLOCKED_PRE_301_GATE_FAILED`.
## Runtime Fields
Each Task8 run must record:
- `quality_target_identity`
- `quality_claim_id`
- `quality_claim_owner`
- `quality_claim_acquired`
- `quality_claim_reread_confirmed`
- `quality_claim_expires_at`
- `content_hash`
- `content_hash_method`
- `public_html_checked`
- `pre_write_reread_at_jst`
- `newer_state_found`
- `superseded_state_ids`
- `active_quality_state_after_write`
- `active_correction_queue_count_after_write`
## Forbidden
- Do not use display title alone as the identity key.
- Do not leave active PASS and active FAIL for the same article.
- Do not let a stale run create a live correction queue.
- Do not write 301-ready from a verdict that did not own the claim.
- Do not mark PASS from stale local files or memory-only checks.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-19 H2/H3 Heading Hierarchy Gate
Hub source: Rules/evaluation-score-cron-heading-hierarchy-rule-v6-6 / Manuals/evaluation-score-cron-heading-hierarchy-gate-v6-6 / Checks/evaluation-score-cron-heading-hierarchy-check-v6-6
評価スコア記事はH2だけの平板構造にしない。H2は大項目、H3は検索意図・共起語・読者疑問・公式確認ポイントを分解する小項目として使う。良い点、注意点、向いている人などの短い判断材料ブロックは、原則として親H2配下のH3にする。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron H2/H3 Heading Hierarchy Gate
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Version: 2026-05-20 v2
Scope: all evaluation-score cron, all sites, produce / high-quality-test / correction
## Purpose
Evaluation score articles must not become a flat list of H2 headings. A good article uses H2 for major sections and H3 for subtopics inside those sections.
If every major point is written as H2, the article becomes monotonous, shallow, and hard to scan. H3 headings are required to break down search intent, official confirmation points, cooccurrence terms, reader doubts, comparison axes, and article-specific original angles.
## Base Structure Must Stay
Do not change the established opening order:
1. H1 title
2. Evaluation score table
3. Lead paragraph
4. Official text link
5. First H2
The H2/H3 hierarchy Gate starts after the first H2. Do not add an in-body H1.
## H2 Role
Use H2 only for major sections.
Examples:
- score interpretation / evaluation score item explanation
- service overview
- pricing and renewal conditions
- payment and cancellation
- safety / privacy
- strengths
- warnings
- suitable users
- overall evaluation
- FAQ
H2 should be a section-level promise. Do not make every small point an H2.
## H3 Role
Use H3 for subtopics within an H2.
Examples under pricing:
- monthly fee and billing cycle
- renewal timing
- campaign / discount display
- payment statement and merchant name
Examples under safety:
- age condition
- privacy policy / personal information
- support / inquiry route
- device and viewing environment
Examples under score item explanation:
- what raises the score
- what lowers the score
- what to compare before registration
## Decision Support Blocks
Recurring short support blocks are normally H3, not H2.
These blocks include:
- 良い点 / good points
- 注意点 / cautions
- 向いている人 / recommended for
- 向いていない人 / not recommended for
- 確認すべき条件 / final check points
- short comparison notes and bullet-only decision support lists
Use a parent H2 such as:
```html
<section id="decision-support">
<h2 id="decision-support-heading">登録前に確認したい判断材料</h2>
<h3 id="good-points">良い点</h3>
...
<h3 id="caution-points">注意点</h3>
...
<h3 id="recommended-for">向いている人</h3>
...
</section>
```
Do not make `良い点` / `注意点` / `向いている人` independent H2 sections when they are mostly short bullet lists. They may be H2 only when each block has enough original body text, search-intent coverage, and service-specific analysis to stand as a major section.
## Minimum Requirements
The visible article body must normally include:
- at least 2 H3 headings in normal evaluation score articles;
- at least 1 article-specific H3 created from search intent, cooccurrence terms, reader questions, official confirmation points, or SERP tendencies;
- H3 headings nested under appropriate H2 sections;
- support blocks such as good points / cautions / recommended users grouped under a parent H2 and rendered as H3 unless they are substantial major sections;
- `id` attributes on important H2 and H3 headings, or a surrounding `section id` with clear heading ids;
- no H2-only article body unless a documented site-specific exception exists.
For long articles, use more H3 headings as needed. Do not satisfy this Gate by adding thin or meaningless H3s.
## H2 Overuse Failure
Treat the article as FAIL or correction target when:
- visible body has H3 count = 0;
- H2 headings appear as a flat list without subtopic breakdown;
- H2 count is high while H3 count is 0 or extremely low;
- score item headings are all H2 but contain no H3-level explanation;
- `良い点` / `注意点` / `向いている人` / `向いていない人` are H2 headings but contain only short bullet lists or thin support text;
- support blocks are not grouped under a parent H2 such as decision support / registration check / final comparison points;
- article-specific search intent / cooccurrence / reader doubt is not represented by any H3;
- H3 headings have no IDs or no stable section IDs;
- H3 is used only as decorative text without enough body under it.
## Recommended Pattern
Use H2 for the large section, then H3 for concrete checks.
Example:
```html
<section id="pricing-renewal">
<h2 id="pricing-renewal-heading">料金と更新条件</h2>
<p>...</p>
<h3 id="monthly-fee-cycle">月額料金と更新周期</h3>
<p>...</p>
<h3 id="payment-statement">決済明細で見るべき点</h3>
<p>...</p>
</section>
```
## Produce Cron
Produce cron must design the article with H2/H3 hierarchy from the beginning.
Before `ready_for_high_quality_test`, produce must record:
- `heading_hierarchy_checked=true`
- `h2_count`
- `h3_count`
- `h3_article_specific_count`
- `h3_ids_present`
- `support_block_heading_level_checked`
- `support_blocks_h3_not_h2`
- `decision_support_parent_h2_present`
- `h2_h3_quality_delta_items`
If H3 is missing or thin, produce must fix it before handoff where possible.
## High-Quality-Test Cron
High-quality-test cron must inspect public or preview HTML and fail when the article is H2-only or H3-thin.
It must return concrete `quality_delta_items`:
- where to add H3;
- which H2 section should contain it;
- what search intent / cooccurrence term / reader question / official confirmation point it should cover;
- whether good points / cautions / recommended users should be changed from H2 to H3 under a parent H2;
- retest condition after correction.
## Correction Cron
Correction cron must add or rewrite H3 sections naturally, without breaking the opening order or bloating the article.
Correction must:
- add meaningful H3s under existing or improved H2 sections;
- convert thin support-block H2 headings such as good points / cautions / recommended users into H3 under a parent H2 when appropriate;
- add IDs;
- add body text under H3s;
- preserve natural keyword placement;
- update FAQ/JSON-LD only when FAQ content changes;
- recheck public or preview HTML;
- return to `ready_for_retest / task8_recheck`.
Memory-only completion is not enough.
## Pass Conditions
The Gate passes only when:
- H3 count is not zero;
- important H2 sections have appropriate H3 breakdown when needed;
- at least one article-specific H3 exists;
- H2/H3 IDs or section IDs are present;
- the hierarchy improves readability and search intent coverage;
- high-quality-test sees the structure in public or preview HTML.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-19 Content Volume / Natural Expansion Gate
Hub source: Rules/evaluation-score-cron-content-volume-natural-expansion-rule-v6-6 / Manuals/evaluation-score-cron-content-volume-natural-expansion-gate-v6-6 / Checks/evaluation-score-cron-content-volume-natural-expansion-check-v6-6
Evaluation-score cron must reject thin pages below 4,000 visible Japanese characters as quality failure, then expand naturally with Search Compass, keyword-family density, cooccurrence terms, related terms, H3 sections, concrete examples, and FAQ depth. There is no maximum character count. Useful old information must be marked clearly, for example with <del>old value</del> plus current value.
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron Content Volume / Natural Expansion Gate
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Created: 2026-05-19
Scope: all sites / evaluation score articles / produce, high-quality-test, correction
## Purpose
Evaluation score articles must not pass with thin sections, short repeated paragraphs, or shallow H2/H3 blocks.
This Gate defines a minimum visible article volume and the correct way to expand content: natural keyword-family use, search intent, cooccurrence terms, related terms, concrete examples, official confirmation points, FAQ depth, and reader decision axes.
## Minimum Visible Text Volume
For Japanese evaluation score articles, the visible article text must normally be at least 4,000 Japanese characters.
The cron must record:
- `content_volume_checked=true`
- `visible_text_char_count`
- `visible_text_min_char_count=4000`
- `visible_text_count_scope`
- `content_volume_status`
- `content_volume_quality_delta_items`
Count only reader-visible article content:
- lead text
- evaluation score table visible text
- score-item body sections
- basic information table
- supplemental sections
- good points / cautions / suitable users / unsuitable users
- FAQ body
- summary / overall evaluation
Do not count:
- FAQ JSON-LD script
- JavaScript
- navigation
- sidebar
- related posts
- comments
- admin text
- hidden metadata
- runtime logs
## PASS Prohibited
If `visible_text_char_count < 4000`, the page must not be marked:
- `ready_for_high_quality_test`
- `PASS`
- `ready_for_retest`
- `301_ready`
This is a quality failure / correction target, not a Hub auth BLOCKED state.
## No Maximum Character Count
There is no upper character limit.
However, expansion must be useful. Do not pad the page with repeated phrases, generic filler, or mechanical keyword stuffing.
## Natural Expansion Policy
When text is below the minimum, add useful content by expanding:
- search intent
- cooccurrence terms
- related terms
- official confirmation points
- pricing / plan / cancellation / safety / age / legal / technical points
- comparison axes
- concrete examples
- reader questions
- FAQ depth
- score-item explanations
Preferred expansion locations:
- score-item body sections
- H3 subsections under existing H2s
- a new article-specific H3 section
- before the final summary
- before FAQ
- FAQ answers
Every added H2/H3 or section must have an id.
## Keyword Density Interaction
Keyword-density improvement is a reason to expand content, but density must be improved naturally.
Use entity-intent keyword families, not single-word stuffing.
Examples:
- `SERVICEの評判`
- `SERVICEの評価`
- `SERVICEのレビュー`
- `SERVICEを使う前に確認したい条件`
Do not increase density by repeating only:
- `評判`
- `評価`
- `レビュー`
- the service name alone
If density is low, add reader-useful context. If density is too high, use natural paraphrases and related terms.
## Outdated Information Policy
Old information should not be blindly deleted or silently mixed with new information.
Use outdated information only when it helps reader judgment, such as price changes, plan changes, cancellation rules, official policy changes, service migration, or feature changes.
When keeping old information, make the status clear:
```html
<del>旧料金</del> 現在の料金
```
Use a checked date or status note when useful.
If old information only creates confusion and has no reader value, remove it or move it into a short context note.
The cron must record:
- `outdated_info_checked`
- `outdated_info_del_used`
- `outdated_info_items`
- `outdated_info_action`
## Stage Rules
### Produce
Produce cron must measure visible text before high-quality handoff.
If below 4,000 characters, produce cron must expand naturally before `ready_for_high_quality_test`. It must not push a thin article to Task8 as if the problem were only high-quality-test's job.
### High-Quality Test
High-quality-test cron must inspect public or preview HTML and FAIL / requeue when:
- visible text is below 4,000 characters;
- H2/H3 sections are thin;
- many sections have only one short paragraph;
- keyword-density improvement was done by repetition;
- old information is mixed without `del`, checked date, or clear status.
### Correction
Correction cron must expand naturally and remeasure.
It must not complete with memory-only updates. It must recheck public or preview HTML and return `ready_for_retest` / `task8_recheck` only when:
- visible text is at least 4,000 characters;
- the expansion is natural;
- keyword-density state is acceptable;
- old information is handled clearly;
- no new H2/H3 ID gaps were introduced.
## Runtime Output
Every stage should preserve these fields when applicable:
- `content_volume_checked`
- `visible_text_char_count`
- `visible_text_min_char_count`
- `visible_text_count_scope`
- `content_volume_status`
- `natural_expansion_required`
- `natural_expansion_done`
- `keyword_density_expansion_plan`
- `keyword_density_after_expansion`
- `outdated_info_checked`
- `outdated_info_del_used`
- `outdated_info_items`
- `content_volume_quality_delta_items`
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-20 Runtime Retry / Revision Lock Gate
Hub source: Rules/evaluation-score-cron-runtime-retry-revision-lock-rule-v6-6 / Manuals/evaluation-score-cron-runtime-retry-revision-lock-gate-v6-6 / Checks/evaluation-score-cron-runtime-retry-revision-lock-check-v6-6
Evaluation-score cron must use short jitter and bounded retries for network-class Hub bootstrap failures, while keeping auth failures as BLOCKED_HUB_AUTH. Revision-required states such as needs_production_revision must not be hidden by an older completed lock.
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron Runtime Retry / Revision Lock Gate
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
Created: 2026-05-20
Scope: all sites / evaluation score cron / all stages
## Purpose
Evaluation score cron must keep trying to release useful articles without ignoring safety.
Recent failures showed two different problems:
1. `agent_pack` access sometimes stops with `connect EACCES ... hub.goudou-358.jp:443`.
2. Produce cron can confuse a previous `completed` lock with a `needs_production_revision` state and stop even though the same article still needs self-revision.
This Gate fixes both problems without allowing Hub-unread runs to guess targets or write articles blindly.
## Runtime Jitter Before Hub Bootstrap
When several cron runs may start around the same time, each run should wait a short random jitter before the first Hub bootstrap request.
Recommended:
- default jitter: 5-20 seconds
- manual immediate test: 0-5 seconds is acceptable
- record `runtime_jitter_seconds`
This reduces simultaneous `agent_pack` access collisions.
## Short Retry For Network-Class Failures
For network-class errors, cron should retry briefly before declaring `BLOCKED_HUB_NETWORK`.
Network-class examples:
- `connect EACCES`
- `fetch failed`
- DNS error
- timeout
- TLS/SSL connection error
- connection refused
- temporary network unavailable
Retry policy:
- maximum 3 attempts per endpoint during bootstrap
- backoff with jitter, for example 5s, 15s, 30s plus random jitter
- do not retry forever
- record `hub_retry_count`
- record `hub_endpoint_statuses`
- record `hub_network_error_kind`
- record `hub_bootstrap_endpoint`
## Auth Failures Are Not Network Retry
Do not treat auth failures as retryable network failures.
Auth-class examples:
- HTTP 401
- HTTP 403
- invalid token
- token expired
- permission denied
These remain `BLOCKED_HUB_AUTH`. Do not repeat the same invalid credential in a loop.
## Bootstrap Endpoint Order
Cron should use a safe bootstrap sequence:
1. `agent_runtime_readiness`
2. `agent_pack`
3. `agent_work_queue`
4. stage-specific target pack or article pack
If a lightweight endpoint succeeds but `agent_pack` fails, the run still must not classify targets, PASS, write WordPress, update Directory Core, update FAQ JSON-LD, execute 301, or delete.
`agent_pack` or the stage-required Hub pack must be readable before target decision.
## Pending Runtime Stat
When Hub cannot be written because the same network problem is active, write only local memory/state:
- `runtime_stat_pending=true`
- `pending_runtime_stat_reason`
- `hub_endpoint_statuses`
- `hub_auth_source_label`
- `hub_retry_count`
- `hub_network_error_kind`
- `last_hub_bootstrap_endpoint`
Do not write credentials, tokens, app passwords, or local secret values.
On the next successful Hub connection, cron should send pending runtime stats before or along with the new run result.
## Revision Lock Semantics
Lock states must distinguish final completion from revision states.
### Final complete lock
Use a final `completed` lock only when the stage actually handed off to the next stage and Hub accepted that final state.
Examples:
- produce -> `ready_for_high_quality_test`
- high-quality-test -> `301_ready` or `correction_queue`
- correction -> `ready_for_retest` / `task8_recheck`
- redirect-301 -> `301_done`
### Revision-required state
When the current article is not handed to the next stage and must be reworked by the same stage, do not leave a final completed lock that blocks rework.
Use a revision state instead:
- `needs_production_revision`
- `production_quality_fail_requeued`
- `needs_same_stage_revision`
- `revision_required`
- `self_revision_pending`
The same stage may reacquire the article when:
- the latest active state is a revision-required state;
- the previous lock owner is the same automation family or the lock is stale;
- no other active owner is editing the same target;
- Hub is reread after claim.
## Completed Lock Must Not Hide Active Revision
When both old `completed` and newer `needs_production_revision` records exist, the newest active stage state wins.
Cron must sort target history by reliable timestamp / exported_at / updated_at and use the latest active state.
If latest state is `needs_production_revision`, produce cron should treat the article as a revision candidate, not as completed.
If latest state is `ready_for_high_quality_test`, produce cron must not touch it.
If latest state is `correction_queue`, produce cron must not touch it.
## Lock Claim Flow
Before editing, cron must:
1. read the latest Hub state;
2. select only candidates without active owner, or candidates legally reacquirable by the same stage;
3. create `task_lock`, `stage_claim`, `production_claim`, or equivalent;
4. reread Hub immediately;
5. continue only if its own `automation_id` / `run_id` is lock owner;
6. if lock failed, skip that target and try the next candidate when the stage allows it.
Lock failure is not a reason to stop immediately when other valid candidates exist.
## Runtime Transport Fallback
Cron must not depend on a single language runtime's direct HTTPS path. If Node.js direct HTTPS/fetch fails with `connect EACCES`, `fetch failed`, DNS, timeout, TLS, or similar network-class errors while an OS-approved transport such as `curl.exe`, PowerShell `Invoke-WebRequest`, or Python `urllib` can reach the same endpoint, the cron must switch to that reachable transport for Hub bootstrap, Hub fresh reads, Search Compass calls, and public HTML checks.
If a Node.js process also blocks child-process network access, such as `node -> curl.exe` returning HTTP 000 / connection refused while top-level `curl.exe` or top-level Python succeeds, do not keep the inspect/check logic inside Node. Launch the Hub bootstrap and candidate inspection through a top-level Python, PowerShell, or direct curl runner, or rewrite that cron stage in Python/PowerShell. Repeating the same Node runner is not a valid retry.
This is not an authentication bypass. The same Hub token, endpoint, request method, and headers must be used, and the token value must never be printed, written to memory, public pages, Hub body, or distributed files. The runtime result must record sanitized transport facts such as `hub_transport_attempts`, `hub_selected_transport`, `hub_endpoint_statuses`, `hub_network_error_kind`, and `node_child_process_network_blocked`.
If all available transports fail, stop as `BLOCKED_HUB_NETWORK`. Do not classify targets, PASS, no target, ready, done, write WordPress, update Directory Core, update FAQ JSON-LD, execute 301, or delete.
## Stage-Specific Rules
### Inspect
Inspect cannot classify candidates without Hub source. If Hub network retry fails, stop as `BLOCKED_HUB_NETWORK`.
### Produce
Produce may process a fresh `production_ready` target or a latest active `needs_production_revision` target.
Produce must not let an old `completed` lock hide a newer revision-required state.
### High-Quality Test
High-quality-test must claim one target and prevent concurrent PASS/FAIL conflict. Stale verdicts must be superseded.
### Correction
Correction must claim one active `correction_queue` or `quality_fail` target. It must not touch targets already moved to `ready_for_retest`, `task8_recheck`, or `301_ready`.
### Redirect 301
Redirect cron must process only active `301_ready`, `redirect_ready`, or `301_ready_retry` states. If a newer `correction_queue` exists, 301 must stop as pre-301 Gate failure.
## Required Runtime Fields
All stages should record when applicable:
- `runtime_jitter_seconds`
- `hub_retry_count`
- `hub_endpoint_statuses`
- `hub_network_error_kind`
- `hub_bootstrap_endpoint`
- `hub_transport_attempts`
- `hub_selected_transport`
- `node_child_process_network_blocked`
- `runtime_stat_pending`
- `pending_runtime_stat_reason`
- `lock_state_checked`
- `latest_active_stage_state`
- `completed_lock_ignored_due_to_newer_revision`
- `revision_reacquire_allowed`
- `revision_reacquire_reason`
- `stage_claim_created`
- `stage_claim_owner_verified`
- `lock_failed_next_candidate_attempted`
## PASS Prohibited
Do not mark PASS, done, no target, ready, or complete when:
- Hub required source is unreadable after retry;
- the latest active state cannot be determined;
- lock owner cannot be verified;
- a newer revision/correction state conflicts with the intended operation.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-20 porn-fun Directory Category Genre Gate
Hub source: Rules/porn-fun-directory-category-genre-rule-v6-6 / Manuals/porn-fun-directory-category-genre-gate-v6-6 / Checks/porn-fun-directory-category-genre-check-v6-6
porn-fun の directory_category はトップ辞書のジャンル導線です。評価軸カテゴリを入れず、動画配信、ライブチャット、Hentai Games、NSFW AI、アダルトグッズ通販などのジャンルだけを入れます。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# porn-fun Directory Category Genre Gate v6.6
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
## Purpose
porn-fun.com の辞書トップは、The Porn Dude 型のジャンル導線として扱う。
`directory_category` は「動画配信」「ライブチャット」「Hentai Games」などのジャンル分類に使う。
料金、作品、使いやすさ、決済、退会、安全面、日本語対応、海外対応などの評価軸は `directory_category` に入れない。
## 正本
- collection: `adult-services`
- top shortcode:
`
Directory
成人向けサービス辞書 成人向け動画配信、ライブチャット、Hentai Games、NSFW AI、アダルトグッズ通販などをジャンル別に探せる辞書です。
0掲載
0カテゴリ
0タグ
おすすめリンク まず確認しやすい掲載先をリンク集として並べています。
Directoryから最初の店舗情報を追加してください。
Featured未設定のため、現在は総合リンクを表示しています。
総合リンク一覧 登録済みの掲載を順位順にまとめて確認できます。
すべて見る
Directoryから最初の店舗情報を追加してください。
`
## Allowed directory_category slugs
- `adult-video-streaming`: アダルト動画配信
- `live-chat`: ライブチャット
- `hentai-games`: Hentai Games
- `nsfw-ai`: NSFW AI
- `adult-goods-shop`: アダルトグッズ通販
- `sex-doll-shops`: セックスドール
- `adult-shop-store`: 実店舗型アダルトショップ
## Forbidden directory_category slugs for porn-fun
以下は評価軸またはタグ候補であり、porn-fun の `directory_category` に入れない。
- `pricing-cost`
- `content-products`
- `usability`
- `payment-shipping`
- `cancel-return`
- `privacy-safety`
- `japanese-support`
- `global-support`
## Taxonomy role split
- `directory_collection`: 辞書セット。porn-fun は原則 `adult-services`。
- `directory_category`: トップや一覧で見せるジャンル。読者が最初に選ぶ大分類。
- `directory_type`: サービス種別の補助分類。既存互換で残してよいが、トップ導線の主分類は `directory_category`。
- `directory_tag`: 年齢確認、定額、単品購入、クレジットカード、D2Pass、スマホ対応、退会導線などの特徴タグ。
- 評価スコア項目: 本文、Directory Core の評価表、チェック項目として扱う。カテゴリにはしない。
## Cron gate
Produce cron:
- 本文制作前に候補のジャンルを1つ選ぶ。
- `directory_category` には許可ジャンルだけを入れる。
- 評価軸カテゴリを検出した場合、公開前にジャンルカテゴリへ置換する。
- `porn_fun_directory_category_checked=true` をHubへ残す。
High-quality-test cron:
- 公開HTMLだけでなく REST の `directory_category` も確認する。
- porn-fun で評価軸カテゴリが1つでも入っていたら PASS 禁止。
- 記事品質が良くても taxonomy 不正なら `correction_queue` へ返す。
Correction cron:
- 評価軸カテゴリを削除し、正しいジャンルカテゴリへ差し替える。
- タグに入れるべきものは `directory_tag` へ移す。
- 修正後に REST で `directory_category` を再確認し、`remaining_taxonomy_errors=[]` を残す。
301 cron:
- 301実行前に新辞書記事の `directory_category` が許可ジャンルであることを確認する。
- 不正カテゴリが残る場合は 301 しない。`BLOCKED_PRE_301_GATE_FAILED` として訂正へ返す。
## Required runtime fields
- `porn_fun_directory_category_checked`
- `directory_collection_slug`
- `directory_category_slugs`
- `directory_type_slugs`
- `directory_tag_slugs`
- `forbidden_evaluation_axis_category_count`
- `taxonomy_role_split_checked`
- `remaining_taxonomy_errors`
## PASS conditions
- `directory_collection_slug=adult-services`
- `directory_category_slugs` が allowed list のみ
- forbidden list が `directory_category` に0件
- 評価軸はカテゴリではなく本文/評価表/タグへ整理済み
- トップショートコードは `collection="adult-services"` を使う
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-20 cron automation命名Gate
Hub正本: Rules/evaluation-score-cron-automation-naming-convention-rule-v6-6 / Manuals/evaluation-score-cron-automation-naming-convention-gate-v6-6 / Checks/evaluation-score-cron-automation-naming-convention-check-v6-6
automation名は サイト名【記事タイプ・ジャンル短縮】工程cron に統一する。正式本文では「評価スコアページ用」と書いてよいが、automation名では 評価 に短縮する。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# Evaluation Score Cron Automation Naming Convention Gate v6.6 / 2026-05-20
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
## Purpose
Cron automation names must be short enough to scan across multiple PCs and threads, while still showing the site, article type, optional genre, and stage.
The canonical source text in Hub and cron template bodies may use the full term "evaluation-score page", but the automation name itself must use the short label.
## Required format
Use this format for all evaluation-score cron automations and future article-type cron automations:
`site_name【article_type_short・genre_short】stage_labelcron`
If no genre is needed, omit the genre part:
`site_name【article_type_short】stage_labelcron`
Japanese operator-facing format:
`サイト名【記事タイプ・ジャンル短縮】工程cron`
## Article type short labels
- 評価スコアページ用: `評価`
- ランキング記事用: `ランキング`
- まとめ記事用: `まとめ`
- 比較記事用: `比較`
- 速報記事用: `速報`
- 通常記事用: `通常`
- ブログ用: `ブログ`
- 量産用: `量産`
- つぶやき用: `つぶやき`
## Genre short labels
- porn-fun single-service migration: `単体移行`
- porn-fun NSFW AI Generator Sites: `NSFW AI`
- porn-fun Hentai Games: `Hentai Games`
- porn-fun Sex Doll Shops: `Sex Doll`
- Nightlife hotel evaluation: `ホテル評価`
- Nightlife store evaluation: `店舗評価`
- AIfunIO evaluation-score pages: no genre; use `AIfunIO【評価】`
## Required examples
- `porn-fun【評価・NSFW AI】収集cron`
- `porn-fun【評価・Hentai Games】検査cron`
- `porn-fun【評価・Sex Doll】制作cron`
- `porn-fun【評価・単体移行】高品質cron`
- `AIfunIO【評価】制作cron`
- `Nightlife【ホテル評価】訂正cron`
- `Nightlife【店舗評価】高品質cron`
- `porn-fun【ランキング・動画配信】収集cron`
- `AIfunIO【まとめ】制作cron`
- `invest358【速報】検査cron`
- `Nightlife【比較・ホテル】高品質cron`
## Pass conditions
- Automation names include site name, article type short label, optional genre short label, and stage label.
- Evaluation-score page automations use `評価`, not the long phrase `評価スコアページ`.
- Genre is included when the workflow has a genre-specific template.
- Stage label must remain visible: `収集`, `検査`, `制作`, `高品質`, `訂正`, `改善`, and where applicable `301`.
- Template body and Hub record may still say `評価スコアページ用` as the formal article type.
- One posted cron request creates exactly one automation.
## Fail conditions
- Name is only a stage name, such as `制作cron`, without site/article type.
- Name uses the old long style such as `【porn-fun NSFW AI Generator Sites評価スコアページ】`.
- Name mixes unrelated article types or omits a required genre.
- Template body and Hub disagree about the workflow or stage.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
2026-05-20 porn-fun日本語URL正本Gate
Hub正本: Rules/porn-fun-ja-url-canonical-policy-rule-v6-6 / Manuals/porn-fun-ja-url-canonical-policy-gate-v6-6 / Checks/porn-fun-ja-url-canonical-policy-check-v6-6
porn-funの日本語評価辞書記事は https://porn-fun.com/ja/{slug}/ を正本URLにする。日本語トップ正本は https://porn-fun.com/ja/top/。https://porn-fun.com/ja/ はトップ正本への301として扱う。
root URL、/sites/ URL、古いmemoryのURLを現在のpublic/canonical/Directory Core/Search Compass/FAQ JSON-LD URLとして採用しない。
marker: hub-v0141-produce-ready-bridge-required-20260526
Before any work, read Autopost358/_branch_common/docs/CRON_LATEST_RULE_BOOTSTRAP.md and run Autopost358/_branch_common/bootstrap/autopost_cron_launcher.py or RUN_AUTOPOST_CRON_LAUNCHER.cmd. Read Main Hub api=cron_preflight_resolve first so target resolution, latest manifest, connection policy, write scope, selected candidate, fast_start_pack, recorded risks, and lock_payload are received in one call. Use api=agent_runtime_bootstrap, api=status, api=agent_runtime_readiness, api=agent_work_queue, and workflow/article api=agent_pack only as legacy fallback or detailed stage follow-up after fast-start resolve. Continue only when latest_instruction_manifest is present, hub_version >= 0.1.41, and mandatory rule keys include cron-self-refresh-before-work-v1, hub-v023-cron-write-scope-and-recorded-risks, production-pack-recorded-risks-v1, all-inspection-soft-statuses-produce-ready-v1, no-master-table-claim-bridge-v1, publication-events-count-source-v1, publication-count-reconciliation-history-v1, update-request-events-source-v1, db-migration-dual-layer-prep-v1, db-shadow-prepare-and-compare-v1, and cron-bootstrap-single-entrypoint-v1.
For production cron, candidate_ready, candidate_ready_only, pending_info, ready_with_notice, notice_required, ready_for_produce, production_ready, production_ready_with_recorded_risks, and READY_FOR_PRODUCE_WITH_RECORDED_RISKS are all production_ready_with_recorded_risks. Keep recorded risks, unknown_fields, discrepancy_notes, warning_display_plan, do_not_claim, reader_caution_text, alternative_sources, official_link_decision, and pre_upload_recheck_urls, but start one same-scope article through the approved bridge. If Work Queue has no materialized produce row but same-scope Hub References, article_material_pack, production_pack, handoff, or lock_payload contains a soft-ready candidate, use no_master_table_claim_bridge / no_master_table_claim_bridge_allowed and proceed with one article. Do not return NO_UNLOCKED_TARGET, NO_ELIGIBLE_TARGET, no ready, PASS, done, complete, upstream_fill_required, or no production-ready candidate only because the produce queue row is not materialized.
cron_preflight_resolve must not select stale targets with workflow/content_set/site mismatch. Stop only for Hub auth/network/reference failure, WordPress auth/write failure, representative 358 no-touch lock, wrong workflow/content_set/site, duplicate-publication risk, legal/safety danger, public Gate failure, rejected/archived/hard_block, or missing identity/URL/source basis. If Hub read is OK but hub_table_upsert or another master-table write returns 403, classify as BLOCKED_HUB_WRITE_SCOPE or QUEUE_SYNC_MISMATCH, not BLOCKED_HUB_AUTH. Normal cron must not use hub_table_upsert; ordinary progress, lock, result, publication, Directory Core, FAQ JSON-LD, high-quality test, correction, and handoff records go through the approved runtime/result APIs.
For inspection cron, classification is allowed, but the exit must create production material. When production_ready_count=0, continue 0-B/1-A/1-B/1-B2/1-C in the same run, return to 0-A if needed, and create next_production_handoff with at least one production_ready=true, production_ready_with_recorded_risks, or READY_FOR_PRODUCE_WITH_RECORDED_RISKS item unless blocked by the hard stops above. This rule belongs inside every startup thread text, individual cron request text, standalone request text, and full-set request text; do not leave it only in outside explanation.
# porn-fun Japanese URL Canonical Policy Gate 2026-05-20
【全サイト・全cron共通 / 代表358ロック】marker: representative-358-no-touch-lock-20260525
- `358` は代表専用のAI更新禁止ラベルである。意味は `representative_no_touch_lock`。
- 代表が「358を付けて」「これはもう触るな」「この投稿はAI更新禁止」「自分で更新する」と言った対象は、URL、投稿ID、記事名、Hub record ID、workflow/content_setを記録し、内部ロックとして扱う。
- `358` が付いた対象には、0-Aから10、11、公開後訂正、高品質、SEO、FAQ JSON-LD、Directory Core、301、カテゴリ/タグ、本文、アイキャッチ、メタ情報、内部リンク、公開状態のどれもAIが変更してはいけない。
- 対象選定、claim、本文取得、修正、投稿、公開後確認、再検査、301、訂正、改善提案の前に `representative_lock_checked=true` を確認する。
- `lock_label=358` または `representative_no_touch_lock=true` がある場合は、読み取り確認と報告だけ許可し、書き込みは止める。
- 必須出力: representative_lock_checked=true / lock_label=358 / representative_no_touch_lock=true / result_status=BLOCKED_REPRESENTATIVE_358_LOCK / no_write_performed=true。
- `358` は公開本文に出さない。代表が明示的にWordPressタグ操作を依頼した場合を除き、公開WordPressタグではなく内部ロックとして扱う。
- 解除できるのは代表が明示的に「358を外して」「AIで触っていい」と言った場合だけ。cronやAI判断で自動解除しない。
【全サイト・全cron共通 / 自律投稿bridge】marker: autonomous-production-posting-bridge-20260525
- 制作cron・投稿cron・アップロードcronは、Hubが読めるのに Main Hub Work Queue だけが空、または対象rowが見えないことを理由に投稿を止めない。
- 同一 site_id / workflow_id / article_type_id / content_set の検査ログ、Hub References、ローカル article_material_pack、production_pack、handoff に production_ready=true、production_ready、production_ready_with_recorded_risks、READY_FOR_PRODUCE_WITH_RECORDED_RISKS のいずれかがあれば、1記事ずつ制作・投稿へ進む。
- この場合は QUEUE_SYNC_MISMATCH_PRODUCTION_BRIDGE_USED を記録し、autonomous_posting_decision=proceed、bridge_source_ids、bridge_source_paths、same_scope_verified、pre_upload_recheck_urls、pre_publish_gate、wp_post_result、public_display_report、hub_backfill_result を必ず残す。
- 代表へ「投稿してよいか」と確認待ちにしない。事前承認済みサイト・workflow・content_setなら、公開前GateとWordPress書き込み確認をCODE側で行い、そのまま投稿する。
- Hubが読めているのにWork Queueだけ空の状態は、対象なし・PASS・完了ではなく同期不一致である。同期不一致はbridgeを使って投稿し、投稿後にHubへbackfillする。
- 止めてよいのは Hub認証/通信不備、WordPress認証/書き込み不備、法務・安全上の危険、公開前/公開後Gate失敗、workflow/content_set/site違い、遷移先URLなし、公式/準一次情報なし、実在性不明、架空対象、重複公開リスクだけ。
【全サイト・全cron共通 / pending_info制作停止廃止】
marker: pending-info-recorded-risks-handoff-20260525
- `pending_info` は、細かな不足・矛盾を理由に制作を止めるステータスとしては扱わない。
- 検査cronは、実在性、公式または準一次情報、遷移先URL、特典概要または評価対象の主要事実、現在有効性の根拠が確認できた場合、`production_ready` または `production_ready_with_recorded_risks` として制作へ渡す。
- 一部の条件、除外条件、終了時刻、対象範囲、併用可否、地域制限、金額条件、招待コード/クーポンコード条件、告知間差分、公式未掲載の細部が未確認・変動中でも、それだけを理由に検査で止めない。
- `production_ready_with_recorded_risks` は `production_ready` と同じく制作キューへ渡す。検査結果には `unknown_fields`、確認中項目、要確認項目、リスクあり項目、`reader_caution_text`、`warning_display_plan`、`discrepancy_notes`、`do_not_claim`、`pre_upload_recheck_urls` を必ず入れる。
- 制作cronは、不足分や不確実な点を本文で隠さず、「確認中」「要確認」「公式未掲載」「告知間で差分あり」「条件変更の可能性あり」「終了日未定」「終了時刻は公式未掲載」「確認時点で開催中」「詳細は公式ページで確認」などの自然な読者向け表現へ変換する。
- 注意は、リード直下、注意ボックス、赤太字、Q&A、条件説明セクションのいずれかに見える形で置く。
- `do_not_claim` に入った内容は本文で断定しない。「必ず当たる」「必ず得する」「安全」「公式が保証」などの誇大・安全断定は禁止。
- hard-stop `pending_info` は、公式または準一次情報が一切ない、遷移先URLがない、実在性を確認できない、対象workflow/content_setが違う、架空のサービス・もの、期限付きなのに期間も現在有効性も確認できない場合だけに限定する。
- 公式ページ、LP、アプリ内告知、公式SNS、ヘルプ等で期間・特典・対象条件・除外条件・併用可否・終了条件が食い違う場合も、停止せず `production_ready_with_recorded_risks` で制作へ渡し、確認できた事実と確認できない事実を本文で分けて表示する。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは `BLOCKED_*` または `FAIL` として止める。
【2026-05-24 全サイト共通 制作0禁止Gate / AUTOP0ST_ALL_SITES_PRODUCTION_NONZERO_GATE_20260524】
- 制作0件で検査cronを完了扱いにしない。検査で次の制作候補が0件なら、対象なし・PASS・完了・readyなしで終わらない。
- 検査cronは、Main Hub / agent_pack / Work Queue / TaskTemplate / Rules / Manuals / Checks / References を再読込し、対象workflow・content_set・task_stage・task_codeのズレを確認する。
- 制作候補が0件の場合は、同一実行内で 0-B / 1-A / 1-B / 1-B2 / 1-C を続け、別候補・別公式導線・公式SNS・FAQ・特商法・ASP/アフィリ先・既存ログを確認して article_material_pack / production_pack を作る。
- 0-B採用候補が尽きた場合は0-A候補へ戻る。0-A候補も尽きた場合は候補ソースを変えて補充し、少なくとも1件を production_ready=true または READY_FOR_PRODUCE_WITH_RECORDED_RISKS まで持っていく。
- どうしても不足が残る候補は pending_info / NEEDS_REPAIR / rejected に理由を残し、次候補へ進む。候補1件で止まらない。
- Hub認証不備、Hub通信不備、WordPress認証不備、法務・安全上の危険、公開Gate失敗だけは BLOCKED_* または FAIL として止める。それ以外の調査差分、403/430、リンク移動、取得不安定は制作材料として次へ渡す。
- 必須出力: production_ready_count, inspected_candidate_count, retry_loop_count, article_material_pack または production_pack, next_production_handoff。production_ready_count=0 のまま検査完了にしない。
This Gate defines the canonical URL policy for porn-fun Japanese evaluation-score dictionary articles and related cron work.
## Scope
- Site: `porn-fun.com`
- Language: Japanese
- Article types:
- `evaluation_score_dictionary_migration`
- `evaluation_score_dictionary_new`
- Workflows:
- `porn-fun-directory-migration-ja`
- `porn-fun-hentai-games-ja`
- `porn-fun-nsfw-ai-generator-sites-ja`
- `porn-fun-sex-doll-shops-ja`
## Canonical URL Policy
- Japanese top canonical URL is `https://porn-fun.com/ja/top/`.
- `https://porn-fun.com/ja/` must redirect to `https://porn-fun.com/ja/top/`.
- Japanese directory category URLs must use `https://porn-fun.com/ja/directory-category/{category-slug}/`.
- Japanese dictionary article URLs must use `https://porn-fun.com/ja/{article-slug}/`.
- New Japanese evaluation-score dictionary articles must not use root URLs such as `https://porn-fun.com/{article-slug}/` as canonical.
- `/sites/` URLs are not canonical. Past memory, Hub records, or prior output that contains `/sites/` must be treated as legacy and normalized before use.
- Root non-`/ja/` article URLs may appear only as legacy source, old URL, redirect-from, or historical comparison fields. They must not be used as public URL, new URL, canonical URL, Directory Core URL, internal link target, FAQ JSON-LD mainEntity page URL, or Search Compass analysis URL for Japanese pages.
## Stage Rules
### Collect
- Collect may store source URLs from external directories.
- For porn-fun internal target URLs, candidate `planned_url` / `new_url` must be generated as `https://porn-fun.com/ja/{slug}/`.
- Do not create Japanese article candidates whose target URL is root `https://porn-fun.com/{slug}/` or `/sites/{slug}/`.
### Inspect
- Production-ready candidates must include a Japanese canonical target URL under `/ja/`.
- Category verification must use `/ja/directory-category/{category-slug}/`.
- If an older candidate only has a root or `/sites/` target URL, inspect must normalize it into `/ja/{slug}/` before sending it to production.
### Produce
- Produce cron must create or update the Japanese dictionary article at `https://porn-fun.com/ja/{slug}/`.
- Produce cron must verify:
- public URL starts with `https://porn-fun.com/ja/`
- public URL is not `/ja/top/`
- public URL is not `/ja/directory-category/...`
- public URL does not contain `/sites/`
- canonical equals the `/ja/` article URL
- internal links point to `/ja/` URLs where the linked destination is a Japanese porn-fun page
- Search Compass analysis uses the `/ja/` public URL
- Directory Core / native dictionary URL fields use the `/ja/` public URL
- FAQ JSON-LD is tied to the `/ja/` page and does not expose root canonical URLs
### High-Quality Test
- High-quality cron must fail or return to correction when:
- public URL is root `https://porn-fun.com/{slug}/`
- canonical is root `https://porn-fun.com/{slug}/`
- public URL or canonical contains `/sites/`
- `/ja/` top redirect is broken when top-page checks are relevant
- internal links, official page references, Directory Core URL, Search Compass URL, or FAQ JSON-LD URL use root URLs for Japanese porn-fun pages
- A page may not be marked `PASS`, `301_ready`, or `ready_for_retest` until the URL policy is verified.
### Correction
- Correction cron must fix URL-policy failures before returning to high-quality retest.
- When the article was previously produced at a root URL, correction must either:
- move/update the canonical article to the `/ja/` URL, or
- return a concrete URL migration handoff if the platform requires manual permalink/front-end routing work.
- Correction must not silently pass by only changing Hub memory while the public canonical remains root or `/sites/`.
### 301 Redirect
- Single-service migration uses 301 only after the new `/ja/{slug}/` article passes public QA.
- For migration work, the destination of the old article redirect must be the `/ja/` canonical article URL.
- New genre workflows do not have a normal 301 stage. They should create new Japanese pages directly under `/ja/`.
- If a previously created root dictionary URL exists for the same Japanese article, treat it as a legacy alias and handle it only after the `/ja/` page passes QA.
## Required Runtime Fields
Cron results should record these fields without exposing secrets:
- `porn_fun_ja_url_policy_checked`
- `ja_top_url`
- `ja_root_redirect_status`
- `public_url`
- `canonical_url`
- `url_has_ja_prefix`
- `url_has_no_sites_segment`
- `category_url_has_ja_prefix`
- `legacy_root_url_status`
- `directory_core_url_checked`
- `search_compass_url_checked`
- `faq_jsonld_url_checked`
- `internal_links_ja_normalized`
- `remaining_url_policy_errors`
## PASS Conditions
- `https://porn-fun.com/ja/` redirects to `https://porn-fun.com/ja/top/`.
- `https://porn-fun.com/ja/top/` returns 200.
- Japanese dictionary article public URL starts with `https://porn-fun.com/ja/`.
- Public URL and canonical URL do not contain `/sites/`.
- Canonical URL equals the `/ja/` article URL.
- Category URLs use `/ja/directory-category/{category-slug}/`.
- Root non-`/ja/` URLs are not used as current public/canonical/internal/Directory Core/Search Compass/FAQ JSON-LD URLs.
- Any legacy root URL is explicitly classified as old URL, redirect-from, or alias only.
## Failure Handling
- Hub unreadable: follow Hub auth/network Gates, not this URL Gate.
- WordPress auth failure: `BLOCKED_WP_AUTH`.
- URL policy mismatch after public HTML is readable: `FAIL_REQUIRED` or `correction_queue`, not `PASS`.
- Platform routing cannot create `/ja/{slug}/`: `BLOCKED_URL_ROUTING` with the exact missing routing condition.
- Do not change live article bodies just to hide a URL-policy failure. The cron stage must repair the correct URL source, canonical, or routing.
marker: hub-reachability-cron-launcher-preflight-required-20260525
【全サイト・全cron共通 / 2026-05-25追加】
cron本体へ進む前に、必ず Autopost358 共通cron launcher の Hub Reachability preflight を先に実行する。
入口は RUN_AUTOPOST_CRON_LAUNCHER.cmd または _branch_common\bootstrap\autopost_cron_launcher.py とする。
必須起動順:
1. cron launcherを起動する。
2. launcherが _branch_common\bootstrap\hub_reachability_claim_runner.py preflight を実行する。
3. preflight結果が ok=true の場合だけ本体cronへ進む。
4. ok=true でない場合、本体cronを開始しない。
preflight失敗時の扱い:
- result_status=PREFLIGHT_FAILED とする。
- Hubの状態に応じて BLOCKED_HUB_AUTH / BLOCKED_HUB_NETWORK / BLOCKED_HUB_PREFLIGHT を明記する。
- 対象なし、PASS、完了、readyなし、訂正対象なしとして扱わない。
- WordPress本文、Directory Core、FAQ JSON-LD、公開状態、301、削除へ進まない。
Hubに入りやすくするための必須条件:
- hub_timeout_seconds=120 を使う。
- Main Hub の status / readiness / work_queue / agent_pack を確認する。
- Standby Hub はreadonly状態確認に使う。通常書き込み正本にしない。
- safe cache は補助だけに使い、完了判定の単独正本にしない。
- 追加read probeは必要時だけ使い、Main Hubへ余計な負荷をかけない。
- 秘密値、Authorization、Bearer、WP認証値は表示・ログ化しない。
Autopost358 rootからの入口例:
RUN_AUTOPOST_CRON_LAUNCHER.cmd --agent <automation_id> --site-key <site_key> --workflow-id <workflow_id> --article-kind <article_kind> --content-set <content_set> --task-stage <task_stage> --runtime-mode run
既存automationのpromptが旧入口を指す場合:
- 最新のcron.goudou本文、Main Hub Rule/Manual/Check/TaskTemplate、agent_packを読み直す。
- 旧入口のまま本体cronへ直行しない。
- launcher preflight必須Gateをprompt/handoff/packへ反映してから次工程へ渡す。
更新履歴:2026-05-23 v6.7 検査cronの止めすぎ防止
正本: Main 358 Hub の Rules/evaluation-score-cron-inspect-notice-readiness-rule-v6-7 / Manuals/evaluation-score-cron-inspect-notice-readiness-gate-v6-7 / Checks/evaluation-score-cron-inspect-notice-readiness-check-v6-7 を読む。
目的: 検査cronが「記載なし」「公式リンクなし」「調査したが情報見つからず」「法務・年齢・地域差」だけで止まり続けないようにし、記事本文の注意喚起へ渡せるものは notice_requirements を作り、READY_WITH_NOTICE / ready_for_produce として制作へ進める。識別子は INSPECT_NOTICE_READINESS。個別cron依頼文があるページでは、コピペ用本文内にも同じ内容を反映済み。
