H3llKa1ser

Phish Triage Agent — Development skill for Claude Code

Development community

Agentic triage for user-reported phishing emails.

How to install Phish Triage Agent

This entry records only its repository, not the path inside it, so there is no exact command to give. Open H3llKa1ser/phish-triage-agent and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Phish Triage Agent does

Agentic triage for user-reported phishing emails. Drop in an .eml, and a pair of Claude agents investigate it, enrich its indicators, write an analyst summary with their own verdict, and hand the case to a human for the final call. Nothing is ever actioned automatically.

Alternatives in Development

  • Investigate — Investigation Skill 1.9k ★
  • Investigate Performance — Investigate a Nimbalyst performance problem (freeze, lag, idle CPU, slow op, memory growth) with measured evid 1.6k ★
  • Pool Compare — Compare all Meteora DLMM pools for a token pair by APR, fee/TVL ratio, and volume 722 ★

README

phish-triage-agent

Agentic triage for user-reported phishing emails. Drop in an `.eml`, and a pair of Claude agents investigate it, enrich its indicators, write an analyst summary with their own verdict, and hand the case to a human for the final call. Nothing is ever actioned automatically.

flowchart LR
    A[.eml] --> B[Parser
deterministic, no LLM] B --> C[Investigator agent
Claude + read-only tools] C -->|lookup_url / lookup_domain / lookup_file_hash| T[(VirusTotal, RDAP)] C --> D[Coverage check
enrich anything skipped] D --> E[Critic agent
independent second opinion] E --> F[Policy guardrails
floors, hallucination check, priority] F --> G[Report
defanged Markdown] G --> H{{Human review queue
file or Jira}} H -->|approve / override| I[(Decision log
agent vs human stats)]

Stages

Stage What it does LLM?
Parser (parser.py) Headers, SPF/DKIM/DMARC, Received IPs, URLs (text, HTML, and inside HTML/SVG attachments), attachment hashes, and 15+ heuristics: lookalike domains, link-text mismatch, reply-to mismatch, credential forms, risky extensions, zero-width chars, prompt-injection text. No
Investigator (agents.py) Tool-using agent. Decides which indicators to enrich, then submits a structured verdict (benign / spam / suspicious / malicious, confidence, summary, findings, MITRE, recommended actions) via a submit_verdict tool. Yes
Coverage check (policy.py) Enriches every attachment hash and the sender domain if the agent skipped them. No
Critic (agents.py) A second agent checks every finding against the evidence and can disagree. It cannot change the verdict; disagreement flags the case. Yes
Policy (policy.py) Raises the verdict when hard evidence demands it (known-bad hash, bad URL reputation, 2+ high-severity findings, injection attempt). Flags low confidence, critic disagreement, and domain