Files
dev-skills/av-dev-pm/skills/tasks/references/task-fix.md
T
avandClaude Opus 5 cbfae90f3f словарь: пять слов сняты, девять закрыты списком вместо оговорки «прижилось»
Проход упрощения уткнулся в один класс у всех пяти агентов: слово, живущее в
трёх-шести файлах разом. Правка в одном месте развела бы словарь, правка во
всех — уже не упрощение текста скилла. Каждый честно остановился и записал слово
в отчёт, и одни и те же слова всплыли в разных отчётах. Разобрано этим проходом.

Причина, по которой они вообще накопились, оказалась в самом уставе языка. Он
разрешал не переводить «термин, у которого нет точного русского эквивалента и
который в команде уже прижился». Проверить это нельзя: прижившимся выглядит
любое слово, встреченное трижды, — и ровно так рассудили пять агентов подряд,
каждый независимо. Оговорка заменена закрытым списком из девяти терминов с
колонкой «что называет»: интейк, триаж, провенанс, дедуп, чек-лист, дифф,
промпт, сущности OpenSpec, роды проходов ревью. Интейк оставлен потому, что
«заведение» называет создание файла, и слить их значит смешать две операции;
провенанс — потому что «источник» рядом называет саму запись, а не свойство
числа. Слово не из списка и не из таблицы имён вещей — находка, а не стиль.

Список заведён домом язык-словарь в language.md и копией в уставе doc-wording.
Копия обязательна: агент работает в репозитории проекта, где плагина может не
быть, и без списка предъявил бы интейк как англицизм.

Снято пять слов, 29 мест: конфляция → смешение, декорреляция → разведённость,
непоймание → почему не поймали, эвал-сет → проверочный набор, гайд →
руководство. Латинизм или калька при живом русском слове в каждом случае.

Разбор декорреляции показателен: проект уже владел нужным словом — «агенты
разведены по глубине», «разведены по охвату» — и держал рядом латинский синоним
того же понятия. Это не англицизм, а второй дом для слова.

Непоймание снято ещё и потому, что форма журнала дефектов, которую канон кладёт
в проекты, спрашивает «Почему не поймали», а проза рядом называла это «причиной
непоймания». Скелет и проза о скелете говорили разными словами.

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

Тема 32 в DECISIONS.md, следствия 124-126. Нумерация правил в уставе doc-wording
сдвинута: словарь встал шестым, жаргон и далее уехали на единицу.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 15:35:06 +03:00

71 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐞 `fix` — поведение расходится с заявленным
Задача о расхождении между тем, что система делает, и тем, что про неё заявлено
— в спеке, в инварианте `CLAUDE.md`, в критериях закрытой задачи. Отвечает на
**«что нужно сделать»**, глаголом в неопределённой форме, перед ним допускается
«не»: «Не отбрасывать молча лишние символы в ходе».
Общая форма записи (мета, слаг, строка индекса) — [task-format.md](task-format.md).
Здесь только то, что у этого типа своё.
## Схема
| | |
| --- | --- |
| Заголовок отвечает на | что нужно сделать |
| Обязательные разделы | **`Воспроизведение`**, `Затрагивает`, `Критерии приёмки` |
| Допустимые сверх того | `Рамки`, `Вопросы` |
| Поле места | **Категория** — полка домена беклога |
| Цель (`goal:<слаг>`) | необязательна |
| Индекс | `BACKLOG.md``SPRINT.md` |
| Берётся в спринт | да |
## `Воспроизведение` — раздел, которого нет у других типов
**Не воспроизводится — это `research`, а не `fix`.** Правило было записано и
раньше, но проверять его было нечем, и «починки» без единого шага повторения
уходили в спринт наравне с остальными. Раздел делает правило проверяемым: он
называет, **что сделать, чтобы расхождение проявилось, и что при этом видно
вместо ожидаемого**.
Пишется двумя частями, обе обязательны по смыслу:
- **шаги или вход** — команда, запрос, файл, последовательность действий;
- **что видно и что ожидалось** — «ввод `а1б2` ходит в `a1`, а должен быть
отвергнут с ошибкой».
Это не критерии приёмки и не дублирует их: воспроизведение описывает **сегодня**,
критерии — **завтра**. Пропущенное воспроизведение чаще всего означает одно из
двух: расхождение приняли на слово, или его вообще нет, а есть недовольство
поведением — и тогда это `feature`, а не `fix`.
## Алгоритм
1. **Воспроизвести.** Не удаётся — это `research`: заведи вопрос «при каких
условиях проявляется» и не притворяйся, что чинить есть что.
2. **Найти, чему поведение противоречит.** Спека, инвариант, критерий закрытой
задачи. Не противоречит ничему — это `feature`: поведение никогда и не было
заявлено, а тип, оставшийся от первой формулировки, врёт ровно там, где по
нему отбирают.
3. **Записать воспроизведение** — шаги и наблюдаемое против ожидаемого.
4. **Назвать границы** в `Затрагивает`: починка часто трогает больше, чем
кажется по объёму текста, и оценка систематически занижена именно здесь.
5. **Написать критерии приёмки** — 2–5 утверждений с оракулами. У починки
почти всегда есть парный критерий: **прежнее поведение не сломалось**
(«ввод `а1` принимается по-прежнему»). Без него починка чинит одно и ломает
соседнее.
6. **Цель не выдумывать.** `fix` служит работоспособности, а не направлению, и в
набор спринта входит помимо его цели. Придуманная цель — то же враньё, от
которого спасает тип.
7. **Записать дефект в журнал** `docs/review.md` с пометкой «проскочил / пойман
ревью». Проскочившие — проверочный набор для калибровки конвейера; пойманные с
оракулом — лучшая опора для прохода ревью: проектные, воспроизводимые,
однажды оказавшиеся правдой.
## Что видит машина, а что человек
`check` и `sprint take` смотрят на **наличие непустого** `Воспроизведения` и
`Затрагивает` и на **число** критериев. Годность воспроизведения — человеку:
шаги, по которым ничего не воспроизводится, машина от годных не отличает, и
делать вид, что проверено больше проверенного, хуже, чем не проверять вовсе.