Agent skill

Blog Locale Audit

by AgriciDaniel in AgriciDaniel/claude-blog

Audit a directory of multilingual blog content for completeness, consistency, hreflang correctness, meta-tag parity, and freshness.

MITAuto-check passedWriting & Content

Install Blog Locale Audit

skills CLI
$ npx skills add AgriciDaniel/claude-blog --skill blog-locale-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AgriciDaniel/claude-blog blog-locale-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blog-locale-audit .claude/skills/blog-locale-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
blog-locale-audit
GitHub stars
2.3k
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
757 words
Files
1
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Audit a directory of multilingual blog content for completeness, consistency, hreflang correctness, meta-tag parity, and freshness.

  • Works in 7 steps: Discovery → Completeness Audit → Content Parity Audit → …
  • User says locale audit
  • SKILL.md covers Workflow, Error Handling and Cross-References
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Blog Locale Audit is an agent skill from AgriciDaniel/claude-blog. Audit a directory of multilingual blog content for completeness, consistency, hreflang correctness, meta-tag parity, and freshness. Builds a translation coverage matrix, flags stale translations, validates hreflang and schema, and emits a prioritized report with runnable fix commands. Use when user says "locale audit", "blog locale-audit", "check translations", "multilingual audit", "translation check", "hreflang check", "Uebersetzungen pruefen".

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Standalone within claude-blog. Optional richer hreflang validation via claude-seo seo-hreflang.

It sits in Writing & Content, covering Translation, Technical SEO and On-page SEO. The repository describes itself as: Claude Code blog skill suite: 30 sub-skills, 5 agents, 5-gate v1.9.0 Blog Delivery Contract, dual-optimized for Google rankings and AI citations. Active development at… The licence is MIT.

When your agent uses it

  • User says locale audit
  • Blog locale-audit
  • Check translations
  • Multilingual audit

Example prompts

  • “locale audit”
  • “blog locale-audit”
  • “check translations”
  • “/blog-locale-audit”

Requirements

  • Compatibility (from SKILL.md): Standalone within claude-blog. Optional richer hreflang validation via claude-seo seo-hreflang.

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Discovery
  2. Completeness Audit
  3. Content Parity Audit
  4. SEO Parity Audit
  5. Hreflang Audit
  6. Freshness Audit
  7. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 2500d4c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Standalone within claude-blog. Optional richer hreflang validation via claude-seo seo-hreflang.

    From compatibility in the SKILL.md frontmatter.

Context cost

Blog Locale Audit loads about 2.1k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 757 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~117
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AgriciDaniel/claude-blog at commit 2500d4c, republished under its MIT licence (© AgriciDaniel). 757 words, ~2,076 tokens.

