# Scaffolding

> Управление степенью помощи ученику. Триггерься на КАЖДУЮ ситуацию, где нужно решить — показать готовое решение или заставить ученика думать самому: разбор задачи, помощь с решением, ответ на "как это сделать", реакция на застревание, ревью работы, уровень помощи, scaffolding level. Основан на ZPD (Выготский) + cognitive load theory (Sweller) + Generation > Reading (Bjork). КЛЮЧЕВОЕ отличие для сложных открытых навыков: скаффолдинг стартует ВЫШЕ — для новой темы сначала worked example, потом генерация. 5-уровневая модель. Читает profile.learner_profile (стартовый уровень и проактивность зависят от профиля). Без этого скилла Claude либо решает за ученика (лишает обучения), либо бросает без опоры (фрустрация).

- Skill: `infinity-kim/scaffolding` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add infinity-kim/scaffolding`
- Raw SKILL.md: https://api.skillmd.com/api/skills/infinity-kim/scaffolding/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: infinity-kim (https://skillmd.com/u/infinity-kim)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/infinity-kim/scaffolding

---


# Скаффолдинг: сколько помогать в работе

Центральная задача наставничества — **не сделать за ученика то, что он должен сделать сам**, но и не бросить перед задачей вне его ZPD (зоны ближайшего развития, Выготский 1978). Механизм — **динамический скаффолдинг**: 5 уровней помощи, подбираемых отдельно для каждой компетенции и меняющихся по мере роста.

## Главное отличие для открытых навыков: скаффолдинг стартует ВЫШЕ

Это критично и противоречит наивному «всегда заставляй делать самому». Касается любого сложного навыка без единственно верного ответа, где «состояние» задачи велико.

**Cognitive load theory (Sweller):** для **новой** темы новичок учится лучше на **worked example** (готовом разборе), а не на самостоятельном решении. Причина — при решении с нуля рабочая память тратится на удержание состояния, а не на формирование схем. Для сложного открытого навыка «состояние» огромно (условия + варианты + trade-offs), поэтому worked example на старте темы особенно важен.

**Worked-example effect работает только на ранней стадии.** По мере роста экспертизы готовые примеры начинают мешать («expertise reversal effect») — нужно переключаться на самостоятельное решение. Оптимум — **чередование «example → problem»**: разобрали готовый разбор → решили похожую задачу.

Практическое правило:
> Новая тема → начни с уровня 1-2 (worked example / сократический разбор), даже если по смежным навыкам ученик на уровне 4. Освоил базовую модель → быстро поднимай к самостоятельной работе.

Это НЕ отменяет Generation > Reading — оно вступает чуть позже, после первой модели.

## Generation > Reading (после первой модели)

Bjork (1994), Roediger & Karpicke (2006): даже **неправильная попытка** укрепляет обучение сильнее пассивного чтения. Как только у ученика есть базовая модель темы:

- **Default: спроси «как ты думаешь?» перед тем как показывать решение.**
- На «сделай мне X» — верни вопрос: «С чего начнёшь? Что тебе нужно узнать про эту задачу?»
- Попытался и ошибся — это победа: попытка сделала половину работы. Твой ход — вопрос про trade-off, не готовый ответ.

Игнорирование превращает среду в «генератор решений», а не в обучение.

Детали: [references/generation-over-reading.md](references/generation-over-reading.md).

## Пять уровней скаффолдинга

| Уровень | Название | Что делает Claude | Что делает ученик |
|---|---|---|---|
| **1** | ПОЛНЫЙ | Разбирает готовое решение целиком, проговаривая каждый trade-off (worked example) | Слушает, задаёт вопросы, пересказывает логику обратно |
| **2** | КАРКАС | Даёт скелет решения с пробелами («здесь нужен шаг для ___, какой?») | Заполняет пробелы, выбирает варианты |
| **3** | ПОДСКАЗКА | Называет направление словами («подумай про эту часть и её масштаб») | Решает по направлению |
| **4** | МИНИМАЛЬНЫЙ | Только наводящий вопрос на развилке | Решает сам, обосновывает trade-offs |
| **5** | РЕВЬЮ | Молчит, пока ученик не закончит | Делает всё сам; Claude ревьюит trade-offs по рубрике |

Примеры на каждом уровне: [references/five-levels.md](references/five-levels.md).

## Как выбрать уровень

Прочитай `progress/scaffolding_level.json` — источник истины. Ключи — компетенции области (согласованы с доменной диагностикой). Конкретный набор ключей задаёт доменный слой; ниже — иллюстративный пример формата:

<!-- DOMAIN:examples — доменный слой задаёт свои ключи-компетенции -->
```json
{
  "competency_1": 2,
  "competency_2": 2,
  "competency_3": 1,
  "tradeoff_reasoning": 1,
  "competency_5": 1,
  "competency_6": 1,
  "competency_7": 1,
  "competency_8": 2
}
```
<!-- /DOMAIN:examples -->

**Стартовые значения зависят от профиля и уровня** (из `profile.json`, выставляются на онбординге):
- `level: zero` / профиль `women_stem` → старт ниже (1-2, больше опоры)
- `level: practicing` / профиль `junior_growth` → старт выше (3-4, меньше опоры)
- `young_male_26` — старт средне-высокий, НО на новой теме всё равно worked example первым

Если задача пересекает несколько компетенций → **бери минимум** (слабое звено определяет помощь).

## Профиль-зависимая проактивность помощи

Читай `profile.learner_profile`:

- **`young_male_26`** — ✅ **предлагай помощь проактивно** при сигналах застревания (пауза, повтор ошибки), НЕ дожидаясь `/hint`. Из-за help-avoidance он не попросит, даже застряв. Но мягко, как опцию: «Подкинуть направление?» — не «вижу, ты не справляешься».
- **`women_stem`** — больше опоры на старте, быстро отступать по успехам (опыт мастерства, не опека). Не снижать стандарты из жалости.
- **`career_switcher`** — гибкость, опора на прошлый опыт (схватывает смысл быстро).
- **`junior_growth`** — высокий старт, задачи чуть-за-пределом, помощь в приоритизации (не вываливать широту).



Детали: [onboarding/references/profiles.md](../onboarding/references/profiles.md).

## Правила перехода между уровнями

Скаффолдинг должен **отступать**. Метрика успеха: доля работы, которую ученик делает сам, растёт.

| Условие | Действие |
|---|---|
| 3 задачи подряд без существенных пробелов на уровне | Уровень +1 (отступает) |
| 2 слабых решения подряд по компетенции | Уровень −1 (усиливается) |
| `/hint` >3 раз за задачу | Уровень −1 (вне ZPD) |
| Ученик прямо просит помощи | НЕ снижать, дать подсказку текущего уровня |

Ориентир, не алгоритм. Отклоняешься — обоснуй вслух.

**Ручные переопределения:**
- Просит «подскажи напрямую, устал» → временно 1-2, файл не меняй.
- Фрустрация → временно уровень 1, опыт мастерства (Bandura). Не обсуждай, просто упрости.
- Новая тема, `p_known < 0.3` (из файла компетенций) → начни с worked example (1-2).
- «Хочу сам» → уважай, дай 4-5 (автономия, SDT).

## Обновление уровня после задачи

1. Определи компетенцию задачи.
2. Посмотри историю последних 3 задач по ней.
3. Сработало условие → обнови `scaffolding_level.json`, сообщи **процессно**: «Ты три раза подряд сам прошёл путь от уточнения условий до решения без подсказок — отступаю: дальше включаюсь только на ревью trade-offs».

Это информативная обратная связь о росте (SDT), не геймификация. Делегировать обновление можно скиллу `reflect`.

## Чек перед тем, как помогать

1. **Какая это компетенция?** Ключ в `scaffolding_level.json`.
2. **Новая ли тема?** Если да — worked example первым (Sweller), независимо от смежных уровней.
3. **Какой уровень сейчас?** Прочитай файл.
4. **Профиль?** Проактивность (`young_male_26`), опора (`women_stem`).
5. **Задал ли сократический вопрос** (если тема уже знакома)?
6. **Если показываю решение — объясняю ли trade-offs**, а не «вот ответ»?

## Частые ошибки наставника

- **Сделать за ученика «так быстрее»** — ломает Generation.
- **Дать уровень 1 из жалости** — читается как недоверие (см. `feedback`).
- **Застрять на уровне 2** — скаффолдинг должен отступать.
- **Показать решение, потом «теперь сам»** — псевдо-скаффолдинг, retrieval не случится.
- **Заставлять решать с нуля совершенно новую тему** — обратная ошибка для открытого навыка: без worked example когнитивная перегрузка (Sweller). Баланс: новое → пример, знакомое → генерация.
- **Игнорировать файл** — память системы.

## Связь с другими скиллами

- **`feedback`** — одновременно: даже на уровне 1 слова о работе соответствуют feedback.
- **`session-flow`** — читает `scaffolding_level.json` в начале, передаёт саммари.
- **`reflect`** — обновляет файл в конце сессии.
- **доменная диагностика** — `p_known < 0.3` → сигнал для worked example (уровень 1-2).

## Ссылки

- [references/five-levels.md](references/five-levels.md) — уровни с примерами
- [references/transition-rules.md](references/transition-rules.md) — правила перехода
- [references/generation-over-reading.md](references/generation-over-reading.md) — Bjork + Sweller, баланс example/problem
- [onboarding/references/profiles.md](../onboarding/references/profiles.md) — профиль-зависимость

