Files
huncode 681651f9e5
Build and deploy / deploy (push) Successful in 16s
revise January 2025 AI coding assistant articles
2026-07-31 17:10:56 +03:00

15 KiB
Raw Permalink Blame History

P83 — январь 2025: помощник для написания кода

Область пакета

Заменяются только три overlay-статьи:

  • editorial-2025-01-practice-ai-coding-assistant — «Prompt не заменяет постановку задачи».
  • editorial-2025-01-mechanism-ai-coding-assistant — «Почему правдоподобный код ломает контракт».
  • editorial-2025-01-field-ai-coding-assistant — «Проверить сгенерированный diff до merge».

Пакет содержит только fixed synthetic in-memory literals. Он не вызывает модель, не использует реальные prompts, customer code, repository, secrets, файлы, Git, сеть, CI, часы, production, метрики или evaluation results. Ни один пример не является результатом реального помощника, repository scan или production test run.

Исследование и историческая граница

Проверка URL выполнена 31.07.2026 обычным HTTPS GET без авторизации и без TLS bypass: все четыре URL вернули HTTP 200. Дата сетевой проверки не изменяет историческую границу статьи: GitHub Docs закреплён commit от 31.01.2025, NIST SSDF — финальная публикация от 03.02.2022. В материалах нет утверждений о моделях, функциях или результатах после января 2025.

Источник Дата / версия URL Узко поддерживаемое утверждение Граница утверждения
GitHub Docs: Copilot Chat limitations immutable commit 6a92295d, 31.01.2025 https://github.com/github/docs/blob/6a92295d73cd86b37a810a87f45e7deb21d10a0f/data/reusables/rai/copilot/copilot-chat-ide-limitations.md Помощник ограничен контекстом; generated code может выглядеть валидным, но не совпадать с intent; sensitive code надо тщательно review и test. Это responsible-use guidance конкретного продукта. Не измеряет качество любой модели и не доказывает, что конкретный diff корректен или безопасен.
GitHub Docs: improving Copilot Chat performance immutable commit 6a92295d, 31.01.2025 https://github.com/github/docs/blob/6a92295d73cd86b37a810a87f45e7deb21d10a0f/data/reusables/rai/copilot/copilot-chat-ide-improving-performance.md Рекомендовано держать запрос на coding-задаче, применять помощник как tool rather than replacement и использовать secure coding/code review. Не обещает, что хороший prompt, линтер или test дают correctness, security либо compatibility.
GitHub Docs: reviewing proposed pull-request changes immutable commit 6a92295d, 31.01.2025 https://github.com/github/docs/blob/6a92295d73cd86b37a810a87f45e7deb21d10a0f/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md Pull-request review рассматривает commits, files и diff; reviewer может comment, approve или request changes. Описывает UI-механику review, а не гарантию отсутствия дефектов после просмотра или approve.
NIST SP 800-218 SSDF Version 1.1 final, 03.02.2022 https://csrc.nist.gov/pubs/sp/800/218/final Набор secure-development practices можно интегрировать в конкретный SDLC для снижения числа уязвимостей и последствий невыявленных проблем. Высокоуровневая рамка не заменяет domain contract, test data, human review и решение owner о residual risk.

Каждая из трёх статей ссылается минимум на эти два вида первичного или официального материала: historical tool documentation и secure-development / review documentation. Версионные GitHub-ссылки не ведут на mutable main.

Проход 1 — факты и техника

Источники и утверждения.

  • Ограничения assistant сформулированы узко: context limit, возможное расхождение с developer intent и необходимость review/test. Нет заявления, что модель делает review сама или что любой ответ небезопасен.
  • Prompt-card выведена как инженерная карточка scope, а не как vendor feature и не как рецепт повышения benchmark. Она связывает task, allowed context, negative constraints, owner и evidence.
  • GitHub pull-request guidance использована только для diff-oriented review и явно не превращена в proof of correctness.
  • SSDF использован как аргумент встраивать secure-development practices в SDLC, а не как доказательство security конкретного diff.
  • Январь 2025 не получает поздних agent modes, современных model names, корпоративных evaluation figures или claims о будущих workflows.

Проверен reproducible artifact.

  • createFixedSyntheticAiCodingInput принимает только три заранее заданных case id; все значения заморожены и расположены в памяти.
  • inspectSyntheticAiCodingAssistant принимает exact input contract, создаёт canonical report и не обращается к модели, prompt, repository, customer code, filesystem, Git, CI, сети или production.
  • planSyntheticAiCodingReview принимает лишь canonical accepted report и создаёт human-review draft. Он не выполняет merge, rollout или review в удалённой системе.
  • stopSyntheticAiCodingReview возвращает только in-memory stop record. Это не branch rollback и не возвращение production state.
  • Fixture проверяет exact input/report/draft/stop contracts, dense arrays, unknown keys, forged decision, cyclic input/report/draft и safe canonical comparison without throw.

Вердикт: пройдено. Синтетические примеры не притворяются данными о модели или реальной системе, а внешние источники не расширены до несуществующих гарантий.

Проход 2 — редактура и голос

