---
name: delor-sport-cli-skill
description: Скилл delor-sport-cli — CLI по спорт-советнику Делора (stats/notify/matches/probe/insights/db) вместо ad-hoc python -c по SSH
metadata:
  node_type: memory
  type: reference
  originSessionId: 6620ea3d-79ed-46e4-b5ea-65828f0cc0b8
---

Скилл `~/.claude/skills/delor-sport-cli/` — CLI поверх уже существующего
кода Делор-спорт (`sport_analyzer`/`pick_insights`/`advisor_db`), ничего не
дублирует. Родился из того же паттерна «CLI вместо MCP», что и
[[avtero_tecdoc_skill]] — за одну сессию писал одноразовые `python3 -c`
снипеты по SSH раза 3-4 подряд для одних и тех же проверок.

Шесть команд: `stats [--days N]` (распределение risk_tier/result/market_family),
`notify [--days N]` (подписки + push-объём + конверсия win/loss→урок),
`matches [--status --sport --limit]` (список текущих матчей), `probe <match_id>`
(**реальный вызов боевой модели** — тратит квоту DashScope: собирает точно
продовый payload, показывает сырые пики модели vs выжившие после
anti-hallucination, точную причину отказа на каждый отброшенный — тем же
порядком проверок, что `_validate_model_picks`), `insights` (hit-rate/ROI
срезы + bad_slices), `db "<SELECT ...>"` (read-only escape hatch).

Именно `probe` поймал живой баг с русскими падежами в гейте «упоминание
команды» (commit b101915, см. [[delor_sport_dashscope_lessons]] запись 8) —
CLI создан сразу ПОСЛЕ того как этот приём уже доказал ценность вручную,
не гипотетически.

Запуск по SSH на mini: `~/Services/delor/scripts/sport_cli.py` (тот же venv,
что и сам бот; там же `advisor.db`). Копия — в `tools/sport_cli.py` скилла,
источник истины при правках, передеплой через `scp`. `OMNIROUTE_API_KEY`
подхватывается автоматически из `~/.codex/omniroute.env` (файл хранит
значения в одинарных кавычках — парсер их снимает, иначе OmniRoute отдаёт
401 invalid key). Закоммичен в репо (`scripts/` там git-tracked, commit
`513e005`) — без тестов, по прецеденту соседних диагностических скриптов
(`shadow_report.py`, `fonbet_diag.py` и т.п. тоже без тестов).

Все команды кроме `probe` не требуют Keychain (спорт-таблицы в `advisor.db`
не Fernet-зашифрованы, читаются напрямую) — быстрые. `probe` — дорогой
(реальный LLM + live web-search), не гонять массово без нужды.
