Help us improve
Share bugs, ideas, or general feedback.
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).
npx claudepluginhub heznpc/ai-course-glossary --plugin ai-course-glossaryHow 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
Applies 10 pre-set color/font themes or generates custom ones for slides, documents, reports, and HTML landing pages.
Share bugs, ideas, or general feedback.
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).