Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Ask Debt

ASecurity

Read-only measurement of an agent's autonomy debt from its approvals log: how many times it asked the human for permission in a window, how many asks expired unanswered, and which classes they fall into (machine noise, login or 2FA, physical UAC, money). Use to find asks the agent should have decided itself and to cut needless interruptions. Triggers: /ask-debt, autonomy debt, how often do I ask, expired asks.

8 stars
0 votes
0 copies
0 views
Added 9/25/2026
ai-agentspythonbashgit

Works with

mcp

Security Analysis

A100/100

Scanned 10/7/2026

$npx -y skills add tonydzi/second-brain-starter-kit --skill ask-debt --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ask Debt?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Ask Debt
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tonydzi-ask-debt/badge)](https://www.skillsdirectory.com/skills/tonydzi-ask-debt)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: ask-debt
description: "Read-only measurement of an agent's autonomy debt from its approvals log: how many times it asked the human for permission in a window, how many asks expired unanswered, and which classes they fall into (machine noise, login or 2FA, physical UAC, money). Use to find asks the agent should have decided itself and to cut needless interruptions. Triggers: /ask-debt, autonomy debt, how often do I ask, expired asks."
license: MIT
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.

Attribution

tonydzitonydzi
View sourceSee grades on GitHubMore from tonydzi →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →