From ai-course-glossary
Build a curated terminology glossary for free AI courses hosted on third-party LMS platforms (Skilljar is the primary target, including the courses at anthropic.skilljar.com; Coursera AI tracks and similar platforms work as fallbacks via the same workflow). Output is JSON in the format the SkillBridge Chrome extension (https://github.com/heznpc/skillBridge) consumes for its premium-tier curated dictionaries, so a glossary produced by this skill can be submitted upstream as a community contribution or used standalone as a localized reference card. TRIGGER when the user asks for a "glossary", "term sheet", "vocabulary list", "translated terminology", "AI dictionary", "skilljar translation", "anthropic academy translation", "localize a course", "translate a course glossary"; or when they paste a course URL on anthropic.skilljar.com / coursera.org/learn/* and ask for a multilingual term list; or when they mention SkillBridge and ask how to add a new language. SKIP when the user wants a general translation (a translator skill, not a glossary builder), when the target content has no AI/ML terminology (cooking, marketing, sales training), when the user wants a pure dictionary file with no source-extraction step, or when they explicitly want Coursera-native or Microsoft-Learn-native i18n (those platforms have built-in localization — do not duplicate).
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-course-glossary:ai-course-glossaryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Building an AI Course Glossary
This skill helps you produce a curated terminology glossary for an AI course hosted on Skilljar (e.g. the free courses at anthropic.skilljar.com — Claude 101, Claude Code, MCP Intro, AI Fluency series, etc.) or a similar third-party LMS. The output is a single JSON file shaped exactly like the per-language dictionaries the SkillBridge Chrome extension ships at src/data/<lang>.json, so contributions flow naturally into the open-source upstream and the same glossary doubles as a standalone reference card.
Activate when the user asks any of:
https://anthropic.skilljar.com/courses/..."Skip when:
Confirm three things with the user:
it, fr, es, de, pt-BR, ja, ko, zh-CN, zh-TW, ru, vi, pl, ar, hi, nl, tr, id, th, he, bn, etc.). If the user names a country, ask for the language explicitly — Spanish-vs-Catalan, Mandarin-vs-Cantonese, Brazilian-vs-European Portuguese all matter.Match the SkillBridge v3.5.34 dictionary schema exactly. The schema is intentionally section-rigid — every premium-tier dictionary in the SkillBridge repo ships the same 22 sections with identical English keys, and scripts/check-dict-coverage.js enforces this in CI. A glossary that misses or renames sections will fail validation and won't merge. See references/skillbridge-schema.md for the full section list with key counts.
Top-level shape:
{
"_meta": {
"lang": "<iso-code>",
"langName": "<native-name>",
"version": "<skillbridge-version>",
"lastUpdated": "<YYYY-MM-DD>",
"translation_provenance": "<honest-source-disclosure>"
},
"ui": { "<English>": "<translated>", ... },
"catalog": { ... },
"faq": { ... },
"claude101": { ... },
"claudeCode": { ... },
"agentSkills": { ... },
"claudeCowork": { ... },
"subagents": { ... },
"aiFluency": { ... },
"common": { ... },
"mcpIntro": { ... },
"mcpAdvanced": { ... },
"aiCapabilities": { ... },
"claudeAPI": { ... },
"aiFluencyEdu": { ... },
"aiFluencyStudent": { ... },
"aiFluencyNonprofit": { ... },
"cloudDeployment": { ... },
"extendedThinking": { ... },
"teachingAI": { ... },
"_protected": { ... },
"exam_ui": { ... }
}
Two of these sections are non-translation:
_meta — file metadata. Always present. translation_provenance should honestly state whether the translation was produced by a native speaker, derived from a sibling Romance/CJK language, or AI-translated and pending review. SkillBridge surfaces this in code review._protected — brand names (Anthropic, Claude, Cowork, Dispatch, Computer Use, Subagent, etc.) that must NEVER be translated and that Google Translate must be auto-corrected against if it tries. Copy verbatim from any existing dictionary in the upstream repo — these are stable across all languages.The remaining 20 sections are full English-key → target-language translations.
Bootstrap from an existing dictionary. Don't start from a blank file. WebFetch one of src/data/es.json, src/data/fr.json, or src/data/ja.json from github.com/heznpc/skillBridge (pick the closest Romance / CJK relative) and use it as a scaffold. This guarantees structural compatibility with check-dict-coverage.js and avoids the easy mistake of missing a section.
Verify the source URL is live AI content. Open the user-provided course URL with WebFetch. Confirm:
.skilljar.com, or it's a Coursera AI track, etc.)references/skillbridge-schema.md). If the slug is new, propose a new section name following the existing convention (camelCase derived from the course title).Extract terminology. Walk the course page text and pull out:
ui section and are mostly shared across courses.common.Translate. For each extracted English term, produce the target-language translation following three rules:
_protected. "Claude" never becomes "클로드"; "Anthropic" never becomes "Anthropique". The whole point of _protected is to undo Google Translate's tendency to phonetic-transliterate brand names.프롬프트 (loanword), not 유도질문. For Italian, "fine-tuning" is fine-tuning (loanword), not messa a punto fine. When in doubt, check what HuggingFace / OpenAI / DeepMind localized docs use.Disclose provenance honestly. In _meta.translation_provenance, write one of:
"v1 — native speaker, hand-curated <YYYY-MM-DD>" if a native speaker reviewed every entry"v1 — derived from src/data/<source>.json via <source-lang>→<target-lang> regex transformation (proximity ~N%). Native review welcome." if you bootstrapped from a sibling language (the SkillBridge Italian dictionary v3.5.34 used this exact pattern from Spanish)"v1 — AI-translated, pending native review" if Claude generated the translations cold without a sibling language to lean onValidate locally before handing the file back. Two checks:
_protected is a verbatim copy of the upstream _protected section (don't translate brand names by accident).Hand off. Two delivery modes:
<lang>.json. They use it as a reference card.src/data/<lang>.json plus a commit message like feat(i18n): promote <lang> to Premium tier with curated dictionary v1. The user clones the SkillBridge repo, drops the file in, opens a PR. The PR will need to:
PREMIUM_LANGUAGES in src/lib/constants.js_locales/<lang>/messages.json extDescriptionREADME.md and store-assets/STORE_LISTING*.md Premium tablesPREMIUM_LANGUAGES count assertion in tests/constants.test.js and tests/translator.test.js
See examples/skillbridge-pr-checklist.md for the full upstream-PR mechanics.Hallucinating a course that doesn't exist. Always fetch the user-provided URL first. If the URL is unreachable, ask the user to verify it before producing anything. A glossary for a non-existent course is worse than no glossary.
Translating brand names. Triple-check _protected. "Claude" is not "Claudio" in Italian, not "クロード" in Japanese.
Missing a section. SkillBridge's check-dict-coverage.js will reject a dictionary with even one missing section. Always use an existing dictionary as the structural scaffold.
Inventing terminology that doesn't match what the field uses. If you're translating to a language you're not deeply familiar with, prefer loanwords for technical AI terms (the field-standard in most non-English locales is loanword adoption, e.g. Korean "프롬프트 엔지니어링", Italian "prompt engineering" verbatim).
Adding new sections. Don't. SkillBridge's section schema is locked at v3.5.34. If a new Anthropic Academy course appears (the academy-courses-drift watcher in the SkillBridge repo will catch this within 12 hours of a course launch), add it as a new section in all premium dictionaries at once via a coordinated PR, not just yours.
Burning Puter.js quota during extraction. This skill runs in Claude Code; it uses Claude Code's compute. The SkillBridge extension uses Puter.js for runtime translation. Don't try to call Puter.js from this skill — wrong surface.
references/skillbridge-schema.md — full section list with current key counts, regenerated whenever the upstream schema changesreferences/skillbridge-pr-checklist.md — step-by-step for opening a PR against heznpc/skillBridge with a new language dictionaryexamples/ — input URL + output JSON pairs for the three most common cases (Italian/French/Spanish derivations from existing dictionaries)This skill is the content counterpart to SkillBridge's runtime surface. The SkillBridge Chrome extension translates Skilljar pages live and ships with a curated dictionary per premium language; this skill helps you produce that dictionary for a new language. The two are independent — you can use this glossary skill without ever installing the extension, and the extension works without this skill (its 11 premium dictionaries are bundled in the extension package).
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub heznpc/ai-course-glossary --plugin ai-course-glossary