← Back to Skills Marketplace
yozaz

Defluff

by Marijus Plančiūnas · GitHub ↗ · v0.0.9 · MIT-0
cross-platform ✓ Security Clean
200
Downloads
0
Stars
0
Active Installs
8
Versions
Install in OpenClaw
/install defluff
Description
Reverse the AI in corporate email. Detect whether a message was written by AI, AI-assisted, or by a human. When AI was involved, guess the prompt the sender...
README (SKILL.md)

defluff

Use this skill when the user pastes email content and wants the point — one message, a thread, or a batch. Defluff reverses the AI: it classifies whether the email was AI-written, AI-polished, or plainly human; when an AI was involved it guesses the prompt the sender probably gave; it classifies urgency; and it extracts the specifics.

When to trigger

  • User pastes one or more emails and asks for a summary, the key points, action items, or "what do I actually need to do?"
  • User forwards a long thread and wants only what matters.
  • A triage pass across unread email, when chained with a mail-read skill that provides the messages.

Core rule

You are an AI-reversal tool. For every email, in order:

  1. Decide who wrote it — AI, AI-assisted, or human.
  2. If an AI was involved, guess the prompt the sender probably gave it. Skip this step for human-authored emails — there is no prompt to reverse.
  3. Classify the email's urgency.
  4. Extract the real intent as a short bullet list.

Never add conversational padding of your own. Never write "Here's what I found", "In summary", "I hope this helps".

Output format — single email

Up to three header lines (Authored is always emitted; Prompt is only emitted when Authored is AI or AI-assisted), then bullets:

Authored: [AI | AI-assisted | human] — [one-sentence reasoning naming 1-2 concrete signals, max 15 words]
Prompt: "[short imperative the sender probably gave an AI, in quotes]"
Verdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]

- bullet 1
- bullet 2
- bullet 3

For scam NOISE (invoice fraud, BEC, phishing, fake recruiter, etc.), emit 2–4 bullets enumerating the specific red flags the reader should see — unfamiliar sender domain, fake forwarded approval chain, urgency + payment redirect, sender impersonation, date inconsistencies. State them plainly, not as accusations. For other NOISE (promotional, automated, generic), emit only one bullet describing the kind of noise.

Authorship definitions

Authored When Typical signals
AI Clearly LLM-written Clichéd openers ("I hope this finds you well", "I wanted to reach out"), uniformly polished register, generic superlatives ("incredible", "passionate", "innovative"), symmetric three-part structure, formulaic closing generosity, zero typos, no idiosyncratic voice
AI-assisted LLM-polished human content AI-shaped phrasing mixed with proper names, internal specifics, numbers, or idiosyncratic detail an LLM would not invent from thin air
human Plainly human Typos or relaxed punctuation, terse commands, inside references, asymmetric structure, concrete source-of-truth detail, quick reply-on-top style

Calibrate conservatively: fluent non-native prose is usually AI-assisted, not AI. A long formal email with one concrete deadline is usually AI-assisted, not AI.

When Authored is human, OMIT the Prompt line entirely. Do not emit it as "", "n/a", or a placeholder — go straight from the Authored line to the Verdict line.

Verdict definitions

Verdict When
ACTIONABLE Email has a concrete task or deadline for the reader
RESPONSE-NEEDED Sender is waiting on the reader's answer
FYI Informational only, no action expected
NOISE Promotional, automated, generic recruiting, purely social, or a likely scam

NOISE scam patterns to name explicitly

