Run SEO refresh batches on Jsonify use case pages. This skill is for repo-native execution: inspect the current repo state, use Google Search Console when Mode A needs ranking data, skip any page touched in the last 90 days according to seo-page-metrics-history.csv, edit the allowed fields only, record a metrics snapshot for every touched page, update the batch log, and finish with one PR per batch.
/usecases/<slug> candidates or updating use case metadata for SEO._usecases/<slug>.md: seo_title, meta_description, title, description, sources_text._data/usecase-seo.json._includes/meta.html, layout files, or templates.npm run seo:compile-usecase-seo after making batch edits. This workflow treats _data/usecase-seo.json as the working control file for the batch.references/operating-spec.md before the batch if you need the exact selection rules, copy rules, or PR format.seo-page-metrics-history.csv and skip any slug touched in the last 90 days. Use seo-batch-log.md as audit history, not as the cooldown source.scripts/mode_a_candidate_queue.mjs.scripts/mode_b_review_queue.mjs._usecases/<slug>.md files and the relevant entries under _data/usecase-seo.json.pages.seo-page-metrics-history.csv.seo-batch-log.md.node codex-skills/jsonify-seo-refresh/scripts/mode_a_candidate_queue.mjs --days 90 --limit 8
node codex-skills/jsonify-seo-refresh/scripts/mode_b_review_queue.mjs --limit 8
node codex-skills/jsonify-seo-refresh/scripts/append_metrics_history.mjs --spec-file /tmp/seo-batch-spec.json --from-gsc /tmp/jsonify-usecases-gsc.json
query_gsc_usecases.mjs normalizes trailing-slash variants and emits both raw page-query rows and page summaries.mode_a_candidate_queue.mjs applies the Mode A ranking heuristics and skips slugs touched inside the 90-day cooldown window.mode_b_review_queue.mjs derives verticals from slug keywords, skips recently touched pages, and flags likely overlap with existing canonicals so you can avoid promoting near-duplicates.append_metrics_history.mjs appends one CSV row per touched slug to seo-page-metrics-history.csv, including snapshot date, GSC date window, action, mode, primary keyword, page state, robots, and page-level GSC metrics._data/usecase-seo.json, batch work should only touch entries inside pages. Leave top-level metadata such as generatedAt, summary, sources, and warnings alone.references/operating-spec.md.references/operating-spec.md: full workflow, copy rules, vertical rules, JSON update rules, and PR format.scripts/query_gsc_usecases.mjs: GSC auth + pull for /usecases/ pages.scripts/mode_a_candidate_queue.mjs: Mode A queueing with GSC data plus 90-day cooldown filtering.scripts/mode_b_review_queue.mjs: deterministic Mode B candidate queue from repo data.scripts/append_metrics_history.mjs: append metrics history rows for updated or promoted pages.