13 KiB
13 KiB
Сентябрь 2018 — черновое тройное ревью «Воспроизводимое окружение Windows»
Пакет автономный и предназначен для отдельной интеграции:
editorial-2018-09-practice-windows-dev-enveditorial-2018-09-mechanism-windows-dev-enveditorial-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, Win32 Environment Variables | Статья не утверждает, что старое окно мгновенно получает постоянную правку; проверка идёт в новом сеансе |
PATH задаёт каталоги поиска, а PATHEXT — исполняемые расширения |
about_Environment_Variables | Это не единственный слой выбора в PowerShell: отдельно названы alias, функции, cmdlet и внешние приложения |
Get-Command -All показывает несколько одноимённых команд в порядке выбора PowerShell |
Get-Command | where.exe не выдан за эквивалент: он помогает увидеть файлы в текущем каталоге и PATH |
chcp показывает активную кодовую страницу; смена относится к программам, стартующим после неё |
chcp | Кодовая страница консоли не приравнена к кодировке файла или настройке вывода .NET |
| JSON-снимок и дифф строятся стандартными PowerShell-командами | ConvertTo-Json, Compare-Object | Сравнение показывает различающиеся строки, а не доказывает причину без повторного запуска исходной команды |
Технический проход
- Скрипт экспортирует три ревизии и не меняет архив при 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, без изменения даты, автора и базового архива.