Skip to main content
Glama
README.md
# Вайб-школа

Учебная программа для тех, кто делает продукты руками ИИ. Темы проходишь вместе с Claude:
он читает лекцию, задаёт вопросы, проверяет ответы и практику. Всё это видно на локальном сайте:
карта тем, лекции, твои ответы и оценки.

| Трек | Для чего | Тем |
|---|---|---|
| [1. Разработка для вайбкодера](tracks/1-vibecoding.md) | понимать, что делает ИИ, ставить ему задачи и проверять результат | 20 |
| [2. База продукт-оунера](tracks/2-product-owner.md) | решать, *что* делать и *зачем*: пользователь, гипотезы, метрики, деньги | 19 |
| [3. Мини-продукт: от идеи до первых денег](tracks/3-mini-product.md) | найти идею со спросом, собрать, запустить и монетизировать маленький продукт | 25 |

## Как это работает

```
 Claude (Code или Desktop) ──MCP──▶ vibe-school ──▶ ~/.vibe-school/progress.json
                                         │
                                         └──▶ сайт http://localhost:4747
```

Один процесс — это и MCP-сервер, и сайт. Claude запускает его сам при старте.
Он берёт следующую тему, записывает лекцию на сайт, читает твои ответы, ставит оценки
и закрывает тему. Отвечать можно на сайте или прямо в чате.

## Установка

Нужен [Node.js](https://nodejs.org) 20 или новее и Claude Code или Claude Desktop.

```bash
git clone https://github.com/britov/vibe-school.git
cd vibe-school
npm install
npm run setup
```

`npm run setup` напечатает готовую команду подключения с путём к твоей папке. Для Claude Code
это одна строка:

```bash
claude mcp add --scope user vibe-school -- node "/путь/к/vibe-school/server/index.js"
```

Дальше открой Claude и напиши: «давай учиться». Claude покажет прогресс и ссылку на сайт.
В Claude Code можно вызвать готовую команду `/mcp__vibe-school__lesson`.

Сайт без Claude: `npm start` — только посмотреть программу и прогресс.

## Порядок тем

1. Трек 1, темы 1.1–1.10 — без них ИИ делает «что-то», а ты не понимаешь что.
2. Трек 2, темы 2.1–2.8 — пользователь, проблема, гипотеза, требования.
3. Трек 3 целиком — запуск своего мини-продукта.
4. Остальные темы треков 1 и 2, по мере надобности.

Claude держится этого порядка сам. Если тема опирается на непройденную, он скажет об этом.

## Настройки

| Переменная | По умолчанию | Что делает |
|---|---|---|
| `VIBE_SCHOOL_PORT` | `4747` | порт сайта |
| `VIBE_SCHOOL_DATA` | `~/.vibe-school/progress.json` | где лежит прогресс |

Прогресс хранится только на твоём компьютере. Сайт открыт только для `localhost`.

Кнопка 🎤 в полях ответа включает голосовой ввод браузера (Chrome, Edge, Safari; в Firefox
кнопки нет). Речь распознаёт сервис браузера — Google или Apple, то есть звук уходит к ним.
Не хочешь этого — пользуйся системной диктовкой (на Mac — дважды Fn) или печатай.

## Озвученные лекции

У темы может быть готовая лекция голосом: кнопка «▶ Слушать лекцию» на странице темы.
Учитель объясняет своими словами, а не зачитывает текст. Пока он говорит, на странице
подсвечивается пункт, о котором идёт речь, а внизу идут субтитры с подсветкой текущего слова.
В конце учитель задаёт первый вопрос, звук останавливается, и курсор встаёт в поле ответа.
Пробел — пауза, кнопка «1×» меняет скорость.

Сейчас озвучен весь трек 1. Чтобы озвучить тему другого трека, понадобится Mac на Apple Silicon:

1. Создай `lessons/<номер>/script.json` по образцу `lessons/1.1/script.json`. В нём `blocks` —
   письменная лекция по блокам, `segments` — реплики учителя. У каждой реплики `block`
   (какой блок подсвечивать) или `question` (номер вопроса с 0 — им лекция заканчивается).
   Пиши так, как говорят: короткими фразами, числа словами, без сокращений.
2. Поставь инструменты: `uv tool install mlx-audio`, `uv tool install mlx-whisper`, `brew install ffmpeg`.
3. Запусти `python3 tools/voice-lesson/build.py lessons/<номер>`. Голос учителя лежит
   в `tools/voice-lesson/voices/teacher.wav`, поэтому все лекции звучат одним голосом.
   Если скрипт пишет «проверь на слух», переформулируй реплику и перезапусти её: `--redo 6`.

Голос синтезирован моделью Qwen3-TTS (Apache 2.0) по текстовому описанию. Это не клон
реального человека. Время каждого слова определяет Whisper (MIT).

## Как добавить или поправить тему

Темы — обычные markdown-файлы в `tracks/`. Формат описан в [CLAUDE.md](CLAUDE.md).
После правки запусти `npm test`: тест проверит, что каждая тема разбирается и в ней
все поля на месте. Номера существующих тем не меняй — по ним хранится прогресс.

## Лицензия

Код — [MIT](LICENSE). Тексты тем — [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.ru):
можно использовать и переделывать с указанием источника. Статьи по ссылкам принадлежат их авторам.