home / skills / tursodatabase / turso / code-quality
This skill enforces robust Rust code quality by promoting correctness, exhaustive patterns, and clear documentation to prevent crashes and bugs.
npx playbooks add skill tursodatabase/turso --skill code-qualityReview the files below or copy the command above to add this skill to your agents.
---
name: code-quality
description: General Correctness rules, Rust patterns, comments, avoiding over-engineering. When writing code always take these into account
---
# Code Quality Guide
## Core Principle
Production database. Correctness paramount. Crash > corrupt.
## Correctness Rules
1. **No workarounds or quick hacks.** Handle all errors, check invariants
2. **Assert often.** Never silently fail or swallow edge cases
3. **Crash on invalid state** if it risks data integrity. Don't continue in undefined state
4. **Consider edge cases.** On long enough timeline, all possible bugs will happen
## Rust Patterns
- Make illegal states unrepresentable
- Exhaustive pattern matching
- Prefer enums over strings/sentinels
- Minimize heap allocations
- Write CPU-friendly code (microsecond = long time)
## If-Statements
Wrong:
```rust
if condition {
// happy path
} else {
// "shouldn't happen" - silently ignored
}
```
Right:
```rust
// If only one branch should ever be hit:
assert!(condition, "invariant violated: ...");
// OR
return Err(LimboError::InternalError("unexpected state".into()));
// OR
unreachable!("impossible state: ...");
```
Use if-statements only when both branches are expected paths.
## Comments
**Do:**
- Document WHY, not what
- Document functions, structs, enums, variants
- Focus on why something is necessary
**Don't:**
- Comments that repeat code
- References to AI conversations ("This test should trigger the bug")
- Temporal markers ("added", "existing code", "Phase 1")
## Avoid Over-Engineering
- Only changes directly requested or clearly necessary
- Don't add features beyond what's asked
- Don't add docstrings/comments to unchanged code
- Don't add error handling for impossible scenarios
- Don't create abstractions for one-time operations
- Three similar lines > premature abstraction
## Ensure understanding of IO model
- [Async IO model](../async-io-model/SKILL.md)
## Cleanup
- Delete unused code completely
- No backwards-compat hacks (renamed `_vars`, re-exports, `// removed` comments)
This skill captures practical code-quality guidelines for writing correct, efficient Rust for an embedded SQL database. It emphasizes correctness, clear invariants, and pragmatic engineering decisions to avoid data corruption or crashes. The guidance covers Rust patterns, conditional handling, commenting, and when to avoid over-engineering.
It inspects code choices and suggests fixes that preserve correctness and performance in a database context. The skill flags unsafe or silent failure patterns, recommends making illegal states unrepresentable, and enforces explicit error handling or assertions. It also guides comment use and when to avoid premature abstractions or unnecessary changes.
When should I crash instead of returning an error?
Crash if continuing risks data corruption or leaves the system in an undefined state; use explicit assertions or unreachable! for violated invariants. For recoverable user errors, return concrete errors.
How much commenting is enough?
Focus comments on why a choice exists, not what the code does. Document invariants, trade-offs, and any non-obvious interactions with the IO model.