skills/cluster/SKILL.md
Semantic topic cluster planning and automated execution engine. Performs SERP-based keyword research, groups keywords by search intent and SERP overlap, builds a hub-and-spoke cluster architecture, generates an interactive SVG cluster map, and executes the full cluster by orchestrating write calls with shared cluster context and automatic internal-link injection. Fills the strategy-to-execution gap: strategy plans the blueprint, cluster builds the house. Use when user says "blog cluster", "topic cluster", "content cluster", "cluster plan", "cluster execute", "pillar content", "hub and spoke", "content ecosystem", "cluster map".
npx skillsauth add rainday/smart-blog-skills clusterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Plans and executes entire interlinked content ecosystems from a single seed keyword. Three layers: Semantic Clustering (the brain), Cluster Architecture (the structure), and Execution Engine (the machine).
| Command | What it does |
|---------|--------------|
| /smart-blog-skills:cluster | Interactive. Asks whether to plan or execute. |
| /smart-blog-skills:cluster plan <seed-keyword> | SERP-based semantic analysis. Outputs cluster plan + map. |
| /smart-blog-skills:cluster plan --from strategy [path] | Imports existing strategy cluster build plan and validates against SERP data. |
| /smart-blog-skills:cluster execute [path-to-plan] | Sequential write calls with cluster context and auto-interlinks. |
/smart-blog-skills:cluster, ask: "Would you like to plan a new cluster or execute an existing plan?"plan <keyword> to the Plan Phase (below)plan --from strategy [path] to the Strategy Import flow (below)execute [path], build, or run to the Execute Phase (below)/smart-blog-skills:cluster plan <seed-keyword>Use WebSearch to expand the seed into a keyword universe of 30 to 50 phrases:
<seed> to capture related searches and "People also ask".<seed> guide, <seed> tips, <seed> tools, <seed> examples, <seed> vs, best <seed>, how to <seed>.what is <seed>, how does <seed> work, why <seed>, <seed> for beginners.<seed> 2026.Group the expanded keywords:
Build the hub and spoke:
pillar-page. Links down to every spoke.Cluster formation rules:
For each spoke S:
S to Pillar (always; anchor text uses the pillar's primary keyword).S (always; anchor text uses S's primary keyword).S to other spokes in the same cluster (2 to 3 links each, contextual anchors).Verify every spoke has at least 3 incoming links.
All plan and execute artifacts go into a single subdirectory of the current working directory:
<cwd>/
└── cluster-<seed-keyword-slug>/
├── cluster-plan.json
├── cluster-map.html
├── pillar-<slug>.md (Execute Phase)
├── <spoke-slug>.md (Execute Phase, one per spoke)
└── cluster-scorecard.md (Execute Phase)
cluster-plan.json schema{
"seed_keyword": "<seed>",
"generated_at": "YYYY-MM-DDTHH:MM:SSZ",
"pillar": {
"id": "P",
"title": "Title of the pillar",
"primary_keyword": "broadest keyword",
"template": "pillar-page",
"word_count_target": 3000
},
"clusters": [
{
"name": "Cluster A: Theme",
"intent": "informational",
"posts": [
{
"id": "A1",
"title": "Post title",
"primary_keyword": "long-tail keyword",
"template": "how-to-guide",
"word_count_target": 1500,
"links_to": ["P", "A2"],
"links_from": ["P", "A2"]
}
]
}
],
"total_posts": 9,
"total_interlinks": 23
}
cluster-map.html (XSS-safe)A static, self-contained HTML file with an embedded SVG visualization. Hard rules:
<script> blocks. No onclick, onmouseover, or any on* event attributes.<src> references.&, <, >, ", '.:hover only. No JavaScript.Show a summary table of clusters and posts, total interlinks, estimated words, and the file paths. Ask for confirmation before proceeding to execution. Wait for explicit user approval. Do not auto-execute.
/smart-blog-skills:cluster plan --from strategy [path]Bridges strategy output into a cluster plan.
Cluster Build Plan table with the columns # | Spoke Topic | Template | Target Keyword | Word Count | Internal Links.P), the spoke rows, template assignments, target keywords, word counts, and link relationships.cluster-plan.json and cluster-map.html and wait for user confirmation./smart-blog-skills:cluster execute [path-to-plan]Read cluster-plan.json from the user-specified path or the most recent cluster-*/cluster-plan.json in the working directory. If no plan exists, return: "No cluster plan found. Run /smart-blog-skills:cluster plan <seed-keyword> first."
writeConstruct the cluster context block and prepend it to the topic prompt passed to the Task tool invoking write. The context tells write the cluster name, the post's role (pillar or spoke), the primary and secondary keywords, the chosen template, the word count target, and the linking requirements.
FLOW evidence triple propagation (required): The cluster context must include this directive for every spoke and the pillar: "Apply the FLOW evidence triple to every public statistic. Year anchor in prose ('In 2026,'), inline citation with publisher and title, URL with retrieval date in the source block."
If nanobanana-mcp is configured, call /smart-blog-skills:image generate via the Task tool to produce a 16:9 hero image. If the MCP is unavailable or fails, log a warning and continue without images. Image generation is non-blocking.
After each post is written:
[INTERNAL-LINK: keyword -> filename.md] markers that reference the just-written post.[keyword](filename.md).If write fails for a single post, log the failure and continue with remaining posts. Do not abort the cluster. The scorecard will mark the gap and recommend a retry.
cluster-scorecard.mdAfter all attempted posts complete, produce a markdown scorecard covering:
| Gate | Check | Action on fail |
|------|-------|----------------|
| Cluster minimum | At least 2 clusters with at least 2 posts each | Warn during plan; suggest expansion |
| Cannibalization | No two posts share primary keyword | Block execution; require plan adjustment |
| Link completeness | Every post has 3 or more incoming internal links | Warn in scorecard |
| Word count | Pillar at least 2,500 words; spokes at least 1,200 words | Pass to write as a hard constraint |
| Scenario | Action |
|----------|--------|
| Seed keyword too broad (more than 50 keyword variants) | Suggest narrowing the focus before clustering. |
| Seed keyword too narrow (fewer than 5 keyword variants) | Offer a smaller cluster (pillar plus 2 to 3 spokes) or suggest broadening. |
| WebSearch unavailable | Fall back to Claude's reasoning for keyword expansion and grouping. |
| write fails for one post | Log, skip, continue. Mark the gap in the scorecard. |
| cluster-plan.json malformed | Validate JSON and report parse errors with line numbers. |
| User cancels execution | Save progress; resume on next invocation with already-written posts auto-detected. |
| nanobanana-mcp not configured | Skip hero image generation; warn once at start of execute. |
documentation
Smart Blog 寫文章。從零寫一篇新的部落格文章,包含模板選擇、研究、 YouTube 影片嵌入、Humanizer 反 AI 審稿、品質檢查。 內建反幻覺驗證,繁體中文優先。 Use when user says "write blog", "寫文章", "寫部落格", "new blog post", "smart-blog write", "blog write".
testing
Translate existing blog posts into one or more target languages with SEO-optimized localization. Produces native-quality translations that preserve markdown structure, frontmatter, schema JSON-LD, image and chart embeds, and citation capsules. Localizes keywords, meta tags, numbers, dates, currencies, and quote styles per locale. Flags machine-translation artifacts for review. Run BEFORE localize: this handles language conversion; localize handles cultural adaptation after translation completes. Use when user says "translate blog", "blog translate", "uebersetzen", "traduire", "traducir", "translate post", "blog auf Deutsch", "blog en espanol".
development
Extract, suggest, and sync tags and categories for blog posts across all major CMS platforms. Supports WordPress REST API, Shopify GraphQL, Ghost Content API, Strapi REST/GraphQL, and Sanity GROQ. Generates tag suggestions from content analysis (keyword frequency, heading extraction, semantic grouping), enforces minimum post-count thresholds to prevent thin tag archives, and syncs taxonomy via authenticated API calls. Use when user says "tags", "categories", "taxonomy", "tag suggestions", "sync tags", "WordPress tags", "Shopify tags".
development
Blog strategy development including topic cluster architecture with hub-and-spoke design, audience mapping, competitive landscape analysis, AI citation surface strategy across ChatGPT/Perplexity/AI Overviews, distribution channel planning (YouTube, Reddit, review platforms for GEO), content scoring targets, measurement framework, and content differentiation through original research and first-hand experience. Use when user says "blog strategy", "content strategy", "blog positioning", "what should I blog about", "blog topics", "content pillars", "blog ideation".