# Из завершённой сессии — в окружение специалиста

Специализация — не смена тона внутри текущего окна. Это артефакт: каталог, который рантайм
регистрирует как workspace (или сохранённый агент) и в котором уже лежат правила, карточка домена,
критерий приёмки, разобранные примеры и хранилище прошлых работ для **одного класса задач**.

Стройте его, когда тот же класс работы уже случался и случится снова. Не для разовой задачи:
окружение дороже обычного ответа на первом круге и окупается со второго ([Зачем](00-Why.ru.md)).

## Пять шагов

| # | Шаг | Выход | Проверяемое условие |
|---:|---|---|---|
| 1 | Материал | что просили, что пробовали, что проверили и где сломалось | каждый заявленный факт из этой сессии, индекса сессий или файла — ничего по памяти |
| 2 | Карточки | карточка задачи и карточка домена (M1, M2) | нет полей-заглушек; практик и факты «надо проверить» конкретны |
| 3 | Окружение | сам каталог | каждый файл существует; `experience.py check` проходит; ни один существующий файл не перезаписан |
| 4 | Регистрация | рантайм о нём знает | сделано через API либо назван один точный ручной шаг с путём для передачи |
| 5 | Передача | первый промпт для нового окна | в нём названы карточка, критерий приёмки и первая задача |

## Устройство

```text
<workspace>/
  AGENTS.md                    правила для этого класса работы (что проверять, чего не делать)
  DOMAIN-CARD.md               практик, словарь, факты «надо проверить», определение готовности
  .dsh/skills/<topic>/SKILL.md сама процедура — видна в палитре только внутри этого workspace
  examples/                    1-3 разобранных случая: вход, что сделано, что отклонено и почему
  memory/                      хранилище опыта (tasks, recipes, artifacts, failures)
  README.md                    зачем это окружение и его версия
```

Каждый файл отвечает на один вопрос: правила («чего мне нельзя»), карточка («кто я и что значит
готово»), навык («как это делается»), примеры («как выглядит правильный результат»), хранилище («что уже
было сделано»). Отсутствующий файл — дыра, которую следующая сессия закроет догадкой.

## Карточка домена

Девять полей. Качество решают два: **надо проверить** и **определение готовности**.

```text
DOMAIN CARD
Subject:            <из карточки задачи, одна именная группа>
Practitioner:       <название роли, которая делает эту работу профессионально>
Core vocabulary:    5-9 терминов специалиста, по одной строке
Skill set:          3-6 возможностей, которые эта работа действительно требует
Must verify:        те 3-5 фактов, которые специалист не станет утверждать без проверки
Sources of truth:   где лежит авторитетный ответ
Typical failure:    как эта работа обычно идёт не так
Definition of done: критерий приёмки, сформулированный так, что ревьюер может его проверить
Anti-patterns:      что здесь делает новичок, а старший специалист — нет
```

Два правила, которые держат её честной:

- **выводить, а не шаблонизировать** — набор навыков идёт из темы, а не из каталога профессий; две
  документационные работы могут требовать разных навыков;
- **«надо проверить» сильнее «надо знать»** — специалиста отличает не память, а знание того, какие три
  факта нельзя утверждать по памяти.

## Критерий приёмки, который может проверить ревьюер

Плохо: «отчёт работает». Хорошо, в той форме, которую просит набор:

| Домен | Критерий приёмки |
|---|---|
| PHP-эндпоинт | ответ несёт новое поле для одного известного id, а прежняя форма ответа не изменилась |
| Служба Windows | служба перезапускается чисто, новая IPC-команда есть в реестре, контрактный тест обновлён |
| Документация | каждая ссылка разрешается, у каждой картинки есть alt-текст, история изменений проходит разбор по стандарту |

Если так сформулировать не получается, класс работы ещё не понят достаточно для специализации —
вернитесь к шагу 1.

## Регистрация: шаг, который решает, существует ли окружение

| Рантайм | Что может модель | Что обязан человек |
|---|---|---|
| AutoClaw2 | записать каталог навыка и файл команды | перезагрузить, чтобы снимок ресурсов пересобрался |
| HARNESS | создать весь каталог со всеми файлами | один клик: добавить каталог как workspace |
| SagaAI или другой рантайм | зависит от того, есть ли API регистрации | сказать об этом, а не делать вид, что окружение живое |

**Каталог — не workspace, пока рантайм о нём не знает.** Передача незарегистрированного каталога —
это режим отказа 17 в списке режимов отказа, и проверка 12 ворот существует именно для него.

## Промпт передачи

Последний артефакт построения окружения — первое сообщение следующей сессии:

```text
Работай в workspace <путь> (зарегистрирован как "<название>").
Правила: AGENTS.md. Критерий приёмки: DOMAIN-CARD.md, раздел "Definition of done".
Первая задача: <одно предложение>.
До планирования выполни: python tools/experience.py search "<слова задачи>".
В конце сообщи строку ворот.
```

Без него следующая сессия снова начнёт с запроса, а окружение останется мёртвым грузом.

## Версионируйте

Запишите версию и дату внутрь окружения (в `README.md` и в карточке). Окружение без версии нельзя
проверить аудитом, и его правила расходятся незаметно — ровно тот дефект, который линтер ловит на
собственных страницах этого репозитория.

## Проверка стоимости

Новый домен должен стоить **одну карточку, один файл примеров, одну строку критерия приёмки**. Если
добавление специальности требует правки промпта, настроек рантайма и ещё трёх страниц — дизайн потёк,
и исправлять нужно дизайн, а не специальность.

Дальше: [Хранилище опыта](05-Experience.ru.md) — то хранилище, которое это окружение ведёт.
