CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

security-and-hardening

Hardens code against vulnerabilities. Use when auditing an input handler for vulnerabilities, when handling user input, authentication, data storage, or external integrations, or when checking a login flow is safe against the OWASP Top Ten. Use when building any feature that accepts untrusted data, manages user sessions, or interacts with third-party services. Use when auditing dependencies for known vulnerabilities, triaging package-manager audit findings, or assessing supply-chain risk in a new package. Use when personal data or privacy compliance (GDPR, CCPA) is involved.

70

Quality

88%

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

82%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 high-quality, opinionated hardening body: concrete thresholds and commands throughout, a threat-model-first workflow with explicit checkpoints, and a clean one-level-deep split into hardening-patterns.md whose anchors all verify. The two real defects are the broken '../../references/security-checklist.md' path (referenced three times, missing from the bundle) and padding from well-known security basics (the STRIDE table, generic header lists) that could be trimmed.

Suggestions

Fix the '../../references/security-checklist.md' path — it is referenced three times (Destructive paths, Dependencies, Review Checklist) but no such file exists in the bundle; move it under references/ or inline the checklist.

Trim or compress content Claude already knows — the six-row STRIDE mitigation table and the generic Always-Do header/cookie lists — to free tokens for the non-obvious guidance that makes this skill valuable.

Add an explicit validate→fix→retry loop to the dependency process (e.g., what to do when the frozen install or signature verification fails) so workflow verification is a feedback loop rather than a one-shot checklist.

DimensionReasoningScore

Conciseness

Most sections carry non-obvious, dense guidance — 'in-memory counters silently become max × instances', the DNS-rebinding TOCTOU gap, 'trust follows who *wrote* a value, not which channel delivered it' — so it largely assumes Claude's competence. It is not anchor 5 because some space goes to concepts Claude already knows: the six-row STRIDE table with standard mitigations, the basic header/cookie lists, and the Common Rationalizations table (12 rows) restate familiar security platitudes alongside genuinely sharp entries ('The audit passed, so the dependency is safe').

4 / 5

Actionability

For an instruction-only skill, the guidance is fully concrete and executable: 'bcrypt (≥12 rounds)', 'about 10 attempts per 15 minutes', 'CSP starts from default-src 'self'', 'resolve **all** DNS records and reject any private or reserved address (loopback, link-local 169.254.169.254…)', 'grep the staged diff before committing', and a three-condition test for destructive paths (allowlisted root, minimum depth, ownership evidence). Per the rubric's code-vs-instruction note, the absence of code is not penalized when guidance is this specific.

5 / 5

Workflow Clarity

Multiple processes are clearly sequenced with checkpoints: the threat-model-first steps, the 4-step dependency process with explicit stops ('stop on disagreement or competing lockfiles', 'Never blanket-approve'), the Review Checklist, and the terminal Verification checklist with item-level acceptance criteria. It falls short of anchor 5 because there is no validate→fix→retry feedback loop — verification is a one-shot final checklist, and the destructive-path rule says 'log the rejected target and stop' without a recovery path.

4 / 5

Progressive Disclosure

The split is genuinely good: the body holds the rules, references/hardening-patterns.md holds implementations, every one of the 15 anchored links resolves to a real section in that file, and it is one level deep with a clear instruction ('Open the section you need when you reach that code, not before'). It is not anchor 5 because the body references '../../references/security-checklist.md' three times — including the entire Review Checklist section — yet no such file exists in the bundle's references/ directory; that path escapes the skill directory and does not resolve.

4 / 5

Total

17

/

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.

A strong description: explicit what, four concrete 'Use when' clauses covering the skill's full domain (input/auth hardening, dependencies/supply chain, privacy compliance), and unmistakably security-specific triggers. The only weakness is that the 'what' sentence is broad while the trigger list carries the specificity.

DimensionReasoningScore

Specificity

The opening 'Hardens code against vulnerabilities' is broad, but the description names several concrete activities — 'auditing an input handler for vulnerabilities', 'checking a login flow is safe against the OWASP Top Ten', 'triaging package-manager audit findings', 'assessing supply-chain risk in a new package'. This matches anchor 4 (several specific actions, minor gaps); it is not anchor 5 because the core 'what' is a single general statement and hardening sub-activities the skill actually covers (secrets, headers, SSRF, LLM output) go unmentioned.

4 / 5

Completeness

Both parts are explicit: the 'what' ('Hardens code against vulnerabilities') and four 'Use when…' clauses with concrete trigger phrases spanning input handling, auth flows, dependency audits, and privacy compliance. The 'when' is far more explicit than the anchor-4 example ('Use when working with PDF files'), matching the anchor-5 pattern of what + when with concrete triggers; the single-sentence 'what' is clear and unambiguous.

5 / 5

Trigger Term Quality

Natural user phrasing is well covered: 'user input', 'authentication', 'login flow', 'untrusted data', 'user sessions', 'third-party services', 'supply-chain risk', 'GDPR, CCPA', 'package-manager audit'. Not anchor 5 because common synonyms a user would say are missing — 'secrets', 'XSS', 'injection', 'sanitize', 'hardening' beyond the verb form.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers: 'OWASP Top Ten', 'supply-chain risk', 'GDPR, CCPA', 'package-manager audit findings' would not plausibly fire a non-security skill. It is above anchor 4 because overlap risk is minimal — only 'building any feature that accepts untrusted data' is mildly broad, and even that is security-framed ('untrusted').

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

addyosmani/agent-skills

Path

skills/security-and-hardening/SKILL.md

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.