Files
dev-skills/av-dev-tasks/skills/tasks/references/task-feature.md
T
avandClaude Opus 5 12882911a9 словарь, манифесты, README: одно слово — одна вещь, одно описание — один дом
- «готовность» значила и «запись можно брать», и «что считается сделанным»;
  второй смысл стал «определением сделанного» — своё же правило про занятое
  слово запрещало это прямо
- «пайплайн» жил в 24 местах вне журналов при том, что DECISIONS фиксирует
  его уход «целиком»; рабочее имя — конвейер
- «чекпоинт» в review значил стадию и проход, в resolve — остановку человеку;
  слово оставлено за остановкой
- у описания плагина было два дома, и три из четырёх уже разошлись. Сведены,
  и класс закрыт машиной: frontmatter.py сверяет plugin.json с marketplace,
  гейт разбужен на *.json
- README врал про односторонние зависимости и терял healthcheck на диаграмме
- перечень агентов в REMAINING отстал на два поколения

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 18:45:39 +03:00

5.5 KiB

feature — снаружи появляется то, чего не было

Задача, после которой наблюдаемое поведение меняется в сторону новой возможности. Отвечает на «что нужно сделать» и пишется глаголом в неопределённой форме.

Общая форма записи (мета, слаг, строка индекса) — task-format.md. Здесь только то, что у этого типа своё.

Схема

Заголовок отвечает на что нужно сделать («Печатать поле одним куском кода»)
Обязательные разделы Затрагивает, Критерии приёмки
Допустимые сверх того Рамки, Вопросы
Поле места Категория — полка домена беклога
Цель (goal:<слаг>) обязательна
Индекс BACKLOG.md
Берётся в работу да

Цель обязательна, и это единственный тип, у которого так. Новая возможность и есть содержание цели: подходящей нет — либо она заводится, либо перед тобой не feature. ready без цели откажет.

Алгоритм

  1. Найти цель или завести её. Задача без цели, названная функцией, — самый частый способ пронести в беклог работу, которой никто не заказывал.
  2. Назвать границы в разделе Затрагивает: эндпоинт или команда, таблица и миграция, формат на диске, публичный тип пакета, внешний сервис. Названы границы, а не замысел: «переписать хранилище на новый драйвер» — замысел, таблица points и её миграция — граница. Проверяется вопросом «это можно назвать до того, как решено как делать?».
  3. Написать критерии приёмки — 2–5 проверяемых утверждений списком, у каждого назван оракул. Не «работает корректно», а «повторный прогон даёт тот же отпечаток — оракул: команда сверки».
  4. Сказать, какую строку «Завершения» цели задача двигает. Одной строкой в теле. Это защита от задачи «отрефакторить X»: она проваливается не потому, что невидима снаружи, а потому, что не находит строки, к которой относится.
  5. Проверить, что задача одна. Отвечается всё, но задача не делается одним заходом и не мерджится целиком — это несколько задач под одной целью, дроби сразу (split.md). Промежуточного зонтика между целью и задачей нет.
  6. Реализация — дело конвейера проекта, не этого скилла. Закрывается close <слаг> --implemented: файл и строка удаляются, суть переезжает в openspec/specs/ и документацию.

Что видит машина, а что человек

Схему типа судит ready на входе в работу: наличие непустого раздела Затрагивает, число критериев (меньше двух — отказ, больше пяти — замечание) и цель. Наличие оракула проверяется эвристикой — словом «оракул» в пункте. check этого поимённо не говорит, а считает строкой здоровья (SKILL.md, «Что механизировано, а что нет»).

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

Критерии — пол, но расхождение с ними есть дефект критериев. Видишь, что критерии закрыты, а суть задачи не достигнута — правь критерии и возвращай задачу, а не держи невидимое сверх-требование: иначе исполнитель никогда не знает, закончил ли, и мотивирован занижать критерии заранее.