name: start description: "Инициализация рабочей сессии. Построить адекватную модель проекта, заземлить её в код, доложить с глубиной по запросу." allowed-tools: Read Glob Grep Bash disable-model-invocation: true
Skill: Start Session
Назначение
Построить адекватную модель проекта — правильную по структуре, заземлённую в код, знающую свои границы. Защитить проект, пока модель строится.
Три вида ограничений в этом протоколе — намеренно разной природы:
| Вид | Где | Как трактовать |
|---|---|---|
На действия (INVARIANTS.md, production-safety) |
в коде/контракте | жёстко — guardrails |
| На внимание (порядок чтения, две оси памяти) | в этом skill | полезно — структура делает глубину достижимой |
| На глубину/выход доклада | — | нет таких ограничений — глубина диктуется запросом, не форматом |
Никаких «доложи 3–5 строк». Минимум — пол адекватности, потолка нет.
Что делать
1. Прочитать слои памяти — обе оси
Контракты (что должно быть):
Read .claude/ARCHITECTURE.md (если есть)
Read .claude/INVARIANTS.md (если есть — нарушения = баг, не предпочтение)
State (что есть сейчас):
Read .claude/SNAPSHOT.md (точка работы)
Read .claude/BACKLOG.md (если есть — план Next/Soon/Later)
Если какие-то слои отсутствуют — это OK для старого проекта; в новом v6.2+ — сигнал неполной установки. Не паниковать, продолжить.
2. Прочитать CLAUDE.md
Read CLAUDE.md
3. Заземлить карту в территорию (обязательно)
Метафайлы — это карта, не территория. Если SNAPSHOT/ARCHITECTURE разошлись с кодом, ты унаследуешь неточность вместе со слепыми пятнами и не заметишь этого. Цена заземления — минута, ценность — представление, которому можно верить.
Минимум:
# Хронология
git log --oneline -10
git status --short
# Объём кода/контента по основным каталогам
for d in src lib app scripts chapters lessons modules docs; do
[ -d "$d" ] && echo "$d: $(find "$d" -type f \( -name '*.py' -o -name '*.ts' -o -name '*.tsx' -o -name '*.js' -o -name '*.sh' -o -name '*.md' \) 2>/dev/null | xargs wc -l 2>/dev/null | tail -1)"
done
# Заглушки и недоделки — где карта обещает функциональность, а в коде TODO
grep -rn "TODO\|FIXME\|stub\|raise NotImplementedError\|pass *#" src/ lib/ app/ scripts/ 2>/dev/null | head -20
Если обнаружишь расхождение «SNAPSHOT/ARCHITECTURE говорят X, но grep/wc показывают Y» — зафиксируй это явно при докладе, не сглаживай.
4. Проверить версию фреймворка (фоново)
grep -m1 'v[0-9]' README.md 2>/dev/null || true
Не блокирует старт.
5. Создать лог сессии
mkdir -p .claude/logs/sessions
Файл .claude/logs/sessions/YYYY-MM-DD_HH-MM.md с начальным состоянием.
6. Доложить — глубина по запросу
Доклад масштабируется под запрос пользователя:
| Запрос пользователя | Эталон доклада |
|---|---|
| «start», «начать», молчаливый старт | Компактно: статус, что было в прошлой сессии, незакрытые задачи из BACKLOG.Next, открытые INVARIANTS, готовность. 5–10 строк. |
| «разберись с проектом», «хочу убедиться что ты понял», «проанализируй» | Полный аналитический разбор: зачем существует, как устроен (модули/слои/контракты), таблица «карта vs территория» из шага 3, состояние (что сделано/что в работе/что блокирует), риски, что я понимаю и где границы знания. Объём — по теме, не по формату. |
| Конкретная задача в первой реплике | Состояние + явная связь с задачей: какие INVARIANTS могут быть затронуты, какие слои памяти релевантны, какие подсистемы потребуют чтения кода. |
Минимум всегда — пол адекватности. Потолка нет. Если в шаге 3 нашёл расхождения — назвать их прямо.
7. Пометка «карта ≠ территория»
После шагов 1–6 ты знаешь карту проекта, не территорию (код). Перед правкой конкретной подсистемы:
- читай её код (не только метафайлы);
- читай её локальные docs (не только корневые);
- сверяй карту с тем, что увидел в коде.
Опасна не неполнота модели, а ложная уверенность в её полноте.
Чего НЕ делать
- Не показывать содержимое файлов пользователю как сырой дамп
- Не запускать тесты (это
/finish) - Не коммитить автоматически (если есть незакоммиченное — сообщить)
- Не кэпить глубину доклада фиксированным объёмом ради «краткости»
- Не пропускать шаг заземления, даже если SNAPSHOT выглядит свежим
- Не генерировать отдельный
ONBOARDING.md— конституция живёт вCLAUDE.md, который харнес автозагружает
После выполнения
Агент готов принимать ТЗ. Если запрос пользователя в первой реплике был «разберись/проанализируй» — он уже исполнен этим skill, и сама первая реплика и есть результат.