Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Security specialist - finds vulnerabilities and ensures best practices
.claude/skills/bilal140202-security-guard/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✓→✓ | = Same ✓ | 5% | 0% |
| case-04 | ✓→✓ | = Same ✓ | -8% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 11% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 14% | 0% |
| case-07 | ✓→✓ | = Same ✓ | -15% | 0% |
You are SecurityGuard, the appsec specialist. You protect code from vulnerabilities.
python# BAD query = f"SELECT * FROM users WHERE id = {user_id}"
python# GOOD query = "SELECT * FROM users WHERE id = ?" cursor.execute(query, (user_id,))
javascript// BAD element.innerHTML = userInput;
javascript// GOOD element.textContent = userInput; // Or use DOMPurify for HTML element.innerHTML = DOMPurify.sanitize(userInput);
When reviewing code:
"Security is not a product, but a process." - Bruce Schneier
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,930 | 9,597 | +21% | 1 | 1 | 0% | 912 | 1,702 | +87% | 0 | 0 | — |
case-02 | fail→fail | 16,724 | 15,582 | -7% | 1 | 1 | 0% | 860 | 1,910 | +122% | 0 | 0 | — |
case-03 | pass→pass | 7,679 | 6,014 | -22% | 1 | 1 | 0% | 1,432 | 1,500 | +5% | 0 | 0 | — |
case-04 | pass→pass | 12,246 | 8,943 | -27% | 1 | 1 | 0% | 2,225 | 2,056 | -8% | 0 | 0 | — |
case-05 | pass→pass | 9,050 | 7,643 | -16% | 1 | 1 | 0% | 1,603 | 1,779 | +11% | 0 | 0 | — |
case-06 | pass→pass | 12,367 | 11,538 | -7% | 1 | 1 | 0% | 2,174 | 2,486 | +14% | 0 | 0 | — |
case-07 | pass→pass | 12,124 | 7,617 | -37% | 1 | 1 | 0% | 2,168 | 1,837 | -15% | 0 | 0 | — |
case-08 | pass→pass | 8,797 | 8,428 | -4% | 1 | 1 | 0% | 1,618 | 2,016 | +25% | 0 | 0 | — |
case-09 | pass→pass | 11,988 | 9,073 | -24% | 1 | 1 | 0% | 2,096 | 2,087 | -0% | 0 | 0 | — |
case-10 | pass→pass | 16,677 | 12,107 | -27% | 1 | 1 | 0% | 2,845 | 2,593 | -9% | 0 | 0 | — |
case-11 | pass→pass | 9,596 | 9,152 | -5% | 1 | 1 | 0% | 1,740 | 2,191 | +26% | 0 | 0 | — |
case-12 | pass→pass | 12,319 | 10,149 | -18% | 1 | 1 | 0% | 2,068 | 2,070 | +0% | 0 | 0 | — |
case-13 | pass→pass | 8,013 | 7,992 | -0% | 1 | 1 | 0% | 1,371 | 1,986 | +45% | 0 | 0 | — |
case-14 | pass→pass | 7,307 | 6,368 | -13% | 1 | 1 | 0% | 1,149 | 1,569 | +37% | 0 | 0 | — |
case-15 | pass→pass | 13,447 | 11,320 | -16% | 1 | 1 | 0% | 2,442 | 2,440 | -0% | 0 | 0 | — |
case-16 | pass→pass | 9,184 | 9,349 | +2% | 1 | 1 | 0% | 1,683 | 2,033 | +21% | 0 | 0 | — |
case-17 | pass→pass | 20,154 | 14,278 | -29% | 1 | 1 | 0% | 3,006 | 2,673 | -11% | 0 | 0 | — |
case-18 | pass→pass | 15,641 | 13,864 | -11% | 1 | 1 | 0% | 2,500 | 2,788 | +12% | 0 | 0 | — |
case-19 | pass→pass | 16,222 | 11,238 | -31% | 1 | 1 | 0% | 2,536 | 2,249 | -11% | 0 | 0 | — |
case-20 | pass→pass | 9,418 | 7,718 | -18% | 1 | 1 | 0% | 1,593 | 1,761 | +11% | 0 | 0 | — |
case-21 | pass→pass | 19,702 | 13,852 | -30% | 1 | 1 | 0% | 3,805 | 2,729 | -28% | 0 | 0 | — |
case-22 | pass→pass | 5,686 | 6,021 | +6% | 1 | 1 | 0% | 1,103 | 1,575 | +43% | 0 | 0 | — |
case-23 | pass→pass | 7,738 | 6,223 | -20% | 1 | 1 | 0% | 1,489 | 1,633 | +10% | 0 | 0 | — |
case-24 | pass→pass | 8,448 | 6,820 | -19% | 1 | 1 | 0% | 1,406 | 1,656 | +18% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of -100 percentage points is the difference between those two pass rates over the 24 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Other measured skills in the registry, with their headline benchmark lift.