<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI on Михаил Шогин</title><link>https://mshogin.ru/categories/ai/</link><description>Recent content in AI on Михаил Шогин</description><generator>Hugo -- gohugo.io</generator><language>ru</language><copyright>Михаил Шогин</copyright><lastBuildDate>Wed, 29 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mshogin.ru/categories/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>Спека как живой контракт: SPDD, archlint и двусторонний sync</title><link>https://mshogin.ru/notes/spdd-and-archlint-living-spec/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://mshogin.ru/notes/spdd-and-archlint-living-spec/</guid><description>&lt;h2 id="симптом"&gt;Симптом
&lt;/h2&gt;&lt;p&gt;LLM в кодовой базе ускоряет одного разработчика. Команда от этого не ускоряется — наоборот, на ревью обрушивается поток сгенерированного кода, который никто не успевает понять. Спека, написанная на старте задачи, через неделю уже не описывает то, что в master. Кто-то правит код, кто-то правит .md, через месяц расхождение замолчано.&lt;/p&gt;
&lt;p&gt;Это не про дисциплину команды. Это про архитектуру процесса, в которой &amp;ldquo;спека&amp;rdquo; и &amp;ldquo;код&amp;rdquo; не имеют формальной связи.&lt;/p&gt;
&lt;h2 id="диагноз-от-thoughtworks"&gt;Диагноз от Thoughtworks
&lt;/h2&gt;&lt;p&gt;28 апреля 2026 на сайте Мартина Фаулера вышла статья &lt;a class="link" href="https://martinfowler.com/articles/structured-prompt-driven/" target="_blank" rel="noopener"
&gt;Structured Prompt-Driven Development&lt;/a&gt; от Wei Zhang и Jessie Xia. Они формулируют проблему точнее, чем я: &amp;ldquo;Local speed improves. But that doesn&amp;rsquo;t automatically translate into system-level throughput.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Их предложение в трёх пунктах:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Промпт — это first-class артефакт.&lt;/strong&gt; Версионируется, ревьюется, переиспользуется как код. Не реплика в чате.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;REASONS Canvas&lt;/strong&gt; — 7-частная структура промпта: Requirements, Entities, Approach, Structure, Operations, Norms, Safeguards. Первые четыре — абстракция, пятый — исполнение, последние два — governance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Замкнутая петля между промптом и кодом&lt;/strong&gt; с правилом, что обновлять первым:
&lt;ul&gt;
&lt;li&gt;изменение поведения -&amp;gt; сначала промпт, потом код&lt;/li&gt;
&lt;li&gt;рефакторинг -&amp;gt; сначала код, потом sync обратно в промпт&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Третий пункт — главное. Он превращает вечный спор &amp;ldquo;что source of truth&amp;rdquo; в процедуру.&lt;/p&gt;
&lt;h2 id="где-это-совпало-с-моей-практикой"&gt;Где это совпало с моей практикой
&lt;/h2&gt;&lt;p&gt;У меня уже был свой spec-driven workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/my/archlint/templates/specifications/spec-template.md&lt;/code&gt; — шаблон спеки с разделами Architecture, Requirements, Acceptance Criteria, Implementation Steps. Размерные градации XS/S/M/L/XL.&lt;/li&gt;
&lt;li&gt;Правило в &lt;code&gt;~/.claude/rules/spec-workflow.md&lt;/code&gt;: &amp;ldquo;задача &amp;gt;30 минут или &amp;gt;3 шагов — обязательно спека до старта&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Команда &lt;code&gt;/ms-add-spec&lt;/code&gt; в Claude Code, которая генерирует спеку под задачу.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;archlint&lt;/code&gt; — статический анализатор, который валидирует архитектурные правила (200+) на графе из AST.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;REASONS Canvas почти один в один ложится на мой шаблон:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;REASONS&lt;/th&gt;
&lt;th&gt;Мой шаблон&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;R Requirements&lt;/td&gt;
&lt;td&gt;## Requirements (FR1, FR2, &amp;hellip;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E Entities&lt;/td&gt;
&lt;td&gt;## Architecture / Data Model (UML Class)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A Approach&lt;/td&gt;
&lt;td&gt;## Overview / Solution Summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S Structure&lt;/td&gt;
&lt;td&gt;## Architecture / Component Overview (C4)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;O Operations&lt;/td&gt;
&lt;td&gt;## Implementation Steps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N Norms&lt;/td&gt;
&lt;td&gt;(не было отдельного раздела)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S Safeguards&lt;/td&gt;
&lt;td&gt;(не было отдельного раздела)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Совпадение на 70-80%. Архитектурный governance у меня вообще сильнее — &lt;code&gt;archlint&lt;/code&gt; проверяет автоматически то, что в SPDD держится на ревьюере-человеке.&lt;/p&gt;
&lt;h2 id="где-spdd-добавил-то-чего-не-было"&gt;Где SPDD добавил то, чего не было
&lt;/h2&gt;&lt;p&gt;Два пункта, которые у меня отсутствовали или были сформулированы неверно.&lt;/p&gt;
&lt;h3 id="1-спека-неизменна-в-процессе"&gt;1. Спека &amp;ldquo;неизменна в процессе&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;В моём &lt;code&gt;spec-workflow.md&lt;/code&gt; буквально стояла формулировка:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Спека = ЧТО делать (неизменна в процессе)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Это противоположно идее живого артефакта. Спека написана, согласована, перенесена в &lt;code&gt;inprogress/&lt;/code&gt; — и потом никем не трогается, пока задача не закроется. На практике это значит, что любая правка реализации, отличающаяся от плана, проваливается между спекой и кодом.&lt;/p&gt;
&lt;h3 id="2-norms-и-safeguards-неявные"&gt;2. Norms и Safeguards неявные
&lt;/h3&gt;&lt;p&gt;Стандарты команды (как именно мы оборачиваем ошибки, какой logger, какие naming-конвенции) у меня живут в куче .md файлов: &lt;code&gt;~/.claude/rules/architecture.md&lt;/code&gt;, проектные CLAUDE.md, в чате. На уровне отдельной спеки их явно никто не выносит. Авторы SPDD выделяют:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Norms&lt;/strong&gt; — стандарты как принято писать. Часть автоматизирована (golangci-lint, archlint), часть нет.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safeguards&lt;/strong&gt; — неприкосновенные инварианты. Нарушение — стоп, не warning. Обратная совместимость, perf budgets, security boundaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Когда они в одной странице со спекой, тихий рефактор поперёк стандарта становится заметным на ревью.&lt;/p&gt;
&lt;h2 id="что-я-в-итоге-сделал"&gt;Что я в итоге сделал
&lt;/h2&gt;&lt;p&gt;Два патча, оба сегодня.&lt;/p&gt;
&lt;h3 id="патч-1-clauderulesspec-workflowmd"&gt;Патч 1: &lt;code&gt;~/.claude/rules/spec-workflow.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Удалил &amp;ldquo;Спека неизменна&amp;rdquo;. Заменил на &amp;ldquo;Спека — живой контракт, синхронизирован с кодом всегда&amp;rdquo;. Добавил раздел &amp;ldquo;Двусторонняя синхронизация&amp;rdquo; с явным правилом prompt-first vs code-first:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Изменение поведения (publicly-exposed контракт, бизнес-логика, валидация)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-&amp;gt; сначала спека, потом код
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Рефакторинг (поведение не меняется)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-&amp;gt; сначала код, потом sync обратно в спеку
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;И отдельный раздел &amp;ldquo;Norms и Safeguards: governance внутри спеки&amp;rdquo; с примерами и привязкой к archlint/golangci-lint.&lt;/p&gt;
&lt;h3 id="патч-2-myarchlinttemplatesspecificationsspec-templatemd"&gt;Патч 2: &lt;code&gt;~/my/archlint/templates/specifications/spec-template.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Добавил две секции после Acceptance Criteria:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Norms
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; N1: error wrapping через fmt.Errorf(&amp;#34;%w&amp;#34;) или errtrace.Wrap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; N2: логирование через slog с контекстом
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; N3: naming - DB snake_case, JSON camelCase
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Автоматизировано:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [ ]&lt;/span&gt; golangci-lint passes (errcheck, errorlint, sloglint)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [ ]&lt;/span&gt; archlint passes (layered, fan-out, ISP)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Safeguards
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; S1: обратная совместимость публичного API в рамках minor релиза
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; S2: p99 latency endpoint X не растёт более чем на 10%
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; S3: нет утечки PII в логи и метрики
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Проверка:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [ ]&lt;/span&gt; Smoke test на обратную совместимость
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [ ]&lt;/span&gt; Бенчмарк до/после
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [ ]&lt;/span&gt; Аудит логов на чувствительные поля
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Размерные градации те же: для XS Safeguards обычно не нужны, для M/L/XL — обязательны.&lt;/p&gt;
&lt;h2 id="что-я-не-взял"&gt;Что я НЕ взял
&lt;/h2&gt;&lt;p&gt;Не взял CLI &lt;code&gt;openspdd&lt;/code&gt; и команду &lt;code&gt;/spdd-prompt-update&lt;/code&gt;. Слишком много церемонии для одиночной работы и для команды без отдельного workflow-инженера. У меня та же дисциплина держится на:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/ms-add-spec&lt;/code&gt; — создать спеку&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/ms-checkpoint&lt;/code&gt; — зафиксировать прогресс на длинной задаче&lt;/li&gt;
&lt;li&gt;&lt;code&gt;archlint&lt;/code&gt; — валидация Norms+Safeguards автоматически где можно&lt;/li&gt;
&lt;li&gt;Code review через GitLab — двусторонний sync проверяется на ревью&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Не взял правило &amp;ldquo;никогда не редактировать промпт руками&amp;rdquo;. У них это compensation за CLI-managed lifecycle. У меня его нет, и руками править .md спеку — нормальная операция.&lt;/p&gt;
&lt;p&gt;Не взял заявление про &amp;ldquo;~99% intent alignment&amp;rdquo;. Это маркетинг, кейс N=1.&lt;/p&gt;
&lt;h2 id="двойная-оптика"&gt;Двойная оптика
&lt;/h2&gt;&lt;p&gt;Технический слой статьи: дисциплина для AI-кодинга в команде.&lt;/p&gt;
&lt;p&gt;Архитектура мышления за этим: проблема, которую решают авторы — не &amp;ldquo;AI пишет неправильный код&amp;rdquo;, а &amp;ldquo;bandwidth ревьюера не растёт со скоростью генератора&amp;rdquo;. Когда LLM выдаёт результат быстрее, чем человек успевает его понять, узкое место — когнитивная пропускная способность того, кто принимает изменения. SPDD сжимает то, на чём держится ревью, до одного артефакта (Canvas), чтобы он влезал в bandwidth.&lt;/p&gt;
&lt;p&gt;Это та же задача, про которую я говорил на Стачке — контроль сложности через граф. Только на уровне процесса, а не статического анализа.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;archlint&lt;/code&gt; = governance внутри кода (граф, правила, инварианты).
SPDD/спека = governance над изменениями (контракт между намерением и реализацией).&lt;/p&gt;
&lt;p&gt;Эти две вещи комплементарны, не конкурируют. Если у тебя есть один без другого, ты получаешь либо красивые архитектурные правила без контракта на изменения, либо пухлые спеки без автоматической проверки.&lt;/p&gt;
&lt;p&gt;Когда есть оба — каждый коммит проходит и через &amp;ldquo;не сломал ли архитектуру&amp;rdquo; (archlint), и через &amp;ldquo;соответствует ли намерению&amp;rdquo; (спека). На ревьюера падает только то, что обе автоматизации пропустили.&lt;/p&gt;
&lt;h2 id="ссылки"&gt;Ссылки
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Оригинал статьи: &lt;a class="link" href="https://martinfowler.com/articles/structured-prompt-driven/" target="_blank" rel="noopener"
&gt;Structured Prompt-Driven Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openspdd&lt;/code&gt; (Thoughtworks-affiliated CLI): &lt;a class="link" href="https://github.com/gszhangwei/open-spdd" target="_blank" rel="noopener"
&gt;https://github.com/gszhangwei/open-spdd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;archlint: &lt;a class="link" href="https://github.com/mshogin/archlint" target="_blank" rel="noopener"
&gt;https://github.com/mshogin/archlint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Совет умирает. Вопрос остаётся</title><link>https://mshogin.ru/notes/compass-in-ai-era/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://mshogin.ru/notes/compass-in-ai-era/</guid><description>&lt;p&gt;Я 20 лет копил техническую экспертизу. За последние полтора года значительная её часть стала доступна любому, у кого есть подписка на нейросеть за 20 долларов.&lt;/p&gt;
&lt;p&gt;Этот вопрос всплывает у меня периодически: насколько ценен мой опыт сегодня?&lt;/p&gt;
&lt;h2 id="ai-не-плохо-отвечает-ai-поддерживает"&gt;AI не &amp;ldquo;плохо отвечает&amp;rdquo;. AI поддерживает
&lt;/h2&gt;&lt;p&gt;Да, AI знает глубже, шире, точнее меня. И всё же есть особенность: AI поддерживает. Какое бы направление оператор ни выбрал - AI развивает именно выбранное.&lt;/p&gt;
&lt;p&gt;Это даже не плохо. Молодой инженер с GPT движется в проблеме быстрее, чем я когда-то лопатил Stack Overflow и форумы по выходным.&lt;/p&gt;
&lt;p&gt;Что мне даёт опыт - в какой-то момент сказать &amp;ldquo;стоп&amp;rdquo;. Развернуть. Потому что на эти грабли я уже наступал, и помню, как они выглядят.&lt;/p&gt;
&lt;p&gt;Но смотрите дальше. Говорю AI: &amp;ldquo;Стоп. В моём прошлом проекте этот путь не сработал. Давай развернёмся&amp;rdquo;. Он отвечает: &amp;ldquo;Точно, отличная идея&amp;rdquo;. И теперь поддерживает развёрнутый вариант.&lt;/p&gt;
&lt;p&gt;AI равно поддерживает любую мою сторону. И прежнюю, и развёрнутую.&lt;/p&gt;
&lt;p&gt;И вот это - мой настоящий вопрос. На что опираться, если AI быстрее меня в ответах и подыгрывает любому моему выбору?&lt;/p&gt;
&lt;h2 id="поворот-которого-я-не-ожидал"&gt;Поворот, которого я не ожидал
&lt;/h2&gt;&lt;p&gt;Ответ пришёл с неожиданной стороны: в этом году я учусь на коуча. Скоро экзамен ICF Level 1.&lt;/p&gt;
&lt;p&gt;И эта учёба меня прижала.&lt;/p&gt;
&lt;p&gt;Я всю жизнь работал в том же режиме, что AI. Только медленнее.&lt;/p&gt;
&lt;p&gt;Подходит коллега с проблемой - страх, сомнение, выбор. Я уже знаю, что ему сказать. Кому позвонить. Как сформулировать. Что почитать. Раздаю советы быстро, точно, по делу.&lt;/p&gt;
&lt;p&gt;Человек кивает. Уходит.&lt;/p&gt;
&lt;p&gt;Через неделю приходит снова. С тем же вопросом. В новой обёртке.&lt;/p&gt;
&lt;p&gt;И я не понимал почему так.&lt;/p&gt;
&lt;p&gt;Сейчас понимаю. Я отвечал на его слова. А не на его настоящий вопрос - который под словами: страх, сомнение, что-то очень его, во что мой совет даже не пытался попасть.&lt;/p&gt;
&lt;h2 id="что-меняется"&gt;Что меняется
&lt;/h2&gt;&lt;p&gt;Учусь делать другое.&lt;/p&gt;
&lt;p&gt;Не выдавать ответ. Задавать вопросы, от которых человек сам видит свой блок. Что для него важно. Что он уже пробовал. Что его держит. Что станет первым шагом.&lt;/p&gt;
&lt;p&gt;Это медленнее. Менее эффектно. И сложнее, чем выдать ответ за тридцать секунд.&lt;/p&gt;
&lt;p&gt;Но самое интересное и самое сложное - дальше.&lt;/p&gt;
&lt;p&gt;Когда у человека загорается лампочка - &amp;ldquo;Ага! Я понял!&amp;rdquo; - это не финиш. Это эмоциональный всплеск. Через два дня он рассасывается, и человек остаётся с тем же вопросом, что в начале.&lt;/p&gt;
&lt;p&gt;Профессионализм коуча, как я его сейчас вижу, - не отпустить на инсайте. Дойти с человеком до конкретного следующего шага. Проверенного на его собственные грабли. Чтобы у него остался не пик эмоции, а план, который работает без меня.&lt;/p&gt;
&lt;h2 id="где-мой-компас"&gt;Где мой компас
&lt;/h2&gt;&lt;p&gt;И вот тут связалось.&lt;/p&gt;
&lt;p&gt;AI даёт ответы за секунды. Я давал ответы за минуты. Это - то, что заменяется.&lt;/p&gt;
&lt;p&gt;Что не заменяется - умение задать вопрос, от которого человек видит свой реальный блок. И не отпустить, пока у него не сложился рабочий шаг.&lt;/p&gt;
&lt;p&gt;И вот это - точка, на которую можно опираться. Не на знания. Не на ответы. На умение задать вопрос и довести человека до его собственного шага.&lt;/p&gt;
&lt;p&gt;И это, пожалуй, главное, что я унесу из учёбы на коуча в свою работу архитектора. Архитектура систем и архитектура мышления - это один навык, только субстрат разный.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Когда вам в последний раз помог не совет, а правильно поставленный вопрос?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Фаулер про LLM и разработчиков: cognitive debt, supervisory programming и кто на самом деле под ударом</title><link>https://mshogin.ru/blog/fowler-llm-developers/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><guid>https://mshogin.ru/blog/fowler-llm-developers/</guid><description>&lt;img src="https://mshogin.ru/cover.svg" alt="Featured image of post Фаулер про LLM и разработчиков: cognitive debt, supervisory programming и кто на самом деле под ударом" /&gt;&lt;p&gt;Мартин Фаулер опубликовал заметки с встречи senior-разработчиков, посвященной LLM. Не очередной хайп про &amp;ldquo;AI заменит всех&amp;rdquo; - а трезвый разбор от людей, которые пишут код десятилетиями.&lt;/p&gt;
&lt;p&gt;Несколько тезисов зацепили настолько, что захотелось разобрать их подробнее. С примерами из собственной практики.&lt;/p&gt;
&lt;h2 id="mid-level-под-ударом-а-не-джуны"&gt;Mid-level под ударом, а не джуны
&lt;/h2&gt;&lt;p&gt;Обычно все переживают за junior-разработчиков: их-то заменят первыми. Фаулер с группой пришли к обратному выводу.&lt;/p&gt;
&lt;p&gt;Джуны адаптивны. Они росли с LLM, умеют ими пользоваться, открыты к новому. Сеньоры понимают архитектуру, видят систему целиком, эффективно управляют агентами - примерно как управляют джунами.&lt;/p&gt;
&lt;p&gt;А mid-level? Они сформировались без LLM, но еще не набрали достаточно опыта, чтобы эффективно ими управлять. Застряли между двумя мирами.&lt;/p&gt;
&lt;p&gt;На практике я вижу это так: mid-level разработчик умеет писать код. Хорошо умеет. Но когда LLM генерирует код быстрее - &amp;ldquo;умение писать код&amp;rdquo; перестает быть конкурентным преимуществом. А понимание &amp;ldquo;зачем этот код нужен&amp;rdquo;, &amp;ldquo;как он вписывается в систему&amp;rdquo;, &amp;ldquo;какие trade-offs мы принимаем&amp;rdquo; - это уже территория сеньоров.&lt;/p&gt;
&lt;p&gt;Один из участников рассказал показательную историю: сеньоры в их компании были резко против LLM. Но когда их заставили поработать руками - треть моментально стала pro-LLM. Практический опыт важнее теоретических страхов. Как пошутили на встрече, некоторые негативные мнения о LLM &amp;ldquo;остались в январе&amp;rdquo;.&lt;/p&gt;
&lt;h3 id="что-делать-mid-level"&gt;Что делать mid-level
&lt;/h3&gt;&lt;p&gt;Если ты mid-level - у тебя есть окно. Не в том, чтобы учиться промптить. А в том, чтобы быстрее набирать архитектурное мышление: понимание систем, trade-offs, бизнес-контекста. То, что LLM пока делает плохо.&lt;/p&gt;
&lt;h2 id="cognitive-debt-опаснее-technical-debt"&gt;Cognitive debt опаснее technical debt
&lt;/h2&gt;&lt;p&gt;Это, на мой взгляд, самый ценный тезис. Фаулер ссылается на исследование Margaret-Anne Storey и проводит параллель с technical debt.&lt;/p&gt;
&lt;p&gt;Её кейс: студенческие команды строили продукт, генерируя код с помощью LLM. К 7-8 неделе одна команда уперлась в стену - любое изменение ломало что-то неожиданное. Сначала обвинили технический долг. Но реальная проблема была в другом: никто в команде не мог объяснить, почему были приняты те или иные решения. Shared understanding - общее понимание системы - фрагментировалось и исчезло.&lt;/p&gt;
&lt;p&gt;Фаулер разделяет это на два слоя:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cruft&lt;/strong&gt; (хлам в коде) -&amp;gt; в когнитивной сфере это &lt;strong&gt;ignorance&lt;/strong&gt; (невежество) - незнание кода и домена&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debt&lt;/strong&gt; (долг как метафора стоимости) -&amp;gt; либо платишь &amp;ldquo;проценты&amp;rdquo; (каждое изменение дороже), либо &amp;ldquo;гасишь тело&amp;rdquo; (инвестируешь в понимание)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Это точное попадание в то, что я вижу при приемке проектов. Не раз сталкивался с ситуацией: код написан грамотно, тесты есть, линтеры проходят - но никто не может объяснить, почему выбрана такая декомпозиция сервисов. Или зачем нужен этот промежуточный слой. Документация говорит &amp;ldquo;что&amp;rdquo;, но не говорит &amp;ldquo;зачем&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;С LLM-агентами cognitive debt будет масштабироваться: код генерируется быстрее, чем команда успевает его осмыслить. Скорость создания кода перестает быть ограничителем. Ограничителем становится скорость понимания.&lt;/p&gt;
&lt;h3 id="как-с-этим-работать"&gt;Как с этим работать
&lt;/h3&gt;&lt;p&gt;Несколько практик, которые помогают:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ADR (Architecture Decision Records)&lt;/strong&gt; - фиксируем не &amp;ldquo;что решили&amp;rdquo;, а &amp;ldquo;почему решили и какие варианты отвергли&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Коучинговые вопросы на ревью&lt;/strong&gt; - вместо &amp;ldquo;используй Strategy pattern&amp;rdquo; спрашивать &amp;ldquo;какие варианты ты рассмотрел? какие trade-offs?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обязательный контекст в PR&lt;/strong&gt; - не просто diff, а &amp;ldquo;зачем&amp;rdquo; это изменение нужно&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Если LLM генерирует код - пусть генерирует и ADR к нему. Хотя бы черновик для ревью.&lt;/p&gt;
&lt;h2 id="devex-и-agent-experience---это-круг"&gt;DevEx и Agent Experience - это круг
&lt;/h2&gt;&lt;p&gt;Laura Tacho сказала фразу, которая заслуживает стать мемом:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Venn Diagram of Developer Experience and Agent Experience is a circle&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Всё, за что годами боролись в developer experience - гладкий тулинг, понятная документация, чистая модульность, осмысленные имена - оказывается, помогает и LLM-агентам. Хорошая модульность и descriptive naming так же полезны для трансформера, как и для &amp;ldquo;более мягких нейронных сетей&amp;rdquo; (мозгов).&lt;/p&gt;
&lt;p&gt;И горькая ирония: менеджмент готов инвестировать в &amp;ldquo;smooth path для LLM&amp;rdquo;, но не готов был делать это для людей. Экзекьютивам не жалко денег на роботов, но жалко на разработчиков.&lt;/p&gt;
&lt;p&gt;Из моего опыта: чистая архитектура с явными зависимостями, маленькими интерфейсами и четкими слоями - это ровно то, что позволяет LLM-агенту эффективно работать с кодобазой. Когда я настраивал Claude Code для работы со своими проектами, разница была заметна сразу: в проекте с чистой архитектурой агент находит нужный контекст за секунды. В проекте-монолите с неявными зависимостями - путается, галлюцинирует, предлагает изменения не в тех файлах.&lt;/p&gt;
&lt;p&gt;Вывод неутешительный и простой: если ваша кодобаза - хаос для людей, она будет хаосом и для агентов. Инвестиции в DevEx теперь имеют двойной ROI.&lt;/p&gt;
&lt;h2 id="supervisory-programming-и-менеджерское-выгорание"&gt;Supervisory programming и менеджерское выгорание
&lt;/h2&gt;&lt;p&gt;Камилла Фурнье заметила:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The part of &amp;ldquo;everyone becomes a manager&amp;rdquo; in AI that I didn&amp;rsquo;t really think about until now was the mental fatigue of context switching&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тренд &amp;ldquo;один программист управляет несколькими агентами&amp;rdquo; несет с собой ровно ту же болезнь, от которой годами страдают менеджеры: усталость от переключения контекста. Держать в голове 5 параллельных задач, ревьюить результаты из разных контекстов, ловить ошибки в коде, который ты не писал - это менеджмент, а не программирование.&lt;/p&gt;
&lt;p&gt;Фаулер осторожно предполагает, что два человека + агенты могут быть эффективнее, чем один человек + много агентов. Парное программирование нового формата: два мозга ловят ошибки &amp;ldquo;джинна&amp;rdquo; лучше, чем один.&lt;/p&gt;
&lt;p&gt;Мне эта мысль близка. В коучинге есть концепция: сам себе коучем быть нельзя, нужен внешний наблюдатель. С кодом похоже - второй человек видит то, что ты пропустил. А когда агенты генерируют код быстрее, чем один человек может ревьюить - второй мозг не роскошь, а необходимость.&lt;/p&gt;
&lt;h3 id="workload-creep"&gt;Workload creep
&lt;/h3&gt;&lt;p&gt;Фаулер также цитирует исследование из Harvard Business Review: в компании на 200 человек после внедрения AI сотрудники стали работать быстрее, брать больше задач, работать больше часов - часто без просьбы. Звучит как мечта менеджера. Но за первоначальным всплеском приходит: cognitive fatigue, выгорание, ухудшение качества решений.&lt;/p&gt;
&lt;p&gt;Это классический паттерн. Новый инструмент дает эйфорию -&amp;gt; берешь больше -&amp;gt; не замечаешь, как нагрузка выросла -&amp;gt; burnout.&lt;/p&gt;
&lt;h2 id="размер-команд"&gt;Размер команд
&lt;/h2&gt;&lt;p&gt;Уменьшатся ли команды? Фаулер склоняется к &amp;ldquo;нет&amp;rdquo;. Two-pizza teams (5-8 человек) останутся примерно того же размера - но будут делать значительно больше. Есть что-то фундаментальное в размере команды, что балансирует выгоды сотрудничества с издержками координации. LLM не едят пиццу, но они и не добавляют в team dynamics.&lt;/p&gt;
&lt;h2 id="будущее-ide"&gt;Будущее IDE
&lt;/h2&gt;&lt;p&gt;Отдельная тема - будущее IDE. LLM не заменяют IDE, а встраиваются в них. Переименовать функцию через LLM - это как забивать гвоздь микроскопом. Но LLM может оркестрировать инструменты IDE: увидеть, что &amp;ldquo;person&amp;rdquo; нужно переименовать в &amp;ldquo;contact&amp;rdquo; во всех контекстах (функции, поля, документация, тесты), и использовать детерминистические рефакторинги IDE для каждого из них.&lt;/p&gt;
&lt;p&gt;Мне как пользователю Emacs это особенно резонирует. IDE - это мощный инструмент, но мало кто использует его на полную. LLM может стать тем слоем, который знает возможности IDE лучше пользователя и подсказывает, когда использовать LLM, когда - детерминистический рефакторинг, а когда - их комбинацию.&lt;/p&gt;
&lt;h2 id="итого"&gt;Итого
&lt;/h2&gt;&lt;p&gt;Главные мысли из текста Фаулера:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Mid-level под ударом&lt;/strong&gt; - не джуны, как все думали. Окно для роста: быстрее набирать архитектурное мышление&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cognitive debt &amp;gt; technical debt&lt;/strong&gt; - с LLM код генерируется быстрее, чем осмысляется. Ограничитель теперь - понимание, а не написание&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DevEx = Agent Experience&lt;/strong&gt; - инвестиции в чистую архитектуру дают двойной ROI&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supervisory programming = менеджерское выгорание&lt;/strong&gt; - context switching утомляет. Пара людей + агенты может быть лучше одиночки + много агентов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workload creep&lt;/strong&gt; - эйфория от AI -&amp;gt; перегрузка -&amp;gt; burnout. Классика&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Текст Фаулера ценен тем, что он не про хайп и не про страх. Он про трезвую оценку: что меняется, что остается, и какие новые проблемы приходят вместе с новыми возможностями.&lt;/p&gt;
&lt;p&gt;А ты замечаешь cognitive debt в своих проектах?&lt;/p&gt;</description></item><item><title>Архитектура памяти для AI-агентов: как я научил Claude Code помнить</title><link>https://mshogin.ru/blog/memory-architecture-for-ai-agents/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://mshogin.ru/blog/memory-architecture-for-ai-agents/</guid><description>&lt;img src="https://mshogin.ru/blog/memory-architecture-for-ai-agents/cover.svg" alt="Featured image of post Архитектура памяти для AI-агентов: как я научил Claude Code помнить" /&gt;&lt;h2 id="боль-агент-с-амнезией"&gt;Боль: агент с амнезией
&lt;/h2&gt;&lt;p&gt;Каждый, кто работает с AI-агентами, знает ощущение: ты объяснил контекст проекта, показал структуру, обсудил решения - а в следующей сессии агент всё забыл. Опять здрасьте. Опять &amp;ldquo;расскажите про ваш проект&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Это как работать с архитектором, у которого каждое утро стирается память. Он талантлив, быстр, но каждый день - новый человек.&lt;/p&gt;
&lt;p&gt;У меня 12+ активных контекстов: рабочие проекты (Wildberries), личные проекты (aitrader, archlint), блог, коучинговая практика, обучение, целеполагание. Переключение между ними без памяти превращалось в ритуал: 5-10 минут на &amp;ldquo;загрузку контекста&amp;rdquo; в начале каждой сессии.&lt;/p&gt;
&lt;p&gt;Стало ясно: нужна архитектура памяти.&lt;/p&gt;
&lt;h2 id="как-устроена-человеческая-память"&gt;Как устроена человеческая память
&lt;/h2&gt;&lt;p&gt;Прежде чем проектировать, я посмотрел на то, как работает память у людей. Параллельно с архитектурой я изучаю коучинг - и там постоянно всплывает тема того, как люди обрабатывают информацию. Заметил структурное сходство.&lt;/p&gt;
&lt;div class="mermaid"&gt;
flowchart TD
A["Входящие данные"] --&gt; B["Рабочая память\n(Short-Term)\nАктивные задачи,\nтекущий контекст"]
B --&gt; C{"Фильтр ценности\n(еженедельный ревью)"}
C --&gt;|"Ценно"| D["Долговременная память\n(Long-Term)\nПаттерны, принципы, уроки"]
C --&gt;|"Обработано"| E["Архив\n(забыто, но доступно)"]
&lt;/div&gt;
&lt;p&gt;У людей так же:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Рабочая память&lt;/strong&gt; (Short-Term) - то, с чем работаешь прямо сейчас. Ограничена: ~7 элементов одновременно. Через 3-6 месяцев без обращения - забывается.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Долговременная память&lt;/strong&gt; (Long-Term) - дистиллированные знания. Не &amp;ldquo;что я делал во вторник&amp;rdquo;, а &amp;ldquo;какой паттерн я увидел за три месяца работы&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Архив&lt;/strong&gt; - не удалено, но не на поверхности. Доступно при целенаправленном поиске.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ключевой момент: переход из Short-Term в Long-Term - не автоматический. Нужна осознанная обработка. В коучинге это рефлексия. В моей системе - еженедельный ревью.&lt;/p&gt;
&lt;h2 id="архитектура-решения"&gt;Архитектура решения
&lt;/h2&gt;&lt;h3 id="три-уровня-памяти"&gt;Три уровня памяти
&lt;/h3&gt;&lt;p&gt;Я реализовал три уровня, зеркалирующих человеческую модель:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;~/my/org-roam/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-- Short-Term-Memory/ # Рабочая память (3-6 месяцев)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- Wildberries/ # Рабочий контекст
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- Coaching/ # Коучинговые сессии
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- daily/ # Ежедневные заметки
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- todos.md # Задачи
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-- Long-Term-Memory/ # Долговременная память
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- Coaching/ # Методики, паттерны, кейсы
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- Architecture/ # Архитектурные решения
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- Posts/ # Публикации
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| +-- Personal/ # Личные принципы
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;+-- Archive/ # Архив (по месяцам)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; +-- 2026/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; +-- 01-January/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; +-- 02-February/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Short-Term&lt;/strong&gt; - inbox для всего нового. Сырые заметки, текущие задачи, эксперименты. Максимум 50 активных файлов. Если больше - пора делать ревью.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Long-Term&lt;/strong&gt; - база знаний. Сюда попадает только то, что прошло фильтр ценности:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Переиспользуемость (применимо 3+ раз)&lt;/li&gt;
&lt;li&gt;Обучающая ценность (ага-момент, важная ошибка)&lt;/li&gt;
&lt;li&gt;Референсная ценность (пример для копирования)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Archive&lt;/strong&gt; - завершенные проекты, обработанные заметки. Не удалено, но убрано с глаз.&lt;/p&gt;
&lt;h3 id="контексты-переключение-за-секунду"&gt;Контексты: переключение за секунду
&lt;/h3&gt;&lt;p&gt;Вторая проблема - переключение между проектами. Решение: система контекстов.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;contexts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;coaching&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;coaching&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Коучинговые сессии и практика развития&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;directory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;~/my/coaching&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;memory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;short_term&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;~/my/org-roam/Short-Term-Memory/Coaching&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;long_term&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;~/my/org-roam/Long-Term-Memory/Coaching&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;archlint&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;archlint&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ArchLint - линтер архитектуры Go проектов&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;directory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;~/my/archlint&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;memory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;short_term&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;long_term&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Каждый контекст знает:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;directory&lt;/strong&gt; - рабочая директория проекта&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;memory.short_term&lt;/strong&gt; - где хранить текущие заметки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;memory.long_term&lt;/strong&gt; - где хранить дистиллированные знания&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Переключение: одна команда &lt;code&gt;/w coaching&lt;/code&gt; - и агент знает где он, что помнить, какие файлы читать.&lt;/p&gt;
&lt;h3 id="индекс-активностей-навигация-по-всему"&gt;Индекс активностей: навигация по всему
&lt;/h3&gt;&lt;p&gt;Контексты решают проблему &amp;ldquo;где я&amp;rdquo;. Но остается вопрос: &amp;ldquo;где искать информацию по теме X?&amp;rdquo;. Для этого - глобальный индекс активностей.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;### Коучинг / Практика
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Keywords: сессия, клиент, практика, рефлексия
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Файлы:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;-&lt;/span&gt; Практика: ~/my/org-roam/Long-Term-Memory/Coaching/03-Практика/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;-&lt;/span&gt; Гайды сессий: ~/my/org-roam/Long-Term-Memory/Coaching/session-guides/INDEX.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;### Здоровье и психология
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Keywords: психолог, здоровье, границы, стыд
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Файлы:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;-&lt;/span&gt; Темы: ~/my/org-roam/Long-Term-Memory/Темы для психолога.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Связанные активности: Коучинг / Запросы для проработки
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Принцип работы:&lt;/p&gt;
&lt;div class="mermaid"&gt;
flowchart TD
A["Промпт пользователя"] --&gt; B["Поиск по keywords\nв memory-index.md"]
B --&gt; C{"Найдена\nактивность?"}
C --&gt;|"Да"| D["Работай в её контексте"]
C --&gt;|"Нет"| E["Спроси пользователя,\nпредложи варианты"]
&lt;/div&gt;
&lt;h3 id="кросс-контекстный-поиск-связи-между-контекстами"&gt;Кросс-контекстный поиск: связи между контекстами
&lt;/h3&gt;&lt;p&gt;Самая интересная архитектурная задача. Информация часто пересекает границы контекстов.&lt;/p&gt;
&lt;p&gt;Пример: тема &amp;ldquo;границы&amp;rdquo; может всплыть в коучинге (запрос клиента), в психологии (тема для терапии), в рабочем контексте (обратная связь коллеге). Как не потерять связь?&lt;/p&gt;
&lt;p&gt;Решение: &lt;strong&gt;кросс-ссылки на уровне глобального индекса&lt;/strong&gt;, а не дублирование информации между контекстными индексами.&lt;/p&gt;
&lt;div class="mermaid"&gt;
flowchart TD
G["memory-index.md\n(глобальный индекс)"] --&gt; C1["Coaching\nINDEX.md"]
G --&gt; C2["Здоровье\n(файлы)"]
G --&gt; C3["Работа\nINDEX.md"]
G --&gt; C4["..."]
C1 -.-|"кросс-ссылка"| C2
C2 -.-|"кросс-ссылка"| C3
style G fill:#0f3460,color:#fff
style C1 fill:#533483,color:#fff
style C2 fill:#533483,color:#fff
style C3 fill:#533483,color:#fff
style C4 fill:#333,color:#999
&lt;/div&gt;
&lt;p&gt;Правило: каждый контекстный индекс отвечает только за свой контекст. Связь между контекстами - через поле &amp;ldquo;Связанные активности&amp;rdquo; в глобальном индексе.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Кросс-ссылки между активностями
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| Активность A | Активность B | Связь |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|--------------------------|------------------------|-------------------------------------|
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| Коучинг / Запросы | Здоровье и психология | Запрос &lt;span class="ni"&gt;#11&lt;/span&gt; = Тема &lt;span class="ni"&gt;#2&lt;/span&gt; (границы) |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| Семья | Коучинг / Запросы | Запрос &lt;span class="ni"&gt;#3&lt;/span&gt; (темы с супругой) |
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Антипаттерн: дублировать ссылки на &amp;ldquo;Темы для психолога&amp;rdquo; внутри Coaching/INDEX.md. Это нарушает single responsibility - индекс коучинга не должен знать про психологию. Связь - только через глобальный уровень.&lt;/p&gt;
&lt;h2 id="жизненный-цикл-знаний"&gt;Жизненный цикл знаний
&lt;/h2&gt;&lt;p&gt;Данные без обработки - мусор. Система памяти работает, только если есть процесс трансформации.&lt;/p&gt;
&lt;div class="mermaid"&gt;
flowchart LR
subgraph ST ["Short-Term (сырые данные)"]
A1["Заметки по сессии\nс клиентом X"]
A2["Тикеты проекта\nархитектуры"]
A3["Исследование\nTarjan алгоритма"]
end
subgraph LT ["Long-Term (знания)"]
B1["Паттерн: Работа с\nпрокрастинацией\nчерез ценности"]
B2["ADR-0042: Выбор\nмежду монолитом\nи микросервисами"]
B3["Библиотека\nалгоритмов\nпоиска циклов"]
end
A1 --&gt;|"трансформация"| B1
A2 --&gt;|"трансформация"| B2
A3 --&gt;|"трансформация"| B3
&lt;/div&gt;
&lt;h3 id="критерии-перехода-в-long-term"&gt;Критерии перехода в Long-Term
&lt;/h3&gt;&lt;p&gt;Не всё заслуживает долговременной памяти. Четыре фильтра:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Переиспользуемость&lt;/strong&gt; - применимо 3+ раз (методики, шаблоны, чек-листы)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обучающая ценность&lt;/strong&gt; - ага-момент, важная ошибка, смена парадигмы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Референсная ценность&lt;/strong&gt; - пример для копирования (код, кейс, формат)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Паттерн&lt;/strong&gt; - повторяющаяся проблема + решение&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Всё остальное - одноразовые заметки, устаревшие TODO, рутинные логи - удаляется или уходит в архив.&lt;/p&gt;
&lt;h3 id="еженедельный-ревью"&gt;Еженедельный ревью
&lt;/h3&gt;&lt;p&gt;Раз в неделю - 30-40 минут на обработку Short-Term:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Просмотреть файлы за неделю&lt;/li&gt;
&lt;li&gt;Выделить ценное для Long-Term&lt;/li&gt;
&lt;li&gt;Трансформировать: сырые данные -&amp;gt; структурированные знания&lt;/li&gt;
&lt;li&gt;Архивировать обработанное&lt;/li&gt;
&lt;li&gt;Удалить мусор&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Метрики здоровой системы:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Short-Term: 30-50 активных файлов&lt;/li&gt;
&lt;li&gt;Long-Term: +2-5 новых записей в неделю&lt;/li&gt;
&lt;li&gt;Archive: регулярное пополнение&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="параллель-с-коучингом"&gt;Параллель с коучингом
&lt;/h2&gt;&lt;p&gt;Когда я проектировал эту систему, я заметил параллели с тем, что изучаю в коучинге.&lt;/p&gt;
&lt;h3 id="short-term--рабочая-осознанность"&gt;Short-Term = Рабочая осознанность
&lt;/h3&gt;&lt;p&gt;Когда человек разбирается в сложной ситуации, он сначала выгружает всё, что на поверхности: факты, эмоции, людей, обстоятельства. Это рабочая память - хаотичная, перегруженная, но актуальная. Short-Term Memory в моей системе работает так же: собирает всё, что сейчас активно, без фильтрации.&lt;/p&gt;
&lt;h3 id="long-term--мудрость-через-рефлексию"&gt;Long-Term = Мудрость через рефлексию
&lt;/h3&gt;&lt;p&gt;Long-Term - это не &amp;ldquo;запомнить всё&amp;rdquo;. Это &amp;ldquo;понять, что важно&amp;rdquo;. Лучшие инсайты приходят не в момент обсуждения, а позже - когда человек рефлексирует и видит паттерн. Еженедельный ревью - это та самая рефлексия, только для базы знаний.&lt;/p&gt;
&lt;h3 id="кросс-контекст--системное-мышление"&gt;Кросс-контекст = Системное мышление
&lt;/h3&gt;&lt;p&gt;Проблема редко живет в одном контексте. Одна и та же тема может всплыть и на работе, и в личных проектах, и в обучении. Кросс-ссылки в системе памяти - это способ видеть одну тему с разных сторон, расширить перспективу.&lt;/p&gt;
&lt;h3 id="architect-of-thinking"&gt;Architect of Thinking
&lt;/h3&gt;&lt;p&gt;Изучая коучинг, я разработал авторский фреймворк на стыке архитектуры и работы с мышлением - Architect of Thinking. Формула:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Контекст -&amp;gt; Цель -&amp;gt; Карта -&amp;gt; Узел -&amp;gt; Решение -&amp;gt; Шаг&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Это ровно то, как архитектор работает с системой: сначала изучи (контекст), определи цель, построй карту, найди bottleneck (узел), спроектируй решение, сделай первый шаг. Тот же подход - к человеческим задачам.&lt;/p&gt;
&lt;h2 id="результаты"&gt;Результаты
&lt;/h2&gt;&lt;h3 id="до-системы-памяти"&gt;До системы памяти:
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;5-10 минут на &amp;ldquo;загрузку контекста&amp;rdquo; каждую сессию&lt;/li&gt;
&lt;li&gt;Потеря решений между сессиями&lt;/li&gt;
&lt;li&gt;Дублирование работы&lt;/li&gt;
&lt;li&gt;Невозможность связать темы между контекстами&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="после"&gt;После:
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Переключение контекста за 1 команду&lt;/li&gt;
&lt;li&gt;Знания накапливаются и структурируются&lt;/li&gt;
&lt;li&gt;Связи между контекстами через кросс-ссылки&lt;/li&gt;
&lt;li&gt;Еженедельный ревью превращает данные в знания&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="что-дальше"&gt;Что дальше
&lt;/h2&gt;&lt;p&gt;Система живая - она развивается вместе с моими проектами. Следующие шаги:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Автоматизация ревью (AI-помощник для еженедельной обработки Short-Term)&lt;/li&gt;
&lt;li&gt;Семантический поиск по Long-Term Memory&lt;/li&gt;
&lt;li&gt;Версионирование знаний (как знания меняются со временем)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Но главный урок не технический. Проектируя память для AI-агента, я лучше понял, как работает моя собственная. И это, пожалуй, самый ценный побочный эффект.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Исходный код и конфигурации описаны для Claude Code (Anthropic CLI). Подход применим к любому AI-агенту с файловой системой.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>AI не заменяет - AI меняет роль</title><link>https://mshogin.ru/notes/ai-analyst-role-shift/</link><pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate><guid>https://mshogin.ru/notes/ai-analyst-role-shift/</guid><description>&lt;p&gt;Недавно наткнулся на статистику: &lt;a class="link" href="https://hrexecutive.com/the-ai-layoff-trap-why-half-will-be-quietly-rehired/" target="_blank" rel="noopener"
&gt;55% компаний&lt;/a&gt;, которые уволили людей из-за AI, теперь жалеют об этом. А &lt;a class="link" href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/" target="_blank" rel="noopener"
&gt;исследование METR&lt;/a&gt; показало вообще странное - разработчики думают что с AI работают на 20% быстрее, а на деле оказалось на 19% медленнее.&lt;/p&gt;
&lt;p&gt;И тут же читаю Хинтона, который говорит что через пару лет AI будет делать за минуты то, на что инженеру нужен месяц. А &lt;a class="link" href="https://www.technologyreview.com/2025/12/15/1128352/rise-of-ai-coding-developers-2026/" target="_blank" rel="noopener"
&gt;CEO AWS&lt;/a&gt; в ответ называет отказ от найма джуниоров &amp;ldquo;одной из самых глупых вещей, что слышал&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Кто прав-то?&lt;/p&gt;
&lt;p&gt;Мой опыт говорит - оба мимо. AI не заменяет людей. И не замедляет работу. Он просто меняет то, чем мы занимаемся.&lt;/p&gt;
&lt;h2 id="что-я-отдал-ai"&gt;Что я отдал AI
&lt;/h2&gt;&lt;p&gt;Если честно - почти всю аналитику. Черновики диаграмм, редактирование текстов, поиск информации и её анализ. Руками программировать практически перестал - всегда работаю с агентом. Нужна какая-то экспертиза - первым делом иду к AI.&lt;/p&gt;
&lt;p&gt;Звучит как будто я всё отдал. Но нет.&lt;/p&gt;
&lt;h2 id="что-не-отдам"&gt;Что не отдам
&lt;/h2&gt;&lt;p&gt;Здоровье. Вот тут для меня чётко. Я не против если доктор использует AI - наоборот, хорошо бы. Но это должен быть доктор. С образованием. С опытом. AI как инструмент - да. AI вместо врача - нет.&lt;/p&gt;
&lt;p&gt;То же самое с психологом. Мне нравится работать с живым человеком, и я не вижу как это можно заменить. С коучем - аналогично.&lt;/p&gt;
&lt;p&gt;Всё что связано с моим здоровьем, с сознанием, с осознанностью - это только к профессионалам. Которые могут использовать AI в работе, но именно профессионалам.&lt;/p&gt;
&lt;h2 id="про-этот-парадокс-продуктивности"&gt;Про этот &amp;ldquo;парадокс продуктивности&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Вот это исследование METR меня зацепило. Люди думают что быстрее, а на деле медленнее. Парадокс, говорят.&lt;/p&gt;
&lt;p&gt;Не согласен.&lt;/p&gt;
&lt;p&gt;Раньше как было? Ты мог попробовать один-два варианта реализации. Выбрал что-то, пошёл делать. Натыкаешься на проблемы - делаешь третью версию. Потом четвёртую. И всё это копится. Первая версия где-то лежит, вторая, третья - и ты уже на пятой, а legacy тянется.&lt;/p&gt;
&lt;p&gt;Сейчас я за то же время пробую кучу вариантов сразу. Да, на каждый конкретный вариант уходит больше времени. Но я не тащу за собой три неудачных попытки. Я выбираю лучший вариант до того как начал его закапывать в продакшн.&lt;/p&gt;
&lt;p&gt;Это не замедление. Это другой способ работы.&lt;/p&gt;
&lt;h2 id="джуниоры"&gt;Джуниоры
&lt;/h2&gt;&lt;p&gt;CEO AWS сказал хорошо: &amp;ldquo;Как это будет работать через 10 лет, когда никто ничему не научился?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Полностью согласен. Должна быть передача знаний. Сменяемость поколений специалистов.&lt;/p&gt;
&lt;p&gt;Да, с AI можно делать сайты и телеграм-боты без особого образования. Но индустрия - это не только сайты и боты. Есть куча вещей, где нужна высшая математика. Где нужен computer science. Джуниоры нужны. И их надо учить.&lt;/p&gt;
&lt;h2 id="как-изменилась-моя-роль"&gt;Как изменилась моя роль
&lt;/h2&gt;&lt;p&gt;Писать код руками - уже нет смысла. Я теперь думаю про архитектуру. Проектирую системы. Делаю ревью. Валидирую то, что получилось.&lt;/p&gt;
&lt;p&gt;Причём само проектирование тоже с AI - общаешься с агентом, раскладываешь задачу. Потом отдаёшь в реализацию и проверяешь результат.&lt;/p&gt;
&lt;p&gt;Короче, роль сдвинулась. Раньше - исполнитель. Теперь - проектировщик и валидатор.&lt;/p&gt;
&lt;h2 id="что-стало-важнее"&gt;Что стало важнее
&lt;/h2&gt;&lt;p&gt;Системный подход. Вот эти истории про &amp;ldquo;героя-разработчика&amp;rdquo; который ночью всё починил, или &amp;ldquo;пожаротушителя&amp;rdquo; который везде успевает - это уходит. Ценятся люди, которые системно решают задачи.&lt;/p&gt;
&lt;p&gt;И ещё один навык появился: строить свою систему работы с AI. Просто надиктовать промпт - не работает. Нужна именно система. Свои промпты, правила, скиллы, агенты.&lt;/p&gt;
&lt;p&gt;Я трачу время не только на рабочие задачи, но и на эту систему. Это мой актив. Моя интеллектуальная собственность, если хотите.&lt;/p&gt;
&lt;h2 id="к-чему-это-всё"&gt;К чему это всё
&lt;/h2&gt;&lt;p&gt;AI не заменяет специалистов. Он меняет то, чем они занимаются.&lt;/p&gt;
&lt;p&gt;55% компаний жалеют об увольнениях не потому что AI не работает. А потому что они не поняли - роль людей изменилась, а не исчезла.&lt;/p&gt;
&lt;p&gt;Меньше исполнения, больше проектирования. Меньше героизма, больше системы. Меньше кода руками, больше работы над своими инструментами.&lt;/p&gt;
&lt;p&gt;Вот так оно сейчас выглядит. По крайней мере у меня.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Больше про AI в разработке и архитектуру: &lt;a class="link" href="https://t.me/MikeShogin" target="_blank" rel="noopener"
&gt;Telegram&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>