phase-buildRun Phase Build — section drafting (N parallel agents), fact-check, citation injection, assembly. Use when research.json and outline.json exist and need to write the actual article body. Triggered by /seo-blog build, "draft the article now", "write the body".
phase-monitorRun Phase Monitor — rank tracking, AI visibility tracking, drift detection, content refresh signals, performance reporting. Use for post-publish monitoring or scheduled checkup. Triggered by /seo-blog monitor, /perf, /rank-check, /drift, /ai-visibility, or as automated scheduled hook (T+7/14/30/90 a
phase-optimizeRun Phase Optimize — humanize, meta build, schema, internal link, GEO optimize, visual design, CTA module + deterministic lint gates (render / density / keyword / PAA alignment / locale spelling / local uniqueness) + 4 quality gates + repair escalation. Use when draft.md exists and needs polish + qu
phase-publishRun Phase Publish — image generation sub-pipeline (provider-pluggable: relay primary + official OpenAI fallback, realtime-forced) + WordPress publish with RankMath meta + IndexNow ping. Use when draft has passed all quality gates and is ready for live publication. Triggered by /seo-blog publish, /pu
phase-researchRun Phase 1 Research only — keyword research, SERP analysis, competitor analysis, content gap analysis, surface targeting. Use when user wants research-only output without writing an article. Triggered by /seo-blog research, "research this keyword", "what's the SERP for X", "competitor analysis for"
seo-blogProduction-grade SEO + GEO content factory. Routes user intent to one of 5 phases (research / build / optimize / publish / monitor) or runs end-to-end. Use whenever the user wants to write a blog post, create SEO/GEO-optimized articles, refresh existing content, audit a page, or publish to WordPress
website-auditFull website SEO audit — crawls up to 500 pages, detects business type, spawns up to 15 parallel specialist agents (8 always + 7 conditional), generates SEO Health Score (0-100) with enterprise HTML report. Completely standalone — not connected to the blog-writer pipeline. Triggers on: audit my site
weekly-digestProduction weekly industry-news digest: harvest Tier-A + Tier-B sources, assemble a digest article, publish as DRAFT, await explicit publish. Triggers on /weekly, 'industry weekly digest', 'weekly roundup', 'weekly report', '行业周报', '每周简报'. NOT a general article — does NOT run keyword-research/SERP/c
batch-articleRun /article end-to-end for a list of keywords. Each keyword goes through the FULL pipeline (research → plan → build → optimize → publish → monitor baseline). Use for agency-scale operations — drop 10-500 keywords, get 10-500 published articles. Resumable across sessions.
brand-auto-tunerAnalyze winner vs loser articles to find features that distinguish them, then suggest brand-guideline.yaml updates. Use after ≥10 articles have outcome tags. Closes the data-loop: production → measurement → learning → next-cycle adjustment.
cost-estimatorPre-flight cost estimate for a planned /article run. Use BEFORE /article or when user asks "how much will this cost?" / "what's the estimate?". Outputs USD breakdown by category + 80% confidence band + budget check.
cost-guardBudget enforcement. Estimate → check → log → summary. Daily total + per-init + per-article + per-image-batch caps from config.yaml. Triggered by every API call upstream.
cost-summaryAggregate past spending (day/week/month) — total USD, per-model, per-endpoint. Use when user runs /cost or asks "how much have I spent?" / "what's my burn?" / "show me the bill".
entity-optimizerPARKED (2026-07-17 wiring audit) — designed but never wired; nothing routes here and its companion agents/entity-extractor.md is equally unreachable. Track 47 entity signals per entity (per seo-geo). Maintains ai_resolution_status per engine (recognized/partial/unrecognized/confused). The ONLY skill
fleet-viewMulti-site agency dashboard. Use /fleet to see 100+ sites in one view — health, clicks, cost, drift alerts, by-client + by-vertical aggregation. Daily landing page for an operator managing many SEO projects.
manifest-consistency-checkerVerify VERSION + plugin.json + marketplace.json + install.sh + install.ps1 + CHANGELOG + __init__.py all agree on version. Auto-fix via --apply. Run via /guard --versions.
memory-managerManage HOT/WARM/COLD memory transitions, Wiki Phase 1/2/3 entity sedimentation, GDPR Art 17 purge. Triggered by hooks/stop_finalize.py + /forget-project command.
persona-managementCreate + store + enforce writing personas using NNGroup 4-dimension tone framework. Personas define readability targets, sentence length distribution, vocabulary tier, contraction frequency, summary box label. Used by section-drafter + humanizer + rewrite to enforce consistent voice. Different from
repair-orchestrator5-level repair escalation when quality gates fail. Surgical → Section-rewrite → Stage-rewrite → Full-regen → From-scratch. Hard cap 4 rounds total. Use when quality.json reports overall_passed=false OR reviewer rejects. Last line of defense before declaring an article unsalvageable.
resumeResume an interrupted /article pipeline from its last checkpoint. Reads workspace state.json + verifies artifacts, decides whether to re-run the failing stage or jump forward. Use when /status shows a stuck task, network blip, OpenAI Batch wait, laptop sleep, etc.
rewriteRewrite + optimize an existing published article. 6-phase workflow (Audit → Research → Chart Gen → Content Rewrite → Verification → Summary). Preserves author voice while applying 6 pillars — fabricated stat replacement, answer-first formatting, AI-detection scrubbing, citation capsule injection, fr
second-opinionCross-model audit via Gemini (review / challenge / consult modes). Defends against same-model self-bias. Used before high-impact decisions (publish gate, /init final review).
self-upgrade9-step in-place upgrade from marketplace remote. Triggered by bin/update-check returning UPGRADE_AVAILABLE OR /upgrade command. Backs up old version + git fetch + version sync + cache purge + changelog summary.
status-reporterShow current pipeline state — in-progress tasks, current stage, elapsed time, accrued cost, ETA. Use when user runs /status or asks "what's the pipeline doing right now" or "is anything still running". Read-only — does not modify state.
batch-job-pollerSupplemental recovery tool for orphan official-OpenAI image batches (batch is only ever used on the official-OpenAI fallback path; the primary openclawroot relay has no Batch API). The canonical image flow (openai-image-generator) runs realtime and does not require this skill. Use only to diagnose s
image-curatorProduces image_metadata.json with all 4 WordPress media fields (title, alt_text, caption, description) per image slot. Runs AFTER image generation and BEFORE WordPress upload. Without this, captions and descriptions are empty in the media library and figcaptions never render in posts. Stage 27f of p
image-post-processorAfter batch completes, runs 4-step post-processing on each image: EXIF strip → WebP convert (q85) → srcset 3 sizes → SEO filename. Generates ImageObject schema fragment. Stage 27e.
image-prompt-designerBuild shared Art Direction Prefix + per-slot 9-field prompts for the article's image slots (brief.image_count, default 6, max 8 — scripts/_core/image_policy.py). Uses Strategy A (shared prefix; per-slot variation). Reads brand-identity, brand-config, format_id. Produces image-prompts.json for openai
image-slot-allocatorDecide the article's image slots (brief.image_count, default 6 = 1 cover + 5 section images, max 8). Reads outline.json + format_id. Picks H2s to image based on per-format mapping in references/image/format-style-mapping.md. Triggered as Stage 27a of phase-publish image sub-pipeline.
openai-image-generatorGenerate the article's images (count from image-prompts.json — brief.image_count via scripts/_core/image_policy.py, default 6, max 8) via the unified openai_image_pipeline (provider-aware: Vertex Gemini 3 Pro Image 4K primary + official OpenAI fallback, realtime-forced). Single-call pipeline replace
project-forgetGDPR Art 17 delete. Tombstone projects/{slug}/, schedule physical deletion in 30 days. Use /forget-project <slug>. Cannot be undone after 30d.
project-listList all projects/{slug}/ with status (fresh/stale/expired). Use /list-projects.
project-showDisplay current active project's PROJECT.md + brief stats. Use /show-project.
project-switchSwitch active project. Updates ~/.xuanran-seo/active-project pointer. All subsequent commands inherit new project's business-context. Triggered by /switch <slug>.
website-project-initInitialize a new website project from a URL. FIRST asks the user for all required credentials (Anthropic / Tavily / OpenAI / WordPress App Password / brand config), then deep-scans the site (40 pages with 5-tier JS fallback waterfall), generates projects/{slug}/ archive (business-context, brand iden
wordpress-category-setupDesign and deploy a WordPress blog category taxonomy (top-level categories + subcategories) with descriptions, slugs, and RankMath SEO meta. Three modes — interactive (design from scratch with the user), apply (deploy an existing categories-config.json), refresh (re-sync to live site). Use when user
ai-visibility-trackerActive probe of ChatGPT/PPLX/Claude/Gemini to check if our article is cited. Compares to projects/{slug}/geo-baseline.json. Triggered by /ai-visibility command or daily/weekly schedule.
content-refresherCompute 0-100 decay score; trigger refresh workflow on aging articles. Score = 0.30×traffic + 0.25×rank + 0.15×ctr + 0.15×freshness + 0.15×replacement. Triggered by /refresh command or weekly schedule.
drift-detector17-rule diff vs SQLite baseline. Detects: title/meta changed, schema removed, H1 changed, AI bots policy changed, broken internal links emerged, AIO citation lost, etc. Triggered by /drift command or scheduled weekly.
performance-reporterAggregate 30+ KPIs across rank/ai-visibility/drift/refresh for time-period view (week/month/quarter). Outputs human-readable executive summary. Triggered by /perf command.
rank-trackerQuery GSC for impressions/clicks/position; T+7/14/30/90 post-publish baselines. Outputs projects/{slug}/rank-history-{date}.json. Triggered by /rank-check command or scheduled monitor.
ai-overview-recovery4-phase recovery when Google AI Overview drops an article. Measure damage → diagnose skip reason → rewrite → T+7/14/28 monitor. Triggered by drift-detector AIO loss alert OR /aio-recovery command.
cta-placementInject the project's designed CTA module (styled .xr-cta-box conversion card) into the draft. Config lives in business-context.json :: cta (legacy) or :: conversion_offers (v3.37 service-aware). Projects without either no-op.
featured-snippet-optimizerRETIRED v3.35 (2026-07-04) — merged into the wired citation-capsule-builder stage. Featured snippets fell 18%→8% of SERPs in 2025 (83% replaced by AI Overviews) and both select the same 40-60w extractive answer shape; a separate FS step would duplicate the capsule stage.
geo-content-optimizerApply 6 GEO techniques + per-engine weighted optimization. Citation Capsules, Information Gain Markers, entity richness, Q&A structure, fact density, FAQPage schema.
humanizerDetect 43 AI writing patterns + rewrite to specific human voice. 5×5 voice × purpose matrix + AI-Slop formula scoring + 3 modes (detect / rewrite / edit) + iterative N≤3 convergence. North star — LLMs regress to statistical mean; humans are weird, specific, inconsistent. Use after section-drafter, b
internal-linkerlocalization-passmeta-builderpaa-answer-writerschema-generatorvisual-designervoice-search-optimizerbrand-guideline-makercontent-brief-buildereditorial-calendarformat-selectortopic-clusteringindexing-notifierschema-injectorwordpress-publishercommunity-researchcompetitor-analysiscontent-gap-analysisindustry-news-monitorkeyword-researchserp-analysissurface-targeting