mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-04 21:58:56 +00:00
feat(process): a track:ask draft may be written during the spec review (#729)
On track:ask every spec review round is 10-45 minutes of waiting, and rule #1 kept the author idle for all of it. Rule 10 (#738) judges a class A commit by its author date, so code written in the S4-spec-review epoch was always refused: nothing told a draft written against the reviewed text from a violation. The owner allowed changing rule #1 for this (decision 2026-10-01). A draft commit carries `Spec-Draft: sha256:<issueBodyDigest(body)>`, the hash the pipeline already writes as "Тело issue" into the review document anchor. Rule 10 accepts a class A commit written in S4 only when its S4 epoch (a repeated S4 does not restart it) was closed by S5-ready, the track at the author date was ask, and the trailer equals the body of the green, High 0 SPEC-REVIEW added inside that epoch, read from the range head or origin/dev. The first failing check is the one finding: trailer format, track, how the epoch ended, the missing document with a `git fetch origin dev` hint, or both hashes and the document name. A trailer on a commit written in an allowed epoch is a warn. Without the document reader rule 10 is exactly #738; main always passes one, and it reads git only when the range holds a draft. The task packet tells S4 on ask that a local draft is allowed while the branch stays closed, prints the trailer line, and in S5/S6 names the green spec review, whether the body changed since, and the --report check before push. SPEC-REVIEW documents are a separate input (specDocs) from the branch and origin/dev, so the previous verdict and the AC witness keep their source. PROCESS.md gets §11.8 and the points that refer to it (§1, §2.4-2.6, §3 item 1, §7.2, §9, §10.2 item 10, §12); AUTHOR.md, REVIEWER.md and AGENTS.md follow, with three new key rules in process-digests. The pre-push hook fixture copies the modules process-gate now imports. Issue: #729 User-Visible: no Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
This commit is contained in:
+38
-4
@@ -14,7 +14,9 @@
|
||||
|
||||
- **Изменение продуктового кода без issue запрещено.** Код меняется только
|
||||
из `S5-ready` или дальше ([§1](../../PROCESS.md#1-основное-правило),
|
||||
[§3 п.1–2](../../PROCESS.md#3-правила)).
|
||||
[§3 п.1–2](../../PROCESS.md#3-правила)). Исключение — локальный черновик на
|
||||
`track:ask` во время ревью ТЗ
|
||||
([§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз)).
|
||||
- Классы: A — продукт (`src/**`, `custom_components/houseplan/**/*.py`,
|
||||
манифесты, i18n); B — гейты и инструменты (`test/**`, `tests_backend/**`,
|
||||
`demo/**`, `scripts/**`, `.github/**`, конфиги сборки, `package*.json`);
|
||||
@@ -112,6 +114,34 @@
|
||||
бюджет, сразу ставит `review-4`; исчерпание — решение владельца: разделить,
|
||||
отклонить, арбитраж ([§4](../../PROCESS.md#4-лимит-циклов-ревью-4)).
|
||||
|
||||
## Черновик во время ревью ТЗ (`S4-spec-review`)
|
||||
|
||||
- Черновик — возможность, а не обязанность: только `track:ask`, только после
|
||||
того, как ТЗ отправлено и стоит `S4-spec-review`; под `blocked` и `review-4`
|
||||
не ведётся. Цена — код по непринятому тексту, который после жёлтого или
|
||||
красного вердикта переделывается
|
||||
([§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз)).
|
||||
- Один checkout, одна локальная ветка `issue/<NN>-<slug>`; до `S5` не пушится
|
||||
ни ветка, ни коммиты; статус остаётся `S4`. Комментарий «Черновик:» по
|
||||
шаблону, черновик занимает слот WIP
|
||||
([§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз),
|
||||
[§7.2](../../PROCESS.md#72-шаблоны-комментариев),
|
||||
[§2.6](../../PROCESS.md#26-в-разработке--реализация)).
|
||||
- Каждый черновой коммит несёт ровно один трейлер `Spec-Draft: sha256:<хеш>` —
|
||||
строку печатает пакет задачи в разделе «Черновик»
|
||||
([§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз)).
|
||||
- Жёлтый или красный вердикт — черновик остановить: коммиты по прежнему тексту
|
||||
гейт не примет, переписывать дату автора запрещено; новый черновик — в
|
||||
следующей эпохе `S4` с новым хешем
|
||||
([§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз),
|
||||
[§12](../../PROCESS.md#12-запрещено)).
|
||||
- В ветку черновик попадает только после зелёного ревью ТЗ: `S6-in-progress`,
|
||||
`git fetch`, ребейз на `origin/dev` (или на `origin/issue/<NN>-*`, если ветка
|
||||
уже была; без force-push), проверка
|
||||
`node scripts/process-gate.mjs --range origin/dev..HEAD --issues --report`,
|
||||
push ([§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз),
|
||||
[§10.2](../../PROCESS.md#102-что-проверяет-process-gatemjs)).
|
||||
|
||||
## Реализация (`S6-in-progress`)
|
||||
|
||||
- Занятие: `Взял: <роль> · сессия <id> · ветка issue/NN-slug`; WIP — одна
|
||||
@@ -236,9 +266,13 @@
|
||||
|
||||
## Запрещено
|
||||
|
||||
- Код без issue или из статуса раньше `S5-ready`; ТЗ после кода (кроме
|
||||
хотфикса); ревью своей работы; пятый цикл ревью; issue вместо возврата на
|
||||
правки ([§12](../../PROCESS.md#12-запрещено)).
|
||||
- Код без issue или из статуса раньше `S5-ready` (кроме черновика
|
||||
`track:ask` по §11.8); ТЗ после кода (кроме хотфикса); ревью своей работы;
|
||||
пятый цикл ревью; issue вместо возврата на правки
|
||||
([§12](../../PROCESS.md#12-запрещено)).
|
||||
- Push черновика до `S5`; перенос черновика по устаревшему ТЗ коммитами с
|
||||
переписанной датой автора ([§12](../../PROCESS.md#12-запрещено),
|
||||
[§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз)).
|
||||
- Попутные правки «раз уж я здесь»; параллельные бэклоги в файлах;
|
||||
force-push в `dev`; закрытие issue до выпуска беты
|
||||
([§12](../../PROCESS.md#12-запрещено), [§3 п.17](../../PROCESS.md#3-правила)).
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
вынесенный владельцу, ревьюер снимает и решает по существу. Технический
|
||||
спор автора и ревьюера решается вердиктом, а не владельцем
|
||||
([§7.1](../../PROCESS.md#71-цепочка)).
|
||||
- Черновик автора ревьюер ТЗ не читает и доводом не считает: судится тело
|
||||
issue ([§2.4](../../PROCESS.md#24-тз-на-ревью),
|
||||
[§11.8](../../PROCESS.md#118-черновик-кода-во-время-ревью-тз)).
|
||||
|
||||
## Код-ревью
|
||||
|
||||
|
||||
Reference in New Issue
Block a user