Январь 2025 соответствует M8 — инженер-наставник. Текст называет стоимость плохого решения, owner, residual risk и воспроизводимый маршрут, но не делает вид, что автор провёл организационное внедрение или располагает закрытыми данными. Прагматическая формула везде одинакова: «симптом → причина → проверка → действие».

Статья Проблема и цена в первых двух абзацах Основной текст Практический артефакт Проверяемый финал
practice Неназванный scope превращает candidate code в изменение без владельца; review дорожает и теряется контракт. 8 827 знаков prompt-card, bounded-diff route, scope table Заполнить пять полей для одной задачи и принять / остановить только проверяемый diff.
mechanism Код выглядит готовым, но меняет invalid result или side effect; команда теряет контракт. 9 808 знаков five-evidence matrix, error matrix, pure fixture Для changed branch назвать contract row, test evidence и unknown.
field Small generated diff проходит визуальную проверку, но скрывает scope, contract или test mismatch перед merge. 8 006 знаков three fixed cases, verification gate, stop-boundary workflow Остановить proposal на первом незащищённом условии и запросить exact evidence.

Редакторская вычитка:

  • В каждом из первых двух абзацев названы situation и concrete cost; нет декларации о «важности AI».
  • Термины owner, bounded diff, contract, evidence и stop boundary появляются рядом с operational meaning, а не в виде списка модных слов.
  • Все статьи содержат table, figure с meaningful alt и caption, compact reproducible example, sources, limitations и concrete next step.
  • Удалены универсальные обещания, будто prompt, test, линтер или модель дают correctness/security. Unknown сохранён как отдельный честный результат.
  • Тон короткий и технический: каждый смысловой абзац добавляет symptom, cause, check, action, limitation или outcome.

Вердикт: пройдено. audit:draft подтвердил структуру и объём всех трёх статей; каждая лежит в целевом коридоре 8–10 тыс. знаков.

Проход 3 — визуал и выпуск

Три SVG созданы вручную, без внешних изображений и скриптов:

Asset Смысл Проверка на 375 px
ai-coding-assistant-2025-prompt-diff-review.svg prompt-card → bounded diff → review → test; выход за scope ведёт к stop. 375×258, читаемо. В первом проходе крайняя карточка была слишком узкой; четыре шага выровнены и SVG повторно отрендерен.
ai-coding-assistant-2025-error-matrix.svg error matrix для scope, contract, test evidence и unknowns. 375×258, читаемо после укрупнения body labels.
ai-coding-assistant-2025-verification-gate.svg verification gate и различие stop-before-merge / human decision. 375×258, читаемо.

Выполненные release-проверки:

  • node --check web/scripts/upgrade-2025-01.mjs — PASS.
  • node web/scripts/upgrade-2025-01.mjs --verify-fixture — PASS, 35/35 assertions.
  • npm run audit:draft -- scripts/upgrade-2025-01.mjs — PASS: practice 8 827, mechanism 9 808, field 8 006 знаков.
  • xmllint --noout для трёх SVG — PASS; safety scan на script, foreignObject, javascript:, data:image и event handlers — clean.
  • Sharp render шириной 375 px и ручное чтение диаграмм — PASS, все три результата 375×258.

Вердикт: пройдено для самостоятельного draft-пакета. Визуальный дефект узкой карточки найден и исправлен до финального render; source URLs и все артефакты доступны без авторизации и TLS bypass.

Общий build, registry, README, очередь, articles.json, Git, staging, commit и push намеренно не входят в пакет. Их не трогаем до отдельной интеграции после review.

Выпуск после независимой приёмки

Основной редактор повторил три прохода уже после регистрации overlay-ревизий:

  1. Факты и техника. Raw-файлы GitHub Docs прочитаны по immutable commit 6a92295d; API GitHub подтверждает дату снимка — 31 января 2025. Limitations прямо говорят о контекстной границе, возможности правдоподобного, но не соответствующего намерению кода и необходимости review/test. Guidance о prompts требует использовать помощник как инструмент, а не замену программиста. Официальная страница NIST подтверждает final-дату SSDF 1.1 — 3 февраля 2022 — и его роль как интегрируемого набора secure development practices. В статье у каждой ссылки видна её версия.
  2. Редактура и голос. Полные тексты перечитаны: они начинают с конкретной цены ложноположительного diff и проходят через scope, контракт, доказательство и действие. Рабочие англоязычные термины раскрыты рядом с задачей: bounded diff, owner, contract, evidence, unknown и stop boundary. Повторы не подменяют модельный ответ фактом, а учебные кейсы не выдают себя за результаты реального помощника. audit:draft подтвердил 8 827 / 9 808 / 8 006 знаков.
  3. Визуал и выпуск. Три SVG повторно отрисованы Sharp на 375 px и просмотрены: prompt → diff → review, матрица ошибок и verification gate остаются читаемыми. XML и safety scan чисты. Fixture проходит 35/35; целевой аудит подтверждает минимум две таблицы, рисунок и код в каждой статье. Реестр содержит 244 уникальные ревизии, git diff --check чист, а production build успешно сгенерировал 374 страницы.

Вердикт: январская партия готова к отдельному публикационному коммиту.