diff --git a/PROCESS.md b/PROCESS.md index cb484c64..0723ebe2 100644 --- a/PROCESS.md +++ b/PROCESS.md @@ -237,16 +237,36 @@ S1-new → S2-analysis → S3-spec → S4-spec-review ⟲ → S5-ready → Порядок: -1. найти вердикт предыдущего раунда и **SHA, на котором он получен**; SHA в - вердикте не назван — это находка; +1. найти вердикт предыдущего раунда и **материал, на котором он получен**. + Материал объявлен блоком «Материал раунда» в конце документа предыдущего + раунда: конвейер дописывает туда SHA ветки, **дерево** материала и **блоб** + каждого ТЗ вместе с командами поиска (issue #416). Блок машинный — править + его руками не нужно и не следует; 2. объявить дельту: `git diff <тот SHA>..HEAD` для кода, дифф файла ТЗ либо тела - issue для этапа ТЗ; + issue для этапа ТЗ. + + **Если SHA не резолвится — это не находка, а обычное дело.** Ветку задачи + между раундами перебазируют, сквошат или удаляют, и SHA умирает: по корпусу + ревью таких объявлений 98 из 804. Материал в этом случае берётся по якорям, + которые ребейз не меняет, потому что адресуются содержимым: + + ``` + git log --all --format='%H %T' | grep <дерево> + git log --all --find-object=<блоб> -- <путь к ТЗ> + ``` + + Находкой остаётся другое: **SHA, мёртвый уже в момент публикации отчёта** — + он означает, что значение сняли до `amend` или `rebase` и не сверили перед + выводом, как требует §7.2. Это отличие не теоретическое: на #403 оба + источника, автор и ревьюер, независимо назвали один и тот же осиротевший + SHA, и следующий раунд восстанавливал коммит по содержимому диффа руками + (issue #413). Конвейер теперь такую публикацию останавливает сам; 3. по каждой находке предыдущего раунда показать, **чем именно она закрыта** — строкой кода или текста, а не заявлением автора; 4. заново проверять только те AC, чьё доказательство дельта задевает; 5. **раздел «Унаследовано из r»** обязателен: что принято без повторной - проверки, со ссылкой на документ того раунда и SHA. Без перечня сокращение - превращается в молчаливое доверие. + проверки, со ссылкой на документ того раунда и его материал. Без перечня + сокращение превращается в молчаливое доверие. Дешёвые гейты (`typecheck`, `test`, `build` со сверкой копий бандла) гоняются в каждом раунде: код изменился, а стоят они минуты. Тяжёлые — по дельте (§10.2).