mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-01 20:29:00 +00:00
feat(process): risk by changed hunks decides ship and informs show (#707)
The ship limits count lines and files but not what was touched: a 12-line pointerdown handler passed them like a typo and merged unread. The track rule also lived twice - the guard computed the cycle limit in bash while process-track.mjs computed the track, and the two disagreed on multiple track labels. The packet still told authors to rebase show/ship branches that merge cleanly. - scripts/change-risk.mjs: one pure classifier over `git diff -U0` from the merge base. Class A lines only; comments, blank lines and pure renames give no risk; deletions do. Area and token rules per class (geometry, touch, migration, devices, perf, ux, visual render/ui), evidence as path:line, five per class. - process-track.mjs: owner confirmation is a comment line "Трек: <x> — решение владельца" by the repo owner (latest wins, only for the current track); several track labels read as the strictest with a warning; cycleLimit, guardLimit and rebaseBeforeReview are the single source. `stage` makes the whole S7 track decision in one call: ship with risk and no confirmation is raised to show with evidence, a confirmed ship keeps merging without the model and records the risk for the batch review; show/ask get a risk note for the reviewer. - _process.yml: the guard asks process-track.mjs for the limit and keeps no track logic; the track step calls the script once and only executes its raise flag and comment file; risk_note reaches the Review prompt, ship_risk reaches the hp:ship-merge comment (marker line unchanged). - task-packet.mjs: track basis, limit and rebase policy; next step without the stale rebase line; risk with its consequence per track; required checks with reasons (ci:golden only on render risk); changelog and visual evidence - from the same exports. - ship-review.mjs: the batch brief prints the risk line of a ship merge. - Canon: PROCESS.md §5, §5.1, §10.4, §11.7, both digests, AGENTS.md. - Registry anchors that watched the moved code are moved, not dropped. Issue: #707 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:
+15
-1
@@ -51,6 +51,15 @@
|
||||
`track:show`. Метка владельца главнее критериев; повысить трек может любой
|
||||
агент с причиной в комментарии, понизить — только владелец
|
||||
([§5](../../PROCESS.md#5-треки-ship-show-ask--метка-владельца)).
|
||||
- Трек подтверждает только владелец — строкой `Трек: <ship|show|ask> — решение
|
||||
владельца` в начале строки комментария. Метка без такой строки — предложение.
|
||||
Агент эту строку не пишет никогда. Несколько трековых меток — действует
|
||||
строжайшая ([§5](../../PROCESS.md#5-треки-ship-show-ask--метка-владельца)).
|
||||
- Рискованный участок (геометрия, touch, миграция, устройства, perf, новый
|
||||
UX-ключ) в `ship` без подтверждения владельца конвейер повышает до `show` при
|
||||
`S7`; на `show` ревьюер спросит, где поведение зафиксировано, — нет ссылки,
|
||||
повысь трек до `ask` до `S7`. Классы и следствие печатает пакет задачи
|
||||
([§5](../../PROCESS.md#5-треки-ship-show-ask--метка-владельца)).
|
||||
- `track:show`: `S2-analysis` → `S5-ready`, до трёх AC автор пишет в теле
|
||||
issue до перехода; ревью ТЗ нет, лимит код-ревью 2. Уместен, когда всё
|
||||
сразу: сложность и риск ≤ 3, одна поверхность, нет миграции, нового
|
||||
@@ -60,7 +69,8 @@
|
||||
проверить». Рамки: дифф `src/**` до 30 строк, без новых файлов, i18n, полей
|
||||
конфига и Python ([§5](../../PROCESS.md#5-треки-ship-show-ask--метка-владельца)).
|
||||
- Тяжёлые проверки на любом треке — метками `ci:full` и `ci:golden`;
|
||||
прежние `small` и `trivial` читаются как
|
||||
`ci:golden` ставится по сигналу — визуальный риск в пути отрисовки плана, —
|
||||
а риск сам полного набора не включает; прежние `small` и `trivial` читаются как
|
||||
`track:show` ([§5.1](../../PROCESS.md#51-метки-тяжёлых-проверок-и-прежние-метки)).
|
||||
|
||||
## ТЗ (`S3-spec`)
|
||||
@@ -150,6 +160,10 @@
|
||||
`pytest tests_backend`, junction parity; `golden:verify` — только с меткой
|
||||
`ci:golden` ([§8](../../PROCESS.md#8-гейты); `docs/TESTING.md`, «Локальный
|
||||
набор перед пушем»).
|
||||
- Обязательные проверки с основаниями печатает пакет задачи: `gate:small`,
|
||||
смоки `smoke-select` с видом связи, invariants при `geometry`, pytest при
|
||||
Python, parity при зеркалах junction limits, `ci:golden` — только при
|
||||
визуальном риске в пути отрисовки плана ([§8](../../PROCESS.md#8-гейты)).
|
||||
- Мутанты не гоняются ни локально, ни в CI: мутант своей защиты пишется в
|
||||
реестр, якорь сверяет `mutation-gate --check`, поимку — ночь (#709,
|
||||
[§2.7](../../PROCESS.md#27-код-ревью)).
|
||||
|
||||
@@ -145,6 +145,15 @@
|
||||
- Ветка `show` с чистым слиянием к `dev` до ревью не приводится: материал —
|
||||
ветка как есть, кандидат проверит Validate при слиянии
|
||||
([§10.4](../../PROCESS.md#104-событийный-конвейер-метка-как-триггер)).
|
||||
- Промпт несёт риск по изменённым участкам: по каждому классу назови документ
|
||||
или AC, где поведение уже зафиксировано; не нашёл — Medium «решать есть что —
|
||||
нужен `track:ask`» с названным критерием. `show`, подтверждённый владельцем,
|
||||
не повышать — вопрос владельцу, вариант по умолчанию «повысить до `ask`»; на
|
||||
`ask` — сверить, что каждый класс покрыт AC ТЗ
|
||||
([§5](../../PROCESS.md#5-треки-ship-show-ask--метка-владельца)).
|
||||
- Визуальный риск в пути отрисовки плана без `ci:golden`: если задача меняет
|
||||
вид, нужен `ci:golden`; иначе — запись в «чего не проверял»
|
||||
([§5.1](../../PROCESS.md#51-метки-тяжёлых-проверок-и-прежние-метки)).
|
||||
|
||||
## Пакетное ревью ship
|
||||
|
||||
@@ -155,6 +164,9 @@
|
||||
соседнее, не вышла ли правка из ship по смыслу
|
||||
([§11.7](../../PROCESS.md#117-пакетное-ревью-ship-перед-бетой),
|
||||
[§5](../../PROCESS.md#5-треки-ship-show-ask--метка-владельца)).
|
||||
- Строка «Риск по участкам» под задачей — рискованные участки ship,
|
||||
подтверждённого владельцем: конвейер их не повышал, пакетное ревью читает их
|
||||
первыми ([§11.7](../../PROCESS.md#117-пакетное-ревью-ship-перед-бетой)).
|
||||
- Документ `docs/reviews/SHIP-REVIEW-<тег>.md` публикует детерминированный
|
||||
шаг; High не пускает бету, Medium и Low решает владелец
|
||||
([§11.7](../../PROCESS.md#117-пакетное-ревью-ship-перед-бетой)).
|
||||
|
||||
Reference in New Issue
Block a user