Skip to content

RU codex docs project checks

rkfsociety edited this page Oct 21, 2026 · 1 revision

Автономная проверка проекта

check_project объединяет существующие проверки CADYX для точной сохранённой ревизии. Документ не меняется, блокировка записи не запрашивается. Инструмент предназначен внешнему агенту; это не автономный контроллер CAD.

Вызовите core.check_project(project_id, expected_revision, ...), маршрут POST /api/v1/agent/projects/{id}/validations/project-check или MCP-инструмент cadyx_check_project. Обязателен expected_revision. Необязательные параметры: specification (существующая спецификация модели v1), strict, export_body_id, require_assembly, require_drawings, max_bodies (1–128), time_budget_seconds (больше 0 и не больше 120), deterministic_rebuild (по умолчанию false) и persist (по умолчанию false). Core также принимает функцию cancelled.

Отмена и дедлайн срабатывают между этапами и проверками спецификации. Эта операция не может прервать уже выполняющийся вызов нативного геометрического ядра.

Ответ JSON версии 1 содержит project_id, revision, status, passed, strict, counts, limits и упорядоченный массив stages. Каждый этап содержит id, status (pass, fail или untested), required, method и evidence.

Этапы:

  • document_graph: существующая проверка схемы документа, объектов и ссылок.
  • geometry: существующая проверка сохранённой текущей геометрии в Core/ядре.
  • specification: существующая спецификация модели с проверками размеров, зазоров, сохранения геометрии и толщины, каждая с защитой ревизии. Этап обязателен только при переданной спецификации.
  • export_eligibility: наличие исходной B-rep, единственное тело, положительный объём, метрики ядра и поддержка экспортёра. Это только предварительная проверка: она не подтверждает корректную выдачу STEP/STL и не выполняет обратный импорт. Если тел несколько, обязательно задайте export_body_id.
  • deterministic_rebuild (необязательный): изолированно перестраивает сохранённые поддерживаемые параметрические корневые и производные элементы, затем повторяет перестроение на полученной копии. Сверяются SHA-256 канонических параметров проекта, привязок и графа сущностей; хеши дескрипторов геометрии; корректность OCCT B-rep; объёмы, габаритные параллелепипеды и топология сохранённого, холодного и повторного тёплого результатов. Допуск численных метрик: абсолютный 1e-8 единиц модели и относительный 1e-9. Изменение графа или измеряемых метрик даёт fail. Неизвестные операции элементов, бюджет/отмена либо изменённые хеши дескрипторов при совпадающих грубых метриках явно дают untested: совпадение объёма и границ не доказывает идентичность формы. Этап обязателен только при явном запросе. «Холодная» проверка означает отдельно загруженную копию документа в текущем процессе хоста, не новый процесс ОС или новую DLL OCCT. Проверяется только сохранённая ревизия, не произвольно изменённые входы между ревизиями. Выдавливания произвольных плоскостей перестраиваются той же операцией Command System, что и при редактировании параметров, с сохранением профиля, начала и нормали плоскости, локальной оси X и глубины. Бюджет нативной операции проверяется на границах этапов; прервать её нельзя.
  • assembly и drawings: не поддерживаются в составном конвейере проверки проекта и имеют статус untested; требуются только при явном запросе. Есть отдельные проверки массы сборки с привязкой к ревизии и посадки по дискретным положениям. Они не подменяют автоматически этап assembly в общей проверке. Для недоступных составных backend нельзя выдумывать доказательства.

Только обязательные этапы определяют общий status: сначала приоритет у fail, затем untested, иначе pass. В режиме strict также ставится passed=false, если обязательный этап имеет статус untested; фактический статус этапа остаётся untested.

Сохранение необязательной записи в боковую базу через persist=true не меняет ревизию CAD-документа. Запись проверки проекта содержит общий SHA-256 сохранённых геометрий тел в стабильном порядке по ID тел. Конкурирующее сохранение вызывает REVISION_CONFLICT.

Запуск в CI

python -m cadyx.check_project --projects-dir projects --project-id PROJECT_UUID --expected-revision 12 --strict --specification requirements.json --export-body-id body:UUID --deterministic-rebuild > report.json

Код завершения 0 означает, что проверка принята. Код 1 — измеренный отказ или обязательный untested в строгом режиме. Код 2 — некорректный ввод, отсутствующий проект или несовпадение ревизии. CI может запустить команду напрямую и сохранить JSON-отчёт. Проверка ядра требует настроенной нативной среды Windows OCCT. CLI не меняет пользовательские файлы.

Clone this wiki locally