Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add aahlijia/dekko --skill dekko-debuggit clone --depth 1 https://github.com/aahlijia/dekkoWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aahlijia/dekko/dekko-debug)<a href="https://agentmods.dev/skills/aahlijia/dekko/dekko-debug"><img src="https://agentmods.dev/badge/skills/aahlijia/dekko/dekko-debug/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aahlijia/dekko/dekko-debug"><img src="https://agentmods.dev/badge/skills/aahlijia/dekko/dekko-debug.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00120 | $0.01072 |
| Opus 5.5 | $0.00048 | $0.00429 |
| Sonnet 5.5 | $0.00024 | $0.00214 |
| Haiku 4.5 | $0.00012 | $0.00107 |
Grade A, and why
dekko-debug scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 19d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 66 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Debugging with dekko (frames first, files last)
A traceback already names the symbols. Opening each frame's file to
see what it does, what it raises, and who called it re-derives what
the map holds. Ask the map, then read only the lines you'll change.
Tool names below are the bare MCP names (dekko-orient has the
prefixes and target syntax); the throws/catches/trace/env
queries are CLI only.
Question → tool
| Question | Use |
|---|---|
| What is this frame, and does it carry a note? | query_symbol file.py:func (line-qualify with :LINE when the reply says it's an overload set) |
| What does the raising function actually do here? | get_context_pack with with_source=true, budget ~800; a whole-file Read is the last resort |
| Where can this exception come from? | dekko query throws <sym>: the function's own raise sites, each repo-defined or external; --transitive --depth N walks callees |
| Who catches it, or should have? | dekko query catches <ExcType>: exact type-name matches plus catch-alls |
| How did control reach this frame? | get_callers one hop up; dekko trace <entry> <frame> for the shortest call path(s) when the trace is truncated, async, or via a callback |
| Is the failure environment-dependent? | dekko query env <NAME> for every getenv-shaped read; --list to see the repo's keys |
| Which tests cover the fix? | impacted_tests (CLI dekko affected) after editing; run the command it prints |
Procedure
- Start from the innermost in-repo frame.
query_symbolit; read anynote:lines first, they often name the invariant that just broke. External frames (stdlib, vendored packages) are context, not targets. - Find the raise.
dekko query throws <frame>. If the frame only propagates,--transitive --depth 3walks its callees; areached the transitive depth capnote means raise--depthrather than assume the list is complete. Are-raise site(s) omittednote means a bareraise/throwwhose type depends on the enclosing handler: read that handler withget_context_pack. - Check the handling.
dekko query catches <ExcType>tells you whether the error was supposed to be caught upstream. Matching is exact-name only: a catch of a supertype won't show, so also query the type's parents fromget_supertypes <ExcType>. - Reconstruct the path when the trace doesn't show it. Async
boundaries, thread pools, callbacks and signal handlers cut a
trace short.
get_callers <frame>one hop at a time, ordekko trace <entry> <frame>(usefile.py:namefor both ends; a baremainis usually ambiguous). - Rule out configuration. If the raise site reads or depends on
an env var,
dekko query env <NAME>lists every read site so a fix covers all of them. It does not trace config files (YAML,.env) or dynamic keys. - Fix, then
impacted_tests. If the fix changes a signature or moves a symbol,dekko-refactortakes over the site list.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 19d ago First seen · 66 lines · 120 tokens per session scan A 913788cb0717
dekko-debug is a skill published in the GitHub repository aahlijia/dekko (5 stars, last pushed today), licensed MIT. It adds 120 tokens to every session and 1,072 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-27.
Other skills, from other repositories
roam
Codebase comprehension via roam-code CLI. Use when exploring codebases, planning modifications, debugging failures, assessing PR risk, or checking architecture health. Triggers on: understanding project structure, pre-change safety checks, finding symbols/files, blast radius analysis, affected tests, health scoring…
codegraph
Analyze indexed codebases via graph database (neug) and vector index (zvec). Covers call graphs, dependencies, dead code, hotspots, module coupling, architecture reports, semantic search, impact analysis, bug root cause from GitHub issues, class diagrams (UML), and PR review (risk scoring, conflict detection…
stuck
Diagnose frozen, stuck, or slow Qwen Code sessions on this machine. Scans for problematic processes, high CPU/memory usage, hung subprocesses, and debug logs. Use /stuck or /stuck to focus on a specific process.
structured-debugging
Hypothesis-driven debugging methodology for hard bugs. Use this skill whenever you're investigating non-trivial bugs, unexpected behavior, flaky tests, or tracing issues through complex systems. Activate proactively when debugging requires more than a quick glance — especially when the first attempt at a fix didn't…
test-failure-explorer
Import and query an existing Vitest 3.2 JSON report to explore test failures, file-level errors and original diagnostic evidence.
oversight-team
Use when you are a seat on the oversight pod (a standing monitor-mode rig that keeps OTHER rigs healthy), configuring or running the drift detectors, or choosing whether to intervene vs escalate. Covers the pull-not-poll posture, the v0 detectors (premature-park, process-drift, off-task, token-burn), the intervention…