{"id":"db56c047-e31d-4eac-bbe6-19d15f78e090","shortId":"zyvSQT","kind":"skill","title":"blog-multilingual","tagline":"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. Orchestr","description":"# Blog Multilingual, One-Command International Publishing\n\nThe flagship multilingual orchestrator. Combines blog writing, translation,\ncultural adaptation, and full international SEO into a single command.\nProduces publication-ready blog posts in every target language with hreflang\ntags, localized JSON-LD schema, and CMS-integration metadata.\n\n> Adapted from `claude-blog-multilingual` by Chris Mueller (AI Marketing Hub\n> Pro Hub Challenge submission, March 2026, scored 85/100 Proficient).\n> Original: https://github.com/Chriss54/multilingual-int\n> This port removes the original `curl | bash` installer and credential\n> handling flagged in the audit, integrates as core skills, and uses the\n> shared cultural-adaptation reference under `blog-translate/references/`.\n\n## Dependencies\n\nInvoked internally by this orchestrator:\n\n| Component | Source | Required |\n|-----------|--------|----------|\n| `blog-write` | claude-blog (this plugin) | Yes |\n| `blog-translate` | claude-blog (this plugin) | Yes |\n| `blog-localize` | claude-blog (this plugin) | Yes (when `--localize` is on, default) |\n| `seo-hreflang` | claude-seo (sibling plugin) | No, falls back to a self-contained generator |\n\nIf `seo-hreflang` is not installed, the orchestrator emits hreflang tags using\nits own minimal generator (Phase 5 below) and notes the limitation in the\ndelivery summary. Hreflang validation in that case is structural only, not the\ndeeper validation `seo-hreflang` provides.\n\n## Command Syntax\n\n```\n/blog multilingual <topic> --languages <lang1,lang2,...> [--source <lang>] [--no-localize] [--format <md|mdx|html>]\n```\n\n| Argument | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `<topic>` | Yes | , | Blog topic or working title |\n| `--languages` | Yes | , | Comma-separated ISO 639-1 codes (e.g. `de,fr,es,ja,pt-BR`) |\n| `--source` | No | `en` | Source language to write the original in |\n| `--no-localize` | No | off | Skip cultural adaptation (translation only) |\n| `--format` | No | auto | Output format: `md`, `mdx`, or `html` |\n\nIf `--languages` is missing, ask the user once before running anything:\n\"Which languages should the blog be published in? Provide ISO 639-1 codes\nseparated by commas (e.g., `de,fr,es,ja,pt-BR`). The post will be written in\n`<source>` first, then translated.\"\n\n## Workflow\n\n### Phase 1: Configuration\n\n1. Parse arguments. Extract topic, target languages, source, format.\n2. Validate each language code against ISO 639-1 (region suffixes like\n   `pt-BR`, `es-MX`, `zh-TW` are also accepted).\n3. Detect output format from the project (frontmatter convention, file\n   extensions, framework hints) or use `--format`.\n4. Resolve source language. If a target language equals `--source`, drop it\n   from the translation list with a notice.\n5. Create the output directory inside the current working directory:\n   ```\n   multilingual/\n     {source-lang}/\n     {lang-1}/\n     {lang-2}/\n     ...\n   ```\n   Output MUST stay inside the project root. Never write outside the cwd.\n\nProgress: `Phase 1: Configuration complete, [N] languages selected ([codes])`\n\n### Phase 2: Write Original Blog\n\nInvoke the `blog-write` sub-skill (route through `/blog write` so all\nexisting rules apply: template auto-selection, sourced statistics, citation\ncapsules, FAQ schema, internal-link zones, charts, image embedding). Pass the\ntopic and any blog-write parameters surfaced by the user.\n\nSave the original to `multilingual/{source-lang}/{slug}.{ext}`.\n\nProgress: `Phase 2: Original written, multilingual/{source-lang}/{slug}.{ext}`\n\n### Phase 3: Translate to All Target Languages\n\nFor each target language, invoke `blog-translate`:\n\n- Input: the original blog post produced in Phase 2.\n- Target: the specific language code.\n- Run targets in parallel where the runtime supports it (one Task per\n  language) to reduce wall-clock time.\n\nSave translations to `multilingual/{lang}/{localized-slug}.{ext}`.\n\nProgress: `Phase 3: Translating to [lang] ([X]/[N])` per language, then\n`Phase 3: All translations complete`.\n\n### Phase 4: Cultural Adaptation\n\nIf `--no-localize` is NOT set, invoke `blog-localize` for every translated\npost:\n\n- Input: the translated blog post.\n- Locale: the target language or region code.\n- Run in parallel.\n\nUpdate files in place. The localizer swaps brand examples, adapts CTAs,\nsubstitutes legal references, and adjusts formality. See\n`../blog-localize/SKILL.md` for the full adaptation pass.\n\nProgress: `Phase 4: Cultural adaptation complete for [N] languages`.\n\n### Phase 5: International SEO Generation\n\nGenerate three artifacts plus localized schema. If the `seo-hreflang` skill\nfrom claude-seo is installed, delegate validation to it. Otherwise use the\nself-contained generator below.\n\n#### 5a. Hreflang Tags (HTML)\n\nCopy-paste ready tags for `<head>`:\n\n```html\n<!-- Hreflang tags. Paste into <head> of each language version. -->\n<link rel=\"alternate\" hreflang=\"{source}\" href=\"{source-url}\" />\n<link rel=\"alternate\" hreflang=\"{lang-1}\" href=\"{lang-1-url}\" />\n<link rel=\"alternate\" hreflang=\"{lang-2}\" href=\"{lang-2-url}\" />\n<link rel=\"alternate\" hreflang=\"x-default\" href=\"{source-url}\" />\n```\n\nRules (mirrored from `seo-hreflang`):\n\n- Every page references all alternates including itself (self-referencing).\n- `x-default` points to the source-language version.\n- All URLs use the same protocol (HTTPS) and trailing-slash convention.\n- Bidirectional: every relationship is reciprocal.\n\nSave to `multilingual/hreflang-tags.html`.\n\n#### 5b. Hreflang Sitemap Fragment\n\n```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"\n        xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">\n  <url>\n    <loc>{source-url}</loc>\n    <xhtml:link rel=\"alternate\" hreflang=\"{source}\" href=\"{source-url}\" />\n    <xhtml:link rel=\"alternate\" hreflang=\"{lang-1}\" href=\"{lang-1-url}\" />\n    <xhtml:link rel=\"alternate\" hreflang=\"x-default\" href=\"{source-url}\" />\n  </url>\n  <!-- Repeat one <url> block per language version -->\n</urlset>\n```\n\nSave to `multilingual/hreflang-sitemap.xml`.\n\n#### 5c. Hreflang Map (JSON)\n\nMachine-readable mapping for CMS integration:\n\n```json\n{\n  \"sourceSlug\": \"how-to-avoid-ai-slop\",\n  \"sourceLanguage\": \"en\",\n  \"generatedDate\": \"YYYY-MM-DD\",\n  \"versions\": [\n    {\n      \"lang\": \"en\",\n      \"slug\": \"how-to-avoid-ai-slop\",\n      \"file\": \"en/how-to-avoid-ai-slop.md\",\n      \"title\": \"How to Avoid AI Slop in 2026\",\n      \"description\": \"...\"\n    },\n    {\n      \"lang\": \"de\",\n      \"slug\": \"wie-man-ki-slop-vermeidet\",\n      \"file\": \"de/wie-man-ki-slop-vermeidet.md\",\n      \"title\": \"KI-Slop vermeiden in 2026\",\n      \"description\": \"...\"\n    }\n  ],\n  \"hreflang\": {\n    \"method\": \"html\",\n    \"x-default\": \"en\"\n  }\n}\n```\n\nSave to `multilingual/hreflang-map.json`.\n\n#### 5d. Localized Schema (Optional)\n\nIf the user asks, or if a frontmatter `schema: true` flag is present, attach\nor update JSON-LD on every language version with `inLanguage` and\n`translationOfWork` fields:\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"BlogPosting\",\n  \"headline\": \"[Localized title]\",\n  \"description\": \"[Localized description]\",\n  \"inLanguage\": \"[lang-code]\",\n  \"isPartOf\": { \"@type\": \"Blog\", \"inLanguage\": \"[lang-code]\" },\n  \"translationOfWork\": {\n    \"@type\": \"BlogPosting\",\n    \"inLanguage\": \"[source-lang]\",\n    \"url\": \"[source-url]\"\n  }\n}\n```\n\nUse the existing `/blog schema` sub-skill if richer schema (FAQ, Person,\nBreadcrumb) is wanted on each version.\n\n### Phase 6: Delivery Summary\n\n```\n## Multilingual blog complete: [Title]\n\n### Original\n- Language: [source]\n- File: multilingual/{source}/{slug}.{ext}\n\n### Translations\n| Language | File | Localized | Keywords adapted |\n|----------|------|-----------|------------------|\n| de | multilingual/de/{slug}.md | yes | [N] |\n| fr | multilingual/fr/{slug}.md | yes | [N] |\n| es | multilingual/es/{slug}.md | yes | [N] |\n\n### International SEO assets\n- multilingual/hreflang-tags.html\n- multilingual/hreflang-sitemap.xml\n- multilingual/hreflang-map.json\n- Localized schema embedded per version (if requested)\n\n### Total\n- [N] posts in [N] languages\n- [N] SEO assets generated\n\n### Next steps\n- Replace `{url}` placeholders in hreflang tags with your real URLs.\n- Merge `hreflang-sitemap.xml` into your existing sitemap.\n- Run `/blog locale-audit multilingual/` to verify completeness.\n- Resolve `[INTERNAL-LINK]` placeholders with locale-specific URLs.\n- If claude-seo is installed, run `/seo hreflang multilingual/` for\n  deeper validation.\n```\n\n## Cross-References\n\n| When | Run |\n|------|-----|\n| To regenerate or reword the source | `/blog write <topic>` |\n| To translate one existing file only | `/blog translate <file> --to <codes>` |\n| To deepen cultural fit on one file | `/blog localize <file> --locale <code>` |\n| To audit a multilingual directory | `/blog locale-audit <directory>` |\n| For deeper hreflang validation | `/seo hreflang <directory>` (claude-seo, optional) |\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| `blog-write` missing | Error: \"This skill requires `blog-write`. Reinstall claude-blog.\" |\n| One translation fails | Complete the rest, report partial results, suggest a retry command |\n| Source language equals a target | Skip that target, log a notice |\n| More than 10 target languages | Warn about wall-clock time, proceed if confirmed |\n| `seo-hreflang` not installed | Use the self-contained generator, note it in the summary |\n\n## Commands Recap\n\n| Command | Purpose |\n|---------|---------|\n| `/blog multilingual <topic> --languages de,fr,es` | Write source, translate, localize, emit hreflang assets |\n| `/blog translate <file> --to de,fr,es` | Translate one file into target languages |\n| `/blog localize <file> --locale de-DE` | Cultural deep-adaptation of one translated file |\n| `/blog locale-audit <directory>` | Multilingual QA across a directory |","tags":["blog","multilingual","claude","agricidaniel","agent-skills","ai-citations","ai-content","ai-marketing","ai-marketing-hub","blog-writing","claude-code","claude-code-skill"],"capabilities":["skill","source-agricidaniel","skill-blog-multilingual","topic-agent-skills","topic-ai-citations","topic-ai-content","topic-ai-marketing","topic-ai-marketing-hub","topic-blog","topic-blog-writing","topic-claude-code","topic-claude-code-skill","topic-claude-plugin","topic-claude-skill","topic-content-creation"],"categories":["claude-blog"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/AgriciDaniel/claude-blog/blog-multilingual","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add AgriciDaniel/claude-blog","source_repo":"https://github.com/AgriciDaniel/claude-blog","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 753 github stars · SKILL.md body (9,881 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:53:30.733Z","embedding":null,"createdAt":"2026-05-18T12:54:53.599Z","updatedAt":"2026-05-18T18:53:30.733Z","lastSeenAt":"2026-05-18T18:53:30.733Z","tsv":"'-1':287,348,391,457 '-2':459 '/blog':257,496,941,1039,1081,1089,1099,1107,1198,1211,1223,1237 '/blog-localize/skill.md':679 '/chriss54/multilingual-int':120 '/references':152 '/seo':1064,1115 '1':372,374,474 '10':1166 '2':383,482,545,577 '2026':113,842,861 '3':407,555,613,623 '4':423,628,687 '5':229,442,695 '5a':729 '5b':786 '5c':797 '5d':873 '6':958 '639':286,347,390 '85/100':115 'accept':406 'across':1243 'action':1124 'adapt':23,64,96,146,314,630,670,683,689,978,1232 'adjust':676 'ai':105,814,831,839 'also':405 'altern':750 'anyth':336 'appli':21,502 'argument':270,376 'artifact':701 'ask':330,880 'asset':999,1018,1210 'attach':890 'audit':135,1042,1103,1110,1240 'auto':319,505 'auto-select':504 'avoid':813,830,838 'back':204 'bash':127 'bidirect':778 'blog':2,8,12,48,60,77,100,150,163,167,172,176,181,185,275,341,485,489,526,567,572,640,649,922,962,1126,1134,1139 'blog-loc':180,639 'blog-multilingu':1 'blog-transl':149,171,566 'blog-writ':162,488,525,1125,1133 'blogpost':909,929 'br':296,360,397 'brand':668 'breadcrumb':951 'capsul':510 'case':243 'challeng':110 'chart':517 'chris':103 'citat':509 'claud':99,166,175,184,198,713,1059,1118,1138 'claude-blog':165,174,183,1137 'claude-blog-multilingu':98 'claude-seo':197,712,1058,1117 'clock':600,1173 'cms':33,93,806 'cms-integr':92 'cms-readi':32 'code':288,349,387,480,582,657,919,926 'combin':59 'comma':283,352 'comma-separ':282 'command':6,52,72,255,1152,1194,1196 'complet':38,476,626,690,963,1046,1143 'compon':159 'configur':373,475 'confirm':1177 'contain':209,726,1187 'content':46 'context':906 'convent':415,777 'copi':734 'copy-past':733 'core':138 'creat':443 'creation':9 'credenti':130 'cross':1071 'cross-refer':1070 'ctas':671 'cultur':22,63,145,313,629,688,1094,1229 'cultural-adapt':144 'curl':126 'current':449 'cwd':471 'dd':822 'de':290,354,845,979,1201,1214,1227,1228 'de-d':1226 'de/wie-man-ki-slop-vermeidet.md':854 'deep':1231 'deep-adapt':1230 'deepen':1093 'deeper':249,1068,1112 'default':193,272,758,868 'deleg':717 'deliveri':237,959 'depend':153 'descript':273,843,862,913,915 'detect':408 'directori':446,451,1106,1245 'drop':433 'e.g':289,353 'embed':519,1005 'emit':25,220,1208 'en':299,817,825,869 'en/how-to-avoid-ai-slop.md':834 'entri':29 'equal':431,1155 'error':1121,1129 'es':292,356,399,991,1203,1216 'es-mx':398 'everi':80,643,746,779,897 'exampl':669 'exist':500,940,1036,1086 'ext':542,553,610,972 'extens':417 'extract':377 'fail':1142 'fall':203 'faq':511,949 'field':904 'file':416,662,833,853,968,975,1087,1098,1219,1236 'first':367 'fit':1095 'flag':132,887 'flagship':56 'formal':677 'format':266,317,321,382,410,422 'fr':291,355,985,1202,1215 'fragment':789 'framework':418 'frontmatt':414,884 'full':66,682 'generat':210,227,698,699,727,1019,1188 'generatedd':818 'github.com':119 'github.com/chriss54/multilingual-int':118 'handl':131,1122 'headlin':910 'hint':419 'how-to-avoid-ai-slop':810,827 'hreflang':26,84,196,214,221,239,253,709,730,745,787,798,863,1026,1065,1113,1116,1180,1209 'hreflang-sitemap.xml':1033 'html':269,325,732,739,865 'https':772 'hub':107,109 'imag':518 'includ':751 'inlanguag':901,916,923,930 'input':569,646 'insid':447,463 'instal':128,217,716,1062,1182 'integr':94,136,807 'intern':45,53,67,155,514,696,997,1049 'internal-link':513,1048 'invok':154,486,565,638 'iso':285,346,389 'ispartof':920 'ja':293,357 'json':88,800,808,894,905 'json-ld':87,893 'keyword':977 'ki':850,857 'ki-slop':856 'lang':455,456,458,540,551,606,616,824,844,918,925,933 'lang-cod':917,924 'lang1':260 'lang2':261 'languag':20,35,82,259,280,301,327,338,380,386,426,430,478,560,564,581,595,620,654,693,764,898,966,974,1015,1154,1168,1200,1222 'ld':89,895 'legal':673 'like':394 'limit':234 'link':515,1050 'list':438 'local':86,182,190,265,309,608,634,641,651,666,703,874,911,914,976,1003,1041,1054,1100,1101,1109,1207,1224,1225,1239 'locale-audit':1040,1108,1238 'locale-specif':1053 'localized-slug':607 'log':1161 'machin':802 'machine-read':801 'man':849 'map':36,799,804 'march':112 'market':106 'md':267,322,982,988,994 'mdx':268,323 'merg':1032 'metadata':95 'method':864 'minim':226 'mirror':741 'miss':329,1128 'mm':821 'mueller':104 'multilingu':3,7,49,57,101,258,452,537,548,605,961,969,1043,1066,1105,1199,1241 'multilingual/de':980 'multilingual/es':992 'multilingual/fr':986 'multilingual/hreflang-map.json':872,1002 'multilingual/hreflang-sitemap.xml':796,1001 'multilingual/hreflang-tags.html':785,1000 'must':461 'mx':400 'n':477,618,692,984,990,996,1011,1014,1016 'never':467 'next':1020 'no-loc':263,307,632 'note':232,1189 'notic':441,1163 'one':5,51,592,1085,1097,1140,1218,1234 'one-command':4,50 'option':876,1120 'orchestr':47,58,158,219 'origin':117,125,305,484,535,546,571,965 'otherwis':721 'output':320,409,445,460 'outsid':469 'page':747 'parallel':586,660 'paramet':528 'pars':375 'partial':1147 'pass':520,684 'past':735 'per':594,619,1006 'person':950 'phase':228,371,473,481,544,554,576,612,622,627,686,694,957 'pipelin':43 'place':664 'placehold':1024,1051 'plugin':169,178,187,201 'plus':702 'point':759 'port':122 'post':13,78,362,573,645,650,1012 'present':889 'pro':108 'proceed':1175 'produc':73,574 'profici':116 'progress':472,543,611,685 'project':413,465 'protocol':771 'provid':254,345 'pt':295,359,396 'pt-br':294,358,395 'public':75 'publication-readi':74 'publish':42,54,343 'purpos':1197 'qa':1242 'readabl':803 'readi':34,76,736 'real':1030 'recap':1195 'reciproc':782 'reduc':597 'refer':147,674,748,1072 'referenc':755 'regener':1076 'region':392,656 'reinstal':1136 'relationship':780 'remov':123 'replac':1022 'report':1146 'request':1009 'requir':161,271,1132 'resolv':424,1047 'rest':1145 'result':1148 'retri':1151 'reword':1078 'richer':947 'root':466 'rout':494 'rule':501,740 'run':335,583,658,1038,1063,1074 'runtim':589 'save':533,602,783,794,870 'scenario':1123 'schema':90,512,704,875,885,942,948,1004 'schema.org':907 'score':114 'see':678 'select':479,506 'self':208,725,754,1186 'self-contain':207,724,1185 'self-referenc':753 'seo':68,195,199,213,252,697,708,714,744,998,1017,1060,1119,1179 'seo-hreflang':194,212,251,707,743,1178 'separ':284,350 'set':637 'share':143 'sibl':200 'singl':71 'sitemap':28,788,1037 'skill':139,493,710,945,1131 'skill-blog-multilingual' 'skip':312,1158 'slash':776 'slop':815,832,840,851,858 'slug':541,552,609,826,846,971,981,987,993 'sourc':160,262,297,300,381,425,432,454,507,539,550,763,792,932,936,967,970,1080,1153,1205 'source-agricidaniel' 'source-lang':453,538,549,931 'source-languag':762 'source-url':791,935 'sourcelanguag':816 'sourceslug':809 'specif':580,1055 'specifi':19 'statist':508 'stay':462 'step':1021 'structur':245 'sub':492,944 'sub-skil':491,943 'submiss':111 'substitut':672 'suffix':393 'suggest':1149 'summari':238,960,1193 'support':590 'surfac':529 'swap':667 'syntax':256 'tag':27,85,222,731,737,1027 'target':81,379,429,559,563,578,584,653,1157,1160,1167,1221 'task':593 'templat':503 'three':700 'time':601,1174 'titl':279,835,855,912,964 'topic':276,378,522 'topic-agent-skills' 'topic-ai-citations' 'topic-ai-content' 'topic-ai-marketing' 'topic-ai-marketing-hub' 'topic-blog' 'topic-blog-writing' 'topic-claude-code' 'topic-claude-code-skill' 'topic-claude-plugin' 'topic-claude-skill' 'topic-content-creation' 'total':1010 'trail':775 'trailing-slash':774 'translat':14,62,151,173,315,369,437,556,568,603,614,625,644,648,973,1084,1090,1141,1206,1212,1217,1235 'translationofwork':903,927 'true':886 'tw':403 'type':908,921,928 'updat':661,892 'url':767,793,934,937,1023,1031,1056 'use':141,223,421,722,768,938,1183 'user':18,332,532,879 'user-specifi':17 'valid':240,250,384,718,1069,1114 'verifi':1045 'vermeiden':859 'vermeidet':852 'version':765,823,899,956,1007 'wall':599,1172 'wall-clock':598,1171 'want':953 'warn':1169 'wie':848 'wie-man-ki-slop-vermeidet':847 'work':278,450 'workflow':370 'write':10,40,61,164,303,468,483,490,497,527,1082,1127,1135,1204 'write-to-publish':39 'written':365,547 'x':617,757,867 'x-default':756,866 'xml':790 'yes':170,179,188,274,281,983,989,995 'yyyi':820 'yyyy-mm-dd':819 'zh':402 'zh-tw':401 'zone':516","prices":[{"id":"efc51fdb-6c06-409a-ab14-6bbd83b500ad","listingId":"db56c047-e31d-4eac-bbe6-19d15f78e090","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"AgriciDaniel","category":"claude-blog","install_from":"skills.sh"},"createdAt":"2026-05-18T12:54:53.599Z"}],"sources":[{"listingId":"db56c047-e31d-4eac-bbe6-19d15f78e090","source":"github","sourceId":"AgriciDaniel/claude-blog/blog-multilingual","sourceUrl":"https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-multilingual","isPrimary":false,"firstSeenAt":"2026-05-18T12:54:53.599Z","lastSeenAt":"2026-05-18T18:53:30.733Z"}],"details":{"listingId":"db56c047-e31d-4eac-bbe6-19d15f78e090","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"AgriciDaniel","slug":"blog-multilingual","github":{"repo":"AgriciDaniel/claude-blog","stars":753,"topics":["agent-skills","ai","ai-citations","ai-content","ai-marketing","ai-marketing-hub","blog","blog-writing","claude-code","claude-code-skill","claude-plugin","claude-skill","content-creation","content-optimization","content-strategy","eeat","geo","multilingual","open-source","seo"],"license":"mit","html_url":"https://github.com/AgriciDaniel/claude-blog","pushed_at":"2026-05-15T04:45:18Z","description":"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 AI-Marketing-Hub/claude-blog (AI Marketing Hub Pro community); public releases ship here.","skill_md_sha":"61cb7b2548aa745a7042bbca2cddc40fd14def3e","skill_md_path":"skills/blog-multilingual/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-multilingual"},"layout":"multi","source":"github","category":"claude-blog","frontmatter":{"name":"blog-multilingual","license":"MIT","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\".","compatibility":"Requires claude-blog (blog-write). Optional integration with claude-seo (seo-hreflang) for richer hreflang validation."},"skills_sh_url":"https://skills.sh/AgriciDaniel/claude-blog/blog-multilingual"},"updatedAt":"2026-05-18T18:53:30.733Z"}}