Use when asked to run AST-based structural search, lint, or rewrite of code when regex is too fragile. Not for remote, credential, publish, deploy, or irreversible changes.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# ast-grep
## Contract
| Field | Bound contract |
|---|---|
| Trigger | AST-based modification, structural search, lint, or replacement too fragile for regex. |
| Authority | Reversible local: writes only VCS-tracked source files (search is read-only; rewrites apply only through the helper after dry-run review); rollback is version control. No remote mutation. |
| Side effect | Local file writes through the helper two-pass validate/dry-run/apply flow; no remote, credential, or published mutation. |
| Done | Pattern validated and blast radius reviewed; any rewrite landed at the correct scope (search/lint-only runs are valid). |
## Inputs
- An ast-grep pattern, single-quoted in the shell so `$VAR` reaches ast-grep unexpanded.
- A language (`--lang`) or a single target path whose extension auto-detects it; required for stdin patterns.
- For rewrites: a rewrite template and one or more target paths (defaults to the current directory).
- Optional: include/exclude globs (repeatable, prefix `!` to exclude), context lines, JSON output mode.
## Procedure
…
The line at the top of this page pins the label git:20260905.1f63894, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_g5l5sdty4ve2fdd3
GET https://markdownregistry.com/api/v1/resolve?ref=outlinedriven/outline-driven-development/ast-grep
GET https://markdownregistry.com/api/v1/blob/83937c99021c839ac22b7f3bed933a627c8b1010a949548e72bd85d57639eaa2
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
outlinedriven/outline-driven-development · .devin/skills/abi-and-calling-conventions/SKILL.md · Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not…
outlinedriven/outline-driven-development · .devin/skills/abstract-well/SKILL.md · Use when the user wants to classify abstractions as useful, bad, or busy and keep one shallow level. Not for tasks…
outlinedriven/outline-driven-development · .devin/skills/adc-dac-baremetal/SKILL.md · Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for…
outlinedriven/outline-driven-development · .devin/skills/address-sanitizer/SKILL.md · Use when building or running native code under AddressSanitizer, interpreting an existing ASan report, or debugging a…
outlinedriven/outline-driven-development · .devin/skills/af-xdp/SKILL.md · Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy…
outlinedriven/outline-driven-development · .devin/skills/agent-environment-retrospective/SKILL.md · Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from…
outlinedriven/outline-driven-development · .devin/skills/agent-surface-forge/SKILL.md · Use when asked to audit or repair agent surfaces (plugins, agents, skills, CLAUDE.md/AGENTS.md, docs, prompts…
outlinedriven/outline-driven-development · .devin/skills/agent-transcript/SKILL.md · Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and…
outlinedriven/outline-driven-development · .devin/skills/agents-md/SKILL.md · Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or…
outlinedriven/outline-driven-development · .devin/skills/ai-collab-protocols/SKILL.md · Use when the user describes an AI workflow gap or uses an ambiguous cross-session reference such as ''the PR Bob…
outlinedriven/outline-driven-development · .devin/skills/all-scenarios-storm/SKILL.md · Use when a user wants to enumerate plausible designs, configurations, scenarios, and paths and diagram the field before…
outlinedriven/outline-driven-development · .devin/skills/analysis-artifacts/SKILL.md · Use when the user requests a deep dive, exploratory analysis, or data analysis on BigQuery. Not for credential…
code-yeongyu/oh-my-openagent · packages/shared-skills/skills/ast-grep/SKILL.md · Searches and rewrites code by AST shape across 25 languages. Use when the target is a syntax pattern (every…
ast-grep/agent-skill · ast-grep/skills/ast-grep/SKILL.md · Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search…
moeru-ai/auv · .agents/skills/ast-grep/SKILL.md · Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search…
outlinedriven/odin-claude-plugin · plugins/odin-code/skills/ast-grep/SKILL.md · Use when asked to run AST-based structural search, lint, or rewrite of code when regex is too fragile. Not for remote…
everruns/yolop · src/bundled/system-skills/ast-grep/SKILL.md · Write effective ast-grep patterns for the built-in `ast_grep` structural-search tool and `ast_edit` rewrites. Use when…
sparq-org/sparq · .claude/skills/ast-grep/SKILL.md · Understand code STRUCTURE without reading whole files — outline a large file to its signatures, structural-grep every…