# Tree-sitter

> Expert skill for creating tree-sitter grammars for incremental parsing and syntax highlighting

- Skill: `a5c-ai/tree-sitter` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add a5c-ai/tree-sitter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/a5c-ai/tree-sitter/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: a5c-ai (https://skillmd.com/u/a5c-ai)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/a5c-ai/tree-sitter

---


# Tree-sitter Skill

## Overview

Expert skill for creating tree-sitter grammars for incremental parsing and syntax highlighting.

## Capabilities

- Write tree-sitter grammar.js files
- Handle tree-sitter external scanners
- Design queries for syntax highlighting
- Implement incremental parsing support
- Handle tree-sitter error recovery
- Generate bindings for various languages
- Integrate with editors (VS Code, Neovim, Helix)
- Test grammars with corpus files

## Target Processes

- language-grammar-design.js
- lexer-implementation.js
- parser-development.js
- lsp-server-implementation.js

## Dependencies

- tree-sitter CLI
- tree-sitter crates/npm packages

## Usage Guidelines

1. **Grammar.js**: Follow tree-sitter grammar.js conventions
2. **External Scanners**: Use external scanners for context-sensitive lexing
3. **Queries**: Write highlight.scm and other query files for editor integration
4. **Testing**: Build comprehensive corpus test files
5. **Error Recovery**: Design grammar with error recovery in mind

## Output Schema

```json
{
  "type": "object",
  "properties": {
    "grammarName": { "type": "string" },
    "nodeTypes": {
      "type": "array",
      "items": { "type": "string" }
    },
    "queries": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": ["highlights", "injections", "locals", "tags", "folds"]
      }
    },
    "bindings": {
      "type": "array",
      "items": { "type": "string" }
    },
    "generatedFiles": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}
```

