revise December 2027 author manifesto plan 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,88 @@
|
||||
# P118 — декабрь 2027: «Манифест инженерного письма»
|
||||
|
||||
## Статус и временная граница
|
||||
|
||||
Редакторская дата: **2026-07-31**. Декабрь 2027 ещё не наступил, поэтому P118 — только **plan/scenario** с `planDate: 2027-12` и source cutoff **2026-07-31**. Пакет не сообщает о будущих статьях, архиве, редакторе, review, feedback, corrections, публикации, author development, команде, метриках или production effect.
|
||||
|
||||
Модуль использует только named fixed in-memory literals. Доменный evaluator не читает filesystem, network, environment, clock, secrets, telemetry, system или data; CLI-вывод существует только для локальной проверки экспортированного JSON. Единственный accepted positive output — `synthetic-plan-hand-off`; на positive и stop-ветках `productionEffect` всегда `not-attempted`.
|
||||
|
||||
## Проход 1 — evidence / temporal / voice
|
||||
|
||||
| Статья | Body chars без sources | Независимый угол | Временная граница | Источники: применение и boundary |
|
||||
| --- | ---: | --- | --- | --- |
|
||||
| `editorial-2027-12-practice-author-manifesto` | 10 874 | decision record до technical advice | 2026-07-31 / 2027-12 / cutoff 2026-07-31 | RFC 2119, March 1997, immutable URL; модальные границы совета, не доказательство статьи или решения. W3C PROV-DM, 30 April 2013, dated URL; происхождение claim, не история локального архива или результата. |
|
||||
| `editorial-2027-12-mechanism-author-manifesto` | 11 177 | rubric: evidence levels, claims, falsifiability и три прохода | та же | RFC 8174, May 2017, immutable URL; точное чтение требований, не review или verdict. W3C PROV-DM, 30 April 2013; различение claim и provenance, не evidence P118. |
|
||||
| `editorial-2027-12-field-author-manifesto` | 10 831 | corrective hand-off без invented feedback или author history | та же | RFC 2119 и RFC 8174; область действия нормативной формулировки, не owner, reviewer, publication, correction или author development. |
|
||||
|
||||
Проверяемые первичные/нормативные источники до cutoff:
|
||||
|
||||
- [RFC 2119 — Key words for use in RFCs to Indicate Requirement Levels](https://www.rfc-editor.org/rfc/rfc2119.html), IETF RFC 2119, March 1997, immutable RFC publication. Использован для явного различения требования и рекомендации. Не подтверждает событие, review, публикацию, коррекцию или effect P118.
|
||||
- [RFC 8174 — Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words](https://www.rfc-editor.org/rfc/rfc8174.html), IETF RFC 8174, May 2017, immutable RFC publication. Использован для границы сильной формулировки. Не создаёт будущий редакционный процесс или результат.
|
||||
- [PROV-DM: The PROV Data Model](https://www.w3.org/TR/2013/REC-prov-dm-20130430/), W3C Recommendation, 30 April 2013, dated immutable Recommendation. Использован как vocabulary происхождения утверждений. Не доказывает provenance будущего архива, review, feedback или outcome.
|
||||
|
||||
`curl -I` вернул HTTP 200 для всех трёх URL. Первые два абзаца каждой статьи называют конкретную проблему и цену ошибки. Каждая статья имеет собственные таблицу, SVG с русскими `alt`/подписью, безопасный runnable example, ordered process, ограничения и следующий шаг. Голос М10 держит прагматичную рамку «условие → риск → проверка → действие»; словарь local editorial standards и voice trajectory используется только как future contract vocabulary, не как свидетельство будущего прохода.
|
||||
|
||||
Текущий evidence/temporal/voice review plan-files: **pass**. Это результат проверки формы в 2026-07-31, не заявление о будущем редакционном результате.
|
||||
|
||||
## Проход 2 — literal safety и fail closed
|
||||
|
||||
`author-manifesto-plan-v1` — единственный accepted fixed literal. Factory делает JSON-clone и recursive deep freeze. Evaluator принимает literal только при exact JSON equality с закрытым named набором; неизвестный object не нормализуется и не получает fallback.
|
||||
|
||||
| Fixture literal | Ожидаемый статус | Фактический статус |
|
||||
| --- | --- | --- |
|
||||
| `author-manifesto-plan-v1` | `synthetic-plan-hand-off` | pass |
|
||||
| `author-manifesto-undated-v1` | `stop-temporal-boundary-required` | pass |
|
||||
| `author-manifesto-unknown-source-v1` | `stop-unknown-source-set` | pass |
|
||||
| `author-manifesto-unknown-question-v1` | `stop-unknown-question` | pass |
|
||||
| `author-manifesto-hidden-review-v1` | `stop-hidden-review-input` | pass |
|
||||
| `author-manifesto-declared-quality-v1` | `stop-declared-quality-pass-publication-correction-or-outcome` | pass |
|
||||
| `author-manifesto-disallowed-output-v1` | `stop-disallowed-positive-result` | pass |
|
||||
| ad-hoc unknown object | `stop-unknown-fixed-literal` | pass |
|
||||
|
||||
- Exact editor date, plan date и source cutoff обязательны; unknown source/date/question fail closed.
|
||||
- `reviewInputs.evidence`, `temporal` и `voice` обязаны остаться `not-provided`; hidden review input останавливает путь.
|
||||
- `quality`, `pass`, `publication`, `correction` и `outcome` обязаны остаться `not-declared`; объявленный future result останавливает путь.
|
||||
- Fixture: **11/11** — 8 literal statuses и 3 article checks. `productionEffect: not-attempted` сохраняется в каждом output.
|
||||
|
||||
## Проход 3 — visual / mobile / a11y / safety и duplicate scan
|
||||
|
||||
- SVG имеют русские `<title>` и `<desc>`; в каждой статье есть отдельные русские `alt` и `figcaption`. Граф решения, matrix рубрики и loop hand-off объясняют разные механизмы, а не иллюстрируют выдуманную публикационную историю.
|
||||
- `xmllint --noout` прошёл для всех трёх SVG. Safety scan для `<script>`, `<foreignObject>`, `javascript:`, `data:image` и inline event-handler attributes вернул пустой output: pass.
|
||||
- Sharp отрендерил 3 PNG шириной **375 px**. Ручной просмотр фактических рендеров: граф решения сохраняет входы, positive и stop path; matrix сохраняет три читаемые строки проходов; hand-off loop сохраняет разрыв перед выдуманным review. Обрезаний и наложений не обнаружено.
|
||||
- `npm run audit:draft -- scripts/upgrade-2027-12.mjs` прошёл для трёх exact slug и body lengths 10 874 / 11 177 / 10 831. npm вывел существующие предупреждения об unknown user config `store-dir`, `cache-dir`, `public-hoist-pattern`; audit завершился успешно.
|
||||
- Strict duplicate scan исключал section `Проверяемые источники`, но включал `<p>` и `<pre>`, поэтому runnable code участвовал. P102–P115 взяты из `upgrade-2026-08.mjs` … `upgrade-2027-09.mjs`; P116–P117 — из существующих body в `articles.json` только для read-only comparison. Сканированы **48** prior articles; выполнено **147** comparisons: 144 P118-to-prior и 3 внутренних. Exact paragraphs длиной 160+ и common 12-word fragments: `hits: []`.
|
||||
|
||||
## Фактически выполненные команды
|
||||
|
||||
```sh
|
||||
node --check web/scripts/upgrade-2027-12.mjs
|
||||
node web/scripts/upgrade-2027-12.mjs --verify-fixture
|
||||
cd web && npm run audit:draft -- scripts/upgrade-2027-12.mjs
|
||||
xmllint --noout public/assets/editorial/2027/author-manifesto-2027-editorial-decision-graph.svg public/assets/editorial/2027/author-manifesto-2027-quality-rubric-matrix.svg public/assets/editorial/2027/author-manifesto-2027-revision-handoff-loop.svg
|
||||
rg -n -i '<(script|foreignObject)\b|javascript:|data:image|(?:^|[[:space:]])on[a-z]+=' public/assets/editorial/2027/author-manifesto-2027-editorial-decision-graph.svg public/assets/editorial/2027/author-manifesto-2027-quality-rubric-matrix.svg public/assets/editorial/2027/author-manifesto-2027-revision-handoff-loop.svg
|
||||
node --input-type=module -e 'import sharp from "./web/node_modules/sharp/lib/index.js"; /* SVG → 375 px PNG */'
|
||||
curl -I https://www.rfc-editor.org/rfc/rfc2119.html
|
||||
curl -I https://www.rfc-editor.org/rfc/rfc8174.html
|
||||
curl -I https://www.w3.org/TR/2013/REC-prov-dm-20130430/
|
||||
node --input-type=module -e '/* P102–P117 source-excluded, code-included duplicate scan */'
|
||||
```
|
||||
|
||||
## Disposition
|
||||
|
||||
Изменены только разрешённые P118-файлы:
|
||||
|
||||
- `web/scripts/upgrade-2027-12.mjs`
|
||||
- `editorial/reviews/2027-12-draft.md`
|
||||
- `web/public/assets/editorial/2027/author-manifesto-2027-editorial-decision-graph.svg`
|
||||
- `web/public/assets/editorial/2027/author-manifesto-2027-quality-rubric-matrix.svg`
|
||||
- `web/public/assets/editorial/2027/author-manifesto-2027-revision-handoff-loop.svg`
|
||||
|
||||
Git не использовался. Registry, README, очередь, `articles.json`, app и чужие пакеты не изменялись. P118 остаётся плановым пакетом: будущая review, publication, correction или effect потребуют собственного authorised scope и не могут быть добавлены к этому сценарию задним числом.
|
||||
|
||||
## Независимое приёмочное ревью
|
||||
|
||||
- RFC 2119 и RFC 8174 повторно сверены как BCP-публикации March 1997 и May 2017; PROV-DM — как dated W3C Recommendation 30 April 2013. В финальной серии они используются только для точности модальных требований и терминологии происхождения, не как доказательство авторского развития или будущего выпуска.
|
||||
- Повторно выполнены `node --check`, fixture (**11/11**), `npm run audit:draft` и все три runnable-примера. Каждый возвращает только named fixed literal с `synthetic-plan-hand-off`; никакой review, публикация, correction или outcome не создаются.
|
||||
- Три SVG прошли XML/safety scan и независимый рендер Sharp на 375 px. Все диаграммы содержат читаемые заголовки, входы, hand-off и stop-ветки; обрезаний, наложений и внешнего содержимого нет.
|
||||
- Независимый strict scan сначала обнаружил общий 12-словный фрагмент с P116 в первом абзаце practice-статьи. Формулировка переписана, затем скан P102–P118 повторён: **51 статья**, **1 275 парных сравнений**, sources исключены, code включён, common 12-word fragments — `[]`.
|
||||
- Приёмочный verdict: **pass**. Пакет включён в registry как 356–358-й материал; production build и публикация выполняются после общей проверки интеграции.
|
||||
Reference in New Issue
Block a user