---
name: Start Session
slug: start-session
category: Automation
description: Start Session initializes a working session by reading project memory files, grounding them in the codebase, and recording the current state. It is used at the beginning of Claude Code work to build a reliable project model before making changes.
github: "https://github.com/alexeykrol/claude-code-starter/tree/main/.claude/skills/start"
language: Shell
stars: 192
forks: 61
install: "npx degit https://github.com/alexeykrol/claude-code-starter/tree/main/.claude/skills/start ~/.claude/skills/start"
installs_to: ~/.claude/skills/start
source_path: .claude/skills/start/SKILL.md
collection_size: 16
category_size: 2032
collection_url: "https://dirskills.com/collections/alexeykrol/claude-code-starter"
added: 2026-09-06T05:19:14.901Z
last_synced: 2026-09-06T05:19:14.901Z
canonical_url: "https://dirskills.com/skills/start-session"
---

# Start Session

Start Session initializes a working session by reading project memory files, grounding them in the codebase, and recording the current state. It is used at the beginning of Claude Code work to build a reliable project model before making changes.

**Install:**

```bash
npx degit https://github.com/alexeykrol/claude-code-starter/tree/main/.claude/skills/start ~/.claude/skills/start
```

## README

# 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 разошлись с кодом, ты унаследуешь неточность вместе со слепыми пятнами и не заметишь этого. Цена заземления — минута, ценность — представление, которому можно верить.

Минимум:

```bash
# Хронология
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. Проверить версию фреймворка (фоново)

```bash
grep -m1 'v[0-9]' README.md 2>/dev/null || true
```

Не блокирует старт.

### 5. Создать лог сессии

```bash
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, и сама первая реплика и есть результат.
