blog-analyze
Score one blog post (or a folder of posts) on a 5-category 100-point scale covering content quality, SEO, E-E-A-T, technical…
One-command multilingual blog creation. Writes a blog post, translates it into user-specified languages, applies cultural adaptation, and emits hreflang tags, sitemap entries, and a CMS-ready language map. The complete write-to-publish pipeline for international content.
Claude Code
$ npx -y skills add AgriciDaniel/claude-blog --skill blog-multilingual --agent claude-code
Codex
$ npx skills add AgriciDaniel/claude-blog --skill blog-multilingual -a codex -y
Cursor
$ npx skills add AgriciDaniel/claude-blog --skill blog-multilingual -a cursor -y
Gemini CLI
$ npx skills add AgriciDaniel/claude-blog --skill blog-multilingual -a gemini-cli -y
GitHub Copilot
$ npx skills add AgriciDaniel/claude-blog --skill blog-multilingual -a github-copilot -y
OpenCode
$ npx skills add AgriciDaniel/claude-blog --skill blog-multilingual -a opencode -y
Windsurf
$ npx skills add AgriciDaniel/claude-blog --skill blog-multilingual -a windsurf -y
name: blog-multilingual description: > One-command multilingual blog creation. Writes a blog post, translates it into user-specified languages, applies cultural adaptation, and emits hreflang tags, sitemap entries, and a CMS-ready language map. The complete write-to-publish pipeline for international content. Orchestrates blog-write, blog-translate, blog-localize, and (optionally) seo-hreflang. Use when user says "multilingual blog", "blog multilingual", "write in multiple languages", "international blog", "mehrsprachiger Blog", "blog multilingue", "blog multilingue", "create blog in German and French". user-invocable: true argument-hint: "<topic> --languages <comma-separated-codes>" license: MIT compatibility: Requires claude-blog (blog-write). Optional integration with claude-seo (seo-hreflang) for richer hreflang validation. metadata: author: AgriciDaniel version: "2.3.2" category: blog
Bundled paths below use host Markdown substitution of `${CLAUDE_SKILL_DIR}`; it is not an exported shell variable. Resolve them before execution, quote paths, and refuse nonabsolute overrides. Pass `blog_reference_root` resolved from `${CLAUDE_SKILL_DIR}/../blog/references`, `blog_template_root` from `${CLAUDE_SKILL_DIR}/../blog/templates`, and needed sibling roots to agents. Read the main reference `orchestration-details.md` before loading project context; pass only its helper-fenced output to downstream agents.
The flagship multilingual orchestrator. Combines blog writing, translation, cultural adaptation, and full international SEO into a single command. Produces publication-ready blog posts in every target language with hreflang tags, localized JSON-LD schema, and CMS-integration metadata.
> Adapted from `claude-blog-multilingual` by Chris Mueller (AI Marketing Hub > Pro Hub Challenge submission, March 2026, scored 85/100 Proficient). > Original repository: no longer available as of 2026-10-12 > This port removes the original `curl | bash` installer and credential > handling flagged in the audit, integrates as core skills, and uses the > shared cultural-adaptation reference under `blog-translate/references/`.
Invoked internally by this orchestrator:
| Component | Source | Required | |-----------|--------|----------| | `blog-write` | claude-blog (this plugin) | Yes | | `blog-translate` | claude-blog (this plugin) | Yes | | `blog-localize` | claude-blog (this plugin) | Yes (when `--localize` is on, default) | | `seo-hreflang` | claude-seo (sibling plugin) | No, falls back to a self-contained generator |
If `seo-hreflang` is not installed, the orchestrator emits hreflang tags using its own minimal generator (Phase 5 below) and notes the limitation in the delivery summary. Hreflang validation in that case is structural only, not the deeper validation `seo-hreflang` provides.
/blog multilingual <topic> --languages <lang1,lang2,...> [--source <lang>] [--no-localize] [--format <md|mdx|html>]
| Argument | Required | Default | Description | |----------|----------|---------|-------------| | `<topic>` | Yes | required | Blog topic or working title | | `--languages` | Yes | required | Comma-separated Google-compatible hreflang tags (e.g. `de,fr,es-MX,ja,pt-BR`; see the code rules in Phase 1) | | `--source` | No | `en` | Source language to write the original in | | `--no-localize` | No | off | Skip cultural adaptation (translation only) | | `--format` | No | auto | Output format: `md`, `mdx`, or `html` |
If `--languages` is missing, ask the user once before running anything: "Which languages should the blog be published in? Provide hreflang tags separated by commas (e.g., `de,fr,es-MX,ja,pt-BR`). The post will be written in `<source>` first, then translated."
1. Parse arguments. Extract topic, target languages, source, format. 2. Validate each language code with the shared multilingual locale rules used by `blog-translate`, `blog-localize`, and `blog-locale-audit`: ISO 639-1 language in lowercase, optional ISO 15924 script in title case, optional ISO 3166-1 Alpha-2 region in uppercase. Google's localized-versions documentation (https://developers.google.com/search/docs/specialty/international/localized-versions, read 2026-10-12) allows a language code by itself (`de` is valid hreflang), but never a region by itself. This pipeline is stricter for translation quality: language-only codes are accepted only for unambiguous editorial markets (`de`, `fr`, `ja`, and the source language). `es`, `pt`, and `zh` (and any language spanning materially different markets or scripts) need a region or script (`es-ES`, `es-MX`, `pt-BR`, `pt-PT`, `zh-Hans`, `zh-Hant`) or an explicit neutral mode the user requests. If the user passes a bare `es`, `pt`, or `zh`, ask once which market they mean. The hreflang value emitted in Phase 5 is exactly the normalized code the user supplied. 3. Detect output format from the project (frontmatter convention, file extensions, framework hints) or use `--format`. 4. Resolve source language. If a target language equals `--source`, drop it from the translation list with a notice. 5. Create the output directory inside the current working directory:
multilingual/
{source-lang}/
{lang-1}/
{lang-2}/
...Keep all output inside the project root; do not write outside the cwd.
Progress: `Phase 1: Configuration complete, [N] languages selected ([codes])`
Invoke the `blog-write` sub-skill (route through `/blog write` so all existing rules apply: template auto-selection, sourced statistics, citation capsules, Article schema priority, FAQPage only as an entity signal when visible FAQ content exists, internal-link zones, charts, image embedding). Pass the topic and any blog-write parameters surfaced by the user.
claude-blog is a Claude Code skill suite that writes, optimizes, audits, localizes, and refreshes blog content at scale. Every article is evaluated for Google-aligned usefulness and internal AI citation readiness heuristics.
Score one blog post (or a folder of posts) on a 5-category 100-point scale covering content quality, SEO, E-E-A-T, technical…
Paid Gemini TTS audio for a finished blog post: summary, full read-aloud, or two-speaker dialogue, with an MP3 and an HTML5…
Full-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content,…
Establish durable brand and voice context for cross-skill consumption. Generates BRAND.md (audience, positioning, do/don't…
Create a content brief for ONE planned post: target and secondary keywords, search intent, template choice, competitor gaps from…
Build a dated monthly or quarterly editorial calendar: which posts to publish or review when, content mix, templates,…
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…