CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ml-model-extraction

Extract a functional clone of a black-box ML model via prediction API queries, and infer whether specific records were in the training set (membership inference).

Quality

74%

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/ml-model-extraction/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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 concise, executable, and well-structured with a clear attack workflow and a validation section, plus appropriately linked external reference implementations. It falls just short of top marks because a few helper functions are undefined stubs and batch operations lack explicit validate->fix->retry feedback loops.

Suggestions

Define or inline the stub helpers (collect_diverse_inputs, build_surrogate_nn, batches) so the surrogate-training example is fully runnable.

Add an explicit validate->fix->retry checkpoint after surrogate training and after query sweeps, since these are batch operations where the rubric expects feedback loops.

Trim the opening conceptual framing and inline paper citations into a brief one-liner each to tighten token efficiency further.

DimensionReasoningScore

Conciseness

The body is largely lean and code-forward, assuming Claude's competence, with only minor over-explanation (the opening conceptual framing of the two attacks and inline paper citations could be trimmed slightly).

4 / 5

Actionability

Most sections give copy-paste-ready bash/python with concrete library calls, but a few functions are stubs (collect_diverse_inputs, build_surrogate_nn, batches, query_fn) that the reader must implement, leaving minor gaps.

4 / 5

Workflow Clarity

A clear numbered recon -> extraction -> membership -> validation sequence is present with a dedicated validation section, but batch/query operations and the surrogate training loop lack an explicit validate-then-fix retry checkpoint, so it sits just below a 5.

4 / 5

Progressive Disclosure

Content is well-organized into clearly headed sections with external tool references (Steal-ML, knockoffnets, ML Privacy Meter) linked one level deep and no bundle files needed; minor gaps are inline rather than separated reference docs, but the self-contained structure is appropriate for a single-file skill.

4 / 5

Total

16

/

20

Passed

Description

62%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 is specific, third-person, and clearly distinct, but it is missing an explicit "Use when..." trigger clause within the description field itself — that guidance is relegated to metadata — which caps completeness. Adding a concrete trigger sentence would lift completeness and trigger-term quality.

Suggestions

Append an explicit 'Use when the user needs to clone or steal an ML model from a prediction API, or test membership inference / training-data privacy' clause to the description itself rather than only metadata.when_to_use.

Surface natural user-facing keywords (e.g. 'model stealing', 'training data privacy', 'ML API') directly in the description instead of relying solely on technical jargon.

Mention clone-fidelity validation or the operational query-budget framing briefly to round out the capability list.

DimensionReasoningScore

Specificity

Names the domain and lists two concrete actions — "Extract a functional clone of a black-box ML model via prediction API queries" and "infer whether specific records were in the training set (membership inference)" — with minor gaps in coverage (no mention of fidelity validation or detection).

4 / 5

Completeness

It clearly states what the skill does but omits an explicit "Use when..." trigger clause from the description (trigger guidance lives only in metadata), which the rubric caps at 3.

3 / 5

Trigger Term Quality

The description itself uses technical phrasing ("black-box ML model", "prediction API queries", "membership inference") rather than the natural user-facing keywords, which are instead buried in metadata.when_to_use; relevant terms exist but common variations are not surfaced in the description.

3 / 5

Distinctiveness Conflict Risk

It carves a clear niche (model extraction and membership inference against classical ML prediction APIs) with distinct triggers and minimal overlap risk against other skills.

5 / 5

Total

15

/

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

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/analyst/ml-model-extraction/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.