Проверка согласованности документации и реализации
Сопоставлять нормативные требования с кодом и подтверждающими тестами как
независимый аудитор. Не исправлять ни одну сторону расхождения. Создавать и
обновлять только файл замечаний.
Перед созданием отчёта полностью прочитать
report-template.md и использовать заданные там
структуру, значения полей и правила обновления.
Рабочий процесс
- Прочитать действующие инструкции репозитория.
- Определить режим и область проверки по тем же правилам, что и пользовательский
запрос: конкретный компонент означает ограниченную проверку, весь сервис —
полную.
- Определить источники требований в порядке приоритета:
- явно указанные пользователем документы;
- нормативная документация проекта, обычно в
docs/;
- контрактные артефакты OpenAPI, AsyncAPI, схем сообщений и конфигурационные
спецификации;
- README только при однозначном описании поведения или контракта.
- Не считать источником требований код, тесты, комментарии, docstring, историю
Git, сообщения коммитов и merge request, а также documentation-writing скилы.
Использовать код и тесты только как доказательства реализации.
- Отличать нормативное требование от обзора, примера, предложения, черновика и
открытого вопроса. Не проверять реализацию против ненормативного текста.
- Перед содержательным анализом и командами вывести в чат стартовую сводку:
режим, область и её основание, документацию, реализацию, тесты, планируемые
проверки, исключения и путь
.review/documentation-consistency.md. После
однозначной сводки не ждать подтверждения.
- Если область нужно расширить, сначала сообщить отдельную обновлённую сводку.
- Для каждого однозначного требования найти реализацию и подтверждающие тесты.
Проверять наблюдаемое поведение, входы, результаты, ошибки, порядок действий,
границы согласованности и внешние контракты только в заявленной области.
- Проверять обратное направление: находить реализованное публичное или системно
значимое поведение, которое противоречит нормативной документации либо должно
быть в ней закреплено по установленным правилам проекта.
- Найти заданные репозиторием профильные lint, type-check и test-команды.
Выполнять сначала узкие безопасные проверки; полный обязательный набор — при
полном аудите, если он доступен без нового разрешения.
- Не запускать автоисправление, обновление snapshots/golden-файлов, установку
зависимостей, внешнюю инфраструктуру или сетевые сервисы без разрешения.
- Создавать замечание только при доказанном расхождении. Для отсутствующей
реализации проверить ожидаемую и альтернативные области и описать границы
поиска. Для теста формулировать
подтверждающий тест не найден, если полный
поиск нельзя гарантировать.
- При конфликте нормативных документов создавать одно замечание со статусом
Требует согласования, типом Требование и приоритетом по влиянию. Не
выбирать самостоятельно удобный для кода вариант.
- Подозрения, недоступные источники и непроверяемое внешнее поведение записывать
в ограничения, а не в замечания.
- Обновить отчёт по правилам шаблона. При ограниченной проверке не изменять
замечания вне области.
- Проверить корневой
.gitignore. Если отдельной строки .review/ нет,
предложить пользователю добавить её. Не изменять .gitignore без согласия и
не использовать .git/info/exclude вместо проектного правила.
- Проверить
git status и убедиться, что отчёт не добавлен в index.
- Завершить краткой сводкой: новые и обновлённые замечания, количества по
статусам и приоритетам, высокоприоритетные замечания, вопросы согласования,
выполненные проверки, ограничения и ссылка на отчёт. Не начинать исправления.
Классификация расхождений
Проверять следующие классы без добавления отдельного обязательного поля:
- требование не реализовано;
- реализация противоречит требованию;
- реализовано противоречащее или требующее нормативного закрепления поведение;
- требование не подтверждено найденным тестом;
- нормативные документы противоречат друг другу;
- соответствие невозможно проверить.
Последний класс помещать в ограничения, если само расхождение не доказано.
Работа с источниками
- Явно указанную пользователем область документации ставить выше автоматически
обнаруженной.
- Ссылаться на точный файл, раздел или контракт.
- При конфликте перечислять все источники и конкретные несовместимые варианты.
- Не считать открытый вопрос
Требованием или Рекомендацией.
- Считать явно необязательное предпочтение
Рекомендацией; его нарушение всегда
имеет приоритет Низкий.
- Для требования определять приоритет по наблюдаемому влиянию.
Границы изменений
Разрешено изменять .review/documentation-consistency.md и создавать каталог
.review/ для него. Строку .review/ разрешено добавлять в корневой .gitignore
только после согласия пользователя. Не исправлять код, тесты или документацию и
не менять .git/info/exclude.
1---2name: documentation-implementation-consistency-review3description: Проверка соответствия реализации нормативной документации проекта с анализом подтверждающих тестов и записью расхождений в `.review/documentation-consistency.md`. Использовать для полного или ограниченного аудита требований, контрактов и реализованного поведения без изменения кода или документации. Не использовать для проектирования документации, восстановления требований из кода или непосредственного исправления замечаний.4---56# Проверка согласованности документации и реализации78Сопоставлять нормативные требования с кодом и подтверждающими тестами как9независимый аудитор. Не исправлять ни одну сторону расхождения. Создавать и10обновлять только файл замечаний.1112Перед созданием отчёта полностью прочитать13[report-template.md](references/report-template.md) и использовать заданные там14структуру, значения полей и правила обновления.1516## Рабочий процесс17181. Прочитать действующие инструкции репозитория.192. Определить режим и область проверки по тем же правилам, что и пользовательский20 запрос: конкретный компонент означает ограниченную проверку, весь сервис —21 полную.223. Определить источники требований в порядке приоритета:23 - явно указанные пользователем документы;24 - нормативная документация проекта, обычно в `docs/`;25 - контрактные артефакты OpenAPI, AsyncAPI, схем сообщений и конфигурационные26 спецификации;27 - README только при однозначном описании поведения или контракта.284. Не считать источником требований код, тесты, комментарии, docstring, историю29 Git, сообщения коммитов и merge request, а также documentation-writing скилы.30 Использовать код и тесты только как доказательства реализации.315. Отличать нормативное требование от обзора, примера, предложения, черновика и32 открытого вопроса. Не проверять реализацию против ненормативного текста.336. Перед содержательным анализом и командами вывести в чат стартовую сводку:34 режим, область и её основание, документацию, реализацию, тесты, планируемые35 проверки, исключения и путь `.review/documentation-consistency.md`. После36 однозначной сводки не ждать подтверждения.377. Если область нужно расширить, сначала сообщить отдельную обновлённую сводку.388. Для каждого однозначного требования найти реализацию и подтверждающие тесты.39 Проверять наблюдаемое поведение, входы, результаты, ошибки, порядок действий,40 границы согласованности и внешние контракты только в заявленной области.419. Проверять обратное направление: находить реализованное публичное или системно42 значимое поведение, которое противоречит нормативной документации либо должно43 быть в ней закреплено по установленным правилам проекта.4410. Найти заданные репозиторием профильные lint, type-check и test-команды.45 Выполнять сначала узкие безопасные проверки; полный обязательный набор — при46 полном аудите, если он доступен без нового разрешения.4711. Не запускать автоисправление, обновление snapshots/golden-файлов, установку48 зависимостей, внешнюю инфраструктуру или сетевые сервисы без разрешения.4912. Создавать замечание только при доказанном расхождении. Для отсутствующей50 реализации проверить ожидаемую и альтернативные области и описать границы51 поиска. Для теста формулировать `подтверждающий тест не найден`, если полный52 поиск нельзя гарантировать.5313. При конфликте нормативных документов создавать одно замечание со статусом54 `Требует согласования`, типом `Требование` и приоритетом по влиянию. Не55 выбирать самостоятельно удобный для кода вариант.5614. Подозрения, недоступные источники и непроверяемое внешнее поведение записывать57 в ограничения, а не в замечания.5815. Обновить отчёт по правилам шаблона. При ограниченной проверке не изменять59 замечания вне области.6016. Проверить корневой `.gitignore`. Если отдельной строки `.review/` нет,61 предложить пользователю добавить её. Не изменять `.gitignore` без согласия и62 не использовать `.git/info/exclude` вместо проектного правила.6317. Проверить `git status` и убедиться, что отчёт не добавлен в index.6418. Завершить краткой сводкой: новые и обновлённые замечания, количества по65 статусам и приоритетам, высокоприоритетные замечания, вопросы согласования,66 выполненные проверки, ограничения и ссылка на отчёт. Не начинать исправления.6768## Классификация расхождений6970Проверять следующие классы без добавления отдельного обязательного поля:7172- требование не реализовано;73- реализация противоречит требованию;74- реализовано противоречащее или требующее нормативного закрепления поведение;75- требование не подтверждено найденным тестом;76- нормативные документы противоречат друг другу;77- соответствие невозможно проверить.7879Последний класс помещать в ограничения, если само расхождение не доказано.8081## Работа с источниками8283- Явно указанную пользователем область документации ставить выше автоматически84 обнаруженной.85- Ссылаться на точный файл, раздел или контракт.86- При конфликте перечислять все источники и конкретные несовместимые варианты.87- Не считать открытый вопрос `Требованием` или `Рекомендацией`.88- Считать явно необязательное предпочтение `Рекомендацией`; его нарушение всегда89 имеет приоритет `Низкий`.90- Для требования определять приоритет по наблюдаемому влиянию.9192## Границы изменений9394Разрешено изменять `.review/documentation-consistency.md` и создавать каталог95`.review/` для него. Строку `.review/` разрешено добавлять в корневой `.gitignore`96только после согласия пользователя. Не исправлять код, тесты или документацию и97не менять `.git/info/exclude`.