← [Главная](../README.md)

# 09 — Шаблоны и контекст

## Цель

Научиться собирать **контекст** для агента: шаблоны промптов, snippets, переменные, @-упоминания, встроенные functions и MCP-tools — без переполнения контекстного окна.

## Предварительно

- Разделы [03 — Промпты](../03-prompts/README.md) и [07 — Commands](../07-commands/README.md)
- Cursor IDE с открытым учебным проектом
- Понимание термина «контекстное окно» из [главной](../README.md)

## Время

**4–6 часов**

---

## Что входит в контекст агента

Всё, что модель «видит» перед ответом:

| Источник | Примеры |
|----------|---------|
| Ваш промпт | Текст в чате |
| История сессии | Предыдущие реплики |
| @-упоминания | Файлы, папки, docs, rules |
| Rules | `.cursor/rules/*.mdc` (автоматически по globs) |
| Skills | Подключаемые workflow |
| Tool results | Вывод shell, MCP, read file |
| Системные инструкции | Cursor + выбранная модель |

**Контекстное окно** ограничено (сотни тысяч токенов в новых моделях, но не бесконечно). Качество > количество.

---

## Оглавление раздела

| Страница | Содержание |
|----------|------------|
| [templates-i-snippets.md](templates-i-snippets.md) | Шаблоны промптов, Notepad, повторное использование |
| [variables-i-mentions.md](variables-i-mentions.md) | @file, @folder, @docs, @web, контекстные переменные |
| [functions-i-mcp-tools.md](functions-i-mcp-tools.md) | Встроенные tools агента и MCP-серверы |

---

## Стратегия «слои контекста»

```text
Слой 1 (всегда):     Rules проекта — короткие, стабильные
Слой 2 (по задаче):  @файлы + skill/command
Слой 3 (по ходу):     Результаты tool calls
Слой 4 (избегать):   Весь репозиторий целиком
```

---

## Шаблоны vs Commands vs Skills

| Артефакт | Где хранится | Когда |
|----------|--------------|-------|
| Snippet / шаблон в Notepad | Cursor UI | Личные заготовки текста |
| Command | `.cursor/commands/` | Команда `/имя` для команды |
| Skill | `.cursor/skills/*/SKILL.md` | Сложный многошаговый процесс |
| Rule | `.cursor/rules/` | Постоянные ограничения |

---

## Экономия токенов

1. Прикрепляйте **фрагменты**, не целые монорепо.
2. Используйте `@папка` с узким scope.
3. В промпте указывайте **диапазон строк** («смотри только `auth.go` 40–120»).
4. После большой задачи — **новая сессия** для следующей темы.
5. Skill [strategic-compact](https://github.com/affaan-m/everything-claude-code) в ECC — про ручное сжатие контекста на границах фаз.

---

## Практика

Откройте Agent и составьте промпт с:

- одним @файлом;
- одним @rule;
- ссылкой на раздел docs.

Замерьте: достаточно ли ответа без `@весь-проект`.

---

## Матрица выбора инструмента контекста

| Нужно | Инструмент |
|-------|------------|
| Один файл целиком | `@path/to/file` |
| Найти символ в репо | `@Codebase` + имя |
| Постоянный стиль кода | rule с `globs` |
| Актуальная дока библиотеки | MCP Context7 |
| Повторяемый сценарий | command или skill |
| Реакция на сохранение | hook (раздел 08) |

---

## Связь с контекстным окном

Помните из [раздела 02](../02-effektivnoe-ispolzovanie/kontekst-i-tokens.md): каждый `@` и каждый tool call **съедает** токены. Стратегия раздела 09 — давать агенту **минимум достаточного** контекста, а не «всё на всякий случай».

---

## Самопроверка

1. Перечислите 4 источника контекста агента.
2. Чем шаблон в Notepad отличается от command?
3. Почему не стоит прикреплять весь monorepo?
4. Что такое «слой 1» в стратегии контекста?

---

## Дальше

→ [Шаблоны и snippets](templates-i-snippets.md)  
← [08 — Hooks](../08-hooks/README.md)
