✻ Claude Code по-русски
🎧 Аудиокурс
🎧 Слушать урок9:10 · голос Russian_BrightHeroine

#Организуйте память проекта и посмотрите, что загрузилось

Средний уровень · Урок 2 из 8 · около 20 минут · Нужно: Превратите повторяющийся процесс в скилл · Сверено с Claude Code v2.1.285 (stable) 06.10.2026

#Цель

К концу урока вы сможете разбить инструкции проекта на импорты и правила с областью действия, а также выяснить, какие файлы инструкций загрузились, если Claude какой-то из них не следует.

#Что понадобится

#Идея

Длинный CLAUDE.md трудно поддерживать, и каждая его строка загружается в каждую сессию. Разбить его помогают два инструмента (How Claude remembers your project):

Файл инструкций Когда загружается
CLAUDE.md в корне проекта и правило без paths: При старте сессии
Файл, указанный в импорте @path Вместе с файлом, который его импортирует
Правило с paths: Когда Claude читает подходящий файл своим инструментом Read
Автопамять — заметки, которые Claude ведёт для себя При старте сессии: первые 200 строк или 25 КБ её индекса MEMORY.md

Если Claude игнорирует инструкцию, сначала выясните, загрузился ли её файл. Если загрузился, проблема, скорее всего, в формулировке: сделайте её конкретной и уберите противоречащие ей инструкции (Debug your configuration).

#Разбор примера

  1. Добавьте в CLAUDE.md своего репозитория импорт. В шаблоне для практики импортируйте package.json; в своём репозитории — документ, который ведёт ваша команда, например @docs/architecture.md:
- npm scripts: @package.json

Путь импорта продолжается до первого пробела, поэтому не ставьте точку сразу после него. 2. Сохраните правило для тестовых файлов как .claude/rules/testing.md. Поменяйте шаблон пути так, чтобы он совпадал с расположением ваших тестов:

---
paths:
  - "test/**/*.js"
---

# Testing

- Use `node:test` and `node:assert/strict`; no other test libraries.
  1. Сохраните этот журнал загрузок в .practice/i-2-hook.json. Это хук InstructionsLoaded: каждый раз, когда загружается CLAUDE.md, правило или импортированный файл, он дописывает причину загрузки и путь файла в .practice/i-2-loaded.txt. Больше он ничего не записывает и работает только в сессиях, которые вы запускаете с ним:
{
  "hooks": {
    "InstructionsLoaded": [
      { "hooks": [ { "type": "command", "command": "jq -r '[.load_reason, .file_path] | @tsv' >> \"$CLAUDE_PROJECT_DIR/.practice/i-2-loaded.txt\"" } ] }
    ]
  }
}
  1. Запустите сессию с журналом — claude --settings .practice/i-2-hook.json (CLI reference) — и выполните /context all: обычный /context может свернуть список, а all его разворачивает (Commands). В разделе Memory files перечислены файлы инструкций, загруженные при старте, например CLAUDE.md (Set up a project CLAUDE.md). Правила с областью действия среди них нет: ни один тестовый файл ещё не читали.
  2. Попросите Claude прочитать тестовый файл инструментом Read. Назовите инструмент явно: иногда Claude читает файл через команду оболочки, а она правила с областью действия не загружает.
Use your Read tool to read test/config.test.js, then tell me in one sentence what it checks.

Во втором терминале cat .practice/i-2-loaded.txt покажет каждую загрузку с причиной: session_start для CLAUDE.md, include для package.json и теперь path_glob_match для правила.

#Ваша очередь

Правило коллеги никогда не срабатывает. Выясните почему и исправьте.

  1. Сохраните это правило как .claude/rules/cli.md. В своём репозитории напишите правило для одной из папок с исходниками и сделайте опечатку в имени папки в шаблоне пути:
---
paths:
  - "source/**/*.js"
---

# CLI output

- Print errors to stderr, starting with `linkcheck:`.
  1. Запустите сессию с журналом, claude --settings .practice/i-2-hook.json, и попросите Claude применить инструмент Read к src/cli.js или к файлу из вашей папки.
  2. Прочитайте журнал: правило так и не загрузилось. Сравните его шаблон пути с реально существующими файлами — git ls-files src.
  3. Исправьте шаблон, запустите новую сессию с журналом и повторите шаг 2. Теперь в журнале есть строка path_glob_match для cli.md.
  4. Закоммитьте CLAUDE.md и .claude/rules/. Удалите .practice/i-2-hook.json, когда журнал больше не нужен.

#Проверка

Урок пройден, когда выполнено всё это:

Запустите npm run check -- i-2 --dir <your repo> из своей копии для практики или npm run check -- i-2 в самой копии.

Если не проходит проверка импорта, поищите знак препинания сразу после пути или путь, записанный относительно не той папки: импорт разрешается относительно файла, в котором он стоит. Если правило не совпадает ни с одним файлом, вспомните, что его шаблон отсчитывается от корня проекта, поэтому source/** ничего не найдёт в проекте, где код лежит в src/. Если в журнале нет строки path_glob_match, запустите сессию с --settings .practice/i-2-hook.json и попросите инструмент Read по имени.

#Осторожно

#Что дальше


Источники: How Claude remembers your project · Hooks reference · Debug your configuration · How Claude Code uses prompt caching · CLI reference · Commands · gitglossary

← Превратите повторяющийся процесс в скилл · Оглавление Среднего уровня · Выбор модели и уровня усилий → · Тема: Память и контекст · Застряли на уроке?