Follow-ups from #41 #52

Closed
opened 2026-10-24 16:58:31 +03:00 by aep · 6 comments
Owner

Отложенные находки из #41 (DSH: SDD spike). Источник — прогон и его ledger:
openspec/changes/archive/2026-10-24-dsh-sdd/trial/ledger.md, решения —
.../design.md, «Результаты пробного прогона».

Чеклист

  • O-2 / O-3 — первый вызов subagent с переданными provider и model вернул «child LLM provider and model must be supplied together» (дважды за прогон); немедленный повтор тем же вызовом проходит. Проверить, это гонка инициализации сервиса model selection или валидация схемы; если баг DSH — завести upstream, если наш адаптер — поправить. В dsh/skills/sdd/SKILL.md пока зафиксирован повтор.
  • O-5 — в пробном прогоне тест describe([1,2,3]) использует симметричный вход (mean == median), поэтому не отличил бы перестановку mean/median; реализация верна. Если план прогона переиспользуется как образец — заменить вход на несимметричный (например [2,4,6] → mean 4.0, median 4.0 — тоже симметрично; взять [1,2,6] → mean 3.0, median 2.0).

Где смотреть

  • ledger прогона: openspec/changes/archive/2026-10-24-dsh-sdd/trial/ledger.md, раздел ## Findings;
  • отчёт по O-2/O-3: trial/reports/review-1.md, trial/reports/task-2.md (в них же видно, что валидация падала вне отчётов — источник: сессия #41, шаги Task 2 и ревью Task 2).
Отложенные находки из #41 (DSH: SDD spike). Источник — прогон и его ledger: `openspec/changes/archive/2026-10-24-dsh-sdd/trial/ledger.md`, решения — `.../design.md`, «Результаты пробного прогона». ## Чеклист - [ ] **O-2 / O-3** — первый вызов `subagent` с переданными `provider` и `model` вернул «child LLM provider and model must be supplied together» (дважды за прогон); немедленный повтор тем же вызовом проходит. Проверить, это гонка инициализации сервиса model selection или валидация схемы; если баг DSH — завести upstream, если наш адаптер — поправить. В `dsh/skills/sdd/SKILL.md` пока зафиксирован повтор. - [ ] **O-5** — в пробном прогоне тест `describe([1,2,3])` использует симметричный вход (`mean == median`), поэтому не отличил бы перестановку `mean`/`median`; реализация верна. Если план прогона переиспользуется как образец — заменить вход на несимметричный (например `[2,4,6]` → mean 4.0, median 4.0 — тоже симметрично; взять `[1,2,6]` → mean 3.0, median 2.0). ## Где смотреть - ledger прогона: `openspec/changes/archive/2026-10-24-dsh-sdd/trial/ledger.md`, раздел `## Findings`; - отчёт по O-2/O-3: `trial/reports/review-1.md`, `trial/reports/task-2.md` (в них же видно, что валидация падала вне отчётов — источник: сессия #41, шаги Task 2 и ревью Task 2).
Author
Owner

Ещё одна мелочь по ходу закрытия #41 (не из прогона, а из гигиены репозитория): bash tests/run.sh оставляет untracked docs/retro/scripts/__pycache__/ в main-checkout, в .gitignore его нет. Из-за guard-main удалить его в main нельзя, поэтому main показывает грязное дерево (для retro_leftovers.py это ложный сигнал). Предложение: добавить __pycache__/ в .gitignore отдельным мелким PR.

Ещё одна мелочь по ходу закрытия #41 (не из прогона, а из гигиены репозитория): `bash tests/run.sh` оставляет untracked `docs/retro/scripts/__pycache__/` в main-checkout, в `.gitignore` его нет. Из-за guard-main удалить его в main нельзя, поэтому main показывает грязное дерево (для `retro_leftovers.py` это ложный сигнал). Предложение: добавить `__pycache__/` в `.gitignore` отдельным мелким PR.
Author
Owner

Ещё один хвост к #41 (решение владельца 24.10: строку в роль дописать). DSH-строка «в DSH исполнение плана — skill sdd» живёт только в ~/.dsh/roles/dev.md. bash dsh/install.sh --roles копирует roles/ из репозитория в ~/.dsh/roles и перезапишет файл — строка молча исчезнет при следующем install. Варианты: (a) install.sh --roles дописывает DSH-секцию к ~/.dsh/roles/dev.md по маркеру (как --global делает с AGENTS.md); (b) держать строку в общем roles/dev.md — противоречит решению design.md не менять Claude-слой; (c) ничего не делать и помнить про перезапись.

Ещё один хвост к #41 (решение владельца 24.10: строку в роль дописать). DSH-строка «в DSH исполнение плана — skill `sdd`» живёт только в `~/.dsh/roles/dev.md`. `bash dsh/install.sh --roles` копирует `roles/` из репозитория в `~/.dsh/roles` и перезапишет файл — строка молча исчезнет при следующем install. Варианты: (a) `install.sh --roles` дописывает DSH-секцию к `~/.dsh/roles/dev.md` по маркеру (как `--global` делает с AGENTS.md); (b) держать строку в общем `roles/dev.md` — противоречит решению design.md не менять Claude-слой; (c) ничего не делать и помнить про перезапись.
Author
Owner

Повтор ловушки при работе над #53 (второй раз за день): в новом worktree dsh/bundle/hooks выезжает обычным файлом с текстом ../../hooks (core.symlinks=false), и bash dsh/tests/run.sh даёт 5 падений (guard-main blocks a write on main, bash commands on main, require-plan blocks src, edit on main, display resources and hook bridge). Лечится в worktree: rm dsh/bundle/hooks && ln -s ../../hooks dsh/bundle/hooks (в git ничего не меняется). Кандидат на автоматику: проверка в dsh/tests/helpers.mjs или в run.sh — если bundle/hooks не симлинк и не каталог, восстановить его перед тестами; либо install.sh --check подсказывает команду.

Повтор ловушки при работе над #53 (второй раз за день): в новом worktree `dsh/bundle/hooks` выезжает обычным файлом с текстом `../../hooks` (`core.symlinks=false`), и `bash dsh/tests/run.sh` даёт 5 падений (`guard-main blocks a write on main`, `bash commands on main`, `require-plan blocks src`, `edit on main`, `display resources and hook bridge`). Лечится в worktree: `rm dsh/bundle/hooks && ln -s ../../hooks dsh/bundle/hooks` (в git ничего не меняется). Кандидат на автоматику: проверка в `dsh/tests/helpers.mjs` или в `run.sh` — если `bundle/hooks` не симлинк и не каталог, восстановить его перед тестами; либо `install.sh --check` подсказывает команду.
Author
Owner

Разбивка #52 (по договорённости): гигиенические хвосты вынесены в отдельные bounded-задачи, чтобы их можно было закрыть независимо от диагностики.

  • #55 — __pycache__/ и *.pyc в .gitignore → PR #57 (файл: .gitignore).
  • #56 — dsh/tests/run.sh чинит dsh/bundle/hooks в worktree при core.symlinks=false → PR #58 (файл: dsh/tests/run.sh).
  • Строка про заметку в роли уже закрыта в #53 (PR #54).

В #52 остаются содержательные пункты: O-2/O-3 (нестабильная валидация provider/model — нужна диагностика, возможно баг DSH) и O-5 (симметричный вход в тесте прогона). Оба касаются dsh/skills/sdd/DSH, не пересекаются с #42 (OpenSpec).

Разбивка #52 (по договорённости): гигиенические хвосты вынесены в отдельные bounded-задачи, чтобы их можно было закрыть независимо от диагностики. - **#55** — `__pycache__/` и `*.pyc` в `.gitignore` → PR #57 (файл: `.gitignore`). - **#56** — `dsh/tests/run.sh` чинит `dsh/bundle/hooks` в worktree при `core.symlinks=false` → PR #58 (файл: `dsh/tests/run.sh`). - Строка про заметку в роли уже закрыта в #53 (PR #54). В #52 остаются содержательные пункты: **O-2/O-3** (нестабильная валидация `provider`/`model` — нужна диагностика, возможно баг DSH) и **O-5** (симметричный вход в тесте прогона). Оба касаются `dsh/skills/sdd`/DSH, не пересекаются с #42 (OpenSpec).
aep added this to the DSH port milestone 2026-10-24 18:24:01 +03:00
Author
Owner

Включён в очередь порта #48, позиция 2: после #49, до #59. Нужен, чтобы гейт #59 строился на стабильном sdd.

Включён в очередь порта #48, позиция 2: после #49, до #59. Нужен, чтобы гейт #59 строился на стабильном sdd.
Author
Owner

Закрыто PR #68 (merge 2eaaa99).

  • O-2/O-3 — fixed c08fba2: транскрипт прогона #41 показал, что упавшие вызовы содержали только model без provider; валидация DSH корректна, upstream не заводится. Формулировка dsh/skills/sdd/SKILL.md исправлена, диагноз — в dsh/PORT.md §7.
  • O-5 — fixed bd8024e: образец trial/plan.md переведён на несимметричный вход [1,2,6] (mean 3.0, median 2.0), с пометкой «пост-фактум»; отчёты прогона не переписывались.
  • O-1/O-4 закрыты в #41; гигиенические хвосты — в #53, #55, #56.

Проверка: bash dsh/tests/run.sh — 64 pass, bash tests/run.sh — 630 passed. Отложенных находок нет.

Закрыто PR #68 (merge `2eaaa99`). - **O-2/O-3** — `fixed c08fba2`: транскрипт прогона #41 показал, что упавшие вызовы содержали только `model` без `provider`; валидация DSH корректна, upstream не заводится. Формулировка `dsh/skills/sdd/SKILL.md` исправлена, диагноз — в `dsh/PORT.md` §7. - **O-5** — `fixed bd8024e`: образец `trial/plan.md` переведён на несимметричный вход `[1,2,6]` (`mean 3.0`, `median 2.0`), с пометкой «пост-фактум»; отчёты прогона не переписывались. - O-1/O-4 закрыты в #41; гигиенические хвосты — в #53, #55, #56. Проверка: `bash dsh/tests/run.sh` — 64 pass, `bash tests/run.sh` — 630 passed. Отложенных находок нет.
aep closed this issue 2026-10-24 20:51:41 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/claude-harness#52
No description provided.