CtrlK
BlogDocsLog inGet started
Tessl Logo

deserialization

Hunt insecure deserialization (CWE-502) across Python pickle, Java ObjectInputStream / Jackson / SnakeYAML, .NET BinaryFormatter / DataContractJson, PHP unserialize, Ruby Marshal/YAML.load, and Node.js vm. Direct path to unauthenticated RCE.

65

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/analyst/deserialization/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

A tight, highly actionable hunting playbook with executable commands, ready PoC templates, and an explicit validation contract; the only gaps are a tiny bit of framing padding and an implicit rather than explicit validate-fix-retry loop.

Suggestions

Make the feedback loop explicit inside section 4 (e.g., after validation, add 'If success_patterns absent, re-check gadget availability and retry') to push workflow_clarity to 5.

Trim the single-line framing sentence at the top to remove the only residual padding and reach full conciseness.

If PoC templates or the validation contract grow, split them into references/ files and link from the body to preserve progressive disclosure.

DimensionReasoningScore

Conciseness

Lean, command-and-code dense body that assumes Claude's competence; the one-line framing ('single most reliable path ... to RCE') is the only mild padding and could be trimmed.

4 / 5

Actionability

Copy-paste grep/semgrep/find commands per language, ready-to-run PoC templates (pickle, ysoserial, PHAR, YAML), and a concrete validate_finding contract with explicit success/negative patterns.

5 / 5

Workflow Clarity

A clear 4-step taint-audit sequence plus a validation contract section with positive and negative patterns; the validate->fix->retry feedback loop is present but implicit rather than spelled out per step.

4 / 5

Progressive Disclosure

Self-contained SKILL.md with no bundle files, organized into seven numbered sections that read as an overview; appropriately dense for a single-purpose hunting skill, though the PoC/validation detail could be split into references if the file grows.

4 / 5

Total

17

/

20

Passed

Description

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

A highly specific, well-targeted description that names concrete sinks across six ecosystems, weakened only by relying on metadata.when_to_use instead of an explicit 'Use when...' trigger clause inside the description.

Suggestions

Add an explicit 'Use when ...' trigger clause to the description (e.g., 'Use when hunting insecure deserialization gadgets across Python/Java/.NET/PHP/Ruby/Node.') so completeness and trigger quality do not depend on metadata.when_to_use.

Surface one or two user-natural synonyms currently only in metadata (e.g., 'gadget chain', 'RCE') directly into the description to strengthen trigger-term coverage.

DimensionReasoningScore

Specificity

Names the domain (CWE-502) and enumerates concrete per-language sinks (pickle, ObjectInputStream/Jackson/SnakeYAML, BinaryFormatter, unserialize, Marshal/YAML.load, vm), ending with the concrete outcome 'Direct path to unauthenticated RCE'.

5 / 5

Completeness

The 'what' is clearly stated, but there is no explicit 'when to use' clause in the description itself — trigger guidance is relegated to metadata.when_to_use, which caps completeness at 3 per the rubric.

3 / 5

Trigger Term Quality

The description carries strong natural technical terms across all six ecosystems, but several synonyms ('gadget chain', 'node vm') live in metadata.when_to_use rather than the description, and the description itself lacks an explicit 'Use when...' phrasing.

4 / 5

Distinctiveness Conflict Risk

A narrow, well-defined niche (insecure deserialization CWE-502) with distinct ecosystem-specific triggers and minimal overlap with other skills.

5 / 5

Total

17

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
PurpleAILAB/Decepticon
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.