CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

file-uploads

Careful about security and performance. Never trusts file extensions. Knows that large uploads need special handling. Prefers presigned URLs over server proxying.

0.51x
Quality

47%

Does it follow best practices?

Impact

50%

0.51x

2 of 3 eval scenarios. Add 1 more for a full score.

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/file-uploads/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

33%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 skeleton: a useful risk/severity table followed by placeholder 'solutions' and a filler section. Nothing is executable — no code, commands, or ordered workflow — and the duplicated description plus vacuous 'When to Use' line spend tokens without adding guidance.

Suggestions

Replace the comment placeholders with executable guidance, e.g., a python-magic snippet for magic-byte validation, concrete size-limit configuration, and an example of generating a presigned URL with boto3.

Add a sequenced upload-handling workflow with validation checkpoints (validate type -> enforce limit -> sanitize filename -> store/generate presigned URL -> verify), especially since path-traversal and upload risks are explicitly flagged.

Delete the verbatim repetition of the description and the filler 'When to Use' sentence, replacing the latter with real trigger conditions or removing the section entirely.

DimensionReasoningScore

Conciseness

The body is short and avoids explaining concepts Claude already knows, but it pads tokens with non-informative content: the frontmatter description is repeated verbatim in the body, and the 'When to Use' section is pure filler ('This skill is applicable to execute the workflow or actions described in the overview'). This matches 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than 4, where only minor trimming would be needed — here whole sections could be deleted without losing information.

3 / 5

Actionability

The Sharp Edges table names real issues but its 'Solutions' column contains only comment-style placeholders ('# CHECK MAGIC BYTES', '# SET SIZE LIMITS', '# SANITIZE FILENAMES') with no code, commands, or specific steps. This matches 'minimal concrete guidance; high-level hints but missing the specific steps to execute'; it is above 1 because the issues are concretely identified with severities, but below 3 because nothing tells Claude how to actually check magic bytes, set limits, or sanitize filenames.

2 / 5

Workflow Clarity

There is no sequence at all — no ordered steps for handling an upload (validate, limit, store, sign) and no validation checkpoints. The pitfall table is a list of risks, not a workflow, matching 'steps missing or incoherent; no sequence; no validation for risky operations'. It does not reach 2 because even a rough sequence with gaps is absent.

1 / 5

Progressive Disclosure

The skill is under 50 lines with no bundle files (no references/, scripts/, or assets/ exist), so per the simple-skill guideline only well-organized sections are needed. Sections are present and clearly labeled (Sharp Edges table ordered by severity, When to Use), but the duplicated description and filler 'When to Use' section are organization gaps, fitting 'good structure; most content is appropriately placed; minor organization gaps' rather than 5.

4 / 5

Total

10

/

20

Passed

Description

36%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 reads as a personality/traits profile rather than a capability statement: it never says what the skill does or when to use it. Domain terms like 'presigned URLs' give it some distinctiveness, but the absence of any 'Use when...' trigger clause and of concrete actions leaves it weak on completeness and specificity.

Suggestions

State concrete capabilities in third person, e.g., 'Validates uploaded files by magic bytes, enforces size limits, sanitizes filenames, and generates presigned URLs for direct-to-storage uploads.'

Add an explicit trigger clause: 'Use when implementing file upload endpoints, handling uploads to S3 or object storage, or when the user mentions file uploads, multipart uploads, or presigned URLs.'

Remove trait-style phrasing ('Careful about security and performance', 'Knows that large uploads need special handling') in favor of specific actions, since these read as filler rather than capabilities.

DimensionReasoningScore

Specificity

The description lists traits and preferences ('Careful about security and performance', 'Knows that large uploads need special handling') rather than concrete actions. 'Never trusts file extensions' and 'Prefers presigned URLs over server proxying' name behaviors but no verbs describe what the skill actually does, matching 'names the domain but actions are minimal or generic'. It does not reach 3 because there are no 1-2 clearly stated concrete actions (e.g., 'validate magic bytes, generate presigned URLs'), and it is not 1 because the domain (upload security) and two specific behaviors are identified.

2 / 5

Completeness

There is only a vague 'what' — trait statements with no explicit statement of what the skill does — and no 'when' clause whatsoever, matching 'has a vague what and no when'. Per the guideline, a missing 'Use when...' clause caps completeness at 3, but the 'what' itself is too indirect (principles, not capabilities) to reach even that anchor, so it sits at 2.

2 / 5

Trigger Term Quality

Relevant keywords like 'file extensions', 'large uploads', and 'presigned URLs' are present, but common natural variations users would say are missing ('file upload', 'uploading files', 'S3', 'multipart upload', 'file storage'). This matches 'some relevant keywords but missing common variations or synonyms'; it is above 2 because more than one or two genuinely relevant domain terms appear, and below 4 because the natural user-facing phrases are largely absent.

3 / 5

Distinctiveness Conflict Risk

Terms like 'presigned URLs' and 'file extensions' point to a recognizable niche (secure file upload handling), but the description never names the domain explicitly and trait-style phrasing ('careful about security') overlaps with generic security or storage skills. This fits 'somewhat specific but could still overlap with similar skills' rather than 4, since a user or router could confuse it with general security or cloud-storage skills.

3 / 5

Total

10

/

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

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

skills/file-uploads/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.