Блок 5 Презентация

Память и интеллект проекта — Презентация

Продолжительность: ~8 минут Цель: Студенты понимают иерархию памяти, знают, когда использовать каждый уровень, и осваивают работу автоматической памяти.


Слайд 1: Первое, что читает Claude

Вот интересный факт, который меняет ваше представление о Claude Code:

CLAUDE.md загружается в каждой сессии. Это буквально первое, что Claude читает о вашем проекте.

До того как он посмотрит на код. До того как прочитает ваш промпт. До чего бы то ни было — он читает файлы памяти. Думайте об этом как о приходе в офис и проверке командной wiki перед открытием Slack.

И вот главное: вы контролируете, что написано в этой wiki.


Слайд 2: Иерархия памяти

Память Claude работает слоями, как торт — каждый слой добавляет вкус, и все они объединяются в финальный результат.

┌─────────────────────────────────────────────┐
│  Слой 3: CLAUDE.local.md                    │
│  Только ваша машина. В gitignore. Секреты,  │
│  локальные пути, личные переопределения.     │
├─────────────────────────────────────────────┤
│  Слой 2: Проектный CLAUDE.md + .claude/rules│
│  Закоммичен в git. Общий для команды.       │
│  Слой "командных договорённостей".           │
├─────────────────────────────────────────────┤
│  Слой 1: ~/.claude/CLAUDE.md                │
│  Ваши личные предпочтения. Действуют        │
│  для всех проектов на вашей машине.          │
└─────────────────────────────────────────────┘

Слой 1 — Пользовательский (~/.claude/CLAUDE.md): Ваша персональная ДНК кодирования. Предпочитаете функциональный стиль вместо классов? Всегда хотите коммит-сообщения в формате conventional? Ненавидите точки с запятой? Это место для таких настроек. Применяется ко всем проектам, которые вы открываете.

Слой 2 — Проектный (CLAUDE.md в корне проекта + .claude/rules/): Стандарты команды. “Мы используем Tailwind, не CSS-модули.” “Все API-роуты возвращают стандартную структуру ошибки.” “K8s-манифесты используют лейбл app.kubernetes.io/name.” Это хранится в системе контроля версий — когда коллега делает pull, он получает те же инструкции.

Слой 3 — Локальный (CLAUDE.local.md): Детали, специфичные для вашей машины. Путь к вашей локальной конфигурации Kubernetes. URL вашей staging-среды. API-ключ для локального тестирования. Этот файл по умолчанию в gitignore — он никогда не покидает вашу машину.

Аналогия: Думайте об этом как о CSS-специфичности. Пользовательский уровень — это дефолты браузера. Проектный уровень — это стилевая таблица. Локальный — это инлайновый стиль: наивысший приоритет, самая высокая специфичность.


Слайд 3: Директория .claude/rules/ — Условный интеллект

Вот где становится по-настоящему изящно.

Вместо того чтобы сваливать всё в один гигантский CLAUDE.md, можно создавать сфокусированные файлы правил, которые активируются только когда редактируются релевантные файлы.

.claude/
  rules/
    testing.md      # Загружается при работе с tests/**
    k8s.md          # Загружается при работе с k8s/**
    docker.md       # Загружается при работе с Dockerfile*
    api.md          # Загружается при работе с src/app/api/**

У каждого файла есть фильтр путей в заголовке:

---
path: "k8s/**"
---

When working with Kubernetes manifests:
- Always include resource limits (cpu and memory)
- Use label convention: app.kubernetes.io/name, app.kubernetes.io/component
- Never use `latest` tag for images...

Почему это важно: Claude не нужно думать о ваших K8s-соглашениях, когда вы редактируете React-компонент. Условные правила держат контекст сфокусированным и релевантным — меньше шума, лучше результаты.

Это как то, что хирург не просматривает меню столовой перед операцией. Правильная информация в правильное время.


Слайд 4: Автоматическая память — Claude учится у вас

Это почти магия.

Когда вы поправляете Claude во время сессии — “Нет, мы используем pnpm здесь, не npm” или “Наши тесты используют vitest, не jest” — Claude может запомнить эту поправку на будущее.

Как это работает:

  1. Вы поправляете Claude по чему-то специфичному для проекта
  2. Claude распознаёт это как запоминаемое соглашение
  3. Он предлагает сохранить инсайт в память проекта
  4. В следующей сессии он уже знает

Вы также можете использовать команду /memory в любой момент, чтобы:

  • Посмотреть всё, что Claude загрузил
  • Редактировать записи памяти напрямую
  • Добавить новые соглашения на лету

Совет: После код-ревью, где вы дали много обратной связи, начните сессию Claude и просто скажите “Я хочу добавить несколько соглашений в память проекта.” Затем перечислите то, что вы говорили автору PR. Теперь Claude будет автоматически применять эти соглашения.


Слайд 5: Импорты @path — Указание Claude на ссылочные материалы

Иногда вы хотите, чтобы Claude прочитал конкретный файл как контекст, даже если он не стал бы искать его сам. Для этого и нужен @path.

В любом файле CLAUDE.md или правил можно ссылаться на другие файлы:

For our API response format, follow the pattern in @src/lib/api-response.ts
For deployment conventions, see @docs/deployment-guide.md

Claude загрузит указанные файлы как дополнительный контекст. Это как сказать “прежде чем начнёшь, прочитай вот это.”


Слайд 6: Собираем всё вместе

Вот как выглядит хорошо настроенный проект:

~/.claude/
  CLAUDE.md              # "Предпочитаю TypeScript strict mode, conventional commits"

ai-coderrank/
  CLAUDE.md              # "Приложение на Next.js 14, pnpm, Tailwind CSS, соглашения команды"
  CLAUDE.local.md        # "Мой staging URL — ..., мой API-ключ — ..."
  .claude/
    rules/
      testing.md         # Паттерны тестирования (path: tests/**)
      k8s.md             # Соглашения K8s (path: k8s/**)
      docker.md          # Лучшие практики Docker (path: Dockerfile*)

Когда вы открываете сессию и редактируете K8s-манифест, Claude загружает:

  1. Ваш персональный ~/.claude/CLAUDE.md
  2. Проектный CLAUDE.md
  3. Ваш CLAUDE.local.md
  4. Правило k8s.md (потому что вы работаете с K8s-файлами)

Это четыре слоя контекста, загруженных автоматически, прежде чем вы наберёте хоть слово.

Вот так вы превращаете AI общего назначения в эксперта вашей команды.


Ключевые выводы

Слой Файл Общий? Назначение
Пользовательский ~/.claude/CLAUDE.md Нет (личный) Стиль кодирования, предпочитаемые инструменты, формат коммитов
Проектный CLAUDE.md Да (git) Стандарты команды, стек технологий, соглашения
Локальный CLAUDE.local.md Нет (gitignored) Переменные окружения, локальные пути, секреты
Правила .claude/rules/*.md Да (git) Условные, привязанные к путям соглашения
Авто Выученное из поправок По проекту Накопленные знания от использования

Переход: Хорошо — хватит теории. Давайте построим полную систему памяти для ai-coderrank. К концу практики Claude будет знать этот проект как старший инженер, проработавший в команде год.


Готовы проверить себя?

Пройти квиз →