ypv 3 недель назад
Родитель
Сommit
6e1d3c5fa0
2 измененных файлов с 80 добавлено и 3 удалено
  1. 8 3
      README.md
  2. 72 0
      template/specification_template.md

+ 8 - 3
README.md

@@ -18,11 +18,16 @@
 Все модели хранятся в строгом порядке. Путь к каждому интерактиву строится по схеме: 
 `/номер_темы/номер_интерактива/` (например: `1.1.100/01/`).
 
-В каждой такой папке находится исходный код PWA-приложения:
+В каждой такой папке находится исходный код PWA-приложения и документация:
 *   `index.html` — интерфейс;
 *   `app.js` — логика (физика, формулы);
 *   `style.css` — оформление;
 *   `manifest.json` — настройки PWA для установки на телефон.
+    - `docs/tz.md` — начальное техническое задание
+    - `docs/issues.md` — нумерация и описание коммитов, промты к LLM
+    - `docs/specification_template.md` — Лист спецификации
+
+
 
 > ⚠️ **Важно:** Gogs отображает только исходный код. Чтобы запустить PWA-модель, переходите по ссылкам в колонке **«Демо»** в файлах со списками тем. Они ведут на витрину проекта: [steelfeet.ru/divodel](https://steelfeet.ru/divodel).
 
@@ -31,8 +36,8 @@
 Если вы готовите новый интерактив, ваша задача — не просто сгенерировать код с помощью ИИ, а **доказать, что он физически корректен**.
 
 1. **Сделайте форк** этого репозитория (или работайте в своей ветке).
-2. **Скопируйте шаблон** из папки `/template/` в папку вашей темы (например, `3.1.400/01/`).
-3. **Заполните Лист спецификации** (лежит в папке `template`). Укажите:
+2. **Скопируйте шаблон** из папки `/template/` в папку вашей темы (например, `3.1.400/01/`). /не обязательно, можете использовать свой стиль/
+3. **Заполните Лист спецификации** ([Пример](template/specification_template.md)). Для каждого проекта лист спецификаций свой. Укажите:
    * какие физические величины моделируются (и в каких единицах);
    * какая формула лежит в основе;
    * как модель должна вести себя на крайних значениях (0, бесконечность, максимум шума и т.д.).

+ 72 - 0
template/specification_template.md

@@ -0,0 +1,72 @@
+# ЛИСТ СПЕЦИФИКАЦИИ И ПРИЁМКИ МОДЕЛИ
+
+**Тема по программе:** [Например: 4.1.400 Защита информации от утечки по акустическим каналам]
+**Название модели:** [Например: Модель разборчивости речи при акустическом зашумлении]
+**Автор:** [Фамилия Имя, группа]
+**Использованный ИИ-инструмент:** [Например: ChatGPT-4o / YandexGPT / Claude 3.5]
+
+---
+
+## 1. Физическая (аналитическая) основа
+*Заполняется ДО генерации кода. Здесь мы фиксируем законы и формулы, которым должна подчиняться модель.*
+
+1.1. **Моделируемые физические величины и их единицы:**
+*   *Уровень речи:* дБ (децибелы)
+*   *Уровень шума:* дБ
+*   *Расстояние:* метры (м)
+*   *Разборчивость:* проценты (%)
+
+1.2. **Базовые формулы и законы:**
+*   Закон обратных квадратов для звука: падение уровня звука на 6 дБ при каждом удвоении расстояния от источника.
+*   Отношение сигнал/шум (SNR) = Уровень речи - Уровень шума.
+*   Формула Шеннона для разборчивости (или эмпирическая кривая артикуляции). *[Студент должен привести конкретную формулу, которую он закладывает в основу]*
+
+1.3. **Параметры по умолчанию:**
+*   Уровень речи в источнике: 60 дБ
+*   Фоновый шум в помещении: 30 дБ
+*   Диапазон изменения расстояния в модели: от 1 м до 10 м.
+
+---
+
+## 2. Граничные условия (Крайние случаи)
+*Модель обязана вести себя предсказуемо и физично на границах диапазонов.*
+
+*   **Расстояние = 0:** Модель не должна выдавать ошибку «деление на ноль» или бесконечность. Уровень сигнала ограничивается максимальным физическим пределом (например, 100 дБ у самого источника).
+*   **Шум = 0:** Разборчивость должна быть 100% (или максимально возможной для данной модели).
+*   **Шум > Уровень речи:** Отношение сигнал/шум отрицательное. Разборчивость должна падать до 0% и не уходить в отрицательные значения.
+*   **Маскирующий генератор включен:** Уровень шума прибавляется к фоновому.
+
+---
+
+## 3. Упрощения модели (Что мы НЕ учитываем)
+*Заполняется студентом. Это показывает честность модели и понимание ее ограничений.*
+*   Мы не учитываем реверберацию (эхо) помещения.
+*   Мы считаем, что источник звука ненаправленный (излучает во все стороны равномерно).
+*   Мы не учитываем частотные характеристики (моделируем только интегральный уровень в дБ).
+
+---
+
+## 4. Журнал верификации и отладки (Борьба с галлюцинациями ИИ)
+*Заполняется ПОСЛЕ генерации кода. Это доказательство того, что студент проверял работу ИИ.*
+
+| № | Что попросили у ИИ | Что сгенерировал ИИ | Ошибка (галлюцинация) | Как исправили |
+|:--|:---|:---|:---|:---|
+| 1 | Сгенерируй шкалу затухания звука от расстояния | Сделал линейную шкалу: чем дальше, тем тише | Звук затухает не линейно, а логарифмически (закон обратных квадратов). | Заставили ИИ переписать формулу расчета дБ через логарифм. |
+| 2 | Добавь ползунок шума | При значении шума 100 дБ разборчивость стала -20% | Разборчивость не может быть отрицательной. | Добавили условие `Math.max(0, razborchivost)` в код. |
+| 3 | ... | ... | ... | ... |
+
+---
+
+## 5. Критерии приёмки (Чек-лист преподавателя)
+*Работа не принимается, если хотя бы один пункт не выполнен.*
+
+- [ ] Код модели физически корректен (соответствует формулам из п.1).
+- [ ] Граничные условия из п.2 работают без ошибок и зависаний.
+- [ ] В интерфейсе есть пометка «Учебная модель. Не калибрована».
+- [ ] В конце есть кнопка «Итоговое тестирование» (5-10 вопросов).
+- [ ] Студент может объяснить на защите, какие ошибки ИИ он нашел и как исправил.
+- [ ] Модель работает офлайн (PWA) и устанавливается на телефон.
+
+---
+**Подпись студента:** _______________ 
+**Оценка:** _______________