vibe-school
by britov
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):
можно использовать и переделывать с указанием источника. Статьи по ссылкам принадлежат их авторам.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues