Иммутабельность
Контракт иммутабельности для всех стадий pipeline: заморозка артефакта, паритет V-AC, паритет для не-кодовых задач, антитавтологическое правило и переход возврата к источнику.
Обзор
Скилл определяет контракт иммутабельности для каждой стадии pipeline Datarim. Артефакт, произведённый стадией, НЕ ДОЛЖЕН ослабляться ради ограничения, обнаруженного на последующей стадии. Когда реальное ограничение делает артефакт невыполнимым, формальный путь ревизии даёт переход возврата к источнику.
Основания: Design by Contract (Meyer, 1986) — пред- и постусловия суть необсуждаемые спецификации. ADR (Nygard, 2011) — принятые решения иммутабельны, изменения вносятся вытеснением, а не правкой. Configuration Management (IEEE 828-2012) — базовая линия меняется только через формальный контроль изменений.
Загрузка
Загружается каждой командой pipeline (/dr-prd, /dr-plan, /dr-design, /dr-do, /dr-qa, /dr-compliance), а также агентами architect и developer. Общая секция и общие правила загружаются всегда; пофазовые фрагменты — условно, потребляющей командой. Задачи frontend-UI дополнительно загружают фрагмент Frontend-UI.
Общие правила
Правило иммутабельности артефакта
Артефакт «ослаблен», если: требование (V-AC, D-REQ) смягчено; проектное решение молча отменено без нового creative-документа; тест или команда проверки ослаблены, чтобы падающий результат прошёл; критерий выполнения пункта чеклиста сужен; критерий проверки качества переформулирован, чтобы избежать провала; проверка compliance пропущена или понижена; визуальная базовая линия заменена без ревью диффа оператором.
Допустимы только два ответа: починить работу ниже по потоку (артефакт верен, работа — нет) либо признать, что артефакт задал неверный контракт — это запускает переход возврата к источнику.
Правило паритета V-AC
Строки V-AC на любой стадии подчинены той же иммутабельности. V-AC, проверяющий поставку, НЕ ДОЛЖЕН заменяться на более слабую проверку, чтобы поставка прошла без соответствия исходному критерию. Расширяет правило паритета V-AC из TDD-дисциплины на все стадии pipeline.
Правило паритета для не-кодовых задач
Для не-кодовых задач «тестом» служит чеклист. Критерий выполнения пункта НЕ ДОЛЖЕН ослабляться — «сокращение объёма чеклиста» есть не-кодовый эквивалент ослабления утверждения V-AC.
Антитавтологическое правило
Критерий проверки ДОЛЖЕН быть фальсифицируемым. Критерий, проходящий всегда независимо от состояния реализации, — тавтология, и его следует удалить или переформулировать. Примеры: «проверить, что файл существует» (проходит всегда, если реализация его создаёт), «проверить, что переменная X истинна» (проходит всегда, если её инициализирует тест-раннер).
Переход возврата к источнику
Триггер. Настоящий блокер, действительно требующий изменения иммутабельного артефакта — не сложность реализации (никогда не является основанием), а обнаруженное ограничение: невыполнимые предусловия, неверный уровень спецификации, вновь понятое требование, изменение внешнего API, обесценившее исходный контракт.
Кто решает. Исполнитель стадии не решает в одиночку. Эскалация оператору с (а) дословным исходным текстом артефакта, (б) конкретной причиной изменения, (в) предлагаемым новым текстом.
Где фиксируется. В datarim/tasks/{TASK-ID}-task-description.md § Решения — с идентификатором артефакта, дословным оригиналом, причиной, дословным предложением и целью маршрутизации. Запись делается ДО изменения артефакта.
Как стадия возобновляется. После одобрения оператором и обновления (или перевыпуска) артефакта вышестоящей стадией исполнитель продолжает работу. Рекомендация следующего шага ДОЛЖНА вести на стадию — владельца иммутабельного артефакта, а не продолжать текущую.
Таблица маршрутизации
- V-AC / D-REQ из PRD → владелец
/dr-prd→ маршрут на/dr-prd - V-AC / шаг реализации из плана → владелец
/dr-plan→ маршрут на/dr-plan - Проектное решение (creative-документ) → владелец
/dr-design→ маршрут на/dr-design - Тест / команда проверки V-AC → владелец
/dr-do(фиксируется в плане) → маршрут на/dr-plan - Критерий проверки качества / структура слоёв → владелец
/dr-qa→ маршрут на/dr-qa - Пункт чеклиста compliance → владелец
/dr-compliance→ маршрут на/dr-qaдля перепроверки - Визуальная базовая линия (frontend) → владелец
/dr-doс подтверждением оператора → маршрут на/dr-do
Чем это НЕ является
- НЕ лазейка для случаев сложной реализации.
- НЕ пост-фактум рационализация без доказательств.
- НЕ единоличное решение — требуется ревью оператора.
Пофазовые фрагменты
Каждый фрагмент загружается условно командой — владельцем стадии и определяет иммутабельный артефакт этой стадии, путь его вытеснения и специфические для стадии правила иммутабельности. Фрагменты существуют для /dr-prd, /dr-plan, /dr-design, /dr-do, /dr-qa, /dr-compliance и работ по frontend-UI.