CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

pdf-credential-harvest

Weaponized PDF attachments that redirect victims to fake authentication portals (SharePoint, M365, Google Workspace) — no exploit, no macro, just a convincing document with embedded links to a credential-capture page.

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/pdf-credential-harvest/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 lean, highly actionable skill whose code examples are fully executable and whose OPSEC guidance is domain-specific rather than padded. The main weaknesses are the absence of explicit pre-launch validation checkpoints for a batch-delivery workflow and a dangling script reference in the Quick Reference.

Suggestions

Add an explicit validation step before delivery: render the PDF and verify the link annotation resolves, then test-deliver to a controlled inbox before batch send (e.g., between PDF generation and GoPhish template upload in the Quick Reference).

Either ship gen_pdf_lure.py in a scripts/ directory or replace the Quick Reference call with the inline fpdf2 snippets that actually exist in the bundle.

Move the full landing-page HTML and GoPhish template JSON into assets/ files to slim the main body.

DimensionReasoningScore

Conciseness

The body is dominated by executable code and compact tables, and its prose is domain-specific OPSEC knowledge Claude would not already have ("JS triggers sandbox detonation in Proofpoint / Mimecast / Defender", "Links-only PDFs pass"), so most tokens earn their place. It falls short of 5 due to redundancy: sections 1 and 2 repeat near-identical button-drawing boilerplate, and the Quick Reference overlaps the detailed sections. Above 3 because there is no explanation of concepts Claude already knows.

4 / 5

Actionability

Three complete, executable fpdf2 scripts with exact coordinates, fonts, and link annotations; full copy-paste-ready GoPhish curl payloads including the entire landing-page HTML and template JSON; a concrete exiftool command. Parameterized placeholders (<LURE_DOMAIN>, {{.RId}}, $GOPHISH_API_KEY) are appropriately substituted at use time, and the examples cover the common cases (SharePoint theme, voicemail theme, full-page overlay).

5 / 5

Workflow Clarity

The sequence is present (Prerequisites → Quick Reference commands → template variants → Decision Gate → Error Handling → Evidence), and the Decision Gate plus Error Handling section give recovery paths. However, this is a batch-delivery operation with no explicit validation checkpoint before launch (e.g., render and verify the PDF, test-deliver to a controlled inbox, confirm the harvest link resolves), and 'Test the output' style verification is only implicit — the batch-operation guideline caps workflow_clarity at 3. It is above 2 because the ordering and decision logic are genuinely clear.

3 / 5

Progressive Disclosure

The skill is a well-organized single file with clear one-level-deep sections, signposted tables, and no nested references. Minor gaps keep it from 5: the Quick Reference invokes "python3 /workspace/gen_pdf_lure.py", a script that is not in the bundle (no scripts/ directory exists), and the bulky landing-page HTML and GoPhish JSON payloads are candidates for assets/ files. It is above 3 because the structure and navigation are genuinely good, not merely 'some structure'.

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 specific, distinctive description that concretely states what the skill produces, with strong natural trigger terms. Its main weakness is the complete absence of a 'Use when...' clause, which leaves the invocation context implicit and caps completeness.

Suggestions

Append a trigger clause such as: "Use when building PDF-based phishing lures, credential-harvest attachments, or SharePoint/M365-themed fake login campaigns."

Include action verbs users would say ("generates weaponized PDFs", "configures GoPhish landing pages") to round out the capability coverage.

Add the synonym "phishing lure" to catch natural user phrasing.

DimensionReasoningScore

Specificity

Phrases like "redirect victims to fake authentication portals (SharePoint, M365, Google Workspace)" and "embedded links to a credential-capture page" list several concrete, specific capabilities. It stays below 5 because the action coverage stops at the artifact itself (no mention of generating, configuring delivery, or capturing credentials as actions), and above 3 because it goes well beyond naming a domain with 1-2 actions.

4 / 5

Completeness

The 'what' is clear and concrete (weaponized PDF lures redirecting to fake auth portals), but there is no 'Use when...' clause or equivalent explicit trigger guidance anywhere in the description, which caps completeness at 3 per the judging guidelines. It is above 2 because the 'what' is strong, and below 4 because 'when' is entirely absent rather than just under-specified.

3 / 5

Trigger Term Quality

Natural terms users would say are present: "PDF attachments", "SharePoint", "M365", "Google Workspace", "credential-capture", "fake authentication portals". A few common variations are missing ("phishing email", "lure", "pdf link"), so it fits 'good keyword coverage; a few natural terms missing' rather than the comprehensive anchor.

4 / 5

Distinctiveness Conflict Risk

"Weaponized PDF attachments that redirect victims to fake authentication portals... credential-capture page" carves out a very specific niche (PDF-based credential-harvest phishing with named platforms). This is clearly distinguishable from generic PDF-processing or document skills, so trigger conflict risk is minimal.

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/pdf-credential-harvest/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.