revise October 2025 teaching engineering articles
Build and deploy / deploy (push) Successful in 15s

This commit is contained in:
2026-07-31 18:30:31 +03:00
parent 195477c0e4
commit 775ae9b71a
7 changed files with 203 additions and 1 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# Производство редакционных партий
На 31 июля 2026 года строгий аудит проходит 277 из 358 созданных материалов. Остальные 81 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
На 31 июля 2026 года строгий аудит проходит 280 из 358 созданных материалов. Остальные 78 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
## Одна партия
+65
View File
@@ -0,0 +1,65 @@
# P92 — октябрь 2025: объяснение сложной инженерной темы
## Область draft-пакета
Пакет заменяет только три overlay-статьи: `editorial-2025-10-practice-teaching-engineering`, `editorial-2025-10-mechanism-teaching-engineering`, `editorial-2025-10-field-teaching-engineering`. Единственный исполняемый артефакт — `web/scripts/upgrade-2025-10.mjs`. Все attempts, feedback, trace и results — fixed synthetic in-memory literals; модуль не читает files, network, Git, CI, clock, telemetry, production или user data и не выполняет side effect. Registry, README, очередь, `articles.json`, app-страницы, `docs/`, Git и чужие draft-пакеты не менялись.
## Исследование и историческая граница
Граница — 31 октября 2025. Оба источника доступны обычным HTTPS без авторизации и TLS bypass. [ECMA-262 16th edition](https://ecma-international.org/wp-content/uploads/ECMA-262_16th_edition_june_2025.pdf) — неизменяемый опубликованный PDF июня 2025, §27.2.4.1/PerformPromiseAll. [MDN Promise.all](https://raw.githubusercontent.com/mdn/content/3fad0447b4901e28fe88769976787d8d8b87d66d/files/en-us/web/javascript/reference/global_objects/promise/all/index.md) закреплён commit `3fad0447b4901e28fe88769976787d8d8b87d66d` от 19.08.2025. Они подтверждают семантику aggregate outcome, порядок результатов, first rejection и allSettled; не подтверждают cancellation конкретной внешней работы. Вывод «cancel требует отдельного contract» в статье — явно обозначенная инженерная граница, не обещание источника.
## Проход 1 — факты, техника и источники
- `runFixedPromiseExercise` создаёт только две in-memory promises: первая сразу rejected, вторая завершается вручную после обработанного aggregate reject. Trace проверяет порядок `aggregate-rejected`, затем `remaining-input-fulfilled`; он не моделирует сеть, timer или ресурс.
- `checkFixedTeachingAttempt` принимает только frozen fixed literals. `recipe-only-v1` останавливается на `missing-model` и `missing-counterexample`, `wrong-cancellation-v1` — на `wrong-boundary`; positive path выдаёт только `synthetic-ready-for-human-review`.
- В текст не перенесено утверждение, что Promise.all отменяет работу. ECMA-262 и MDN использованы только в заявленных границах; allSettled описан как получение всех исходов, а не cancel mechanism.
**Вердикт:** пройдено.
## Проход 2 — редактура, голос, объём, цена и cross-article
Все статьи начинаются с наблюдаемой проблемы и цены ошибки в первых двух абзацах. Тон М8 — короткий, наставнический, без claims об эффективности: симптом → причина → проверка → действие. Термины раскрыты при первом появлении. Practice отвечает за маршрут объяснения, mechanism — за разделение трёх уровней состояния, field — за форму конкретной обратной связи.
| Статья | Главный вопрос | Самостоятельный артефакт | Цена ошибки |
| --- | --- | --- | --- |
| practice | Как выстроить объяснение? | путь model → exercise → check | рецепт копируют вне условий |
| mechanism | Что именно делает aggregate? | матрица допустимых выводов | ложная очистка и неверное владение |
| field | Как вернуть конкретный пробел? | fixed feedback card | неверный hand-off следующему инженеру |
Cross-article repetition check после финальной редакции: **0** одинаковых абзацев длиной от 160 знаков и **0** общих последовательностей из 12 слов; общий большой вводный блок отсутствует.
**Вердикт:** пройдено. Независимый audit зафиксировал основной текст: practice — **5 725**, mechanism — **6 071**, field — **5 457** знаков.
## Проход 3 — SVG, fixture и выпуск
- `node --check web/scripts/upgrade-2025-10.mjs` — PASS.
- `node web/scripts/upgrade-2025-10.mjs --verify-fixture` — PASS, 10/10 assertions.
- `npm run audit:draft -- scripts/upgrade-2025-10.mjs` — PASS: **5 725 / 6 071 / 5 457**; диапазон 5–15 тыс., table, figure, alt/caption, code, ordered sequence, два источника, проблема и цена.
- `xmllint --noout` для трёх SVG — PASS; safety scan чист: нет `script`, `foreignObject`, `javascript:`, `data:image` и inline event handlers.
- Sharp renders на 375 px просмотрены: model path сохраняет пять карточек, matrix читает три уровня, feedback loop показывает возврат gap и hand-off без обрезания.
Overlay намеренно не подключён. README, registry, очередь и Git не менялись; интеграционный audit/build остаётся задачей независимого редактора.
## Независимый выпускной проход — 31.07.2026
Источники перепроверены на закреплённых версиях. ECMA-262 16th edition PDF показывает `Promise.all`, `NewPromiseCapability`, iterator и `PerformPromiseAll`; MDN commit `3fad0447` подтверждает first rejection, iterable order и границу `allSettled`. Ни один текст не выводит отмену внешней операции из этих фактов.
Все три статьи прочитаны целиком. Практика объясняет модель и упражнение, mechanism отделяет input, aggregate и внешнюю операцию, field возвращает recipe к проверяемому feedback. Попарная проверка основного текста: 0 одинаковых абзацев от 160 знаков и 0 общих 12-словных фрагментов. Три SVG повторно отрендерены Sharp на 375 px и остались читаемыми.
При буквальном исполнении practice example обнаружен неполный комментарий к `console.log(report)`: объект также содержал `productionEffect`. Snippet изменён на вывод трёх конкретно показываемых полей; результат теперь точно соответствует комментарию. Повторный fixture проходит.
~~~text
node --check scripts/upgrade-2025-10.mjs
PASS
node scripts/upgrade-2025-10.mjs --verify-fixture
PASS fixture: 10/10 assertions
npm run audit:draft -- scripts/upgrade-2025-10.mjs
PASS: 5725 / 6071 / 5457 body chars
npm run audit:articles -- <3 October slugs>
PASS: each article has 1 table, 1 code example and 1 figure
~~~
После приёмки overlay подключён в `editorial-revisions.mjs` после September 2025. Все examples остаются fixed in-memory teaching models; они не создают production result, отмену внешней работы или claim об эффективности обучения.