Как составлять карточки — гайд RepeatMe
Хорошая карточка — половина запоминания. Этот гайд объясняет, как устроена карточка RepeatMe, в каких
режимах её покажут и почему, и как обойти типичные ловушки: синонимы, словарную и контекстную формы,
разрывные выражения. Он же — спецификация для ИИ: машинная версия формата лежит по ссылке
/prompts/v3/card-format, её можно отдать любой модели.
Как устроена карточка
Карточка — единица знания. У неё один или несколько кейсов, и каждый кейс хранит факты:
frontиback— вопрос и ответ. Один кейс — обычная карточка. Несколько кейсов — карточка-правило (например, формы to be): каждое повторение показывает случайный кейс, а расписание повторений одно на всю карточку.accept— другие формы ответа, которые засчитываются как верные.distractors— неверные варианты для режимов выбора.cloze— предложение с ответом на месте пропуска.
Обязателен только front. Карточка никогда не перечисляет свои режимы (переворот, выбор, ввод,
заполнение пропуска, подбор пар): приложение выводит их из фактов и колоды. Поэтому карточка с одними
front и back уже получает несколько режимов, а режим, который появится в приложении позже,
включится у всех существующих карточек сам. Результат форма карточки показывает в блоке
«Где покажется»: в каких режимах кейс будет в своей колоде, а для остальных — почему нет.
Автор отключает режимы только для всей колоды — в блоке «Режимы колоды» формы колоды. Ученик тоже может отключить режимы для себя — в разделе «Режимы обучения» профиля.
«Что показываем» ≠ «что принимаем»
backхранит каноническую форму: её карточка показывает как правильный ответ.- Принимаемые ответы — все формы, с которыми сверяется введённый ответ: сам
back, его части через,или;и каждый пунктaccept. В пропуске — варианты внутри его{{ }}.
Как факты становятся режимами. Карточка никогда не перечисляет свои режимы: приложение выводит их из фактов и колоды для каждого кейса, и новый режим включается у старых карточек сам. Каждый кейс показывается в режимах:
| Режим | Когда | Из чего строится |
|---|---|---|
Flip |
всегда | front → back, самооценка |
ReverseFlip |
back не пустой, и ни у одной другой карточки колоды нет такого же back |
back → front, самооценка |
Match |
обе стороны короткие (не длиннее 5 слов), и таких карточек в колоде достаточно | пары сторон |
Type |
back — слово или короткая фраза, а не целое предложение |
ввод back; засчитываются и его части через , или ;, и каждый пункт accept |
ReverseType |
как у ReverseFlip, и front — слово или короткая фраза |
ввод front; засчитываются и лицевые стороны других кейсов карточки с тем же back |
Choice |
есть distractors, или другие карточки колоды дают три варианта |
back среди неверных вариантов — сначала ваши, остальные из ответов других карточек |
ReverseChoice |
как у ReverseFlip, и другие карточки колоды дают три лицевые стороны |
front среди лицевых сторон других карточек |
ClozeType |
есть cloze |
ввод пропуска (или пропусков) |
ClozeChoice |
есть cloze и варианты для его пропуска |
пропуск среди distractors (или, если пропуск — само слово ответа, среди ответов других карточек) |
disabled-modes колоды отключает режим у всех её карточек; ученик тоже может отключить режимы для
себя.
Чьи неверные варианты. distractors — неверные варианты к тому, что спрашивает кейс. Без
cloze — к back. С cloze, где пропуск — само слово ответа (back: apple /
cloze: I eat an {{apple}} every day.), — к обоим. С cloze, где пропущена только часть back
(back: Does she live in Poland? / cloze: {{Does}} she live in Poland?), — только к пропуску:
Do | Did | Is; варианты целых предложений тогда берутся из колоды.
Поэтому кейс размером с предложение (правило, которое отрабатывают на примерах) получает Flip и
режимы пропуска, но не ввод стороны, а кейс-слово — Flip, ReverseFlip, Match, Type, Choice и
то, что добавит его cloze. Обратным режимам факты вообще не нужны: приложение берёт их из карточки и
колоды. Давайте факт, только если можете заполнить его хорошо — три правдоподобных неверных
варианта, естественное предложение с пропуском в точке выбора, все принимаемые формы ввода. Слабый
факт хуже никакого, а без distractors варианты всё равно подберутся из колоды.
Текстовый формат (cards)
Карточки пишутся простым текстом: одна пара ключ: значение на строку, --- между карточками. Его
просят у чат-бота промпты «Свой ИИ», и его же проще всего писать руками. Те же карточки занимают
примерно втрое меньше символов, чем в JSON, обрезанный ответ теряет одну карточку, а не всю колоду, а
превью импорта говорит по каждой карточке, что не удалось прочитать. Текст читают диалог «Импорт
колоды», поля вставки ответа ИИ и результат урока; машинный контракт — по ссылке
/prompts/v3/card-format.
Ответы на старые промпты (v1 и v2, с ключом modes:) по-прежнему импортируются: их режимы
превращаются в факты.
Текстовый контракт колоды (формат cards). Его читают диалог «Импорт колоды», поля вставки
«Свой ИИ» и результат урока — наравне с JSON колоды, который они тоже принимают. Документ — это
шапка (ключи колоды) и следом карточки. Каждая строка — ключ: значение, ключ с начала
строки. Карточка называет факты, которые знает, — свои стороны, другие принимаемые формы ответа,
неверные варианты, предложение с пропуском — и никогда свои режимы: приложение выводит режимы из
фактов (см. «Как факты становятся режимами»).
deck: English basics
description: Core vocabulary, first 100 words.
front-language: ru
back-language: en
---
front: яблоко
back: apple
distractors: banana | orange | grape
cloze: I eat an {{apple}} every day.
---
note: till and until are interchangeable; from opens the interval.
front: с … до …
back: from … till …
cloze: The shop is open {{from}} 9 a.m. {{till|until}} 6 p.m.
distractors: at | on | in
Грамматика:
---на отдельной строке начинает новую карточку.case:(значение — необязательная подпись) начинает ещё один кейс той же карточки — карточка-правило с множеством примеров, слово с несколькими значениями. Второйfront:без того и другого между ними читается как новая карточка.- Значение продолжается на следующих строках, если они начинаются хотя бы с одного пробела (Markdown внутри стороны, многострочное пояснение). Строка без ключа и без отступа пропускается.
- Списки —
accept,distractors,tags,disabled-modes— разделяют пункты через|. Пустой вариант («слово не нужно») пишется как"". - Больше ничего не экранируется и не берётся в кавычки. Зарезервированы: ключ с начала строки,
---с начала строки,|внутри списка,{{ }}внутриcloze. - Весь документ печатается внутри одного блока ```cards; всё вне блока пропускается, поэтому другого текста внутри него быть не должно.
Ключи (последний столбец — имя поля в JSON колоды: те же факты, записанные как JSON):
| Где | Ключ | Смысл | Имя в JSON |
|---|---|---|---|
| шапка | deck |
название колоды (обязательно) | title |
| шапка | description |
одно-два предложения о колоде | description |
| шапка | front-language, back-language |
коды языков (ru, en, …) стороны вопроса — родного языка ученика — и изучаемой стороны, от которой зависит произношение |
frontLanguage, backLanguage |
| шапка | disabled-modes |
режимы, которые колода отключает у всех карточек, например disabled-modes: ReverseType, ReverseChoice; без ключа остаются все режимы, которые допускают факты |
disabledModes |
| шапка | tags, visibility (private / unlisted / public) |
необязательно | tags, visibility |
| карточка | title |
необязательная подпись (грамматический тег, тема); никогда не копия front |
title |
| карточка | note |
пояснение, которое показывается после ответа, — напоминание правила, мнемоника; может называть ответ | explanation |
| карточка | format |
markdown, если сторона использует Markdown; по умолчанию простой текст |
contentFormat |
| кейс | front |
сторона вопроса (обязательно) — один чистый термин, без пояснений в скобках | front |
| кейс | back |
сторона ответа — одна каноническая форма; пустая, если ответ — «слово не нужно» | back |
| кейс | context |
уточнение, которое показывается вместе с вопросом, — ТОЛЬКО когда у front больше одного верного ответа; никогда не подсказывает ответ или правило |
context |
| кейс | accept |
другие формы back, которые ученик может ввести (accept: go for a walk) |
accept |
| кейс | distractors |
три правдоподобных неверных варианта к тому, что спрашивает кейс, — к back или к пропуску, если cloze пропускает только часть back |
distractors |
| кейс | cloze |
одно предложение на изучаемом языке с ответом внутри {{ }} — см. правила пропусков |
cloze |
В JSON колоды карточка — { "title", "explanation", "cases": [ { "front", "back", "context", "accept", "distractors", "cloze" } ] }; каждый case: в тексте — ещё один элемент cases.
Никогда не пишите front-image, back-image, back-audio и front-audio: картинки загружает
владелец колоды, произношение подставляет сервер, а выдуманная ссылка оказывается битой (E19).
Ответы и пропуски
Введённый ответ сверяется со всеми принимаемыми формами, поэтому большинство ошибок в карточке —
ошибки в её наборах ответов. Правила этого раздела относятся к back вместе с accept и к каждому
пропуску в cloze.
Пропуски и принимаемые формы (важно). Ответ пропуска стоит внутри предложения:
front: Она живёт в Польше?
back: Does she live in Poland?
cloze: {{Does}} she live in Poland?
distractors: Do | Did | Is
Два разных смысла «нескольких ответов» — не путайте их:
- Синонимы / варианты — верен ЛЮБОЙ (
till/until;оба/обе) → одна группа через|, контекстная форма первой:{{till|until}}. Первую карточка показывает как правильный ответ. - Последовательность / отдельные пропуски — нужны ВСЕ части, каждая на своём месте (три формы
неправильного глагола; разрывное
from … till …) → по группе на пропуск:cloze: The shop is open {{from}} 9 a.m. {{till|until}} 6 p.m. - Разные значения одного слова (
fair= «справедливый» и «ярмарка») — одна карточка с кейсом на значение, у каждого свойfront; обратный вопросfairтогда сам принимает любое значение (E18).
Группа бывает только у пропуска: ничто видимое в предложении не является ответом, и ничто вне
{{ }} тоже. В Our team {{develops|builds}} new features. один пропуск и одна группа.
Когда в предложении несколько пропусков, его distractors служат им всем: никогда не кладите
среди них ответ одного из пропусков (в предложении он верен) и никогда не принимайте в группе вариант,
который отличается только регистром ({{Polish|polish}}): регистр — не ответ, его проверяют неверные
варианты.
В группу идёт каждая равноправная форма, а не одна «каноническая». Ввод проверяется посимвольно: верная форма, которую вы не перечислили, засчитывается как ошибка и отправляет карточку на переучивание. Поэтому перечисляйте всё, что приняли бы сами:
- вежливость и к кому обращаются:
{{успокойтесь|успокойся}}; - род и число, когда вопрос их не задаёт:
{{оба|обе}},{{рад|рада}}; - вид глагола, когда подходят оба:
{{остыть|остывать}}; - равноценные переводы:
{{till|until}}; - служебное слово, которое можно опустить:
{{go for a walk|to go for a walk}}.
Регистр, ё/е, вид кавычек и знаки препинания на краях — не ответы: приложение выравнивает их
само, такие написания перечислять не нужно.
То же правило действует для вводимого ответа самой карточки: back хранит одну каноническую
форму, а accept перечисляет остальные (back: Успокойтесь / accept: Успокойся;
back: to go for a walk / accept: go for a walk). Лицевой стороне список не нужен: при обратном
вводе засчитываются front, front без пояснения в скобках и другие значения карточки.
Когда правильный ответ — «слово не нужно» (нулевой артикль, нулевой предлог), пропуск пустой,
и back тоже пустой — одинаково во всех фактах кейса. Никогда не придумывайте замену (—, 0,
no article): приложение показывает пустой ответ со своей подписью, поэтому в режимах ввода ученик
оставляет поле пустым, а в режимах выбора выбирает вариант «слово не нужно».
front: article with most country names (France, Russia)
back:
distractors: a | an | the
cloze: She lives in {{}} France.
Соседние кейсы (back: the для the UK, back: a для a doctor) по той же причине держат ""
среди своих distractors: «без артикля» должно оставаться живым вариантом везде, иначе ученик
выберет правильный артикль методом исключения.
Ответы и варианты не должны содержать символ | — он разделяет варианты и пункты списков.
Ловушка словарной формы (citation vs in-context)
Слово в словарной форме несёт служебные элементы, которых в предложении быть не должно:
- инфинитивное
to:to go for a walk→ в предложении «we often go for a walk»; - артикль:
an apple→ «I ate the apple»; - связку:
be keen on→ «he is keen on …»; - спряжение:
wait for→ «I'm waiting for …».
Правило: в пропуске стоит та форма, которую слово реально принимает в предложении. Если она
отличается от канонической, кладите в группу обе, контекстную первой:
{{go for a walk|to go for a walk}}. В back остаётся словарная форма, а форма без to идёт в
accept.
Правила генерации (лексика):
- L1. Каждый пропуск и ответ пишется в той форме, которую он принимает в предложении (без
словарного «to», в спряжении по подлежащему, без артикля, который уже есть в предложении) — по
грамматике данного языка. Когда в предложении на этом месте нет слова вовсе (нулевой артикль,
нулевой предлог), пишется пустой пропуск
{{}}, никогда не замена. - L2. Когда контекстная форма отличается от исходного слова, указываются обе, контекстная
первой:
{{go for a walk|to go for a walk}}. - L3. Синонимы и варианты — отдельные пункты через
|, никогда не через запятую внутри одного пункта. - L4. У разрывного выражения — по пропуску на часть.
- L5. Неверные варианты правдоподобны, но неверны, того же рода, что и ответ, и никогда не повторяют принимаемый вариант.
- L6. Предложение естественное и грамматически правильное.
Контекст, пояснение и заголовок
В форме карточки context — это поле «Контекст», note — «Пояснение», title —
«Заголовок». Все три необязательны, и большинству карточек не нужен ни один.
context и note — две разные подсказки, не путайте их:
contextпоказывается вместе с вопросом, до ответа. Его единственная задача — снять настоящую неоднозначность: ставьте его, когда у одногоfrontбольше одного верного ответа, чтобы выбрать нужное прочтение. Омоним:front: язык→context: орган⇒ ожидаетсяtongue, а неlanguage. Кейс с артиклем:front: Я вижу птицу.,back: I see a bird.— the bird тоже верный перевод, поэтомуcontext: какую-то, не конкретнуювыбирает a. Проверка: был бы без подсказки верен и другой ответ? Если нет,contextне нужен — по умолчанию подсказки нет.contextуточняет, что значитfront, а не как образуется ответ: в нём НЕ должно быть ответа или его части, и он НЕ должен намекать на отрабатываемое правило. На карточке про a/ancontext: university начинается с согласного звука [j]пересказывает само проверяемое правило и превращает вспоминание в чтение — этой фразе место вnote. Ученик, который не знает правила, не должен ничего узнать изcontext.contextпоказывается, только когда вопрос — сторонаfront; обратные режимы иMatchего не показывают. Поэтомуcontextне снимает неоднозначность обратной стороны: когда одинbackотвечает на несколько разныхfront(многозначное слово), сделайте их кейсами одной карточки — см. E18. Держите подсказку только вcontext— никогда не вшивайте её в самfront(front: высокий/context: о росте— а НЕfront: высокий (о росте)): всё внутриfrontстановится частью термина в обратных режимах, вариантах выбора, вводимых ответах и списках терминов. Вfront— только чистый термин.note(explanationв JSON колоды) показывается после ответа (кнопка с лампочкой): напоминание правила, разбор или мнемоника; в нём МОЖНО называть ответ и правило.
context живёт на кейсе (у каждого кейса карточки-правила может быть своя подсказка); note и
title относятся ко всей карточке. Ставьте их, только когда они действительно помогают, — пустые
значения норма. Если сомневаетесь, не ставьте.
title: ставьте, только если он добавляет то, чего нет в front и context, — грамматический
тег («Фразовый глагол»), тему, пометку о стиле. Никогда не копируйте front в title дословно: это
дублирует то, что ученик и так видит. У подавляющего большинства карточек title нет.
Тип знания → форма карточки
Прежде чем писать карточки, решите, какое знание несёт каждая: колода столиц, колода слов и грамматическое правило требуют карточек разной формы. Колода слов — обычно перевод (родной ↔ изучаемый язык), колода терминов — определение (термин ↔ значение на одном языке), викторина — факт (вопрос ↔ факт).
Тип знания → форма карточки (решите это ДО того, как писать карточки):
Карточка — единица знания, а не отдельный вопрос. Сначала определите, что изучается, потом выберите форму карточки по типу. Никогда не делайте карточку на каждое предложение-пример: сгруппируйте материал по правилу, слову или противопоставлению и положите примеры в кейсы одной карточки. При каждом повторении показывается случайный кейс, и ученик осваивает закономерность, а не заучивает одну строку.
| Тип знания | Пример | Форма карточки | Какие факты дать | Неверные варианты |
|---|---|---|---|---|
| Правило / закономерность — выбор формы (do/does, артикль, форма глагола, окончание) | вопросы с does | 1 правило = 1 карточка, 6–12 кейсов: разные предложения на одно правило | cloze с пропуском в точке выбора + distractors к пропуску; стороны — предложения, поэтому ввода стороны нет |
минимальные пары: do/does/did, work/works |
| Порядок слов / позиция | usually перед смысловым глаголом | 1 закономерность = 1 карточка, 5–8 кейсов | back = правильное предложение, distractors = те же слова в неверном порядке |
те же слова, неверный порядок |
| Путаемый набор (интерференция) | speak, learn и study | 1 набор = 1 карточка; front/back = член набора и его значение; кейсы чередуют верный член |
cloze на кейс + distractors = другие члены набора; подсказка context, когда одно предложение неоднозначно |
другие члены набора — в этом смысл карточки |
| Слово / сочетание | develop a service | 1 слово = 1 карточка, 2–5 кейсов: одно слово в разных предложениях | back = слово (+ accept), cloze на предложение, distractors |
близкие синонимы, которые здесь неверны |
| Написание | study, а не stady | 1 слово = 1 карточка | back и cloze — ввод слова и есть проверка |
не нужны |
| Факт / определение | столица X; термин ↔ значение | 1 факт = 1 карточка, 1 кейс | стороны; distractors — только если есть правдоподобные неверные факты того же рода; cloze редко |
правдоподобные факты того же рода |
- Один выбор на вопрос. Ввод целого предложения проверяет пять вещей сразу и размывает сигнал об
ошибке; пропуск
clozeровно в точке выбора выделяет то, что тренируется. - Каждый кейс и каждый факт проверяют один выбор карточки. Карточка про do/does никогда не пропускает в одном из кейсов смысловой глагол — другому выбору место на другой карточке.
- Многозначное слово — одна карточка с кейсом на значение.
fair= «справедливый» и «ярмарка» — не две карточки: у них один обратный вопрос, и порознь приложению пришлось бы отключить их обратные режимы. Кейсами одной карточки они позволяют обратному вопросу принимать любое значение (E18). - У карточек-слов
front/back— само слово (слово ↔ значение), никогда не предложение; предложения с контекстом живут вcloze. ТакFlipостаётся чистым, аMatchстановится доступен — самый быстрый режим, чтобы прогнать много карточек-слов за раз. - Регистр проверяется только выбором. Вводимые ответы проверяются без учёта регистра, поэтому
правилу о заглавной букве (English, а не english) нужны
distractors, отличающиеся регистром (Englishиenglish); приложение тогда не показывает этот кейс в режимах ввода. - Воспроизведение сильнее узнавания. Выбор — ступенька: дайте слову и вводимую форму (короткий
back, пропуск вcloze), чтобы знание в итоге воспроизводилось, а не только узнавалось. - Карточкам-правилам нужны свежие примеры. Меняйте подлежащие, глаголы и темы за пределами предложений, которые ученик уже видел, — иначе карточка проверяет память об уроке, а не правило.
- По умолчанию — проще. Тяжёлая разметка не нужна, когда она ничего не добавляет: для
неправильного глагола с тремя формами достаточно
back: go, went, gone.
Рецепты по типу знания
Каждый рецепт — карточка в текстовом формате. В JSON у тех же фактов те же имена (раздел «Формат JSON»).
Факт / формула / определение → только стороны
---
front: Площадь круга
back: πr²
Других фактов не нужно: в колоде из похожих карточек такая карточка покажется и в обратную сторону, и
с вводом, и в парах, и выбором среди ответов других карточек. distractors стоит добавить, когда есть
правдоподобные неверные значения того же рода, — следующий рецепт.
Факт с неверными вариантами (в стиле ПДД, на родном языке)
---
front: Что означает сплошная линия разметки?
back: Пересекать запрещено
distractors: Можно перестраиваться | Только для автобусов | Парковка разрешена
Неверные варианты — правдоподобные, но неверные факты. В выборе они идут первыми; колода добавляет свои, только если их меньше трёх.
Слово → перевод
---
front: яблоко
back: apple
distractors: banana | orange | grape
cloze: I eat an {{apple}} every day.
Карточка-слово получает все режимы: переворот, ввод и выбор в обе стороны, пары и оба режима пропуска.
Пропуск — само слово ответа, поэтому distractors служат и выбору слова, и пропуску.
Синонимы / варианты рода → один список принимаемых форм
Англоязычному ученику русского нужно ввести оба или обе для both. Хранить back: оба, обе
одним ответом — неверная форма для карточки-слова (Match и варианты выбора покажут всё
перечисление). Вместо этого — каноническая форма на стороне ответа, остальные принимаемые формы рядом:
---
front: both
back: оба
accept: обе
Теперь при вводе засчитываются и оба, и обе. Обратной стороне список не нужен: там единственный
ответ — both.
Многозначное слово (несколько значений) → одна карточка, кейс на значение
Прямая сторона у таких кейсов однозначна (справедливый → fair, ярмарка → fair), а обратная —
нет: каждый кейс спрашивает одним и тем же словом — fair, — и context там не поможет, он
показывается только с прямым вопросом.
Кейсами одной карточки значения решают это сами: при вводе обратного вопроса засчитывается любое
значение карточки, и соседнее значение никогда не предлагается неверным вариантом. Двумя отдельными
карточками они делили бы один back, и приложению пришлось бы отключить обратные режимы у обеих.
---
title: fair
front: справедливый
back: fair
distractors: unfair | honest | equal
cloze: The judge made a {{fair}} decision.
case:
front: ярмарка
back: fair
distractors: market | festival | exhibition
cloze: We went to a street food {{fair}}.
Одно слово — одна карточка: значения учатся и планируются вместе, а не соревнуются за один и тот же
вопрос из разных карточек. title здесь оправдан — он называет само слово, которого нет ни в одном
front.
Словарная форма с to / артиклем → контекстная форма + принимаемый вариант
---
front: идти на прогулку
back: to go for a walk
accept: go for a walk
cloze: After dinner we often {{go for a walk|to go for a walk}} in the park.
В предложении — go for a walk (контекстная форма первой), словарная остаётся принимаемым вариантом.
В back наоборот: каноническая — словарная форма, а форма без to идёт в accept.
Разрывное выражение from … till … → по пропуску на часть
---
front: с … до …
back: from … till …
cloze: The shop is open {{from}} 9 a.m. {{till|until}} 6 p.m.
distractors: at | on | in
Два пропуска {{ }}, нужны оба. Пропуски — часть ответа, поэтому distractors — варианты для
пропусков; в режиме выбора правильной кнопкой пропуск показывает свой первый вариант (from /
till), а until никогда не предлагается как неверный.
Неправильный глагол (3 формы) → три пропуска
---
front: идти (3 формы)
back: go, went, gone
cloze: {{go}}, {{went}}, {{gone}}
Каждая форма проверяется в своём пропуске. При вводе back засчитывается любая одна из форм через
запятую, поэтому все три ученик воспроизводит именно в пропусках.
Грамматическое правило → одна карточка, много кейсов, пропуск в точке выбора
Ученик путает do/does. Неправильно — карточка на каждое исправленное предложение: запоминается предложение, а не правило. Правильно — одна карточка-правило, где каждый кейс — другое предложение, пропуск стоит ровно там, где делается выбор, а неверные варианты — формы, которые на самом деле путают:
---
title: Present Simple questions: do or does?
note: he/she/it → does; I/you/we/they → do. After does the main verb returns to its base form.
front: Она живёт в Польше?
back: Does she live in Poland?
cloze: {{Does}} she live in Poland?
distractors: Do | Did | Is
case:
front: Ты работаешь по выходным?
back: Do you work on weekends?
cloze: {{Do}} you work on weekends?
distractors: Does | Did | Are
case:
front: Почему он изучает английский?
back: Why does he study English?
cloze: Why {{does}} he study English?
distractors: do | did | is
Настоящая карточка продолжается до 6–12 кейсов: меняйте подлежащие, глаголы и темы и придумывайте
новые предложения помимо тех, что ученик уже видел. Каждое повторение показывает один случайный
кейс, поэтому расписание следит за правилом, а не за отдельным предложением. Каждый кейс остаётся
на том же выборе, ради которого карточка: здесь пропуск всегда на do/does. Кейс, где пропущено
другое слово (скажем, смысловой глагол), проверяет другое знание, и его место на другой карточке.
Стороны — целые предложения, поэтому карточка получает Flip и режимы пропуска, но не ввод стороны,
который требовал бы предложение буква в букву. Пропуск — часть ответа, поэтому distractors относятся
к пропуску.
context на кейсе карточки-правила допустим, только когда у front несколько верных ответов.
Классический пример — артикли: в русском front артиклей нет, поэтому для Я вижу птицу. верны и
I see a bird, и I see the bird. context: какую-то, не конкретную выбирает нужное значение, а без
подсказки неверный вариант the оказался бы вторым верным. Никогда не используйте context, чтобы
повторить условие правила: context: university начинается с согласного звука [j] на карточке про
a/an выдаёт ответ до вспоминания. Когда у кейса один верный ответ, context не нужен; напоминание
правила живёт в note карточки и показывается после ответа.
У карточки про артикли есть и кейсы, где правильный ответ — без артикля. Это пишется пустым back
и пустым пропуском {{}}, а неверные варианты сохраняются: нулевой артикль — именно тот выбор, который
ученик должен уметь сделать сам, поэтому его нельзя проверять только выбором из списка.
---
front: артикль с большинством стран (Франция, Россия)
back:
distractors: a | an | the
cloze: She lives in {{}} France.
Соседние кейсы (back: the для the UK, back: a для a doctor) по той же причине держат ""
среди своих distractors: «без артикля» должно оставаться живым вариантом везде, иначе ученик выберет
правильный артикль методом исключения.
Путаемые слова → одна карточка на различение, кейсы чередуют верный член
Ученик путает speak (уметь говорить на языке) и learn (процесс изучения). Одна карточка на путаемый набор; другие члены набора — неверные варианты, а кейсы чередуют, какой член верен, — так ученику приходится различать, а не узнавать один заученный ответ:
---
title: speak vs learn
note: speak = уметь говорить на языке; learn = учить, осваивать (процесс).
front: говорить (на языке)
back: speak
cloze: Do you {{speak}} Polish?
distractors: learn | study | talk
case:
front: учить, осваивать (язык)
back: learn
cloze: I {{learn|study}} Polish and English.
distractors: speak | talk
Это карточка-слово, поэтому front/back несут только слово и его значение, а предложения с
контекстом живут в cloze. Так Flip остаётся чистым (слово ↔ значение, а не пара предложений), и
становится доступен Match — самый быстрый режим, чтобы прогнать много карточек-слов за раз. Пропуск —
само слово ответа, поэтому distractors служат и пропуску, и простому выбору слова. Когда в
предложение действительно подходят несколько членов набора, принимайте их все одной группой (как
{{learn|study}} выше): неверный вариант никогда не должен совпадать с принимаемым. Когда одно
предложение не задаёт единственного прочтения, добавьте кейсу подсказку context, а не искажайте
предложение.
Одно слово, несколько контекстов → одна карточка, кейс на контекст
Ученик неверно употребил одно слово (make a service → должно быть develop a service). Сосредоточьте карточку на этом слове и покажите его в разных предложениях — по одному случайному кейсу на повторение:
---
title: Collocation: develop (software)
note: develop / build a service, an app — not "make a service".
front: разрабатывать (сервис, приложение)
back: develop
cloze: I {{develop|build}} a spaced repetition service.
case:
front: разрабатывать (сервис, приложение)
back: develop
cloze: We {{develop|build}} mobile apps for banks.
distractors: make | do | invent
case:
front: разрабатывать (сервис, приложение)
back: develop
cloze: Our team {{develops|builds}} new features every month.
Вводимый ответ — всегда слово, никогда не целое предложение. Обратите внимание на третий кейс:
контекстная форма (develops) стоит первой в своей группе, по правилам пропусков, а back остаётся
словарной формой — именно её карточка-слово показывает как ответ и именно её Match ставит в пару.
Полный пример колоды
Валидная колода-образец, в которой каждый режим выводится хотя бы у одной карточки. Её можно вставить в диалог «Импорт колоды» как есть:
deck: English basics — sample
description: A tiny sample deck showing every key.
front-language: ru
back-language: en
---
front: яблоко
back: apple
distractors: banana | orange | grape
cloze: I eat an {{apple}} every day.
---
front: язык
back: tongue
context: орган
---
title: Phrasal verb
front: идти на прогулку
back: to go for a walk
accept: go for a walk
cloze: After dinner we often {{go for a walk|to go for a walk}} in the park.
---
note: till и until взаимозаменяемы; from задаёт начало интервала.
front: с … до …
back: from … till …
cloze: The shop is open {{from}} 9 a.m. {{till|until}} 6 p.m.
distractors: at | on | in
---
note: be – was/were – been.
front: быть (3 формы)
back: be – was/were – been
cloze: {{be}}, {{was|were}}, {{been}}
case:
front: он устал (Present Simple, to be)
back: he is tired
Формат JSON
Те же факты в JSON, по полю на каждый ключ текстового формата. На нём говорят экспорт, REST API и
agent API, а диалог «Импорт колоды» и все поля вставки его принимают. JSON-файл со старыми списками
modes (экспорт прежней версии, ответ на промпт v1) тоже импортируется: его режимы превращаются в
факты.
Контракт JSON колоды. Объект колоды, который принимают диалог «Импорт колоды»,
POST /api/decks/import-json и agent API, — те же факты, что и в тексте cards, по полю JSON на ключ.
У карточек нет deckIds: саму колоду создаёт импорт.
{
"title": "string", // deck name (required)
"description": "string | null",
"frontLanguage": "ru", // language of the question side (front) — the learner's native language (optional)
"backLanguage": "en", // language of the studied side (back) — drives pronunciation (optional)
"disabledModes": [], // study modes the deck switches off for every card (optional)
"cards": [
{
"title": "string | null", // optional label; never copy the front — set it only when it adds information
"explanation": "string | null", // post-answer note (rule recap / mnemonic); MAY reference the answer
"contentFormat": "PlainText", // or "Markdown"
"cases": [
{
"front": "string", // question side (usually the native language), required
"back": "string", // answer side (usually the studied language); "" = "no word belongs here"
"context": "string | null", // cue shown WITH the question; set ONLY when several answers would be correct without it
"accept": ["string"], // other forms of the back the learner may type (optional)
"distractors": ["string"], // three plausible wrong options for what the case asks (optional)
"cloze": "string | null" // a sentence with the answer in {{ }}: "I eat an {{apple}} every day."
}
]
}
]
}
Опускайте то, что кейсу не нужно: отсутствующее и пустое поле значат одно и то же. Никогда не пишите
frontImage, backImage, backAudio и frontAudio (E19) и никогда — список modes: режимы
выводятся из этих фактов. Где правила цитируют поле в нотации текста cards (back: apple, case:),
читайте note как explanation, каждый case: — как ещё один элемент cases, а список через | —
как массив JSON.
Пример колоды в JSON — те же карточки, что и в текстовом примере:
{"title":"English basics — sample","description":"A tiny sample deck showing every key.","frontLanguage":"ru","backLanguage":"en","cards":[{"cases":[{"front":"яблоко","back":"apple","distractors":["banana","orange","grape"],"cloze":"I eat an {{apple}} every day."}]},{"cases":[{"front":"язык","back":"tongue","context":"орган"}]},{"cases":[{"front":"идти на прогулку","back":"to go for a walk","accept":["go for a walk"],"cloze":"After dinner we often {{go for a walk|to go for a walk}} in the park."}],"title":"Phrasal verb"},{"cases":[{"front":"с … до …","back":"from … till …","distractors":["at","on","in"],"cloze":"The shop is open {{from}} 9 a.m. {{till|until}} 6 p.m."}],"explanation":"till и until взаимозаменяемы; from задаёт начало интервала."},{"cases":[{"front":"быть (3 формы)","back":"be – was/were – been","cloze":"{{be}}, {{was|were}}, {{been}}"},{"front":"он устал (Present Simple, to be)","back":"he is tired"}],"explanation":"be – was/were – been."}]}
Картинки и произношение
Картинка ставится в форме карточки: «Загрузить» свою или «Подобрать картинку» в бесплатных фотобанках (Pixabay, Wikimedia Commons, Pexels); выбранная сохраняется вместе с автором и лицензией. Картинка на лицевой стороне показывается вместе с вопросом, на обратной — только после ответа. Произношение изучаемого слова берётся из открытых записей: «Подобрать произношение» в форме карточки. Не пишите ссылки на картинки и аудио в текст или JSON: ссылка, придуманная вручную или чат-ботом, почти всегда битая.
Чек-лист перед импортом
По этим правилам приложение проверяет ответы ИИ: замечания, которые кнопка «Скопировать замечания для ИИ» отдаёт чату, ссылаются на них по номерам.
Чек-лист валидности:
- E1. У каждого кейса есть
front(backможет быть пустым — см. E16). - E2. В
clozeесть хотя бы один пропуск{{ }}— ровно одна группа на пропуск. - E3. Каждый набор ответов — группа
{{ }},backвместе сaccept— не пуст, контекстная форма первой. Пункт в нём может быть пустым — это ответ «слово не нужно» (E16). - E4. Синонимы — отдельные пункты, никогда не
a, bодним пунктом. - E5. Контекстная форма грамматична в своём предложении (никаких «we often to go», «is be keen on»).
- E6. Неверные варианты неверны и никогда не совпадают с принимаемым вариантом, а при нескольких пропусках в одном предложении — с ответом любого из них.
- E7. Факт даётся, только если его можно заполнить хорошо: никаких
distractorsдля галочки, никаких натянутыхcloze. У карточки, которую только переворачивают, нет ни того, ни другого — остальные режимы ей даёт колода. - E8. В ответах и вариантах нет символа
|(это зарезервированный разделитель). - E9. Вводимые ответы —
backкарточки-слова вместе сaccept, каждый пропуск — это слово или короткая фраза.backразмером с предложение допустим (приложение не просит его вводить), но выбор внутри него проверяется пропускомclozeровно в этой точке. - E10. У карточки-правила несколько кейсов (стремитесь к 6+), каждый — другое предложение-пример; одно правило никогда не делится на карточку на каждое предложение.
- E11.
distractors— минимальные пары проверяемого выбора (do/does/did): здесь неверные, но правдоподобно путаемые; никогда не случайные посторонние слова. - E12. Различие, которое ввод не видит, — один только регистр (
Englishиenglish) или одна толькоё/е(всёивсе), — проверяетсяdistractors, которые отличаются ровно этим. Приложение тогда показывает кейс только в режимах выбора (ввод не различает регистр иё, поэтому принял бы неверную форму); такой вариант никогда не кладут вaccept. - E13. Каждый кейс и каждый факт карточки проверяют один её выбор. Карточка про do/does никогда не пропускает в одном из кейсов смысловой глагол: другой выбор — другая карточка.
- E14. У карточек-слов
front/back— само слово (слово ↔ значение), никогда не целое предложение; предложения с контекстом идут вcloze. ТакFlipостаётся чистым, аMatchстановится доступен. И одна форма, а не список:upside down; inverted; wrong way upпокажется ученику перечислением вMatchи в вариантах выбора. Равноценные формулировки — пунктыaccept(E17); разные значения — разные кейсы сcontext(E15). - E15.
contextставится, только когда уfrontбольше одного верного ответа; он выбирает нужное прочтение и никогда не подсказывает ответ или отрабатываемое правило (напоминание правила живёт вnote). - E16. Когда правильный ответ — отсутствие слова (нулевой артикль, нулевой предлог), он
записывается пустым — и в
back, и в пропуске ({{}}), одинаково во всём кейсе. Никогда не замена (—,0,no article): приложение подставляет свою подпись. - E17. Каждая форма, которую вы приняли бы, — отдельный пункт: вежливость
(
успокойтесь/успокойся), род и число (оба/обе), равноценные синонимы (till/until). Перечисление в одной строке (оба, обеодним пунктомaccept) не работает — ученику пришлось бы вводить этот список буквально. Регистр,ё/еи знаки препинания на краях перечислять не нужно. Верно и обратное: ответ, который ученик должен дать целиком (red, green, blue), и один термин через косую черту (and/or) — один пункт. - E18. Один вопрос — один набор верных ответов. Два кейса карточки (или две карточки колоды) не
должны по-разному отвечать на один и тот же вопрос — ученик гадал бы, о чём его спрашивают. Тот же
front, разныеback: вопрос снимает свойcontextу каждого кейса (E15). Тот жеback, разныеfront(многозначное слово):contextне поможет, обратные режимы его не показывают, — сделайте значения кейсами одной карточки, и обратный вопрос сам примет любое значение. Две отдельные карточки с однимbackтеряют обратные режимы. - E19. Никогда не выдумывайте ссылку на картинку или аудио: никаких
front-image,back-image,back-audio,front-audio. Картинки загружает владелец колоды, произношение подставляет сервер; угаданная ссылка — битая картинка, а битая картинка хуже никакой.
Создание карточек с ИИ
Составлять карточки вручную не обязательно — есть три пути:
- Базовый ИИ — кнопка «Создать с помощью ИИ» на странице колод: опишите колоду свободным текстом, отредактируйте план и получите готовые карточки.
- Свой ИИ — тот же диалог собирает готовый промпт: скопируйте его в любой чат-бот (ChatGPT, Claude, Gemini), а ответ вставьте обратно — блок ```cards, который он напечатает, или JSON, если он настоит на своём. Так же работает «Заполнить с помощью ИИ» в форме карточки и в массовом редактировании.
- Внешний чат после занятия — если вы разбирали тему с ИИ-чатом, дайте ему ссылку
/prompts/v3/deck-builder: он задаст пару уточняющих вопросов о ваших слабых местах, соберёт колоду и выдаст текст для импорта.
Импорт
- Откройте страницу колод и нажмите «Импорт колоды» (или перейдите по ссылке
/decks?import=1— диалог откроется сам). - Вставьте текст: диалог читает блок ```cards, объект колоды JSON
{ "title", …, "cards": [ … ] }, просто массив карточек[ { "cases": … }, … ]или по паревопрос — ответна строку — название берётся из текста, если он его называет, иначе из поля «Название» диалога. - Прочитайте превью — сколько карточек найдено и, по каждой карточке, что не удалось прочитать — и подтвердите: колода и все карточки создадутся за один шаг.
Отдельную карточку можно вставить во вкладку JSON формы карточки.