Данные, сохранение и экспорт

Сохранение создаёт не один взаимозаменяемый JSON, а проектный package с каноническим документом, производным agent-context и связанными artifacts. Открывать для редактирования следует только файл с ролью canonical_project.

Что появляется после сохранения

ПутьВладелец и назначениеКогда создаётся
<name>.jsonSelector, json_role=canonical_project. Единственный редактируемый источник истины.При каждом успешном сохранении.
<name>_artifacts/Изображения источника, features, CV outputs/manifests и папки tree modules, на которые ссылается проект.Публикуется атомарно через staging вместе с canonical JSON.
<name>.for_ai_agent.jsonПроекция json_role=for_ai_agent для Screph Code, IDE/agent handoff и adapters. Это не второй проект.Автоматически после canonical save; ошибка записи делает весь save flow неуспешным.
<name>.timeline-state.jsonИсточники, clips и позиция Capture timeline.Только если у проекта есть timeline state; пустой stale sidecar удаляется.
<name>.frame-bound-image-series-index.jsonПривязки image-series captures к кадрам и областям.Только при наличии таких привязок.
<name>.temporal-markup.jsonSelector-owned revisioned tracks, observations и до 100 состояний локальной history/redo. Отдельный sidecar с ролью selector_temporal_markup, не часть canonical schema или _artifacts.При подтверждённом apply/edit temporal track в уже сохранённом или открытом проекте.
.screph_ai_assistant/Project-local mirror сообщений, timeline/actions и session references Assistant. Не является частью canonical schema и не нужен для открытия проекта.Когда включено mirroring и Assistant записывает project context; выключение опции не удаляет существующую папку.

Video CV: runtime, markup и export — разные данные

ГраницаРасположение/форматНазначение
Temporal run storeScrephData/screen_selector/cv/results/temporalSnapshot, config, provenance, coverage, issues и chunked observations. Interrupted runs восстанавливаются как partial/failed; hide active run не удаляет данные, auto-prune не найден.
Applied temporal markup<project>.temporal-markup.jsonПодтверждённые/отредактированные tracks с revision guard и undo/redo. Требует project path; canonical writer не включает файл автоматически.
Neutral run exportjson_role=screph_temporal_cv_neutral_exportПользовательский snapshot одного активного run, включая observations и optional codegen IR. Не executable и не project package.
Annotated previewMJPG AVIReprojected track/motion boxes по текущему timeline mapping и выбранным start/end. Не универсальный dataset/video exporter.

Video CV workflow и track apply →

Что находится в canonical project

  • project_info, coordinate contract и canvas object/layer state;
  • context, Capture context, source-image references и timeline selection;
  • gui_elements, image features/matches, geometry, annotations, typed edges, regions и markup groups;
  • выбранный save profile, registry entries tree modules и ссылка на CV result manifest;
  • write reports, feature diagnostics, artifact-integrity report и save summary.

JSON Schema Draft 2020-12 проверяет структуру при загрузке. Затем artifact validator отдельно проверяет missing files, hashes, абсолютные/выходящие за project root пути, coordinates и consistency. Успешная schema validation сама по себе не доказывает наличие всех файлов.

Как CV result входит в project package

CV runtime, image series и canonical markup — три разные границы. Live preview остаётся в рабочем state. В основной панели ручной Применить обычно сохраняет verified bundle и прикрепляет/заменяет cv_result выбранного элемента; Добавить маску в результаты добавляет отдельную cv_mask entry. Эти image-series mutations входят в undo/redo и помечают проект изменённым, но не создают новую canonical geometry или semantics.

  • Сохранить создаёт именованный runtime archive под ScrephData/screen_selector/cv/results; это technical/debug history вне project package.
  • При canonical save importer берёт только прикреплённые CV image-series entries, копирует source/recipe/config/metrics/outputs в staging <name>_artifacts и строит project-local result_manifest.json.
  • В main JSON хранится ссылка cv_result_manifest_path, а image-series entry остаётся lightweight projection с run/output identity. Manifest публикуется после обязательного artifact write/readback.
  • Добавить как элементы или confirmed promotion apply отдельно меняет canonical markup. General/GUI promotion валидирует accepted decision и stale context, строит apply preview/plan и выполняется транзакционно с rollback attempt.

Действия CV-панели и их side effects →

Что действительно меняет save profile

Project environment выбирает downstream strategy, save scope — каталог назначения, а code-tool switch — best-effort launch/context handoff после записи. Feature output profile имеет более узкую область: Full/Compact/Automation/LLM/Debug, coordinate space, color formats, assets и summary применяются к preview/явной feature projection, но не переписывают canonical representation.

  • Canonical JSON всегда сохраняет полный feature payload, summary, связанные assets и geometry в screenshot_raw_px; выбранный output profile записывается как metadata.
  • Основной save flow не пишет отдельный feature-projection файл. InfoPanel может построить эту проекцию для preview, а code/external consumer должен запросить её явно.
  • «Будет создано» показывает primary JSON и выбранные target script/guide, но не является полным package manifest и не перечисляет automatic agent export, artifacts или условные sidecars.

Инспекция изображения: project state и временные данные

Image Inspection разделяет сохраняемое состояние canvas и временные измерения. Не считайте наличие слоя measurements доказательством, что сами линии входят в project package.

  • canvas_layer_state в canonical project сохраняет шесть layer IDs, видимость, прозрачность и порядок. Lock туда не входит и при restore сбрасывается.
  • Layout A/B/C/D, assignments, display modes, linked panes, выбранная evidence-вкладка и navigator сохраняются отдельно как локальное состояние Selector, а не как переносимая разметка проекта.
  • Линии профиля и их local Undo/Redo существуют только в runtime-сессии и очищаются при смене source. Копировать профиль как TSV пишет clipboard, а Экспортировать профиль в CSV создаёт отдельный файл с distance, x/y, RGB, luminance, sampled layer и source reference.

