From a73e1cdd2218d340177a63fa0143d859af674f1a Mon Sep 17 00:00:00 2001 From: Matysh Date: Wed, 2 Sep 2026 08:16:48 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=C2=A72.10=20asks=20for=20the=20materia?= =?UTF-8?q?l,=20not=20just=20for=20a=20SHA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Канон требовал назвать SHA предыдущего раунда и считал ненайденный SHA находкой. Механика теперь даёт больше: конвейер дописывает в документ дерево материала и блоб каждого ТЗ — их ребейз не меняет, потому что git адресует их содержимым (issue #416). Отсюда правка по существу: неразрешимый SHA сам по себе перестаёт быть находкой. Ветку задачи между раундами перебазируют, сквошат или удаляют — по корпусу ревью таких объявлений 98 из 804, и объявлять это дефектом значит объявлять дефектом обычную работу. Материал в таком случае берётся по якорям, и команды приведены прямо в пункте. Находкой осталось то, чем #413 и был: SHA, мёртвый уже в момент публикации. Он означает, что значение сняли до amend или rebase и не сверили перед выводом отчёта, как требует §7.2. Такую публикацию конвейер теперь останавливает сам. Issue: #416 User-Visible: no --- PROCESS.md | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) 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).