CtrlK
BlogDocsLog inGet started
Tessl Logo

sast-xxe

Detect XML External Entity (XXE) vulnerabilities in a codebase using a three-phase approach: recon (find XML parsing sites without external-entity hardening), batched verify (trace user input to each site in parallel subagents, 3 sites each), and merge (consolidate batch results). Requires sast/architecture.md (run sast-analysis first). Outputs findings to sast/xxe-results.md. Use when asked to find XXE or XML injection bugs.

72

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

77%

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 a well-sequenced, gated three-phase workflow and concrete code. Its weaknesses are token efficiency (heavy duplication of the same hardening examples and some concept explanation) and a monolithic structure with no progressive disclosure of the large pattern catalogs.

Suggestions

De-duplicate the per-language hardening code: keep one canonical catalog (e.g. Vulnerable vs. Secure Examples) and have the Patterns and Execution sections reference it rather than re-listing the same Java DOM / lxml / .NET / PHP snippets.

Move the large language-by-language pattern lists into a references file (e.g. references/xxe-patterns.md) and have SKILL.md summarize parser-default behavior and link out, so the main body stays a lean overview.

Trim the 'What is XXE' conceptual explanation to a one-line definition plus the core pattern, since Claude already understands the XXE attack class.

DimensionReasoningScore

Conciseness

The same hardening code recurs roughly three times (Patterns That Prevent XXE, Vulnerable vs. Secure Examples, and the Execution recon list — e.g. Java DOM, lxml, .NET, and PHP each repeated), and the 'What is XXE' section explains a concept Claude largely already knows; not the verbose-walled level 1, but not the lean level 3 either.

2 / 3

Actionability

Provides executable per-language code with exact feature flags and copy-paste-ready curl payloads in the output templates, fully matching the 'executable, copy-paste ready' anchor.

3 / 3

Workflow Clarity

Three phases are explicitly sequenced with an between-phase validation gate (zero-findings early exit writes 'No vulnerabilities found.'), parallel batching rules, merge-after-all-complete ordering, and an 'Important Reminders' checklist; the batch operation includes validation so the level-2 cap does not apply.

3 / 3

Progressive Disclosure

No bundle files exist and the ~550-line body is monolithic, with large language-by-language pattern catalogs that could be split into reference files; sections are well-organized (not level 1) but content that should be separate is inline (not level 3), and the under-50-line exception does not apply.

2 / 3

Total

10

/

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.

A strong description: concrete, third-person, with an explicit use-trigger, named inputs/outputs, and a clear prerequisite. It cleanly answers both what the skill does and when to invoke it.

DimensionReasoningScore

Specificity

Lists multiple concrete actions across a named three-phase approach: 'recon (find XML parsing sites without external-entity hardening), batched verify (trace user input to each site in parallel subagents, 3 sites each), and merge (consolidate batch results)', which exceeds the 'names domain and some actions' level.

3 / 3

Completeness

It explicitly answers 'what' (detect XXE via recon/verify/merge with named outputs and prerequisite) and 'when' via an explicit 'Use when...' clause, matching the top anchor; not capped at 2 since the trigger clause is present.

3 / 3

Trigger Term Quality

The clause 'Use when asked to find XXE or XML injection bugs' supplies natural phrasings a user would actually say, avoiding generic jargon-only triggers.

3 / 3

Distinctiveness Conflict Risk

Scoped narrowly to XXE/XML-injection detection with distinct triggers and an explicit sibling-skill prerequisite ('Requires sast/architecture.md'), making overlap with other skills unlikely.

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 (569 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.