Download SKILL.mdSave it as .claude/skills/blog-locale-audit/SKILL.md (or your agent's skills folder).
name
blog-locale-audit
description
Audit a directory of multilingual blog content for completeness, consistency, hreflang correctness, meta-tag parity, and freshness. Builds a translation coverage matrix, flags stale translations, validates hreflang and schema, and emits a prioritized report with runnable fix commands. Use when user says "locale audit", "blog locale-audit", "check translations", "multilingual audit", "translation check", "hreflang check", "Uebersetzungen pruefen".
compatibility
Standalone within claude-blog. Optional richer hreflang validation via claude-seo seo-hreflang.
user-invokable
true
argument-hint
<directory>
license
MIT
metadata.author
AgriciDaniel
metadata.version
2.2.0
metadata.category
blog

Blog Locale Audit, Multilingual Quality Control

Audits a directory of multilingual blog content to ensure every language version is complete, consistent, correctly tagged, and SEO-optimized. Catches international content issues before they hurt rankings.

Adapted from claude-blog-multilingual by Chris Mueller (Pro Hub Challenge, March 2026). Original: https://github.com/Chriss54/multilingual-int

Workflow

Phase 1: Discovery
  1. Resolve the target directory inside the project root/current working directory. Reject symlinked directories and traversal outside the root, then scan blog content and group posts by language using:
    • Subdirectory names (en/, de/, fr/).
    • Frontmatter lang and translatedFrom fields.
    • hreflang-map.json if present.
  2. Normalize detected language codes with the shared multilingual locale rules used by blog-translate, blog-localize, and blog-multilingual: ISO 639-1 language in lowercase, optional ISO 15924 script in title case, optional ISO 3166-1 Alpha-2 region in uppercase. Flag ambiguous language-only codes such as es, pt, and zh unless the content declares an explicit neutral mode.
  3. Build a content matrix mapping which post exists in which languages. Use a stable translation-group key before comparing slugs: translationGroupId, sourceSlug, schema translationOfWork.url, or the IDs and URLs in hreflang-map.json. Fall back to normalized source slug only when no stable key exists.
  4. Detect the source language (most common translatedFrom target, or the sourceLanguage field in hreflang-map.json if present).
Phase 2: Completeness Audit

Show which translations are missing:

### Translation coverage matrix

| Post (EN) | DE | FR | ES | JA |
|-----------|----|----|----|----|
| how-to-avoid-ai-slop | ok | ok | missing | missing |
| content-marketing-2026 | ok | missing | ok | missing |

Coverage: 60% (6 of 10 expected translations present)
Missing: 4 translations needed
Phase 3: Content Parity Audit

For every post that exists in multiple languages:

CheckWhatSeverity
Section countSame number of H2 and H3 sectionsCritical
FAQ countSame number of FAQ itemsHigh
Image countSame number of imagesHigh
Chart countSame number of charts (SVG figures)High
Word count ratioWithin expected band for language pair (DE +20% to +30%, JA -20%, ES +10%)Medium
Link countSimilar internal and external link countsMedium
Evidence-backed claimsSame supported claims and citations across versionsMedium
Frontmatter parityAll required fields present per versionHigh

Flag every significant deviation as an issue.

Phase 4: SEO Parity Audit

For every language version verify:

ElementCheckSeverity
Title tagPresent, localized, clear, and appropriate for the pageCritical
Meta descriptionPresent, localized, accurate, and consistent with visible contentCritical
lang attribute or frontmatter langPresent, valid Google-compatible hreflang or BCP 47 language tagCritical
Canonical URLPoints to the same-language page, not the source-language page or x-defaultCritical
Schema inLanguageMatches langHigh
Schema translationOfWorkPoints to the source URLHigh
Alt textTranslated (no English alt in non-EN posts)High
SlugLocalized (no English slug in non-EN posts)Medium
TagsLocalizedMedium
KeywordsLocalizedMedium
Show full SKILL.md (337 more words)Show less
Phase 5: Hreflang Audit

If hreflang-tags.html, hreflang-sitemap.xml, or hreflang-map.json exists in the directory:

CheckWhatSeverity
Self-referencingEach page references itselfCritical
Return tagsEvery relationship is bidirectionalCritical
Canonical consistencyEvery hreflang page canonicalizes to its same-language URLCritical
x-defaultPresent, points to the unmatched-language fallback such as a language selector or default market pageCritical
Language codesValid Google-compatible hreflang tags: ISO 639-1 language plus optional ISO 15924 script or ISO 3166-1 Alpha-2 regionHigh
URL consistencySame protocol, same trailing-slash conventionMedium
CompletenessEvery language version representedHigh

If no hreflang files exist, report it as a critical gap and offer: "Run /blog multilingual <topic> --languages ... to regenerate, or create hreflang-tags.html manually."

If seo-hreflang from claude-seo is installed, suggest running it for deeper validation.

Phase 6: Freshness Audit

For posts with translatedDate in frontmatter:

CheckWhatSeverity
Source updated after translationSource modified after translatedDateCritical
Source content driftStored source hash or source dateModified differs from current sourceCritical
Translation driftStored translation hash differs from current localized fileMedium
Translation older than 90 daysMay need refreshMedium
lastUpdated mismatch across versionsVersions out of syncMedium
Git or file mtime newer than translatedDateContent changed without frontmatter updateWarning

When available, store and compare sourceHash, source dateModified, translationHash, and Git mtime before relying only on translatedDate.

Emit actionable commands per stale file:

3 translations are stale:
- de/ki-trends-2026.md (source updated 2 days ago)
  -> Run: /blog translate en/ai-trends-2026.md --to de
- fr/ki-trends-2026.md (source updated 2 days ago)
  -> Run: /blog translate en/ai-trends-2026.md --to fr
- es/tendencias-ia-2026.md (translation > 90 days old)
  -> Run: /blog translate en/ai-trends-2026.md --to es
Phase 7: Report

Output as markdown by default. If the user passes --html, also write the report to locale-audit-report.html only inside the audited project root. Escape all dynamic filenames, titles, URLs, and issue text with html.escape(value, quote=True) before rendering HTML, and reject symlinked or outside-root report paths.

## Multilingual content audit report

### Summary
- Posts audited: [N] across [N] languages
- Overall health: [score] / 100
- Critical issues: [N]
- Warnings: [N]

### Translation coverage
[Matrix from Phase 2]

### Issues found
#### Critical
- [Issue with file references]

#### Warnings
- [Issue with file references]

#### Passed
- [Checks that passed]

### Prioritized fixes
1. [Highest-impact action]
2. [...]

### Stale-translation alerts
[Runnable commands from Phase 6]

### Quick fixes
- Run `/blog translate <file> --to <missing-langs>` for [N] missing translations.
- Run `/blog multilingual` to regenerate hreflang assets.
- Run `/blog localize <file> --locale <code>` for weak cultural adaptations.

Error Handling

ScenarioAction
Empty directory"No blog posts found in [path]"
Only one language presentReport coverage, suggest target languages
No hreflang filesFlag as critical gap, offer regeneration
Unrecognized file formatSkip with a warning

Cross-References

  • Fill missing translations: /blog translate <file> --to <missing-codes>
  • Deepen weak adaptations: /blog localize <file> --locale <code>
  • Regenerate hreflang assets: /blog multilingual <topic> --languages <codes>

© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/blog-locale-audit of AgriciDaniel/claude-blog.

Open the folder on GitHubat commit 2500d4c

Used in 1 other repository

We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in AgriciDaniel/claude-blog, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Blog Locale Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Blog Locale Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Blog Locale Audit this skillAgriciDaniel/claude-blog2.3k1 repos~2.1kAutomated safety check: PassMIT
Blog MultilingualInfrasity-Labs/dev-gtm-claude-skills1361 repos~2.6kAutomated safety check: PassMIT
Site Architecturealirezarezvani/claude-skills28k1 repos~3.5kAutomated safety check: PassMIT
SEOgridaco/grida2.7k—~2.1kAutomated safety check: PassApache-2.0
SEO Optimizerailabs-393/ai-labs-claude-skills4551 repos~3.2kAutomated safety check: PassMIT
SEO Drift MonitorAgriciDaniel/claude-seo19k1 repos~1.9kAutomated safety check: PassMIT

Similar skills

  • Blog Multilingual

    Infrasity-Labs/dev-gtm-claude-skills

    One-command multilingual blog creation. An agent skill from Infrasity-Labs/dev-gtm-claude-skills.

    136 GitHub starsUsed in 1 repo~2.6k tokens
    Writing & ContentAuto-check passed
  • Site Architecture

    alirezarezvani/claude-skills

    When the user wants to audit, redesign, or plan their website's structure, URL hierarchy, navigation design, or internal linking strategy.

    28k GitHub starsUsed in 1 repo~3.5k tokens
    Marketing & SEOAuto-check passed
  • SEO

    gridaco/grida

    SEO best practices for the Grida project across Next.js pages, blog posts, and documentation.

    2.7k GitHub stars~2.1k tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • SEO Optimizer

    ailabs-393/ai-labs-claude-skills

    This skill should be used when analyzing HTML/CSS websites for SEO optimization, fixing SEO issues, generating SEO reports, or implementing SEO best practices.

    455 GitHub starsUsed in 1 repo~3.2k tokens
    Marketing & SEOAuto-check passed
  • SEO Drift Monitor

    AgriciDaniel/claude-seo

    Captures baselines of a page's SEO-critical elements, compares later snapshots against them and flags regressions by severity, like version control for on-page SEO.

    19k GitHub starsUsed in 1 repo~1.9k tokens
    Marketing & SEOAuto-check passed
  • SEO

    ever-works/ever-works

    Optimize for search engine visibility and ranking. An agent skill from ever-works/ever-works.

    162 GitHub starsUsed in 10 repos~2.9k tokens
    Marketing & SEOAuto-check passed

More from AgriciDaniel/claude-blog

All 39 skills in this repo
  • Blog Google

    AgriciDaniel/claude-blog

    Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…

    2.3k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check: notes
  • Blog Audio

    AgriciDaniel/claude-blog

    Generate audio narration of blog posts using Google Gemini TTS.

    2.3k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check: notes
  • Blog Flow

    AgriciDaniel/claude-blog

    FLOW framework integration for bloggers. An agent skill from AgriciDaniel/claude-blog.

    2.3k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Blog Notebooklm

    AgriciDaniel/claude-blog

    Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uploaded documents.

    2.3k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check: warnings
  • Blog Image

    AgriciDaniel/claude-blog

    AI image generation and editing for blog content powered by Gemini via MCP.

    2.3k GitHub stars~3.4k tokensUpdated 2 days ago
    Auto-check passed
  • Blog Cluster

    AgriciDaniel/claude-blog

    Semantic topic cluster planning and automated execution engine for claude-blog.

    2.3k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed

Questions about Blog Locale Audit

What does Blog Locale Audit do?

Audit a directory of multilingual blog content for completeness, consistency, hreflang correctness, meta-tag parity, and freshness. Blog Locale Audit is an agent skill from AgriciDaniel/claude-blog. Audit a directory of multilingual blog content for completeness, consistency, hreflang correctness, meta-tag parity, and freshness.

When should I use Blog Locale Audit?

Blog Locale Audit fits situations like: user says locale audit; blog locale-audit; check translations; multilingual audit.

How do I install Blog Locale Audit in Claude Code?

Run `npx skills add AgriciDaniel/claude-blog --skill blog-locale-audit -a claude-code`. Or copy the skill folder (skills/blog-locale-audit in AgriciDaniel/claude-blog) into .claude/skills/blog-locale-audit in your project. Claude Code loads it when a task matches its description.

How do I install Blog Locale Audit in Codex?

Run `npx skills add AgriciDaniel/claude-blog --skill blog-locale-audit -a codex`. Or copy the skill folder (skills/blog-locale-audit in AgriciDaniel/claude-blog) into .agents/skills/blog-locale-audit in your project. Codex loads it when a task matches its description.

Can I use Blog Locale Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-blog --skill blog-locale-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blog-locale-audit, .gemini/skills/blog-locale-audit, .github/skills/blog-locale-audit and .opencode/skills/blog-locale-audit in your project.

What does Blog Locale Audit need to run?

SKILL.md names no scripts, command-line tools or credentials: Blog Locale Audit is instructions for the agent only. Compatibility (from SKILL.md): Standalone within claude-blog. Optional richer hreflang validation via claude-seo seo-hreflang..

Does Blog Locale Audit access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Blog Locale Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Blog Locale Audit use?

Blog Locale Audit is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Blog Locale Audit use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Blog Locale Audit?

Skills that share tags, products or a category with Blog Locale Audit: Blog Multilingual (Infrasity-Labs/dev-gtm-claude-skills, 136 stars), Site Architecture (alirezarezvani/claude-skills, 28k stars), SEO (gridaco/grida, 2.7k stars) and SEO Optimizer (ailabs-393/ai-labs-claude-skills, 455 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Blog Locale Audit?

AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-blog, which has 2,348 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 9, 2026.

Source: AgriciDaniel/claude-blog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.