Hand the orchestrator role over with the shift's seven own errors named in full, the mechanisms that caught them, and a queue rewritten against the tree rather than against its own memory

This commit is contained in:
heaven 2026-08-30 02:32:02 +03:00
parent dac0630018
commit 8977001018
3 changed files with 88 additions and 11 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
# Реестр D-нот — карта актуальности v2 (D1D39.173;
# Реестр D-нот — карта актуальности v2 (D1D39.174;
> ⚠ **СЛАБОЕ МЕСТО, КОТОРОЕ БЫЛО ЗДЕСЬ (вписано 22.08, ЗАКРЫТО 24.08 — D39.157 п.6).** Колонка ТЕЛА
> у нот D39.107…D39.123 говорила «жив», хотя тела уехали в слайс подрезкой D39.139; семнадцать строк
@ -234,3 +234,4 @@
| D39.171 | 29.08 | **Гейт денежной безопасности при `kill -9` четверть раундов проверял ТАВТОЛОГИЮ.** `kill9_test.go` сторожил живость счётчиком по ВСЕЙ базе, а путь создаётся вне цикла раундов ⇒ страж пуст в КАЖДОМ раунде; на пустой базе `committed == sum` выполняется как `0 == 0`. Замер: 10 раундов из 40 не утверждали ничего. Доказано сравнением двух форм под ОДНОЙ посадкой: старый тест PASS при четырёх пустых раундах, новый FAIL на первом. Второй тест ужимал бюджет ДО построения фикстуры (17 чужих операций под усечением). Оба починены структурно (рукопожатие + сверка прироста; усечение только на предмет), боевой код не тронут. **Норма: тест не имеет права утверждать о ВРЕМЕНИ, если предмет утверждения — не время; тихо-зелёное дороже красного.** | жив | ЖИВОЕ: две замеренные формы дефектного теста; узость класса проверяется по формам и зоне, а не вообще | тесты гейты движок приёмка |
| D39.172 | 29.08 | **Пак `sqlc` принят и заленджен**: 40 запросов пяти файлов `pgstore` на типизированный слой, пин 1.31.1, `sqlc diff` в `make check` + гейт без установленного инструмента. ⚠ Решение принято НЕ тем доводом, которым заказывалось: счёт покрытия дал «почти ничего» (3 из 42), а шесть посаженных мутаций ВЫЖИЛИ при зелёной батарее — `sqlgate` видит строку SQL и никогда Go-сторону вызова. Подтверждено независимо на денежном пути: перестановка целей `Scan` в `ReadAccount` зелена на всей батарее и переворачивает числа оператора при дрейфе (`PD-430`). Честные границы: `observe.go` структурно не конвертируется (River мигрирует `river_job` сам), худший позиционный дрейф остался рукописным; `Touch` выбрасывает `RowsAffected` — не чинится конверсией. | жив | ЖИВОЕ: П-19 править на 40 конвертируемых; `Touch` строкой; пересборка `tmctl` в рецепте стенда; `PD-423` пере-проверить | платформа sqlc гейты деньги |
| D39.173 | 30.08 | **У движка появился гейт схемы**: каждый SQL-оператор компилируется `db.Prepare` против схемы, поднятой ПРОДОВОЙ цепью миграций во временный файл — раньше покрытие этого класса равнялось покрытию батареи. ОДИН новый тестовый файл, продовый код не тронут. Склейки не пропускаются, а раскладываются (перебор четырёх таблиц, условная сборка из двух ветвей). 70 операторов против схемы v16 за 0.02 с, пол экстрактора 65. Расхождений в живом коде нет. Внешнего не требуется — у SQLite схема это файл. | жив | ЖИВОЕ: гейт не доказывает верность оператора, только существование имён; пол 65 — суждение | движок гейты схема тесты |
| D39.174 | 30.08 | **Передача роли оркестратора №19 → №20.** За смену принято пять паков (P11 + минор 0.8.0, движковые «деньги», починка двух зеленевших вхолостую store-тестов, `sqlc`, гейт схемы движка). Три урока смены: тихо-зелёное дороже красного · метод измерения бывает слабее предмета (покрытие сказало «почти ничего», решение приняли шесть выживших мутаций) · верный прогон при неверной гипотезе неотличим от «дефекта нет». Семь моих ошибок названы полностью, включая двойную ошибку атрибуции и лендинг без `make lint`. Что ловило лучше меня: опровергатель промта, охотник вне карты, линтер якорей, гейт чисел и сами сессии. | жив | ЖИВОЕ: очередь №20 в CURRENT-STATE; `PD-425` на оркестраторе; строка 237 — два нажатых триггера | передача процесс нормы |

View file

