DJLS Salsa
SkillDatabases & dataUse when editing Salsa inputs, tracked functions, database traits, setters, SemanticDb, crate::Db, invalidation behavior, or incremental computation in django-language-server. Handles project-specific Salsa conventions and required impl updates.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the DJLS Salsa skill
What this skill tells your AI
The instructions your AI receives, as published by joshuadavidthomas/django-language-server in .agents/skills/djls-salsa/SKILL.md and read by ahel’s review.
Use this before changing Salsa inputs, tracked functions, database traits, or query plumbing.
Setter and invalidation rules
- Setter API is
project.set_field(db).to(value), not.set_field(db, value). - Compare before setting because setters always invalidate.
- Use
#[returns(ref)]on fields returning owned types. - Salsa returns
&Tfor#[returns(ref)], so compare with&new_value. - Tracked return types need
PartialEqfor backdate optimization.
Required updates
- When adding
SemanticDbmethods, update impls in:djls-db/src/db.rsdjls-bench/src/db.rs
- When adding
crate::Dbmethods indjls-semantic, update all test database impls. Missing impls produce E0046.
Checks
Search with rg, not grep:
rg "impl crate::Db" crates/djls-semantic/ -g '*.rs'
rg "trait SemanticDb|impl SemanticDb" crates/ -g '*.rs'
Signals
- GitHub stars
- 203
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
djls-salsa- Source
- github.com/joshuadavidthomas/django-language-server