CtrlK
BlogDocsLog inGet started
Tessl Logo

ast-grep

Searches and rewrites code by AST shape across 25 languages. Use when the target is a syntax pattern (every call/class/import shaped like X, a codemod, a YAML rule) rather than literal text; for plain strings, comments, or filenames, use rg.

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable body: copy-paste commands throughout, an enforced dry-run-first discipline with feedback loops for destructive rewrites, and well-organized one-level references. The two deductions are repeated emphasis of the same invariants across three sections, and bundle-referenced install scripts (install.sh/install.ps1) that are not actually present.

Suggestions

Ship or remove the claimed install scripts: the body says the skill "ships ... install.sh (POSIX) and install.ps1 (Windows)", but neither file exists in the bundle — either add them or point install instructions solely at references/install.md.

Consolidate the repeated invariants: the two-pass write trick, dry-run-first, and validate-first rules each appear in 'Three things the agent must internalize', 'Always run dry-run first', and 'Invariants' — stating each once with a cross-reference would trim the body without losing the message.

Trim the tool-availability preamble (the 'OmO native' MCP section) or move it to a reference file, since it describes one specific environment's tool registration rather than guidance every invocation of the skill needs.

DimensionReasoningScore

Conciseness

The body is dense with commands, a regex-anti-pattern table, and a decision tree, with almost no explanation of concepts Claude already knows. However, the two-pass write trick, dry-run-first, and validate-first rules each appear three or more times ("Three things the agent must internalize", "Always run dry-run first", "Invariants"), which is more than anchor 4's 'minor' trimming opportunities though well short of anchor 3's padding.

4 / 5

Actionability

Every section gives copy-paste-ready commands with real flags and expected outcomes (e.g., `python3 scripts/ast_grep_helper.py validate '\w+' --lang ts` → "exit 2: regex \w not supported"), covering search, replace, scan, validate, debug, stdin, and inline YAML rules. Fully executable and covering the common cases, matching anchor 5.

5 / 5

Workflow Clarity

For the destructive/batch rewrite operation the skill prescribes a 5-step dry-run→inspect→refine→apply flow with an explicit feedback loop ("If wrong: refine pattern, go back to step 1"), and a prioritized 5-step recovery sequence for 0-match surprises. The missing-validation cap does not apply — checkpoints are explicit.

5 / 5

Progressive Disclosure

Structure is strong: a prioritized "Required reading" list where every referenced path (references/patterns.md, pitfalls.md, recipes.md, cli.md, yaml-rules.md, sgconfig.md, install.md) is a real one-level-deep file, and scripts/ast_grep_helper.py exists. But the body claims (line 10) the skill ships `install.sh` and `install.ps1`, neither of which exists in the bundle — a genuine referenced-path gap that keeps this below anchor 5.

4 / 5

Total

18

/

20

Passed

Description

87%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An excellent description: concrete actions, an explicit 'Use when' trigger with concrete target shapes (call/class/import, codemod, YAML rule), and a disambiguating hand-off to rg for text-shaped work. The only gaps are missing common synonyms and language names/extension triggers that would push trigger coverage from good to comprehensive.

DimensionReasoningScore

Specificity

"Searches and rewrites code by AST shape across 25 languages" names the domain and two concrete actions, further instantiated with "a codemod, a YAML rule" — more concrete than anchor 3's bare 1-2 actions, but slightly short of anchor 5's comprehensive multi-action coverage (only two core verbs).

4 / 5

Completeness

Explicitly answers both questions: what ("Searches and rewrites code by AST shape across 25 languages") and when ("Use when the target is a syntax pattern ... rather than literal text"), with a concrete trigger list and an additional when-not clause directing plain-text work to rg. Matches the anchor-5 example's structure.

5 / 5

Trigger Term Quality

Natural trigger terms are present — "codemod", "YAML rule", "every call/class/import shaped like X", "syntax pattern" — plus a contrast phrase users actually recognize ("plain strings, comments, or filenames"). Falls short of anchor 5, which expects synonyms and file extensions (e.g., language names like Python/TypeScript or 'find and replace') that are absent.

4 / 5

Distinctiveness Conflict Risk

The niche is sharply defined by the syntax-tree-vs-text-bytes distinction and an explicit carve-out ("for plain strings, comments, or filenames, use rg"), which actively prevents mis-triggering against grep/rg-style skills. Minimal conflict risk.

5 / 5

Total

18

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
code-yeongyu/lazycodex
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.