CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

gophish-campaign

Build and launch a tracked phishing campaign with the GoPhish REST API — sending profile, groups, email template, landing page, launch, and event polling.

Quality

77%

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/phisher/gophish-campaign/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

76%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 skill whose curl flow is nearly executable as-is; its main weaknesses are literal placeholders in two payloads and the absence of pre-launch validation checkpoints for what is a batch, externally-visible send operation. The OPSEC/failsafe section partially compensates but does not replace verify-before-launch steps.

Suggestions

Insert validation checkpoints before launch: after each create call, verify the resource exists (e.g., GET the template/page/smtp by name) and send a test email to a controlled address before launching the campaign at the group.

Replace literal placeholders with concrete minimum-viable examples — a working capture-credentials form for the landing page and a real username field (secret sourced from env) for the SMTP profile.

Show the pause/complete command as a concrete executable with the campaign id substituted from the launch response (e.g., capturing the id from the POST /campaigns/ result), so the failsafe is copy-paste ready under time pressure.

DimensionReasoningScore

Conciseness

Lean and efficient throughout: no concept explanations, no padding — every section (Prerequisites, Flow, Evidence, OPSEC) carries operational information Claude does not already know, and the intro is two sentences that do real routing work (fake login page vs. evilginx2 for MFA).

5 / 5

Actionability

Six numbered curl commands with real, runnable JSON payloads against the actual GoPhish endpoints. Not fully copy-paste ready, though: literal placeholders remain ('"username":"..."', '"html":"<form>...</form>"') and the pause command's ':id' is unsubstituted, which fits 'concrete code with minor gaps' rather than anchor 5.

4 / 5

Workflow Clarity

The sequence is clearly numbered (SMTP -> group -> template -> page -> launch -> poll) and includes a failsafe (gophish_pause_campaign) and send-rate limits, but there is no pre-launch validation — no check that each resource was created, no test send to verify SMTP/template before launching the batch send to the whole group. A campaign launch is a batch operation, and the rubric caps workflow clarity at 3 without validation checkpoints.

3 / 5

Progressive Disclosure

No bundle files exist, and the ~64-line body is well-organized into cleanly signaled sections with the full API flow inline — appropriate at this size, though slightly over the 'under 50 lines' bar that would let well-organized sections alone score 5. Cross-references to sibling skills (lookalike-domain, pretext-engineering) are clearly named rather than linked, a minor organization gap.

4 / 5

Total

16

/

20

Passed

Description

70%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 strong, specific description with good trigger terms and excellent distinctiveness, held back by the absence of an explicit 'Use when...' clause in the description field itself — the trigger guidance is siloed in metadata.when_to_use instead of being surfaced where the rubric expects it. Adding a use-when sentence would lift completeness and likely overall quality.

Suggestions

Append a 'Use when...' clause to the description field (e.g., 'Use when launching gophish campaigns, setting up phishing email templates, or tracking campaign clicks/submissions') rather than keeping triggers only in metadata.when_to_use.

Add one or two natural trigger variations to the description, such as 'phish' or 'credential harvest', to round out keyword coverage.

Mention the results/tracking output (campaign results, click and submit events) explicitly to close the small specificity gap around 'tracked'.

DimensionReasoningScore

Specificity

Names the domain ('tracked phishing campaign with the GoPhish REST API') and lists several concrete components — 'sending profile, groups, email template, landing page, launch, and event polling' — giving several specific actions with only minor coverage gaps (results/reporting only implied by 'tracked').

4 / 5

Completeness

The 'what' is clear and concrete, but the description field contains no 'Use when...' clause or equivalent explicit trigger guidance — the trigger terms live in separate metadata (when_to_use) rather than the description. Per the judging guidelines, a missing 'Use when...' clause caps completeness at 3.

3 / 5

Trigger Term Quality

Good natural keyword coverage: 'phishing campaign', 'GoPhish', 'email template', 'landing page' are phrases a user would actually say. A few natural terms are missing from the description itself (e.g., 'phish', 'credential harvesting'), keeping it below comprehensive.

4 / 5

Distinctiveness Conflict Risk

'GoPhish REST API' and 'tracked phishing campaign' establish a clear niche with distinct triggers; it is unlikely to fire for the wrong skill, and the body even distinguishes it from the adjacent evilginx2 use case (MFA defeat).

5 / 5

Total

16

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/phisher/gophish-campaign/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.