docs выкат: в промт вписана мина, которой в нём не было - полный выкат откатывает чужое

Первая редакция промта вела следующую смену прямо в аварию: шаг «выкат файлов»
без единой проверки, насколько ветка отстала от основной. На 01.08 отставание
было 7 коммитов, и это блок менеджеров на боевом. Залей папку целиком - и
воронка продаж с корзиной и фильтрами исчезла бы с боевого сайта.

Вписано правило замера: правое число в git rev-list --left-right --count
обязано быть 0 перед выкатом, иначе сперва сведение и повторный прогон.

Отмечено, что основная продолжает двигаться, и сведение надо повторять
непосредственно перед выкатом, а не заранее.

Дописаны две ловушки. Первая: столкновение номеров журнала схемы git НЕ
показывает как конфликт, молча склеивает две записи с одним номером - дан
готовый датчик на дубли. Вторая: фронтовый набор был красным пять дней, потому
что его не гоняли целиком, - велено гонять vitest целиком, а не по файлу.

Пункт про журнал схемы переписан с «дописать v9.31» на «сделано, номер v9.32».

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-08-01 14:58:09 +03:00
parent 4efd3d3329
commit c6dca0d442
2 changed files with 40 additions and 7 deletions
+4 -4
View File
@@ -1,6 +1,6 @@
# Brain Status (auto-generated)
Last updated: 2026-08-01T10:46:27.473Z
Last updated: 2026-08-01T11:55:04.839Z
| Контролёр | Состояние | Детали |
|---|---|---|
@@ -112,9 +112,9 @@ Episodes since last run: 542 / threshold: 10
| PID | Имя | CPU-время | Возраст |
|---|---|---|---|
| 3544 | MsMpEng | 30.29ч | 0.0ч |
| 23936 | Code | 10.84ч | 0.0ч |
| 4 | System | 4.49ч | NaNч |
| 3544 | MsMpEng | 31.74ч | 0.0ч |
| 23936 | Code | 11.32ч | 0.0ч |
| 4 | System | 4.71ч | NaNч |
⚠️ Проверь, не «осиротевшие» ли это процессы от завершённых Claude-сессий.
@@ -7,6 +7,38 @@
---
## 🔴 ДОПИСАНО 01.08.2026 в 15:00 — читать до всего остального
**Шаг 1 выполнен**, ветки сведены, коммит `4efd3d33`, запушен. Свёрстано и проверено:
портал 4091 тест / 0 падений, фронт 1739 / 0 падений, статанализ 0, робот 130 из 130.
Но вскрылась **мина, которой в первой редакции этого промта не было**:
🔴 **Полный выкат заливкой файлов ОТКАТИТ чужую работу с боевого.** На 01.08 наша ветка
отстала от основной на 7 коммитов — это блок менеджеров (воронка продаж: корзина, журнал
движений карточки, фильтр по датам). Залей мы папку целиком — боевой получил бы портал
**без всего этого**. Соседняя смена выкатывала **точечно, шестью файлами**, поэтому у них
не рвануло; наш план был полным.
**Правило, которого не хватало:** перед выкатом ОБЯЗАТЕЛЬНО замерить
`git rev-list --left-right --count <наша>...gitea/main`. **Правое число обязано быть 0.**
Не ноль — сначала свести, прогнать заново, и только потом выкат.
На 15:00 основная **продолжает двигаться** (последний коммит 14:45). Сведение надо повторить
**непосредственно перед выкатом**, а не заранее.
🪤 **Столкновение номеров журнала схемы git НЕ показывает как конфликт.** Наша v9.31
и их v9.31 были молча склеены в один файл. Наша подвинута на **v9.32**. После каждого
сведения проверять: `grep -o '^## v9\.[0-9]*' db/CHANGELOG_schema.md | sort | uniq -d`
должно быть пусто. Третий такой случай за сутки.
🪤 **Фронтовый набор был красным пять дней, и этого никто не видел.** Сторож витрины
рекламных каналов утверждал, что настоящий экран только у Яндекса, а Телеграм получил
свой ещё 27.07. Починено, принято вырезанием. Вывод: **гонять `npx vitest run` целиком**,
а не по одному файлу — иначе такое живёт неделями.
---
## Главное в двух абзацах
Телеграм-модуль дописан и проверен, портал и робот зелёные. Но **работа разошлась по двум
@@ -54,9 +86,10 @@
свои 30 строк. Разруливать **пересборкой заново после сведения**, а не выбором стороны.
Сначала пересчитать настоящие замечания:
`composer stan 2>&1 | grep -o '"message":"[^"]*"' | grep -vc 'PendingCalls'` — должно быть 0.
2. `db/CHANGELOG_schema.md`🔴 **их миграции в журнале НЕТ вообще.** Дописать запись
**v9.31** (следующий свободный; v9.28 — воронка продаж, v9.29 и v9.30 — наши, робот).
Это то самое правило, из-за нарушения которого 01.08 ночью столкнулись номера.
2. `db/CHANGELOG_schema.md` **сделано 01.08:** их миграции в журнале не было вовсе,
запись дописана. Номер — **v9.32**, а не v9.31: v9.31 в тот же час заняла воронка продаж
на основной. Это то самое правило, из-за нарушения которого 01.08 столкнулись номера
уже трижды за сутки.
После сведения — **полный прогон на своей базе**. Он идёт ~13 минут.