Производный for_ai_agent export

<name>.for_ai_agent.json создаётся автоматически из уже записанного canonical package. Он содержит hash исходного project JSON, normalized elements/relations, features и issues, CV summary, asset references, tree-module registry и authoring context. Тяжёлые bodies обычно остаются файлами в project package и представлены ссылками.

  • Основной save flow использует этот sidecar, когда он доступен; canonical JSON остаётся fallback-контекстом. Project Manager save и некоторые legacy save entrypoints сейчас передают canonical path напрямую.
  • Project Manager классифицирует sidecar как agent export и не открывает его в Selector как проект.
  • Assistant action project.export_for_automation требует confirmation и явный output path, но сейчас также пишет роль for_ai_agent с профилем automation_runtime_context, а не отдельный automation_export.

Tree module — компактный срез, а не подпроект

В дереве элементов откройте Модуль → Создать модуль из поддерева.... Screph сохраняет <name>_artifacts/modules/<slug>/module.json, Python helper-класс и README, а в canonical project — только registry entry и freshness/hash сведения.

  • refs_only оставляет ссылки на project assets; self_contained копирует используемые файлы в папку модуля и записывает SHA-256.
  • Модуль включает внутренние relations и отдельные boundary refs к объектам вне выбранной ветки.
  • После изменения ветки badge может показать stale state; используйте Обновить модуль или Обновить устаревшие модули.

Что получает Automation Runtime

Текущий Python runtime загружает canonical project и читает gui_elements; for_ai_agent не является его прямым input contract. Save target режима GUI Automation может дополнительно подготовить:

TargetМатериализуемый результатГраница
Screph Automatemain.py + guideКнопка Открыть результат открывает Automation Manager; нужен input backend.
PyAutoGUImain.py + guideНужен доступный script.runtime.
Только проект<name>.json + packageНикакой script не исполняется автоматически.

Canonical/agent package записывается до automation coordinate validation и target preparation. Поэтому failure на этих стадиях не откатывает уже созданные project files и может оставить частично подготовленный guide/script; current project path и clean state при этом не обновляются. После исправления причины повторите сохранение.

Screph CV не материализует особый CV workspace artifact: он использует тот же basic canonical writer, что и «только проект». Разница — только в явном действии Открыть результат, которое переводит в существующую внутреннюю CV-вкладку вместо открытия project directory.

Загрузка проекта, координаты и input backends →

Схема на диске не всегда означает пользовательский export

Формальные схемы существуют для canonical project, for_ai_agent, tree module, CV result manifest, feature, automation_export и llm_export. Текущие materialized user paths прямо создают canonical/agent/tree outputs и CV/feature data; automation_export и llm_export пока являются contract surfaces для adapters/tests и не имеют отдельного пользовательского writer в основном save flow.

Кроме formal schemas, Capture, timeline, diagnostics и Action CV используют versioned runtime JSON roles без отдельного файла JSON Schema для каждого sidecar. Проверяйте json_role и обе формы version, а не только расширение .json.

Project Manager, перенос и восстановление

Ctrl+O открывает Project Manager с вкладками Проекты, Автосейвы и Проблемные. Он различает canonical project, agent export, tree module, неизвестный и повреждённый JSON.

  • Duplicate/rename/restore работают с папкой проекта и обновляют имя primary JSON, timeline state и frame-bound index.
  • После rename или duplicate сохраните проект ещё раз перед agent/code handoff: это пересоберёт for_ai_agent с текущим basename и SHA.
  • GraphML, interactive HTML и project-graph JSON из Manager — визуализации карты проектов/модулей, а не canonical project и не automation script. GraphML требует networkx.
  • Agent export показывается как проблемная/производная запись, но при существующей ссылке Открыть ведёт к связанному canonical project. Tree module и произвольный JSON не становятся проектом.
  • Manager считает canonical/autosave открываемым только при ненулевом domain count; screenshot-only autosave имеет отдельный startup recovery path.

Manager не удаляет project directory. Убрать из истории и Очистить пропавшие меняют только ScrephData/local_state/selector_project_history.json. Tags/notes находятся в отдельном path-keyed selector_project_metadata.json, не входят в package и не мигрируют при duplicate/rename или ручном переносе.

Предварительные diagnostics Manager покрывают JSON decoding/role, canonical schema, kind-specific feature schema, missing path и empty domain. Полный свежий artifact scan перед открытием Manager не выполняет; после загрузки InfoPanel объединяет текущий domain load report и сохранённые save diagnostics.

Crash reports, autosave и diagnostics →

Безопасный порядок handoff

  1. Проверьте разметку и явно примените нужные CV candidates.
  2. Сохраните canonical project и убедитесь, что save diagnostics не показывают failure.
  3. Выберите consumer: runtime target, Screph Code/IDE, tree module или собственный adapter.
  4. Передавайте только package files и assets, которые нужны этому consumer.
  5. Перед исполнением automation проверьте package diagnostics, затем явно обработайте (ok, errors) от validate_project; load_project не делает это автоматически.
  6. Проверьте target window, coordinate projection, выбранный input monitor/backend и отдельную postcondition после каждого input action.

Приватность

Локальное сохранение не загружает package автоматически. Но canonical/agent JSON может содержать annotations, OCR text, window/capture context и ссылки на sensitive images. Перед cloud LLM, speech, support upload или передачей папки другому человеку проверьте не только JSON, но и _artifacts, timeline sources, guides и generated scripts.

Project-local Assistant mirror может содержать prompts, ответы, paths и action metadata; global 180-day cleanup его не удаляет. Полная карта storage и cleanup приведена в справке по локальным данным.