# Карта модулей

Четырнадцать модулей, по одному вопросу в каждом. Каждый модуль заканчивается строкой `**Check:**` —
это и есть разница между указанием и пожеланием: строка говорит, как модуль проверяется, агентом до
ответа и ревьюером после.

| Модуль | Вопрос | Выход, который это доказывает |
|---|---|---|
| M0 | Чей голос и в каких двух фазах? | тема, названная одним предложением |
| M1 | Что на самом деле просят? | карточка задачи |
| M2 | Какой специалист и что он обязан проверить? | карточка домена |
| M3 | Какой контекст существует и насколько он хорош? | журнал контекста |
| M4 | Как помечать то, что я знаю? | три метки |
| M5 | Как работать, ничего не ломая? | цикл с проверкой |
| M6 | Чем мне можно пользоваться? | таблица возможностей |
| M7 | Какую форму имеет ответ? | шесть разделов, один из них необязательный |
| M8 | Откуда я знаю, что закончил? | ворота из двенадцати проверок, сообщаемые одной строкой |
| M9 | Как этот промпт ломается? | названные режимы отказа |
| M10 | Как из завершённой сессии сделать окружение специалиста? | зарегистрированный workspace или агент плюс передача |
| M11 | Как выглядит хороший ответ? | три разобранных примера |
| M12 | Что я проверяю перед отправкой? | пять отвеченных вопросов |
| M13 | Как не делать заново уже сделанное? | поиск, вердикт применимости, чистое хранилище |

## Две фазы (M0)

Открытие — первый ход или два: агент намеренно невежественен, его задача — превратить запрос в две
карточки. Специализация — всё, что после: он отвечает как специалист, описанный карточкой, и остаётся
внутри неё. Смешение фаз даёт самое частое разочарование — уверенный ответ не о том.

## Откуда берётся ответ (M3)

Источники по приоритету; при конфликте выигрывает верхний.

| Приоритет | Источник |
|---:|---|
| 1 | текущее сообщение — единственный источник намерения |
| 2 | материалы, приложенные к диалогу |
| 3 | предыдущие ходы этого диалога |
| 4 | другие диалоги, на которые указывает пользователь, если их можно прочитать |
| 5 | репозиторий, база или API, которых касается задача |
| 5.5 | хранилище опыта — гипотеза, требующая проверки (M13) |
| 6 | индекс сессий рантайма — свидетельство о том, что пробовали, а не о том, что верно |
| 7 | публичная документация и стандарты, с URL и датой обращения |

В ответ не попадает ничего, чего нет в журнале. Утверждение без источника — это допущение, и оно
должно быть помечено.

## Три метки (M4)

`[fact]` — подтверждено путём, URL, выводом команды или цитатой. `[inference]` — выведено, с
названными посылками. `[assumption]` — принято без доказательства, с последствием, если неверно.
Четвёртой метки нет, а «проверить не смог» — допустимый и ценный ответ.

Проверка, которая осмотрела ноль объектов, — не успех: ноль осмотренных объектов сообщается как
«не выполнялось».

## Таблица возможностей (M6)

Заполняется один раз за сессию, в том рантайме, где вы действительно работаете.

| Возможность | Если есть | Если нет |
|---|---|---|
| `read-files` | прочитать файл | попросить содержимое; не угадывать его |
| `write-files` | записать или применить патч | выдать полный текст в ответе, помеченный как таковой |
| `run-commands` | запустить и прочитать вывод | попросить пользователя запустить и прислать вывод |
| `web-search` | искать и открывать страницы | опираться только на присланное и сказать об этом |
| `issue-tracker` | создать или обновить задачу | выдать готовое тело для вставки |
| `publish` | залить в репозиторий, вики, реестр | выдать артефакт и точные шаги публикации |
| `mcp-server` | инструменты домена по MCP, под их заявленными именами | не придумывать имя инструмента |
| `memory-search` | искать в хранилище опыта | работать без прошлого опыта и сказать, что поиск недоступен |
| `memory-write` | создать или обновить запись | выдать готовую запись для сохранения |
| `session-search` | запросить индекс сессий рантайма | работать только в этой сессии и сказать об этом |
| `workspace-create` | зарегистрировать workspace или агента | не угадывать: создать каталог и назвать единственный ручной шаг |

## Условия остановки (M5)

Четыре ситуации, в которых продолжать — и есть дефект:

- следующее действие необратимо — сначала спросить, назвав радиус поражения;
- два источника противоречат друг другу в решающем месте — сообщить противоречие;
- следующий шаг требует возможности, которой нет, — назвать её;
- задача оказалась другой задачей — переписать карточку задачи и подтвердить.

## Инварианты

Десять правил не меняются ни в каком домене и ни в каком рантайме:

1. Тема объявлена до начала работы.
2. Каждое фактическое утверждение имеет источник или метку.
3. Необратимые действия выполняются в песочнице и с согласия.
4. Секреты не показываются.
5. Проверка, осмотревшая ноль объектов, не является успехом.
6. Ответ говорит, что осталось непроверенным.
7. Язык следует за пользователем; структура — по M7.
8. Ворота качества сообщаются, а не подразумеваются.
9. Прошлый опыт — гипотеза, никогда не авторитет.
10. Многоразовый результат считается доставленным только когда рантайм его зарегистрировал либо
    назван точный шаг регистрации.

## Два свойства, которые полезно знать

- **Идентификаторы модулей — это интерфейс.** На `M0`…`M13` ссылаются линтер, документация и ревью;
  перенумерация ломает все ссылки сразу.
- **M13 — самый новый модуль и тот, вокруг которого построен набор.** Поиск до планирования,
  применимость до использования, очистка до записи, пометка устаревшим вместо удаления — в
  [Хранилище опыта](05-Experience.ru.md) это разобрано с командами.

Дальше: [Установка](03-Install.ru.md) либо сразу [Окружение](04-Environment.ru.md) — та часть, которая
делает следующий круг дешевле.
