Cost Guard
Budget enforcement. Estimate → check → log → summary. Daily total + per-init + per-article + per-image-batch caps from config.yaml. Triggered by every API call upstream.
Topic Angle Selector
Within the chosen format, generates 6 title candidates across ≥3 angles, validates each via title_validator.py, scores CTR potential, picks top-1. Required step before outline-architect. Use whenever planning to write — happens after format-selector and before outline.
Citation Capsule Builder
After section-drafter, verifies each H2 has a Citation Capsule (40-60 word AI-quotable block). If missing, generates one. Princeton GEO requirement.
Fleet View
Multi-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.
Rank Tracker
Query 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.
Cost Summary
Aggregate 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".
Content Refresher
Compute 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.
Project Switch
Switch active project. Updates ~/.xuanran-seo/active-project pointer. All subsequent commands inherit new project's business-context. Triggered by /switch <slug>.
Image Post Processor
After 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.
Brand Auto Tuner
Analyze 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.
Section Drafter
Dispatches N writer agents in parallel, one per H2 section, each receiving an isolated context with section spec + style references + research brief slice. Writes each section to workspace/{task}/sections/{N}.json conforming to section.schema.json. Critical Build phase step. Use after outline-architect produces outline.json.
Youtube Embed
PARKED (2026-07-17 wiring audit) — its trigger `brief.embed_youtube=true` is set and read by NOTHING in the repo, so this add-on can never fire. Searches YouTube Data API for primary keyword, picks 1-2 high-relevance videos (viewCount/duration/channel auth filtered), embeds into article.
Image Curator
Produces 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 phase-publish image sub-pipeline.
Wordpress Category Setup
Design 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 runs /setup-categories, when /init asks about content architecture, or when a project is preparing…
Seo Blog
Production-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. Always trigger when user mentions "blog", "article", "content", "SEO", "SERP", "AI search", "Chat…
Resume
Resume 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.
Rewrite
Rewrite + 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, freshness signals, information gain markers. Use /rewrite <file> for full rewrite OR /update <file> f…
Website Project Init
Initialize 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 identity, competitors, GEO baseline, personas, target keywords). Use when user provides a URL + wants t…
Outline Architect
Designs H2/H3 outline with explicit per-section word budgets, table placements (≥2 with one in front 50%), image/video slot markers, FAQ count, abstract seed, takeaways seeds, Citation Capsule requirement per H2. Loads format-specific template. Critical pre-build step. Use whenever building an article — after format + angle picked, before section-drafter parallel dispatch.
Image Prompt Designer
Build shared Art Direction Prefix + per-slot 9-field prompts for 4 images. Uses Strategy A (shared prefix; per-slot variation). Reads brand-identity, brand-config, format_id. Produces image-prompts.json for openai-image-generator. Stage 27b.
Cta Placement
Inject 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.
Project Show
Display current active project's PROJECT.md + brief stats. Use /show-project.
Memory Manager
Manage 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.
Weekly Digest
Production 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/competitor stages.
Website Audit
Full 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, website audit, full SEO check, site health, analyze my website, SEO analysis, technical SEO audit…
Status Reporter
Show 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.
Phase Build
Run 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".
Entity Optimizer
PARKED (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 that writes to memory/entities/.
Image Slot Allocator
Decide 4 image slots per article (1 cover + 3 section images). 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.
Batch Article
Run /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.
Drift Detector
17-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.
Phase Publish
Run 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, /publish, "post this to WordPress", "go live".
Project List
List all projects/{slug}/ with status (fresh/stale/expired). Use /list-projects.
Phase Research
Run 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".
Manifest Consistency Checker
Verify VERSION + plugin.json + marketplace.json + install.sh + install.ps1 + CHANGELOG + __init__.py all agree on version. Auto-fix via --apply. Run via /guard --versions.
Performance Reporter
Aggregate 30+ KPIs across rank/ai-visibility/drift/refresh for time-period view (week/month/quarter). Outputs human-readable executive summary. Triggered by /perf command.
Chart Generator
Generate markdown tables OR XSS-safe SVG charts for sections with needs_table=true. Ensures ≥2 tables per article with ≥1 in front 50%. Uses scripts/build/chart_svg_builder.py.
Self Upgrade
9-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.
Project Forget
GDPR Art 17 delete. Tombstone projects/{slug}/, schedule physical deletion in 30 days. Use /forget-project <slug>. Cannot be undone after 30d.
Repair Orchestrator
5-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.
Second Opinion
Cross-model audit via Gemini (review / challenge / consult modes). Defends against same-model self-bias. Used before high-impact decisions (publish gate, /init final review).
Ai Visibility Tracker
Active 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.
Cost Estimator
Pre-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.
Fact Check And Citation
Verify every statistical claim by fetching cited URLs + checking the data appears on the page. Crossref-first for academic; Tavily-fallback for industry. Replaces fabricated/unsourced stats. Builds APA 7 References block, ≤10 entries, all link-resolvable. The single most important anti-hallucination gate in the pipeline. Use after section-drafter (before humanizer if humanizer might break citatio…
Persona Management
Create + 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 brand-guideline-maker — personas live INSIDE a brand and represent author/audience variants.
Batch Job Poller
Supplemental 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 stuck batches or download images from a batch that completed after the main pipeline gave up.
Openai Image Generator
Generate all 4 article images via the unified openai_image_pipeline (provider-aware: Vertex Gemini 3 Pro Image 4K primary + official OpenAI fallback, realtime-forced). Single-call pipeline replaces the prior submit→wait→download multi-stage pattern. Stage 27c+27d combined.
Phase Optimize
Run 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 + quality assurance. Triggered by /seo-blog optimize, /audit, "run quality checks", "make this ready to…
Ai Overview Recovery
4-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.
Phase Monitor
Run 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 after publish).