CtrlK
BlogDocsLog inGet started
Tessl Logo

sast-fileupload

Detect insecure file upload vulnerabilities in a codebase using a three-phase approach: discovery (find all upload sites), batched verify (check extension bypass and related issues in parallel subagents, 3 sites each), and merge (consolidate batch results). Requires sast/architecture.md (run sast-analysis first). Outputs findings to sast/fileupload-results.md. Use when asked to find file upload, unrestricted upload, or extension bypass bugs.

68

Quality

82%

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

65%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable with concrete code and clear three-phase sequencing, but it is verbose and monolithic — restating known concepts and inlining eight language examples and reference material that would benefit from externalization.

Suggestions

Move the per-language 'Vulnerable vs. Secure Examples' and the numbered bypass-vector reference into a separate reference file (e.g. references/bypass-vectors.md), keeping only the stack-matching selection logic inline.

Trim the 'What is an Insecure File Upload' conceptual framing to a few lines, assuming Claude's competence, and rely on the concrete examples to convey the same information.

Add an explicit validation checkpoint between Phase 2 and Phase 3 (e.g. verify each batch file is well-formed and every site has a classification) before merging, to satisfy the batch-operation feedback-loop requirement.

DimensionReasoningScore

Conciseness

Mostly actionable but padded: the 'What is an Insecure File Upload' section restates concepts Claude already knows, and inline vulnerable/secure examples for eight languages could be tightened or trimmed to the relevant stack.

2 / 3

Actionability

Provides fully executable vulnerable/secure code, eight numbered bypass vectors with exact techniques, concrete curl payloads, and copy-paste-ready markdown output templates for each phase.

3 / 3

Workflow Clarity

The three phases are clearly sequenced with an explicit Phase-1 candidate checkpoint, but the parallel batch phase lacks a validate/fix feedback loop before merging, so the batch-operation cap applies.

2 / 3

Progressive Disclosure

The skill is a monolithic ~600-line SKILL.md with no bundle files; the multi-language examples and bypass-vector reference are inline content that could be split into one-level-deep reference files.

2 / 3

Total

9

/

12

Passed

Description

100%

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 is specific, third-person, and clearly answers both what the skill does and when to use it with natural trigger terms. It is concise without fluff and distinct from sibling SAST skills.

DimensionReasoningScore

Specificity

Lists multiple concrete actions across the three named phases — 'discovery (find all upload sites)', 'batched verify (check extension bypass and related issues in parallel subagents, 3 sites each)', and 'merge (consolidate batch results)' — rather than vague language.

3 / 3

Completeness

Clearly answers both 'what' (detect insecure file upload vulnerabilities via a three-phase approach, with prerequisites and output path) and 'when' via the explicit 'Use when asked to find file upload, unrestricted upload, or extension bypass bugs' clause.

3 / 3

Trigger Term Quality

Includes natural terms a user would actually say — 'file upload', 'unrestricted upload', and 'extension bypass' — giving good coverage of likely phrasings.

3 / 3

Distinctiveness Conflict Risk

Occupies a clear niche (insecure file upload detection with a specific three-phase subagent workflow and an architecture.md prerequisite) with distinct triggers unlikely to fire for unrelated skills.

3 / 3

Total

12

/

12

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (612 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
utkusen/sast-skills
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.