DJLS Ruff AST

SkillDev tools

Use when editing djls-extraction or Rust code that consumes Ruff Python AST APIs, including parse_module, parameters, boxed expressions, f-strings, or exception handlers. Handles known Ruff AST shape gotchas in django-language-server.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the DJLS Ruff AST skill

What this skill tells your AI

The instructions your AI receives, as published by joshuadavidthomas/django-language-server in .agents/skills/djls-ruff-ast/SKILL.md and read by ahel’s review.

Use this before editing djls-extraction or code that consumes Ruff Python AST nodes.

Known API shapes

  • Parse modules with ruff_python_parser::parse_module(source) and call .into_syntax() for ModModule AST.
  • Function defaults are per-parameter. There is no top-level defaults field.
    • Use ParameterWithDefault { parameter, default: Option<Box<Expr>> }.
  • StmtWhile.test, StmtIf.test, and similar fields are Box<Expr>.
    • Dereference with &* for pattern matching.
  • FStringValue uses .iter(), not .parts(), for FStringPart iteration.
  • ExceptHandler::ExceptHandler is irrefutable.
    • Use let, not if let.

Signals

GitHub stars
203
Forks
10
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
djls-ruff-ast
Source
github.com/joshuadavidthomas/django-language-server