Laravel security best practices for authn/authz, validation, CSRF, mass assignment, file uploads, secrets, rate limiting, and secure deployment.
57
57%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
32%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 identifies a clear domain (Laravel security) and enumerates relevant subtopics, which provides some useful signal for skill selection. However, it lacks concrete action verbs describing what the skill actually does, and critically omits any 'Use when...' guidance, making it harder for Claude to know when to select this skill. The use of abbreviations like 'authn/authz' reduces accessibility.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about securing a Laravel application, implementing authentication, protecting against CSRF attacks, or hardening deployment configurations.'
Replace topic listings with concrete action descriptions, e.g., 'Implements authentication and authorization guards, configures CSRF protection, sets up input validation rules, prevents mass assignment vulnerabilities, secures file upload handling, manages secrets and environment variables, configures rate limiting middleware, and hardens deployment settings.'
Expand abbreviations ('authn/authz' → 'authentication and authorization') and add natural trigger terms users might say, such as 'secure my Laravel app', 'protect routes', 'Laravel middleware security'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names the domain (Laravel security) and lists several specific areas (authn/authz, validation, CSRF, mass assignment, file uploads, secrets, rate limiting, secure deployment), but these are topic areas rather than concrete actions. It says 'best practices' but doesn't describe what actions are performed (e.g., 'configures CSRF protection', 'implements rate limiting'). | 2 / 3 |
Completeness | The description addresses 'what' (Laravel security best practices across several areas) but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per the rubric, a missing 'Use when...' clause should cap completeness at 2, and since the 'what' is also somewhat vague (just listing topics without concrete actions), this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Laravel', 'security', 'CSRF', 'validation', 'rate limiting', 'file uploads', and 'mass assignment' which users might naturally mention. However, it uses abbreviations like 'authn/authz' instead of the more natural 'authentication/authorization', and misses common variations users might say like 'secure my Laravel app', 'protect against XSS', or 'Laravel middleware'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of 'Laravel' and 'security' creates a reasonably distinct niche, but it could overlap with general Laravel development skills or general web security skills. The broad list of security topics without clear boundaries increases potential for conflict with other security-related or Laravel-related skills. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid, actionable Laravel security reference with excellent executable code examples covering a wide range of security concerns. Its main weaknesses are length (could be split into a concise overview with linked detail files) and some sections that state obvious security advice Claude already knows. Adding verification steps and better progressive disclosure would elevate it significantly.
Suggestions
Split into a concise SKILL.md overview with links to detailed files (e.g., AUTH.md, HEADERS.md, FILE_UPLOADS.md) to improve progressive disclosure and reduce token cost.
Remove obvious security advice Claude already knows (e.g., 'Never commit secrets to source control', 'Hash passwords and never store plaintext') and keep only Laravel-specific implementation patterns.
Add verification/testing steps for key security measures — e.g., how to confirm security headers are present in responses, how to test CSRF protection, or a checklist to audit before deployment.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly efficient with code examples earning their place, but includes some unnecessary explanatory text Claude already knows (e.g., 'Blade escapes output by default', 'Never commit secrets to source control', 'Use Eloquent or query builder parameter binding'). Several sections could be tightened by removing obvious advice and keeping only the Laravel-specific patterns. | 2 / 3 |
Actionability | Nearly every section includes executable, copy-paste-ready PHP code examples — from Form Requests, to rate limiters, to security headers middleware, to signed URLs. The code is complete and specific to Laravel, not pseudocode. | 3 / 3 |
Workflow Clarity | The skill is organized as a reference checklist rather than a multi-step workflow, which is appropriate for a security best practices guide. However, there are no validation checkpoints or feedback loops — for example, no guidance on how to verify security headers are applied, test CSRF protection, or audit that mass assignment guards are in place. | 2 / 3 |
Progressive Disclosure | The content is well-structured with clear section headers, but it's a long monolithic document (~250 lines) that could benefit from splitting detailed sections (e.g., file uploads, CORS config, security headers) into separate reference files. There are no cross-references to external files for deeper dives. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
Reviewed
Table of Contents