blog-locale-audit
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".
Security Assessment
About blog-locale-audit
This skill audits a directory of multilingual blog content for completeness, consistency, correct hreflang tagging, meta-tag parity, and freshness. It solves the problem of international content silently drifting out of sync — missing translations, mismatched section counts, stale localized posts, and broken hreflang relationships — before those issues hurt search rankings. It builds a translation coverage matrix and emits a prioritized report with runnable fix commands.
The single-file SKILL.md defines a seven-phase workflow: discovery (grouping posts by language via subdirectories, frontmatter, or hreflang-map.json), completeness audit (coverage matrix), content parity audit (section, FAQ, image, chart, word-count-ratio, link, and frontmatter checks), SEO parity audit (title, meta description, lang attribute, canonical URL, schema inLanguage and translationOfWork, alt text, slug), hreflang audit (self-referencing, return tags, x-default, valid language codes), freshness audit (source-updated-after-translation, hash and mtime drift), and a final report that can optionally be written as HTML. Notably, the workflow is security-conscious: it resolves the target directory inside the project root, rejects symlinked directories and path traversal, and requires escaping all dynamic filenames, titles, URLs, and issue text with html.escape before rendering HTML.
The target users are multilingual content teams, SEO practitioners, and localization managers running the claude-blog suite. Use cases include verifying translation coverage before a launch, catching stale translations after a source edit, and validating hreflang and canonical correctness. It reads local content and reports findings; it optionally writes an HTML report only inside the audited project root, and takes explicit defensive measures against traversal and injection.
FAQ
What does the audit check?
Translation completeness, content parity (sections, FAQs, images, charts, word-count ratios, links, frontmatter), SEO parity (titles, meta descriptions, lang, canonical, schema, alt text, slugs), hreflang correctness, and translation freshness.
What output does it produce?
A prioritized Markdown report by default — including a coverage matrix and per-file fix commands — and optionally an HTML report written only inside the audited project root when --html is passed.
How does it detect stale translations?
It compares source dateModified, stored source/translation hashes, git or file mtime, and translatedDate, flagging cases where the source changed after the translation or where translations exceed 90 days old.
Does it protect against unsafe file access?
Yes. It resolves directories inside the project root, rejects symlinked directories and traversal outside the root, and escapes all dynamic text with html.escape before rendering HTML output.
Are other skills required?
No; it is standalone within claude-blog. It can optionally suggest the claude-seo seo-hreflang skill for deeper hreflang validation if installed.
Install blog-locale-audit
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
agricidaniel/claude-blog