Skip to content
Back to skills

Incident Review

ASecurity

Звать, когда надо проверить документ об инциденте, написанный другим заходом: запись правила, фрагмент журнала о починке, разбор после инцидента, тело изменения-починки. Не автору о своём только что написанном тексте — ему нужен другой заход.

  • 5 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 25, 2026
developmentpython

Security analysis

A100/100

Scanned September 28, 2026

npx -y skills add ArtVsMark/Engineering-Incidents-Playbook --skill incident-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Incident Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Incident Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/artvsmark-incident-review/badge)](https://www.skillsdirectory.com/skills/artvsmark-incident-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: incident-review
description: >-
  Звать, когда надо проверить документ об инциденте, написанный другим
  заходом: запись правила, фрагмент журнала о починке, разбор после инцидента,
  тело изменения-починки. Не автору о своём только что написанном тексте — ему
  нужен другой заход.
argument-hint: "[что ревьюировать: файл, изменение или фрагмент]"
---

# Ревью документа об инциденте

> **Читатель:** агент — окно, которое ревьюирует чужой документ об инциденте, в момент до вердикта.

## Зачем это существует

Документ об инциденте здесь подводил не формой — форму держат гейты, — а тем,
что **объявленное оказывалось шире проверенного**, и находил это чаще внешний
взгляд, чем автор.

- **10 сентября, за час:** три ссылки на правила подряд в одном абзаце
  фрагмента журнала — 128, потом 154, потом 182, — все мимо собственной
  «Применимости». Каждую снял внешний взгляд, ни одну — автор
  ([204](../../../rules/ru/204-a-citation-is-checked-by-applicability.md), инцидент).
- **10 сентября:** три находки ревью пришли на **уже слитые** изменения той же
  смены — висящая запятая в блоке контрактов, слитые воедино «файла нет» и «поля
  нет», ответ по 157 без названного механизма
  ([`CHANGELOG.md`](../../../CHANGELOG.md), запись «Три находки ревью на уже слитых изменениях этой смены — закрыты»).
- **16 сентября:** пять находок ревью подряд на одной починке, #497–#505, и
  каждая об одном: граница, объявленная в тексте, была шире исполняемой — в
  изменении, которое эту границу и объявляло
  ([`CHANGELOG.md`](../../../CHANGELOG.md), запись «Заголовок блочного скаляра перестал считаться описанием навыка»).

## Что сделать

**0. Не быть автором.** Второй проход тем же окном видит те же слепые пятна;
ревью окна-автора внешним взглядом не является
([105](../../../rules/ru/105-an-outside-audit-needs-outside-eyes.md)). Внешний
взгляд каталога — отдельный прогон `review.yml` на каждом изменении; этот навык
— для другого захода, другого окна или владельца. Ревьюеру нужна история
решений: без неё находки о намеренных компромиссах — шум.

**1. Сначала то, что держит машина, — запустить, а не перечитать.** Форма
записи — `python scripts/audit_catalogue.py`; вердикт фрагмента —
`python scripts/collect_changelog.py --check`; тело изменения —
`python scripts/pr_body.py --check --body-file <файл>`; ссылки —
`python scripts/check_links.py`; соседи признака —
`python scripts/check_narrowing.py --range "origin/main...HEAD"`. Навык их не
повторяет: ему остаётся то, чего машина не видит.

**2. Задать вопросы, у каждого из которых свой предмет.**

| Вопрос | Где смотреть | Правило |
|---|---|---|
| каждое «(NNN)», «так велит NNN», «> правило NNN» — в границах «Не работает» цитируемого правила? «Смежное» и «см. также» не проверяются | раздел «Применимость» цитируемого, открытый, а не вспомненный | [204](../../../rules/ru/204-a-citation-is-checked-by-applicability.md) |
| утверждение о текущем механизме — что покраснеет, если оно перестанет быть правдой? | тело починки, «Практические границы», комментарии в коде | [183](../../../rules/ru/183-a-claim-about-the-mechanism-is-checked-against-it.md) |
| «откуда известно?» — замер на живом предмете или зелёный прогон? | причина, вывод | [146](../../../rules/ru/146-a-green-gate-does-not-verify-its-premise.md) |
| поведение площадки подтверждено номером прогона или изменения? | «починено», «работает» | [139](../../../rules/ru/139-a-mechanism-is-confirmed-by-a-run.md) |
| эталон, которым мерили, чем подтверждён? | числа и формы «сверено с …» | [055](../../../rules/ru/055-your-own-expectations-are-a-hypothesis.md) |
| «гейт не пропустит X» — назван прогон с X и с соседом у границы? | описание нового или починенного гейта | [140](../../../rules/ru/140-a-gate-is-tested-by-what-it-must-reject.md) |
| починка проверяющего инструмента — закреплены обе ошибки, ложное «прошло» и ложный отказ? | набор починки | [097](../../../rules/ru/097-a-checker-has-two-error-types.md) |
| правка признака — названы соседние случаи строкой `Соседи:`? Не для нового механизма | фрагмент журнала | [195](../../../rules/ru/195-a-narrowed-predicate-names-its-neighbour.md) |
| «тест краснеет до починки» — доказано полу-откатом? | тело починки | [014](../../../rules/ru/014-red-before-fix-needs-partial-revert.md) |
| связи с задачами полны: `Closes` против номеров, названных во фрагментах того же изменения; остаток правдив | тело изменения | [128](../../../rules/ru/128-a-required-field-is-checked-for-completeness.md), [173](../../../rules/ru/173-a-change-closes-the-task-or-names-the-rest.md) |
| отклонённое — с причиной? | вердикт «правилом не становится», отвергнутые гипотезы | [026](../../../rules/ru/026-rejected-findings-must-be-recorded.md) |
| запись самого каталога — применил ли он к себе то, что требует от потребителей? | записи и починки каталога | [197](../../../rules/ru/197-a-publisher-uses-what-it-publishes.md) |

**3. Вопросы, у которых правила нет, — задать и так назвать.** У владельца
действия, срока и отсутствия обвинения опоры в каталоге нет; измеримость
держится только аналогиями. Навык спрашивает о них, но находку по ним
называет «без правила каталога» — а не выдаёт за нарушение.

**4. Каждую находку — воспроизвести до выдачи.** Утверждение «нет X» в
документе проверяется поиском по поведению, а не по имени
([044](../../../rules/ru/044-check-the-premise-before-fixing.md)). У находки —
место и способ воспроизвести.

**5. Тяжесть не ставить.** Её ставит не тот, кто нашёл: находка идёт с местом
и способом воспроизвести, а уровень выносит автор документа или владелец
([086](../../../rules/ru/086-the-finder-does-not-grade-the-finding.md)).

**6. Вердикт — после последнего вопроса.** Не прочитан документ или не
отработала команда шага 1 — это третий исход, а не «находок 0»
([159](../../../rules/ru/159-a-set-verdict-comes-after-the-last-case.md)).

## Что выдать

Той же формой, что у `review.yml`: по строке `НАХОДКА: <что не так, одной
строкой>` на каждую находку с местом и способом воспроизвести, последней
строкой — `ВЕРДИКТ: находок N` либо «ВЕРДИКТ: не отработало — <что именно>».
Форма та же ради сравнимости; в задачу находок #473 такой вывод сам **не**
попадает — её пополняет только прогон ревью.

## Чего навык НЕ делает

- **Не краснеет и не держит слияние.** Ревью советует, а не запрещает; то,
  что берётся машинно, — гейты шага 1.
- **Не заменяет внешний взгляд.** Прогон `review.yml` — отдельная учётная запись
  и отдельный заход; навык в окне автора им не является.
- **Не ставит тяжесть** находке — только место и способ воспроизвести.
- **Не правит ревьюируемый документ.** Находка уходит автору, и закрывает её
  его починка. Строкой `Разобрано: <отпечаток>` снимаются только находки
  прогона ревью из #473: у вывода навыка отпечатка нет.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.