К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

debugging — скилл для Claude Code: что делает и как установить

Скилл по отладке tursodb: сравнить байткод с SQLite, включить трейс-логи, прогнать ThreadSanitizer, воспроизвести баг по seed и замерить стек.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add tursodatabase/turso --skill debugging -a claude-code
Открыть на GitHub

Что делает debugging

Скилл ведёт отладку tursodb, движка Turso на Rust, который повторяет поведение SQLite. Первый ход: сравнить байткод через EXPLAIN в sqlite3 и в cargo run --bin tursodb. Байткод расходится — ошибка в генерации кода. Если совпал, а ответы разные, копайте виртуальную машину и слой хранения.

Логи включаются как RUST_LOG=none,turso_core=trace make test, вывод идёт в testing/test.log и быстро разрастается. Многопоточные баги ловят стресс-тестами под ThreadSanitizer: понадобится nightly-тулчейн через rustup toolchain install nightly и rustup override set nightly. Воспроизвести падение помогает симулятор: RUST_LOG=limbo_sim=debug cargo run --bin limbo_sim -- -s <seed>, для конкурентных сценариев есть testing/concurrent-simulator/bin/run.

В scripts/stack/ лежат три скрипта: размер кадра функции, минимальный стек под SQL-файл, профиль самых глубоких вызовов под lldb; у каждого есть -h со всеми опциями. Замеры стека берите только с release-сборки cargo build --release --bin tursodb — в debug слоты не переиспользуются, и цифры ничего не скажут о том, что запускают пользователи. Разбор повреждений WAL описан в references/CORRUPTION-TOOLS.md. Симулятор всё ещё держит старое имя «limbo», так что это не опечатка.

Какие задачи решает

  • сравнить байткод запроса в sqlite3 и tursodb и найти место расхождения
  • поймать гонку в многопоточном сценарии под ThreadSanitizer
  • воспроизвести падение по seed в детерминированном симуляторе
  • измерить минимальный стек, на котором выживает глубоко вложенное выражение
  • разобрать повреждение WAL и проверить целостность базы

Примеры запросов агенту

  • Сравни байткод `EXPLAIN SELECT 1 + 1;` в sqlite3 и tursodb и скажи, где он расходится
  • Воспроизведи этот баг симулятором с seed 1234 и объясни, на каком шаге ломается
  • Сними размеры кадров для `translate::expr::` на release-сборке и покажи самые толстые

Как установить debugging

1Через Skills CLI (Vercel)

npx skills add tursodatabase/turso --skill debugging -a claude-code

2Вручную: положить файлы

~/.claude/skills/debugging/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/debugging/

Из того же набора10

Весь набор →
code-quality tursodatabase Набор правил корректности, Rust-паттернов и принципов без переусложнения для агентов, которые пишут код в вашем проекте. Claude Code CX Codex Cursor +1 1 800установок storage-format tursodatabase Справочник по формату файла SQLite: заголовок, страницы, B-деревья, ячейки, overflow и freelist, с привязкой к коду Turso. Claude Code CX Codex Cursor +1 1 300установок testing tursodatabase Скилл помогает писать тесты для SQL и Rust: учит выбирать между форматами .sqltest, TCL и интеграционными тестами, показывает команды для запуска. Claude Code CX Codex Cursor +1 1 300установок async-io-model tursodatabase Обучает агента архитектуре асинхронного ввода-вывода в Turso: явным стейт-машинам, типу IOResult и защите от багов повторного входа. Claude Code CX Codex Cursor +1 1 300установок index-knowledge tursodatabase Скилл автоматически создаёт иерархическую документацию AGENTS.md для кодовой базы. Анализирует структуру проекта, оценивает сложность каждой папки и генерирует файлы с инструкциями для ИИ-агентов. Claude Code CX Codex Cursor +1 1 300установок mvcc tursodatabase Справочник по экспериментальному MVCC в кодовой базе Turso: многоверсионность строк, изоляция снимков и ограничения памяти. Пригодится при отладке и разработке ядра базы данных. Claude Code CX Codex Cursor +1 1 200установок differential-fuzzer tursodatabase Скилл помогает запускать дифференциальный фаззер Turso и разбирать расхождения с SQLite. Нужен при поиске ошибок корректности в сгенерированных SQL-запросах. Claude Code CX Codex Cursor +1 1 200установок transaction-correctness tursodatabase Объясняет механику транзакций в Turso: как работает WAL, чекпоинты, восстановление после сбоя и правила конкурентного доступа. Claude Code CX Codex Cursor +1 1 200установок

Похожие

