⌂ все дашборды/Качество и аудиты← Review-After-Rail · Skill-Gap-Audit →

Аудит: кто ходил за секретами через C:-junction (окно 15–20.07.2026)

Junction C:\Users\Anton\!CLAUDE-HP17 May26\secretsE:\!CLAUDE-PaloAltoPC-June26\secrets; создан 15.07 23:05, диагностирован битым 20.07 (OSError 22 в живой сессии), пересоздан 20.07. Проверены: E:\Obsidian\_imports, ~/.claude/scripts, ~/.claude/skills, C:\mcp.

Главный вывод: тихих жертв в окно — НОЛЬ. Сплошная поломка «15.07→20.07» логами не подтверждается: все ночные потребители читали секреты сквозь junction успешно всю неделю (openai-цепочка: 32/32 прогона exit 0, реальные эмбеды new=86/297; GitHub-снапшоты с живыми данными каждый день; A/B-recall 12–14 запросов/ночь без единого пропуска). Errno 22 воспроизводился только в живой сессии 20.07 → поломка либо случилась 20.07 днём (после ночного прогона 04:00), либо была контекстной для процессов сессии (кандидат-виновник — фильтрация reparse-точек Kaspersky, ср. прецедент PDM spawn-lockout).

Потребители через C:-junction

ПотребительСекрет / путьПадал в окно 15–20.07?Жив сейчас?Что сделано
brain_embed_openai.py (ночной openai-индекс)openai.env через _paths.SECRETS (= junction до 20.07)НЕТ — exit 0 все ночи, эмбеддил (new=86 19.07, new=297 18.07)ДА (20.07 04:00 exit 0)SECRETS_DIR в machine.env (сделано ранее 20.07) — junction больше не на критическом пути
brain_ask.py (recall, A/B-пилот, /ask)openai.env (тот же путь); при сбое graceful fallback e5НЕТ — nightly A/B без пропусков 14–20.07ДАНичего не нужно — наследует SECRETS_DIR
github_traffic_snapshot.py (+ копия в _shared), таск «Mission2 GitHub Traffic Snapshot» 03:20github.env: junction → ~/.claude/secrets (пуст!)НЕТ — реальные звёзды/клоны каждый деньДА (token=True)Добавлен E-store первым кандидатом (обе копии)
zalp_delta.py, таск «Zalp1 Delta Board» 03:50github.env (та же цепочка)НЕТ — traffic=ok все дниДА (token=True)Добавлен E-store кандидат
mission\mission_gate.py (светофор миссии №2)github.env: ~/.claude/secrets (пуст) → junctionНЕТ — gate-JSON 16, 17, 19, 20.07 (провал 18.07 = таск ещё не был заведён, не junction)ДА (token=True)Добавлен E-store кандидат
anchor_triage.py (триаж «Маяк молчит», on-demand)hetzner_api.env: junction в кандидатах, E-store — нетНе запускался; при вызове деградировал бы мягко («токен не найден», без API-пробы)ДА (E-store находится)Добавлен E-store кандидат
embed_bakeoff.py (разовый бенч)openai.env, хардкод C:-junctionНе запускался (one-off)ДА (junction починен)
tg_init_step2_signin.py (интерактивный TG-логин)telegram_2fa.env через homeНе запускалсяДА

Не жертвы junction (проверено и закрыто)

КтоПочему не жертваСтатус / что сделано
fb_posts_poll.pyE-store стоит в списке ПЕРЕД junctionDormant by design: в fb_graph.env нет FB_USER_TOKEN (ждёт креды, известное состояние)
x_post.pyE-store перед junctionКреды есть, но X-приложение не привязано к Project (403 client-not-enrolled) — внешний блок, ждёт действий в dev-портале X
gmail-цепочка (gmail\)gmail — настоящая папка на C:, не junction; свои secrets/tokens внутриRED gmail-digest — отдельная известная история (MCP-кран + token_bb invalid_grant), не junction
tg_bot_send.py (флот-бот алерты)Его C:-кандидат — ноутовский путь юзера «_», junction не трогалНАХОДКА: на хабе вообще не было источника токена → добавлен E-store кандидат, теперь token=True
n8n_watchdog.pyСмотрит в ~/.claude/secrets (пуст на хабе)Тихий no-op (SKIP, exit 0) + ключ мог истечь 15.07 → чип-задача создана
ntfy_push.sh / ntfy_watchdog.shХардкод /c/Users/_/… — путь чужого юзера, на хабе не существуетВероятный тихий no-op → чип-задача создана
Класс-урок (мираж fallback-а): у большинства цепочек второй кандидат — ~/.claude/secrets\, который на хабе ПУСТ. Если бы junction реально лежал всю неделю, снапшоты/зальп/гейт тихо остались бы без токена при exit 0. Forever-fix: реальный E-store добавлен литеральным кандидатом (guard exists(), на пирах путь отсутствует → безвреден) в 6 файлов; для _paths-потребителей — SECRETS_DIR в machine.env.

Сгенерировано 2026-07-20 ~22:05, сессия hub·Anton. Доказательства: _reindex_log.txt, github_traffic_snapshot.log, zalp_delta.log, mission-metrics\*.json, turnstate.db→ab_recall, смоук smoke_secrets.py (6/6 token=True).