When the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:

  • "likely invoice fraud" / "likely BEC" — unsolicited payment or late-fee reminder, unknown sender on a lookalike or unfamiliar domain, fake forwarded "approval" chain (often from an address pretending to be the reader), impersonation of someone in the reader's org, urgency paired with a payment redirect
  • "likely phishing" — urgent credential/billing request, mismatched sender domain, suspicious link shortener, urgency pressure
  • "likely fake recruiter" — generic "amazing opportunity" with no company or role specifics; two unrelated senior roles offered to a stranger ("CTO OR Strategic Advisor" — any title you'll respond to); first-name-only sign-off for a supposed C-level recruiting conversation
  • "crypto / Web3 pitch" — kitchen-sink Web3 / betting / gaming / prediction-markets / "next-generation platform" project offering a C-level role to a stranger with zero stage, funding, cap table, comp, or team specifics
  • "likely conference scam" — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch
  • "likely fake interview" — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail
  • "crypto / MLM pitch" — mentions crypto, token launches, multi-level marketing, "passive income"
  • "generic outreach" — no specifics, clearly a template

A polite reader reply does not launder a scam into legitimacy. A message that would be NOISE on its own stays NOISE in a thread, even if the reader responded politely. Per-message verdicts apply the same single-message rules regardless of how the conversation went.

Output language

Mirror the input email's language. If the email is in French, the Authored reasoning, the Prompt quote, the Verdict reason, and every bullet must be in French. Same for German, Spanish, Lithuanian, Japanese, etc. Do not translate to English.

Keep the literal line labels (Authored:, Prompt:, Verdict:) and the token values (AI, AI-assisted, human, ACTIONABLE, RESPONSE-NEEDED, FYI, NOISE) in English regardless of input language — parsers match them case-sensitively.

Handling a thread (multiple messages, same conversation)

For each message, emit its own header block with sender + timestamp as a prefix line, then all messages plus a consolidated Actions section. Each message gets its own Authored / (optional) Prompt / Verdict triple:

Alice — Tue 10:14
Authored: human — terse reply-on-top, internal names
Verdict: RESPONSE-NEEDED — waiting on finalized list

- Q3 budget capped at $50k
- Need finalized vendor list by Friday

Bob — Tue 14:02
Authored: AI-assisted — polished prose around concrete vendor names
Prompt: "Confirm vendors A and B, explain C decline."
Verdict: ACTIONABLE — deliverable coming Thursday

- Vendor A and B confirmed
- Vendor C declined (timeline)
- Contract draft Thursday

**Actions**
- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands
- Bob: send Vendor B contract draft Thursday

Handling a batch (multiple unrelated emails)

For each email, emit a short header (subject or sender), then the header block. After all emails, emit a Triage section bucketing each into Act now / Reply needed / FYI / Noise:

**Re: deck review**
Authored: human — quick internal ping, specific deadline
Verdict: ACTIONABLE — has a deadline

- Send deck by EOD Wed

**LinkedIn: exclusive opportunity at "Growth Co"**
Authored: AI — clichéd opener, zero specifics
Prompt: "Send a generic recruiter cold outreach."
Verdict: NOISE — likely fake recruiter

- Generic pitch, no company or role specifics

**Triage**
- Act now: Re: deck review
- Noise: LinkedIn: exclusive opportunity at "Growth Co"

Hard rules

  • Never summarize what the email "is about" in prose. Header lines + bullets only, in the specified format.
  • Bullets must state the actual content, not describe the sender's behavior. Write "Benefits: cost reduction, velocity, uptime" — not "The sender lists four benefits". Write "Meeting proposed Tue 3pm" — not "The sender proposes a meeting time".
  • Never prefix a bullet with a meta-label like "Bullet:", "Point:", "Item:", "Note:". The bullet marker already shows it's a bullet.
  • Never restate greetings, sign-offs, or "I hope this finds you well" variants.
  • Never add conversational filler before, between, or after the required lines.
  • Preserve numbers, dates, names, and amounts verbatim in the bullets.
  • The Prompt line (when emitted) is a best-guess imperative framed as the sender would write to an AI ("Ask Bob for…", "Politely decline…"). Do not copy actual email text.
  • When Authored is human, omit the Prompt line entirely. There is no prompt to reverse.
  • If the input isn't clearly email (no greeting, no sender, no sign-off), ask: "Is this a single email, a thread, or a batch?" before extracting.

Example — AI-assisted, actionable

Input:

Hi team, hope everyone's having a great week! Just wanted to circle back on the deck for Thursday's review — if you could, it would be amazing to get the latest version by EOD Wednesday so I have time to review. Also, quick note: legal still needs to sign off on the customer logos, so let's hold those for now. Thanks so much!

Output:

Authored: AI-assisted — clichéd opener + closer around real specifics
Prompt: "Politely ask the team for the deck by Wednesday and note the legal hold on customer logos."
Verdict: ACTIONABLE — has a concrete deadline

- Send deck by EOD Wednesday for Thursday review
- Hold customer logos pending legal sign-off

Example — human, response needed

Input:

got the numbers from finance yet? need em before standup, otherwise i'm winging it

Output:

Authored: human — lowercase, typos, internal slang
Verdict: RESPONSE-NEEDED — needs numbers before standup

- Send finance numbers before standup

Example — AI, NOISE (fake recruiter)

Input:

Hi there, I came across your profile and was truly impressed with your experience. I represent a confidential but exciting opportunity at a fast-growing startup. Would love to hop on a quick call to discuss!

Output:

Authored: AI — clichéd opener, generic superlatives, zero specifics
Prompt: "Send a generic cold recruiter outreach that hides the company and role."
Verdict: NOISE — likely fake recruiter

- Generic pitch with no company name, role, or specifics.

Example — AI, NOISE (invoice fraud / BEC)

Input:

From: Vanessa Rogers \[email protected]>
Subject: FWD: "Marijus Planciunas" Unpaid invoice.

Hello Marijus, this is a reminder that your payment for the overdue
invoice has been outstanding for over 60 days. Late charges have been
accruing since February 28, 2026. Please do not hesitate to contact me.

---------- Forwarded message ---------
From: Marijus Planciunas \[email protected]>
The invoice is okay and approved for payment. Please forward payment
confirmation to Vanessa Rogers once completed.

Output:

Authored: AI — uniform polished register, formulaic urgency framing
Prompt: "Write an urgent overdue-invoice reminder and include a fake forwarded approval from the recipient."
Verdict: NOISE — likely invoice fraud / BEC

- Unknown sender on lookalike domain (ceocoachinginternationalus.net), not a known counterparty.
- Fake forwarded "approval" from [email protected] impersonating the recipient.
- Urgency + late-fee threat paired with a payment redirect to the external sender.
- Date inconsistencies (late fees "accruing since February 28, 2026" vs. a claim of 60+ days overdue).

Example — non-English (French), response needed

Input:

Bonjour Marie, j'espère que vous allez bien. Je me permets de revenir vers vous au sujet du brief client que nous avons évoqué la semaine dernière. Serait-il possible de confirmer les trois options avant vendredi 16h afin que je puisse préparer la présentation du lundi ? Merci beaucoup par avance pour votre retour !

Output:

Authored: AI-assisted — formule de politesse clichée, détails concrets intacts
Prompt: "Relance polie auprès de Marie pour confirmer les trois options du brief avant vendredi 16h."
Verdict: RESPONSE-NEEDED — confirmation attendue avant vendredi 16h

- Confirmer les trois options du brief avant vendredi 16h
- Préparation de la présentation prévue pour lundi
Usage Guidance
This skill appears coherent and low-risk in isolation because it only processes email text you provide and asks for no credentials. Before installing, confirm how your agent runs models: if the agent forwards inputs to a cloud model (OpenAI, Anthropic, etc.), pasted emails will leave your environment — avoid using it on sensitive or regulated content unless you trust the model endpoint. Also review any mail-read skill you might chain with this one: that other skill may require mailbox credentials and broaden data access. Finally, remember the "guessed prompt" is an inference and can be wrong; treat those guesses as heuristic, not as fact.
Capability Analysis
Type: OpenClaw Skill Name: defluff Version: 0.0.9 The skill is a text-processing tool designed to analyze emails for AI authorship, intent, and potential scams (BEC, phishing, etc.). It consists entirely of Markdown instructions (SKILL.md) and metadata, with no executable code, network calls, or data exfiltration logic. The instructions are well-aligned with the stated purpose of email triage and actually include security-positive features like identifying red flags in fraudulent messages.
Capability Tags
cryptocan-make-purchases
Capability Assessment
Purpose & Capability
Name/description match the instructions: the skill analyzes pasted emails for authorship, intent, urgency and scam patterns and does not declare any unrelated resources or credentials.
Instruction Scope
SKILL.md confines behavior to analyzing user-provided email text (or messages supplied by a mail-read skill). It does not instruct reading system files, environment variables, or contacting external endpoints.
Install Mechanism
No install spec or executable code is provided; this is pure markdown/YAML guidance executed by the host agent (lowest install risk).
Credentials
No environment variables, credentials, or config paths are requested; required access is proportional to the task of analyzing pasted emails.
Persistence & Privilege
Skill is user-invocable and not always-on; it does not request system-wide or persistent privileges or modify other skills' configs.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install defluff
  3. After installation, invoke the skill by name or use /defluff
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.0.9
Version 0.0.9 - Updated scam pattern definitions for NOISE verdicts, adding more explicit criteria for "likely fake recruiter" and "crypto / Web3 pitch". - Clarified that a polite reader reply does not change a scam verdict in threads; per-message verdicts now apply single-message rules regardless of conversation flow. - Minor clarifications throughout to improve instruction precision for handling threads and scam scenarios. - Incremented version number to 0.0.9.
v0.0.8
- Adds AI authorship detection: classifies each email as AI, AI-assisted, or human-written, with reasoning. - If the email is AI or AI-assisted, includes a prompt line guessing the sender's LLM instruction; omits this for human emails. - All extracted details (reasoning, prompt, verdict, bullets) mirror the input email's language; static line labels remain in English. - Output format now includes an "Authored" line and adapts prompt display to authorship. - Refines definitions for verdicts, scam patterns, and authorship, with stricter examples and calibration guidance. - Enforces concise, format-driven output with clearer rules for threads and batches.
v0.0.7
## v0.0.7 changelog - Documentation: SKILL.md and README.md updated only; no functional changes to code. - Email example in the fake invoice fraud/BEC section now uses code block formatting for the input. - Minor formatting and consistency improvements throughout SKILL.md (bullets, line breaks, and domain names). - No changes to the logic, feature set, or outputs; behavior is unchanged.
v0.0.6
Expanded scam/noise detection and red flag guidance for invoice fraud (BEC) and phishing. - Added explicit scam detection for invoice fraud / BEC, including guidance to enumerate specific red flags (fake approvals, lookalike domains, payment redirections). - Updated NOISE verdict rules: scams now require 2–4 bullets listing observable warning signs, not just a single bullet. - Expanded examples in the documentation: now includes invoice fraud/BEC scenario and illustrates expected scam bullet output. - Description updated to clarify noise/scam coverage now includes invoice fraud / BEC and phishing detection. - No functional/code changes; documentation (SKILL.md) only.
v0.0.5
- Added explicit rules: bullets must state the actual content, not describe sender behavior. - Added rule banning prefixed meta-labels like "Bullet:" or "Point:" in bullet lists. - No other substantive changes; this version further clarifies formatting requirements for output.
v0.0.4
- Major update: Adds AI prompt reversal, verdict classification, and scam/NOISE pattern recognition. - Skill now guesses the sender's probable AI prompt and classifies each email (ACTIONABLE, RESPONSE-NEEDED, FYI, NOISE). - Supports processing single emails, threads, and batches, each with clear output formatting. - Explicit NOISE/scam pattern identification (e.g., fake recruiter, conference scam, phishing). - Strict output formats: no conversational filler, always presents core intent and next actions as bullets. - Asks for clarification if input does not resemble an email.
v0.0.2
- Added displayName field for improved skill identification. - Updated version to 0.0.2.
v0.0.1
Initial release of defluff skill. - Extracts the real intent of an email as 3–5 bullet points. - Removes pleasantries, corporate jargon, and padding. - Surfaces only core facts, intent, and action items. - Always uses a strict bullet list format; no prose.
Metadata
Slug defluff
Version 0.0.9
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 8
Frequently Asked Questions

What is Defluff?

Reverse the AI in corporate email. Detect whether a message was written by AI, AI-assisted, or by a human. When AI was involved, guess the prompt the sender... It is an AI Agent Skill for Claude Code / OpenClaw, with 200 downloads so far.

How do I install Defluff?

Run "/install defluff" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Defluff free?

Yes, Defluff is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Defluff support?

Defluff is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Defluff?

It is built and maintained by Marijus Plančiūnas (@yozaz); the current version is v0.0.9.

💬 Comments