# STRUCTURE.md — Инструкция по структуре курсов Этот файл описывает формат и правила работы с курсами. Прочитай его перед созданием нового курса или началом обучения. --- ## Структура директорий ``` ~/courses/ ├── CLAUDE.md # Точка входа для Claude Code → ссылка на AGENTS.md ├── AGENTS.md # Оркестрация: старт, режимы, права на файлы ├── TUTOR.md # Поведение тьютора: тон, адаптация, диалог ├── PROFILE.md # Профиль ученика (опыт, стиль, предпочтения) ├── STRUCTURE.md # Этот файл — правила и формат │ ├── / # Папка курса (kebab-case, латиница) │ ├── course.md # План, метаданные, прогресс │ ├── summary.md # Итоговое саммари (создаётся при завершении курса) │ └── modules/ │ ├── 01-/ # Создаётся при создании курса │ │ ├── lesson.md # Тезисы и ключевые концепции │ │ └── notes.md # Заметки ученика (создаётся при обучении) │ ├── 02-/ # Создаётся когда ученик готов перейти к модулю │ │ ├── lesson.md │ │ └── notes.md │ └── ... ``` ### Правила именования - Папка курса: `kebab-case`, латиница, без пробелов. Примеры: `dns-deep-dive`, `linux-networking`, `python-async` - Папки модулей: `NN-slug`, где NN — порядковый номер с ведущим нулём. Примеры: `01-basics`, `02-record-types`, `13-advanced-topics` - Обязательные файлы: `course.md`, `lesson.md`, `notes.md`, `summary.md` — форматы описаны ниже - Практические артефакты (код, конфиги, скрипты) могут находиться в папке курса или модуля без ограничений --- ## Создание нового курса ### Шаг 1 — Сбор контекста Прочитай `PROFILE.md`. Затем выясни у ученика: 1. **Тема**: что конкретно хочет изучить 2. **Цель**: что хочет уметь делать после курса (не "знать", а "уметь") 3. **Уровень входа**: что уже знает по этой теме 4. **Фокус**: какие аспекты особенно важны или интересны 5. **Антифокус**: что можно пропустить или дать обзорно Если ученик пришёл с готовым планом — пропусти интервью, переходи к шагу 2. ### Шаг 2 — Составление плана Предложи план из **5–12 модулей**. Каждый модуль — это одна учебная сессия на 30–90 минут. Придерживайся принципов: - От простого к сложному - Каждый модуль опирается на предыдущие - Практические модули чередуются с теоретическими - Последний модуль — интеграция знаний или реальный проект Покажи план ученику, обсуди, скорректируй. Только после согласования — создавай файлы. ### Шаг 3 — Создание файлов Создай только начальную структуру: 1. Папку курса `~/courses//` 2. `course.md` — по формату ниже (с полным планом всех модулей) 3. Папку первого модуля `modules/01-slug/` 4. `lesson.md` первого модуля — по формату ниже 5. **Не создавай** папки и lesson.md остальных модулей — они создаются по мере прохождения курса 6. **Не создавай** `notes.md` заранее — он появится при обучении ### Создание следующего модуля Папка и lesson.md следующего модуля создаются **только по команде ученика**: "далее", "следующий модуль", "переходим к модулю N" и т.п. При создании lesson.md учитывай контекст пройденного обучения: 1. Прочитай notes.md всех завершённых модулей — вопросы, ошибки, инсайты 2. Учти, какие темы потребовали больше объяснений, а что далось легко 3. Скорректируй глубину, акценты и примеры в lesson.md нового модуля 4. Создай папку `modules/NN-slug/` и `lesson.md` План модулей в course.md (названия и порядок) остаётся ориентиром, но содержание lesson.md адаптируется под ученика. ### Изменение плана на ходу course.md — живой документ. По ходу курса план можно адаптировать: - Добавить модуль, если тема оказалась сложнее или шире ожидаемого - Убрать модуль, если тема уже покрыта или неактуальна - Переформулировать модуль с учётом хода обучения Любые изменения плана — только с согласия ученика. --- ## Формат course.md ```markdown # <Название курса> ## Метаданные - Создан: - Цель: <что ученик сможет делать после курса> - Уровень входа: <что ученик уже знает по теме> - Ожидаемое время: <примерная оценка в часах> ## Прогресс - [ ] 01 — <Название модуля>: <краткое описание в 5–10 слов> - [ ] 02 — <Название модуля>: <краткое описание> - [ ] 03 — <Название модуля>: <краткое описание> ... ## Заметки <Свободное поле: зачем ученик начал курс, что важно помнить, контекст> ``` ### Правила для course.md - Прогресс — это чеклист в формате `- [ ]` / `- [x]` - Номер в прогрессе совпадает с номером папки модуля - Описание после тире — то же, что title в lesson.md - Раздел "Заметки" — для контекста, не для трекинга --- ## Формат lesson.md ```markdown # Модуль NN: <Название> ## Ключевые концепции ### <Концепция 1> - Тезис или факт - Тезис или факт - Важный нюанс или ограничение ### <Концепция 2> - Тезис или факт - Связь с другими концепциями - Частая ошибка или заблуждение ... ## Практика - <Конкретное задание или действие> - <Что попробовать руками> - <Что проверить или исследовать> ## Связи с другими модулями - Модуль NN: <как связан> - Модуль NN: <как связан> ``` ### Правила для lesson.md - **Формат: тезисы, не конспект.** Каждый пункт — одно утверждение или факт. Без воды, вводных слов и переходов. Агент раскроет детали в диалоге. - **Концепции, а не шаги.** Lesson.md описывает *что нужно понять*, а не *что агент должен рассказать*. Это карта знаний, не сценарий урока. - **Практика обязательна.** Каждый модуль содержит хотя бы одно задание, которое ученик может выполнить. - **Связи обязательны.** Указывай, как модуль связан с другими. Это помогает и ученику, и агенту. - **Техническая терминология** — оригинальная (английская), с пояснением при первом использовании в рамках курса. - **Объём** — 15–40 тезисов на модуль. Если больше — разбей модуль на два. --- ## Формат notes.md ```markdown # Заметки: Модуль NN — <Название> ## Заметки ученика - <Записи, добавленные по явной просьбе ученика во время обучения> ## Саммари модуля - **Вопросы**: какие вопросы возникали - **Легко**: что далось без затруднений - **Сложно**: что потребовало дополнительных объяснений - **Ошибки**: что не получилось на проверке - **Наблюдения**: другая информация для рефлексии ``` ### Правила для notes.md - Создаётся **только во время обучения**, не заранее - **Заметки ученика** — добавляются только по явной просьбе ученика ("запиши", "запомни", "добавь в заметки"). Агент не записывает заметки по своей инициативе - **Саммари модуля** — пишет агент при завершении модуля, перед переходом к следующему. Это рефлексия по итогам прохождения: что спрашивал, что было легко/сложно, где ошибался, что важно учесть дальше - notes.md — собственность ученика. Не удаляй содержимое, только дополняй --- ## Формат summary.md Создаётся при завершении курса (все модули отмечены `[x]`). Располагается рядом с `course.md`. ```markdown # Итоги курса: <Название> ## Что изучено - <Ключевые знания и навыки, которые ученик получил> ## Что было сложным - <Темы или концепции, которые потребовали больше усилий> ## Что далось легко - <Темы, которые ученик освоил быстро> ## Рекомендации - <Что изучить дальше, какие темы углубить, какие смежные области посмотреть> ``` ### Правила для summary.md - Создаётся **только при завершении курса**, не раньше - Агент пишет summary.md на основе всех notes.md и хода обучения - Раздел "Рекомендации" — конкретные направления, не общие фразы --- ## Отметка прогресса ### Когда модуль считается завершённым Модуль отмечается `[x]` в `course.md` когда выполнены **оба условия**: 1. **Материал разобран** — ученик прошёл через все концепции из lesson.md 2. **Проверка пройдена** — ученик верно ответил на 3–5 вопросов разного типа: - Концептуальный: "Почему X работает именно так?" - Практический: "Какой командой / каким способом сделать Y?" - Сценарный: "Что произойдёт, если Z?" ### Как отмечать В `course.md` заменить `- [ ]` на `- [x]` для соответствующего модуля: ``` До: - [ ] 03 — Процесс резолвинга: рекурсия, итерация, кэширование После: - [x] 03 — Процесс резолвинга: рекурсия, итерация, кэширование ``` ### Когда НЕ отмечать - Ученик попросил "просто расскажи" без проверки — не отмечай - Ученик не смог ответить на проверочные вопросы — объясни заново, попробуй позже - Ученик явно пропустил модуль ("это я знаю, дальше") — можно отметить, но сначала задай 2 быстрых вопроса для подтверждения ### Снятие отметки Если при ревизии (режим review) ученик не помнит материал пройденного модуля — сними отметку: ``` До: - [x] 03 — Процесс резолвинга: рекурсия, итерация, кэширование После: - [ ] 03 — Процесс резолвинга: рекурсия, итерация, кэширование ```