CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

laravel-security

Laravel security best practices for authn/authz, validation, CSRF, mass assignment, file uploads, secrets, rate limiting, and secure deployment.

Quality

74%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/laravel-security/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a strong, well-organized security reference: nearly every topic carries executable, copy-paste-ready code and the writing stays lean. The main gap is the absence of any sequenced workflow with validation checkpoints — it reads as a parallel checklist rather than a guided procedure.

Suggestions

Add an ordered hardening workflow (e.g., 1) verify env/session settings, 2) apply auth middleware and policies, 3) add throttling and headers, 4) verify with `composer audit` and a header check) with explicit verification steps.

Include a short verification loop for the riskier changes, such as confirming `SESSION_SECURE_COOKIE` takes effect or testing that unauthenticated requests to protected routes are rejected.

DimensionReasoningScore

Conciseness

The body is lean — short bullet directives ('`APP_DEBUG=false` in production', 'Use `$fillable` or `$guarded` and avoid `Model::unguard()`') paired with tight code blocks, matching anchor 4 (efficient with minor trims possible). It is not a 5 because a few bullets restate practices Claude already knows ('Never commit secrets to source control') and 'Core Security Settings' vs 'Session and Cookie Hardening' slightly overlap on session cookie settings.

4 / 5

Actionability

Code is copy-paste ready and covers the common cases: the `Password::min(12)` validation rule, the `UploadInvoiceRequest` FormRequest with non-public disk storage, `RateLimiter::for('login')` with dual limits, the `SecurityHeaders` middleware, a complete `config/cors.php`, and signed-route creation plus `signed` middleware enforcement. It is not a 4 because virtually every major topic has executable, complete code rather than partial hints.

5 / 5

Workflow Clarity

Content is organized as parallel topical directives ('When to Activate', 'How It Works', then per-topic sections) with no overall hardening sequence and no validation or verification checkpoints (e.g., no ordered 'secure a new app' procedure or post-change verification step), matching anchor 3 (steps listed but checkpoints missing). It is not a 4 because no explicit cross-topic sequence exists, and the simple-skill exception does not apply since this is a multi-topic reference rather than a single unambiguous task.

3 / 5

Progressive Disclosure

No bundle files exist and all content lives in one well-organized SKILL.md with clear section headers, fitting anchor 4 (good structure, most content appropriately placed, minor organization gaps). It is not a 5 because the file exceeds the under-50-lines simple-skill threshold and a few longer blocks (the full CORS config, the SecurityHeaders middleware) could arguably live in reference files; it is not a 3 because nothing is buried or clearly misplacement-prone — every section is brief and self-contained.

4 / 5

Total

16

/

20

Passed

Description

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

The description clearly identifies its niche and enumerates concrete topical coverage, giving it good trigger keywords and low conflict risk. Its main weaknesses are the absence of any explicit 'Use when...' trigger guidance (capping completeness) and a topic-list framing that names areas rather than concrete actions.

Suggestions

Add an explicit trigger clause, e.g., 'Use when reviewing or hardening Laravel applications, adding auth or validation, or handling uploads and secrets.'

Lead with concrete action verbs (e.g., 'Reviews and hardens Laravel apps: configure auth guards and policies, validate input, lock down CSRF and mass assignment...') instead of a noun-list of topics.

Spell out 'authentication/authorization' instead of 'authn/authz' and include other natural user terms from the body (SQL injection, XSS, headers) for broader keyword coverage.

DimensionReasoningScore

Specificity

The description names the domain ('Laravel security best practices') and enumerates specific coverage areas ('authn/authz, validation, CSRF, mass assignment, file uploads, secrets, rate limiting'), but these are topic nouns rather than concrete actions Claude will perform, matching anchor 3 (domain plus specific coverage, not comprehensive actions). It is above anchor 2 because the enumerated areas are concrete rather than generic, but below anchor 4 because no specific actions (e.g., 'audit', 'harden', 'configure') are stated.

3 / 5

Completeness

The 'what' is clear (Laravel security best practices across an enumerated list of areas), but there is no 'Use when...' clause or equivalent explicit trigger guidance, which per the judging guidelines caps completeness at 3. It is not a 4 because the 'when' is entirely absent rather than merely implicit or vague.

3 / 5

Trigger Term Quality

Natural terms a user would say are present: 'Laravel', 'security', 'CSRF', 'file uploads', 'rate limiting', 'validation', 'deployment'. A few natural terms are missing — 'authentication'/'authorization' appear only as the abbreviations 'authn/authz', and body topics like XSS and SQL injection are absent — so it falls just short of anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

'Laravel security best practices' carves out a clear niche with low conflict risk against unrelated skills, fitting anchor 4 (mostly distinct, minor overlap risk). It does not reach anchor 5 because the topic list is broad within the niche and could overlap with generic web-security or PHP-security skills, and no explicit triggers distinguish it from closely related skills.

4 / 5

Total

14

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

valeriibeck-star/claude-skills

Path

skills/laravel-security/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.