# ADR-0003: PWA без сборщика и без зависимостей

**Статус:** ✅ Принято (2026-10) · **Обновлено:** 2026-10-11

## Контекст

Дом обещает: скачал — открыл — поёшь; работает офлайн; один файл = вся платформа (треки) и лёгкий хаб для дома. Мир предлагает сборщики (Vite/webpack) и фреймворки — но каждый билд-степ увеличивает поверхность отказа и отрывает исходник от изделия.

## Решение

Ноль сборки: исходники = изделие. Сервис-воркер `sw15.js` руками держит пре-кэш ядра с поколением `s15-orkestrator-vNN`; манифест PWA + иконки — свои; тяжёлые мозги (Qwen2.5-0.5B) — чужой CDN на репо `singulyar-llm` с защищённым кэшем (`singular-llm-parts-v1`), а не в бандле. Локальные тесты — `node --test` по `ИНСТРУМЕНТЫ/`, без CI-зависимостей.

## Последствия

- ✅ Исходник можно читать как книгу — он и есть сайт.
- ✅ Офлайн с первого визита; кэш-поколение гарантирует свежесть (шрам «правка не работает» закрыт каноном такта).
- ⚠️ Дисциплина пре-кэша — на человеке/агенте, а не на сборщике: чек-лист такта обязателен.
- ⚠️ Обновление зависимостей (wllama, transformers.js) — отдельная строка такта с тестом.
- ⚠️ Файлы >10 МБ (треки) исключены из пре-кэша — кэшируются лениво по навигации.
