CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/semgrep-rules

Configures and runs Semgrep - pattern-based SAST across 30+ languages with the Semgrep Registry rulesets (`p/owasp-top-ten`, `p/default`, `auto`) plus custom YAML rules; integrates `semgrep ci` for PR-blocking gates with `--baseline-commit` diff-aware scanning, per-finding inline `nosemgrep` suppressions, `--exclude` / `--include` path filters, output formats (`--json` / `--sarif` / `--gitlab-sast` / `--junit-xml`), and severity filter (INFO/WARNING/ERROR). Use when the user runs Semgrep, asks about pattern rules, or needs a low-friction SAST gate without semantic-DB setup.

71

Quality

89%

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

Overview
Quality
Evals
Security
Files

Quality

Content

86%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 well-engineered skill body: highly actionable commands and examples, a clearly split one-level-deep reference file, and a coherent six-step workflow. The remaining polish is trimming repeated source attributions and Overview overlap, and adding an explicit error-recovery loop around rule validation.

Suggestions

Trim the Overview section (it re-states Semgrep's description already in frontmatter) and consolidate the repeated 'Per [sg-cli][sg-cli]' attribution lines into a single provenance note in the References section.

After `semgrep validate --config .semgrep.yml` in Step 3, add an explicit recovery loop: if validation fails, read the reported rule-id error, fix the YAML, and re-validate before proceeding.

Convert the bare documentation URLs in the References section (semgrep.dev/docs/writing-rules/rule-syntax, semgrep.dev/docs/semgrep-ci/overview) into markdown links so navigation is consistent with the other references.

DimensionReasoningScore

Conciseness

The body is dominated by terse commands, YAML, and tables that earn their tokens, but the Overview re-states what Semgrep is (already in the description) and the attribution phrase 'Per [sg-cli][sg-cli]' repeats roughly six times. These are minor trimmable instances matching anchor 4, not 5's 'every token earns its place' and not 3's padded-explanation level.

4 / 5

Actionability

Every section gives copy-paste-ready material: install commands, `semgrep scan --config auto`, a complete custom-rule YAML with CWE metadata, `semgrep validate --config .semgrep.yml`, a full GitHub Actions workflow with SARIF upload, and a suppression table with a mandatory justification template. Fully executable and covering the common cases matches anchor 5.

5 / 5

Workflow Clarity

Steps 1-6 are clearly sequenced and include a validation checkpoint (`semgrep validate --config .semgrep.yml`) plus explicit exit-code gating (0/1/2). However, there is no explicit validate-fail -> fix -> re-validate recovery loop, so it sits at anchor 4 ('most checkpoints present; minor validation gaps') rather than 5's feedback loops.

4 / 5

Progressive Disclosure

The spine keeps only the common commands and delegates exhaustive flag, performance, and exit-code tables to references/cli-reference.md, which exists as a real file, is clearly signaled in Step 6, and is exactly one level deep. Combined with clean section/table navigation, this matches the anchor-5 example of a well-split overview with well-signaled references.

5 / 5

Total

18

/

20

Passed

Description

88%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.

A strong frontmatter description: comprehensive concrete capabilities, an explicit 'Use when...' trigger clause, and a clearly named tool niche. Its only weaknesses are a few missing natural synonyms (e.g., 'static analysis', 'code scanning') and inherent overlap with neighboring SAST skills.

DimensionReasoningScore

Specificity

The description enumerates concrete, flag-level capabilities ('`p/owasp-top-ten`, `p/default`, `auto`', 'custom YAML rules', '`--baseline-commit` diff-aware scanning', '`nosemgrep` suppressions', '`--json` / `--sarif` / `--gitlab-sast` / `--junit-xml`', 'severity filter (INFO/WARNING/ERROR)'), fully covering configure/run/integrate/triage. This matches the 'multiple specific concrete actions; comprehensive coverage' anchor; score 4 would require a coverage gap that is not present.

5 / 5

Completeness

It explicitly answers 'what' (configures and runs Semgrep with the listed capabilities) and 'when' with a literal trigger clause: 'Use when the user runs Semgrep, asks about pattern rules, or needs a low-friction SAST gate without semantic-DB setup.' This mirrors the anchor-5 example structure; nothing is left only implied.

5 / 5

Trigger Term Quality

Natural triggers are present ('runs Semgrep', 'asks about pattern rules', 'SAST gate'), but common synonyms such as 'static analysis' verbatim, 'code scanning', or the `.semgrep.yml` config filename are absent. Good keyword coverage with a few natural terms missing fits anchor 4, not the synonym-and-extension completeness of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The niche is clearly named (Semgrep, pattern-based SAST, registry rulesets) and triggers are tool-specific, so it will not fire for unrelated skills. However, the broader SAST domain overlaps closely with sister scanners (SonarQube, CodeQL), matching anchor 4 ('mostly distinct; minor overlap risk with closely related skills') rather than 5's 'minimal conflict risk'.

4 / 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.

Reviewed

Table of Contents