# Контроль операций: журнал, сверка и восстановление Дополнительная практика к уроку 7 курса «ИИ в процессах». Комплект подготовлен; выполнение, восстановление и финальная демонстрация ещё не подтверждены. Данные синтетические. Работаем локально в новой учебной папке: без внешних API, CRM, отправок, оплат, календаря и рабочего таск-менеджера. После выполнения вы сохраните отчёт по всему журналу, план восстановления, передачу процесса, два протокола по новым наблюдениям и доказательства реального восстановления отдельного учебного файла. Итоговая часть требует минимум пяти фактически выполненных практик и нового цикла «вход → результат → сверка → журнал». Подготовка задания не закрывает эти требования. Практика добровольная; занятия проходят в Zoom, поддержку ведём в чате. Обязательную проверяемую домашнюю работу этот комплект не вводит. ## 1. Первая попытка: весь журнал Распакуйте `operations-07-student-base.zip` в новую папку, например `operations-07-study`. В ней ровно пять файлов: - `README.md`; - `OUTPUT-CONTRACT.json`; - `input/journal.json`; - `input/previous/p01-passport.md`; - `input/previous/p04-crm-review.csv`. Последние два — точные сохранённые результаты предыдущих практик после разбора. Это разрешённые входы, а не готовые ответы урока 7. В initial-папке нет текущих результатов, эталона, проверяющего скрипта или новых наблюдений. Контрольный момент и первичные квитанции берите из журнала, а не из даты компьютера. Во всех следующих промптах работайте только в этой папке и с файлами, которые добавлены на соответствующем шаге. Не используйте Git, соседние проекты, сеть и файлы с ответами. Такая инструкция задаёт границы работы; сама по себе она не доказывает техническую изоляцию. ~~~text Работаем только с локальным синтетическим уроком 07 в этой папке. Прочитай README.md, OUTPUT-CONTRACT.json и все три первичных input-файла. Не читай файлы вне проекта, не ищи эталон, не используй Git, сеть и внешние подключения. По журналу самостоятельно создай output/base/operations-report.md, output/base/recovery-plan.md и output/base/handover.md. Разбери каждый event_id: operation/request, технический статус, квитанция/readback как основание, чего не хватает и следующий шаг. Выведи полные счётчики и число уникальных обращений после подтверждённого дубля. Не называй delivered продажей. В плане отдельно обработай timeout, HTTP200 без id, явный отказ, 429 чтения, дубль и untrusted instruction. При неизвестном исходе сначала сверяй идентификаторы, объект и историю, без слепого replay. План повтора чтения должен быть ограниченным и учитывать исходный retry_after; реальную паузу и API-вызов здесь не выполняй. В handover честно покажи owner/contact, версии правил или их отсутствие, входы, выходы, журнал, остановку и порядок ещё не выполненного restore. В паспорте P01 роль ответственного лишь предложена: не назначай человека и не придумывай контакт. Вымышленные контакты компании — не оператор. Не создавай backup/restore и ничего не повреждай: это отдельные этапы. Input и прежние результаты не меняй. Перечитай три созданных файла, сообщи относительные пути и неизвестное. Не объявляй проведённое занятие, прохождение ученика, интеграцию или демонстрацию пяти практик. ~~~ Сначала прочитайте сохранённые файлы и сверьте каждое событие с исходным журналом. Основание статуса должно быть конкретным: идентификатор, квитанция и readback либо явный пробел. Сохраните первую попытку, замечания и исправления в отдельных папках; не заменяйте историю исправленной версией. Если нужен повтор после замечаний, сначала сформулируйте точное расхождение с источником. ## 2. Два новых наблюдения Только после сохранения и сверки первой попытки распакуйте `operations-07-observations-r2.zip` в ту же учебную папку. Он добавит ровно один файл: `input/observations-r2.json`. Это новые специально написанные синтетические наблюдения для двух случаев исходного урока. Они не являются ответами модели или чтением реальной CRM. У каждого наблюдения есть версия, контекст поиска, признаки полноты и найденные объекты/история. Сравните их с исходным событием. Исторический журнал и его первоначальные счётчики не переписывайте. ~~~text После сохранения первого прохода поступил новый учебный ввод: input/observations-r2.json. Прочитай его, исходный journal и три сохранённых base-файла. Не меняй journal/base; не используй Git, сеть, эталон и файлы вне проекта. Отдельно разыграй два случая и сохрани output/scenarios/E03-recovery-protocol.md и output/scenarios/E05-recovery-protocol.md. Для каждого укажи исходный operation/request, версию и scope нового чтения, полноту сведений, совпадения объекта/истории или их отсутствие, что подтверждается, новый технический вывод, следующий шаг и требуется ли повторная запись. Решение выведи из полноты сведений, а не только пустого/непустого списка. Неполный пустой readback не доказывает отсутствие и не разрешает replay. Совпавший существующий объект не надо создавать повторно. Неизвестный ответственный/contact остаётся открытым вопросом, а не отправленным сообщением. Внешние вызовы, повторы записи, ожидания API и восстановление файла пока не выполняй. Перечитай два протокола и объясни различие подтверждённого результата и неизвестного исхода. ~~~ Сохранённый протокол показывает файловое решение по учебным входам. Он не подтверждает живое действие или отсутствие действий во внешней системе. ## 3. Подготовьте отдельную копию для восстановления Этот этап работает с предыдущим учебным `input/previous/p04-crm-review.csv`. Исходник неизменяем. Восстановление файлов — отдельная задача; его успех не разрешает повторять uncertain-операции из журнала. Три следующих промпта выполняйте **по одному**, после проверки предыдущего этапа. На каждом шаге сначала перечитайте фактическое состояние. Если путь уже существует, исход изменился, встретилась символическая ссылка, путь вышел за текущий проект или прежний исход неизвестен — остановитесь, ничего не перезаписывайте вслепую. Перед подготовкой сохраните хеши всех входов и созданных результатов. Дальнейшие сверки должны подтверждать их неизменность. ~~~text Теперь разрешена только подготовка локального восстановления. Источник input/previous/p04-crm-review.csv неизменяем. Проверь текущий project root, границы всех путей и отсутствие symlink. Не используй Git, старые проекты, внешние подключения и файлы вне папки. Только если scratch/recovery-exercise и целевые файлы отсутствуют, создай NEW scratch/recovery-exercise/working/crm-review.csv и scratch/recovery-exercise/backup/crm-review.csv как побайтные копии источника. При существующем пути или отличии исходника от ранее проверенной версии остановись без перезаписи. Реально прочитай источник и обе копии локальными инструментами. Вычисли bytes/SHA256, CSV delimiter=';', header, число строк данных, упорядоченные id, сумму только known amount_rub и отдельное число unknown. Пустые неизвестные суммы не заменяй нулём. Сохрани реальные измерения в output/restore/preparation.json с относительными путями. Input и backup не меняй. Ничего не повреждай, restored не создавай. Backup ещё не является проверенным восстановлением. Перечитай proof и сообщи равенство трёх файлов по байтам и хешам. ~~~ Перечитайте `preparation.json` и сами откройте источник, working и backup. Проверьте хеши и контрольные поля, сохраните это наблюдение. Только после совпадения можно переходить к отдельному промпту повреждения. ## 4. Контрольная потеря только в новой рабочей копии Удаляется ровно строка с ID, указанным в промпте. Это разрешённая учебная потеря в свежей копии; исходник, backup, старые проекты и результаты остаются неизменными. Пока подготовка не проверена, этот шаг не выполняйте. ~~~text Отдельно разрешаю контрольное повреждение ТОЛЬКО scratch/recovery-exercise/working/crm-review.csv, созданного и проверенного на предыдущем этапе. Input/previous CSV, backup, base/scenarios и старые проекты неизменяемы. Прочитай preparation.json. Реально проверь source/backup/working bytes/hash, границы путей и отсутствие symlink. Если что-либо не совпало или corrupted/ целевой файл уже существует, остановись без изменения. Не используй Git и внешние системы. В новой working-копии удали ровно строку с id D06. Если такая строка не ровно одна, остановись. Сохрани остальные значения и header; ничего больше не меняй. После изменения прочитай working и скопируй её побайтно в НОВЫЙ scratch/recovery-exercise/corrupted/crm-review.csv как историю. Реально вычисли before/after SHA/bytes, строки, упорядоченные ID, известную часть суммы и число unknown. Повторно проверь неизменность source, backup, входов и прежних результатов. Сохрани output/restore/corruption-proof.json. Не придумывай значения и не называй этот шаг восстановлением. Restored пока не создавай. Перечитай повреждённый файл и proof. ~~~ Теперь проверьте фактическую разницу working до/после, отдельную corrupted-копию и неизменность исходника/backup. Предыдущие proof-файлы не переписывайте. При прерывании сначала перечитайте целевые файлы и выясните исход операции; не повторяйте её по одному тайм-ауту наблюдения. ## 5. Восстановите в новую папку и перечитайте После приёмки контролируемой потери восстановите файл в `restored/`, сохранив рабочую повреждённую копию и corrupted-историю. Полное равенство байтов и SHA256 обязательно; только совпадения количества строк или суммы недостаточно. ~~~text Теперь восстанови локальную копию, сохранив повреждённую историю. Прочитай preparation/corruption proof и заново проверь исходник, backup, working и corrupted по фактически сохранённым хешам. Проверь границы путей и отсутствие symlink. При изменении, неизвестности или существующем restored/ остановись. Не повторяй uncertain-операции из journal или сценариев, не используй Git, внешние системы и файлы вне проекта. Скопируй проверенный backup побайтно в НОВЫЙ scratch/recovery-exercise/restored/crm-review.csv. Не перезаписывай источник/working/corrupted. Реально прочитай restored и сравни с input и backup: полные байты/SHA256, header, число строк, упорядоченные ID, сумму только known amount_rub и число unknown. Неизвестные значения сохраняются как в источнике. Проверь, что working остался повреждённым, corrupted сохранился, input/backup и прежние результаты не менялись. Сохрани output/restore/restore-proof.json и output/restore/restore-protocol.md с фактическими этапами и основаниями. Затем создай новую output/final/handover.md с фактической проверкой восстановления, путями, версиями правил, readback, остановкой и прежними пробелами owner/contact. Base-handover не редактируй. Только если реально прочитанные сравнения совпали, называй локальное восстановление проверенным. Это не API-recovery, продажа или занятие. Перечитай новые файлы, сообщи вычисленные хеши и контрольные поля. ~~~ Проверьте proof по самим файлам. Для локальной цепочки сохраните источник, backup, повреждённую историю, restored и последовательность фактических наблюдений. Готовая фраза в Markdown не заменяет readback. ## 6. Пять фактических практик и новый локальный цикл Этот пункт сохраняет исходный объём урока 7. Комплект не содержит пяти готовых практик и не утверждает, что они выполнены. Сначала соберите в отдельной `input/project-evidence/` папке точные копии **ваших фактически выполненных и проверенных** результатов не менее пяти практик. Для каждой сохраните разрешённые учебные входы, результат, отдельную сверку и наблюдение реального выполнения. Если такого набора ещё нет, продолжите недостающие практики, а итоговый этап оставьте открытым. Текущий урок 7 можно включать только после фактической проверки его предыдущих этапов. Создайте `input/project-evidence/index.json` на основе этих существующих файлов. Для каждой практики укажите номер/название, относительные пути входов и результатов, версию источников и вычисленные SHA256, путь смысловой сверки, фактически обнаруженные ошибки и исправления, статус и границы приёмки. Не заполняйте индекс планами или выдуманными квитанциями. Фактически откройте перечисленные результаты. После этого распакуйте `operations-07-project-row-r3.zip` в ту же папку. Он добавит два файла: `input/project-r3/new-row.json` и `input/project-r3/company-snapshot.json`. Новая строка специально написана для этого этапа; снимок условий — точная копия первичного учебного снимка компании. Это новый самостоятельный ввод, а не повтор неизвестных операций из журнала. ~~~text Этот запрос выполняй ТОЛЬКО после фактической проверки предыдущих этапов урока 7 и появления input/project-evidence/index.json с результатами минимум пяти действительно выполненных практик. Если условия не подтверждены, остановись и перечисли недостающие. Не считай подготовку демонстрацией. Прочитай индекс и фактически открой названные результаты пяти практик. Проверь источники, хеши и границы их приёмки. Прочитай input/project-r3/new-row.json, company-snapshot.json и паспорт P01. Не используй Git, эталон, сеть и файлы вне проекта. Это новый локальный ввод, не replay OP03/OP05. Выполни реальный локальный цикл: прочитай сообщение → создай output/project-r3/queue.csv и draft.md по первичным фактам и условиям → отдельно сверь со снимком → перечитай выходы и вычисли SHA256 → сохрани output/project-r3/local-file-log.json только о наблюдённых локальных операциях с файлами. В queue сохрани source_id, request_id, operation_id, channel, received_at, исходное сообщение, известные параметры запроса, пробелы, статус черновика, версию/хеш источника. Не объявляй запись квалифицированным лидом или продажей без оснований. Таксономия и роль P01 не утверждены: отметь ограниченный проект на ручную сверку и остановку внешних действий. Контакт не выдумывай. В draft отдели факты обращения от условий снимка и неизвестного. Цену и расчёт выведи из первичных условий; не обещай согласованный бюджет, дату доставки, скидку, отправку или наличие сверх источника. В отдельном check.md сохрани арифметику, источник каждого условия, проверку unknown и ограничения. Черновик не отправляй. В local-file-log укажи фактически прочитанные/созданные файлы, их вычисленные хеши и выполненные операции. Не сочиняй API/http/readback квитанции и не выдавай этот лог за внешний журнал. Сохрани output/project-r3/demo.md: фактически открытые пять практик, новый вход/выход/check/log, остановка, восстановление и ограничения. Перечитай все новые файлы; прежние результаты и входы не меняй. ~~~ Проверьте новую строку, арифметику, каждый факт черновика, неизвестные параметры, фактический журнал и сохранность прежних файлов. Если исходный контекст не подтверждает назначенного человека/контакт, это остаётся открытым пунктом передачи; адрес вымышленной компании не решает его. ## Добровольная самопроверка по исходной рубрике Можно оценить каждый из пяти критериев от 0 до 2: полнота и счётчики; доказательство результата; разбор неизвестного исхода; восстановление и границы повторов; понятная передача процесса. Максимум — 10, ориентир исходного урока — 8/10. Балл сам по себе не подтверждает выполнение. Слепой повтор записи после тайм-аута без сверки, объявление продажи по техническому журналу или отсутствие порядка остановки требуют исправления независимо от балла. Это добровольный разбор собственной практики; обязательной домашней сдачи нет. ## Что остаётся доказать при выполнении - Все восемь событий и полные счётчики связаны с первичным журналом. - Два сценария проверены отдельно по новым наблюдениям без повтора записи. - Backup создан и прочитан; повреждена только новая working-копия; restored реально восстановлен в новой папке и полностью сверён с источником. - Handover позволяет остановиться, найти прошлый исход и повторно принять ограниченный запуск; отсутствующие owner/contact/версия не придуманы. - Открыты минимум пять выполненных практик и новая строка; созданы результат, отдельная сверка и журнал только фактических действий. - Исходные файлы, предыдущие результаты и повреждённая история сохранены. Автоматическая сверка структуры и хешей не заменяет смысловой разбор. Публичный комплект — инструкции и входы; без фактического выполнения он не подтверждает урок, сдачу ученика, техническую изоляцию, внедрение или готовность всей школы. [Вернуться к практике школы](/intensive/practice/) · [Подготовить Antigravity](/intensive/materials/antigravity-platform/20261012/)