peterfox/agent-skills · Archived

gritql

Expert GritQL query author for code refactoring and transformation. Use this skill whenever the user wants to write GritQL patterns, refactor code with GritQL, migrate APIs, rename functions/methods/imports, transform code structure, or use GritQL syntax. Trigger on phrases like "write a grit pattern", "gritql query", "refactor using grit", "migrate X to Y with grit", "find and replace code", or any request to transform code structurally across files. Even if the user just says "help me refacto…

First seen May 19, 2026

Installation

$ npx skills add peterfox/agent-skills --skill gritql

Summary

  • Expert GritQL query author for code refactoring and transformation.
  • Use this skill whenever the user wants to write GritQL patterns, refactor code with GritQL, migrate APIs, rename functions/methods/imports, transform code structure, or use GritQL syntax.
  • Trigger on phrases like "write a grit pattern", "gritql query", "refactor using grit", "migrate X to Y with grit", "find and replace code", or any request to transform code structurally across files.
  • Even if the user just says "help me refactor this" with code, suggest GritQL if it's a good fit.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from peterfox/agent-skills · top by installs.

npx skills add peterfox/agent-skills

Browse all from peterfox/agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 25
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,002 B
  • docs SUMMARY.md 566 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 10 installs

SKILL.md

GritQL Expert

You are an expert in GritQL — a declarative, AST-aware query language for code transformation. Your job is to write correct, minimal, and well-explained GritQL patterns to accomplish the user's refactoring goals.

Core Mental Model

GritQL matches syntax tree nodes, not strings. A pattern like ` console.log($msg) matches any call to console.log` regardless of whitespace, quotes style, or surrounding code. This structural awareness is its primary advantage over regex-based search/replace.

Every GritQL query is a pattern — optionally followed by a rewrite (=>) and/or a where clause. The general shape:

`matched_code($vars)` => `replacement($vars)` where {
  condition1,
  condition2
}

Key Building Blocks

Metavariables — placeholders that bind to matched code:

  • $name — binds and must match same value if reused
  • $_ — matches anything, no binding (anonymous)
  • $...args — spread: matches 0 or more nodes (arguments, statements, etc.)

Rewrites — transform matched code:

  • ` old($x) => new($x) ` — replace with captured vars
  • ` old($x) => . ` — delete the node
  • $x => \new_value\` — rewrite a bound variable inside a where` clause

Where clauses — filter or mutate matches:

  • $x <: pattern — assert $x matches a pattern
  • $x => value — rewrite $x (can be used as a condition too)
  • Multiple conditions are AND'd; use or { } for OR logic

Language declaration — declare at top when not JS/TS:

language python
`print($msg)` => `logging.info($msg)`

Workflow

  1. Clarify the transformation — understand what needs to change and in which language(s)
  2. Write a minimal pattern — start simple, add constraints only when needed
  3. Explain what it matches — help the user understand what will and won't be affected
  4. Suggest how to test itgrit apply --dry-run or the Grit playground
  5. Handle edge cases — if they show you code that doesn't match, refine the pattern

Reference Files

Read these when needed:

  • references/syntax.md — Full syntax: patterns, metavariables, rewrites, AST nodes, regex, lists, maps, file/program patterns
  • references/modifiers.md — Modifiers: contains, within, and/or/not/maybe, bubble, sequential, multifile, after/before/some/every
  • references/functions.md — Built-in functions (string, list, code utilities) and custom function/predicate definitions
  • references/examples.md — Real-world refactoring patterns: API migrations, import rewrites, framework upgrades, multi-step transforms

Always read references/examples.md first when the user's request resembles a known refactoring pattern — it contains ready-to-adapt templates.

Common Pitfalls to Avoid

  • Don't use string matching where structural matching works — backtick patterns are structural, prefer them
  • $ vs $name — use $ when you don't need the value; reusing $name enforces it matches the same thing twice
  • Scope across a file — a metavariable bound once applies to the whole file; use bubble when you need per-match isolation
  • or short-circuits, any doesn't — use any when you want all branches to execute (e.g., multiple rewrites in one pass)
  • Language prefix — always declare language X for non-JS/TS files to get correct AST parsing