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 joshuadavidthomas/agent-skills --skill salsagit clone --depth 1 https://github.com/joshuadavidthomas/agent-skillsWrote 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/joshuadavidthomas/agent-skills/salsa)<a href="https://agentmods.dev/skills/joshuadavidthomas/agent-skills/salsa"><img src="https://agentmods.dev/badge/skills/joshuadavidthomas/agent-skills/salsa/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/joshuadavidthomas/agent-skills/salsa"><img src="https://agentmods.dev/badge/skills/joshuadavidthomas/agent-skills/salsa.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00144 | $0.02264 |
| Opus 5 | $0.00072 | $0.01132 |
| Sonnet 5 | $0.00029 | $0.00453 |
| Haiku 4.5 | $0.00014 | $0.00226 |
Grade A, and why
salsa 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 9d 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 — 211 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Salsa: Incremental Computation for Rust
Salsa is a framework for incremental recomputation. You define inputs and pure functions over them. Salsa memoizes every function call. When inputs change, it re-executes only the functions whose dependencies actually changed — skipping everything else.
Salsa powers rust-analyzer (Rust IDE), ty (Python type checker), and Cairo, all of which need sub-second response times on large codebases after small edits.
The Mental Model
Salsa Database
┌─────────────────────────────────────┐
External world │ │
(editor, CLI, │ Inputs ──→ Tracked Fns ──→ Output │
filesystem) │ │ │ │
│ │ └── memoized ┘ │
│ │ dependencies tracked automatically│
▼ └─────────────────────────────────────┘
Mutate inputs │
(new revision) ▼
Only re-run what changed
The core loop:
let db = MyDatabase::default();
// 1. Create inputs
let file = SourceFile::new(&db, "fn main() {}".into(), path);
// 2. Compute (Salsa memoizes everything)
let result = analyze(&db, file);
// 3. Mutate an input (starts a new "revision")
file.set_text(&mut db).to("fn main() { 42 }".into());
// 4. Re-compute — Salsa reuses what it can
let result = analyze(&db, file); // Only re-runs what depends on text
Core Concepts
The Database
A struct with #[salsa::db] that stores all cached data. It's the single source of truth — every Salsa operation takes a &db or &mut db.
#[salsa::db]
#[derive(Default, Clone)]
pub struct Database {
storage: salsa::Storage<Self>,
}
#[salsa::db]
impl salsa::Database for Database {}
→ Deep dive: database-architecture.md for layered traits, test vs production, and side tables.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- accumulators.md 4.4 KB
- advanced-plumbing.md 3.0 KB
- cancellation.md 9.7 KB
- cycle-handling.md 3.5 KB
- database-architecture.md 16 KB
- durability.md 3.3 KB
- incremental-testing.md 9.8 KB
- lsp-integration.md 9.3 KB
- memory-management.md 6.7 KB
- production-patterns.md 4.2 KB
- query-pipeline.md 8.7 KB
- README.md 2.2 KB
- references/accumulators/baml-patterns.md 8.1 KB
- references/accumulators/cairo-patterns.md 10 KB
- references/accumulators/djls-patterns.md 5.8 KB
- references/accumulators/fe-patterns.md 7.0 KB
- references/accumulators/large-scale-diagnostics.md 4.2 KB
- references/accumulators/rust-analyzer-patterns.md 3.1 KB
- references/accumulators/salsa-framework.md 6.4 KB
- references/accumulators/ty-patterns.md 3.4 KB
- references/cancellation/rust-analyzer-patterns.md 7.0 KB
- references/cancellation/salsa-framework.md 3.5 KB
- references/cancellation/ty-patterns.md 9.2 KB
- references/cycle-handling/patterns.md 6.1 KB
- references/cycle-handling/theory.md 2.1 KB
- references/database-architecture/baml-patterns.md 7.2 KB
- references/database-architecture/cairo-patterns.md 5.6 KB
- references/database-architecture/djls-patterns.md 5.9 KB
- references/database-architecture/fe-patterns.md 5.4 KB
- references/database-architecture/mun-patterns.md 8.5 KB
- references/database-architecture/rust-analyzer-patterns.md 8.5 KB
- references/database-architecture/salsa-framework.md 3.6 KB
- references/database-architecture/ty-patterns.md 11 KB
- references/durability/common-patterns.md 2.1 KB
- references/durability/rust-analyzer-patterns.md 4.3 KB
- references/durability/salsa-framework.md 3.4 KB
- references/durability/ty-patterns.md 4.2 KB
- references/incremental-testing/early-stage-infrastructure.md 4.0 KB
- references/incremental-testing/examples.md 4.0 KB
- references/incremental-testing/rust-analyzer-patterns.md 3.9 KB
- references/incremental-testing/salsa-framework.md 1.9 KB
- references/incremental-testing/ty-patterns.md 4.6 KB
- references/lsp-integration/baml-patterns.md 5.9 KB
- references/lsp-integration/djls-patterns.md 7.8 KB
- references/lsp-integration/fe-patterns.md 4.0 KB
- references/lsp-integration/mun-patterns.md 8.4 KB
- references/lsp-integration/rust-analyzer-patterns.md 16 KB
- references/lsp-integration/ty-patterns.md 16 KB
- references/lsp-integration/wgsl-analyzer-patterns.md 12 KB
- references/memory-management/baml-patterns.md 3.9 KB
- references/memory-management/cairo-patterns.md 3.3 KB
- references/memory-management/rust-analyzer-patterns.md 5.3 KB
- references/memory-management/salsa-internals.md 3.0 KB
- references/memory-management/ty-patterns.md 7.7 KB
- references/overview/minimal-example.md 1.6 KB
- references/production-patterns/graduation-examples.md 3.5 KB
- references/query-pipeline/baml-patterns.md 11 KB
- references/query-pipeline/cairo-patterns.md 13 KB
- references/query-pipeline/common-patterns.md 5.2 KB
- references/query-pipeline/djls-patterns.md 8.5 KB
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.
- 9d ago First seen · 211 lines · 144 tokens per session scan A 95d5c79b4894
salsa is a skill published in the GitHub repository joshuadavidthomas/agent-skills (50 stars, last pushed 1mo ago), licensed MIT. It adds 144 tokens to every session and 2,264 once invoked, about $0.0007 per session on Opus 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-08-30.
Other skills, from other repositories
dd-code-generation
Use pup CLI for immediate Datadog operations or generate code for integration into applications.
omh-rust
This is a Hermes-native rust workflow skill.
bevy-ecs
Structure a Bevy app around its Entity Component System: build the App with plugins, define Component/Resource types, write systems with Query/Res/Commands, filter and order systems, and use the Time resource for frame-rate-independent motion. Use when building or debugging a Bevy game in Rust — when the user mentions…
rust-project
Modern Rust project architecture guide for 2025. Use when creating Rust projects (CLI, web services, libraries). Covers workspace structure, error handling, async patterns, and idiomatic Rust best practices.
gcs-rust-download-object-api
Fix "DownloadObjectRequest not found" error in google-cloud-storage Rust crate. Use when: (1) Trying to download objects from GCS using the Rust SDK, (2) Looking for a download request type in http::objects::download module, (3) Compile error about missing type. The downloadobject method uses GetObjectRequest from the…
azure-keyvault-secrets-rust
Client library for Azure Key Vault Secrets — secure storage for passwords, API keys, and other secrets.