# 08_mapping — Мэппинг НПА ↔ инвестиционно-строительный цикл

> Goal 7 (ultragoal pass 2026-05-16).

## Файлы

| Файл | Что |
|---|---|
| `cycle_to_npa.md` | Полный табличный мэппинг: 9 этапов ИСЦ × НПА × орган × документ × цель. ~78 связок canonical-НПА. |
| `diagram.mmd` | Mermaid-схема: этапы цикла ↔ ключевые НПА ↔ регуляторы ↔ deliverables. Рамочное представление. |
| `diagram.svg` / `diagram.png` | Отрендеренные артефакты (1920×1080, transparent, theme=default). Автообновляются CI на push в `*.mmd`. |

## Связь с детальной моделью

Здесь — **рамочный 9-этапный** мэппинг. **Детальная модель из 23 шагов × 109 связей** живёт в:
- `01_Нормативный_навигатор_ИСК/data/core/steps.csv` (23 шага)
- `01_Нормативный_навигатор_ИСК/data/maps/step_act_map.csv` (109 связей шаг↔акт)
- `01_Нормативный_навигатор_ИСК/reports/knowledge_graph/isc_graph.mmd` (полный mermaid-knowledge-graph)
- `01_Нормативный_навигатор_ИСК/app/dashboard/graph.html` (D3 force-directed, 133 nodes / 274 links)

Рамочная схема здесь — для public/исполнительного уровня; детальная — для аналитиков и юристов.

## Рендер диаграммы

P2.6 закрыт (2026-05-16). Mermaid CLI (`@mermaid-js/mermaid-cli` v11.15.0) установлен локально через `npm install` + `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1` (с системным `/usr/sbin/chromium` через `puppeteer-config.json` с `--no-sandbox`).

### Рендеренные локально файлы (2026-05-16)

| Файл (рядом с источником) | SVG | PNG |
|---|---|---|
| `08_mapping/diagram.{svg,png}` | 140 KB | 140 KB |
| `04_Штабы_и_цифровизация_МШХ/decisions_graph.{svg,png}` | 58 KB | 121 KB |
| `01_Нормативный_навигатор_ИСК/reports/knowledge_graph/isc_graph.{svg,png}` | 507 KB | 85 KB |
| `01_Нормативный_навигатор_ИСК/reports/knowledge_graph/object_type_isc_graph.{svg,png}` | 188 KB | 1.6 MB |

Все 4 диаграммы (8 файлов: 4×SVG + 4×PNG) отрендерены успешно, размеры в SVG — векторные, не сжимаются; в PNG используется raster @ 1920×1080. Падений/таймаутов не было.

### CI автоматизация

`.github/workflows/mermaid-render.yml` — рендерит все `*.mmd` при push (за исключением `node_modules`, `_archive`, `90_*`) и автокоммитит результаты в ту же ветку с сообщением `ci: auto-render Mermaid diagrams [skip ci]`. Триггеры: `push` с изменениями `*.mmd` и сам workflow, плюс `workflow_dispatch` (ручной запуск).

Альтернативы локального просмотра (если потребуется ре-рендер вручную):
1. Открыть <https://mermaid.live/> → вставить содержимое `*.mmd`.
2. VS Code: расширение "Mermaid Preview" / "Markdown Preview Mermaid Support".
3. Локально (Arch / chromium системный):
   ```bash
   PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm install -g @mermaid-js/mermaid-cli
   echo '{"executablePath":"/usr/sbin/chromium","args":["--no-sandbox","--disable-setuid-sandbox","--disable-dev-shm-usage","--disable-gpu"]}' > /tmp/puppeteer-config.json
   mmdc -p /tmp/puppeteer-config.json -i diagram.mmd -o diagram.svg -w 1920 -H 1080 -t default -b transparent
   ```

## Логика мэппинга

См. `cycle_to_npa.md` секцию "Зачем такое регулирование (рамка)" — таблица целей регулирования.

## Acceptance (Goal 7)

- ✅ `cycle_to_npa.md` — табличный мэппинг 9 этапов с полями (НПА / уровень / орган / что регулирует / зачем).
- ✅ `diagram.mmd` — Mermaid-схема с регуляторами, ключевыми НПА и deliverables.
- ✅ `diagram.svg` / `diagram.png` — рендеренные артефакты (1920×1080, transparent).
- ✅ Связь с детальной моделью (23 шага × 109 связей) указана.
- ✅ Рендер SVG/PNG — закрыт P2.6 (4 из 4 диаграмм). CI: `.github/workflows/mermaid-render.yml`.
