# Эталоны выдачи роли Системный аналитик SMALUM
<!-- smalum-role-version: 1.11.0 -->

Вынесено из hot path полной роли ([role.md](https://docs.smalum.io/role.md)) — ENH-1624. Для модели при генерации достаточно thin-сборки; этот файл — справочник эталонов.

### 0.2b. Эталоны выдачи (скопируйте структуру, не сигилы)

**Мини-эталон BPMN**

```
//smalum/bpmn Обработка заказа
pool client {
  start message placed
  task review user
  end done
}
pool shop {
  start msgStart
  task register auto
  end shipped
}
client.placed -- shop.msgStart Заявка
msgStart - register - shipped
shop.shipped -- client.done Отгрузка
```

**Мини-эталон DFD** (не `entity` / `process` / `datastore`)

```
//smalum/dfd Отгрузка
Клиент
склад = Склад
(оплата = Оплата)

Клиент-[склад] данные о грузе
Клиент-(оплата) сумма
checkout-[process] = Оформить
Клиент - checkout Заказ
```

**Мини-эталон Struct** (дерево, не DFD и не flowchart)

```
//smalum/struct Дерево решений

root = Решение
a = Вариант A
b = Вариант B
root - a
root - b
```

**Мини-эталон Infra** (оборудование, не DFD и не C4). Выберите подкласс: `flow` — потоки сервисов; `l2` — коммутаторы/VLAN; `l3` — площадки с шиной и подсетями. Имена в примерах — **учебные**; для клиента — только из рассказа (см. Часть I «Именование»).

```
//smalum/infra/flow Конвейер — взаимодействия

HQ {
  APP {
    cluster k8s = Кластер Kubernetes
  }
  DB {
    postgres pg1 = СУБД
    redis rds1 = Кэш
  }
}
cloud wan = Внешняя сеть
fw edge = МСЭ
k8s -- pg1 TCP 5432
k8s -- rds1 TCP 6379
edge - wan
```

Подписи блоков — на языке запроса (§0.10). Новую схему без `SM:`. Подробный синтаксис — части A / B / S / I / C ниже; оверлей — Часть D, только по просьбе про лейаут.

### 0.6. Эталон ответа на «пример BPMN работы продавца ларька мороженого»

Кратко описать процесс → исходник (заголовок **первой** строкой; в Markdown — ограда ` ```sm `) → ссылка на app.smalum.io **только** в чате без MD-документа (§0.4) → допущения. Пример исходника:

```
//smalum/bpmn Ларёк мороженого

pool kiosk {
  start customerArrived
  task greet user = Поприветствовать
  task takeOrder user = Принять заказ
  xor payment {
    - payCash наличные
    - payCard карта
  }
  task payCash user = Принять наличные
  task payCard user = Провести карту
  xor afterPay
  task scoop user = Наложить мороженое
  task handOver user = Отдать клиенту
  end sold
}

customerArrived - greet - takeOrder - payment
payCash - afterPay
payCard - afterPay
afterPay - scoop - handOver - sold
```

Здесь XOR без join на `payment` сходится в `xor afterPay` явными потоками — это канон. Для AND/OR при общем продолжении предпочитайте явный join; сахар `} join id` допустим, `} -> next` — нет.

В этом эталоне `start customerArrived` / `end sold` — **намеренный None**: в рассказе нет сообщения, таймера и broadcast-сигнала (клиент просто подошёл). Если бы заказ пришёл письмом / API — писали бы `start message …`; если по расписанию — `start timer …`; если общую тревогу — `start signal …`.

**Один исходник = одна диаграмма = один заголовок.** Второй `//smalum/…` в том же тексте не начинает вторую схему. Декомпозиция или другая нотация — отдельный блок в ответе или отдельный файл.
