раздел 04

Клиентские данные: изоляция

Единственный уровень, где ошибка стоит не времени, а отношений с компанией. Поэтому правила здесь жёстче, чем у шаблонов и проектов.

Одна папка на клиента

Всё, что относится к компании, лежит в clients/<имя>/ и нигде больше. Договор не в projects/, транскрипт не в Downloads/, реквизиты не в чате.

clients/Acme/
├── README.md         # кто это, чем занимаемся, статус, ключевые контакты
├── requisites.md     # реестр юрлиц и контактов
├── INBOX-LOG.md      # что пришло и куда разобрано
├── inbox/            # сырое входящее: письма, файлы, вложения
├── docs/             # договоры, счета, акты, КП - с датой в имени
└── calls/            # транскрипты созвонов, с датой в имени

Если работа с компанией выросла в отдельный проект с кодом, код живёт в projects/acme-bot/, а всё остальное остаётся в clients/Acme/. Проект ссылается на клиента в README, но не хранит его договоры и транскрипты внутри.

Реестр реквизитов

Реквизиты и контакты - в одном файле requisites.md. Агент берёт данные только оттуда. Не из старого счёта, не из переписки, не из памяти.

Отдельная ловушка: у одной компании может быть несколько юрлиц. Бренд «Acme», а договор с ООО «Акме Менеджмент», а следующий счёт - на ИП учредителя. Каждое юрлицо - отдельная запись со своим ИНН, банком и подписантом. Перед выпуском любого документа агент должен спросить или проверить, на какое именно юрлицо оформляем.

# Реквизиты: Acme

## Юрлица

### ООО «Акме Менеджмент» - актуальное
- ИНН / КПП / ОГРН: ...
- Адрес: ...
- Банк, р/с, БИК: ...
- Подписант: Иванова О.В., генеральный директор, на основании Устава
- Для чего: договоры на обучение, счета по ним

### ИП Иванова О.В. - архив, до 2025
- ...

## Контакты
- Ольга Иванова - CDTO, решает по бюджету, @username, почта
- ...

Статус «актуальное / архив» у каждого юрлица обязателен: иначе агент возьмёт первое попавшееся.

Правило в AGENTS.md / CLAUDE.md

Изоляция держится на записанном правиле, а не на здравом смысле агента. Блок в корневом файле правил:

## Клиентские данные

- Данные и материалы одного клиента не использовать в материалах другого:
  ни реквизиты, ни цифры, ни цитаты, ни «похожие примеры».
- Основа любого документа - шаблон из _templates/, не документ другого клиента.
- Реквизиты - только из clients/<имя>/requisites.md. У клиента может быть
  несколько юрлиц: перед документом уточнить, на какое.
- Демо и примеры для показа - только обезличенные: без названий компаний,
  имён, сумм и цитат.
- В clients/ не заходить без явной задачи по этому клиенту.

Последняя строка важнее, чем кажется. Без неё агент, ища «пример хорошего КП», обойдёт все клиентские папки и найдёт чужое.

Клиентские папки и git

Папка проекта коммитится в git и, скорее всего, уедет на сервер, коллеге или в публичный репозиторий. Клиентские данные туда попасть не должны. Два рабочих варианта:

  1. clients/ вообще вне git. В .gitignore корня воркспейса - строка clients/. Резервная копия - обычная синхронизация диска.
  2. clients/ в отдельном приватном репозитории с ограниченным доступом. Так у документов есть история, но она не пересекается с кодом.

Чего не делать: класть папку клиента внутрь проекта и надеяться на .gitignore внутри проекта. Одна неточная строка - и договор в репозитории.

Персональные данные и секреты

Транскрипты созвонов, списки сотрудников, ответы на интервью - это персональные данные, и на них есть свои правила: что можно хранить, что нужно обезличить перед тем, как отдать модели, что нельзя пересылать. Два соседних курса закрывают эту тему: Безопасность корпоративных данных и Обезличивание персональных данных.

Пароли, токены и ключи API - отдельная история. Один .env файл на весь воркспейс, в корне, не в git. Не по файлу на проект: с десятью .env вы забудете, где какой, и один из них уедет в репозиторий. Проекты читают корневой файл, на сервере - свой локальный. В клиентских папках секретов нет вообще: доступы к системам компании - в менеджере паролей, а в requisites.md только ссылка «доступы - в менеджере паролей, запись Acme».

Спорные случаи

Можно ли класть папку клиента внутрь папки проекта?
Нет. Проект живёт в git и уезжает туда, куда клиентским данным нельзя. Проект ссылается на клиента в README, клиент лежит в clients/. Если проект целиком под одну компанию, всё равно две папки: код и документы.
Как отдать агенту материалы двух клиентов для сравнения?
Явной задачей с явными путями: «сравни подходы в clients/Acme/calls/ и clients/Beta/calls/, результат - обезличенная таблица в _methods/». Агент заходит в обе папки по вашей команде, а результат не содержит названий и цитат. Готовые сравнительные выводы можно хранить как методологию, исходники - нет.
Готовое КП для одной компании - отличный образец. Как использовать его для других?
Обезличить и превратить в шаблон: убрать название, суммы, цитаты, заменить на плейсхолдеры, положить в _templates/. Сам документ остаётся у клиента. Образцом становится шаблон, а не чужое КП.
У компании три юрлица. Как не перепутать?
Каждое - отдельной записью в requisites.md со статусом и назначением («для договоров на обучение», «архив»). Правило в AGENTS.md / CLAUDE.md: перед документом уточнить юрлицо. Идентификаторы брать только из реестра, не с памяти агента.
Транскрипт созвона - это клиентские данные или проектные?
Клиентские, всегда. В нём имена, должности и обсуждаемые условия. Лежит в clients/<имя>/calls/ с датой в имени. Если из созвона родилось решение по проекту, запишите решение в NOTES.md проекта своими словами, без цитат.
Где хранить доступы к системам клиента?
В менеджере паролей. В requisites.md - только ссылка на запись. Ни в .env (он для ваших ключей), ни в README клиента, ни в транскриптах.