name: publish-gate
https://ai-solo-craft.craftgarden.studiovalidate-content-db.mjs の warnings には既存負債が含まれるdigest_details があるdigest_rankings + digest_ranking_items がある(メールテンプレートに必須)relatedProducts が埋まっているbody_markdown 末尾に入っている(editorial-section クラスの有無で確認。product 記事は対象外)スクリプト: scripts/check-digest-rankings.sh
./scripts/check-digest-rankings.sh daily-news-YYYY-MM-DD
cd /Users/satokeita/Dev/ai-solo-craft
node scripts/validate-content-db.mjs
よくある blocker:
digest_details missinghero_image_url is requiredcd /Users/satokeita/Dev/ai-solo-craft
npm run publish:gate
cd /Users/satokeita/Dev/ai-solo-craft
git add -A
git commit -m "publish: YYYY-MM-DD digest"
git push origin main
cd /Users/satokeita/Dev/ai-solo-craft
npm run ci:wait
cd /Users/satokeita/Dev/ai-solo-craft
npm run verify:deploy
必要に応じて対象 URL を直接 fetch して 200 を確認する。
start_ts=$(printf '%s' "message body" | /Users/satokeita/.openclaw/scripts/codex-slack-notify.sh --channel C0AELF58Z5E --stdin --ts-only)
printf '%s' "reply body" | /Users/satokeita/.openclaw/scripts/codex-slack-notify.sh --channel C0AELF58Z5E --thread-ts "$start_ts" --stdin
ai.essential-navigator.com を使うvalidate-content-db.mjs・CI・本番200確認はそれぞれ別のステップ。ローカルでvalidation通過しても、CI失敗やデプロイ未反映は起こり得る。各ステップを分けて確認することnewsletter_send_logs テーブルで実送信を確認してから完了報告するdigest_details だけ作って digest_rankings + digest_ranking_items を忘れるとメールテンプレートが壊れる。開始前チェックで必ず確認するai.essential-navigator.com を使う: 本番URLは https://ai-solo-craft.craftgarden.studio。旧ドメインで確認すると正しい結果が得られないx-publisherMEMORY.md と該当 skill に反映