ask-debt · v1.0.0 · 2026-10-03 · sha256 3e4e275ae1c6210b
ask-debt v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/3e4e275ae1c6210b.
--- name: ask-debt description: "READ-ONLY замер «ДОЛГА АВТОНОМНОСТИ» по журналу одобрений 02 (approvals.db) — сколько я спросил Антона за окно, сколько из этого ПРОТУХЛО (никто не ответил), по каким классам (машинный шум / логин-2FA / UAC-физика / деньги… Триггеры: “/ask-debt“, “долг автономности“, “сколько я спрашиваю“, “замер асков“, “что протухло в 02“, “ложные аски“, “почему я столько спрашиваю“, “autonomy debt“, “ask debt“" version: 1.0.0 --- # /ask-debt — сколько я спрашиваю Антона и сколько из этого было зря Метрика долга по правилу `asks-are-my-autonomy-debt`: **протухание аска — это не «Антон занят», это «я спросил там, где не следовало»**. Скилл считает эту долю, режет её по классам и вытаскивает ложные аски пофамильно. **Движок:** `$USERPROFILE/.claude/scripts/ask_debt.py` (читает `$USERPROFILE/.claude/approvals.db`, снимки рядом в `_ask_debt_snapshots.json`). Никаких серверов и своих БД — AK-47. ## Запуск ```bash python ~/.claude/scripts/ask_debt.py --days 30 ``` Вывод — готовая markdown-таблица, её показываю Антону как есть (плюс блок 🧒 «Простыми словами» и вывод «что чиню сам»). Полезные флаги: | Флаг | Что делает | |---|---| | `--days 30` | окно замера (по умолчанию 30; `--days 0` = всё время) | | `--html` | плюс дашборд в `$OBSIDIAN_VAULT/_Dashboards/Ask-Debt.html` (`--html <путь>` = свой путь) | | `--json` | сырой json вместо markdown (для рутин/сторожей) | | `--no-snapshot` | не сохранять снимок — просто посмотреть | | `--db <путь>` | другая база (для тестов) | Дашборд по умолчанию НЕ пишется — предлагаю его сам, когда Антон просит «покажи» или замер идёт в отчёт ([[prefer-visual-dashboards]]). ## Что в отчёте 1. **Шапка** — асков за окно, протухло (шт. и %), красных флагов, статусы, и дельта к прошлому замеру. 2. **Классы асков** — `Машинный шум` (сторож спрашивает разрешения на собственную работу) · `Деньги` · `Логин / 2FA` · `UAC / физика` · `Контент-гейт` · `Решения` · `Прочее`. Колонка «доля журнала» показывает, чем журнал забит; «% протухания» — где именно долг. 3. **Темп по неделям** — растёт долг или падает. 4. **🚩 Ложные аски** — тексты с «+ = да, займись» / «займись?» / «разобраться?». Это те, где ответ описывает МОЮ работу. 5. **⚠️ Мягкие флаги** — «+ = да, жму / поднять / запускаю»: я спрашиваю разрешение на собственный следующий шаг. ## Как читать (пороги) - **% протухания по классу ≥70%** — класс сам по себе больной, не «Антон не успел». - **`Машинный шум` в топе доли журнала** — сторож генерит вопросы о своей же работе; лечение на уровне КОДА сторожа, а не формулировки. - **`Логин / 2FA` 100% протухания** — истинные блоки (руки Антона), но упакованы неверно: проси **руки** («разбуди узел», «нажми Разрешить»), а не разрешение, и одним клик-путём. - **Флагов 0** — только тогда журнал чистый. ## Что делаю после замера (иначе замер бесполезен) 1. Каждый 🚩-аск прогоняю тестом: «это решение Антона или мой недоделанный шаг?» → мой → **иду и делаю сам**, аск не восстанавливаю. 2. Класс-лидер шума → задача на корень (гейт в самом стороже). ⚠️ Правку контура одобрений (`publish_canon.py`, `approval.py`) харнес мне блокирует — это работа под явным «+» Антона с показанным диффом, обходить нельзя. 3. Истинные блоки (`Логин / 2FA`, `UAC / физика`, `Деньги`) остаются его — Tier-2 не ослабляется ([[remote-approval-qqq]]); их лечим упаковкой: клик-путь + скриншот. 4. Снимок сохраняется автоматически → следующий замер покажет, стало лучше или хуже. ## Почему отчёт не может тихо соврать «стало лучше» - Окно **скользящее**: старый протухший аск однажды просто выедет за `--days`, и долг «упадёт» сам. Поэтому в шапке печатается строка `⚠️ Из скользящего окна ВЫШЛО N асков (протухших M)` — часть падения даёт время, а не автономность (находка Codex T3, 28.07). - Дельта между **разными окнами** (7 дн. против 30 дн.) помечается как несопоставимая, а не выдаётся за прогресс. - Аски с битой/пустой датой не выбрасываются молча — идут в корзину недели `без даты`. - «Снимок сохранён» пишется только если запись реально прошла. ## Если сломается | Симптом | Что это | Лечение | |---|---|---| | `НЕТ БАЗЫ: …approvals.db` | на этой машине журнала одобрений нет (не хаб) | замер делать на узле, где живёт `approval.py` | | `нет таблицы pending` | схема журнала изменилась | сверить `PRAGMA table_info(pending)` и поправить список колонок в `load_rows` | | `⚠️ снимки нечитаемы` | побился json снимков | скрипт сам отложит его в `*.corrupt-<дата>` и начнёт новый; старый можно вскрыть руками | | дельта всегда `—` | нет прошлого снимка с тем же окном | сделать замер с тем же `--days` ещё раз (снимки пишутся при каждом прогоне без `--no-snapshot`) | | аск попал не в тот класс | регулярка шире/уже нужного | править `RULES` в `ask_debt.py` — порядок сверху вниз, первое совпадение выигрывает | **Регресс-сетка:** `python ~/.claude/scripts/_test_ask_debt.py` (33 проверки: счёт, классы, флаги, пустая/битая БД, мусорные типы, XSS в дашборде, снимки, честность окна, read-only инвариант по md5). `exit 0` = скилл исправен. Прогонять после любой правки `ask_debt.py`. ## Границы - **READ-ONLY по approvals.db** — база открыта `mode=ro`, ни одного write; статусы асков скилл не трогает (это `approval.py`). Доказано: md5 базы до и после прогона совпадает, попытка write через тот же коннект отбивается. - Не шлёт ничего в 02 и никуда наружу. - Классификатор — регулярки по тексту, не LLM: аск с двумя блокерами попадёт в один класс (первый по приоритету). Цифры — оценка формы журнала, не приговор конкретному аску. - Замер по ЭТОЙ машине: у каждого узла свой `approvals.db`. - Два одновременных прогона не бьют файл снимков (tmp уникален по pid), но при совпадении момента один снимок может потеряться — на дельту это не влияет (снимки — история, не источник цифр). <!--kit-footer--> --- **Like this skill?** It is one of 100 in [second-brain-starter-kit](https://github.com/tonydzi/second-brain-starter-kit): the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with `npx skills add tonydzi/second-brain-starter-kit`. Everything is open source and free, so take what you need. Flagships worth a look on their own: [secondop-panel](https://github.com/tonydzi/secondop-panel) (a second opinion from a panel of external models), [claude-memory-tidy](https://github.com/tonydzi/claude-memory-tidy) (stop your agent's memory from rotting), [telegram-mcp-kit](https://github.com/tonydzi/telegram-mcp-kit) (your own Telegram over MCP in about 15 minutes). Author: **Anton Dziatkovskii**, Palo Alto AI Research Lab. Telegram [@tonydzi](https://t.me/tonydzi) - WhatsApp [+1 341 222 9178](https://wa.me/13412229178) - X [@Tony_Stef_](https://x.com/Tony_Stef_) **Engineers: want to test-drive this setup?** Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.