# Сентябрь 2018 — черновое тройное ревью «Воспроизводимое окружение Windows» Пакет автономный и предназначен для отдельной интеграции: - editorial-2018-09-practice-windows-dev-env - editorial-2018-09-mechanism-windows-dev-env - editorial-2018-09-field-windows-dev-env В этой партии созданы только: - web/scripts/upgrade-2018-09.mjs; - три SVG в web/public/assets/editorial/2018/; - этот файл ревью. web/data/articles.json, реестр ревизий, аудит, стандарт качества, очередь и Git не менялись. Дата ревью: 31 июля 2026 года. ## 1. Факты и техника — пройдено ### Граница и первичные источники | Утверждение в статье | Чем сверено | Оговорка в тексте | | --- | --- | --- | | В Windows у переменных среды есть Machine, User и Process scopes; дочерние процессы наследуют переменные родителя | [about_Environment_Variables](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-5.1), [Win32 Environment Variables](https://learn.microsoft.com/en-us/windows/win32/procthread/environment-variables) | Статья не утверждает, что старое окно мгновенно получает постоянную правку; проверка идёт в новом сеансе | | PATH задаёт каталоги поиска, а PATHEXT — исполняемые расширения | [about_Environment_Variables](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-5.1) | Это не единственный слой выбора в PowerShell: отдельно названы alias, функции, cmdlet и внешние приложения | | Get-Command -All показывает несколько одноимённых команд в порядке выбора PowerShell | [Get-Command](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/get-command?view=powershell-5.1) | where.exe не выдан за эквивалент: он помогает увидеть файлы в текущем каталоге и PATH | | chcp показывает активную кодовую страницу; смена относится к программам, стартующим после неё | [chcp](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chcp) | Кодовая страница консоли не приравнена к кодировке файла или настройке вывода .NET | | JSON-снимок и дифф строятся стандартными PowerShell-командами | [ConvertTo-Json](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-json?view=powershell-5.1), [Compare-Object](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/compare-object?view=powershell-5.1) | Сравнение показывает различающиеся строки, а не доказывает причину без повторного запуска исходной команды | ### Технический проход - Скрипт экспортирует три ревизии и не меняет архив при import. - Контракт CLI проверен отдельно: --print-revisions выдал только валидный JSON из трёх объектов, без строки Usage и без stderr. - В примерах нет команды, отключающей execution policy, антивирус, проверку сертификатов или иной механизм безопасности. - Опасные данные ограничены заранее выбранными полями. В тексте отдельно сказано, что PATH может раскрыть имя пользователя и внутренние каталоги, поэтому JSON нужно просмотреть перед передачей. - Поля PATH, кодовая страница, найденный кандидат и результат --version не смешаны в один «универсальный диагноз». Каждая статья называет следующий наблюдаемый шаг. - Пути и версии в полевом разборе прямо помечены учебными. Они не приписываются реальному пользователю, команде или измерению. - В рабочей среде нет Windows PowerShell 5.1, поэтому примеры не объявлены выполненными на другой ОС. Их синтаксис, параметры и фактические утверждения сверены с первичной документацией; перед публикацией на Windows нужен отдельный локальный прогон учебных .ps1. ## 2. Редактура и голос М1 — пройдено | Ревизия | Один вопрос | Симптом и цена в начале | Освоенное умение 2018 года | Основной текст | | --- | --- | --- | --- | --- | | Практика | Какой минимальный снимок позволяет повторить запуск | Команда не находит инструмент или выбирает другой; риск — случайная глобальная правка и утечка переменных | PowerShell-скрипт, JSON и ручная проверка пути | 5 866 знаков без кода и источников | | Механизм | Как PowerShell выбирает команду и где участвует кодовая страница | Версия отличается и текст нечитаем; риск — исправить не тот бинарник или повредить текст | Get-Command -All, where.exe, процессный PATH | 6 864 знака без кода и источников | | Поле | Как найти различие между двумя машинами без переустановки | Одинаковая команда расходится; риск — стереть след случайными установками | Снимок, Compare-Object, обратимый опыт в новом сеансе | 7 343 знака без кода и источников | - Голос удержан на М1: инженерская заметка 2018 года идёт от наблюдаемой ошибки к короткой команде, затем к ручной проверке. - Не добавлены поздние роли, SLO, Kubernetes, контейнерные платформы, продуктовые метрики или непроверяемые истории внедрения. - В каждом тексте есть один рисунок с осмысленным alt и подписью, одна доступная таблица, воспроизводимый PowerShell-фрагмент, нумерованный порядок действий, ограничения и точный заголовок <h2>Проверяемые источники</h2>. - Убраны общие вводные и обещания «универсального решения». Утверждения ограничены версией, текущим процессом, конкретной командой или учебным примером. ### Третий редакторский проход — пройдено - Независимый draft-gate вернул замечание только к editorial-2018-09-field-windows-dev-env: в первых 800 знаках был сценарий, но не было явного маркера проблемы. - Первое предложение заменено минимально: оно начинается с Симптом:, сохраняет две Windows-машины, расходящийся запуск и цену поспешной переустановки. - Остальная структура, объём, источники, визуал и тон М1 не менялись. Повторный npm run audit:draft -- scripts/upgrade-2018-09.mjs из web/ прошёл для всех трёх slug: 8 086 / 7 690 / 8 745 знаков body; node --check scripts/upgrade-2018-09.mjs также завершился успешно. ## 3. Визуал и выпуск — пройдено - windows-dev-env-snapshot-2018.svg объясняет состав минимального снимка и границу с секретными данными. - windows-dev-env-resolution-2018.svg разделяет поиск команды и проверку кодовой страницы; это предотвращает неверный вывод, что where.exe полностью описывает PowerShell. - windows-dev-env-diff-2018.svg показывает порядок полевого разбора: одинаковая команда → очищенные снимки → одно отличие → обратимый опыт → повтор. - Все схемы имеют адаптивный viewBox шириной 720px, используют контрастный текст и не содержат текста, который является единственным носителем смысла: связи также видны по группам и стрелкам. - SVG открыты через локальный Quick Look в масштабе 1200px. При первом просмотре нижняя строка схемы полевого разбора выходила за правую границу; текст сокращён, схема отрендерена повторно без обрезания. На трёх схемах проверены стрелки, контраст, кириллица и отсутствие клиппинга. ### Выполненные команды и результат node --check web/scripts/upgrade-2018-09.mjs node web/scripts/upgrade-2018-09.mjs --print-revisions node --input-type=module -e "import('./web/scripts/upgrade-2018-09.mjs').then(({revisions}) => { if (revisions.length !== 3) process.exit(1); })" xmllint --noout web/public/assets/editorial/2018/windows-dev-env-snapshot-2018.svg xmllint --noout web/public/assets/editorial/2018/windows-dev-env-resolution-2018.svg xmllint --noout web/public/assets/editorial/2018/windows-dev-env-diff-2018.svg - Все шесть команд завершились успешно. Отдельно проверены чистый import, точный порядок трёх slug, 5 000–15 000 знаков основного текста, 8 / 8 / 9 смысловых заголовков, по два блока кода, figure с непустым alt и подписью, таблица с thead, нумерованный маршрут, точный раздел источников и 4 / 5 / 5 внешних первичных ссылок. - git diff --check по пяти файлам партии прошёл без пробелов и конфликтных маркеров. В статусе партии — ровно эти пять новых файлов; скрипт не импортирует и не записывает архив, реестр, аудит, стандарт, очередь или Git-историю. - После интеграции основной редактор повторно прогнал strict audit через реестр ревизий и production build. Сборка прошла и сгенерировала 374 статические страницы. Статус: принят в публикационный слой 31 июля 2026 года. Ревизии накладываются только по стабильным slug, без изменения даты, автора и базового архива.