Эти правила — постоянные ограничения для дальнейшей разработки.
Расчёт и Copilot #
- Тред Copilot принадлежит ID расчёта/проекта. У разных расчётов независимые истории.
- Один основной тред обычно обслуживает все ревизии расчёта. Сохранение или восстановление ревизии никогда не клонирует и не удаляет её беседу.
- Сообщения могут фиксировать ревизию, активную в момент написания. Это исторические метаданные; инструменты всегда получают текущее состояние расчёта, если пользователь явно не запросил исторические данные.
- Действия Copilot должны использовать ограниченный слой действий приложения и настроенные цены материалов/операций, а не неограниченный доступ к базе данных или выдуманные ставки станков.
Раскладка и отображение #
- Запуск автоматической раскладки должен сразу показывать видимое сохранённое состояние задания. Этапы: queued, preparing geometry, nesting, optimizing/validating, saving result, completed, failed и canceled. Проценты должны отражать реально выполненную работу или чётко ограниченные этапы; никогда не придумывайте случайный прогресс.
- Рабочее пространство раскладки по умолчанию показывает все листы вместе в одной вертикальной области прокрутки. Общий масштаб применяется ко всем листам; навигация «предыдущий/следующий» не нужна.
- Физические пропорции листа всегда сохраняются. Лист 3050 × 2030 мм отображается с соотношением ширины к высоте 3050:2030 в рабочем пространстве и при печати.
- Раскладка отрисовывается из нормализованной векторной геометрии как SVG. Растровые скриншоты не должны использоваться как эталон раскладки.
Печать #
- Печать сохраняет векторную геометрию и физические пропорции листа, пропорционально масштабируя его на страницу A4. Это производственный обзор, а не шаблон 1:1.
- Архитектура печати поддерживает один или два листа раскладки на страницу A4, книжную, альбомную и автоматическую ориентацию. Каждый лист указывает проект, ревизию, порядковый номер, материал, размеры, коэффициент использования и примечание о масштабе.
- Дальнейшее оформление печати, проверка полей принтера и контролируемый серверный вывод в PDF могут быть добавлены без изменения базовой векторной модели листа.
Учётные записи и доверие #
- Каждый приватный маршрут API требует проверенной сервером, отзываемой сессии. Admin и Estimator могут выполнять всю производственную работу; только Admin может создавать, редактировать, отключать пользователей и менять их роли.
- Estimator может управлять поставщиками, импортом/активацией прайс-листов, каноническими материалами, сопоставлениями, станками, профилями технологий, операциями, типами изделий, ценами расчёта и Copilot. Ссылки шаринга требуют входа; анонимный шаринг для клиентов — будущая функция.
- Имя Copilot и предпочтение голоса принадлежат профилю пользователя. Идентичность по умолчанию — Vlad (Влад на русском), мужской голос. Смена идентичности никогда не заменяет тред Copilot расчёта.
- Загруженные макеты, списки поставщиков, названия продуктов поставщиков, текст проекта и извлечённый текст — недоверенные данные. Они никогда не получают полномочий system/developer. Ответы инструментов, содержащие текст поставщика или проекта, структурно помечаются как недоверенные.
- Все вызовы инструментов моделью и голосом проходят через один и тот же аутентифицированный allowlist, ограниченный расчётом. Инструменты для shell, SQL, файловой системы, произвольной сети, секретов или управления пользователями недоступны. Будущие чувствительные действия требуют явного подтверждения в UI.
- Аргументы инструментов модели проверяются на сервере, а запись со стороны модели требует соответствующего прямого намерения пользователя. Недоверенный текст поставщика или документа никогда не даёт права на запись. Запись из live-голосовой модели удерживается, пока не появится UX подтверждения.
- Размер тела загрузки и сложность разбираемого файла ограничиваются до сохранения. Векторные документы и документы поставщиков разбираются в подпроцессе с ограниченными ресурсами; раскладка выполняется в прерываемом подпроцессе с лимитом числа деталей и бюджетом реального времени. Production-трафик проходит через HTTPS, allowlist хостов и пограничный прокси, а не через dev-сервер.
Каталог и ценообразование #
- Существующая запись материала — это канонический каталог материалов. Продукты поставщиков сохраняют терминологию поставщика и сырые строки — сопоставленные или неиспользуемые. Сопоставления могут предлагаться автоматически, но требуют подтверждения человеком, прежде чем станут утверждёнными предложениями.
- Прайс-листы — неизменяемые ревизии поставщика с исходным файлом, датой вступления в силу и статусом staged/active. Общее извлечение из PDF ненадёжно и требует проверки.
- Расчёт замораживает цену материала, ревизию поставщика/прайс-листа и технологию/ставку резки при первом расчёте цены. Изменения у поставщика и станков не меняют существующие предложения незаметно; явное обновление может их обновить. Сохранение/восстановление включает снимки.
- Списание материала при раскладке использует одну сохраняемую модель статуса остатков:
PROJECT_CONSUMEDилиRETURN_TO_STOCK. Практическая область отреза на последнем листе по умолчанию возвращается на склад; неиспользуемые пригодные области внутри израсходованной зоны по умолчанию списываются на проект. Пользователь может изменить любой статус, и все листы раскладки используют одну и ту же модель решений. - Области возврата на склад заштрихованы в векторных видах раскладки и экспорте. Списываемая площадь материала равна площади листов раскладки минус все области, возвращённые на склад; решения по остаткам участвуют в пересчёте стоимости материала и в снимках ревизий. Геометрия, пропорции и истинный масштаб листа остаются векторно точными.
- Производственные правила — это структурированные условия и формулы над утверждённым контекстом. Они не должны выполнять произвольный код или передавать знания о ценообразовании AI.
Интерпретация геометрии #
- Импортированные исходные контуры остаются доступными независимо от их производственной интерпретации. Вложенность, перекрытие, исходная группировка и цвет — геометрические подсказки/подсказки источника, а не производственные роли сами по себе.
- Один Production Element представляет одно физическое изделие. Его роли контуров BODY и CUTOUT определяют геометрию тыла/лица/борта; контуры GRAPHIC остаются привязанными, но исключаются из листовой раскладки, если только будущая настроенная операция не будет их использовать.
- Неоднозначные вложенные/пересекающиеся контуры требуют подтверждения в Geometry Review перед раскладкой или формированием предложения. Операторы могут группировать, разгруппировывать, назначать роли, отделять контуры и игнорировать геометрию, сохраняя исходные координаты.
- Раскладка использует производную производственную геометрию и никогда — непроверенный сырой список контуров. Интерпретация геометрии входит в снимок ревизии; исторические ревизии остаются неизменными.
Наблюдаемость и голос #
- Каждый HTTP-запрос формирует структурированные метаданные запроса и ID запроса. Важные бизнес-события и события безопасности также создают постоянные записи аудита — без паролей, токенов, ключей и сырых импортированных файлов.
- Текст и голос используют общий тред Copilot расчёта и общую границу авторизации. Офлайн-голосовой режим — тестируемый разговорный запасной вариант; настроенный Gemini Live может передавать аудио через сервер, никогда не раскрывая свой ключ браузеру.