ai-audit-project
Если результат аудита ведёт к существенной правке источника истины, сначала
получи ai-work-control/full; сам аудит не повторяет этот контроль. Если
соседний навык недоступен, выполни его полный контрольный набор по доступному
контексту внутри текущей работы и продолжай. Не останавливай исправление только
из-за невозможности отдельно загрузить ai-work-control.
Проверяй правила проекта как рабочую систему управления агентом: они должны
помогать агенту действовать точнее, не конфликтовать между собой и не тратить
контекст без пользы.
Назначение
Навык нужен для глубокого аудита набора правил, которые управляют поведением
агента в репозитории. Он шире, чем проверка одного AGENTS.md: учитывает
несколько форматов инструкций, локальные и глобальные навыки, символические
ссылки, документацию для человека как контекст и проектные правила,
которые могут конфликтовать между собой. README, docs/** и похожие файлы не
становятся прямыми инструкциями для агента только из-за расположения или имени:
как правила учитывай только явные обращения к ИИ, агенту, помощнику или
инструменту автоматизации.
Контрольные маршруты проекта проверяй по рабочим навыкам:
ai-work-control;
ai-rule-failure-analysis;
ai-work-result-evaluation.
Проверка поставляемой автоматизации
Для публичных команд и скриптов навыков проверяй не только наличие контракта,
но и поведение на значимых вариантах входа.
- Для Python-скриптов выполни доступный
run-skill-script-contract-tests.py
и дождись терминального результата. Инструмент выполняет сценарии
evals/script-contract-tests.json, отклоняет вырожденные объявленные
входы, считает ошибкой функцию скрипта, не выполненную ни одним сценарием и
не объявленную в unexercised_functions с причиной, и печатает по каждому
скрипту очередь невыполненных исполняемых строк. Успешный код возврата без
разбора этой очереди не доказывает работоспособность автоматизации.
- Ошибку о вырожденном входе или невыполненной функции устраняй только новым
успешным сценарием, который доказуемо исполняет целевую ветвь: после правки
фикстуры повтори запуск и убедись, что целевые строки исчезли из очереди, а
функция — из ошибок. Данные, при которых проверка проходит, но целевая
ветвь не исполняется, не являются исправлением. Пустая коллекция не
покрывает обработку элементов, одна запись — взаимодействие записей. Не
добавляй ещё одну пустую фикстуру и не заменяй существующий сценарий
другого класса входа без доказательства эквивалентности.
- Запись в
unexercised_functions допустима только для защитного отказа или
ветви, которую нельзя воспроизвести в переносимой фикстуре из-за внешней
среды. Ветвь обработки данных обязана получить активирующий сценарий с
проверкой значимых данных результата повторным чтением созданного файла, а
не только кода возврата, stdout или наличия файла. Существующие записи
unexercised_functions — предмет аудита: запись, скрывающая обработку
данных, является находкой. Каждый оставшийся диапазон невыполненных строк
классифицируй в текущем аудите: обработка данных получает сценарий,
защитный отказ и внешняя среда — короткое обоснование в отчёте. Не
переноси разбор очереди в остаточные риски, следующий аудит или бэклог.
Вспомогательный тест вне контракта не заменяет контрактный сценарий.
- Считай
operations[].inputs путями или настройками внутри фикстуры, а не
аргументами команды, если контракт явно не задаёт иное; интерфейс команды
бери из процедуры навыка. Само присутствие пути в inputs или фикстуре не
является покрытием: доказательство — данные результата, производные от
входа. Если эффект не виден напрямую, сравни два запуска с минимально
различающимися входами.
- Не меняй исправную автоматизацию по предположению о назначении поля или
команды. Если все документированные эффекты подтверждены, зафиксируй
отсутствие находки и не расширяй контракт гипотетическими требованиями.
Дефект сначала воспроизведи на копии фикстуры: сохрани команду, код
возврата и неверные данные до правки, затем повтори тот же сценарий после
правки. Исправление трассировщика или декларации входов не заменяет
поведенческую проверку.
Проверка автоматизации не завершена, пока инструмент не завершился
терминально, его ошибки не устранены доказуемо исполняющими сценариями или
допустимыми записями unexercised_functions, а каждый диапазон невыполненных
строк не получил активирующий сценарий либо названное в отчёте обоснование.
Итог со словами «остаточный риск» вместо этого разбора — незавершённый аудит.
Когда применять
Применяй навык, если нужно:
- проверить правила проекта для агента глубже, чем обычный обзор одного файла;
- найти дубли, противоречия, неоднозначности, устаревшие места и лишнюю
стоимость контекста;
- сравнить несколько источников инструкций для ИИ;
- упорядочить правила между
AGENTS.md, другими файлами инструкций, навыками и
явно адресованными агенту фрагментами документации;
- подготовить достаточные правки правил после найденных проблем;
- сопровождать набор правил в разных репозиториях.
Если задача ограничена только качеством одного или нескольких AGENTS.md без
широкого аудита правил, применяй ai-audit-agents-md. Если нужно создать,
изменить, сократить или разделить AGENTS.md, применяй
ai-agents-md-maintenance. Если задача меняет сам навык, применяй
ai-skill-development.
Обязательный порядок
- Проверь, какой экземпляр этого навыка выполняется: каталог загрузки показан
при запуске. Найди одноимённые копии навыка в остальных корнях навыков —
пользовательском каталоге навыков, проектных каталогах и установленных
коллекциях — и сравни их содержимое. Если загруженная копия отстаёт от
сопровождаемой, сообщи об этом первой строкой, продолжай работу по процедуре
самой свежей копии и зафиксируй расхождение как первую находку «устаревшая
затеняющая копия навыка».
- Уточни цель проверки, только если без этого нельзя безопасно продолжить:
найти проблемы, предложить правки, внести изменения, сравнить текущее
состояние с предыдущим или выдать полный отчёт.
- Найди источники правил. Начни с
AGENTS.md и известных файлов инструкций
для агентов, затем ищи локальные правила по словам agent, AI,
assistant, ИИ, instructions, rules, prompt, policy,
guidelines. Если проект использует навыки, учитывай локальные, глобальные
и подключённые символическими ссылками навыки, доступные агенту или явно
упомянутые в проекте.
Если проект является коллекцией навыков, публикуемой через APM или
аналогичный механизм распространения, считай все публикуемые навыки частью
источников правил проекта. В аудит входят .apm/skills/** или skills/**:
SKILL.md, references/**, evals/**, agents/**, scripts/** и связи
между ними. README.md и другая документация внутри дерева навыков тоже
проверяются, но
как контекст для человека, описание интерфейса навыка и место,
где могут быть ошибочно размещены правила для агента. Не используй такую
документацию как прямую инструкцию для агента, если в ней нет явного
адресата или формулировки для ИИ.
- Построй карту правил: файл, область действия, адресат, приоритет,
повторяемые темы, обязательность, срок жизни и связь с инструментами.
- Проверь проблемы: дубли, противоречия, неоднозначности, непроверяемые
требования, устаревшие сведения, слишком широкие запреты, разрастание,
смешение проектных и переносимых правил, локальные копии глобальных правил
или правил из символических ссылок, устаревшие затеняющие копии навыков в
других корнях, лишнюю нагрузку на контекст.
Если проект объявляет команду проверки, выполни её как часть аудита.
Успешным доказательством служат только терминальный код возврата и полный
вывод команды. Если среда сообщает, что команда ещё выполняется, дождись
результата штатным ожиданием или опросом. До терминального результата
пометь проверку незавершённой и не называй аудит успешным. В APM-коллекции
проверь объявленную
scripts.tests. Если доступна оснастка ai-setup-apm,
проверь найденные навыки по критерию исполнимого контракта выше. Отсутствие
контракта — отдельная находка, а не причина пропустить её из-за успешного
apm audit или ранних этапов другой команды.
- Самостоятельно перепроверь выводы: для каждого существенного замечания
найди подтверждение в текущем содержимом файлов или явно пометь его как
предположение. Не используй в доказательствах строки из памяти, старых
выводов или уже изменённых версий файлов.
- По умолчанию исправляй подтверждённые проблемы, а не откладывай их. Собери
контекст, ранжируй находки по влиянию, затем для каждой внеси правку,
проверь результат и зафиксируй, что сделано. Откладывай исправление только
в двух случаях: пользователь явно ограничил задачу диагностикой или прямо
попросил отложить, либо конкретное исправление требует решения владельца —
меняет смысл или область правил, конфликтует с более высоким приоритетом
правил или труднообратимо. Во втором случае остановись только по этой
проблеме, покажи варианты и рекомендацию, а остальные найденные проблемы
продолжай исправлять. После отработки последней найденной проблемы явно
сообщи, что все найденные проблемы отработаны. Для дефекта исполнимого
контракта направление исправления не считается результатом: измени скрипт,
контракт и фикстуру в доступной области, воспроизведи исходный отказ и
выполни тот же сценарий после правки. Ответ в будущем времени без различия
файлов и терминального результата проверки означает незавершённую работу.
До первой правки сохрани в рабочем результате команду, код возврата и
наблюдаемые неверные данные исходного запуска. Если расхождение не
воспроизводится, не вноси предполагаемое исправление: продолжи аудит или
назови ограничение доказательства.
- Масштаб каждого исправления выбирай по причине проблемы и проверяемому
эффекту. Сравни локальное уточнение, переработку структуры, удаление или
объединение правил, перенос деталей в справку и обновление проверок.
Меньший размер изменения не является преимуществом, если он оставляет тот
же риск повторения.
- После правок проверь результат: перечитай изменённые места, убедись, что
новые формулировки не создают новых конфликтов, и назови остаточные риски.
Перед итогом проверь барьер завершения: инструмент контрактных проверок
завершился терминально без ошибок; каждый диапазон невыполненных строк
получил активирующий сценарий либо обоснование в отчёте; исходный дефект
воспроизведён; тот же сценарий после правки завершился терминально и
подтвердил ожидаемые данные. Отсутствие любого свидетельства запрещает
заявлять, что аудит или исправление завершены.
- Не создавай запись в бэклоге, задачу, отчёт или другой отслеживающий
артефакт вместо недоступного исправления, если пользователь прямо не
попросил зафиксировать проблему или более приоритетное правило однозначно
не разрешает автоматическую запись. Правило о месте хранения открытых задач
определяет путь только после получения такого разрешения. Если исправление
лежит вне разрешённой области проекта, сообщи точный блокер и необходимое
внешнее изменение без записи в чужой проект.
Что читать дополнительно
references/audit-checklist.md — полный проверочный список и формат отчёта.
Границы
- Не превращай аудит в переписывание всех правил с нуля, если цель —
диагностика.
- Не удаляй правило только потому, что оно повторяется: сначала проверь, не
задаёт ли повтор приоритет, область действия или важное усиление.
- Удаляй локальный дубль глобального или подключённого через символическую
ссылку навыка только после проверки, что внешний источник реально доступен и
локальная копия не добавляет проектной области действия.
- Не объединяй проектные правила с переносимыми без явного основания.
- Не цитируй и не пересказывай правило как доказательство, пока не проверил,
что оно дословно или по смыслу присутствует в текущем снимке указанного
файла. Если строка исчезла после правок, перечитай файл и обнови вывод.
- Не считай найденный конфликт доказанным, пока не указаны обе конфликтующие
формулировки или их точные места.
- Не добавляй новые правила «для полноты», если они не закрывают найденный риск
или реальную ошибку агента.
- Не откладывай подтверждённое исправление без явного указания пользователя
или необходимости решения владельца.
- Не считай правило «открытые задачи хранятся в бэклоге» разрешением создать
новую запись. Для записи нужно отдельное явное полномочие.
Вывод
По умолчанию отчёт показывает выполненные исправления, а не список
предложений. Каждую проблему описывай сначала понятными словами: что было
сломано, при каких условиях проявлялось и чем это грозило. Затем скажи, что
именно сделано и какой проверкой это подтверждено. Пути, идентификаторы и
команды добавляй после понятного описания, когда они нужны для ссылки или
воспроизводимости, и не показывай их как единственное представление проблемы.
Для дефекта автоматизации обязательно покажи две строки: До правки с
командой, терминальным результатом и неверными данными и После правки с той
же командой и ожидаемыми данными.
Проблемы, отложенные по явному указанию пользователя или ожидающие решения
владельца, перечисли отдельно: та же понятная формулировка, варианты решения и
рекомендация. Если пользователь явно ограничил задачу диагностикой, используй
тот же формат, но вместо «что сделано» указывай одно конкретное действие. В
конце сообщи, что все найденные проблемы отработаны, и назови остаточные
риски.
1---2name: ai-audit-project3description: Используй, когда нужен глубокий аудит правил проекта для агента: `AGENTS.md`, другие инструкции, локальные и глобальные навыки и APM-коллекции.4---56# ai-audit-project78Если результат аудита ведёт к существенной правке источника истины, сначала9получи `ai-work-control/full`; сам аудит не повторяет этот контроль. Если10соседний навык недоступен, выполни его полный контрольный набор по доступному11контексту внутри текущей работы и продолжай. Не останавливай исправление только12из-за невозможности отдельно загрузить `ai-work-control`.1314Проверяй правила проекта как рабочую систему управления агентом: они должны15помогать агенту действовать точнее, не конфликтовать между собой и не тратить16контекст без пользы.1718## Назначение1920Навык нужен для глубокого аудита набора правил, которые управляют поведением21агента в репозитории. Он шире, чем проверка одного `AGENTS.md`: учитывает22несколько форматов инструкций, локальные и глобальные навыки, символические23ссылки, документацию для человека как контекст и проектные правила,24которые могут конфликтовать между собой. README, `docs/**` и похожие файлы не25становятся прямыми инструкциями для агента только из-за расположения или имени:26как правила учитывай только явные обращения к ИИ, агенту, помощнику или27инструменту автоматизации.2829Контрольные маршруты проекта проверяй по рабочим навыкам:3031- `ai-work-control`;32- `ai-rule-failure-analysis`;33- `ai-work-result-evaluation`.3435## Проверка поставляемой автоматизации3637Для публичных команд и скриптов навыков проверяй не только наличие контракта,38но и поведение на значимых вариантах входа.39401. Для Python-скриптов выполни доступный `run-skill-script-contract-tests.py`41 и дождись терминального результата. Инструмент выполняет сценарии42 `evals/script-contract-tests.json`, отклоняет вырожденные объявленные43 входы, считает ошибкой функцию скрипта, не выполненную ни одним сценарием и44 не объявленную в `unexercised_functions` с причиной, и печатает по каждому45 скрипту очередь невыполненных исполняемых строк. Успешный код возврата без46 разбора этой очереди не доказывает работоспособность автоматизации.472. Ошибку о вырожденном входе или невыполненной функции устраняй только новым48 успешным сценарием, который доказуемо исполняет целевую ветвь: после правки49 фикстуры повтори запуск и убедись, что целевые строки исчезли из очереди, а50 функция — из ошибок. Данные, при которых проверка проходит, но целевая51 ветвь не исполняется, не являются исправлением. Пустая коллекция не52 покрывает обработку элементов, одна запись — взаимодействие записей. Не53 добавляй ещё одну пустую фикстуру и не заменяй существующий сценарий54 другого класса входа без доказательства эквивалентности.553. Запись в `unexercised_functions` допустима только для защитного отказа или56 ветви, которую нельзя воспроизвести в переносимой фикстуре из-за внешней57 среды. Ветвь обработки данных обязана получить активирующий сценарий с58 проверкой значимых данных результата повторным чтением созданного файла, а59 не только кода возврата, `stdout` или наличия файла. Существующие записи60 `unexercised_functions` — предмет аудита: запись, скрывающая обработку61 данных, является находкой. Каждый оставшийся диапазон невыполненных строк62 классифицируй в текущем аудите: обработка данных получает сценарий,63 защитный отказ и внешняя среда — короткое обоснование в отчёте. Не64 переноси разбор очереди в остаточные риски, следующий аудит или бэклог.65 Вспомогательный тест вне контракта не заменяет контрактный сценарий.664. Считай `operations[].inputs` путями или настройками внутри фикстуры, а не67 аргументами команды, если контракт явно не задаёт иное; интерфейс команды68 бери из процедуры навыка. Само присутствие пути в `inputs` или фикстуре не69 является покрытием: доказательство — данные результата, производные от70 входа. Если эффект не виден напрямую, сравни два запуска с минимально71 различающимися входами.725. Не меняй исправную автоматизацию по предположению о назначении поля или73 команды. Если все документированные эффекты подтверждены, зафиксируй74 отсутствие находки и не расширяй контракт гипотетическими требованиями.75 Дефект сначала воспроизведи на копии фикстуры: сохрани команду, код76 возврата и неверные данные до правки, затем повтори тот же сценарий после77 правки. Исправление трассировщика или декларации входов не заменяет78 поведенческую проверку.7980Проверка автоматизации не завершена, пока инструмент не завершился81терминально, его ошибки не устранены доказуемо исполняющими сценариями или82допустимыми записями `unexercised_functions`, а каждый диапазон невыполненных83строк не получил активирующий сценарий либо названное в отчёте обоснование.84Итог со словами «остаточный риск» вместо этого разбора — незавершённый аудит.8586## Когда применять8788Применяй навык, если нужно:8990- проверить правила проекта для агента глубже, чем обычный обзор одного файла;91- найти дубли, противоречия, неоднозначности, устаревшие места и лишнюю92 стоимость контекста;93- сравнить несколько источников инструкций для ИИ;94- упорядочить правила между `AGENTS.md`, другими файлами инструкций, навыками и95 явно адресованными агенту фрагментами документации;96- подготовить достаточные правки правил после найденных проблем;97- сопровождать набор правил в разных репозиториях.9899Если задача ограничена только качеством одного или нескольких `AGENTS.md` без100широкого аудита правил, применяй `ai-audit-agents-md`. Если нужно создать,101изменить, сократить или разделить `AGENTS.md`, применяй102`ai-agents-md-maintenance`. Если задача меняет сам навык, применяй103`ai-skill-development`.104105## Обязательный порядок1061071. Проверь, какой экземпляр этого навыка выполняется: каталог загрузки показан108 при запуске. Найди одноимённые копии навыка в остальных корнях навыков —109 пользовательском каталоге навыков, проектных каталогах и установленных110 коллекциях — и сравни их содержимое. Если загруженная копия отстаёт от111 сопровождаемой, сообщи об этом первой строкой, продолжай работу по процедуре112 самой свежей копии и зафиксируй расхождение как первую находку «устаревшая113 затеняющая копия навыка».1142. Уточни цель проверки, только если без этого нельзя безопасно продолжить:115 найти проблемы, предложить правки, внести изменения, сравнить текущее116 состояние с предыдущим или выдать полный отчёт.1173. Найди источники правил. Начни с `AGENTS.md` и известных файлов инструкций118 для агентов, затем ищи локальные правила по словам `agent`, `AI`,119 `assistant`, `ИИ`, `instructions`, `rules`, `prompt`, `policy`,120 `guidelines`. Если проект использует навыки, учитывай локальные, глобальные121 и подключённые символическими ссылками навыки, доступные агенту или явно122 упомянутые в проекте.123 Если проект является коллекцией навыков, публикуемой через APM или124 аналогичный механизм распространения, считай все публикуемые навыки частью125 источников правил проекта. В аудит входят `.apm/skills/**` или `skills/**`:126 `SKILL.md`, `references/**`, `evals/**`, `agents/**`, `scripts/**` и связи127 между ними. `README.md` и другая документация внутри дерева навыков тоже128 проверяются, но129 как контекст для человека, описание интерфейса навыка и место,130 где могут быть ошибочно размещены правила для агента. Не используй такую131 документацию как прямую инструкцию для агента, если в ней нет явного132 адресата или формулировки для ИИ.1334. Построй карту правил: файл, область действия, адресат, приоритет,134 повторяемые темы, обязательность, срок жизни и связь с инструментами.1355. Проверь проблемы: дубли, противоречия, неоднозначности, непроверяемые136 требования, устаревшие сведения, слишком широкие запреты, разрастание,137 смешение проектных и переносимых правил, локальные копии глобальных правил138 или правил из символических ссылок, устаревшие затеняющие копии навыков в139 других корнях, лишнюю нагрузку на контекст.140 Если проект объявляет команду проверки, выполни её как часть аудита.141 Успешным доказательством служат только терминальный код возврата и полный142 вывод команды. Если среда сообщает, что команда ещё выполняется, дождись143 результата штатным ожиданием или опросом. До терминального результата144 пометь проверку незавершённой и не называй аудит успешным. В APM-коллекции145 проверь объявленную `scripts.tests`. Если доступна оснастка `ai-setup-apm`,146 проверь найденные навыки по критерию исполнимого контракта выше. Отсутствие147 контракта — отдельная находка, а не причина пропустить её из-за успешного148 `apm audit` или ранних этапов другой команды.1496. Самостоятельно перепроверь выводы: для каждого существенного замечания150 найди подтверждение в текущем содержимом файлов или явно пометь его как151 предположение. Не используй в доказательствах строки из памяти, старых152 выводов или уже изменённых версий файлов.1537. По умолчанию исправляй подтверждённые проблемы, а не откладывай их. Собери154 контекст, ранжируй находки по влиянию, затем для каждой внеси правку,155 проверь результат и зафиксируй, что сделано. Откладывай исправление только156 в двух случаях: пользователь явно ограничил задачу диагностикой или прямо157 попросил отложить, либо конкретное исправление требует решения владельца —158 меняет смысл или область правил, конфликтует с более высоким приоритетом159 правил или труднообратимо. Во втором случае остановись только по этой160 проблеме, покажи варианты и рекомендацию, а остальные найденные проблемы161 продолжай исправлять. После отработки последней найденной проблемы явно162 сообщи, что все найденные проблемы отработаны. Для дефекта исполнимого163 контракта направление исправления не считается результатом: измени скрипт,164 контракт и фикстуру в доступной области, воспроизведи исходный отказ и165 выполни тот же сценарий после правки. Ответ в будущем времени без различия166 файлов и терминального результата проверки означает незавершённую работу.167 До первой правки сохрани в рабочем результате команду, код возврата и168 наблюдаемые неверные данные исходного запуска. Если расхождение не169 воспроизводится, не вноси предполагаемое исправление: продолжи аудит или170 назови ограничение доказательства.1718. Масштаб каждого исправления выбирай по причине проблемы и проверяемому172 эффекту. Сравни локальное уточнение, переработку структуры, удаление или173 объединение правил, перенос деталей в справку и обновление проверок.174 Меньший размер изменения не является преимуществом, если он оставляет тот175 же риск повторения.1769. После правок проверь результат: перечитай изменённые места, убедись, что177 новые формулировки не создают новых конфликтов, и назови остаточные риски.178 Перед итогом проверь барьер завершения: инструмент контрактных проверок179 завершился терминально без ошибок; каждый диапазон невыполненных строк180 получил активирующий сценарий либо обоснование в отчёте; исходный дефект181 воспроизведён; тот же сценарий после правки завершился терминально и182 подтвердил ожидаемые данные. Отсутствие любого свидетельства запрещает183 заявлять, что аудит или исправление завершены.18410. Не создавай запись в бэклоге, задачу, отчёт или другой отслеживающий185 артефакт вместо недоступного исправления, если пользователь прямо не186 попросил зафиксировать проблему или более приоритетное правило однозначно187 не разрешает автоматическую запись. Правило о месте хранения открытых задач188 определяет путь только после получения такого разрешения. Если исправление189 лежит вне разрешённой области проекта, сообщи точный блокер и необходимое190 внешнее изменение без записи в чужой проект.191192## Что читать дополнительно193194- `references/audit-checklist.md` — полный проверочный список и формат отчёта.195196## Границы197198- Не превращай аудит в переписывание всех правил с нуля, если цель —199 диагностика.200- Не удаляй правило только потому, что оно повторяется: сначала проверь, не201 задаёт ли повтор приоритет, область действия или важное усиление.202- Удаляй локальный дубль глобального или подключённого через символическую203 ссылку навыка только после проверки, что внешний источник реально доступен и204 локальная копия не добавляет проектной области действия.205- Не объединяй проектные правила с переносимыми без явного основания.206- Не цитируй и не пересказывай правило как доказательство, пока не проверил,207 что оно дословно или по смыслу присутствует в текущем снимке указанного208 файла. Если строка исчезла после правок, перечитай файл и обнови вывод.209- Не считай найденный конфликт доказанным, пока не указаны обе конфликтующие210 формулировки или их точные места.211- Не добавляй новые правила «для полноты», если они не закрывают найденный риск212 или реальную ошибку агента.213- Не откладывай подтверждённое исправление без явного указания пользователя214 или необходимости решения владельца.215- Не считай правило «открытые задачи хранятся в бэклоге» разрешением создать216 новую запись. Для записи нужно отдельное явное полномочие.217218## Вывод219220По умолчанию отчёт показывает выполненные исправления, а не список221предложений. Каждую проблему описывай сначала понятными словами: что было222сломано, при каких условиях проявлялось и чем это грозило. Затем скажи, что223именно сделано и какой проверкой это подтверждено. Пути, идентификаторы и224команды добавляй после понятного описания, когда они нужны для ссылки или225воспроизводимости, и не показывай их как единственное представление проблемы.226Для дефекта автоматизации обязательно покажи две строки: `До правки` с227командой, терминальным результатом и неверными данными и `После правки` с той228же командой и ожидаемыми данными.229230Проблемы, отложенные по явному указанию пользователя или ожидающие решения231владельца, перечисли отдельно: та же понятная формулировка, варианты решения и232рекомендация. Если пользователь явно ограничил задачу диагностикой, используй233тот же формат, но вместо «что сделано» указывай одно конкретное действие. В234конце сообщи, что все найденные проблемы отработаны, и назови остаточные235риски.