@ -1,4 +1,4 @@
# Журнал решений оркестратора — контракт D1D39.173 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
# Журнал решений оркестратора — контракт D1D39.174 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
> **КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто:
> ⚠ **Эррата 09.08 (D39.125):** D39.111 п.1 предписывал промту S3 «максимум = баланс МИНУС открытые холды» — формула ОШИБОЧНА (вычитание дважды), исправлена D39.115 п.2(а): максимум = Balance КАК ЕСТЬ; тело D39.111 живёт ниже в этом файле (голова D39.106+).
@ -1514,3 +1514,78 @@ head-1 это семнадцать бюджетируемых операций,
позавчера.
**Строка 235 единого бэклога ЗАКРЫТА.**
## D39.174 — ПЕРЕДАЧА РОЛИ ОРКЕСТРАТОРА №19 → №20: что смена построила, где я ошибался и что ловило меня лучше, чем я сам (30.08). ✅
**Счётчик роли бампнут №19 → №20** (D39.112 п.6). Очередь работ — CURRENT-STATE в `docs/PROGRESS.md`,
**единственный носитель**; здесь её копии НЕТ.
### 1. Что принято и заленджено за смену
Пять паков одним заходом: **P11 платформы** + контрактный минор **0.8.0** (D39.169) · **движковый пак
«деньги»** — потолок ОБЪЁМА оплаченной работы (D39.170) · **починка двух store-тестов**, зеленевших без
проверки (D39.171) · **пак `sqlc`** — 40 запросов на типизированный слой (D39.172) · **гейт схемы
движка** (D39.173). Плюс док-свип платформы, дофиксы денежного теста и правка отчёта пакета.
### 2. ЧТО СМЕНА УЗНАЛА — три вещи, которые стоит держать при себе
**(а) Тихо-зелёное дороже красного.** Гейт денежной безопасности при `kill -9` четверть раундов
проверял ТАВТОЛОГИЮ (`0 == 0` на пустой базе), и это было невидимо, потому что зелёное никто не
перечитывает. Ратифицировано нормой D39.171 с двумя замеренными формами.
**(б) Метод измерения может быть слабее предмета.** Пак `sqlc` заказывался с ответом «числами
покрытия» — покрытие сказало «почти ничего» (3 из 42). Решение приняли **шесть посаженных мутаций,
переживших зелёную батарею**: гейт видит СТРОКУ SQL и никогда Go-сторону вызова. Если бы я поверил
своему же критерию, пак был бы отклонён по неверному основанию.
**(в) Верный прогон при неверной гипотезе неотличим от «дефекта нет».** Движковая сессия ПЯТЬ раз не
воспроизвела дефект — все пять прогонов были верны, ошибочна была гипотеза о причине. Различил только
тот, у кого сценарий уже работал.
### 3. МОИ ОШИБКИ, полностью
1. **Атрибуция — ДВАЖДЫ.** Склеил отчёты двух сессий и приписал работу не той. Первый раз стоил
отозванного заказа, второй — чужого времени на греп по всему репозиторию. Оба раза поймал не я.
**Вывод из соседства вместо проверки** — тот же класс, что протухшие якоря, которые я в ту же смену
чинил.
2. **Заленджил коммит, не прогнав `make lint`.** Гонял `go test`, а цель `lint` идёт ДО тестов —
батарея была красной в истории. Ирония полная: пак был про гейт, который не отработал.
3. **Правка ролевого промта фактурой**с якорем на строку, которую сам же заказывал переписать.
Остановлена владельцем; правило выхода промта стоит в первых строках того же файла.
4. **Механизм в каноне, выведенный из непоказательной пробы.** Объявил причиной неработающего потолка
памяти cgroup вызывающего процесса; настоящая причина — дефолтное размещение юнита — **уже была
записана в коде зоны**, я её не прочитал. Эррата 29.08-б.
5. **Число из грепа вместо числа из гейта** (167 против 172). Там же.
6. **«Заведено строкой» — строк не существовало.** Утверждение о будущем записано как о свершившемся;
эррата 29.08-а, снята появлением `PD-431`/`PD-432`.
7. **Промт писателя книги: восемь неверных фактов и гейченная развилка.** Назвал доказательной базой
книгу, которая не переведена; не знал, что EPUB-писатель в дереве уже есть; отдал сессии решение по
вопросу, форма которого назначена словом владельца (строка 160, D39.136 п.3).
### 4. ЧТО ЛОВИЛО МЕНЯ ЛУЧШЕ, ЧЕМ Я САМ — новому №20 стоит на это опереться
- **Опровергатель промта.** Дважды спас выдачу: 14 находок по паку `sqlc` (включая фантомную D-ссылку и
ловушку пола экстрактора) и 8+ по писателю книги. **Перечтение автором рубежом не считается — это
подтвердилось буквально.**
- **Охотник ВНЕ карты отчёта.** Дал то, чего не было ни в одном отчёте: четыре регресса, введённых самим
паком, и слепоту гейта, обосновавшую целый пак.
- **Линтер якорей `counts.py --lint`.** 21 битый указатель за смену. ⚠ Его предел назван сессией: якорь
БЕЗ токена он не сверяет содержимым — только существование файла.
- **Гейт чисел `--check`.** Ловил каждый мой литерал, разошедшийся с пере-счётом; ни один не уехал.
- **Сами сессии.** Дважды поймали мою атрибуцию, один раз — перевёрнутую формулировку, один раз —
число из грепа. **Сессия, приносящая поправку против оркестратора, дороже сессии, которая молчит.**
### 5. НОРМЫ, ЗАРАБОТАННЫЕ СМЕНОЙ (в ролевом промте, одной фразой каждая)
Тест не имеет права утверждать о ВРЕМЕНИ, если время не его предмет (D39.171) · проход, ГЕЙТЯЩИЙ
лендинг, судит КОНКРЕТНОЕ дерево — морозить или называть коммит (D39.172) · трудный вопрос — старшей
модели, с заданной ролью и предметом · линтер якорей гоняется ПОСЛЕДНИМ шагом, после того как код замер.
### 6. ЧТО ОТКРЫТО НА НОВОМ ОРКЕСТРАТОРЕ
**Очередь №20 — в CURRENT-STATE**, шесть пунктов, первый из которых блокер: книгу нельзя отдать файлом
ни одной стороной (строка **236**, промт выдан). **Денежный `major` `PD-425`** — отсрочка записана на
оркестратора, не на зону. **Два нажатых триггера** — строка **237**. **`PD-403`/`PD-404`** стоят
«ждёт решения владельца», хотя решение дано D39.165 §2 — зоне платформы нужен пинг, что это обычная
работа. **Строка 202** — живой перевод книги насквозь не гонялся ни разу, и всё ранжирование условно,
пока это так.