scaffolding-oracle-to-postgres-migration-test-project официальный github Создаёт пустой xUnit-проект интеграционных тестов для Oracle в .NET-решении. Нужен перед написанием базовых тестов на этапе Phase 3. GitHub Copilot 1 700установок bigquery-troubleshooting официальный google Скилл разбирает сбои, медленные задания и неожиданный рост расходов в BigQuery. Он помогает найти узкое место и выбрать шаги для исправления. Claude Code Gemini CLI CX Codex 1 400установок bigquery-optimization официальный google Скилл помогает находить способы снизить расходы BigQuery, настроить хранение и переписать SQL. Подходит для планирования capacity и изменений таблиц. Claude Code Gemini CLI CX Codex 1 400установок agent-memory-systems sickn33 Скилл для проектирования памяти агентов с разделением по пользователям и тенантам. Помогает построить RAG, историю диалогов и хранилище векторов так, чтобы данные одного клиента не утекали к другому. Claude Code CX Codex Cursor +1 2 000установок database-lookup K-Dense-AI Находит факты в 80 внешних базах данных через API с контролем пагинации и источников. Пригодится, когда научные или финансовые данные нужно подтвердить первоисточником. Claude Code CX Codex Cursor +1 2 100установок seaborn K-Dense-AI Скилл для Claude Code и других агентов: тот строит статистические графики на seaborn из pandas DataFrame, с готовыми рецептами под распределения, регрессии и тепловые карты. Claude Code CX Codex Cursor +1 2 100установок xlsx официальный anthropics Работает с табличными файлами: создаёт, читает, правит и преобразует книги. Подходит, когда итогом должен стать файл Excel или другой табличный формат. Claude Code Claude.ai 187 223установок google-agents-cli-observability официальный Google Помогает настроить трассировку и сбор данных о работе ИИ-агентов, включая агентов на ADK. Пригодится, когда нужно разбирать выполнение запросов или наблюдать за агентом после развёртывания. Claude Code CX Codex Cursor +1 509 900установок

Вопросы о debugging

Как установить debugging в Claude Code?

Выполните npx skills add tursodatabase/turso --skill debugging -a claude-code, файл скилла появится в ~/.claude/skills/debugging/SKILL.md.

Что делает скилл debugging?

Описывает отладку tursodb: сравнение байткода с SQLite, трейс-логи ядра, стресс-тесты под ThreadSanitizer, детерминированную симуляцию по seed и замеры стека скриптами из scripts/stack/.

Что нужно для запуска под ThreadSanitizer?

Nightly-тулчейн: rustup toolchain install nightly, затем rustup override set nightly. Дальше стресс-тест запускается через cargo run -Zbuild-std --target x86_64-unknown-linux-gnu -p turso_stress.

Исходный текст

SKILL.md · MIT
---
name: debugging
description: How to debug tursodb using Bytecode comparison, logging, ThreadSanitizer, deterministic simulation, and corruption analysis tools
---
# Debugging Guide

## Bytecode Comparison Flow

Turso aims for SQLite compatibility. When behavior differs:

```
1. EXPLAIN query in sqlite3
2. EXPLAIN query in tursodb
3. Compare bytecode
   ├─ Different → bug in code generation
   └─ Same but results differ → bug in VM or storage layer
```

### Example

```bash
# SQLite
sqlite3 :memory: "EXPLAIN SELECT 1 + 1;"

# Turso
cargo run --bin tursodb :memory: "EXPLAIN SELECT 1 + 1;"
```

## Manual Query Inspection

```bash
cargo run --bin tursodb :memory: 'SELECT * FROM foo;'
cargo run --bin tursodb :memory: 'EXPLAIN SELECT * FROM foo;'
```

## Logging

```bash
# Trace core during tests
RUST_LOG=none,turso_core=trace make test

# Output goes to testing/test.log
# Warning: can be megabytes per test run
```

## Threading Issues

Use stress tests with ThreadSanitizer:

```bash
rustup toolchain install nightly
rustup override set nightly
cargo run -Zbuild-std --target x86_64-unknown-linux-gnu \
  -p turso_stress -- --vfs syscall --nr-threads 4 --nr-iterations 1000
```

## Deterministic Simulation

Reproduce bugs with seed. Note: simulator uses legacy "limbo" naming.

```bash
# Simulator
RUST_LOG=limbo_sim=debug cargo run --bin limbo_sim -- -s <seed>

# Whopper (concurrent DST)
SEED=1234 ./testing/concurrent-simulator/bin/run
```

## Stack Usage

Parsing and translating an expression recurse once per level of nesting, so
the stack frame size of those functions limits how deep an expression can be.
Three scripts in `scripts/stack/` measure stack use. Use a release build
(`cargo build --release --bin tursodb`): debug builds do not reuse stack slots,
so their frames say little about what users run. Run each script with `-h`
for all options.

```bash
# Frame size of each function, read from its prologue. -c compares two binaries.
scripts/stack/frame-sizes.sh 'translate::expr::'
scripts/stack/frame-sizes.sh -c /tmp/tursodb-main 'translate_expr$' 'parse_expr_inner$'

# Smallest stack that runs a SQL script, per binary. -S adds sqlite3.
scripts/stack/min-stack.sh -S -b /tmp/tursodb-main -b target/release/tursodb deep.sql

# Which functions use the stack at the deepest point (runs under lldb).
scripts/stack/stack-profile.sh deep.sql
```

Functions that recurse per level should be small. Move rare and large paths
into `#[inline(never)]` helpers, like SQLite's `SQLITE_NOINLINE`.

## Architecture Reference

- **Parser** → AST from SQL strings
- **Code generator** → bytecode from AST
- **Virtual machine** → executes SQLite-compatible bytecode
- **Storage layer** → B-tree operations, paging

## Corruption Debugging

For WAL corruption and database integrity issues, use the corruption debug tools in [scripts](./scripts).

See [references/CORRUPTION-TOOLS.md](./references/CORRUPTION-TOOLS.md) for detailed usage.

© tursodatabase · MIT · tursodatabase/turso

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой