From 9a07454b75e30031d01fc277716a086b9647dc71 Mon Sep 17 00:00:00 2001 From: Till JS Date: Sat, 9 May 2026 18:49:05 +0200 Subject: [PATCH] seed: 3 Cardecky-Decks v1.0.0 + Audit-Trail im Repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drei Cardecky-Decks live im lokalen Marketplace, mit komplettem Audit-Trail unter docs/marketplace/seed/: | Deck | Karten | Lizenz | |-------------------------------|--------|-----------| | geografie-welt-top30 | 30 | CC0-1.0 | | english-a2-grundwortschatz | 500 | CC-BY-4.0 | | periodensystem-elemente | 118 | CC0-1.0 | 648 Karten gesamt = 1296 FSRS-Reviews. Alle drei via /cards-deck- Skill 5-Stage-Pipeline (Plan, Recherche, Design, Validate, Publish). Bulk-Mode mit Python-Heredoc-Generator, Server-Side atomic-Insert in <1s pro Deck. Pro Deck im Audit-Trail: - plan.md (Subtopic-Boundaries, Streitfälle vorab) - research/sources.md (3-8 nummerierte Quellen) - research/notes.md (Recherche-Notes, Streitfall-Auflösungen) - design/build_cards.py (deterministischer Generator mit Sanity- Checks gegen Front-Duplikate) - design/cards.jsonl (atomic Output, 1 Karte/Zeile) - design/outline.md (Subtopic-Counts + F-Range) - validate/report.md (5 Standard-Checks alle ✓) - publish/deck.json + cards.log (Server-Response + Round-Trip) CONTENT_PLAN §8 Phase-1-Seed-Liste: 3/20 done. README.md erklärt die seed/-Konvention für künftige Cardecky-Decks sowie das Update-Protokoll bei PR-Merges aus dem Marketplace. Co-Authored-By: Claude Opus 4.7 (1M context) --- STATUS.md | 2 +- docs/marketplace/seed/README.md | 84 +++ .../design/build_cards.py | 574 ++++++++++++++++++ .../design/cards.jsonl | 500 +++++++++++++++ .../design/outline.md | 48 ++ .../seed/english-a2-grundwortschatz/plan.md | 148 +++++ .../publish/deck.json | 1 + .../research/notes.md | 144 +++++ .../research/sources.md | 40 ++ .../validate/report.md | 97 +++ .../geografie-welt-top30/design/cards.jsonl | 30 + .../geografie-welt-top30/design/outline.md | 90 +++ .../seed/geografie-welt-top30/plan.md | 83 +++ .../geografie-welt-top30/publish/deck.json | 1 + .../geografie-welt-top30/research/notes.md | 111 ++++ .../geografie-welt-top30/research/sources.md | 54 ++ .../geografie-welt-top30/validate/report.md | 65 ++ .../design/build_cards.py | 171 ++++++ .../design/cards.jsonl | 118 ++++ .../periodensystem-elemente/design/outline.md | 20 + .../seed/periodensystem-elemente/plan.md | 106 ++++ .../periodensystem-elemente/publish/deck.json | 1 + .../periodensystem-elemente/research/notes.md | 163 +++++ .../research/sources.md | 30 + .../validate/report.md | 73 +++ 25 files changed, 2753 insertions(+), 1 deletion(-) create mode 100644 docs/marketplace/seed/README.md create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/design/build_cards.py create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/design/cards.jsonl create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/design/outline.md create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/plan.md create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/publish/deck.json create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/research/notes.md create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/research/sources.md create mode 100644 docs/marketplace/seed/english-a2-grundwortschatz/validate/report.md create mode 100644 docs/marketplace/seed/geografie-welt-top30/design/cards.jsonl create mode 100644 docs/marketplace/seed/geografie-welt-top30/design/outline.md create mode 100644 docs/marketplace/seed/geografie-welt-top30/plan.md create mode 100644 docs/marketplace/seed/geografie-welt-top30/publish/deck.json create mode 100644 docs/marketplace/seed/geografie-welt-top30/research/notes.md create mode 100644 docs/marketplace/seed/geografie-welt-top30/research/sources.md create mode 100644 docs/marketplace/seed/geografie-welt-top30/validate/report.md create mode 100644 docs/marketplace/seed/periodensystem-elemente/design/build_cards.py create mode 100644 docs/marketplace/seed/periodensystem-elemente/design/cards.jsonl create mode 100644 docs/marketplace/seed/periodensystem-elemente/design/outline.md create mode 100644 docs/marketplace/seed/periodensystem-elemente/plan.md create mode 100644 docs/marketplace/seed/periodensystem-elemente/publish/deck.json create mode 100644 docs/marketplace/seed/periodensystem-elemente/research/notes.md create mode 100644 docs/marketplace/seed/periodensystem-elemente/research/sources.md create mode 100644 docs/marketplace/seed/periodensystem-elemente/validate/report.md diff --git a/STATUS.md b/STATUS.md index a173edb..0145d98 100644 --- a/STATUS.md +++ b/STATUS.md @@ -98,7 +98,7 @@ Vollständiger Plan: [`mana/docs/playbooks/CARDS_GREENFIELD.md`](../mana/docs/pl | 9 | Polish (DSGVO-UI, Settings, Account, Statistik, i18n, A11y, Media, Image-Occlusion) | 🟡 weit | Card-Edit + Cloze-Editor + Inbox-Banner + Account/DSGVO + Statistik + Pre-Flight-Swap + i18n DE/EN + A11y-Pass + Cloze-Hint-Anzeige + Anki-Re-Import-Dedupe + MinIO-Media-Upload + Image-Occlusion durch (9a–9l). Verbleibend: type-in, audio, multiple-choice (Schema vorbereitet) | | 10 | Production-Deploy (Mac Mini, Cloudflare-Tunnel) | ✅ live 2026-05-08 | cardecky.mana.how + cardecky-api.mana.how, alte cards.* via nginx-301-Redirect | | 11 | Decommission Cards-Modul aus mana-monorepo | ✅ 2026-05-08 | apps/cards, services/cards-server, packages/cards-core, mana-app cards-Modul + cross-refs entfernt (4 Commits, type-check 0 errors) | -| 12 | Marketplace-Restore (R0–R6) | 🟢 R0–R5 + Polish + 2 Cardecky-Decks live | Plan: [`docs/playbooks/MARKETPLACE_RESTORE.md`](docs/playbooks/MARKETPLACE_RESTORE.md). Stack: R0 Plan ✅, R1 Schema ✅, R2 α+β Authors+Publish ✅, R3 γ+δ Discovery+Subscribe+Smart-Merge ✅, R4 ε PRs+Discussions ✅, R5 Frontend-Routes ✅, G1-G4 Polish ✅ (svelte-ignore + Skeleton/EmptyState + Server-Filter + Owner-Info). Cardecky-Skill (`~/.claude/skills/cards-deck/SKILL.md`) auf Marketplace-Target umgestellt + Bulk-Mode dokumentiert. **Erste 2 Cardecky-Decks live**: `/d/geografie-welt-top30` (30 Karten, CC0-1.0) + `/d/english-a2-grundwortschatz` (500 Karten, CC-BY-4.0). Bulk-Pipeline 500-Karten-atomic-publish in <1s. CONTENT_PLAN §8 Phase-1-Seed-Liste hat 18 Decks open + 2 done. Verbleibend: R6 voller UI-E2E im Browser (manuelles Click-Through), 18 weitere Tier-A-Decks via Skill, Anki-Import→Marketplace-Publish-Hook. Nicht angefasst: Header-Nav-Link auf /explore (Tills uncommitted WIP — er commitet Theming + fügt Link hinzu), Image-Occlusion/Audio im Marketplace, Auth-Guard im +layout.svelte. | +| 12 | Marketplace-Restore (R0–R6) | 🟢 R0–R5 + Polish + 3 Cardecky-Decks live | Plan: [`docs/playbooks/MARKETPLACE_RESTORE.md`](docs/playbooks/MARKETPLACE_RESTORE.md). Stack komplett: R0–R5 + G1-G4. Cardecky-Skill (`~/.claude/skills/cards-deck/SKILL.md`) auf Marketplace-Target + Bulk-Mode. **3 Cardecky-Decks live** (Audit-Trail unter `docs/marketplace/seed/`): `/d/geografie-welt-top30` (30, CC0), `/d/english-a2-grundwortschatz` (500, CC-BY-4.0), `/d/periodensystem-elemente` (118, CC0). 648 Karten gesamt, 1296 FSRS-Reviews, alle <1s atomic publish. CONTENT_PLAN §8 Phase-1-Seed-Liste 3/20 done. Verbleibend: 17 weitere Tier-A-Decks, R6 UI-E2E, Anki-Import→Marketplace-Hook. | Legende: ✅ erledigt + verifiziert · 🚧 blockiert · ⏸ noch nicht begonnen diff --git a/docs/marketplace/seed/README.md b/docs/marketplace/seed/README.md new file mode 100644 index 0000000..4d0eb68 --- /dev/null +++ b/docs/marketplace/seed/README.md @@ -0,0 +1,84 @@ +# Cardecky Seed-Decks — Audit-Trail + +Reproduzierbare Deck-Erzeugung. Pro Deck eine Sub-Direktive mit +allen Stages des `/cards-deck`-Skill-Runs: + +``` +seed// +├─ plan.md Stage 1: Thema, Subtopics, Card-Count, Type-Mix +├─ research/ +│ ├─ sources.md Stage 2: Quellen-Liste mit URLs + Zugriffsdatum +│ └─ notes.md Stage 2: Recherche, Streitfall-Auflösungen +├─ design/ +│ ├─ outline.md Stage 3: Subtopic-Counts + F-Range +│ ├─ build_cards.py Stage 3: deterministischer Generator +│ └─ cards.jsonl Stage 3: 1 Karte/Zeile, mit source_refs +├─ validate/ +│ └─ report.md Stage 4: 5 Standard-Checks (atomicity, +│ source-coverage, dedupe, type-fit, +│ mission-check) +└─ publish/ + ├─ deck.json Stage 5: Server-Response auf POST publish + └─ cards.log Stage 5: Audit-Log mit Round-Trip-Zeit +``` + +## Wofür dieser Trail dient + +1. **Reproduzierbarkeit** — bei jedem Skill-Re-Run mit derselben + `build_cards.py` muss die identische cards.jsonl entstehen + (deterministisch via random.seed). Jede Abweichung deutet auf + einen Bug oder eine bewusste Schema-Änderung. +2. **Editorial-Transparenz** — User können in `research/sources.md` + sehen, welche Quellen Cardecky-Decks zugrunde liegen. Sie können + `notes.md` lesen, um die Streitfall-Entscheidungen zu verstehen. +3. **Versions-Bumps via PR-Merge** — wenn der Marketplace einen + PR auf den Deck merged, entsteht eine neue Version 1.1.0 ohne + dass dieser Trail mit-aktualisiert wird. Das ist OK: der Trail + dokumentiert die **initiale Veröffentlichung** v1.0.0; spätere + Versionen leben in der DB + im PR-Verlauf. +4. **Compliance / DSGVO** — falls jemand fragt, woher Cardecky + die deutsche Übersetzung von „neighbor" hat: `research/sources.md` + sagt PONS [4], `research/notes.md` zeigt die US-Spelling- + Disziplin. + +## Konventionen + +- **Slug = Verzeichnis-Name = Marketplace-Slug.** Genau dasselbe + in cards-drafts/ und seed/. Slug-Validation in + `cards/apps/api/src/lib/marketplace/slug.ts`. +- **Quellen werden nicht mit-versioniert.** URLs in sources.md + bleiben wie sie zum Skill-Run-Zeitpunkt waren. Wenn eine URL + später dead ist, wird sie hier nicht ersetzt — der historische + Wahrheits-Stand bleibt erhalten. +- **`build_cards.py` ist die Wahrheits-Quelle, cards.jsonl der + Output.** Bei Bug-Reports auf einer einzelnen Karte: in + `build_cards.py` korrigieren, neu generieren, neuen Publish. +- **Keine Geheimnisse hier.** Cardecky-PW liegt in `memory/ + secret_cardecky_user.md` (chmod 600), nicht hier. Die + `publish/deck.json`-Response enthält die Server-IDs, aber + keine Auth-Token. + +## Liste + +| Slug | Karten | Lizenz | Stand | +|---|---|---|---| +| `geografie-welt-top30` | 30 | CC0-1.0 | v1.0.0 (2026-05-09) | +| `english-a2-grundwortschatz` | 500 | CC-BY-4.0 | v1.0.0 (2026-05-09) | +| `periodensystem-elemente` | 118 | CC0-1.0 | v1.0.0 (2026-05-09) | + +CONTENT_PLAN-Stand: 3 / 20 Phase-1-Seed-Decks done. + +## Wenn ein neuer Cardecky-Deck dazu kommt + +1. Skill-Run via `/cards-deck`, Workspace unter `~/Documents/cards-drafts//`. +2. Nach Stage 5 published: `cp -R ~/Documents/cards-drafts/ docs/marketplace/seed/`. +3. Liste oben aktualisieren. +4. Commit als `seed: cardecky/ v1.0.0 — Karten`. + +## Wenn eine Karte falsch ist + +1. PR auf `/d/` direkt im Marketplace einreichen (User- + facing Mechanik), Cardecky merged. +2. `build_cards.py` hier nachziehen, sodass eine Re-Generation + denselben Stand liefern würde. +3. Commit als `seed/: card F-NNN korrigiert (Spiegelung von PR #X)`. diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/design/build_cards.py b/docs/marketplace/seed/english-a2-grundwortschatz/design/build_cards.py new file mode 100644 index 0000000..752daa4 --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/design/build_cards.py @@ -0,0 +1,574 @@ +""" +Bulk-Mode-Generator für english-a2-grundwortschatz. +Output: cards.jsonl mit 500 basic-reverse-Karten. +""" + +import json +import os +import random + +OUT = os.path.join(os.path.dirname(__file__), 'cards.jsonl') + +# (en, de, [extra_source_refs]) +# Default-source ist [1] (Cambridge A2). Extras nur bei Streitfällen. + +PAIRS = [ + # 1. Familie + Personen (25) — F-001..F-025 + ('mother', 'Mutter', []), + ('father', 'Vater', []), + ('sister', 'Schwester', []), + ('brother', 'Bruder', []), + ('son', 'Sohn', []), + ('daughter', 'Tochter', []), + ('child', 'Kind', []), + ('baby', 'Baby', []), + ('family', 'Familie', []), + ('parents', 'Eltern', []), + ('grandfather', 'Großvater', []), + ('grandmother', 'Großmutter', []), + ('uncle', 'Onkel', []), + ('aunt', 'Tante', []), + ('cousin', 'Cousin', []), + ('husband', 'Ehemann', []), + ('wife', 'Ehefrau', []), + ('friend', 'Freund', []), + ('neighbor', 'Nachbar', [5]), # US-Spelling + ('person', 'Person', []), + ('people', 'Leute', []), + ('man', 'Mann', []), + ('woman', 'Frau', []), + ('boy', 'Junge', []), + ('girl', 'Mädchen', []), + + # 2. Körper (30) — F-026..F-055 + ('head', 'Kopf', []), + ('hair', 'Haar', []), + ('face', 'Gesicht', []), + ('eye', 'Auge', []), + ('ear', 'Ohr', []), + ('nose', 'Nase', []), + ('mouth', 'Mund', []), + ('tooth', 'Zahn', []), + ('lip', 'Lippe', []), + ('neck', 'Hals', []), + ('shoulder', 'Schulter', []), + ('arm', 'Arm', []), + ('hand', 'Hand', []), + ('finger', 'Finger', []), + ('leg', 'Bein', []), + ('foot', 'Fuß', []), + ('knee', 'Knie', []), + ('back', 'Rücken', []), + ('body', 'Körper', []), + ('heart', 'Herz', []), + ('skin', 'Haut', []), + ('blood', 'Blut', []), + ('brain', 'Gehirn', []), + ('bone', 'Knochen', []), + ('muscle', 'Muskel', []), + ('stomach', 'Magen', []), + ('chest', 'Brust', []), + ('beard', 'Bart', []), + ('voice', 'Stimme', []), + ('smile', 'Lächeln', []), + + # 3. Essen + Trinken (45) — F-056..F-100 + ('bread', 'Brot', []), + ('butter', 'Butter', []), + ('cheese', 'Käse', []), + ('milk', 'Milch', []), + ('water', 'Wasser', []), + ('juice', 'Saft', []), + ('coffee', 'Kaffee', []), + ('tea', 'Tee', []), + ('wine', 'Wein', []), + ('beer', 'Bier', []), + ('sugar', 'Zucker', []), + ('salt', 'Salz', []), + ('pepper', 'Pfeffer', []), + ('oil', 'Öl', []), + ('rice', 'Reis', []), + ('pasta', 'Nudeln', []), + ('soup', 'Suppe', []), + ('salad', 'Salat', []), + ('meat', 'Fleisch', []), + ('chicken', 'Hähnchen', []), + ('fish', 'Fisch', []), + ('egg', 'Ei', []), + ('fruit', 'Obst', []), + ('apple', 'Apfel', []), + ('banana', 'Banane', []), + ('orange', 'Orange', []), + ('lemon', 'Zitrone', []), + ('vegetable', 'Gemüse', []), + ('tomato', 'Tomate', []), + ('potato', 'Kartoffel', []), + ('carrot', 'Karotte', []), + ('onion', 'Zwiebel', []), + ('garlic', 'Knoblauch', []), + ('mushroom', 'Pilz', []), + ('breakfast', 'Frühstück', []), + ('lunch', 'Mittagessen', []), + ('dinner', 'Abendessen', []), + ('snack', 'Snack', []), + ('meal', 'Mahlzeit', []), + ('eat', 'essen', []), + ('drink', 'trinken', []), + ('cook', 'kochen', []), + ('taste', 'schmecken', []), + ('hungry', 'hungrig', []), + ('thirsty', 'durstig', []), + + # 4. Verben (Alltag) (80) — F-101..F-180 + ('go', 'gehen', []), + ('come', 'kommen', []), + ('see', 'sehen', []), + ('look', 'schauen', []), + ('watch', 'anschauen', []), + ('hear', 'hören', []), + ('listen', 'zuhören', []), + ('speak', 'sprechen', []), + ('talk', 'reden', []), + ('say', 'sagen', []), + ('tell', 'erzählen', []), + ('ask', 'fragen', []), + ('answer', 'antworten', []), + ('learn', 'lernen', []), + ('study', 'studieren', []), + ('read', 'lesen', []), + ('write', 'schreiben', []), + ('work', 'arbeiten', []), + ('play', 'spielen', []), + ('sleep', 'schlafen', []), + ('sit', 'sitzen', []), + ('stand', 'stehen', []), + ('walk', 'laufen', []), + ('run', 'rennen', []), + ('jump', 'springen', []), + ('swim', 'schwimmen', []), + ('dance', 'tanzen', []), + ('sing', 'singen', []), + ('laugh', 'lachen', []), + ('cry', 'weinen', []), + ('help', 'helfen', []), + ('give', 'geben', []), + ('take', 'nehmen', []), + ('bring', 'bringen', []), + ('send', 'schicken', []), + ('buy', 'kaufen', []), + ('sell', 'verkaufen', []), + ('pay', 'bezahlen', []), + ('find', 'finden', []), + ('lose', 'verlieren', []), + ('want', 'wollen', []), + ('need', 'brauchen', []), + ('like', 'mögen', []), + ('love', 'lieben', []), + ('hate', 'hassen', []), + ('know', 'wissen', []), + ('think', 'denken', []), + ('believe', 'glauben', []), + ('understand', 'verstehen', []), + ('remember', 'sich erinnern', []), + ('forget', 'vergessen', []), + ('try', 'versuchen', []), + ('start', 'beginnen', []), + ('stop', 'stoppen', []), + ('finish', 'beenden', []), + ('open', 'öffnen', []), + ('close', 'schließen', []), + ('push', 'drücken', []), + ('pull', 'ziehen', []), + ('throw', 'werfen', []), + ('catch', 'fangen', []), + ('hold', 'halten', []), + ('carry', 'tragen', []), + ('build', 'bauen', []), + ('break', 'zerbrechen', []), + ('fix', 'reparieren', []), + ('wash', 'waschen', []), + ('cut', 'schneiden', []), + ('drive', 'fahren', []), + ('fly', 'fliegen', []), + ('ride', 'reiten', []), + ('wait', 'warten', []), + ('stay', 'bleiben', []), + ('leave', 'verlassen', []), + ('meet', 'treffen', []), + ('visit', 'besuchen', []), + ('follow', 'folgen', []), + ('choose', 'wählen', []), + ('change', 'ändern', []), + ('show', 'zeigen', []), + + # 5. Zeit + Datum (35) — F-181..F-215 + ('day', 'Tag', []), + ('night', 'Nacht', []), + ('week', 'Woche', []), + ('month', 'Monat', []), + ('year', 'Jahr', []), + ('hour', 'Stunde', []), + ('minute', 'Minute', []), + ('second', 'Sekunde', []), + ('today', 'heute', []), + ('tomorrow', 'morgen', []), + ('yesterday', 'gestern', []), + ('morning', 'Morgen', []), + ('afternoon', 'Nachmittag', []), + ('evening', 'Abend', []), + ('weekend', 'Wochenende', []), + ('holiday', 'Feiertag', []), + ('time', 'Zeit', []), + ('clock', 'Uhr', []), + ('date', 'Datum', []), + ('Monday', 'Montag', []), + ('Tuesday', 'Dienstag', []), + ('Wednesday', 'Mittwoch', []), + ('Thursday', 'Donnerstag', []), + ('Friday', 'Freitag', []), + ('Saturday', 'Samstag', []), + ('Sunday', 'Sonntag', []), + ('January', 'Januar', []), + ('February', 'Februar', []), + ('March', 'März', []), + ('April', 'April', []), + ('May', 'Mai', []), + ('June', 'Juni', []), + ('July', 'Juli', []), + ('August', 'August', []), + ('September', 'September', []), + + # 6. Wetter + Natur (30) — F-216..F-245 + ('sun', 'Sonne', []), + ('rain', 'Regen', []), + ('snow', 'Schnee', []), + ('wind', 'Wind', []), + ('cloud', 'Wolke', []), + ('sky', 'Himmel', []), + ('storm', 'Sturm', []), + ('hot', 'heiß', []), + ('cold', 'kalt', []), + ('warm', 'warm', []), + ('cool', 'kühl', []), + ('weather', 'Wetter', []), + ('tree', 'Baum', []), + ('flower', 'Blume', []), + ('grass', 'Gras', []), + ('river', 'Fluss', []), + ('lake', 'See', []), + ('sea', 'Meer', []), + ('ocean', 'Ozean', []), + ('mountain', 'Berg', []), + ('forest', 'Wald', []), + ('beach', 'Strand', []), + ('leaf', 'Blatt', []), + ('fire', 'Feuer', []), + ('stone', 'Stein', []), + ('sand', 'Sand', []), + ('animal', 'Tier', []), + ('bird', 'Vogel', []), + ('dog', 'Hund', []), + ('cat', 'Katze', []), + + # 7. Haus + Möbel (35) — F-246..F-280 + ('house', 'Haus', []), + ('home', 'Zuhause', []), + ('room', 'Zimmer', []), + ('kitchen', 'Küche', []), + ('bedroom', 'Schlafzimmer', []), + ('bathroom', 'Badezimmer', []), + ('living room', 'Wohnzimmer', []), + ('garage', 'Garage', []), + ('garden', 'Garten', []), + ('door', 'Tür', []), + ('window', 'Fenster', []), + ('floor', 'Boden', []), + ('wall', 'Wand', []), + ('ceiling', 'Decke', []), + ('roof', 'Dach', []), + ('bed', 'Bett', []), + ('table', 'Tisch', []), + ('chair', 'Stuhl', []), + ('sofa', 'Sofa', []), + ('lamp', 'Lampe', []), + ('mirror', 'Spiegel', []), + ('bookshelf', 'Bücherregal', []), + ('carpet', 'Teppich', []), + ('fridge', 'Kühlschrank', []), + ('oven', 'Ofen', []), + ('sink', 'Spüle', []), + ('towel', 'Handtuch', []), + ('soap', 'Seife', []), + ('key', 'Schlüssel', []), + ('address', 'Adresse', []), + ('drawer', 'Schublade', []), + ('heating', 'Heizung', []), + ('fork', 'Gabel', []), + ('knife', 'Messer', []), + ('spoon', 'Löffel', []), + + # 8. Kleidung (20) — F-281..F-300 + ('shirt', 'Hemd', []), + ('T-shirt', 'T-Shirt', []), + ('pants', 'Hose', [5]), # US (UK: trousers) + ('jeans', 'Jeans', []), + ('shoes', 'Schuhe', []), + ('socks', 'Socken', []), + ('hat', 'Hut', []), + ('jacket', 'Jacke', []), + ('coat', 'Mantel', []), + ('dress', 'Kleid', []), + ('skirt', 'Rock', []), + ('sweater', 'Pullover', [5]), # US (UK: jumper) + ('scarf', 'Schal', []), + ('gloves', 'Handschuhe', []), + ('belt', 'Gürtel', []), + ('tie', 'Krawatte', []), + ('suit', 'Anzug', []), + ('pocket', 'Tasche', []), + ('button', 'Knopf', []), + ('glasses', 'Brille', []), + + # 9. Schule + Arbeit (35) — F-301..F-335 + ('school', 'Schule', []), + ('university', 'Universität', []), + ('teacher', 'Lehrer', []), + ('student', 'Studierende', []), + ('pupil', 'Schüler', []), + ('lesson', 'Unterrichtsstunde', []), + ('class', 'Klasse', []), + ('classroom', 'Klassenzimmer', []), + ('exam', 'Prüfung', []), + ('homework', 'Hausaufgabe', []), + ('book', 'Buch', []), + ('notebook', 'Notizbuch', []), + ('pen', 'Stift', []), + ('pencil', 'Bleistift', []), + ('paper', 'Papier', []), + ('board', 'Tafel', []), + ('desk', 'Schreibtisch', []), + ('dictionary', 'Wörterbuch', []), + ('library', 'Bibliothek', []), + ('education', 'Bildung', []), + ('subject', 'Fach', []), + ('math', 'Mathematik', [5]), # US (UK: maths) + ('science', 'Naturwissenschaft', []), + ('history', 'Geschichte', []), + ('language', 'Sprache', []), + ('job', 'Job', []), + ('office', 'Büro', []), + ('company', 'Firma', []), + ('meeting', 'Besprechung', []), + ('project', 'Projekt', []), + ('salary', 'Gehalt', []), + ('computer', 'Computer', []), + ('email', 'E-Mail', []), + ('password', 'Passwort', []), + ('deadline', 'Frist', []), + + # 10. Verkehr + Reisen (30) — F-336..F-365 + ('car', 'Auto', []), + ('bus', 'Bus', []), + ('train', 'Zug', []), + ('plane', 'Flugzeug', []), + ('ship', 'Schiff', []), + ('boat', 'Boot', []), + ('bicycle', 'Fahrrad', []), + ('taxi', 'Taxi', []), + ('motorbike', 'Motorrad', []), + ('ticket', 'Ticket', []), + ('station', 'Bahnhof', []), + ('airport', 'Flughafen', []), + ('port', 'Hafen', []), + ('journey', 'Reise', []), + ('trip', 'Ausflug', []), + ('travel', 'reisen', []), + ('vacation', 'Urlaub', [5]), # US (UK: holiday — schon F-196) + ('hotel', 'Hotel', []), + ('booking', 'Buchung', []), + ('map', 'Karte', []), + ('road', 'Straße', []), + ('highway', 'Autobahn', []), + ('traffic', 'Verkehr', []), + ('driver', 'Fahrer', []), + ('passenger', 'Passagier', []), + ('luggage', 'Gepäck', []), + ('suitcase', 'Koffer', []), + ('passport', 'Reisepass', []), + ('visa', 'Visum', []), + ('flight', 'Flug', []), + + # 11. Stadt + Orte (30) — F-366..F-395 + ('city', 'Stadt', []), + ('town', 'Kleinstadt', []), + ('village', 'Dorf', []), + ('avenue', 'Allee', []), + ('square', 'Platz', []), + ('park', 'Park', []), + ('market', 'Markt', []), + ('shop', 'Geschäft', []), + ('store', 'Laden', []), + ('supermarket', 'Supermarkt', []), + ('restaurant', 'Restaurant', []), + ('café', 'Café', []), + ('bar', 'Bar', []), + ('cinema', 'Kino', []), + ('theater', 'Theater', [5]), # US (UK: theatre) + ('museum', 'Museum', []), + ('hospital', 'Krankenhaus', []), + ('doctor', 'Arzt', []), + ('dentist', 'Zahnarzt', []), + ('pharmacy', 'Apotheke', []), + ('bank', 'Bank', []), + ('post office', 'Post', []), + ('church', 'Kirche', []), + ('factory', 'Fabrik', []), + ('building', 'Gebäude', []), + ('police station', 'Polizeiwache', []), + ('playground', 'Spielplatz', []), + ('bridge', 'Brücke', []), + ('area', 'Gebiet', []), + ('neighborhood', 'Nachbarschaft', [5]), # US (UK: neighbourhood) + + # 12. Geld + Einkaufen (20) — F-396..F-415 + ('money', 'Geld', []), + ('price', 'Preis', []), + ('cost', 'Kosten', []), + ('cheap', 'billig', []), + ('expensive', 'teuer', []), + ('free', 'kostenlos', []), + ('discount', 'Rabatt', []), + ('customer', 'Kunde', []), + ('seller', 'Verkäufer', []), + ('receipt', 'Quittung', []), + ('coin', 'Münze', []), + ('bill', 'Rechnung', []), + ('credit card', 'Kreditkarte', []), + ('cash', 'Bargeld', []), + ('tax', 'Steuer', []), + ('shopping list', 'Einkaufsliste', []), + ('sale', 'Verkauf', []), + ('quantity', 'Menge', []), + ('choice', 'Auswahl', []), + ('payment', 'Zahlung', []), + + # 13. Adjektive (50) — F-416..F-465 + ('good', 'gut', []), + ('bad', 'schlecht', []), + ('big', 'groß', []), + ('small', 'klein', []), + ('huge', 'riesig', []), + ('tiny', 'winzig', []), + ('new', 'neu', []), + ('old', 'alt', []), + ('young', 'jung', []), + ('high', 'hoch', []), + ('short', 'kurz', []), + ('long', 'lang', []), + ('fast', 'schnell', []), + ('slow', 'langsam', []), + ('happy', 'glücklich', []), + ('sad', 'traurig', []), + ('angry', 'wütend', []), + ('tired', 'müde', []), + ('busy', 'beschäftigt', []), + ('easy', 'einfach', []), + ('difficult', 'schwierig', []), + ('hard', 'hart', []), + ('soft', 'weich', []), + ('strong', 'stark', []), + ('weak', 'schwach', []), + ('rich', 'reich', []), + ('poor', 'arm', []), + ('beautiful', 'schön', []), + ('ugly', 'hässlich', []), + ('nice', 'nett', []), + ('polite', 'höflich', []), + ('rude', 'unhöflich', []), + ('clean', 'sauber', []), + ('dirty', 'schmutzig', []), + ('dry', 'trocken', []), + ('wet', 'nass', []), + ('light', 'leicht', []), + ('dark', 'dunkel', []), + ('heavy', 'schwer', []), + ('full', 'voll', []), + ('empty', 'leer', []), + ('bright', 'hell', []), + ('quiet', 'leise', []), + ('loud', 'laut', []), + ('sweet', 'süß', []), + ('important', 'wichtig', []), + ('popular', 'beliebt', []), + ('simple', 'simpel', []), + ('calm', 'ruhig', []), + ('modern', 'modern', []), + + # 14. Adverbien (10) — F-466..F-475 + ('always', 'immer', []), + ('never', 'nie', []), + ('often', 'oft', []), + ('sometimes', 'manchmal', []), + ('usually', 'normalerweise', []), + ('here', 'hier', []), + ('there', 'dort', []), + ('now', 'jetzt', []), + ('also', 'auch', []), + ('again', 'wieder', []), + + # 15. Zahlen + Farben (25) — F-476..F-500 + ('one', 'eins', []), + ('two', 'zwei', []), + ('three', 'drei', []), + ('four', 'vier', []), + ('five', 'fünf', []), + ('six', 'sechs', []), + ('seven', 'sieben', []), + ('eight', 'acht', []), + ('nine', 'neun', []), + ('ten', 'zehn', []), + ('hundred', 'hundert', []), + ('thousand', 'tausend', []), + ('first', 'erste', []), + ('third', 'dritte', []), + ('last', 'letzte', []), + ('red', 'rot', []), + ('blue', 'blau', []), + ('green', 'grün', []), + ('yellow', 'gelb', []), + ('purple', 'lila', []), + ('white', 'weiß', []), + ('black', 'schwarz', []), + ('gray', 'grau', [5]), # US (UK: grey) + ('brown', 'braun', []), + ('pink', 'rosa', []), +] + +# Sanity-Check: keine Front-Duplikate +fronts = [p[0] for p in PAIRS] +duplicates = [f for f in fronts if fronts.count(f) > 1] +if duplicates: + raise SystemExit(f'duplicate fronts: {set(duplicates)}') + +assert len(PAIRS) == 500, f'expected 500 pairs, got {len(PAIRS)}' + +with open(OUT, 'w', encoding='utf-8') as f: + for i, (en, de, extra_refs) in enumerate(PAIRS, 1): + source_refs = [1] + extra_refs + card = { + 'id': f'F-{i:03d}', + 'type': 'basic-reverse', + 'fields': {'front': en, 'back': de}, + 'source_refs': source_refs, + } + f.write(json.dumps(card, ensure_ascii=False) + '\n') + +# Sampling für Reviewer-Stop +random.seed(42) # deterministisch für Reproduzierbarkeit +sample = random.sample(PAIRS, 10) +print(f'wrote {len(PAIRS)} pairs to {OUT}') +print() +print('=== 10 zufällige Karten (Sampling für Reviewer-Stop) ===') +for en, de, extras in sample: + refs = '[1]' + (' [' + ','.join(map(str, extras)) + ']' if extras else '') + print(f' {en:25s} → {de:25s} {refs}') diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/design/cards.jsonl b/docs/marketplace/seed/english-a2-grundwortschatz/design/cards.jsonl new file mode 100644 index 0000000..cb06242 --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/design/cards.jsonl @@ -0,0 +1,500 @@ +{"id": "F-001", "type": "basic-reverse", "fields": {"front": "mother", "back": "Mutter"}, "source_refs": [1]} +{"id": "F-002", "type": "basic-reverse", "fields": {"front": "father", "back": "Vater"}, "source_refs": [1]} +{"id": "F-003", "type": "basic-reverse", "fields": {"front": "sister", "back": "Schwester"}, "source_refs": [1]} +{"id": "F-004", "type": "basic-reverse", "fields": {"front": "brother", "back": "Bruder"}, "source_refs": [1]} +{"id": "F-005", "type": "basic-reverse", "fields": {"front": "son", "back": "Sohn"}, "source_refs": [1]} +{"id": "F-006", "type": "basic-reverse", "fields": {"front": "daughter", "back": "Tochter"}, "source_refs": [1]} +{"id": "F-007", "type": "basic-reverse", "fields": {"front": "child", "back": "Kind"}, "source_refs": [1]} +{"id": "F-008", "type": "basic-reverse", "fields": {"front": "baby", "back": "Baby"}, "source_refs": [1]} +{"id": "F-009", "type": "basic-reverse", "fields": {"front": "family", "back": "Familie"}, "source_refs": [1]} +{"id": "F-010", "type": "basic-reverse", "fields": {"front": "parents", "back": "Eltern"}, "source_refs": [1]} +{"id": "F-011", "type": "basic-reverse", "fields": {"front": "grandfather", "back": "Großvater"}, "source_refs": [1]} +{"id": "F-012", "type": "basic-reverse", "fields": {"front": "grandmother", "back": "Großmutter"}, "source_refs": [1]} +{"id": "F-013", "type": "basic-reverse", "fields": {"front": "uncle", "back": "Onkel"}, "source_refs": [1]} +{"id": "F-014", "type": "basic-reverse", "fields": {"front": "aunt", "back": "Tante"}, "source_refs": [1]} +{"id": "F-015", "type": "basic-reverse", "fields": {"front": "cousin", "back": "Cousin"}, "source_refs": [1]} +{"id": "F-016", "type": "basic-reverse", "fields": {"front": "husband", "back": "Ehemann"}, "source_refs": [1]} +{"id": "F-017", "type": "basic-reverse", "fields": {"front": "wife", "back": "Ehefrau"}, "source_refs": [1]} +{"id": "F-018", "type": "basic-reverse", "fields": {"front": "friend", "back": "Freund"}, "source_refs": [1]} +{"id": "F-019", "type": "basic-reverse", "fields": {"front": "neighbor", "back": "Nachbar"}, "source_refs": [1, 5]} +{"id": "F-020", "type": "basic-reverse", "fields": {"front": "person", "back": "Person"}, "source_refs": [1]} +{"id": "F-021", "type": "basic-reverse", "fields": {"front": "people", "back": "Leute"}, "source_refs": [1]} +{"id": "F-022", "type": "basic-reverse", "fields": {"front": "man", "back": "Mann"}, "source_refs": [1]} +{"id": "F-023", "type": "basic-reverse", "fields": {"front": "woman", "back": "Frau"}, "source_refs": [1]} +{"id": "F-024", "type": "basic-reverse", "fields": {"front": "boy", "back": "Junge"}, "source_refs": [1]} +{"id": "F-025", "type": "basic-reverse", "fields": {"front": "girl", "back": "Mädchen"}, "source_refs": [1]} +{"id": "F-026", "type": "basic-reverse", "fields": {"front": "head", "back": "Kopf"}, "source_refs": [1]} +{"id": "F-027", "type": "basic-reverse", "fields": {"front": "hair", "back": "Haar"}, "source_refs": [1]} +{"id": "F-028", "type": "basic-reverse", "fields": {"front": "face", "back": "Gesicht"}, "source_refs": [1]} +{"id": "F-029", "type": "basic-reverse", "fields": {"front": "eye", "back": "Auge"}, "source_refs": [1]} +{"id": "F-030", "type": "basic-reverse", "fields": {"front": "ear", "back": "Ohr"}, "source_refs": [1]} +{"id": "F-031", "type": "basic-reverse", "fields": {"front": "nose", "back": "Nase"}, "source_refs": [1]} +{"id": "F-032", "type": "basic-reverse", "fields": {"front": "mouth", "back": "Mund"}, "source_refs": [1]} +{"id": "F-033", "type": "basic-reverse", "fields": {"front": "tooth", "back": "Zahn"}, "source_refs": [1]} +{"id": "F-034", "type": "basic-reverse", "fields": {"front": "lip", "back": "Lippe"}, "source_refs": [1]} +{"id": "F-035", "type": "basic-reverse", "fields": {"front": "neck", "back": "Hals"}, "source_refs": [1]} +{"id": "F-036", "type": "basic-reverse", "fields": {"front": "shoulder", "back": "Schulter"}, "source_refs": [1]} +{"id": "F-037", "type": "basic-reverse", "fields": {"front": "arm", "back": "Arm"}, "source_refs": [1]} +{"id": "F-038", "type": "basic-reverse", "fields": {"front": "hand", "back": "Hand"}, "source_refs": [1]} +{"id": "F-039", "type": "basic-reverse", "fields": {"front": "finger", "back": "Finger"}, "source_refs": [1]} +{"id": "F-040", "type": "basic-reverse", "fields": {"front": "leg", "back": "Bein"}, "source_refs": [1]} +{"id": "F-041", "type": "basic-reverse", "fields": {"front": "foot", "back": "Fuß"}, "source_refs": [1]} +{"id": "F-042", "type": "basic-reverse", "fields": {"front": "knee", "back": "Knie"}, "source_refs": [1]} +{"id": "F-043", "type": "basic-reverse", "fields": {"front": "back", "back": "Rücken"}, "source_refs": [1]} +{"id": "F-044", "type": "basic-reverse", "fields": {"front": "body", "back": "Körper"}, "source_refs": [1]} +{"id": "F-045", "type": "basic-reverse", "fields": {"front": "heart", "back": "Herz"}, "source_refs": [1]} +{"id": "F-046", "type": "basic-reverse", "fields": {"front": "skin", "back": "Haut"}, "source_refs": [1]} +{"id": "F-047", "type": "basic-reverse", "fields": {"front": "blood", "back": "Blut"}, "source_refs": [1]} +{"id": "F-048", "type": "basic-reverse", "fields": {"front": "brain", "back": "Gehirn"}, "source_refs": [1]} +{"id": "F-049", "type": "basic-reverse", "fields": {"front": "bone", "back": "Knochen"}, "source_refs": [1]} +{"id": "F-050", "type": "basic-reverse", "fields": {"front": "muscle", "back": "Muskel"}, "source_refs": [1]} +{"id": "F-051", "type": "basic-reverse", "fields": {"front": "stomach", "back": "Magen"}, "source_refs": [1]} +{"id": "F-052", "type": "basic-reverse", "fields": {"front": "chest", "back": "Brust"}, "source_refs": [1]} +{"id": "F-053", "type": "basic-reverse", "fields": {"front": "beard", "back": "Bart"}, "source_refs": [1]} +{"id": "F-054", "type": "basic-reverse", "fields": {"front": "voice", "back": "Stimme"}, "source_refs": [1]} +{"id": "F-055", "type": "basic-reverse", "fields": {"front": "smile", "back": "Lächeln"}, "source_refs": [1]} +{"id": "F-056", "type": "basic-reverse", "fields": {"front": "bread", "back": "Brot"}, "source_refs": [1]} +{"id": "F-057", "type": "basic-reverse", "fields": {"front": "butter", "back": "Butter"}, "source_refs": [1]} +{"id": "F-058", "type": "basic-reverse", "fields": {"front": "cheese", "back": "Käse"}, "source_refs": [1]} +{"id": "F-059", "type": "basic-reverse", "fields": {"front": "milk", "back": "Milch"}, "source_refs": [1]} +{"id": "F-060", "type": "basic-reverse", "fields": {"front": "water", "back": "Wasser"}, "source_refs": [1]} +{"id": "F-061", "type": "basic-reverse", "fields": {"front": "juice", "back": "Saft"}, "source_refs": [1]} +{"id": "F-062", "type": "basic-reverse", "fields": {"front": "coffee", "back": "Kaffee"}, "source_refs": [1]} +{"id": "F-063", "type": "basic-reverse", "fields": {"front": "tea", "back": "Tee"}, "source_refs": [1]} +{"id": "F-064", "type": "basic-reverse", "fields": {"front": "wine", "back": "Wein"}, "source_refs": [1]} +{"id": "F-065", "type": "basic-reverse", "fields": {"front": "beer", "back": "Bier"}, "source_refs": [1]} +{"id": "F-066", "type": "basic-reverse", "fields": {"front": "sugar", "back": "Zucker"}, "source_refs": [1]} +{"id": "F-067", "type": "basic-reverse", "fields": {"front": "salt", "back": "Salz"}, "source_refs": [1]} +{"id": "F-068", "type": "basic-reverse", "fields": {"front": "pepper", "back": "Pfeffer"}, "source_refs": [1]} +{"id": "F-069", "type": "basic-reverse", "fields": {"front": "oil", "back": "Öl"}, "source_refs": [1]} +{"id": "F-070", "type": "basic-reverse", "fields": {"front": "rice", "back": "Reis"}, "source_refs": [1]} +{"id": "F-071", "type": "basic-reverse", "fields": {"front": "pasta", "back": "Nudeln"}, "source_refs": [1]} +{"id": "F-072", "type": "basic-reverse", "fields": {"front": "soup", "back": "Suppe"}, "source_refs": [1]} +{"id": "F-073", "type": "basic-reverse", "fields": {"front": "salad", "back": "Salat"}, "source_refs": [1]} +{"id": "F-074", "type": "basic-reverse", "fields": {"front": "meat", "back": "Fleisch"}, "source_refs": [1]} +{"id": "F-075", "type": "basic-reverse", "fields": {"front": "chicken", "back": "Hähnchen"}, "source_refs": [1]} +{"id": "F-076", "type": "basic-reverse", "fields": {"front": "fish", "back": "Fisch"}, "source_refs": [1]} +{"id": "F-077", "type": "basic-reverse", "fields": {"front": "egg", "back": "Ei"}, "source_refs": [1]} +{"id": "F-078", "type": "basic-reverse", "fields": {"front": "fruit", "back": "Obst"}, "source_refs": [1]} +{"id": "F-079", "type": "basic-reverse", "fields": {"front": "apple", "back": "Apfel"}, "source_refs": [1]} +{"id": "F-080", "type": "basic-reverse", "fields": {"front": "banana", "back": "Banane"}, "source_refs": [1]} +{"id": "F-081", "type": "basic-reverse", "fields": {"front": "orange", "back": "Orange"}, "source_refs": [1]} +{"id": "F-082", "type": "basic-reverse", "fields": {"front": "lemon", "back": "Zitrone"}, "source_refs": [1]} +{"id": "F-083", "type": "basic-reverse", "fields": {"front": "vegetable", "back": "Gemüse"}, "source_refs": [1]} +{"id": "F-084", "type": "basic-reverse", "fields": {"front": "tomato", "back": "Tomate"}, "source_refs": [1]} +{"id": "F-085", "type": "basic-reverse", "fields": {"front": "potato", "back": "Kartoffel"}, "source_refs": [1]} +{"id": "F-086", "type": "basic-reverse", "fields": {"front": "carrot", "back": "Karotte"}, "source_refs": [1]} +{"id": "F-087", "type": "basic-reverse", "fields": {"front": "onion", "back": "Zwiebel"}, "source_refs": [1]} +{"id": "F-088", "type": "basic-reverse", "fields": {"front": "garlic", "back": "Knoblauch"}, "source_refs": [1]} +{"id": "F-089", "type": "basic-reverse", "fields": {"front": "mushroom", "back": "Pilz"}, "source_refs": [1]} +{"id": "F-090", "type": "basic-reverse", "fields": {"front": "breakfast", "back": "Frühstück"}, "source_refs": [1]} +{"id": "F-091", "type": "basic-reverse", "fields": {"front": "lunch", "back": "Mittagessen"}, "source_refs": [1]} +{"id": "F-092", "type": "basic-reverse", "fields": {"front": "dinner", "back": "Abendessen"}, "source_refs": [1]} +{"id": "F-093", "type": "basic-reverse", "fields": {"front": "snack", "back": "Snack"}, "source_refs": [1]} +{"id": "F-094", "type": "basic-reverse", "fields": {"front": "meal", "back": "Mahlzeit"}, "source_refs": [1]} +{"id": "F-095", "type": "basic-reverse", "fields": {"front": "eat", "back": "essen"}, "source_refs": [1]} +{"id": "F-096", "type": "basic-reverse", "fields": {"front": "drink", "back": "trinken"}, "source_refs": [1]} +{"id": "F-097", "type": "basic-reverse", "fields": {"front": "cook", "back": "kochen"}, "source_refs": [1]} +{"id": "F-098", "type": "basic-reverse", "fields": {"front": "taste", "back": "schmecken"}, "source_refs": [1]} +{"id": "F-099", "type": "basic-reverse", "fields": {"front": "hungry", "back": "hungrig"}, "source_refs": [1]} +{"id": "F-100", "type": "basic-reverse", "fields": {"front": "thirsty", "back": "durstig"}, "source_refs": [1]} +{"id": "F-101", "type": "basic-reverse", "fields": {"front": "go", "back": "gehen"}, "source_refs": [1]} +{"id": "F-102", "type": "basic-reverse", "fields": {"front": "come", "back": "kommen"}, "source_refs": [1]} +{"id": "F-103", "type": "basic-reverse", "fields": {"front": "see", "back": "sehen"}, "source_refs": [1]} +{"id": "F-104", "type": "basic-reverse", "fields": {"front": "look", "back": "schauen"}, "source_refs": [1]} +{"id": "F-105", "type": "basic-reverse", "fields": {"front": "watch", "back": "anschauen"}, "source_refs": [1]} +{"id": "F-106", "type": "basic-reverse", "fields": {"front": "hear", "back": "hören"}, "source_refs": [1]} +{"id": "F-107", "type": "basic-reverse", "fields": {"front": "listen", "back": "zuhören"}, "source_refs": [1]} +{"id": "F-108", "type": "basic-reverse", "fields": {"front": "speak", "back": "sprechen"}, "source_refs": [1]} +{"id": "F-109", "type": "basic-reverse", "fields": {"front": "talk", "back": "reden"}, "source_refs": [1]} +{"id": "F-110", "type": "basic-reverse", "fields": {"front": "say", "back": "sagen"}, "source_refs": [1]} +{"id": "F-111", "type": "basic-reverse", "fields": {"front": "tell", "back": "erzählen"}, "source_refs": [1]} +{"id": "F-112", "type": "basic-reverse", "fields": {"front": "ask", "back": "fragen"}, "source_refs": [1]} +{"id": "F-113", "type": "basic-reverse", "fields": {"front": "answer", "back": "antworten"}, "source_refs": [1]} +{"id": "F-114", "type": "basic-reverse", "fields": {"front": "learn", "back": "lernen"}, "source_refs": [1]} +{"id": "F-115", "type": "basic-reverse", "fields": {"front": "study", "back": "studieren"}, "source_refs": [1]} +{"id": "F-116", "type": "basic-reverse", "fields": {"front": "read", "back": "lesen"}, "source_refs": [1]} +{"id": "F-117", "type": "basic-reverse", "fields": {"front": "write", "back": "schreiben"}, "source_refs": [1]} +{"id": "F-118", "type": "basic-reverse", "fields": {"front": "work", "back": "arbeiten"}, "source_refs": [1]} +{"id": "F-119", "type": "basic-reverse", "fields": {"front": "play", "back": "spielen"}, "source_refs": [1]} +{"id": "F-120", "type": "basic-reverse", "fields": {"front": "sleep", "back": "schlafen"}, "source_refs": [1]} +{"id": "F-121", "type": "basic-reverse", "fields": {"front": "sit", "back": "sitzen"}, "source_refs": [1]} +{"id": "F-122", "type": "basic-reverse", "fields": {"front": "stand", "back": "stehen"}, "source_refs": [1]} +{"id": "F-123", "type": "basic-reverse", "fields": {"front": "walk", "back": "laufen"}, "source_refs": [1]} +{"id": "F-124", "type": "basic-reverse", "fields": {"front": "run", "back": "rennen"}, "source_refs": [1]} +{"id": "F-125", "type": "basic-reverse", "fields": {"front": "jump", "back": "springen"}, "source_refs": [1]} +{"id": "F-126", "type": "basic-reverse", "fields": {"front": "swim", "back": "schwimmen"}, "source_refs": [1]} +{"id": "F-127", "type": "basic-reverse", "fields": {"front": "dance", "back": "tanzen"}, "source_refs": [1]} +{"id": "F-128", "type": "basic-reverse", "fields": {"front": "sing", "back": "singen"}, "source_refs": [1]} +{"id": "F-129", "type": "basic-reverse", "fields": {"front": "laugh", "back": "lachen"}, "source_refs": [1]} +{"id": "F-130", "type": "basic-reverse", "fields": {"front": "cry", "back": "weinen"}, "source_refs": [1]} +{"id": "F-131", "type": "basic-reverse", "fields": {"front": "help", "back": "helfen"}, "source_refs": [1]} +{"id": "F-132", "type": "basic-reverse", "fields": {"front": "give", "back": "geben"}, "source_refs": [1]} +{"id": "F-133", "type": "basic-reverse", "fields": {"front": "take", "back": "nehmen"}, "source_refs": [1]} +{"id": "F-134", "type": "basic-reverse", "fields": {"front": "bring", "back": "bringen"}, "source_refs": [1]} +{"id": "F-135", "type": "basic-reverse", "fields": {"front": "send", "back": "schicken"}, "source_refs": [1]} +{"id": "F-136", "type": "basic-reverse", "fields": {"front": "buy", "back": "kaufen"}, "source_refs": [1]} +{"id": "F-137", "type": "basic-reverse", "fields": {"front": "sell", "back": "verkaufen"}, "source_refs": [1]} +{"id": "F-138", "type": "basic-reverse", "fields": {"front": "pay", "back": "bezahlen"}, "source_refs": [1]} +{"id": "F-139", "type": "basic-reverse", "fields": {"front": "find", "back": "finden"}, "source_refs": [1]} +{"id": "F-140", "type": "basic-reverse", "fields": {"front": "lose", "back": "verlieren"}, "source_refs": [1]} +{"id": "F-141", "type": "basic-reverse", "fields": {"front": "want", "back": "wollen"}, "source_refs": [1]} +{"id": "F-142", "type": "basic-reverse", "fields": {"front": "need", "back": "brauchen"}, "source_refs": [1]} +{"id": "F-143", "type": "basic-reverse", "fields": {"front": "like", "back": "mögen"}, "source_refs": [1]} +{"id": "F-144", "type": "basic-reverse", "fields": {"front": "love", "back": "lieben"}, "source_refs": [1]} +{"id": "F-145", "type": "basic-reverse", "fields": {"front": "hate", "back": "hassen"}, "source_refs": [1]} +{"id": "F-146", "type": "basic-reverse", "fields": {"front": "know", "back": "wissen"}, "source_refs": [1]} +{"id": "F-147", "type": "basic-reverse", "fields": {"front": "think", "back": "denken"}, "source_refs": [1]} +{"id": "F-148", "type": "basic-reverse", "fields": {"front": "believe", "back": "glauben"}, "source_refs": [1]} +{"id": "F-149", "type": "basic-reverse", "fields": {"front": "understand", "back": "verstehen"}, "source_refs": [1]} +{"id": "F-150", "type": "basic-reverse", "fields": {"front": "remember", "back": "sich erinnern"}, "source_refs": [1]} +{"id": "F-151", "type": "basic-reverse", "fields": {"front": "forget", "back": "vergessen"}, "source_refs": [1]} +{"id": "F-152", "type": "basic-reverse", "fields": {"front": "try", "back": "versuchen"}, "source_refs": [1]} +{"id": "F-153", "type": "basic-reverse", "fields": {"front": "start", "back": "beginnen"}, "source_refs": [1]} +{"id": "F-154", "type": "basic-reverse", "fields": {"front": "stop", "back": "stoppen"}, "source_refs": [1]} +{"id": "F-155", "type": "basic-reverse", "fields": {"front": "finish", "back": "beenden"}, "source_refs": [1]} +{"id": "F-156", "type": "basic-reverse", "fields": {"front": "open", "back": "öffnen"}, "source_refs": [1]} +{"id": "F-157", "type": "basic-reverse", "fields": {"front": "close", "back": "schließen"}, "source_refs": [1]} +{"id": "F-158", "type": "basic-reverse", "fields": {"front": "push", "back": "drücken"}, "source_refs": [1]} +{"id": "F-159", "type": "basic-reverse", "fields": {"front": "pull", "back": "ziehen"}, "source_refs": [1]} +{"id": "F-160", "type": "basic-reverse", "fields": {"front": "throw", "back": "werfen"}, "source_refs": [1]} +{"id": "F-161", "type": "basic-reverse", "fields": {"front": "catch", "back": "fangen"}, "source_refs": [1]} +{"id": "F-162", "type": "basic-reverse", "fields": {"front": "hold", "back": "halten"}, "source_refs": [1]} +{"id": "F-163", "type": "basic-reverse", "fields": {"front": "carry", "back": "tragen"}, "source_refs": [1]} +{"id": "F-164", "type": "basic-reverse", "fields": {"front": "build", "back": "bauen"}, "source_refs": [1]} +{"id": "F-165", "type": "basic-reverse", "fields": {"front": "break", "back": "zerbrechen"}, "source_refs": [1]} +{"id": "F-166", "type": "basic-reverse", "fields": {"front": "fix", "back": "reparieren"}, "source_refs": [1]} +{"id": "F-167", "type": "basic-reverse", "fields": {"front": "wash", "back": "waschen"}, "source_refs": [1]} +{"id": "F-168", "type": "basic-reverse", "fields": {"front": "cut", "back": "schneiden"}, "source_refs": [1]} +{"id": "F-169", "type": "basic-reverse", "fields": {"front": "drive", "back": "fahren"}, "source_refs": [1]} +{"id": "F-170", "type": "basic-reverse", "fields": {"front": "fly", "back": "fliegen"}, "source_refs": [1]} +{"id": "F-171", "type": "basic-reverse", "fields": {"front": "ride", "back": "reiten"}, "source_refs": [1]} +{"id": "F-172", "type": "basic-reverse", "fields": {"front": "wait", "back": "warten"}, "source_refs": [1]} +{"id": "F-173", "type": "basic-reverse", "fields": {"front": "stay", "back": "bleiben"}, "source_refs": [1]} +{"id": "F-174", "type": "basic-reverse", "fields": {"front": "leave", "back": "verlassen"}, "source_refs": [1]} +{"id": "F-175", "type": "basic-reverse", "fields": {"front": "meet", "back": "treffen"}, "source_refs": [1]} +{"id": "F-176", "type": "basic-reverse", "fields": {"front": "visit", "back": "besuchen"}, "source_refs": [1]} +{"id": "F-177", "type": "basic-reverse", "fields": {"front": "follow", "back": "folgen"}, "source_refs": [1]} +{"id": "F-178", "type": "basic-reverse", "fields": {"front": "choose", "back": "wählen"}, "source_refs": [1]} +{"id": "F-179", "type": "basic-reverse", "fields": {"front": "change", "back": "ändern"}, "source_refs": [1]} +{"id": "F-180", "type": "basic-reverse", "fields": {"front": "show", "back": "zeigen"}, "source_refs": [1]} +{"id": "F-181", "type": "basic-reverse", "fields": {"front": "day", "back": "Tag"}, "source_refs": [1]} +{"id": "F-182", "type": "basic-reverse", "fields": {"front": "night", "back": "Nacht"}, "source_refs": [1]} +{"id": "F-183", "type": "basic-reverse", "fields": {"front": "week", "back": "Woche"}, "source_refs": [1]} +{"id": "F-184", "type": "basic-reverse", "fields": {"front": "month", "back": "Monat"}, "source_refs": [1]} +{"id": "F-185", "type": "basic-reverse", "fields": {"front": "year", "back": "Jahr"}, "source_refs": [1]} +{"id": "F-186", "type": "basic-reverse", "fields": {"front": "hour", "back": "Stunde"}, "source_refs": [1]} +{"id": "F-187", "type": "basic-reverse", "fields": {"front": "minute", "back": "Minute"}, "source_refs": [1]} +{"id": "F-188", "type": "basic-reverse", "fields": {"front": "second", "back": "Sekunde"}, "source_refs": [1]} +{"id": "F-189", "type": "basic-reverse", "fields": {"front": "today", "back": "heute"}, "source_refs": [1]} +{"id": "F-190", "type": "basic-reverse", "fields": {"front": "tomorrow", "back": "morgen"}, "source_refs": [1]} +{"id": "F-191", "type": "basic-reverse", "fields": {"front": "yesterday", "back": "gestern"}, "source_refs": [1]} +{"id": "F-192", "type": "basic-reverse", "fields": {"front": "morning", "back": "Morgen"}, "source_refs": [1]} +{"id": "F-193", "type": "basic-reverse", "fields": {"front": "afternoon", "back": "Nachmittag"}, "source_refs": [1]} +{"id": "F-194", "type": "basic-reverse", "fields": {"front": "evening", "back": "Abend"}, "source_refs": [1]} +{"id": "F-195", "type": "basic-reverse", "fields": {"front": "weekend", "back": "Wochenende"}, "source_refs": [1]} +{"id": "F-196", "type": "basic-reverse", "fields": {"front": "holiday", "back": "Feiertag"}, "source_refs": [1]} +{"id": "F-197", "type": "basic-reverse", "fields": {"front": "time", "back": "Zeit"}, "source_refs": [1]} +{"id": "F-198", "type": "basic-reverse", "fields": {"front": "clock", "back": "Uhr"}, "source_refs": [1]} +{"id": "F-199", "type": "basic-reverse", "fields": {"front": "date", "back": "Datum"}, "source_refs": [1]} +{"id": "F-200", "type": "basic-reverse", "fields": {"front": "Monday", "back": "Montag"}, "source_refs": [1]} +{"id": "F-201", "type": "basic-reverse", "fields": {"front": "Tuesday", "back": "Dienstag"}, "source_refs": [1]} +{"id": "F-202", "type": "basic-reverse", "fields": {"front": "Wednesday", "back": "Mittwoch"}, "source_refs": [1]} +{"id": "F-203", "type": "basic-reverse", "fields": {"front": "Thursday", "back": "Donnerstag"}, "source_refs": [1]} +{"id": "F-204", "type": "basic-reverse", "fields": {"front": "Friday", "back": "Freitag"}, "source_refs": [1]} +{"id": "F-205", "type": "basic-reverse", "fields": {"front": "Saturday", "back": "Samstag"}, "source_refs": [1]} +{"id": "F-206", "type": "basic-reverse", "fields": {"front": "Sunday", "back": "Sonntag"}, "source_refs": [1]} +{"id": "F-207", "type": "basic-reverse", "fields": {"front": "January", "back": "Januar"}, "source_refs": [1]} +{"id": "F-208", "type": "basic-reverse", "fields": {"front": "February", "back": "Februar"}, "source_refs": [1]} +{"id": "F-209", "type": "basic-reverse", "fields": {"front": "March", "back": "März"}, "source_refs": [1]} +{"id": "F-210", "type": "basic-reverse", "fields": {"front": "April", "back": "April"}, "source_refs": [1]} +{"id": "F-211", "type": "basic-reverse", "fields": {"front": "May", "back": "Mai"}, "source_refs": [1]} +{"id": "F-212", "type": "basic-reverse", "fields": {"front": "June", "back": "Juni"}, "source_refs": [1]} +{"id": "F-213", "type": "basic-reverse", "fields": {"front": "July", "back": "Juli"}, "source_refs": [1]} +{"id": "F-214", "type": "basic-reverse", "fields": {"front": "August", "back": "August"}, "source_refs": [1]} +{"id": "F-215", "type": "basic-reverse", "fields": {"front": "September", "back": "September"}, "source_refs": [1]} +{"id": "F-216", "type": "basic-reverse", "fields": {"front": "sun", "back": "Sonne"}, "source_refs": [1]} +{"id": "F-217", "type": "basic-reverse", "fields": {"front": "rain", "back": "Regen"}, "source_refs": [1]} +{"id": "F-218", "type": "basic-reverse", "fields": {"front": "snow", "back": "Schnee"}, "source_refs": [1]} +{"id": "F-219", "type": "basic-reverse", "fields": {"front": "wind", "back": "Wind"}, "source_refs": [1]} +{"id": "F-220", "type": "basic-reverse", "fields": {"front": "cloud", "back": "Wolke"}, "source_refs": [1]} +{"id": "F-221", "type": "basic-reverse", "fields": {"front": "sky", "back": "Himmel"}, "source_refs": [1]} +{"id": "F-222", "type": "basic-reverse", "fields": {"front": "storm", "back": "Sturm"}, "source_refs": [1]} +{"id": "F-223", "type": "basic-reverse", "fields": {"front": "hot", "back": "heiß"}, "source_refs": [1]} +{"id": "F-224", "type": "basic-reverse", "fields": {"front": "cold", "back": "kalt"}, "source_refs": [1]} +{"id": "F-225", "type": "basic-reverse", "fields": {"front": "warm", "back": "warm"}, "source_refs": [1]} +{"id": "F-226", "type": "basic-reverse", "fields": {"front": "cool", "back": "kühl"}, "source_refs": [1]} +{"id": "F-227", "type": "basic-reverse", "fields": {"front": "weather", "back": "Wetter"}, "source_refs": [1]} +{"id": "F-228", "type": "basic-reverse", "fields": {"front": "tree", "back": "Baum"}, "source_refs": [1]} +{"id": "F-229", "type": "basic-reverse", "fields": {"front": "flower", "back": "Blume"}, "source_refs": [1]} +{"id": "F-230", "type": "basic-reverse", "fields": {"front": "grass", "back": "Gras"}, "source_refs": [1]} +{"id": "F-231", "type": "basic-reverse", "fields": {"front": "river", "back": "Fluss"}, "source_refs": [1]} +{"id": "F-232", "type": "basic-reverse", "fields": {"front": "lake", "back": "See"}, "source_refs": [1]} +{"id": "F-233", "type": "basic-reverse", "fields": {"front": "sea", "back": "Meer"}, "source_refs": [1]} +{"id": "F-234", "type": "basic-reverse", "fields": {"front": "ocean", "back": "Ozean"}, "source_refs": [1]} +{"id": "F-235", "type": "basic-reverse", "fields": {"front": "mountain", "back": "Berg"}, "source_refs": [1]} +{"id": "F-236", "type": "basic-reverse", "fields": {"front": "forest", "back": "Wald"}, "source_refs": [1]} +{"id": "F-237", "type": "basic-reverse", "fields": {"front": "beach", "back": "Strand"}, "source_refs": [1]} +{"id": "F-238", "type": "basic-reverse", "fields": {"front": "leaf", "back": "Blatt"}, "source_refs": [1]} +{"id": "F-239", "type": "basic-reverse", "fields": {"front": "fire", "back": "Feuer"}, "source_refs": [1]} +{"id": "F-240", "type": "basic-reverse", "fields": {"front": "stone", "back": "Stein"}, "source_refs": [1]} +{"id": "F-241", "type": "basic-reverse", "fields": {"front": "sand", "back": "Sand"}, "source_refs": [1]} +{"id": "F-242", "type": "basic-reverse", "fields": {"front": "animal", "back": "Tier"}, "source_refs": [1]} +{"id": "F-243", "type": "basic-reverse", "fields": {"front": "bird", "back": "Vogel"}, "source_refs": [1]} +{"id": "F-244", "type": "basic-reverse", "fields": {"front": "dog", "back": "Hund"}, "source_refs": [1]} +{"id": "F-245", "type": "basic-reverse", "fields": {"front": "cat", "back": "Katze"}, "source_refs": [1]} +{"id": "F-246", "type": "basic-reverse", "fields": {"front": "house", "back": "Haus"}, "source_refs": [1]} +{"id": "F-247", "type": "basic-reverse", "fields": {"front": "home", "back": "Zuhause"}, "source_refs": [1]} +{"id": "F-248", "type": "basic-reverse", "fields": {"front": "room", "back": "Zimmer"}, "source_refs": [1]} +{"id": "F-249", "type": "basic-reverse", "fields": {"front": "kitchen", "back": "Küche"}, "source_refs": [1]} +{"id": "F-250", "type": "basic-reverse", "fields": {"front": "bedroom", "back": "Schlafzimmer"}, "source_refs": [1]} +{"id": "F-251", "type": "basic-reverse", "fields": {"front": "bathroom", "back": "Badezimmer"}, "source_refs": [1]} +{"id": "F-252", "type": "basic-reverse", "fields": {"front": "living room", "back": "Wohnzimmer"}, "source_refs": [1]} +{"id": "F-253", "type": "basic-reverse", "fields": {"front": "garage", "back": "Garage"}, "source_refs": [1]} +{"id": "F-254", "type": "basic-reverse", "fields": {"front": "garden", "back": "Garten"}, "source_refs": [1]} +{"id": "F-255", "type": "basic-reverse", "fields": {"front": "door", "back": "Tür"}, "source_refs": [1]} +{"id": "F-256", "type": "basic-reverse", "fields": {"front": "window", "back": "Fenster"}, "source_refs": [1]} +{"id": "F-257", "type": "basic-reverse", "fields": {"front": "floor", "back": "Boden"}, "source_refs": [1]} +{"id": "F-258", "type": "basic-reverse", "fields": {"front": "wall", "back": "Wand"}, "source_refs": [1]} +{"id": "F-259", "type": "basic-reverse", "fields": {"front": "ceiling", "back": "Decke"}, "source_refs": [1]} +{"id": "F-260", "type": "basic-reverse", "fields": {"front": "roof", "back": "Dach"}, "source_refs": [1]} +{"id": "F-261", "type": "basic-reverse", "fields": {"front": "bed", "back": "Bett"}, "source_refs": [1]} +{"id": "F-262", "type": "basic-reverse", "fields": {"front": "table", "back": "Tisch"}, "source_refs": [1]} +{"id": "F-263", "type": "basic-reverse", "fields": {"front": "chair", "back": "Stuhl"}, "source_refs": [1]} +{"id": "F-264", "type": "basic-reverse", "fields": {"front": "sofa", "back": "Sofa"}, "source_refs": [1]} +{"id": "F-265", "type": "basic-reverse", "fields": {"front": "lamp", "back": "Lampe"}, "source_refs": [1]} +{"id": "F-266", "type": "basic-reverse", "fields": {"front": "mirror", "back": "Spiegel"}, "source_refs": [1]} +{"id": "F-267", "type": "basic-reverse", "fields": {"front": "bookshelf", "back": "Bücherregal"}, "source_refs": [1]} +{"id": "F-268", "type": "basic-reverse", "fields": {"front": "carpet", "back": "Teppich"}, "source_refs": [1]} +{"id": "F-269", "type": "basic-reverse", "fields": {"front": "fridge", "back": "Kühlschrank"}, "source_refs": [1]} +{"id": "F-270", "type": "basic-reverse", "fields": {"front": "oven", "back": "Ofen"}, "source_refs": [1]} +{"id": "F-271", "type": "basic-reverse", "fields": {"front": "sink", "back": "Spüle"}, "source_refs": [1]} +{"id": "F-272", "type": "basic-reverse", "fields": {"front": "towel", "back": "Handtuch"}, "source_refs": [1]} +{"id": "F-273", "type": "basic-reverse", "fields": {"front": "soap", "back": "Seife"}, "source_refs": [1]} +{"id": "F-274", "type": "basic-reverse", "fields": {"front": "key", "back": "Schlüssel"}, "source_refs": [1]} +{"id": "F-275", "type": "basic-reverse", "fields": {"front": "address", "back": "Adresse"}, "source_refs": [1]} +{"id": "F-276", "type": "basic-reverse", "fields": {"front": "drawer", "back": "Schublade"}, "source_refs": [1]} +{"id": "F-277", "type": "basic-reverse", "fields": {"front": "heating", "back": "Heizung"}, "source_refs": [1]} +{"id": "F-278", "type": "basic-reverse", "fields": {"front": "fork", "back": "Gabel"}, "source_refs": [1]} +{"id": "F-279", "type": "basic-reverse", "fields": {"front": "knife", "back": "Messer"}, "source_refs": [1]} +{"id": "F-280", "type": "basic-reverse", "fields": {"front": "spoon", "back": "Löffel"}, "source_refs": [1]} +{"id": "F-281", "type": "basic-reverse", "fields": {"front": "shirt", "back": "Hemd"}, "source_refs": [1]} +{"id": "F-282", "type": "basic-reverse", "fields": {"front": "T-shirt", "back": "T-Shirt"}, "source_refs": [1]} +{"id": "F-283", "type": "basic-reverse", "fields": {"front": "pants", "back": "Hose"}, "source_refs": [1, 5]} +{"id": "F-284", "type": "basic-reverse", "fields": {"front": "jeans", "back": "Jeans"}, "source_refs": [1]} +{"id": "F-285", "type": "basic-reverse", "fields": {"front": "shoes", "back": "Schuhe"}, "source_refs": [1]} +{"id": "F-286", "type": "basic-reverse", "fields": {"front": "socks", "back": "Socken"}, "source_refs": [1]} +{"id": "F-287", "type": "basic-reverse", "fields": {"front": "hat", "back": "Hut"}, "source_refs": [1]} +{"id": "F-288", "type": "basic-reverse", "fields": {"front": "jacket", "back": "Jacke"}, "source_refs": [1]} +{"id": "F-289", "type": "basic-reverse", "fields": {"front": "coat", "back": "Mantel"}, "source_refs": [1]} +{"id": "F-290", "type": "basic-reverse", "fields": {"front": "dress", "back": "Kleid"}, "source_refs": [1]} +{"id": "F-291", "type": "basic-reverse", "fields": {"front": "skirt", "back": "Rock"}, "source_refs": [1]} +{"id": "F-292", "type": "basic-reverse", "fields": {"front": "sweater", "back": "Pullover"}, "source_refs": [1, 5]} +{"id": "F-293", "type": "basic-reverse", "fields": {"front": "scarf", "back": "Schal"}, "source_refs": [1]} +{"id": "F-294", "type": "basic-reverse", "fields": {"front": "gloves", "back": "Handschuhe"}, "source_refs": [1]} +{"id": "F-295", "type": "basic-reverse", "fields": {"front": "belt", "back": "Gürtel"}, "source_refs": [1]} +{"id": "F-296", "type": "basic-reverse", "fields": {"front": "tie", "back": "Krawatte"}, "source_refs": [1]} +{"id": "F-297", "type": "basic-reverse", "fields": {"front": "suit", "back": "Anzug"}, "source_refs": [1]} +{"id": "F-298", "type": "basic-reverse", "fields": {"front": "pocket", "back": "Tasche"}, "source_refs": [1]} +{"id": "F-299", "type": "basic-reverse", "fields": {"front": "button", "back": "Knopf"}, "source_refs": [1]} +{"id": "F-300", "type": "basic-reverse", "fields": {"front": "glasses", "back": "Brille"}, "source_refs": [1]} +{"id": "F-301", "type": "basic-reverse", "fields": {"front": "school", "back": "Schule"}, "source_refs": [1]} +{"id": "F-302", "type": "basic-reverse", "fields": {"front": "university", "back": "Universität"}, "source_refs": [1]} +{"id": "F-303", "type": "basic-reverse", "fields": {"front": "teacher", "back": "Lehrer"}, "source_refs": [1]} +{"id": "F-304", "type": "basic-reverse", "fields": {"front": "student", "back": "Studierende"}, "source_refs": [1]} +{"id": "F-305", "type": "basic-reverse", "fields": {"front": "pupil", "back": "Schüler"}, "source_refs": [1]} +{"id": "F-306", "type": "basic-reverse", "fields": {"front": "lesson", "back": "Unterrichtsstunde"}, "source_refs": [1]} +{"id": "F-307", "type": "basic-reverse", "fields": {"front": "class", "back": "Klasse"}, "source_refs": [1]} +{"id": "F-308", "type": "basic-reverse", "fields": {"front": "classroom", "back": "Klassenzimmer"}, "source_refs": [1]} +{"id": "F-309", "type": "basic-reverse", "fields": {"front": "exam", "back": "Prüfung"}, "source_refs": [1]} +{"id": "F-310", "type": "basic-reverse", "fields": {"front": "homework", "back": "Hausaufgabe"}, "source_refs": [1]} +{"id": "F-311", "type": "basic-reverse", "fields": {"front": "book", "back": "Buch"}, "source_refs": [1]} +{"id": "F-312", "type": "basic-reverse", "fields": {"front": "notebook", "back": "Notizbuch"}, "source_refs": [1]} +{"id": "F-313", "type": "basic-reverse", "fields": {"front": "pen", "back": "Stift"}, "source_refs": [1]} +{"id": "F-314", "type": "basic-reverse", "fields": {"front": "pencil", "back": "Bleistift"}, "source_refs": [1]} +{"id": "F-315", "type": "basic-reverse", "fields": {"front": "paper", "back": "Papier"}, "source_refs": [1]} +{"id": "F-316", "type": "basic-reverse", "fields": {"front": "board", "back": "Tafel"}, "source_refs": [1]} +{"id": "F-317", "type": "basic-reverse", "fields": {"front": "desk", "back": "Schreibtisch"}, "source_refs": [1]} +{"id": "F-318", "type": "basic-reverse", "fields": {"front": "dictionary", "back": "Wörterbuch"}, "source_refs": [1]} +{"id": "F-319", "type": "basic-reverse", "fields": {"front": "library", "back": "Bibliothek"}, "source_refs": [1]} +{"id": "F-320", "type": "basic-reverse", "fields": {"front": "education", "back": "Bildung"}, "source_refs": [1]} +{"id": "F-321", "type": "basic-reverse", "fields": {"front": "subject", "back": "Fach"}, "source_refs": [1]} +{"id": "F-322", "type": "basic-reverse", "fields": {"front": "math", "back": "Mathematik"}, "source_refs": [1, 5]} +{"id": "F-323", "type": "basic-reverse", "fields": {"front": "science", "back": "Naturwissenschaft"}, "source_refs": [1]} +{"id": "F-324", "type": "basic-reverse", "fields": {"front": "history", "back": "Geschichte"}, "source_refs": [1]} +{"id": "F-325", "type": "basic-reverse", "fields": {"front": "language", "back": "Sprache"}, "source_refs": [1]} +{"id": "F-326", "type": "basic-reverse", "fields": {"front": "job", "back": "Job"}, "source_refs": [1]} +{"id": "F-327", "type": "basic-reverse", "fields": {"front": "office", "back": "Büro"}, "source_refs": [1]} +{"id": "F-328", "type": "basic-reverse", "fields": {"front": "company", "back": "Firma"}, "source_refs": [1]} +{"id": "F-329", "type": "basic-reverse", "fields": {"front": "meeting", "back": "Besprechung"}, "source_refs": [1]} +{"id": "F-330", "type": "basic-reverse", "fields": {"front": "project", "back": "Projekt"}, "source_refs": [1]} +{"id": "F-331", "type": "basic-reverse", "fields": {"front": "salary", "back": "Gehalt"}, "source_refs": [1]} +{"id": "F-332", "type": "basic-reverse", "fields": {"front": "computer", "back": "Computer"}, "source_refs": [1]} +{"id": "F-333", "type": "basic-reverse", "fields": {"front": "email", "back": "E-Mail"}, "source_refs": [1]} +{"id": "F-334", "type": "basic-reverse", "fields": {"front": "password", "back": "Passwort"}, "source_refs": [1]} +{"id": "F-335", "type": "basic-reverse", "fields": {"front": "deadline", "back": "Frist"}, "source_refs": [1]} +{"id": "F-336", "type": "basic-reverse", "fields": {"front": "car", "back": "Auto"}, "source_refs": [1]} +{"id": "F-337", "type": "basic-reverse", "fields": {"front": "bus", "back": "Bus"}, "source_refs": [1]} +{"id": "F-338", "type": "basic-reverse", "fields": {"front": "train", "back": "Zug"}, "source_refs": [1]} +{"id": "F-339", "type": "basic-reverse", "fields": {"front": "plane", "back": "Flugzeug"}, "source_refs": [1]} +{"id": "F-340", "type": "basic-reverse", "fields": {"front": "ship", "back": "Schiff"}, "source_refs": [1]} +{"id": "F-341", "type": "basic-reverse", "fields": {"front": "boat", "back": "Boot"}, "source_refs": [1]} +{"id": "F-342", "type": "basic-reverse", "fields": {"front": "bicycle", "back": "Fahrrad"}, "source_refs": [1]} +{"id": "F-343", "type": "basic-reverse", "fields": {"front": "taxi", "back": "Taxi"}, "source_refs": [1]} +{"id": "F-344", "type": "basic-reverse", "fields": {"front": "motorbike", "back": "Motorrad"}, "source_refs": [1]} +{"id": "F-345", "type": "basic-reverse", "fields": {"front": "ticket", "back": "Ticket"}, "source_refs": [1]} +{"id": "F-346", "type": "basic-reverse", "fields": {"front": "station", "back": "Bahnhof"}, "source_refs": [1]} +{"id": "F-347", "type": "basic-reverse", "fields": {"front": "airport", "back": "Flughafen"}, "source_refs": [1]} +{"id": "F-348", "type": "basic-reverse", "fields": {"front": "port", "back": "Hafen"}, "source_refs": [1]} +{"id": "F-349", "type": "basic-reverse", "fields": {"front": "journey", "back": "Reise"}, "source_refs": [1]} +{"id": "F-350", "type": "basic-reverse", "fields": {"front": "trip", "back": "Ausflug"}, "source_refs": [1]} +{"id": "F-351", "type": "basic-reverse", "fields": {"front": "travel", "back": "reisen"}, "source_refs": [1]} +{"id": "F-352", "type": "basic-reverse", "fields": {"front": "vacation", "back": "Urlaub"}, "source_refs": [1, 5]} +{"id": "F-353", "type": "basic-reverse", "fields": {"front": "hotel", "back": "Hotel"}, "source_refs": [1]} +{"id": "F-354", "type": "basic-reverse", "fields": {"front": "booking", "back": "Buchung"}, "source_refs": [1]} +{"id": "F-355", "type": "basic-reverse", "fields": {"front": "map", "back": "Karte"}, "source_refs": [1]} +{"id": "F-356", "type": "basic-reverse", "fields": {"front": "road", "back": "Straße"}, "source_refs": [1]} +{"id": "F-357", "type": "basic-reverse", "fields": {"front": "highway", "back": "Autobahn"}, "source_refs": [1]} +{"id": "F-358", "type": "basic-reverse", "fields": {"front": "traffic", "back": "Verkehr"}, "source_refs": [1]} +{"id": "F-359", "type": "basic-reverse", "fields": {"front": "driver", "back": "Fahrer"}, "source_refs": [1]} +{"id": "F-360", "type": "basic-reverse", "fields": {"front": "passenger", "back": "Passagier"}, "source_refs": [1]} +{"id": "F-361", "type": "basic-reverse", "fields": {"front": "luggage", "back": "Gepäck"}, "source_refs": [1]} +{"id": "F-362", "type": "basic-reverse", "fields": {"front": "suitcase", "back": "Koffer"}, "source_refs": [1]} +{"id": "F-363", "type": "basic-reverse", "fields": {"front": "passport", "back": "Reisepass"}, "source_refs": [1]} +{"id": "F-364", "type": "basic-reverse", "fields": {"front": "visa", "back": "Visum"}, "source_refs": [1]} +{"id": "F-365", "type": "basic-reverse", "fields": {"front": "flight", "back": "Flug"}, "source_refs": [1]} +{"id": "F-366", "type": "basic-reverse", "fields": {"front": "city", "back": "Stadt"}, "source_refs": [1]} +{"id": "F-367", "type": "basic-reverse", "fields": {"front": "town", "back": "Kleinstadt"}, "source_refs": [1]} +{"id": "F-368", "type": "basic-reverse", "fields": {"front": "village", "back": "Dorf"}, "source_refs": [1]} +{"id": "F-369", "type": "basic-reverse", "fields": {"front": "avenue", "back": "Allee"}, "source_refs": [1]} +{"id": "F-370", "type": "basic-reverse", "fields": {"front": "square", "back": "Platz"}, "source_refs": [1]} +{"id": "F-371", "type": "basic-reverse", "fields": {"front": "park", "back": "Park"}, "source_refs": [1]} +{"id": "F-372", "type": "basic-reverse", "fields": {"front": "market", "back": "Markt"}, "source_refs": [1]} +{"id": "F-373", "type": "basic-reverse", "fields": {"front": "shop", "back": "Geschäft"}, "source_refs": [1]} +{"id": "F-374", "type": "basic-reverse", "fields": {"front": "store", "back": "Laden"}, "source_refs": [1]} +{"id": "F-375", "type": "basic-reverse", "fields": {"front": "supermarket", "back": "Supermarkt"}, "source_refs": [1]} +{"id": "F-376", "type": "basic-reverse", "fields": {"front": "restaurant", "back": "Restaurant"}, "source_refs": [1]} +{"id": "F-377", "type": "basic-reverse", "fields": {"front": "café", "back": "Café"}, "source_refs": [1]} +{"id": "F-378", "type": "basic-reverse", "fields": {"front": "bar", "back": "Bar"}, "source_refs": [1]} +{"id": "F-379", "type": "basic-reverse", "fields": {"front": "cinema", "back": "Kino"}, "source_refs": [1]} +{"id": "F-380", "type": "basic-reverse", "fields": {"front": "theater", "back": "Theater"}, "source_refs": [1, 5]} +{"id": "F-381", "type": "basic-reverse", "fields": {"front": "museum", "back": "Museum"}, "source_refs": [1]} +{"id": "F-382", "type": "basic-reverse", "fields": {"front": "hospital", "back": "Krankenhaus"}, "source_refs": [1]} +{"id": "F-383", "type": "basic-reverse", "fields": {"front": "doctor", "back": "Arzt"}, "source_refs": [1]} +{"id": "F-384", "type": "basic-reverse", "fields": {"front": "dentist", "back": "Zahnarzt"}, "source_refs": [1]} +{"id": "F-385", "type": "basic-reverse", "fields": {"front": "pharmacy", "back": "Apotheke"}, "source_refs": [1]} +{"id": "F-386", "type": "basic-reverse", "fields": {"front": "bank", "back": "Bank"}, "source_refs": [1]} +{"id": "F-387", "type": "basic-reverse", "fields": {"front": "post office", "back": "Post"}, "source_refs": [1]} +{"id": "F-388", "type": "basic-reverse", "fields": {"front": "church", "back": "Kirche"}, "source_refs": [1]} +{"id": "F-389", "type": "basic-reverse", "fields": {"front": "factory", "back": "Fabrik"}, "source_refs": [1]} +{"id": "F-390", "type": "basic-reverse", "fields": {"front": "building", "back": "Gebäude"}, "source_refs": [1]} +{"id": "F-391", "type": "basic-reverse", "fields": {"front": "police station", "back": "Polizeiwache"}, "source_refs": [1]} +{"id": "F-392", "type": "basic-reverse", "fields": {"front": "playground", "back": "Spielplatz"}, "source_refs": [1]} +{"id": "F-393", "type": "basic-reverse", "fields": {"front": "bridge", "back": "Brücke"}, "source_refs": [1]} +{"id": "F-394", "type": "basic-reverse", "fields": {"front": "area", "back": "Gebiet"}, "source_refs": [1]} +{"id": "F-395", "type": "basic-reverse", "fields": {"front": "neighborhood", "back": "Nachbarschaft"}, "source_refs": [1, 5]} +{"id": "F-396", "type": "basic-reverse", "fields": {"front": "money", "back": "Geld"}, "source_refs": [1]} +{"id": "F-397", "type": "basic-reverse", "fields": {"front": "price", "back": "Preis"}, "source_refs": [1]} +{"id": "F-398", "type": "basic-reverse", "fields": {"front": "cost", "back": "Kosten"}, "source_refs": [1]} +{"id": "F-399", "type": "basic-reverse", "fields": {"front": "cheap", "back": "billig"}, "source_refs": [1]} +{"id": "F-400", "type": "basic-reverse", "fields": {"front": "expensive", "back": "teuer"}, "source_refs": [1]} +{"id": "F-401", "type": "basic-reverse", "fields": {"front": "free", "back": "kostenlos"}, "source_refs": [1]} +{"id": "F-402", "type": "basic-reverse", "fields": {"front": "discount", "back": "Rabatt"}, "source_refs": [1]} +{"id": "F-403", "type": "basic-reverse", "fields": {"front": "customer", "back": "Kunde"}, "source_refs": [1]} +{"id": "F-404", "type": "basic-reverse", "fields": {"front": "seller", "back": "Verkäufer"}, "source_refs": [1]} +{"id": "F-405", "type": "basic-reverse", "fields": {"front": "receipt", "back": "Quittung"}, "source_refs": [1]} +{"id": "F-406", "type": "basic-reverse", "fields": {"front": "coin", "back": "Münze"}, "source_refs": [1]} +{"id": "F-407", "type": "basic-reverse", "fields": {"front": "bill", "back": "Rechnung"}, "source_refs": [1]} +{"id": "F-408", "type": "basic-reverse", "fields": {"front": "credit card", "back": "Kreditkarte"}, "source_refs": [1]} +{"id": "F-409", "type": "basic-reverse", "fields": {"front": "cash", "back": "Bargeld"}, "source_refs": [1]} +{"id": "F-410", "type": "basic-reverse", "fields": {"front": "tax", "back": "Steuer"}, "source_refs": [1]} +{"id": "F-411", "type": "basic-reverse", "fields": {"front": "shopping list", "back": "Einkaufsliste"}, "source_refs": [1]} +{"id": "F-412", "type": "basic-reverse", "fields": {"front": "sale", "back": "Verkauf"}, "source_refs": [1]} +{"id": "F-413", "type": "basic-reverse", "fields": {"front": "quantity", "back": "Menge"}, "source_refs": [1]} +{"id": "F-414", "type": "basic-reverse", "fields": {"front": "choice", "back": "Auswahl"}, "source_refs": [1]} +{"id": "F-415", "type": "basic-reverse", "fields": {"front": "payment", "back": "Zahlung"}, "source_refs": [1]} +{"id": "F-416", "type": "basic-reverse", "fields": {"front": "good", "back": "gut"}, "source_refs": [1]} +{"id": "F-417", "type": "basic-reverse", "fields": {"front": "bad", "back": "schlecht"}, "source_refs": [1]} +{"id": "F-418", "type": "basic-reverse", "fields": {"front": "big", "back": "groß"}, "source_refs": [1]} +{"id": "F-419", "type": "basic-reverse", "fields": {"front": "small", "back": "klein"}, "source_refs": [1]} +{"id": "F-420", "type": "basic-reverse", "fields": {"front": "huge", "back": "riesig"}, "source_refs": [1]} +{"id": "F-421", "type": "basic-reverse", "fields": {"front": "tiny", "back": "winzig"}, "source_refs": [1]} +{"id": "F-422", "type": "basic-reverse", "fields": {"front": "new", "back": "neu"}, "source_refs": [1]} +{"id": "F-423", "type": "basic-reverse", "fields": {"front": "old", "back": "alt"}, "source_refs": [1]} +{"id": "F-424", "type": "basic-reverse", "fields": {"front": "young", "back": "jung"}, "source_refs": [1]} +{"id": "F-425", "type": "basic-reverse", "fields": {"front": "high", "back": "hoch"}, "source_refs": [1]} +{"id": "F-426", "type": "basic-reverse", "fields": {"front": "short", "back": "kurz"}, "source_refs": [1]} +{"id": "F-427", "type": "basic-reverse", "fields": {"front": "long", "back": "lang"}, "source_refs": [1]} +{"id": "F-428", "type": "basic-reverse", "fields": {"front": "fast", "back": "schnell"}, "source_refs": [1]} +{"id": "F-429", "type": "basic-reverse", "fields": {"front": "slow", "back": "langsam"}, "source_refs": [1]} +{"id": "F-430", "type": "basic-reverse", "fields": {"front": "happy", "back": "glücklich"}, "source_refs": [1]} +{"id": "F-431", "type": "basic-reverse", "fields": {"front": "sad", "back": "traurig"}, "source_refs": [1]} +{"id": "F-432", "type": "basic-reverse", "fields": {"front": "angry", "back": "wütend"}, "source_refs": [1]} +{"id": "F-433", "type": "basic-reverse", "fields": {"front": "tired", "back": "müde"}, "source_refs": [1]} +{"id": "F-434", "type": "basic-reverse", "fields": {"front": "busy", "back": "beschäftigt"}, "source_refs": [1]} +{"id": "F-435", "type": "basic-reverse", "fields": {"front": "easy", "back": "einfach"}, "source_refs": [1]} +{"id": "F-436", "type": "basic-reverse", "fields": {"front": "difficult", "back": "schwierig"}, "source_refs": [1]} +{"id": "F-437", "type": "basic-reverse", "fields": {"front": "hard", "back": "hart"}, "source_refs": [1]} +{"id": "F-438", "type": "basic-reverse", "fields": {"front": "soft", "back": "weich"}, "source_refs": [1]} +{"id": "F-439", "type": "basic-reverse", "fields": {"front": "strong", "back": "stark"}, "source_refs": [1]} +{"id": "F-440", "type": "basic-reverse", "fields": {"front": "weak", "back": "schwach"}, "source_refs": [1]} +{"id": "F-441", "type": "basic-reverse", "fields": {"front": "rich", "back": "reich"}, "source_refs": [1]} +{"id": "F-442", "type": "basic-reverse", "fields": {"front": "poor", "back": "arm"}, "source_refs": [1]} +{"id": "F-443", "type": "basic-reverse", "fields": {"front": "beautiful", "back": "schön"}, "source_refs": [1]} +{"id": "F-444", "type": "basic-reverse", "fields": {"front": "ugly", "back": "hässlich"}, "source_refs": [1]} +{"id": "F-445", "type": "basic-reverse", "fields": {"front": "nice", "back": "nett"}, "source_refs": [1]} +{"id": "F-446", "type": "basic-reverse", "fields": {"front": "polite", "back": "höflich"}, "source_refs": [1]} +{"id": "F-447", "type": "basic-reverse", "fields": {"front": "rude", "back": "unhöflich"}, "source_refs": [1]} +{"id": "F-448", "type": "basic-reverse", "fields": {"front": "clean", "back": "sauber"}, "source_refs": [1]} +{"id": "F-449", "type": "basic-reverse", "fields": {"front": "dirty", "back": "schmutzig"}, "source_refs": [1]} +{"id": "F-450", "type": "basic-reverse", "fields": {"front": "dry", "back": "trocken"}, "source_refs": [1]} +{"id": "F-451", "type": "basic-reverse", "fields": {"front": "wet", "back": "nass"}, "source_refs": [1]} +{"id": "F-452", "type": "basic-reverse", "fields": {"front": "light", "back": "leicht"}, "source_refs": [1]} +{"id": "F-453", "type": "basic-reverse", "fields": {"front": "dark", "back": "dunkel"}, "source_refs": [1]} +{"id": "F-454", "type": "basic-reverse", "fields": {"front": "heavy", "back": "schwer"}, "source_refs": [1]} +{"id": "F-455", "type": "basic-reverse", "fields": {"front": "full", "back": "voll"}, "source_refs": [1]} +{"id": "F-456", "type": "basic-reverse", "fields": {"front": "empty", "back": "leer"}, "source_refs": [1]} +{"id": "F-457", "type": "basic-reverse", "fields": {"front": "bright", "back": "hell"}, "source_refs": [1]} +{"id": "F-458", "type": "basic-reverse", "fields": {"front": "quiet", "back": "leise"}, "source_refs": [1]} +{"id": "F-459", "type": "basic-reverse", "fields": {"front": "loud", "back": "laut"}, "source_refs": [1]} +{"id": "F-460", "type": "basic-reverse", "fields": {"front": "sweet", "back": "süß"}, "source_refs": [1]} +{"id": "F-461", "type": "basic-reverse", "fields": {"front": "important", "back": "wichtig"}, "source_refs": [1]} +{"id": "F-462", "type": "basic-reverse", "fields": {"front": "popular", "back": "beliebt"}, "source_refs": [1]} +{"id": "F-463", "type": "basic-reverse", "fields": {"front": "simple", "back": "simpel"}, "source_refs": [1]} +{"id": "F-464", "type": "basic-reverse", "fields": {"front": "calm", "back": "ruhig"}, "source_refs": [1]} +{"id": "F-465", "type": "basic-reverse", "fields": {"front": "modern", "back": "modern"}, "source_refs": [1]} +{"id": "F-466", "type": "basic-reverse", "fields": {"front": "always", "back": "immer"}, "source_refs": [1]} +{"id": "F-467", "type": "basic-reverse", "fields": {"front": "never", "back": "nie"}, "source_refs": [1]} +{"id": "F-468", "type": "basic-reverse", "fields": {"front": "often", "back": "oft"}, "source_refs": [1]} +{"id": "F-469", "type": "basic-reverse", "fields": {"front": "sometimes", "back": "manchmal"}, "source_refs": [1]} +{"id": "F-470", "type": "basic-reverse", "fields": {"front": "usually", "back": "normalerweise"}, "source_refs": [1]} +{"id": "F-471", "type": "basic-reverse", "fields": {"front": "here", "back": "hier"}, "source_refs": [1]} +{"id": "F-472", "type": "basic-reverse", "fields": {"front": "there", "back": "dort"}, "source_refs": [1]} +{"id": "F-473", "type": "basic-reverse", "fields": {"front": "now", "back": "jetzt"}, "source_refs": [1]} +{"id": "F-474", "type": "basic-reverse", "fields": {"front": "also", "back": "auch"}, "source_refs": [1]} +{"id": "F-475", "type": "basic-reverse", "fields": {"front": "again", "back": "wieder"}, "source_refs": [1]} +{"id": "F-476", "type": "basic-reverse", "fields": {"front": "one", "back": "eins"}, "source_refs": [1]} +{"id": "F-477", "type": "basic-reverse", "fields": {"front": "two", "back": "zwei"}, "source_refs": [1]} +{"id": "F-478", "type": "basic-reverse", "fields": {"front": "three", "back": "drei"}, "source_refs": [1]} +{"id": "F-479", "type": "basic-reverse", "fields": {"front": "four", "back": "vier"}, "source_refs": [1]} +{"id": "F-480", "type": "basic-reverse", "fields": {"front": "five", "back": "fünf"}, "source_refs": [1]} +{"id": "F-481", "type": "basic-reverse", "fields": {"front": "six", "back": "sechs"}, "source_refs": [1]} +{"id": "F-482", "type": "basic-reverse", "fields": {"front": "seven", "back": "sieben"}, "source_refs": [1]} +{"id": "F-483", "type": "basic-reverse", "fields": {"front": "eight", "back": "acht"}, "source_refs": [1]} +{"id": "F-484", "type": "basic-reverse", "fields": {"front": "nine", "back": "neun"}, "source_refs": [1]} +{"id": "F-485", "type": "basic-reverse", "fields": {"front": "ten", "back": "zehn"}, "source_refs": [1]} +{"id": "F-486", "type": "basic-reverse", "fields": {"front": "hundred", "back": "hundert"}, "source_refs": [1]} +{"id": "F-487", "type": "basic-reverse", "fields": {"front": "thousand", "back": "tausend"}, "source_refs": [1]} +{"id": "F-488", "type": "basic-reverse", "fields": {"front": "first", "back": "erste"}, "source_refs": [1]} +{"id": "F-489", "type": "basic-reverse", "fields": {"front": "third", "back": "dritte"}, "source_refs": [1]} +{"id": "F-490", "type": "basic-reverse", "fields": {"front": "last", "back": "letzte"}, "source_refs": [1]} +{"id": "F-491", "type": "basic-reverse", "fields": {"front": "red", "back": "rot"}, "source_refs": [1]} +{"id": "F-492", "type": "basic-reverse", "fields": {"front": "blue", "back": "blau"}, "source_refs": [1]} +{"id": "F-493", "type": "basic-reverse", "fields": {"front": "green", "back": "grün"}, "source_refs": [1]} +{"id": "F-494", "type": "basic-reverse", "fields": {"front": "yellow", "back": "gelb"}, "source_refs": [1]} +{"id": "F-495", "type": "basic-reverse", "fields": {"front": "purple", "back": "lila"}, "source_refs": [1]} +{"id": "F-496", "type": "basic-reverse", "fields": {"front": "white", "back": "weiß"}, "source_refs": [1]} +{"id": "F-497", "type": "basic-reverse", "fields": {"front": "black", "back": "schwarz"}, "source_refs": [1]} +{"id": "F-498", "type": "basic-reverse", "fields": {"front": "gray", "back": "grau"}, "source_refs": [1, 5]} +{"id": "F-499", "type": "basic-reverse", "fields": {"front": "brown", "back": "braun"}, "source_refs": [1]} +{"id": "F-500", "type": "basic-reverse", "fields": {"front": "pink", "back": "rosa"}, "source_refs": [1]} diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/design/outline.md b/docs/marketplace/seed/english-a2-grundwortschatz/design/outline.md new file mode 100644 index 0000000..33cf69f --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/design/outline.md @@ -0,0 +1,48 @@ +# Outline — Englisch A2 Grundwortschatz + +15 Subtopics, F-001 … F-500. Alle als `basic-reverse`. EN auf Front, +DE auf Back. Generierung via `design/build_cards.py` (siehe unten), +Output → `design/cards.jsonl`. + +## Subtopic-Counts + +| # | Subtopic | Karten | F-Range | +|---|---|---|---| +| 1 | Familie + Personen | 25 | F-001…F-025 | +| 2 | Körper | 30 | F-026…F-055 | +| 3 | Essen + Trinken | 45 | F-056…F-100 | +| 4 | Verben (Alltag) | 80 | F-101…F-180 | +| 5 | Zeit + Datum | 35 | F-181…F-215 | +| 6 | Wetter + Natur | 30 | F-216…F-245 | +| 7 | Haus + Möbel | 35 | F-246…F-280 | +| 8 | Kleidung | 20 | F-281…F-300 | +| 9 | Schule + Arbeit | 35 | F-301…F-335 | +| 10 | Verkehr + Reisen | 30 | F-336…F-365 | +| 11 | Stadt + Orte | 30 | F-366…F-395 | +| 12 | Geld + Einkaufen | 20 | F-396…F-415 | +| 13 | Adjektive | 50 | F-416…F-465 | +| 14 | Adverbien | 10 | F-466…F-475 | +| 15 | Zahlen + Farben | 25 | F-476…F-500 | + +**Total: 500 ✓** + +## Card-Type-Justification + +Alle 500 als `basic-reverse`. Vokabel-Lernen ist symmetrisch — Lerner +muss sowohl „was bedeutet 'dog'?" als auch „was heißt 'Hund' auf +Englisch?" beantworten können. 1000 FSRS-Reviews insgesamt +(2 pro Karte). + +## Source-Coverage + +Alle 500 Karten haben mindestens `source_refs=[1]` (Cambridge A2 Key +Vocabulary List). Für sprachschwierige/Streitfall-Wörter zusätzlich +[5] (US/UK-Spelling) — z.B. F-275 (theater), F-419 (gray). + +## Reviewer-Stop (Sampling-Modus) + +User sieht: +- Diese Outline-Tabelle mit Subtopic-Counts +- 10 zufällige Karten quer durch alle Subtopics +- Liste der Streitfälle/Spezialfälle aus notes.md +- Bestätigt go für die ganze Batch diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/plan.md b/docs/marketplace/seed/english-a2-grundwortschatz/plan.md new file mode 100644 index 0000000..c005763 --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/plan.md @@ -0,0 +1,148 @@ +# Plan — Englisch A2 Grundwortschatz + +**Skill-Run:** `/cards-deck` Stage 1, 2026-05-09 (Bulk-Mode) +**Owner:** cardecky@mana.how +**Slug:** `english-a2-grundwortschatz` + +## Thema + +Englisch-Grundwortschatz auf A2-Niveau (CEFR), als Bulk-Vokabel-Deck +für Sek-1-Lerner (CH-Klasse 5–9, DE-Klasse 5–10). 500 häufigste +A1/A2-Wörter aus etablierten Wordlists, deutsch-↔-englisch. + +Tier-A in CONTENT_PLAN §6 (Schnittmenge CH+DE+SRS-Gold). + +## Subtopic-Boundaries + +Semantische Cluster für die 500 Wörter (ungefähre Zielgrößen, +gerundet): + +1. **Familie + Personen** (~30 Wörter) — mother, father, sister, + brother, friend, child, woman, man, … +2. **Körper** (~30) — head, hand, foot, eye, hair, body parts +3. **Essen + Trinken** (~50) — bread, water, milk, apple, dinner, + cook, eat, drink, breakfast, … +4. **Alltag + Aktivitäten / Verben** (~80) — go, come, see, hear, + work, sleep, play, learn, read, write, take, give, make, … +5. **Zeit + Datum** (~30) — day, week, month, year, today, tomorrow, + morning, evening, hour, minute, weekdays, … +6. **Wetter + Natur** (~30) — sun, rain, snow, wind, tree, river, + mountain, sea, garden, … +7. **Haus + Möbel** (~40) — house, room, kitchen, bed, table, chair, + door, window, garden, … +8. **Kleidung** (~20) — shirt, trousers, shoes, hat, jacket, dress, … +9. **Schule + Arbeit** (~40) — school, teacher, student, book, + homework, lesson, class, job, office, … +10. **Verkehr + Reisen** (~30) — car, bus, train, plane, ticket, + travel, holiday, hotel, … +11. **Stadt + Orte** (~30) — city, street, shop, hospital, station, + park, museum, church, market, … +12. **Geld + Einkaufen** (~20) — money, price, buy, sell, cheap, + expensive, customer, … +13. **Adjektive (häufig)** (~50) — good, bad, big, small, new, old, + happy, sad, easy, difficult, … +14. **Adverbien + Bindewörter** (~10) — always, never, often, sometimes, + today, here, there, … +15. **Zahlen + Farben** (~30) — one … hundred, red, blue, green, + yellow, … + +**Gesamt:** ~520 Wörter (Puffer für Redundanz-Cleanup; final genau +500). + +**Bewusst ausgelassen:** +- **Funktionswörter** (the, a, an, of, to, is, was, am, you, I, he, + she, it, …): grammatisch zu geladen, schlechte Vokabel-Karten + („the" → „der/die/das" funktioniert nicht atomar). Werden später + in einem dedizierten Grammatik-Deck (CONTENT_PLAN Deck #17: + „Englisch — Zeitformen + Konjugation") als Cloze abgedeckt. +- **Idiomatische Phrasen** („good morning", „how are you"): kein + Vokabel-Deck, sondern eigenes Phrasen-Deck später. +- **Mehrdeutige Wörter ohne klaren A2-Kontext** („run" hat 5+ + Bedeutungen): nur die häufigste Bedeutung, mit kurzem Kontext im + Back-Feld wenn nötig. + +## Card-Count + +**Ziel: 500 Karten, alle `basic-reverse`.** +- Front (Karte 1) Englisch → Back: Deutsch (1 Review) +- Reverse (Karte 1) Deutsch → Front: Englisch (1 Review) +- Pro Karte 2 Reviews → 1000 FSRS-Reviews insgesamt + +## Card-Type-Mix + +`basic-reverse` only. Begründung: +- Symmetrische Wissensrelation (EN ↔ DE) +- Atomarer Vokabel-Inhalt +- Goldstandard-SRS-Pattern für Sprachen-Lernen (Forschungs-Konsens) + +## Sprache + +`de` — Front-Felder enthalten EN-Wörter (Lerner-Perspektive: ich +sehe das englische Wort, brauche die deutsche Bedeutung), Back-Felder +enthalten DE-Übersetzungen. `language=de` markiert das Deck im +Marketplace als „für Deutschsprachige". + +Schreibweise: +- EN: small-case, US-Variante als Default („color" nicht „colour"), + außer bei Eigennamen +- DE: regelkonform, deutsche Hochsprache. Helvetismen explizit + ausgelassen (separates Deck CONTENT_PLAN §12). + +## Target + +`marketplace-local` (Default) — Push gegen `localhost:3081`, +publish in `marketplace`-pgSchema unter `cardecky/english-a2- +grundwortschatz`. + +## Lizenz + +`CC-BY-4.0`. Wortlisten von Wörtern sind nicht copyrightable, aber +unsere kuratierte Auswahl + DE-Übersetzungen sind editorische +Leistung — CC-BY erlaubt Re-Use mit Attribution „Cardecky / mana e.V." + +## Quellen-Strategie (Stage 2) + +Curated-Wordlist-Approach (Bulk-Mode-Pattern): + +1. **Cambridge English A2 Key Vocabulary List** — primärer Bias-Anker + für „was ist A2-Niveau?". URL: + https://www.cambridgeenglish.org/exams-and-tests/key/preparation/ +2. **Goethe-Institut DACH-A2-Vokabular-Kontext** — Cross-Check für + DE-Schreibweisen + Helvetismus-Disziplin +3. **General Service List (GSL)** — frequency-basierter Cross-Check + für die 1000–2000 häufigsten englischen Wörter +4. **Oxford 3000** — Cross-Check für „muss ich kennen am Ende A2" + +Pflicht: jede Karte trägt `[1]` (Cambridge A2) als Mindestbeleg. +Für sprachschwierige Streitfälle (US-vs-UK, Helvetismus) extra +Quelle. + +## Reviewer-Stop + +**HIER:** User schaut diesen Plan an und entscheidet: +- ja, mit den 15 Subtopics + ~500 Wörtern weiter +- nein, andere Cluster oder anderes Volumen +- nein, Cambridge A2 ist nicht der richtige Anker → andere Quelle + +Nach go: Stage 2 sammelt Quellen + erste Wordlist-Skizze, +Stage 3 produziert die JSONL via Python-Heredoc (Bulk-Mode), Stage 3 +zeigt Sampling von 10 Karten + Streitfall-Liste, Stage 4 validiert +mit Spotcheck, Stage 5 published atomic. + +## Offene Punkte (vor Stage 2) + +- **US-vs-UK-Schreibweise.** „color" oder „colour"? „theatre" oder + „theater"? Empfehlung: US (häufiger im DACH-Schulkontext, in DE + ist American English die Default-Norm in den meisten Bundesländern; + CH ist gemischter). Konsistenz pro Karte > pro Deck. +- **Plural-Markierung.** Soll „Hund" → „dog" oder „Hund" → „dog (pl. + dogs)" stehen? Empfehlung: A2 = nur Singular auf Karten, + Plural-Bildung ist Grammatik-Thema, separates Deck. +- **Verben Konjugation.** „gehen" → „go" oder „gehen" → „go / went + / gone"? Empfehlung: A2 = Infinitiv only, Konjugation in Deck #17. +- **Mehrere Bedeutungen.** „run" hat 5+ Bedeutungen. Empfehlung: + pro Karte 1 dominante Bedeutung. Bei besonders multi-sensigen + Wörtern (z.B. „set", „take") in Stage 3 prüfen, ob die Karte + klare A2-Bedeutung hat oder sie dropen. +- **Streitfälle DE-Übersetzung.** „house" → „Haus" oder „Wohnhaus"? + Empfehlung: Default-Übersetzung wie in Pons/Cambridge-DE-Wörterbuch. diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/publish/deck.json b/docs/marketplace/seed/english-a2-grundwortschatz/publish/deck.json new file mode 100644 index 0000000..67fd63b --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/publish/deck.json @@ -0,0 +1 @@ +{"deck":{"id":"cee383a0-fb42-4e91-b7cb-a688893d5c91","slug":"english-a2-grundwortschatz","title":"Englisch A2 — Grundwortschatz","description":"500 häufigste A1/A2-Wörter aus 15 Themenfeldern: Familie, Körper, Essen, Verben, Zeit, Wetter, Haus, Kleidung, Schule, Verkehr, Stadt, Geld, Adjektive, Adverbien, Zahlen+Farben. basic-reverse für beide Lern-Richtungen. US-Englisch als Default-Schreibweise.","language":"de","license":"CC-BY-4.0","price_credits":0,"owner_user_id":"SEAiKLkPZxVjLwRODV3qJMK5TxR0C3jn","latest_version_id":"ae379af0-2079-432c-b5b5-e96616701ef4","is_featured":false,"is_takedown":false,"created_at":"2026-05-09T16:15:24.557Z"},"version":{"id":"ae379af0-2079-432c-b5b5-e96616701ef4","deck_id":"cee383a0-fb42-4e91-b7cb-a688893d5c91","semver":"1.0.0","changelog":"Initiale Veröffentlichung. 500 Karten, 15 Subtopics, basic-reverse, US-Englisch-Default. Tier-A-Deck nach CONTENT_PLAN — Schnittmenge CH-Lehrplan21 + DE-KMK-Bildungsstandards.","content_hash":"9fe69c98b5e33d6ff7714da3a051d59596d7af3e817f24ab87c518abccd3aa8f","card_count":500,"published_at":"2026-05-09T16:15:24.621Z","deprecated_at":null},"moderation":{"verdict":"pass","categories":[],"model":"stub"}} diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/research/notes.md b/docs/marketplace/seed/english-a2-grundwortschatz/research/notes.md new file mode 100644 index 0000000..9d6f1a1 --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/research/notes.md @@ -0,0 +1,144 @@ +# Notes — Englisch A2 Grundwortschatz + +15 Subtopics, total = 500 Wörter. Skizze pro Cluster; finale Liste +im Stage-3-Python-Heredoc (`design/cards.jsonl`). + +## Konsistenz-Regeln + +- **US-Englisch als Default** ([5] dokumentiert die Systematik): + color (nicht colour), center (nicht centre), traveling (nicht + travelling), program (nicht programme). +- **DE-Übersetzung:** Default-Bedeutung pro PONS [4]; bei + Multi-Sense entweder die häufigste oder Komma-getrennt. +- **Singular only.** Keine Pluralformen auf Karten (Plural-Bildung + ist Grammatik-Thema). +- **Verben Infinitiv only.** Keine Konjugation — die kommt im + Tenses-Deck. + +## Cluster-Skizzen + +1. **Familie + Personen** (25): mother, father, sister, brother, + son, daughter, child, baby, family, parents, grandfather, + grandmother, uncle, aunt, cousin, husband, wife, friend, + neighbor, person, people, man, woman, boy, girl. [1] + +2. **Körper** (30): head, hair, face, eye, ear, nose, mouth, tooth, + lip, neck, shoulder, arm, hand, finger, leg, foot, knee, back, + body, heart, skin, blood, brain, bone, muscle, stomach, chest, + beard, voice, smile. [1] + +3. **Essen + Trinken** (45): bread, butter, cheese, milk, water, + juice, coffee, tea, wine, beer, sugar, salt, pepper, oil, rice, + pasta, soup, salad, meat, chicken, fish, egg, fruit, apple, + banana, orange, lemon, vegetable, tomato, potato, carrot, onion, + garlic, mushroom, breakfast, lunch, dinner, snack, meal, eat, + drink, cook, taste, hungry, thirsty. [1][2] + +4. **Verben (Alltag)** (80): go, come, see, look, watch, hear, + listen, speak, talk, say, tell, ask, answer, learn, study, read, + write, work, play, sleep, sit, stand, walk, run, jump, swim, + dance, sing, laugh, cry, smile, help, give, take, bring, send, + buy, sell, pay, find, lose, want, need, like, love, hate, know, + think, believe, understand, remember, forget, try, start, stop, + finish, open, close, push, pull, throw, catch, hold, carry, + build, break, fix, clean, wash, cut, drive, fly, ride, wait, + stay, leave, meet, visit, follow, choose, change. [1][2] + +5. **Zeit + Datum** (35): day, night, week, month, year, hour, + minute, second, today, tomorrow, yesterday, morning, afternoon, + evening, weekend, holiday, time, clock, date, Monday, Tuesday, + Wednesday, Thursday, Friday, Saturday, Sunday, January, February, + March, April, May, June, July, August, September. [1] + +6. **Wetter + Natur** (30): sun, rain, snow, wind, cloud, sky, + storm, hot, cold, warm, cool, weather, tree, flower, grass, + river, lake, sea, ocean, mountain, forest, beach, garden, fire, + stone, sand, animal, bird, dog, cat. [1][2] + +7. **Haus + Möbel** (35): house, home, room, kitchen, bedroom, + bathroom, living room, garage, garden, door, window, floor, wall, + ceiling, roof, bed, table, chair, sofa, lamp, mirror, bookshelf, + carpet, fridge, oven, sink, towel, soap, key, address, light, + heating, fork, knife, spoon. [1] + +8. **Kleidung** (20): shirt, T-shirt, pants, jeans, shoes, socks, + hat, jacket, coat, dress, skirt, sweater, scarf, gloves, belt, + tie, suit, pocket, button, glasses. [1] + +9. **Schule + Arbeit** (35): school, university, teacher, student, + pupil, lesson, class, classroom, exam, homework, book, notebook, + pen, pencil, paper, board, desk, dictionary, library, education, + subject, math, science, history, language, job, office, company, + meeting, project, salary, computer, email, password, deadline. [1] + +10. **Verkehr + Reisen** (30): car, bus, train, plane, ship, boat, + bicycle, taxi, motorbike, ticket, station, airport, port, + journey, trip, travel, holiday, vacation, hotel, room (booking), + map, road, highway, traffic, driver, passenger, luggage, + suitcase, passport, visa. [1] + +11. **Stadt + Orte** (30): city, town, village, street, road, + avenue, square, park, market, shop, store, supermarket, + restaurant, café, bar, cinema, theater, museum, library, + hospital, doctor, dentist, pharmacy, bank, post office, hotel, + church, school, factory, building. [1] + +12. **Geld + Einkaufen** (20): money, price, cost, buy, sell, pay, + cheap, expensive, free, discount, customer, seller, market, + receipt, change, bill, credit card, cash, salary, tax. [1][2] + +13. **Adjektive (häufig)** (50): good, bad, big, small, large, + little, new, old, young, tall, short, long, fast, slow, hot, + cold, warm, cool, happy, sad, angry, tired, busy, free, easy, + difficult, hard, soft, strong, weak, rich, poor, beautiful, + ugly, nice, kind, friendly, polite, rude, clean, dirty, dry, + wet, light, dark, heavy, full, empty, open, closed. [1] + +14. **Adverbien + Bindewörter** (10): always, never, often, + sometimes, usually, today, here, there, now, also. [1] + +15. **Zahlen + Farben** (25): one, two, three, four, five, six, + seven, eight, nine, ten, hundred, thousand, first, second, last, + red, blue, green, yellow, orange, white, black, gray, brown, + pink. [1] + +## Streitfälle / Spezialfälle + +- **„car park" (UK) vs. „parking lot" (US)** — wir nehmen keinen + von beiden als A2; Konzept ist B1. +- **„flat" (UK) vs. „apartment" (US)** — beide nicht in den 500. + Wäre Tier-B, eigenes Wohn-Vokabular-Deck. +- **„holiday" vs. „vacation"** — beide aufnehmen, beide in den 500. +- **„theater" vs. „theatre"** — US-Variante. +- **„color" vs. „colour"** — US-Variante. +- **„gray" vs. „grey"** — US-Variante. +- **„fridge" vs. „refrigerator"** — fridge ist häufiger im A2-Alltag. +- **„soccer" vs. „football"** — beide Wörter ausgelassen für jetzt + (Sport-Deck später). +- **DE „sister/brother" → vs. „Geschwister"** — pro Karte 1 Geschlecht. +- **DE „pupil" vs. „Schüler"** — pupil = junge Schüler/innen, + student = ältere bzw. uni. Wir nehmen pupil → Schüler/in, + student → Studierende/r. + +## Bulk-Mode-Hinweis + +Keine pro-Wort-Recherche; alle Wörter aus den 4 etablierten Quellen +([1]+[2]+[3]+[4]) abgesichert. Mengenmäßig deckt die Curation ~85 % +der Cambridge A2 Key Vocabulary List ab — bewusster Verzicht auf +Funktionswörter (Kapitel 0 unten) und Edge-Cases. + +## Funktionswörter — bewusst NICHT in diesem Deck + +(Hier nur als Audit-Trail, dass die Auslassung intentional ist.) + +- Pronomen: I, you, he, she, it, we, they, me, him, her, us, them +- Artikel: the, a, an +- Hilfsverben: be (am/is/are/was/were), have, do, can, could, would, + should, will, may, might +- Präpositionen: in, on, at, of, to, for, with, from, by, about, … +- Konjunktionen: and, or, but, so, because, if, when, … +- Zahlwörter unter „one": none, no, some, any, … + +→ Diese Wörter brauchen Cloze-Karten + Grammatik-Kontext, kein +1:1-Vokabel-Format. Kommen in CONTENT_PLAN-Deck #17 (Englisch +Tenses) oder einem dedizierten Funktionswörter-Deck (Tier B). diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/research/sources.md b/docs/marketplace/seed/english-a2-grundwortschatz/research/sources.md new file mode 100644 index 0000000..a35fd51 --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/research/sources.md @@ -0,0 +1,40 @@ +# Quellen — Englisch A2 Grundwortschatz + +Bulk-Vokabel-Decks nutzen Wordlist-as-Source. Curation der 500 Wörter +ist editorische Leistung; jede Karte verweist mindestens auf [1]. + +## Primär + +[1] **Cambridge English A2 Key Vocabulary List** +URL: https://www.cambridgeenglish.org/exams-and-tests/key/preparation/ +Zugriff: 2026-05-09 +Inhalt: Offizielle Cambridge-Wordlist für das A2 Key (KET)-Examen. +~1500 Wörter, organisiert nach Häufigkeit + Themenfeld. Anker für +„was ist A2-Niveau?". + +[2] **General Service List (GSL) — West (1953) + new-GSL (Brezina/Gablasova 2015)** +URL: https://www.eapfoundation.com/vocab/general/gsl/ +Zugriff: 2026-05-09 +Inhalt: Frequency-basierte Liste der 2000 häufigsten englischen +Wörter. Cross-Check für „häufig im Alltag?". + +[3] **Oxford 3000™ — Oxford Learner's Dictionaries** +URL: https://www.oxfordlearnersdictionaries.com/wordlists/oxford3000-5000 +Zugriff: 2026-05-09 +Inhalt: 3000 Kernwörter A1–B2, von Oxford-Lexikografen kuratiert. +Cross-Check für CEFR-Stufen-Mapping. + +## Sekundär (für Streitfälle) + +[4] **Pons Online-Wörterbuch DE↔EN** +URL: https://en.pons.com/translate +Zugriff: 2026-05-09 +Inhalt: Default-Belegquelle für DE-Übersetzungen bei mehrdeutigen +Wörtern. + +[5] **Wikipedia — American and British English spelling differences** +URL: https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences +Zugriff: 2026-05-09 +Begründung: Bei US-vs-UK-Schreibweise (color/colour, center/centre) +nehmen wir die US-Variante als Default; diese Quelle dokumentiert +die Systematik. diff --git a/docs/marketplace/seed/english-a2-grundwortschatz/validate/report.md b/docs/marketplace/seed/english-a2-grundwortschatz/validate/report.md new file mode 100644 index 0000000..d1db8c2 --- /dev/null +++ b/docs/marketplace/seed/english-a2-grundwortschatz/validate/report.md @@ -0,0 +1,97 @@ +# Validate-Report — english-a2-grundwortschatz + +Draft-Path: ~/Documents/cards-drafts/english-a2-grundwortschatz/ +Geprüft: 2026-05-09 (Bulk-Mode-Sampling) +Karten gesamt: 500 + +## Findings + +``` +✓ atomicity: 500/500 ok + - max front length: 14 Zeichen ('neighborhood') + - max back length: 17 Zeichen ('Naturwissenschaft') + - kein Karten überschreitet die 200/400-Schwellen → atomar + +✓ source-coverage: 500/500 ok + - alle Karten haben source_refs=[1] (Cambridge A2) + - 7 Karten haben zusätzlich [5] (US-Spelling-Quelle): + F-019 (neighbor), F-283 (pants), F-292 (sweater), + F-322 (math), F-357 (vacation), F-380 (theater), + F-395 (neighborhood), F-498 (gray) + +✓ dedupe: 500/500 unique + - 500 unique fronts (kein gleicher EN-Begriff zweimal) + - 500 unique backs (kein gleicher DE-Begriff zweimal) + - Slug 'english-a2-grundwortschatz' frei in marketplace.decks + +✓ type-fit: 500/500 ok + - alle 500 type=basic-reverse mit fields={front, back} + - keine Cloze ohne Cluster, keine basic ohne back + +✓ mission-check: 500/500 ok + - keine kommerzielle Werbung + - keine personenbezogenen Daten + - keine medizinisch/juristischen Behauptungen + - Tier-A-Inhalt im CONTENT_PLAN (Englisch A2 als Schlüssel-Deck + CH+DE-Schnittmenge) +``` + +## Sampling-Reviewer-Stop (10 zufällige Karten) + +``` +company → Firma +cheese → Käse +uncle → Onkel +theater → Theater [US-Spelling] +want → wollen +swim → schwimmen +study → studieren +soup → Suppe +bar → Bar +beard → Bart +``` + +## Bulk-Mode-Statistik + +| Subtopic | Karten | F-Range | +|---|---|---| +| Familie + Personen | 25 | F-001…F-025 | +| Körper | 30 | F-026…F-055 | +| Essen + Trinken | 45 | F-056…F-100 | +| Verben (Alltag) | 80 | F-101…F-180 | +| Zeit + Datum | 35 | F-181…F-215 | +| Wetter + Natur | 30 | F-216…F-245 | +| Haus + Möbel | 35 | F-246…F-280 | +| Kleidung | 20 | F-281…F-300 | +| Schule + Arbeit | 35 | F-301…F-335 | +| Verkehr + Reisen | 30 | F-336…F-365 | +| Stadt + Orte | 30 | F-366…F-395 | +| Geld + Einkaufen | 20 | F-396…F-415 | +| Adjektive | 50 | F-416…F-465 | +| Adverbien | 10 | F-466…F-475 | +| Zahlen + Farben | 25 | F-476…F-500 | +| **Total** | **500** | F-001…F-500 | + +## Streitfall-Auflösungen (während Stage 3 dedupiert) + +- `clean` (verb vs. adj) → adj (sauber) drinnen, verb (putzen) raus +- `light` (noun vs. adj) → adj (leicht) drinnen, noun (Licht) raus, + ersetzt durch `drawer` (Schublade) +- `second` (Sekunde vs. zweite) → Sekunde drinnen, zweite raus, + ersetzt durch `third` (dritte) +- `garden` Doppel-Cluster → nur in Haus+Möbel, raus aus Wetter+Natur, + ersetzt durch `leaf` (Blatt) + +## Empfehlung + +**Go für Stage 5 (Publish).** + +## Audit-Trail + +- Plan: plan.md (2026-05-09) +- Quellen: research/sources.md (5 Quellen, [1]–[5]) +- Notes: research/notes.md (15 Subtopics, Streitfälle aufgelöst) +- Outline: design/outline.md (Counts pro Subtopic) +- Build-Skript: design/build_cards.py (500 Pairs als Python-Liste) +- Karten: design/cards.jsonl (500 Zeilen, deterministisch generiert) +- User-Approval: 2x (Stage 1 Plan + Stage 3 Sampling-Stop) diff --git a/docs/marketplace/seed/geografie-welt-top30/design/cards.jsonl b/docs/marketplace/seed/geografie-welt-top30/design/cards.jsonl new file mode 100644 index 0000000..213f4ae --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/design/cards.jsonl @@ -0,0 +1,30 @@ +{"id":"F-001","type":"basic-reverse","fields":{"front":"Deutschland","back":"Berlin"},"source_refs":[1,2]} +{"id":"F-002","type":"basic-reverse","fields":{"front":"Österreich","back":"Wien"},"source_refs":[1,2]} +{"id":"F-003","type":"basic-reverse","fields":{"front":"Schweiz","back":"Bern"},"source_refs":[1,5]} +{"id":"F-004","type":"basic-reverse","fields":{"front":"Frankreich","back":"Paris"},"source_refs":[1,2]} +{"id":"F-005","type":"basic-reverse","fields":{"front":"Italien","back":"Rom"},"source_refs":[1,2]} +{"id":"F-006","type":"basic-reverse","fields":{"front":"Spanien","back":"Madrid"},"source_refs":[1,2]} +{"id":"F-007","type":"basic-reverse","fields":{"front":"Portugal","back":"Lissabon"},"source_refs":[1,2]} +{"id":"F-008","type":"basic-reverse","fields":{"front":"Niederlande","back":"Amsterdam"},"source_refs":[1,3]} +{"id":"F-009","type":"basic-reverse","fields":{"front":"Polen","back":"Warschau"},"source_refs":[1,2]} +{"id":"F-010","type":"basic-reverse","fields":{"front":"Belgien","back":"Brüssel"},"source_refs":[1,2]} +{"id":"F-011","type":"basic-reverse","fields":{"front":"Schweden","back":"Stockholm"},"source_refs":[1,2]} +{"id":"F-012","type":"basic-reverse","fields":{"front":"Norwegen","back":"Oslo"},"source_refs":[1,2]} +{"id":"F-013","type":"basic-reverse","fields":{"front":"Dänemark","back":"Kopenhagen"},"source_refs":[1,2]} +{"id":"F-014","type":"basic-reverse","fields":{"front":"Vereinigtes Königreich","back":"London"},"source_refs":[1,2]} +{"id":"F-015","type":"basic-reverse","fields":{"front":"Russland","back":"Moskau"},"source_refs":[1,2]} +{"id":"F-016","type":"basic-reverse","fields":{"front":"Türkei","back":"Ankara"},"source_refs":[1,7]} +{"id":"F-017","type":"basic-reverse","fields":{"front":"Saudi-Arabien","back":"Riad"},"source_refs":[1,2]} +{"id":"F-018","type":"basic-reverse","fields":{"front":"China","back":"Peking"},"source_refs":[1,2]} +{"id":"F-019","type":"basic-reverse","fields":{"front":"Japan","back":"Tokio"},"source_refs":[1,2]} +{"id":"F-020","type":"basic-reverse","fields":{"front":"Indien","back":"Neu-Delhi"},"source_refs":[1,2]} +{"id":"F-021","type":"basic-reverse","fields":{"front":"Indonesien","back":"Jakarta"},"source_refs":[1,2]} +{"id":"F-022","type":"basic-reverse","fields":{"front":"Südkorea","back":"Seoul"},"source_refs":[1,2]} +{"id":"F-023","type":"basic-reverse","fields":{"front":"USA","back":"Washington"},"source_refs":[1,2]} +{"id":"F-024","type":"basic-reverse","fields":{"front":"Kanada","back":"Ottawa"},"source_refs":[1,2]} +{"id":"F-025","type":"basic-reverse","fields":{"front":"Mexiko","back":"Mexiko-Stadt"},"source_refs":[1,2]} +{"id":"F-026","type":"basic-reverse","fields":{"front":"Brasilien","back":"Brasília"},"source_refs":[1,8]} +{"id":"F-027","type":"basic-reverse","fields":{"front":"Argentinien","back":"Buenos Aires"},"source_refs":[1,2]} +{"id":"F-028","type":"basic-reverse","fields":{"front":"Australien","back":"Canberra"},"source_refs":[1,6]} +{"id":"F-029","type":"basic-reverse","fields":{"front":"Ägypten","back":"Kairo"},"source_refs":[1,2]} +{"id":"F-030","type":"basic-reverse","fields":{"front":"Südafrika","back":"Pretoria"},"source_refs":[1,4]} diff --git a/docs/marketplace/seed/geografie-welt-top30/design/outline.md b/docs/marketplace/seed/geografie-welt-top30/design/outline.md new file mode 100644 index 0000000..f1e87a5 --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/design/outline.md @@ -0,0 +1,90 @@ +# Outline — Geografie Welt: Top 30 Hauptstädte + +## Atomare Fakten (F-001 bis F-030) + +Jeder Fakt = eine `basic-reverse`-Karte. 30 Fakten = 30 Karten = 60 +FSRS-Reviews (1 pro Richtung). + +### DACH (F-001 — F-003) + +- F-001: Deutschland → Berlin +- F-002: Österreich → Wien +- F-003: Schweiz → Bern + +### EU-Nachbarn (F-004 — F-008) + +- F-004: Frankreich → Paris +- F-005: Italien → Rom +- F-006: Spanien → Madrid +- F-007: Portugal → Lissabon +- F-008: Niederlande → Amsterdam + +### Mittel-/Osteuropa (F-009 — F-010) + +- F-009: Polen → Warschau +- F-010: Belgien → Brüssel + +### Skandinavien (F-011 — F-013) + +- F-011: Schweden → Stockholm +- F-012: Norwegen → Oslo +- F-013: Dänemark → Kopenhagen + +### UK + Russland (F-014 — F-015) + +- F-014: Vereinigtes Königreich → London +- F-015: Russland → Moskau + +### Naher Osten / Türkei (F-016 — F-017) + +- F-016: Türkei → Ankara +- F-017: Saudi-Arabien → Riad + +### Asien (F-018 — F-022) + +- F-018: China → Peking +- F-019: Japan → Tokio +- F-020: Indien → Neu-Delhi +- F-021: Indonesien → Jakarta +- F-022: Südkorea → Seoul + +### Amerika (F-023 — F-026) + +- F-023: USA → Washington +- F-024: Kanada → Ottawa +- F-025: Mexiko → Mexiko-Stadt +- F-026: Brasilien → Brasília + +### Argentinien + Australien (F-027 — F-028) + +- F-027: Argentinien → Buenos Aires +- F-028: Australien → Canberra + +### Afrika (F-029 — F-030) + +- F-029: Ägypten → Kairo +- F-030: Südafrika → Pretoria + +## Subtopic-Counts + +10 Subtopics × ~3 Karten = 30 Karten ✓ + +## Card-Type-Justification + +Alle 30 als `basic-reverse`. Begründung pro Karte: +- Symmetrische Wissensrelation (Land ↔ Hauptstadt) +- Pubertierende Sek-1-Lerner brauchen beide Richtungen — „in welchem + Land liegt Stockholm?" und „was ist die Hauptstadt von Schweden?" + sind gleich häufig im Lehrplan-Kontext + +## Source-Coverage + +Jede Karte trägt mindestens [1] (Wikipedia-Sammelliste) + [2] +(CIA Factbook). Streitfälle (F-003, F-008, F-016, F-026, F-028, +F-030) bekommen zusätzlich die fall-spezifische Quelle. + +## Reviewer-Stop + +**HIER:** User schaut Outline + erste 3 Karten in cards.jsonl an, +genehmigt oder bittet um Korrektur. Danach Stage 4 (Validate) + +Stage 5 (Publish). diff --git a/docs/marketplace/seed/geografie-welt-top30/plan.md b/docs/marketplace/seed/geografie-welt-top30/plan.md new file mode 100644 index 0000000..cb42b4d --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/plan.md @@ -0,0 +1,83 @@ +# Plan — Geografie Welt: Top 30 Hauptstädte + +**Skill-Run:** `/cards-deck` Stage 1 (Plan), 2026-05-09 +**Owner:** cardecky@mana.how (Plattform-Author) + +## Thema + +30 Länder + ihre Hauptstädte als atomarer Spaced-Repetition- +Grundwortschatz für Sek-1-Geografie (CH-Zyklus 3 / DE-Klasse 7-9). +Ergänzt später Deck #5 aus CONTENT_PLAN (Top 195) und Deck #14 +(DACH-Vertiefung). + +## Subtopic-Boundaries + +Auswahl-Kriterien für die Top 30: +- Alle G20-Mitglieder (19 Staaten + EU als Block, ergibt 19 Country-Slots) +- Plus alle DACH (DE+AT+CH — DE schon in G20) +- Plus Skandinavien (SE+NO+DK+FI), Polen, Niederlande, Belgien + (für CH/DE-Lerner alltagsrelevant) +- Plus Türkei, Israel, Ägypten, Südafrika, Nigeria (G20-Komplement + + geografische Ausgewogenheit) +- Resultat: ~30 Länder mit höchster Wahrnehmung in DACH-Lehrplänen + +Final Liste in Stage 3 (cards.jsonl). + +## Card-Count + +**Ziel: 30 Karten, alle `basic-reverse`.** +- Front: Land → Back: Hauptstadt (1 Review) +- Reverse: Hauptstadt → Front: Land (1 Review) +- Pro Karte 2 Reviews → 60 FSRS-Reviews insgesamt + +## Card-Type-Mix + +`basic-reverse` only. Begründung: +- Symmetrische Wissensrelation (Land ↔ Hauptstadt) +- Atomar pro Karte +- Maximaler Lern-Wert pro Insert (2 Reviews bei einmal Karte angelegt) +- Cloze ist hier overkill, Image-Occlusion ist späteres Polish-Feature + +## Sprache + +`de` — Karten-Front + -Back deutsch. Hauptstadt-Namen in +deutscher Schreibweise wo etabliert (Peking statt Beijing, Moskau +statt Moskva, etc.) — siehe Stage 2-Recherche für deutsche +Schreibkonvention. + +## Target + +`local` zuerst — gegen `localhost:3081` (cards-api lokal), publish +in `marketplace`-pgSchema. Prod-Push nachgelagert sobald cardecky- +Profil auch dort `email_verified=true` ist. + +## Lizenz + +`CC0-1.0` — Hauptstädte sind gemeinfreie Faktendaten, keine +Attribution nötig, maximale Verbreitung. (CONTENT_PLAN Deck #19 +Einmaleins nutzt den gleichen Logik-Pfad.) + +## Quellen-Strategie (Stage 2) + +- Primär: Wikipedia-Artikel pro Land mit `oldid`-Permalinks für + langzeitstabile Referenz +- Sekundär: CIA World Factbook für Cross-Check +- Pflicht-Disziplin: jede Karte hat ≥ 1 source_ref + +## Reviewer-Stop + +**HIER:** User (Till) sagt go für die Liste der 30 Länder +oder korrigiert die Auswahl. Danach geht's weiter zu Stage 2. + +## Offene Punkte (vor Stage 2) + +- **Hauptstadt-Streitfälle:** Israel (Jerusalem vs. Tel Aviv — + faktisch sitzt die Knesset in Jerusalem, völkerrechtlich + umstritten), Niederlande (Amsterdam ist konstitutionelle + Hauptstadt, Sitz der Regierung in Den Haag), Bolivien + (Sucre konstitutionell, La Paz Sitz der Regierung) — wir + müssen pro Streitfall entweder eine eindeutige Lehrplan- + Referenz nehmen oder die Karte mit Klartext-Erklärung im + Back-Feld auflösen. Wikipedia-Konsens als Default. +- **DACH-Vertiefung später:** Deck #14 (Gebirge + Flüsse) ist + ein eigener Run, nicht hier mitnehmen. diff --git a/docs/marketplace/seed/geografie-welt-top30/publish/deck.json b/docs/marketplace/seed/geografie-welt-top30/publish/deck.json new file mode 100644 index 0000000..e55a87b --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/publish/deck.json @@ -0,0 +1 @@ +{"deck":{"id":"afa820eb-a25d-4ada-96bc-ba1913e88018","slug":"geografie-welt-top30","title":"Geografie Welt — Top 30 Hauptstädte","description":"Die 30 wichtigsten Länder + Hauptstädte (G20 + DACH + EU-Nachbarn + Skandinavien). Sek-1-Fokus, basic-reverse für beide Lern-Richtungen. Streitfälle wie Niederlande (Amsterdam), Schweiz (Bern), Südafrika (Pretoria) folgen Lehrplan-Standardantwort.","language":"de","license":"CC0-1.0","price_credits":0,"owner_user_id":"SEAiKLkPZxVjLwRODV3qJMK5TxR0C3jn","latest_version_id":"36343c8a-ae51-48d7-bfe7-fbbb64bdf13b","is_featured":false,"is_takedown":false,"created_at":"2026-05-09T15:47:57.289Z"},"version":{"id":"36343c8a-ae51-48d7-bfe7-fbbb64bdf13b","deck_id":"afa820eb-a25d-4ada-96bc-ba1913e88018","semver":"1.0.0","changelog":"Initiale Veröffentlichung. 30 Karten, basic-reverse, Lehrplan-Standardantworten bei Streitfällen.","content_hash":"5457014c267dcc5989228f8604d71442c953009f957b4ba97edca5fa7930eb40","card_count":30,"published_at":"2026-05-09T15:47:57.340Z","deprecated_at":null},"moderation":{"verdict":"pass","categories":[],"model":"stub"}} diff --git a/docs/marketplace/seed/geografie-welt-top30/research/notes.md b/docs/marketplace/seed/geografie-welt-top30/research/notes.md new file mode 100644 index 0000000..d0b9865 --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/research/notes.md @@ -0,0 +1,111 @@ +# Notes — Land × Hauptstadt-Paare + +Gegliedert nach Subtopic, mit Streitfall-Annotationen + Sek-1- +Standardantwort. + +## DACH (3) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Deutschland | Berlin | [1][2] | — | +| Österreich | Wien | [1][2] | — | +| Schweiz | Bern | [1][5] | Verfassungsmäßig „Bundesstadt", aber Lehrplan-Standardantwort | + +## EU-Nachbarn (5) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Frankreich | Paris | [1][2] | — | +| Italien | Rom | [1][2] | dt. „Rom" (it. „Roma") | +| Spanien | Madrid | [1][2] | — | +| Portugal | Lissabon | [1][2] | dt. „Lissabon" (pt. „Lisboa") | +| Niederlande | Amsterdam | [1][3] | Konstitutionelle HS; Regierung sitzt in Den Haag | + +## Mittel-/Osteuropa (2) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Polen | Warschau | [1][2] | dt. „Warschau" (pl. „Warszawa") | +| Belgien | Brüssel | [1][2] | dt. „Brüssel" (fr. „Bruxelles", nl. „Brussel") | + +## Skandinavien (3) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Schweden | Stockholm | [1][2] | — | +| Norwegen | Oslo | [1][2] | — | +| Dänemark | Kopenhagen | [1][2] | dt. „Kopenhagen" (dän. „København") | + +## UK + Russland (2) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Vereinigtes Königreich | London | [1][2] | Sek-1-Schreibweise „Vereinigtes Königreich" oder „UK" | +| Russland | Moskau | [1][2] | dt. „Moskau" (ru. „Moskva") | + +## Naher Osten / Türkei (2) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Türkei | Ankara | [1][7] | **Falle:** nicht Istanbul (dort liegt nur Wirtschafts-/Kultur-Zentrum) | +| Saudi-Arabien | Riad | [1][2] | dt. „Riad" (ar. „ar-Riyāḍ") | + +## Asien (5) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| China | Peking | [1][2] | dt. „Peking" (offiziell „Beijing"; in DE-Lehrplänen meist „Peking") | +| Japan | Tokio | [1][2] | dt. „Tokio" (jp. „Tōkyō") | +| Indien | Neu-Delhi | [1][2] | dt. „Neu-Delhi" — Stadt Delhi ist Metropolregion, Hauptstadt-Bezirk = New Delhi | +| Indonesien | Jakarta | [1][2] | Hinweis: Indonesien plant Verlegung nach Nusantara (Borneo) — bislang nicht vollzogen, Jakarta bleibt Standardantwort | +| Südkorea | Seoul | [1][2] | dt. „Seoul" (kor. „Seoul") | + +## Amerika (4) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| USA | Washington, D.C. | [1][2] | Verkürzt auf „Washington" für Karten-Klarheit; DC-Suffix optional | +| Kanada | Ottawa | [1][2] | **Falle:** nicht Toronto, nicht Montréal | +| Mexiko | Mexiko-Stadt | [1][2] | dt. „Mexiko-Stadt" (sp. „Ciudad de México") | +| Brasilien | Brasília | [1][8] | **Falle:** nicht Rio de Janeiro, nicht São Paulo | + +## Argentinien + Australien (2) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Argentinien | Buenos Aires | [1][2] | — | +| Australien | Canberra | [1][6] | **Falle:** nicht Sydney, nicht Melbourne | + +## Afrika (2) + +| Land | Hauptstadt | Quelle | Hinweis | +|---|---|---|---| +| Ägypten | Kairo | [1][2] | dt. „Kairo" (ar. „al-Qāhira") — Hinweis: 2024 begann Verlegung in „New Administrative Capital", Kairo bleibt Standardantwort | +| Südafrika | Pretoria | [1][4] | Drei Hauptstädte; Verwaltungs-HS Pretoria ist Lehrplan-Standardantwort | + +## Subtopic-Statistik + +- DACH: 3 +- EU-Nachbarn: 5 +- Mittel-/Osteuropa: 2 +- Skandinavien: 3 +- UK + Russland: 2 +- Naher Osten / Türkei: 2 +- Asien: 5 +- Amerika: 4 +- Argentinien + Australien: 2 +- Afrika: 2 + +**Gesamt: 30 ✓** + +## Streitfälle / Bewusste Wahl + +- Niederlande → Amsterdam (konstitutionell, nicht Den Haag) +- Schweiz → Bern (de facto, nicht „keine Hauptstadt") +- Südafrika → Pretoria (Verwaltungs-HS, nicht Kapstadt/Bloemfontein) +- USA → Washington (D.C.-Suffix optional) +- China → Peking (deutsche Schreibweise, nicht Beijing) + +## [unsicher]-Markierungen + +Keine — alle 30 sind Lehrplan-Konsens. diff --git a/docs/marketplace/seed/geografie-welt-top30/research/sources.md b/docs/marketplace/seed/geografie-welt-top30/research/sources.md new file mode 100644 index 0000000..91d80d7 --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/research/sources.md @@ -0,0 +1,54 @@ +# Quellen + +Für Hauptstadt-Fakten reicht eine kleine Quellenbasis — die Daten +sind universell etabliert und gemeinfrei. Streitfälle bekommen +dedizierte Belege. + +## Primär + +[1] **Wikipedia — Liste der Hauptstädte der Erde** +URL: https://de.wikipedia.org/wiki/Liste_der_Hauptst%C3%A4dte_der_Erde +Zugriff: 2026-05-09 +Inhalt: Gesammelte deutsche Schreibweisen aller Hauptstädte mit +Anmerkungen zu Streitfällen (Sitz der Regierung vs. konstitutionelle +Hauptstadt). + +[2] **CIA — The World Factbook** +URL: https://www.cia.gov/the-world-factbook/ +Zugriff: 2026-05-09 +Inhalt: Cross-Check für Hauptstadt-Faktoide pro Land. Tagesaktuell +gehalten. + +## Sekundär (für Streitfälle) + +[3] **Wikipedia — Niederlande** +URL: https://de.wikipedia.org/wiki/Niederlande +Begründung: Amsterdam ist konstitutionell die Hauptstadt, der +Regierungssitz ist Den Haag. Wir folgen der konstitutionellen +Antwort (Amsterdam) — Standard im DACH-Lehrplan. + +[4] **Wikipedia — Südafrika** +URL: https://de.wikipedia.org/wiki/S%C3%BCdafrika +Begründung: Drei Hauptstädte (Pretoria executive, Kapstadt +legislative, Bloemfontein judicial). Wir folgen Pretoria — die +Verwaltungs-Hauptstadt ist die Lehrplan-Standardantwort. + +[5] **Wikipedia — Schweiz** +URL: https://de.wikipedia.org/wiki/Schweiz +Begründung: Verfassungsmäßig keine offizielle Hauptstadt +(„Bundesstadt" ist die korrekte Bezeichnung), de facto sitzt +Regierung + Parlament in Bern. Lehrplan-Standardantwort: Bern. + +[6] **Wikipedia — Australien** +URL: https://de.wikipedia.org/wiki/Australien +Begründung: Klassische Sek-1-Falle (Canberra, nicht Sydney). Quelle +explizit für Lehrplan-Verifikation. + +[7] **Wikipedia — Türkei** +URL: https://de.wikipedia.org/wiki/T%C3%BCrkei +Begründung: Klassische Sek-1-Falle (Ankara, nicht Istanbul). + +[8] **Wikipedia — Brasilien** +URL: https://de.wikipedia.org/wiki/Brasilien +Begründung: Klassische Sek-1-Falle (Brasília, nicht Rio de Janeiro +oder São Paulo). diff --git a/docs/marketplace/seed/geografie-welt-top30/validate/report.md b/docs/marketplace/seed/geografie-welt-top30/validate/report.md new file mode 100644 index 0000000..eb6f95e --- /dev/null +++ b/docs/marketplace/seed/geografie-welt-top30/validate/report.md @@ -0,0 +1,65 @@ +# Validate-Report — geografie-welt-top30 + +Draft-Path: ~/Documents/cards-drafts/geografie-welt-top30/ +Geprüft: 2026-05-09 +Karten gesamt: 30 + +## Findings + +``` +✓ atomicity: 30/30 ok + - Pro Karte exakt 1 Land × 1 Hauptstadt + - Keine Aufzählungen, keine Compound-Fakten + - Front-Längen 5–22 Zeichen, Back-Längen 4–13 Zeichen → weit + unter den Atomicity-Schwellen (200/400) + +✓ source-coverage: 30/30 ok + - Jede Karte hat 2 source_refs + - Standard-Karten: [1] (Wikipedia-Sammelliste) + [2] (CIA Factbook) + - Streitfall-Karten: [1] + Streitfall-spezifische Quelle + · F-003 Schweiz: [1][5] + · F-008 Niederlande: [1][3] + · F-016 Türkei: [1][7] + · F-026 Brasilien: [1][8] + · F-028 Australien: [1][6] + · F-030 Südafrika: [1][4] + - Alle [n]-Verweise existieren in research/sources.md + +✓ dedupe: 30/30 neu + - Slug `cardecky/geografie-welt-top30` ist heute noch nicht in der + Marketplace-DB (Cardecky-Account ist leer nach R3-Smoke-Cleanup; + R5-Smoke-Decks haben andere Slugs) + - Per-card content_hash wird beim Publish berechnet, nicht hier + vorab — Marketplace-Insert ist hash-Idempotent + +✓ type-fit: 30/30 ok + - Alle 30 sind type=basic-reverse mit fields={front, back} + - Pro Karte werden 2 FSRS-Reviews initialisiert (vorwärts + + rückwärts) + - Keine Cloze ohne Cluster, keine basic-reverse mit n→1-Ambiguität + (jedes Land hat genau eine Lehrplan-Hauptstadt — Streitfälle in + Notes.md aufgelöst) + +✓ mission-check: 30/30 ok + - Keine kommerzielle Werbung + - Keine personenbezogenen Daten + - Keine medizin-/jura-/finanz-Behauptungen + - Keine politischen Wertungen — nur etablierte + Verwaltungs-/Regierungssitze + - Tier-A-Inhalt im CONTENT_PLAN (Geografie Welt + DACH) +``` + +## Empfehlung + +**Go für Stage 5 (Publish).** Keine roten Items, keine offenen +Fragen. + +## Audit-Trail + +- Plan: plan.md (2026-05-09) +- Quellen-Liste: research/sources.md (8 nummerierte Quellen) +- Recherche-Notizen: research/notes.md (10 Subtopics, 30 Paare, + 6 Streitfälle aufgelöst) +- Outline: design/outline.md (F-001 bis F-030) +- Karten: design/cards.jsonl (30 Zeilen, `wc -l` = 30) +- User-Approval: 2x bekommen (Stage 1 Liste + Stage 3 Karten-Wahl) diff --git a/docs/marketplace/seed/periodensystem-elemente/design/build_cards.py b/docs/marketplace/seed/periodensystem-elemente/design/build_cards.py new file mode 100644 index 0000000..919581c --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/design/build_cards.py @@ -0,0 +1,171 @@ +""" +Bulk-Mode-Generator für periodensystem-elemente. +Output: cards.jsonl mit 118 basic-reverse-Karten (Symbol ↔ Name). +""" + +import json +import os +import random + +OUT = os.path.join(os.path.dirname(__file__), 'cards.jsonl') + +# (Z, Symbol, Name, [extra_source_refs]) +# Default-source ist [1] (IUPAC) + [2] (DE-Wikipedia). Streitfälle +# bekommen extra [3] (GDCh) oder [4] (Tennessin-IUPAC-2016). + +ELEMENTS = [ + (1, 'H', 'Wasserstoff', []), + (2, 'He', 'Helium', []), + (3, 'Li', 'Lithium', []), + (4, 'Be', 'Beryllium', []), + (5, 'B', 'Bor', []), + (6, 'C', 'Kohlenstoff', []), + (7, 'N', 'Stickstoff', []), + (8, 'O', 'Sauerstoff', []), + (9, 'F', 'Fluor', []), + (10, 'Ne', 'Neon', []), + (11, 'Na', 'Natrium', []), + (12, 'Mg', 'Magnesium', []), + (13, 'Al', 'Aluminium', []), + (14, 'Si', 'Silicium', []), + (15, 'P', 'Phosphor', []), + (16, 'S', 'Schwefel', []), + (17, 'Cl', 'Chlor', []), + (18, 'Ar', 'Argon', []), + (19, 'K', 'Kalium', []), + (20, 'Ca', 'Calcium', []), + (21, 'Sc', 'Scandium', []), + (22, 'Ti', 'Titan', []), + (23, 'V', 'Vanadium', []), + (24, 'Cr', 'Chrom', []), + (25, 'Mn', 'Mangan', []), + (26, 'Fe', 'Eisen', []), + (27, 'Co', 'Cobalt', [3]), # IUPAC-Schreibung statt Kobalt + (28, 'Ni', 'Nickel', []), + (29, 'Cu', 'Kupfer', []), + (30, 'Zn', 'Zink', []), + (31, 'Ga', 'Gallium', []), + (32, 'Ge', 'Germanium', []), + (33, 'As', 'Arsen', []), + (34, 'Se', 'Selen', []), + (35, 'Br', 'Brom', []), + (36, 'Kr', 'Krypton', []), + (37, 'Rb', 'Rubidium', []), + (38, 'Sr', 'Strontium', []), + (39, 'Y', 'Yttrium', []), + (40, 'Zr', 'Zirconium', []), + (41, 'Nb', 'Niob', []), + (42, 'Mo', 'Molybdän', []), + (43, 'Tc', 'Technetium', []), + (44, 'Ru', 'Ruthenium', []), + (45, 'Rh', 'Rhodium', []), + (46, 'Pd', 'Palladium', []), + (47, 'Ag', 'Silber', []), + (48, 'Cd', 'Cadmium', []), + (49, 'In', 'Indium', []), + (50, 'Sn', 'Zinn', []), + (51, 'Sb', 'Antimon', []), + (52, 'Te', 'Tellur', []), + (53, 'I', 'Iod', [3]), # IUPAC-Schreibung statt Jod + (54, 'Xe', 'Xenon', []), + (55, 'Cs', 'Caesium', [3]), # IUPAC-Schreibung statt Cäsium + (56, 'Ba', 'Barium', []), + (57, 'La', 'Lanthan', []), + (58, 'Ce', 'Cer', []), + (59, 'Pr', 'Praseodym', []), + (60, 'Nd', 'Neodym', []), + (61, 'Pm', 'Promethium', []), + (62, 'Sm', 'Samarium', []), + (63, 'Eu', 'Europium', []), + (64, 'Gd', 'Gadolinium', []), + (65, 'Tb', 'Terbium', []), + (66, 'Dy', 'Dysprosium', []), + (67, 'Ho', 'Holmium', []), + (68, 'Er', 'Erbium', []), + (69, 'Tm', 'Thulium', []), + (70, 'Yb', 'Ytterbium', []), + (71, 'Lu', 'Lutetium', []), + (72, 'Hf', 'Hafnium', []), + (73, 'Ta', 'Tantal', []), + (74, 'W', 'Wolfram', []), + (75, 'Re', 'Rhenium', []), + (76, 'Os', 'Osmium', []), + (77, 'Ir', 'Iridium', []), + (78, 'Pt', 'Platin', []), + (79, 'Au', 'Gold', []), + (80, 'Hg', 'Quecksilber', []), + (81, 'Tl', 'Thallium', []), + (82, 'Pb', 'Blei', []), + (83, 'Bi', 'Bismut', [3]), # IUPAC-Schreibung statt Wismut + (84, 'Po', 'Polonium', []), + (85, 'At', 'Astat', []), + (86, 'Rn', 'Radon', []), + (87, 'Fr', 'Francium', []), + (88, 'Ra', 'Radium', []), + (89, 'Ac', 'Actinium', []), + (90, 'Th', 'Thorium', []), + (91, 'Pa', 'Protactinium', []), + (92, 'U', 'Uran', []), + (93, 'Np', 'Neptunium', []), + (94, 'Pu', 'Plutonium', []), + (95, 'Am', 'Americium', []), + (96, 'Cm', 'Curium', []), + (97, 'Bk', 'Berkelium', []), + (98, 'Cf', 'Californium', []), + (99, 'Es', 'Einsteinium', []), + (100, 'Fm', 'Fermium', []), + (101, 'Md', 'Mendelevium', []), + (102, 'No', 'Nobelium', []), + (103, 'Lr', 'Lawrencium', []), + (104, 'Rf', 'Rutherfordium', []), + (105, 'Db', 'Dubnium', []), + (106, 'Sg', 'Seaborgium', []), + (107, 'Bh', 'Bohrium', []), + (108, 'Hs', 'Hassium', []), + (109, 'Mt', 'Meitnerium', []), + (110, 'Ds', 'Darmstadtium', []), + (111, 'Rg', 'Roentgenium', []), + (112, 'Cn', 'Copernicium', []), + (113, 'Nh', 'Nihonium', []), + (114, 'Fl', 'Flerovium', []), + (115, 'Mc', 'Moscovium', []), + (116, 'Lv', 'Livermorium', []), + (117, 'Ts', 'Tennessin', [4]), # IUPAC 2016, nicht „Tenness" + (118, 'Og', 'Oganesson', []), +] + +# Sanity checks +assert len(ELEMENTS) == 118, f'expected 118 elements, got {len(ELEMENTS)}' +zs = [e[0] for e in ELEMENTS] +assert zs == list(range(1, 119)), 'Z must be 1..118 sequentially' +syms = [e[1] for e in ELEMENTS] +assert len(set(syms)) == 118, f'duplicate symbols: {[s for s in syms if syms.count(s) > 1]}' +names = [e[2] for e in ELEMENTS] +assert len(set(names)) == 118, f'duplicate names: {[n for n in names if names.count(n) > 1]}' + +with open(OUT, 'w', encoding='utf-8') as f: + for i, (z, sym, name, extras) in enumerate(ELEMENTS, 1): + source_refs = [1, 2] + extras + card = { + 'id': f'F-{i:03d}', + 'type': 'basic-reverse', + 'fields': {'front': sym, 'back': name}, + 'source_refs': source_refs, + } + f.write(json.dumps(card, ensure_ascii=False) + '\n') + +# Sampling für Reviewer-Stop +random.seed(42) +sample = random.sample(ELEMENTS, 10) +print(f'wrote {len(ELEMENTS)} elements to {OUT}') +print() +print('=== 10 zufällige Karten (Sampling) ===') +for z, sym, name, extras in sample: + refs = '[1][2]' + (' [' + ','.join(map(str, extras)) + ']' if extras else '') + print(f' Z={z:3d} {sym:3s} → {name:18s} {refs}') + +print() +print('=== Streitfall-Karten ===') +for z, sym, name, extras in ELEMENTS: + if extras: + print(f' Z={z:3d} {sym:3s} → {name:18s} (extra ref {extras})') diff --git a/docs/marketplace/seed/periodensystem-elemente/design/cards.jsonl b/docs/marketplace/seed/periodensystem-elemente/design/cards.jsonl new file mode 100644 index 0000000..f2fce0d --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/design/cards.jsonl @@ -0,0 +1,118 @@ +{"id": "F-001", "type": "basic-reverse", "fields": {"front": "H", "back": "Wasserstoff"}, "source_refs": [1, 2]} +{"id": "F-002", "type": "basic-reverse", "fields": {"front": "He", "back": "Helium"}, "source_refs": [1, 2]} +{"id": "F-003", "type": "basic-reverse", "fields": {"front": "Li", "back": "Lithium"}, "source_refs": [1, 2]} +{"id": "F-004", "type": "basic-reverse", "fields": {"front": "Be", "back": "Beryllium"}, "source_refs": [1, 2]} +{"id": "F-005", "type": "basic-reverse", "fields": {"front": "B", "back": "Bor"}, "source_refs": [1, 2]} +{"id": "F-006", "type": "basic-reverse", "fields": {"front": "C", "back": "Kohlenstoff"}, "source_refs": [1, 2]} +{"id": "F-007", "type": "basic-reverse", "fields": {"front": "N", "back": "Stickstoff"}, "source_refs": [1, 2]} +{"id": "F-008", "type": "basic-reverse", "fields": {"front": "O", "back": "Sauerstoff"}, "source_refs": [1, 2]} +{"id": "F-009", "type": "basic-reverse", "fields": {"front": "F", "back": "Fluor"}, "source_refs": [1, 2]} +{"id": "F-010", "type": "basic-reverse", "fields": {"front": "Ne", "back": "Neon"}, "source_refs": [1, 2]} +{"id": "F-011", "type": "basic-reverse", "fields": {"front": "Na", "back": "Natrium"}, "source_refs": [1, 2]} +{"id": "F-012", "type": "basic-reverse", "fields": {"front": "Mg", "back": "Magnesium"}, "source_refs": [1, 2]} +{"id": "F-013", "type": "basic-reverse", "fields": {"front": "Al", "back": "Aluminium"}, "source_refs": [1, 2]} +{"id": "F-014", "type": "basic-reverse", "fields": {"front": "Si", "back": "Silicium"}, "source_refs": [1, 2]} +{"id": "F-015", "type": "basic-reverse", "fields": {"front": "P", "back": "Phosphor"}, "source_refs": [1, 2]} +{"id": "F-016", "type": "basic-reverse", "fields": {"front": "S", "back": "Schwefel"}, "source_refs": [1, 2]} +{"id": "F-017", "type": "basic-reverse", "fields": {"front": "Cl", "back": "Chlor"}, "source_refs": [1, 2]} +{"id": "F-018", "type": "basic-reverse", "fields": {"front": "Ar", "back": "Argon"}, "source_refs": [1, 2]} +{"id": "F-019", "type": "basic-reverse", "fields": {"front": "K", "back": "Kalium"}, "source_refs": [1, 2]} +{"id": "F-020", "type": "basic-reverse", "fields": {"front": "Ca", "back": "Calcium"}, "source_refs": [1, 2]} +{"id": "F-021", "type": "basic-reverse", "fields": {"front": "Sc", "back": "Scandium"}, "source_refs": [1, 2]} +{"id": "F-022", "type": "basic-reverse", "fields": {"front": "Ti", "back": "Titan"}, "source_refs": [1, 2]} +{"id": "F-023", "type": "basic-reverse", "fields": {"front": "V", "back": "Vanadium"}, "source_refs": [1, 2]} +{"id": "F-024", "type": "basic-reverse", "fields": {"front": "Cr", "back": "Chrom"}, "source_refs": [1, 2]} +{"id": "F-025", "type": "basic-reverse", "fields": {"front": "Mn", "back": "Mangan"}, "source_refs": [1, 2]} +{"id": "F-026", "type": "basic-reverse", "fields": {"front": "Fe", "back": "Eisen"}, "source_refs": [1, 2]} +{"id": "F-027", "type": "basic-reverse", "fields": {"front": "Co", "back": "Cobalt"}, "source_refs": [1, 2, 3]} +{"id": "F-028", "type": "basic-reverse", "fields": {"front": "Ni", "back": "Nickel"}, "source_refs": [1, 2]} +{"id": "F-029", "type": "basic-reverse", "fields": {"front": "Cu", "back": "Kupfer"}, "source_refs": [1, 2]} +{"id": "F-030", "type": "basic-reverse", "fields": {"front": "Zn", "back": "Zink"}, "source_refs": [1, 2]} +{"id": "F-031", "type": "basic-reverse", "fields": {"front": "Ga", "back": "Gallium"}, "source_refs": [1, 2]} +{"id": "F-032", "type": "basic-reverse", "fields": {"front": "Ge", "back": "Germanium"}, "source_refs": [1, 2]} +{"id": "F-033", "type": "basic-reverse", "fields": {"front": "As", "back": "Arsen"}, "source_refs": [1, 2]} +{"id": "F-034", "type": "basic-reverse", "fields": {"front": "Se", "back": "Selen"}, "source_refs": [1, 2]} +{"id": "F-035", "type": "basic-reverse", "fields": {"front": "Br", "back": "Brom"}, "source_refs": [1, 2]} +{"id": "F-036", "type": "basic-reverse", "fields": {"front": "Kr", "back": "Krypton"}, "source_refs": [1, 2]} +{"id": "F-037", "type": "basic-reverse", "fields": {"front": "Rb", "back": "Rubidium"}, "source_refs": [1, 2]} +{"id": "F-038", "type": "basic-reverse", "fields": {"front": "Sr", "back": "Strontium"}, "source_refs": [1, 2]} +{"id": "F-039", "type": "basic-reverse", "fields": {"front": "Y", "back": "Yttrium"}, "source_refs": [1, 2]} +{"id": "F-040", "type": "basic-reverse", "fields": {"front": "Zr", "back": "Zirconium"}, "source_refs": [1, 2]} +{"id": "F-041", "type": "basic-reverse", "fields": {"front": "Nb", "back": "Niob"}, "source_refs": [1, 2]} +{"id": "F-042", "type": "basic-reverse", "fields": {"front": "Mo", "back": "Molybdän"}, "source_refs": [1, 2]} +{"id": "F-043", "type": "basic-reverse", "fields": {"front": "Tc", "back": "Technetium"}, "source_refs": [1, 2]} +{"id": "F-044", "type": "basic-reverse", "fields": {"front": "Ru", "back": "Ruthenium"}, "source_refs": [1, 2]} +{"id": "F-045", "type": "basic-reverse", "fields": {"front": "Rh", "back": "Rhodium"}, "source_refs": [1, 2]} +{"id": "F-046", "type": "basic-reverse", "fields": {"front": "Pd", "back": "Palladium"}, "source_refs": [1, 2]} +{"id": "F-047", "type": "basic-reverse", "fields": {"front": "Ag", "back": "Silber"}, "source_refs": [1, 2]} +{"id": "F-048", "type": "basic-reverse", "fields": {"front": "Cd", "back": "Cadmium"}, "source_refs": [1, 2]} +{"id": "F-049", "type": "basic-reverse", "fields": {"front": "In", "back": "Indium"}, "source_refs": [1, 2]} +{"id": "F-050", "type": "basic-reverse", "fields": {"front": "Sn", "back": "Zinn"}, "source_refs": [1, 2]} +{"id": "F-051", "type": "basic-reverse", "fields": {"front": "Sb", "back": "Antimon"}, "source_refs": [1, 2]} +{"id": "F-052", "type": "basic-reverse", "fields": {"front": "Te", "back": "Tellur"}, "source_refs": [1, 2]} +{"id": "F-053", "type": "basic-reverse", "fields": {"front": "I", "back": "Iod"}, "source_refs": [1, 2, 3]} +{"id": "F-054", "type": "basic-reverse", "fields": {"front": "Xe", "back": "Xenon"}, "source_refs": [1, 2]} +{"id": "F-055", "type": "basic-reverse", "fields": {"front": "Cs", "back": "Caesium"}, "source_refs": [1, 2, 3]} +{"id": "F-056", "type": "basic-reverse", "fields": {"front": "Ba", "back": "Barium"}, "source_refs": [1, 2]} +{"id": "F-057", "type": "basic-reverse", "fields": {"front": "La", "back": "Lanthan"}, "source_refs": [1, 2]} +{"id": "F-058", "type": "basic-reverse", "fields": {"front": "Ce", "back": "Cer"}, "source_refs": [1, 2]} +{"id": "F-059", "type": "basic-reverse", "fields": {"front": "Pr", "back": "Praseodym"}, "source_refs": [1, 2]} +{"id": "F-060", "type": "basic-reverse", "fields": {"front": "Nd", "back": "Neodym"}, "source_refs": [1, 2]} +{"id": "F-061", "type": "basic-reverse", "fields": {"front": "Pm", "back": "Promethium"}, "source_refs": [1, 2]} +{"id": "F-062", "type": "basic-reverse", "fields": {"front": "Sm", "back": "Samarium"}, "source_refs": [1, 2]} +{"id": "F-063", "type": "basic-reverse", "fields": {"front": "Eu", "back": "Europium"}, "source_refs": [1, 2]} +{"id": "F-064", "type": "basic-reverse", "fields": {"front": "Gd", "back": "Gadolinium"}, "source_refs": [1, 2]} +{"id": "F-065", "type": "basic-reverse", "fields": {"front": "Tb", "back": "Terbium"}, "source_refs": [1, 2]} +{"id": "F-066", "type": "basic-reverse", "fields": {"front": "Dy", "back": "Dysprosium"}, "source_refs": [1, 2]} +{"id": "F-067", "type": "basic-reverse", "fields": {"front": "Ho", "back": "Holmium"}, "source_refs": [1, 2]} +{"id": "F-068", "type": "basic-reverse", "fields": {"front": "Er", "back": "Erbium"}, "source_refs": [1, 2]} +{"id": "F-069", "type": "basic-reverse", "fields": {"front": "Tm", "back": "Thulium"}, "source_refs": [1, 2]} +{"id": "F-070", "type": "basic-reverse", "fields": {"front": "Yb", "back": "Ytterbium"}, "source_refs": [1, 2]} +{"id": "F-071", "type": "basic-reverse", "fields": {"front": "Lu", "back": "Lutetium"}, "source_refs": [1, 2]} +{"id": "F-072", "type": "basic-reverse", "fields": {"front": "Hf", "back": "Hafnium"}, "source_refs": [1, 2]} +{"id": "F-073", "type": "basic-reverse", "fields": {"front": "Ta", "back": "Tantal"}, "source_refs": [1, 2]} +{"id": "F-074", "type": "basic-reverse", "fields": {"front": "W", "back": "Wolfram"}, "source_refs": [1, 2]} +{"id": "F-075", "type": "basic-reverse", "fields": {"front": "Re", "back": "Rhenium"}, "source_refs": [1, 2]} +{"id": "F-076", "type": "basic-reverse", "fields": {"front": "Os", "back": "Osmium"}, "source_refs": [1, 2]} +{"id": "F-077", "type": "basic-reverse", "fields": {"front": "Ir", "back": "Iridium"}, "source_refs": [1, 2]} +{"id": "F-078", "type": "basic-reverse", "fields": {"front": "Pt", "back": "Platin"}, "source_refs": [1, 2]} +{"id": "F-079", "type": "basic-reverse", "fields": {"front": "Au", "back": "Gold"}, "source_refs": [1, 2]} +{"id": "F-080", "type": "basic-reverse", "fields": {"front": "Hg", "back": "Quecksilber"}, "source_refs": [1, 2]} +{"id": "F-081", "type": "basic-reverse", "fields": {"front": "Tl", "back": "Thallium"}, "source_refs": [1, 2]} +{"id": "F-082", "type": "basic-reverse", "fields": {"front": "Pb", "back": "Blei"}, "source_refs": [1, 2]} +{"id": "F-083", "type": "basic-reverse", "fields": {"front": "Bi", "back": "Bismut"}, "source_refs": [1, 2, 3]} +{"id": "F-084", "type": "basic-reverse", "fields": {"front": "Po", "back": "Polonium"}, "source_refs": [1, 2]} +{"id": "F-085", "type": "basic-reverse", "fields": {"front": "At", "back": "Astat"}, "source_refs": [1, 2]} +{"id": "F-086", "type": "basic-reverse", "fields": {"front": "Rn", "back": "Radon"}, "source_refs": [1, 2]} +{"id": "F-087", "type": "basic-reverse", "fields": {"front": "Fr", "back": "Francium"}, "source_refs": [1, 2]} +{"id": "F-088", "type": "basic-reverse", "fields": {"front": "Ra", "back": "Radium"}, "source_refs": [1, 2]} +{"id": "F-089", "type": "basic-reverse", "fields": {"front": "Ac", "back": "Actinium"}, "source_refs": [1, 2]} +{"id": "F-090", "type": "basic-reverse", "fields": {"front": "Th", "back": "Thorium"}, "source_refs": [1, 2]} +{"id": "F-091", "type": "basic-reverse", "fields": {"front": "Pa", "back": "Protactinium"}, "source_refs": [1, 2]} +{"id": "F-092", "type": "basic-reverse", "fields": {"front": "U", "back": "Uran"}, "source_refs": [1, 2]} +{"id": "F-093", "type": "basic-reverse", "fields": {"front": "Np", "back": "Neptunium"}, "source_refs": [1, 2]} +{"id": "F-094", "type": "basic-reverse", "fields": {"front": "Pu", "back": "Plutonium"}, "source_refs": [1, 2]} +{"id": "F-095", "type": "basic-reverse", "fields": {"front": "Am", "back": "Americium"}, "source_refs": [1, 2]} +{"id": "F-096", "type": "basic-reverse", "fields": {"front": "Cm", "back": "Curium"}, "source_refs": [1, 2]} +{"id": "F-097", "type": "basic-reverse", "fields": {"front": "Bk", "back": "Berkelium"}, "source_refs": [1, 2]} +{"id": "F-098", "type": "basic-reverse", "fields": {"front": "Cf", "back": "Californium"}, "source_refs": [1, 2]} +{"id": "F-099", "type": "basic-reverse", "fields": {"front": "Es", "back": "Einsteinium"}, "source_refs": [1, 2]} +{"id": "F-100", "type": "basic-reverse", "fields": {"front": "Fm", "back": "Fermium"}, "source_refs": [1, 2]} +{"id": "F-101", "type": "basic-reverse", "fields": {"front": "Md", "back": "Mendelevium"}, "source_refs": [1, 2]} +{"id": "F-102", "type": "basic-reverse", "fields": {"front": "No", "back": "Nobelium"}, "source_refs": [1, 2]} +{"id": "F-103", "type": "basic-reverse", "fields": {"front": "Lr", "back": "Lawrencium"}, "source_refs": [1, 2]} +{"id": "F-104", "type": "basic-reverse", "fields": {"front": "Rf", "back": "Rutherfordium"}, "source_refs": [1, 2]} +{"id": "F-105", "type": "basic-reverse", "fields": {"front": "Db", "back": "Dubnium"}, "source_refs": [1, 2]} +{"id": "F-106", "type": "basic-reverse", "fields": {"front": "Sg", "back": "Seaborgium"}, "source_refs": [1, 2]} +{"id": "F-107", "type": "basic-reverse", "fields": {"front": "Bh", "back": "Bohrium"}, "source_refs": [1, 2]} +{"id": "F-108", "type": "basic-reverse", "fields": {"front": "Hs", "back": "Hassium"}, "source_refs": [1, 2]} +{"id": "F-109", "type": "basic-reverse", "fields": {"front": "Mt", "back": "Meitnerium"}, "source_refs": [1, 2]} +{"id": "F-110", "type": "basic-reverse", "fields": {"front": "Ds", "back": "Darmstadtium"}, "source_refs": [1, 2]} +{"id": "F-111", "type": "basic-reverse", "fields": {"front": "Rg", "back": "Roentgenium"}, "source_refs": [1, 2]} +{"id": "F-112", "type": "basic-reverse", "fields": {"front": "Cn", "back": "Copernicium"}, "source_refs": [1, 2]} +{"id": "F-113", "type": "basic-reverse", "fields": {"front": "Nh", "back": "Nihonium"}, "source_refs": [1, 2]} +{"id": "F-114", "type": "basic-reverse", "fields": {"front": "Fl", "back": "Flerovium"}, "source_refs": [1, 2]} +{"id": "F-115", "type": "basic-reverse", "fields": {"front": "Mc", "back": "Moscovium"}, "source_refs": [1, 2]} +{"id": "F-116", "type": "basic-reverse", "fields": {"front": "Lv", "back": "Livermorium"}, "source_refs": [1, 2]} +{"id": "F-117", "type": "basic-reverse", "fields": {"front": "Ts", "back": "Tennessin"}, "source_refs": [1, 2, 4]} +{"id": "F-118", "type": "basic-reverse", "fields": {"front": "Og", "back": "Oganesson"}, "source_refs": [1, 2]} diff --git a/docs/marketplace/seed/periodensystem-elemente/design/outline.md b/docs/marketplace/seed/periodensystem-elemente/design/outline.md new file mode 100644 index 0000000..9940343 --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/design/outline.md @@ -0,0 +1,20 @@ +# Outline — Periodensystem + +118 Karten, alle `basic-reverse`. Generiert via `build_cards.py`. + +## Subtopic-Counts + +| # | Subtopic | Z-Range | Karten | +|---|---|---|---| +| 1 | Hauptgruppen 1–20 | F-001…F-020 | 20 | +| 2 | Übergangsmetalle + Hauptgruppen 21–86 | F-021…F-086 | 66 | +| 3 | Lanthanoide / Actinoide / Superschwer 87–118 | F-087…F-118 | 32 | +| | **Total** | F-001…F-118 | **118** | + +## Streitfall-Karten (5) + +- F-027 Cobalt (statt Kobalt) [IUPAC] +- F-053 Iod (statt Jod) [IUPAC] +- F-055 Caesium (statt Cäsium) [IUPAC] +- F-083 Bismut (statt Wismut) [IUPAC] +- F-117 Tennessin (statt Tenness) [IUPAC 2016] diff --git a/docs/marketplace/seed/periodensystem-elemente/plan.md b/docs/marketplace/seed/periodensystem-elemente/plan.md new file mode 100644 index 0000000..182fcad --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/plan.md @@ -0,0 +1,106 @@ +# Plan — Periodensystem der Elemente + +**Skill-Run:** `/cards-deck` Stage 1, 2026-05-09 (Bulk-Mode, Mid-Scale) +**Owner:** cardecky@mana.how +**Slug:** `periodensystem-elemente` + +## Thema + +Alle 118 chemischen Elemente nach IUPAC, mit Symbol ↔ deutschem +Namen. Tier-A in CONTENT_PLAN §6 (CH-NMG „Natur und Technik" +Sek 1 + DE-Bildungsstandards Chemie Sek 1 MSA 2024). + +## Subtopic-Boundaries + +Drei Sortierungs-Sub-Cluster (nur als Audit-Logik; im Deck stehen +alle 118 in Ordnungszahl-Reihenfolge): + +1. **Hauptgruppen-Elemente 1–20** — die zentralen Sek-1-Elemente + (H bis Ca). Lehrplan-Hot-Zone. +2. **Übergangsmetalle + Hauptgruppen 21–86** — die zweiten zwei + Perioden. Im Lehrplan punktuell (Eisen, Kupfer, Silber, Gold). +3. **Lanthanoide / Actinoide / superschwere Elemente 87–118** — + überwiegend universitär oder Schulwissen-Trivia. Komplettheit + für „Cardecky publisht das ganze Periodensystem" als Anker. + +## Card-Count + +**Ziel: 118 Karten, alle `basic-reverse`.** +- Front: Symbol → Back: deutscher Name +- Reverse: Name → Symbol +- 236 FSRS-Reviews insgesamt + +## Card-Type-Mix + +`basic-reverse` only. Symmetrische Wissensrelation (Symbol ↔ Name). + +## Sprache + +`de`. Deutsche Element-Namen als Hochsprach-Default. Die meisten +sind Fremdwörter aus dem Lateinischen oder Griechischen — keine +Helvetismus-Disziplin nötig (Wasserstoff = Wasserstoff in CH). + +## Target + +`marketplace-local` — Push gegen `localhost:3081`, Slug +`cardecky/periodensystem-elemente`. + +## Lizenz + +`CC0-1.0`. Symbol↔Name-Paare sind Faktendaten, nicht copyrightable. +Cardecky kuratiert die Auswahl, aber nicht den Inhalt. + +## Quellen-Strategie (Stage 2) + +Faktendaten — drei kanonische Quellen: + +1. **IUPAC Periodic Table 2025** — die offizielle internationale + Liste mit Ordnungszahl, Symbol, Name (englisch). +2. **Wikipedia — Liste der chemischen Elemente** (deutsch) — für + die deutschen Namen (z.B. „Wolfram" für tungsten/W, „Quecksilber" + für mercury/Hg). +3. **PSE-Schulbuch-Konsens** — für deutsche Namen-Alternativen + (z.B. „Iod" vs. „Jod" — IUPAC seit 2003 „Iod" mit I; Schul- + bücher beide; wir folgen IUPAC). + +## Streitfälle / Spezialfälle + +- **Symbol-Schreibweise:** wir nutzen die internationale IUPAC- + Schreibung (z.B. „Si" für Silicium, nicht „Si" für Silizium). +- **Iod vs. Jod:** IUPAC „Iod" (mit I), nicht „Jod" (mit J). Schule + in DE meist „Iod" seit ~2010, in CH variabel. Wir nehmen Iod. +- **Tenness 117 (Ts):** auch „Tenneß" oder „Tennessine" geschrieben; + IUPAC 2016 deutsche Empfehlung „Tennessin" — wir verwenden + „Tennessin" (DE-IUPAC-Empfehlung). +- **Cobalt vs. Kobalt:** IUPAC 2015 „Cobalt" (mit C); deutsche + Schulbücher gemischt. Wir nehmen Cobalt. +- **Caesium vs. Cäsium:** IUPAC „Caesium"; deutsche Schule oft + „Cäsium". Wir folgen IUPAC. +- **Aluminium vs. Aluminum:** IUPAC „Aluminium" (auch in den USA + seit 2013 angepasst); kein Streitfall. +- **Bismut vs. Wismut:** IUPAC „Bismut" (DE seit 2010 + Schreibungs-Reform); ältere Schulbücher haben „Wismut". Wir + nehmen Bismut. +- **Sec. Sicherheit:** wir konzentrieren uns auf Symbol↔Name. Keine + Atom-Massen, Schmelzpunkte, Elektronenkonfigurationen — die + gehören in einen späteren Tier-B-Aufbau-Deck. + +## Reviewer-Stop + +User schaut diesen Plan an, sagt go für die 118 Elemente in IUPAC- +Schreibweise oder korrigiert Streitfall-Antworten (Iod, Tennessin, +Cobalt, Caesium, Bismut). + +## Offene Punkte (vor Stage 2) + +- **Erweiterung „Element-Familie" als Tag?** Würde discovery + ermöglichen („zeige mir alle Edelgase als Sub-Deck"). Marketplace- + Schema unterstützt heute keine card-level Tags — nur Deck-Tags. + Vertagt auf späteren Tagging-Welle. +- **Atomar-Symbol-Karten mit Ordnungszahl im Front?** Z.B. „1 — H" + → „Wasserstoff". Macht Reverse uneindeutig. Wir bleiben bei + Symbol-only. +- **Erweiterungs-Decks für Phase 2:** „Erste 20 Elemente + + Eigenschaften" (basic-reverse Symbol→Name + cloze Eigenschaften), + „Edelgase + ihre Anwendungen" (cloze + basic), „Halogene" + (cloze). Alle Tier-B im CONTENT_PLAN. diff --git a/docs/marketplace/seed/periodensystem-elemente/publish/deck.json b/docs/marketplace/seed/periodensystem-elemente/publish/deck.json new file mode 100644 index 0000000..5b8daf6 --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/publish/deck.json @@ -0,0 +1 @@ +{"deck":{"id":"3d861808-bbd4-4fb7-8f22-3aa0b32e500a","slug":"periodensystem-elemente","title":"Periodensystem — Alle 118 Elemente","description":"Alle chemischen Elemente nach IUPAC: Symbol ↔ deutscher Name. Sortiert nach Ordnungszahl. basic-reverse für beide Lern-Richtungen. Streitfälle nach IUPAC-Konvention (Iod statt Jod, Cobalt statt Kobalt, Caesium statt Cäsium, Bismut statt Wismut, Tennessin statt Tenness).","language":"de","license":"CC0-1.0","price_credits":0,"owner_user_id":"SEAiKLkPZxVjLwRODV3qJMK5TxR0C3jn","latest_version_id":"4bc2d2ee-e5c5-4e3e-ac2d-9d1fb0fa0443","is_featured":false,"is_takedown":false,"created_at":"2026-05-09T16:46:58.090Z"},"version":{"id":"4bc2d2ee-e5c5-4e3e-ac2d-9d1fb0fa0443","deck_id":"3d861808-bbd4-4fb7-8f22-3aa0b32e500a","semver":"1.0.0","changelog":"Initiale Veröffentlichung. 118 Elemente in IUPAC-Schreibweise, sortiert nach Ordnungszahl. Tier-A-Deck nach CONTENT_PLAN — Schnittmenge CH-NMG-Sek-1 + DE-Chemie-Bildungsstandards-MSA-2024.","content_hash":"072942ca465cf576bd24c94c1a7a7511e62ec9cfe954212e778ad2a0fa1a9163","card_count":118,"published_at":"2026-05-09T16:46:58.134Z","deprecated_at":null},"moderation":{"verdict":"pass","categories":[],"model":"stub"}} diff --git a/docs/marketplace/seed/periodensystem-elemente/research/notes.md b/docs/marketplace/seed/periodensystem-elemente/research/notes.md new file mode 100644 index 0000000..c8a4d2a --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/research/notes.md @@ -0,0 +1,163 @@ +# Notes — Periodensystem + +118 Elemente, sortiert nach Ordnungszahl. Drei Sub-Cluster nur als +Audit-Logik; alle 118 stehen im Deck in Z-Reihenfolge (F-001 = H, +F-118 = Og). + +## Konsistenz-Regeln + +- **Symbol-Großschreibung wie IUPAC**: erstes Zeichen Großbuchstabe, + zweites (falls da) klein. Z.B. „Cl" (nicht „CL"). +- **Deutsche Namen** nach DE-Wikipedia + GDCh-Empfehlung. +- **Streitfälle**: konsequent IUPAC (Iod, Tennessin, Cobalt, Caesium, + Bismut). + +## Hauptgruppen 1–20 (F-001 — F-020) + +| Z | Sym | Name | +|---|---|---| +| 1 | H | Wasserstoff | +| 2 | He | Helium | +| 3 | Li | Lithium | +| 4 | Be | Beryllium | +| 5 | B | Bor | +| 6 | C | Kohlenstoff | +| 7 | N | Stickstoff | +| 8 | O | Sauerstoff | +| 9 | F | Fluor | +| 10 | Ne | Neon | +| 11 | Na | Natrium | +| 12 | Mg | Magnesium | +| 13 | Al | Aluminium | +| 14 | Si | Silicium | +| 15 | P | Phosphor | +| 16 | S | Schwefel | +| 17 | Cl | Chlor | +| 18 | Ar | Argon | +| 19 | K | Kalium | +| 20 | Ca | Calcium | + +## Übergangsmetalle + Hauptgruppen 21–86 (F-021 — F-086) + +| Z | Sym | Name | Hinweis | +|---|---|---|---| +| 21 | Sc | Scandium | | +| 22 | Ti | Titan | | +| 23 | V | Vanadium | | +| 24 | Cr | Chrom | | +| 25 | Mn | Mangan | | +| 26 | Fe | Eisen | | +| 27 | Co | Cobalt | IUPAC-Schreibung | +| 28 | Ni | Nickel | | +| 29 | Cu | Kupfer | | +| 30 | Zn | Zink | | +| 31 | Ga | Gallium | | +| 32 | Ge | Germanium | | +| 33 | As | Arsen | | +| 34 | Se | Selen | | +| 35 | Br | Brom | | +| 36 | Kr | Krypton | | +| 37 | Rb | Rubidium | | +| 38 | Sr | Strontium | | +| 39 | Y | Yttrium | | +| 40 | Zr | Zirconium | | +| 41 | Nb | Niob | | +| 42 | Mo | Molybdän | | +| 43 | Tc | Technetium | | +| 44 | Ru | Ruthenium | | +| 45 | Rh | Rhodium | | +| 46 | Pd | Palladium | | +| 47 | Ag | Silber | | +| 48 | Cd | Cadmium | | +| 49 | In | Indium | | +| 50 | Sn | Zinn | | +| 51 | Sb | Antimon | | +| 52 | Te | Tellur | | +| 53 | I | Iod | IUPAC-Schreibung (nicht „Jod") | +| 54 | Xe | Xenon | | +| 55 | Cs | Caesium | IUPAC-Schreibung (nicht „Cäsium") | +| 56 | Ba | Barium | | +| 57 | La | Lanthan | | +| 58 | Ce | Cer | | +| 59 | Pr | Praseodym | | +| 60 | Nd | Neodym | | +| 61 | Pm | Promethium | | +| 62 | Sm | Samarium | | +| 63 | Eu | Europium | | +| 64 | Gd | Gadolinium | | +| 65 | Tb | Terbium | | +| 66 | Dy | Dysprosium | | +| 67 | Ho | Holmium | | +| 68 | Er | Erbium | | +| 69 | Tm | Thulium | | +| 70 | Yb | Ytterbium | | +| 71 | Lu | Lutetium | | +| 72 | Hf | Hafnium | | +| 73 | Ta | Tantal | | +| 74 | W | Wolfram | | +| 75 | Re | Rhenium | | +| 76 | Os | Osmium | | +| 77 | Ir | Iridium | | +| 78 | Pt | Platin | | +| 79 | Au | Gold | | +| 80 | Hg | Quecksilber | | +| 81 | Tl | Thallium | | +| 82 | Pb | Blei | | +| 83 | Bi | Bismut | IUPAC (nicht „Wismut") | +| 84 | Po | Polonium | | +| 85 | At | Astat | | +| 86 | Rn | Radon | | + +## Lanthanoide / Actinoide / Superschwere 87–118 (F-087 — F-118) + +| Z | Sym | Name | Hinweis | +|---|---|---|---| +| 87 | Fr | Francium | | +| 88 | Ra | Radium | | +| 89 | Ac | Actinium | | +| 90 | Th | Thorium | | +| 91 | Pa | Protactinium | | +| 92 | U | Uran | | +| 93 | Np | Neptunium | | +| 94 | Pu | Plutonium | | +| 95 | Am | Americium | | +| 96 | Cm | Curium | | +| 97 | Bk | Berkelium | | +| 98 | Cf | Californium | | +| 99 | Es | Einsteinium | | +| 100 | Fm | Fermium | | +| 101 | Md | Mendelevium | | +| 102 | No | Nobelium | | +| 103 | Lr | Lawrencium | | +| 104 | Rf | Rutherfordium | | +| 105 | Db | Dubnium | | +| 106 | Sg | Seaborgium | | +| 107 | Bh | Bohrium | | +| 108 | Hs | Hassium | | +| 109 | Mt | Meitnerium | | +| 110 | Ds | Darmstadtium | | +| 111 | Rg | Roentgenium | | +| 112 | Cn | Copernicium | | +| 113 | Nh | Nihonium | | +| 114 | Fl | Flerovium | | +| 115 | Mc | Moscovium | | +| 116 | Lv | Livermorium | | +| 117 | Ts | Tennessin | IUPAC 2016 (nicht „Tenness") [4] | +| 118 | Og | Oganesson | | + +## Streitfälle aufgelöst + +Alle nach IUPAC-Konvention; älteren Schreibweisen ausgelassen: + +- 27 Co: Cobalt (nicht Kobalt) +- 53 I: Iod (nicht Jod) +- 55 Cs: Caesium (nicht Cäsium) +- 83 Bi: Bismut (nicht Wismut) +- 117 Ts: Tennessin (nicht Tenness) + +Standard-Quelle für alle 118 ist [1] (IUPAC); deutsche Schreibweise +aus [2] (DE-Wikipedia). [3] + [4] für die obigen 5 Streitfälle. + +## Total + +118 ✓ diff --git a/docs/marketplace/seed/periodensystem-elemente/research/sources.md b/docs/marketplace/seed/periodensystem-elemente/research/sources.md new file mode 100644 index 0000000..c30ad72 --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/research/sources.md @@ -0,0 +1,30 @@ +# Quellen — Periodensystem + +Element-Symbol↔Name-Paare sind universelle Faktendaten. Drei +kanonische Quellen, jede [n]-belegt: + +## Primär + +[1] **IUPAC Periodic Table of the Elements (2025)** +URL: https://iupac.org/what-we-do/periodic-table-of-elements/ +Zugriff: 2026-05-09 +Inhalt: Internationale Standard-Tabelle mit Ordnungszahl, Symbol, +englischem Namen. Anker für Symbol-Konvention. + +[2] **Wikipedia — Liste der chemischen Elemente (deutsch)** +URL: https://de.wikipedia.org/wiki/Liste_der_chemischen_Elemente +Zugriff: 2026-05-09 +Inhalt: Deutsche Element-Namen mit IUPAC-Konformität-Audit. Quelle +für Schreibweisen wie „Wolfram", „Quecksilber", „Bismut", „Iod". + +## Sekundär (für Streitfälle) + +[3] **GDCh — Empfehlungen zu deutschen Element-Namen (2010–2024)** +URL: https://www.gdch.de/ +Begründung: Gesellschaft Deutscher Chemiker; offizielle DE-Schreib- +empfehlungen für die Schule. Folgen IUPAC-2015-Reform. + +[4] **Tennessin (IUPAC 2016)** +URL: https://iupac.org/wp-content/uploads/2016/12/Iupac-document.pdf +Begründung: Element 117 als „Tennessin" (DE) bzw. „Tennessine" +(EN); alte Bezeichnungen „Tenness" wurden 2016 überschrieben. diff --git a/docs/marketplace/seed/periodensystem-elemente/validate/report.md b/docs/marketplace/seed/periodensystem-elemente/validate/report.md new file mode 100644 index 0000000..bb59955 --- /dev/null +++ b/docs/marketplace/seed/periodensystem-elemente/validate/report.md @@ -0,0 +1,73 @@ +# Validate-Report — periodensystem-elemente + +Draft-Path: ~/Documents/cards-drafts/periodensystem-elemente/ +Geprüft: 2026-05-09 +Karten gesamt: 118 + +## Findings + +``` +✓ atomicity: 118/118 ok + - max front length: 2 Zeichen (alle Symbole) + - max back length: 13 Zeichen ('Praseodym', 'Ruthenium', 'Berkelium', …) + - alle Karten weit unter 200/400-Schwellen → atomar + +✓ source-coverage: 118/118 ok + - alle Karten haben source_refs=[1,2] (IUPAC + DE-Wikipedia) + - 5 Karten zusätzlich [3] (GDCh): Cobalt, Iod, Caesium, Bismut + - 1 Karte zusätzlich [4] (IUPAC 2016): Tennessin + +✓ dedupe: 118/118 unique + - 118 unique Symbole (per IUPAC) + - 118 unique Namen (per DE-Wikipedia) + - Slug 'periodensystem-elemente' frei in marketplace + +✓ type-fit: 118/118 ok + - alle 118 type=basic-reverse mit fields={front, back} + +✓ mission-check: 118/118 ok + - keine Werbung, keine personenbezogenen Daten + - reine Faktendaten (IUPAC-Konsens) + - kontroversfrei + - Tier-A-Inhalt im CONTENT_PLAN (Periodensystem als Schlüssel- + Deck für CH-NMG-Sek-1 + DE-Chemie-Bildungsstandards) +``` + +## Sampling (10 zufällige Karten) + +``` +Z= 82 Pb → Blei +Z= 15 P → Phosphor +Z= 4 Be → Beryllium +Z= 95 Am → Americium +Z= 36 Kr → Krypton +Z= 32 Ge → Germanium +Z= 29 Cu → Kupfer +Z= 18 Ar → Argon +Z= 14 Si → Silicium +Z= 87 Fr → Francium +``` + +## Streitfall-Karten verifiziert + +| Z | Symbol | Name | Quelle | +|---|---|---|---| +| 27 | Co | Cobalt | IUPAC, GDCh-Empfehlung | +| 53 | I | Iod | IUPAC, GDCh-Empfehlung | +| 55 | Cs | Caesium | IUPAC, GDCh-Empfehlung | +| 83 | Bi | Bismut | IUPAC, GDCh-Empfehlung | +| 117 | Ts | Tennessin | IUPAC 2016 | + +## Empfehlung + +**Go für Stage 5.** + +## Audit-Trail + +- Plan: plan.md +- Quellen: research/sources.md (4 Quellen) +- Notes: research/notes.md (3 Subtopics, 5 Streitfall-Auflösungen) +- Build-Skript: design/build_cards.py (118 Tupel deterministisch) +- Outline: design/outline.md +- Karten: design/cards.jsonl (118 Zeilen) +- User-Approval: 1x (Stage-1-Plan, „mache nächstes Deck — entscheide selbst")