Skip to content
Back to skills

Flashcards

ASecurity

Флэшкарточки из любого источника (отчёт, книга, урок, закон, расшифровка) — как у NotebookLM, но с источником на каждой карточке, интервальным повторением, тремя типами, ru/uz (латиница и кириллица)/en, картинками в скетч-стиле для канала, PDF для печати, импортом в Anki и квизами в Telegram. Применять при «сделай карточки», «флэшкарточки», «колода для запоминания», «карточки к уроку», «квиз по материалу», «повторение по Anki».

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
toolspythongobash

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add shakhruz/mila-companion --skill flashcards --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Flashcards?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Flashcards
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shakhruz-flashcards/badge)](https://www.skillsdirectory.com/skills/shakhruz-flashcards)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: flashcards
description: "Флэшкарточки из любого источника (отчёт, книга, урок, закон, расшифровка) — как у NotebookLM, но с источником на каждой карточке, интервальным повторением, тремя типами, ru/uz (латиница и кириллица)/en, картинками в скетч-стиле для канала, PDF для печати, импортом в Anki и квизами в Telegram. Применять при «сделай карточки», «флэшкарточки», «колода для запоминания», «карточки к уроку», «квиз по материалу», «повторение по Anki»."
---

# flashcards — колода, которую запоминают

Навык заведён 25.09.2026 по слову владельца MILAGPT: «пойдём по способностям
NotebookLM — генерация флэшкарточек… сделай наш аналог, который будет ещё лучше».
Разведка того, как это устроено у Google, есть у старшей. Если коротко,
у NotebookLM нет интервального повторения, ссылки на место в источнике, второго
языка на карточке, печати и Telegram. У нас всё это есть.

## Что получается на выходе

| Файл | Кому и зачем |
|---|---|
| `cards-<язык>/NN-front.png`, `NN-back.png` | 1080×1350, скетч на кремовой бумаге: пост, карусель, сторис |
| `print-<язык>.pdf` | A4, 8 карт на лист, обороты зеркально, линии реза: раздатка на занятие |
| `trainer.html` | тренажёр на телефоне: каталожная карточка с переворотом, свайп вправо — «знаю», влево — «повторить», вверх — «спросить»; кнопки оценки внизу под большой палец; на десктопе клавиши (пробел, ←, →, ↓, ↑); кольцо прогресса; экран итога (сколько знал, что повторить, дата следующей повторки); повторы по Лейтнеру (1·3·7·14·30 дней); язык, режимы «Сегодня · Все · Ошибки»; тёмная тема и «уменьшить движение». Проверен на 360, 390, 430 и 768 px |
| `anki-<язык>-basic.txt`, `anki-<язык>-cloze.txt` | импорт в Anki одной кнопкой: тип, колода и теги уже в заголовке файла |
| `polls-<язык>.json` | квиз-опросы Telegram с правильным ответом и объяснением |

## Шаг 1. Разговор до колоды (одним сообщением, не анкетой)

Спросите только то, чего не знаете: **для кого** колода (ученик, клиент,
подписчики канала), **сколько** карт (мало 8 · стандарт 12 · много 20–30),
**сложность** (лёгкая: факты и определения; средняя: связи и причины; трудная:
применение и «почему»), **языки**, **куда** (канал, печать, тренажёр, Anki).
Не ответили — берите стандарт: 12 карт, смесь сложностей, язык собеседника.

## Шаг 2. Колода — `deck.json`

Пишете её сами по источнику. Образец на 12 карт (аналитический отчёт, 4 языка,
все три типа) есть у старшей: попросите его, если нет под рукой.

```json
{
  "id": "slug-kolody",
  "title": {"ru": "…", "uz_latn": "…", "en": "…"},      // строка или словарь по языкам
  "subtitle": {"ru": "…"}, "kicker": {"ru": "Коротко, обычным регистром"},
  "source_doc": {"title": "Название источника", "author": "…", "date": "ДД.ММ.ГГГГ"},
  "langs": ["ru", "uz_latn", "uz_cyrl", "en"],
  "ask_bot": "@имя_вашего_бота",                          // кнопка «спросить подробнее» в тренажёре
  "cards": [
    {"id": "c01", "type": "qa", "difficulty": "easy|medium|hard", "tags": ["тема"],
     "source": {"section": "Раздел источника", "quote": "дословная фраза ≤30 слов"},
     "ru": {"front": "Вопрос?", "back": "Ответ.", "why": "почему это важно", "hint": "подсказка (необяз.)",
            "answer": "короткий ответ для квиза", "choices": ["неверный 1", "неверный 2", "неверный 3"]}},
    {"id": "c02", "type": "cloze", "ru": {"front": "Каждое {{пятое}} высказывание — требование.", "back": "пояснение"}},
    {"id": "c03", "type": "explain", "ru": {"front": "Почему…?", "points": ["мысль 1", "мысль 2", "мысль 3"]}}
  ]
}
```

**Правила колоды — то, чем она лучше:**

1. **Источник у каждой карты**: раздел и дословная фраза. Цитата остаётся на
   языке оригинала, её не переводят. Нет фразы в источнике — нет карты.
   Проверка не пропустит карту без источника.
2. **Одна карта — одна мысль.** Лицо ≤30 слов, оборот ≤45. Список из пяти пунктов
   дробится на карты.
3. **Смесь типов.** Примерно половина `qa`, четверть `cloze` (пропуск — цифра,
   термин, ключевое слово; можно два пропуска), четверть `explain` («объясните
   своими словами» + 2–4 опорные мысли на обороте). `explain` учит понимать, а
   не угадывать.
4. **`why` на обороте**: одна фраза, зачем это знать. Это наш ответ на кнопку
   Explain у NotebookLM, только на самой карте.
5. **Неверные варианты для квиза** правдоподобны и из того же источника, а не
   очевидная чепуха. Без `answer` и `choices` карта в квиз не идёт, и это нормально.
6. **Цифры — как в источнике.** Не округляйте и не пересчитывайте. Если доля
   посчитана на малой выборке, скажите это в `why`.
7. **Узбекский:** пишите `uz_latn` (латиница 2021+, апостроф `ʻ` U+02BB в oʻ/gʻ,
   `ʼ` U+02BC). `uz_cyrl` соберётся сама из латиницы (`scripts/translit_uz.py`,
   исключения — месяцы, -tsiya → -ция, korrupsiya). Хотите проверить — задайте
   `uz_cyrl` явно. Узбекский текст наружу вычитывает носитель, это правило из
   `humanizer-uz` и `uzbek-editor`.

## Шаг 3. Проверка и сборка

```bash
S=~/.claude/skills/flashcards/scripts
python3 $S/deck.py check  ~/work/<колода>/deck.json          # ошибки ✗ исправить, предупреждения ⚠ прочитать
python3 $S/deck.py build  ~/work/<колода>/deck.json ~/work/<колода>/out
python3 $S/deck.py render ~/work/<колода>/out                # PNG и PDF
```

У компаньона браузера нет, поэтому `render` кладёт заявки в
`~/work/render-queue/` (очередь хоста, раз в минуту). Готово, когда рядом с
каждой заявкой появился `.done` с `"ok": true`. Папка колоды обязана лежать
внутри `~/work`. На 12 карт × 4 языка это ~100 заявок, минут 5–8. Одного языка
для канала хватает: `build … --lang ru`.

**Посмотрите 2–3 PNG глазами** (Read), прежде чем отдавать: текст не вылез,
пропуск виден, источник читается.

## Шаг 4. Куда отдать

- **Человеку на телефон** — `trainer.html` файлом. Шрифты внутри, сеть не нужна,
  прогресс хранится на его устройстве. Если попросят ссылку — просите старшую
  выложить страницу.
- **В канал** — 3–5 пар PNG каруселью (лицо, потом оборот) по правилам публикации
  вашего владельца: пост наружу — после его «да».
- **На занятие** — `print-<язык>.pdf`: печать двусторонняя, переворот по длинному краю.
- **В Anki** — `anki-*.txt`: Файл → Импорт, всё уже размечено.
- **Квиз в Telegram** — сначала показ:
  `python3 $S/deck.py polls out/polls-ru.json --chat <id>`, отправка — с `--send`.
  Отправлять **только** в чат, где владелец или ученик попросил квиз. Бот должен
  быть в этом чате. В группе ответы не анонимны: участники увидят, кто как ответил.

## Картинка-иллюстрация (по желанию)

У карты может быть поле `"image": "file.png"` рядом с `deck.json`: рисунок
встанет над вопросом. Рисунок делайте навыком `genimage` с фиксированным блоком
стиля из `mila-studio/prompts/style-sketch.md` (карандашный скетч, masterpiece),
без текста на картинке: весь текст карта ставит сама. Один рисунок стоит
≈ $0,14. На колоду хватит одного, для обложки или первой карты, а не на
каждую карту.

## Сколько стоит

Сборка, PNG, PDF, тренажёр, Anki и квизы — бесплатно: всё собирается у нас.
Платны только иллюстрации genimage, ≈ $0,14 штука, по желанию. Колода без
картинок стоит только вашего времени на `deck.json`.

## Чего навык не делает

- Не выдумывает факты: всё берётся из источника, который дал человек.
- Не публикует сам: PNG в канал и квизы — только туда, где попросили.
- Не хранит прогресс ученика у нас: тренажёр пишет только в его браузер.

Files in this skill

  • SKILL.md11.2 KB
  • scripts/deck.py30.8 KB
  • scripts/translit_uz.py4.8 KB
  • templates/card.html5.6 KB
  • templates/trainer.html25.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.