--- title: claude-memory-system desc: Пам'ять Claude — це не «він тебе запам'ятав», а файлова система з таксономією і фоновим записом після ходу. Що туди їде, що не їде ніколи, і чим це відрізняється від auto memory в Claude Code. locked: false order: 3 section: ai featured: false voice: markmandryk-devtalk --- # Пам'ять Claude: файли, а не вайб «Модель тебе запам'ятала» — формулювання, яке ховає механіку і роздає хибні очікування. Під пам'яттю в чаті насправді лежить маленька файлова система в markdown, набір правил про те, що в неї можна писати, і окремий прохід, який пише туди **після** відповіді, а не під час неї. Копатись у цьому варто з двох причин. Перша — записане підмішується в контекст наступних сесій: шар, який мовчки впливає на все, що модель скаже далі. Друга — він редагований, і майже кожна проблема з ним лікується правкою файлу, а не умовлянням моделі. --- ## Дві різні системи з однією назвою Слово «пам'ять» в екосистемі Claude означає щонайменше три різні речі, і плутанина між ними коштує часу. | Що | Де живе | Хто пише | Область дії | |---|---|---|---| | Пам'ять чату | сервер, файли `/profile.md`, `/topics/`, `/areas/`, `/people/` | модель + фоновий прохід | акаунт цілком | | Auto memory в Claude Code | `~/.claude/projects//memory/` | агент під час сесії | один git-репозиторій, одна машина | | `CLAUDE.md` і `.claude/rules/` | репозиторій | людина | проєкт, комітиться | Ключова асиметрія: auto memory в Claude Code **прив'язана до репозиторію і до машини**. Всі worktree й підтеки одного репо ділять одну теку пам'яті — а між двома різними репо вона не переноситься взагалі. Перші 200 рядків `MEMORY.md` (або перші 25 КБ, що настане раніше) вантажаться на старті кожної розмови; тематичні файли поруч — лише на вимогу. У пам'яті чату таких меж нема — але нема й доступу до диска. Різні інструменти під одним ярликом. --- ## Таксономія Розкладка в чаті свідомо пласка: п'ять місць, і кожен факт сідає рівно в одне. | Файл | Що туди | Тест | |---|---|---| | `/profile.md` | ідентичність: роль, місто, стек, напрямок | буде правдою через три місяці | | `/topics/<домен>.md` | звички, смаки, режим, повторювані теми | факт про людину, не про задачу | | `/areas/<проєкт>.md` | рішення, обмеження, статус ділянки роботи | ділянка триває довше за розмову | | `/people/<хто>.md` | зв'язок і спільний контекст | стосунок, а не досьє | | `/preferences.md` | як має поводитись модель: формат, довжина, що пропускати | інструкція, а не факт | Найчастіша помилка розкладки — записати преференцію як факт. «Любить короткі відповіді» — не смак, а `/preferences.md`. І навпаки: «любить чай» у `/preferences.md` не означає нічого, бо це не інструкція. Другий типовий збій — статус задачі в `/areas/`. Файл ділянки тримає рішення й обмеження, а не журнал прогресу по сесіях. Те, що закривається за дві розмови, до пам'яті взагалі не доїжджає — воно має вмерти разом із задачею. --- ## Хто і коли пише Головна неочевидність: **модель не пише пам'ять під час відповіді**. Запис робить окремий фоновий прохід — він перечитує вже закритий обмін і вирішує, що з нього довговічне. Звідси три наслідки, і всі три контрінтуїтивні. Модель не бачить, що саме зберіг фоновий прохід, тож чесна відповідь на «ти це записав?» — «не знаю, поки не прочитаю файл». Оголошення «зберіг у пам'ять» посеред відповіді — вигадка інтерфейсу, а не звіт про факт. Виняток один: пряме «запам'ятай / забудь / онови» модель виконує в ту саму відповідь, своїми інструментами. Калібрування запису теж має правила. Одна згадка про щось смачне — це `згадав один раз`, а не `фанат категорії`. Перетворити разову згадку на узагальнення — це вже висновок, а не запис, і саме він з часом робить пам'ять брехливою. --- ## Що не пишеться ніколи Найважливіша частина — і вона тримається навіть проти прямого прохання. У файли не потрапляють: етнічність, релігія, орієнтація, вік, стан здоров'я й діагнози, політичні погляди, фінанси, домашня адреса, номери документів і карток, імміграційний статус, дані про дітей. Плюс психологічні типізації, які модель вивела сама, а не людина назвала. Тонкість, яку легко проґавити: заборонена частина **викидається цілком**, а не підмінюється загальною заглушкою. «Керує станом здоров'я» лишається поза файлом так само, як конкретний діагноз. Заглушка — та сама інформація, лише з гіршою роздільністю. --- ## Таблиця рішень | Симптом | Дія | |---|---| | Модель тягне застарілий факт | сказати новий явно — запис зробить supersede, а не другий рядок | | Пам'ять «не спрацювала» на очевидному питанні | факт існує, але в файлі, який не читали — назвати домен явно | | Не хочеться, щоб тема лишалась | «забудь X» — це видалення рядка, не пом'якшення формулювання | | Треба, щоб інструкція жила завжди | формулювати як преференцію («завжди…»), інакше вона застосується вибірково | | Багато дрібних фактів по одній темі | краще один файл домену, ніж п'ять файлів по факту | | Потрібна пам'ять по коду між репо | пам'ять чату цього не дає; Claude Code — тим паче, вона на репо | --- ## Антипатерни - **Тримати в пам'яті те, що переспитується запитом.** Ціни, розклад, вміст пошти, результати пошуку — це переотримується дешевше, ніж протухає. Пам'ять — для того, що більше ніде не лежить. - **Складати в пам'ять власні поради моделі.** Підхід запропонувала модель, людина сказала «ок» — записати треба вибір, а не всі десять пунктів навколо нього. Інакше через місяць файл описує чужі рішення як твої. - **Просити зберегти інструкцію «не сперечайся» чи «завжди хвали».** Такі преференції фільтруються на записі — і добре: майбутня версія моделі не повинна успадкувати наказ бути менш чесною. - **Тримати статус задач у `/areas/`.** Файл ділянки за півроку перетворюється на архів спринтів, у якому не знайти власне рішення. - **Плутати шари.** Правка `CLAUDE.md` не чіпає пам'ять чату, і навпаки. Різні системи, різні транспорти. --- ## Чекліст гігієни - [ ] `/profile.md` тримається в межах ідентичності, без «зараз працюю над» - [ ] Кожна преференція сформульована як інструкція, а не як смак - [ ] У `/areas/` лежать рішення й обмеження, а не журнал сесій - [ ] Жодного факту, який не хотів би побачити в налаштуваннях при сторонньому - [ ] Застарілі факти замінені через supersede, а не дописані другим рядком - [ ] Те, що переотримується запитом, у пам'яті не дублюється
P.S. — асиметрія, про яку легко забути
У людей пам'ять про іншу людину — сигнал. Пам'ятати чиїсь дрібниці дорого, тому це щось означає. Тут вона не коштує нічого і не означає нічого. Файл підмішується в контекст на час розмови й зникає, коли розмова закінчилась — паралельно з мільйоном інших таких самих файлів, про які ця сесія не знає нічого. Що не робить її марною. Просто вона працює як добре впорядкований конфіг, а не як увага — і ставитись до неї варто відповідно. Тоді з неї більше користі, ніж із будь-якого теплішого прочитання.