46 lines
8.2 KiB
Markdown
46 lines
8.2 KiB
Markdown
# P91 · Сентябрь 2025 · Инженерное интервью
|
||
|
||
## Проход 1 — факты, техника и источники
|
||
|
||
- Прочитан `web/scripts/upgrade-2025-09.mjs`. Все role cards, work samples, observations, interpretations и review records — frozen fixed synthetic JavaScript literals. Модуль не читает и не пишет файлы, не использует сеть, PII, аудио, clock, telemetry, Git, CI или production side effect. Положительная ветка выдаёт только `request-missing-evidence-only`; она не создаёт score, ranking, запись о человеке или hiring outcome.
|
||
- Проверены negative paths fixture: исключение памяти на термин из rubric, interpretation без observation, personal outcome и реальный evidence останавливают hand-off. `node scripts/upgrade-2025-09.mjs --verify-fixture` проходит 11/11 assertions.
|
||
- Источники исследованы как ограниченный контекст метода, а не как подтверждение результата. Датированный PDF OPM *Structured Interviews — A Practical Guide* выпущен в September 2008 и описывает связь задач, компетенций, вопросов, общих шкал и индивидуального review. Публичный OPM *Structured Interview Example* показывает связь вопроса с benchmark-признаками. OPM *Writing Samples Summary* описывает типичность рабочей пробы и одинаковые условия review. Для выпуска все три PDF закреплены immutable Internet Archive captures 2013–2014 годов; у каждого источника в статье видны version/date и boundary.
|
||
- Фактический вывод пакета уже, чем у источников: OPM не используется как обещание качества, fairness, legal/HR policy или результата другой организации. Схема `observation → interpretation → hand-off` — авторская synthetic инженерная модель; она не доказывает валидность процесса вне fixed fixture.
|
||
|
||
## Проход 2 — редактура, голос и независимость серии
|
||
|
||
- Прочитаны все три тела без списка источников. Первые два абзаца каждого называют symptom и цену ошибки. Практика отвечает на вопрос о role rubric и рабочей пробе; механизм — о разделении слоёв записи; полевой текст — о калибровке reviewer-ов и журнале расхождений. У каждого свой пример, таблица, figure, ordered sequence, ограничение и следующий шаг.
|
||
- Уровень автора — M8: спокойная прагматичная техническая речь строится как «симптом → причина → проверка → действие». Термины раскрыты в месте использования: role rubric, work sample, observation, interpretation, evidence boundary, hand-off и calibration. Убраны маркетинговые формулы, вымышленные вакансии, результаты найма, цифры без метода и личностные характеристики.
|
||
- Body counts после удаления источников и HTML: practice — 8 250, mechanism — 8 435, field — 8 161 знак. Все значения лежат в целевом диапазоне 8–10 тыс. и в обязательном диапазоне 5–15 тыс.
|
||
- Техническая cross-article проверка исключила source lists, HTML и кодовые элементы. Во всех трёх попарных сравнениях: 0 одинаковых предложений длиной от 160 знаков и 0 общих последовательностей из 12 слов. Общий запрет на реальную оценку не растянут общим блоком: граница описана разными самостоятельными абзацами с разными техническими последствиями.
|
||
|
||
## Проход 3 — визуал, fixture и выпускной контроль
|
||
|
||
- Пройдены `node --check scripts/upgrade-2025-09.mjs`, fixture 11/11 и `npm run audit:draft -- scripts/upgrade-2025-09.mjs`. Аудит подтверждает body counts, figures с осмысленным alt и caption, таблицы, code examples, ordered sequences и внешние HTTPS sources для всех трёх slugs.
|
||
- Три SVG прошли `xmllint --noout` и SVG safety scan: нет `script`, `foreignObject`, `javascript:`, `data:image` или inline event handlers. Sharp-рендеры на ширине 375 px открыты вручную: rubric/work-sample сохраняет читаемую последовательность трёх блоков; calibration matrix отделяет допустимое от stop-сигнала; evidence loop показывает возврат неизвестного в следующий запрос и явное отсутствие personal outcome.
|
||
- Пакет намеренно не подключён к registry, README, очереди, `articles.json`, app-страницам, `docs/` или Git. Для публикации требуется отдельная независимая приёмка главным редактором.
|
||
|
||
## Независимый выпускной проход — 31.07.2026
|
||
|
||
При приёмке текущие OPM URL ответили HTTP 403 вместо PDF. Это не позволило считать live URL проверенным источником, поэтому source list заменён на три точных immutable Internet Archive PDF captures: guide `2013-06-25T14:25:25Z`, structured-interview example `2013-02-27T00:54:26Z`, writing-samples summary `2014-03-27T03:42:49Z`. Сами captures прочитаны через PDF text extraction: guide подтверждает издание September 2008, job analysis, questions, common rating scales и individual ratings; example — question и rating scale; summary — типичную work sample задачу и standardized conditions. Ни один claim не расширен до HR/legal/hiring policy.
|
||
|
||
Также при буквальном запуске mechanism example найден лишний stop reason: fixture сохранял unrelated review с отсутствующей второй interpretation. Negative case сужен до одного review, после чего snippet из статьи вернул ровно `['interpretation-not-traceable']`. Practice возвращает только synthetic `request-missing-evidence-only`; field возвращает `stop-and-repair-boundary` для personal outcome.
|
||
|
||
Три статьи прочитаны целиком, а попарная проверка основного текста дала 0 одинаковых абзацев от 160 знаков и 0 общих 12-словных фрагментов. SVG повторно отрендерены Sharp на 375 px: rubric/work sample, calibration matrix и evidence loop остаются читаемыми.
|
||
|
||
~~~text
|
||
node --check scripts/upgrade-2025-09.mjs
|
||
PASS
|
||
|
||
node scripts/upgrade-2025-09.mjs --verify-fixture
|
||
PASS fixture: 11/11 assertions
|
||
|
||
npm run audit:draft -- scripts/upgrade-2025-09.mjs
|
||
PASS: 8284 / 8507 / 8218 body chars
|
||
|
||
npm run audit:articles -- <3 September slugs>
|
||
PASS: each article has 1 table, 1 code example and 1 figure
|
||
~~~
|
||
|
||
После приёмки overlay подключён в `editorial-revisions.mjs` после August 2025. Fixed synthetic boundary и запрет на score, ranking, real-person record или hiring outcome сохраняются без исключений.
|