--- _last_updated_: 2026-05-25 session_id: 2026-05-25-hook-fix-and-real-e2e-smoke --- # Next session handoff Live-hook e2e smoke **реально** закрыт после fix'а `f1be677` (v0.3.3). До этого hook был мёртв на Windows из-за PowerShell-style `$env:USERPROFILE` в install snippet — Claude Code запускает hook command через git-bash, который мангляет `$env:USERPROFILE` в `":USERPROFILE\..."` и PowerShell падает на bad filename. Synthetic replay через PowerShell tool в обход harness давал false-positive «работает». Retract'нул вчерашний optimistic закрытие cluster-item. Fix: install snippet в `hooks/README.md` теперь рекомендует **литеральный абсолютный путь** `C:\Users\\.claude\...` с явным «Why literal path» разделом (объясняет почему `$env:VAR` / `%VAR%` / `~` все ломаются через bash-harness chain). Settings.json на этой машине обновлён, CC получил перезагрузку, hook теперь surface'ит `additionalContext` post-substantive-commit (verified this session — этот handoff пишется ровно после такого surface'а). ## Recent commits - `f1be677` fix(session-handoff): hook command literal path [v0.3.3] - `ef6fad7` meta(handoff): regen NEXT_SESSION post live-hook smoke + dist-hermes sync - `bcb500b` build(dist-hermes): rebuild from source (wiki 1.1.0, projects-meta 1.2.0) - `790f1f4` docs(session-handoff): pwsh/powershell choice + restart-after-edit caveat [v0.3.2] - `e5839bd` feat(wiki): document session-handoff skill design rationale `f1be677` — **NOT pushed** (autopush этой сессии не давался). `bcb500b` + `ef6fad7` похоже подтянулись на origin внешне между ходами (`origin/master..HEAD` пуст до `f1be677`). ## Open треки | Трек | Готовность | Entry-point | |---|---|---| | **Hook propagation per-machine fix** | this machine 🟢, others ⚪ | Каждая машина с уже-enabled hook'ом имеет broken `$env:USERPROFILE` в `~/.claude/settings.json` (если устанавливали по pre-v0.3.3 snippet'у). Fix: открыть `~/.claude/settings.json`, заменить `$env:USERPROFILE` на литеральный `C:\Users\\` (Windows) или оставить как есть (Linux/macOS — bash snippet не страдает). Restart CC. Затем смоук substantive commit'ом. | | `[session-handoff-existing-projects-upgrade]` per-machine | 4 deferred (1 done) | victor/books, victor/pilorama98.ru, victor/pilonuxt, OpeItcLoc03/common, OpeItcLoc03/board-viewer — upgrade при заходе в каждый. `.workshop/CLAUDE.md` намеренно SKIP. | | `[skill-readmes]` 🟡 | infra-кластер done | next batch suggestion: caveman cluster (`caveman`, `caveman-commit`, `caveman-review`, `caveman-help`, `caveman-compress`) или active-platform / find-skills / setup-context7 / using-context7 / using-markitdown. | | `[active-platform-eval]` 🟡 | design+per-task done | resume = answer Q2 (solo 20 queries vs skill-creator HTML review first), затем eval-set kickoff. | | ⚪ backlog (~10 tasks) | низкий priority | `install-ps1` (+`--prune`), `archive-roundtrip-test`, `skills-grouping-revisit` (≥30 skill threshold), `tdd-criteria-precommit-hook`, `tasks-board-cleanup-2026-05` (архивная чистка done-блоков), 3x using-vds-ops / using-synology-ops items. | ## Спроси user'а - **Push разрешён?** `f1be677` (hook fix) pending push к `origin/master`. Autopush этой сессии не давался. - **Cluster session-handoff финально закрыт?** Все 7/7 🟢 в STATUS.md, smoke реально пройден post-fix, propagation gap resolved. Можно считать кластер архивно-done и убрать из «Open треки»? - **Что дальше?** Рекомендация: `[skill-readmes]` caveman cluster — natural next step (READMEs нужны, каждая = substantive commit = ещё точка hook-наблюдения для confidence). Альтернативы: existing-projects-upgrade per-machine (быстро через ssh + edit), active-platform-eval resume. ## Не делать (preemptive guards) - **НЕ повторять synthetic-replay аргумент** как доказательство e2e — он валиден только для script logic, не для harness chain. Реальный smoke = реальный substantive commit + наблюдение system-reminder в **следующем** turn'е агента. - **НЕ enable hook автоматически** в чужих settings.json — opt-in deliberate. - **НЕ apply session-handoff к `.workshop/CLAUDE.md`** — workspace-contract format mismatch. - **НЕ push без явного «push» / «разреши автопуш»** — Rule 4 default ask-mode. - **НЕ читать STATUS.md как single source** для plan'а — handoff forward-looking, не replica STATUS.md. ## Memory updates за сессию - **Кандидат на feedback memory:** «PowerShell-style `$env:VAR` в Claude Code hook command'е на Windows ломается через git-bash outer shell — использовать литеральный абсолютный путь». Single observation воспроизведена и пофикшена в одной сессии, root cause confirmed двумя независимыми сигналами (user-side error + my "propagation gap"). Worth saving для предотвращения повтора на других hook'ах в будущем. **Не сохранил автоматически** — спросить user'а сохранять или нет.