Skip to content

Commit a49e1cd

Browse files
committed
feat(i18n): wire the new claude-platform-101 Academy course (11 locales)
The academy drift watcher caught a new live course this morning (#196): "Claude Platform 101" (claude-platform-101). Without dictionary coverage, non-English users get the English fallback for that course. - New `claudePlatform` section in all 11 premium dictionaries: the 14 lesson titles, 4 curriculum section headings, and 3 landing headings (Who this is for / Recommended prerequisites / Course sections — generic Skilljar landing strings that were never covered). - `catalog` section gains the course title (stays English in every locale, matching the existing course-title convention), the catalog-card blurb, and the 5 landing description paragraphs. - Conventions followed per locale (verified against each file before authoring): register (존댓말/です·ます/Sie/vous/tú/você/вы), brand & product names verbatim (Claude Developer Platform, Managed Agents, MCP, Claude Code, Opus/Sonnet/Haiku, SDK, Tool Runner, Console Workbench), and each locale's established skills rendering (ko skill / ja スキル / zh 技能 / es Habilidades / fr Compétences / it Skills / de Fähigkeiten / ru Навыки / vi Skills). - FLASHCARD_COURSE_MAP: 'claude-platform-101' -> ['claudePlatform']. - Plugin terms data regenerated. check:academy now reports zero unknown slugs (closes #196). Gates: validate, glossary, check:i18n/dict-coverage/locales/dicts/plugin, 527 unit tests, full E2E, lint — green. Store zips NOT rebuilt (owner builds on instruction).
1 parent 7f60f30 commit a49e1cd

25 files changed

Lines changed: 525 additions & 23 deletions

.github/workflows/capture.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: Capture store assets
2+
3+
# Regenerates the CWS listing assets (5 scenes + promo tile + demo webm +
4+
# description.md) from the BUILT bundle entirely in CI — no local browser
5+
# needed: Actions tab → "Capture store assets" → Run workflow → download the
6+
# `store-assets` artifact. shotkit runs build:bundle first and drives the
7+
# shipped bundle, so a green run doubles as a real-bundle smoke test.
8+
9+
on:
10+
workflow_dispatch:
11+
inputs:
12+
scene:
13+
description: 'Only this scene/tile/demo (comma-separated; empty = all)'
14+
required: false
15+
default: ''
16+
video:
17+
description: 'Record the demo screencast (webm)'
18+
type: boolean
19+
default: true
20+
headless:
21+
description: 'Run headless instead of under xvfb (experimental)'
22+
type: boolean
23+
default: false
24+
25+
permissions:
26+
contents: read
27+
28+
jobs:
29+
capture:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
33+
34+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
35+
with:
36+
node-version: 22
37+
cache: 'npm'
38+
39+
- name: Install dependencies
40+
run: npm ci
41+
42+
# Cache the Chromium binary so re-runs skip the ~120MB download.
43+
# Same key scheme as ci.yml's e2e job.
44+
- name: Cache Playwright browsers
45+
id: playwright-cache
46+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
47+
with:
48+
path: ~/.cache/ms-playwright
49+
key: playwright-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
50+
restore-keys: |
51+
playwright-${{ runner.os }}-
52+
53+
- name: Install xvfb (always) + Playwright Chromium (conditional)
54+
run: |
55+
sudo apt-get update
56+
sudo apt-get install -y xvfb
57+
if [ "${{ steps.playwright-cache.outputs.cache-hit }}" != "true" ]; then
58+
npx playwright install --with-deps chromium
59+
else
60+
npx playwright install-deps chromium
61+
fi
62+
63+
# Inputs flow via env (never interpolated into the script) — workflow-
64+
# injection-safe per GitHub's guidance.
65+
- name: Capture
66+
env:
67+
SCENE: ${{ inputs.scene }}
68+
VIDEO: ${{ inputs.video }}
69+
HEADLESS: ${{ inputs.headless }}
70+
run: |
71+
ARGS=()
72+
if [ -n "$SCENE" ]; then ARGS+=(--scene "$SCENE"); fi
73+
if [ "$VIDEO" != "true" ]; then ARGS+=(--no-video); fi
74+
if [ "$HEADLESS" = "true" ]; then
75+
HEADED=0 npx shotkit --json "${ARGS[@]}" | tee shotkit-result.json
76+
else
77+
xvfb-run -a npx shotkit --json "${ARGS[@]}" | tee shotkit-result.json
78+
fi
79+
{ echo "### shotkit assets"
80+
node -e "const r=require('./shotkit-result.json'); console.log(r.produced.map(p=>'- \`'+p.split('/').pop()+'\`').join('\n'))"
81+
} >> "$GITHUB_STEP_SUMMARY"
82+
83+
- name: Upload assets
84+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
85+
with:
86+
name: store-assets
87+
path: |
88+
store-assets/*.png
89+
store-assets/*.webm
90+
store-assets/description.md
91+
if-no-files-found: error

claude-plugin/skills/academy-terms/data/terms.de.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"sourceVersion": "3.5.40",
66
"sourceLastUpdated": "2026-04-02",
77
"generatedFrom": "src/data/de.json",
8-
"termCount": 999
8+
"termCount": 1006
99
},
1010
"protected": {
1111
"Claude Code": [
@@ -89,6 +89,13 @@
8989
"Learn how to use and create sub-agents in Claude Code to manage context, delegate tasks, and build specialized workflows that keep your main conversation clean and focused.": "Lernen Sie, wie Sie Sub-Agents in Claude Code verwenden und erstellen, um Kontext zu verwalten, Aufgaben zu delegieren und spezialisierte Workflows zu erstellen, die Ihre Hauptkonversation sauber und fokussiert halten.",
9090
"AI Capabilities and Limitations": "AI-Fähigkeiten und -Grenzen",
9191
"Understand how modern generative AI systems behave, identify types of unexpected outputs, and implement targeted fixes.": "Verstehen Sie das Verhalten moderner generativer AI-Systeme, identifizieren Sie Arten unerwarteter Ausgaben und implementieren Sie gezielte Korrekturen.",
92+
"Claude Platform 101": "Claude Platform 101",
93+
"This course teaches developers to build on the Claude Developer Platform from the ground up, whether you've made a few API calls or have only used Claude through a chat window.": "Dieser Kurs bringt Entwicklern von Grund auf bei, auf der Claude Developer Platform zu entwickeln — egal, ob Sie schon ein paar API-Aufrufe gemacht oder Claude bisher nur im Chat-Fenster genutzt haben.",
94+
"There's a wide gap between chatting with Claude in a browser tab and building Claude into something you ship. A chat answers a question and the thread ends there. An application sends Claude structured requests, hands it tools, lets it act on real systems, and runs that loop for one user or a million. The Claude Developer Platform exists to close that gap, and it's a different skill from prompting. Getting value out of it means understanding what's in a request, how an agent decides what to do, and where the costs and limits live.": "Zwischen dem Chatten mit Claude im Browser-Tab und dem Einbauen von Claude in ein Produkt, das Sie ausliefern, liegt eine große Lücke. Ein Chat beantwortet eine Frage, und dort endet der Faden. Eine Anwendung schickt Claude strukturierte Anfragen, gibt ihm Werkzeuge an die Hand, lässt ihn auf echten Systemen handeln und betreibt diese Schleife für einen Nutzer oder eine Million. Die Claude Developer Platform existiert, um diese Lücke zu schließen — und das ist eine andere Fähigkeit als Prompting. Wert daraus zu ziehen heißt zu verstehen, was in einer Anfrage steckt, wie ein Agent entscheidet, was zu tun ist, und wo Kosten und Grenzen liegen.",
95+
"This course teaches developers to build on the Claude Developer Platform from the ground up, whether you've made a few API calls or have only used Claude through a chat window. We start from first principles: what an API request contains, what an agent loop is, how the context window bounds what Claude can see, and how tools and permissions decide what it can do. The techniques later in the course then land as understanding instead of a list of calls to copy.": "Dieser Kurs bringt Entwicklern von Grund auf bei, auf der Claude Developer Platform zu entwickeln — egal, ob Sie schon ein paar API-Aufrufe gemacht oder Claude bisher nur im Chat-Fenster genutzt haben. Wir beginnen bei den Grundprinzipien: was eine API-Anfrage enthält, was eine Agenten-Schleife ist, wie das Kontextfenster begrenzt, was Claude sehen kann, und wie Werkzeuge und Berechtigungen entscheiden, was er tun darf. Die späteren Techniken des Kurses setzen sich dann als Verständnis fest statt als Liste von Aufrufen zum Abschreiben.",
96+
"You'll send your first request and read the response, then choose the right model for a job (Opus, Sonnet, or Haiku) and weigh the cost-and-latency trade-off on your own examples instead of guessing. From there you'll build the agent loop by hand to see how Claude acts, observes, and decides, then collapse that hand-written loop with the SDK's Tool Runner once you understand what it does for you. You'll give Claude reach through tool use, let it reason through hard problems with extended thinking, and keep spend predictable with workspaces, limits, and the Console Workbench.": "Sie senden Ihre erste Anfrage und lesen die Antwort, wählen dann das richtige Modell für die Aufgabe (Opus, Sonnet oder Haiku) und wägen den Kosten-Latenz-Kompromiss an eigenen Beispielen ab, statt zu raten. Danach bauen Sie die Agenten-Schleife von Hand, um zu sehen, wie Claude handelt, beobachtet und entscheidet — und ersetzen diese handgeschriebene Schleife durch den Tool Runner des SDK, sobald Sie verstanden haben, was er Ihnen abnimmt. Sie geben Claude über Tool-Nutzung Reichweite, lassen ihn mit Extended Thinking schwierige Probleme durchdenken und halten die Ausgaben mit Workspaces, Limits und der Console Workbench planbar.",
97+
"The middle of the course extends an agent beyond your own code: Anthropic's built-in tools (web search, code execution, web fetch) that run on Anthropic's infrastructure, Skills that package a procedure once and reuse it across calls, MCP servers that connect Claude to third-party tools without writing a schema, and the context-management patterns that keep a long-running agent inside the window and affordable past turn ten.": "Der mittlere Teil des Kurses erweitert einen Agenten über Ihren eigenen Code hinaus: Anthropics integrierte Werkzeuge (Websuche, Code-Ausführung, Web-Abruf), die auf Anthropics Infrastruktur laufen; Fähigkeiten, die einen Ablauf einmal verpacken und über Aufrufe hinweg wiederverwenden; MCP-Server, die Claude ohne Schema-Schreiben mit Drittanbieter-Werkzeugen verbinden; und die Kontext-Verwaltungsmuster, die einen langlaufenden Agenten im Fenster halten und auch nach dem zehnten Zug bezahlbar machen.",
98+
"The final section hands work off. You'll learn when to run your own loop and when to let Anthropic run a sandboxed, managed agent for you, then build one end to end, consuming the event stream as Anthropic runs the loop and reports back. A standalone lesson shows you how to build with the API using Claude Code itself, which is also why the rest of the course matters: you need to know what good code looks like to review what an agent writes for you. Every lesson ends with a runnable demo, so you finish each one with working code.": "Der letzte Abschnitt gibt Arbeit ab. Sie lernen, wann Sie Ihre eigene Schleife betreiben und wann Sie Anthropic einen sandboxed Managed Agent für sich laufen lassen — und bauen dann einen von Anfang bis Ende, wobei Sie den Ereignisstrom konsumieren, während Anthropic die Schleife ausführt und berichtet. Eine eigenständige Lektion zeigt, wie man mit der API über Claude Code selbst entwickelt — auch deshalb zählt der Rest des Kurses: Sie müssen wissen, wie guter Code aussieht, um zu prüfen, was ein Agent für Sie schreibt. Jede Lektion endet mit einer lauffähigen Demo, sodass Sie jede mit funktionierendem Code abschließen.",
9299
"Meet Claude": "Treffen Sie Claude",
93100
"What is Claude?": "Was ist Claude?",
94101
"Your first conversation with Claude": "Ihr erstes Gespräch mit Claude",

claude-plugin/skills/academy-terms/data/terms.es.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"sourceVersion": "3.5.40",
66
"sourceLastUpdated": "2026-04-02",
77
"generatedFrom": "src/data/es.json",
8-
"termCount": 999
8+
"termCount": 1006
99
},
1010
"protected": {
1111
"Claude Code": [
@@ -92,6 +92,13 @@
9292
"Learn how to use and create sub-agents in Claude Code to manage context, delegate tasks, and build specialized workflows that keep your main conversation clean and focused.": "Aprende a usar y crear sub-agentes en Claude Code para gestionar el contexto, delegar tareas y construir flujos de trabajo especializados que mantengan tu conversación principal limpia y enfocada.",
9393
"AI Capabilities and Limitations": "Capacidades y limitaciones de AI",
9494
"Understand how modern generative AI systems behave, identify types of unexpected outputs, and implement targeted fixes.": "Comprende cómo se comportan los sistemas modernos de AI generativa, identifica tipos de resultados inesperados e implementa correcciones específicas.",
95+
"Claude Platform 101": "Claude Platform 101",
96+
"This course teaches developers to build on the Claude Developer Platform from the ground up, whether you've made a few API calls or have only used Claude through a chat window.": "Este curso enseña a los desarrolladores a construir sobre la Claude Developer Platform desde cero, tanto si has hecho algunas llamadas a la API como si solo has usado Claude a través de una ventana de chat.",
97+
"There's a wide gap between chatting with Claude in a browser tab and building Claude into something you ship. A chat answers a question and the thread ends there. An application sends Claude structured requests, hands it tools, lets it act on real systems, and runs that loop for one user or a million. The Claude Developer Platform exists to close that gap, and it's a different skill from prompting. Getting value out of it means understanding what's in a request, how an agent decides what to do, and where the costs and limits live.": "Hay una gran brecha entre chatear con Claude en una pestaña del navegador y construir Claude dentro de algo que vas a lanzar. Un chat responde una pregunta y el hilo termina ahí. Una aplicación envía a Claude solicitudes estructuradas, le entrega herramientas, le permite actuar sobre sistemas reales y ejecuta ese bucle para un usuario o para un millón. La Claude Developer Platform existe para cerrar esa brecha, y es una habilidad distinta del prompting. Sacarle valor significa entender qué contiene una solicitud, cómo decide un agente qué hacer y dónde están los costos y los límites.",
98+
"This course teaches developers to build on the Claude Developer Platform from the ground up, whether you've made a few API calls or have only used Claude through a chat window. We start from first principles: what an API request contains, what an agent loop is, how the context window bounds what Claude can see, and how tools and permissions decide what it can do. The techniques later in the course then land as understanding instead of a list of calls to copy.": "Este curso enseña a los desarrolladores a construir sobre la Claude Developer Platform desde cero, tanto si has hecho algunas llamadas a la API como si solo has usado Claude a través de una ventana de chat. Empezamos desde los primeros principios: qué contiene una solicitud a la API, qué es un bucle de agente, cómo la ventana de contexto delimita lo que Claude puede ver y cómo las herramientas y los permisos deciden lo que puede hacer. Así, las técnicas posteriores del curso se asientan como comprensión y no como una lista de llamadas para copiar.",
99+
"You'll send your first request and read the response, then choose the right model for a job (Opus, Sonnet, or Haiku) and weigh the cost-and-latency trade-off on your own examples instead of guessing. From there you'll build the agent loop by hand to see how Claude acts, observes, and decides, then collapse that hand-written loop with the SDK's Tool Runner once you understand what it does for you. You'll give Claude reach through tool use, let it reason through hard problems with extended thinking, and keep spend predictable with workspaces, limits, and the Console Workbench.": "Enviarás tu primera solicitud y leerás la respuesta; luego elegirás el modelo adecuado para cada tarea (Opus, Sonnet o Haiku) y sopesarás el equilibrio entre costo y latencia con tus propios ejemplos en lugar de adivinar. Después construirás el bucle del agente a mano para ver cómo Claude actúa, observa y decide, y luego lo reemplazarás con el Tool Runner del SDK una vez que entiendas lo que hace por ti. Le darás alcance a Claude mediante el uso de herramientas, le permitirás razonar problemas difíciles con el pensamiento extendido y mantendrás el gasto predecible con espacios de trabajo, límites y el Console Workbench.",
100+
"The middle of the course extends an agent beyond your own code: Anthropic's built-in tools (web search, code execution, web fetch) that run on Anthropic's infrastructure, Skills that package a procedure once and reuse it across calls, MCP servers that connect Claude to third-party tools without writing a schema, and the context-management patterns that keep a long-running agent inside the window and affordable past turn ten.": "La parte central del curso extiende el agente más allá de tu propio código: las herramientas integradas de Anthropic (búsqueda web, ejecución de código, obtención de páginas web) que corren en la infraestructura de Anthropic, las Habilidades que empaquetan un procedimiento una vez y lo reutilizan entre llamadas, los servidores MCP que conectan Claude con herramientas de terceros sin escribir un esquema, y los patrones de gestión del contexto que mantienen a un agente de larga ejecución dentro de la ventana y asequible más allá del turno diez.",
101+
"The final section hands work off. You'll learn when to run your own loop and when to let Anthropic run a sandboxed, managed agent for you, then build one end to end, consuming the event stream as Anthropic runs the loop and reports back. A standalone lesson shows you how to build with the API using Claude Code itself, which is also why the rest of the course matters: you need to know what good code looks like to review what an agent writes for you. Every lesson ends with a runnable demo, so you finish each one with working code.": "La sección final delega el trabajo. Aprenderás cuándo ejecutar tu propio bucle y cuándo dejar que Anthropic ejecute por ti un agente gestionado y aislado en sandbox, y luego construirás uno de principio a fin, consumiendo el flujo de eventos mientras Anthropic ejecuta el bucle e informa. Una lección independiente muestra cómo construir con la API usando el propio Claude Code, que es también la razón por la que importa el resto del curso: necesitas saber cómo luce el buen código para revisar lo que un agente escribe por ti. Cada lección termina con una demo ejecutable, así que terminas cada una con código que funciona.",
95102
"Meet Claude": "Conoce a Claude",
96103
"What is Claude?": "¿Qué es Claude?",
97104
"Your first conversation with Claude": "Tu primera conversación con Claude",

0 commit comments

Comments
 (0)