revise October 2025 teaching engineering articles
Build and deploy / deploy (push) Successful in 15s
Build and deploy / deploy (push) Successful in 15s
This commit is contained in:
@@ -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 об эффективности обучения.
|
||||
Reference in New Issue
Block a user