{"id":"4abdd3d6-6d96-4166-be9b-1354868e3e14","entityType":"agent","slug":"clawhub-yozaz-defluff","name":"Defluff","canonicalUrl":"https://www.xpersona.co/agent/clawhub-yozaz-defluff","canonicalPath":"/agent/clawhub-yozaz-defluff","generatedAt":"2026-10-12T12:44:55.358Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T02:06:47.158Z","emptyReason":null},"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... Skill: Defluff Owner: yozaz Summary: 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... Tags: latest:0.0.9 Version history: v0.0.9 | 2026-04-22T19:42:24.388Z | auto Version 0.0.9 - Updated scam pattern definitions for NOISE verdicts, adding more explicit criteria for \"likely fake recruiter\" and \"crypto / Web3","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 957 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17amaczxfbbms7pzf51n5waa5854m3m:defluff","sourceUrl":"https://clawhub.ai/yozaz/defluff","homepage":"https://clawhub.ai/yozaz/skills/defluff","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/yozaz/defluff","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/yozaz/skills/defluff","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"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... "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:06:47.158Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:06:47.158Z","emptyReason":null},"stars":null,"forks":null,"downloads":957,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.0.9","tractionLabel":"957 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:06:47.097Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T02:06:47.158Z","lastCrawledAt":"2026-10-12T02:06:47.097Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T02:06:47.097Z","lastVerifiedAt":null,"highlights":[{"version":"0.0.9","createdAt":"2026-04-22T19:42:24.388Z","changelog":"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.","fileCount":4,"zipByteSize":8161},{"version":"0.0.8","createdAt":"2026-04-22T18:37:16.699Z","changelog":"- 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.","fileCount":3,"zipByteSize":6695},{"version":"0.0.7","createdAt":"2026-04-21T19:28:02.221Z","changelog":"## 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.","fileCount":3,"zipByteSize":5221},{"version":"0.0.6","createdAt":"2026-04-21T19:16:37.613Z","changelog":"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.","fileCount":3,"zipByteSize":5035},{"version":"0.0.5","createdAt":"2026-04-20T16:23:28.421Z","changelog":"- 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.","fileCount":3,"zipByteSize":4306},{"version":"0.0.4","createdAt":"2026-04-20T15:51:20.156Z","changelog":"- 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.","fileCount":3,"zipByteSize":4130},{"version":"0.0.2","createdAt":"2026-04-20T15:13:22.680Z","changelog":"- Added displayName field for improved skill identification. - Updated version to 0.0.2.","fileCount":3,"zipByteSize":1982},{"version":"0.0.1","createdAt":"2026-04-20T15:09:12.181Z","changelog":"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.","fileCount":3,"zipByteSize":1971}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17amaczxfbbms7pzf51n5waa5854m3m:defluff","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T12:44:55.356Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yozaz-defluff/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T02:06:47.158Z","emptyReason":null},"readme":"Skill: Defluff\n\nOwner: yozaz\n\nSummary: 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...\n\nTags: latest:0.0.9\n\nVersion history:\n\nv0.0.9 | 2026-04-22T19:42:24.388Z | auto\n\nVersion 0.0.9\n\n- Updated scam pattern definitions for NOISE verdicts, adding more explicit criteria for \"likely fake recruiter\" and \"crypto / Web3 pitch\".\n- 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.\n- Minor clarifications throughout to improve instruction precision for handling threads and scam scenarios.\n- Incremented version number to 0.0.9.\n\nv0.0.8 | 2026-04-22T18:37:16.699Z | auto\n\n- Adds AI authorship detection: classifies each email as AI, AI-assisted, or human-written, with reasoning.\n- If the email is AI or AI-assisted, includes a prompt line guessing the sender's LLM instruction; omits this for human emails.\n- All extracted details (reasoning, prompt, verdict, bullets) mirror the input email's language; static line labels remain in English.\n- Output format now includes an \"Authored\" line and adapts prompt display to authorship.\n- Refines definitions for verdicts, scam patterns, and authorship, with stricter examples and calibration guidance.\n- Enforces concise, format-driven output with clearer rules for threads and batches.\n\nv0.0.7 | 2026-04-21T19:28:02.221Z | auto\n\n## v0.0.7 changelog\n\n- Documentation: SKILL.md and README.md updated only; no functional changes to code.\n- Email example in the fake invoice fraud/BEC section now uses code block formatting for the input.\n- Minor formatting and consistency improvements throughout SKILL.md (bullets, line breaks, and domain names).\n- No changes to the logic, feature set, or outputs; behavior is unchanged.\n\nv0.0.6 | 2026-04-21T19:16:37.613Z | auto\n\nExpanded scam/noise detection and red flag guidance for invoice fraud (BEC) and phishing.\n\n- Added explicit scam detection for invoice fraud / BEC, including guidance to enumerate specific red flags (fake approvals, lookalike domains, payment redirections).\n- Updated NOISE verdict rules: scams now require 2–4 bullets listing observable warning signs, not just a single bullet.\n- Expanded examples in the documentation: now includes invoice fraud/BEC scenario and illustrates expected scam bullet output.\n- Description updated to clarify noise/scam coverage now includes invoice fraud / BEC and phishing detection.\n- No functional/code changes; documentation (SKILL.md) only.\n\nv0.0.5 | 2026-04-20T16:23:28.421Z | auto\n\n- Added explicit rules: bullets must state the actual content, not describe sender behavior.\n- Added rule banning prefixed meta-labels like \"Bullet:\" or \"Point:\" in bullet lists.\n- No other substantive changes; this version further clarifies formatting requirements for output.\n\nv0.0.4 | 2026-04-20T15:51:20.156Z | auto\n\n- Major update: Adds AI prompt reversal, verdict classification, and scam/NOISE pattern recognition.\n- Skill now guesses the sender's probable AI prompt and classifies each email (ACTIONABLE, RESPONSE-NEEDED, FYI, NOISE).\n- Supports processing single emails, threads, and batches, each with clear output formatting.\n- Explicit NOISE/scam pattern identification (e.g., fake recruiter, conference scam, phishing).\n- Strict output formats: no conversational filler, always presents core intent and next actions as bullets.\n- Asks for clarification if input does not resemble an email.\n\nv0.0.2 | 2026-04-20T15:13:22.680Z | auto\n\n- Added displayName field for improved skill identification.\n- Updated version to 0.0.2.\n\nv0.0.1 | 2026-04-20T15:09:12.181Z | auto\n\nInitial release of defluff skill.\n\n- Extracts the real intent of an email as 3–5 bullet points.\n- Removes pleasantries, corporate jargon, and padding.\n- Surfaces only core facts, intent, and action items.\n- Always uses a strict bullet list format; no prose.\n\nArchive index:\n\nArchive v0.0.9: 4 files, 8161 bytes\n\nFiles: README.md (2136b), skill-card.md (1962b), SKILL.md (12699b), _meta.json (126b)\n\nFile v0.0.9:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: 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 probably gave an LLM. Classify urgency, extract the actual intent, name scam patterns (invoice fraud / BEC, phishing, fake recruiters, conference scams, crypto / MLM pitches). Output mirrors the email's language. Handles single messages, threads, and batches.\nversion: 0.0.9\nuser-invocable: true\n---\n\n# defluff\n\nUse 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.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. For every email, in order:\n\n1. Decide who wrote it — `AI`, `AI-assisted`, or `human`.\n2. 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.\n3. Classify the email's urgency.\n4. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nUp to three header lines (Authored is always emitted; Prompt is only emitted when Authored is AI or AI-assisted), then bullets:\n\n```\nAuthored: [AI | AI-assisted | human] — [one-sentence reasoning naming 1-2 concrete signals, max 15 words]\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **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.\n\n### Authorship definitions\n\n| Authored | When | Typical signals |\n|---|---|---|\n| **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 |\n| **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 |\n| **human** | Plainly human | Typos or relaxed punctuation, terse commands, inside references, asymmetric structure, concrete source-of-truth detail, quick reply-on-top style |\n\nCalibrate 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.\n\nWhen **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.\n\n### Verdict definitions\n\n| Verdict | When |\n|---|---|\n| **ACTIONABLE** | Email has a concrete task or deadline for the reader |\n| **RESPONSE-NEEDED** | Sender is waiting on the reader's answer |\n| **FYI** | Informational only, no action expected |\n| **NOISE** | Promotional, automated, generic recruiting, purely social, **or a likely scam** |\n\n### NOISE scam patterns to name explicitly\n\nWhen the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:\n\n- **\"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\n- **\"likely phishing\"** — urgent credential/billing request, mismatched sender domain, suspicious link shortener, urgency pressure\n- **\"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\n- **\"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\n- **\"likely conference scam\"** — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch\n- **\"likely fake interview\"** — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail\n- **\"crypto / MLM pitch\"** — mentions crypto, token launches, multi-level marketing, \"passive income\"\n- **\"generic outreach\"** — no specifics, clearly a template\n\n**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.\n\n## Output language\n\nMirror 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.\n\nKeep 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.\n\n## Handling a thread (multiple messages, same conversation)\n\nFor 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:\n\n```\nAlice — Tue 10:14\nAuthored: human — terse reply-on-top, internal names\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nAuthored: AI-assisted — polished prose around concrete vendor names\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday\n```\n\n## Handling a batch (multiple unrelated emails)\n\nFor 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:\n\n```\n**Re: deck review**\nAuthored: human — quick internal ping, specific deadline\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nAuthored: AI — clichéd opener, zero specifics\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\"\n```\n\n## Hard rules\n\n- Never summarize what the email \"is about\" in prose. Header lines + bullets only, in the specified format.\n- **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\".\n- **Never prefix a bullet with a meta-label like \"Bullet:\", \"Point:\", \"Item:\", \"Note:\".** The bullet marker already shows it's a bullet.\n- Never restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- Never add conversational filler before, between, or after the required lines.\n- Preserve numbers, dates, names, and amounts verbatim in the bullets.\n- 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.\n- **When Authored is `human`, omit the Prompt line entirely.** There is no prompt to reverse.\n- 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.\n\n## Example — AI-assisted, actionable\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nAuthored: AI-assisted — clichéd opener + closer around real specifics\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n```\n\n## Example — human, response needed\n\n**Input:**\n\n> got the numbers from finance yet? need em before standup, otherwise i'm winging it\n\n**Output:**\n\n```\nAuthored: human — lowercase, typos, internal slang\nVerdict: RESPONSE-NEEDED — needs numbers before standup\n\n- Send finance numbers before standup\n```\n\n## Example — AI, NOISE (fake recruiter)\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nAuthored: AI — clichéd opener, generic superlatives, zero specifics\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics.\n```\n\n## Example — AI, NOISE (invoice fraud / BEC)\n\n**Input:**\n\n```\nFrom: Vanessa Rogers <vanessa.rogers@ceocoachinginternationalus.net>\nSubject: FWD: \"Marijus Planciunas\" Unpaid invoice.\n\nHello Marijus, this is a reminder that your payment for the overdue\ninvoice has been outstanding for over 60 days. Late charges have been\naccruing since February 28, 2026. Please do not hesitate to contact me.\n\n---------- Forwarded message ---------\nFrom: Marijus Planciunas <membership@stamps.org>\nThe invoice is okay and approved for payment. Please forward payment\nconfirmation to Vanessa Rogers once completed.\n```\n\n**Output:**\n\n```\nAuthored: AI — uniform polished register, formulaic urgency framing\nPrompt: \"Write an urgent overdue-invoice reminder and include a fake forwarded approval from the recipient.\"\nVerdict: NOISE — likely invoice fraud / BEC\n\n- Unknown sender on lookalike domain (ceocoachinginternationalus.net), not a known counterparty.\n- Fake forwarded \"approval\" from membership@stamps.org impersonating the recipient.\n- Urgency + late-fee threat paired with a payment redirect to the external sender.\n- Date inconsistencies (late fees \"accruing since February 28, 2026\" vs. a claim of 60+ days overdue).\n```\n\n## Example — non-English (French), response needed\n\n**Input:**\n\n> 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 !\n\n**Output:**\n\n```\nAuthored: AI-assisted — formule de politesse clichée, détails concrets intacts\nPrompt: \"Relance polie auprès de Marie pour confirmer les trois options du brief avant vendredi 16h.\"\nVerdict: RESPONSE-NEEDED — confirmation attendue avant vendredi 16h\n\n- Confirmer les trois options du brief avant vendredi 16h\n- Préparation de la présentation prévue pour lundi\n```\n\nFile v0.0.9:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise comes in two flavors. **Scam NOISE** (invoice fraud / BEC, phishing, fake recruiter, fake interview, conference scam, crypto / MLM pitch) emits 2–4 bullets naming the specific red flags the reader should see — unfamiliar sender domain, fake forwarded approval chain, urgency + payment redirect, sender impersonation, date inconsistencies. **Other NOISE** (newsletters, auto-replies, automated system mail, generic outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous.\n\nFile v0.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.9\",\n  \"publishedAt\": 1776886944388\n}\n\nFile v0.0.9:skill-card.md\n\n## Description:\n\nReverse the AI in corporate email by classifying authorship, guessing likely LLM prompts when AI was involved, classifying urgency, extracting actual intent, and naming common scam patterns across single emails, threads, and batches.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yozaz](https://clawhub.ai/user/yozaz)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees, external users, and developers use Defluff to triage corporate email by separating action, response, FYI, and noise while surfacing likely AI-authored messages and scam indicators.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Email content may contain sensitive or confidential information that the configured OpenClaw model will inspect.\n\nMitigation: Install and use only when comfortable sharing the provided email content with the configured local model or agent environment.\n\nRisk: AI-authorship labels, guessed prompts, urgency verdicts, and scam classifications can be wrong or incomplete.\n\nMitigation: Treat outputs as triage signals and verify important decisions before replying, paying, clicking links, or escalating.\n\n## Reference(s):\n\n- [Openclaw](https://openclaw.ai)\n- [Openclaw skills docs](https://docs.openclaw.ai/tools/skills)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance]\n\n**Output Format:** [Markdown with structured header lines and bullet lists]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Mirrors the input email language while keeping fixed line labels and verdict tokens in English.]\n\n## Skill Version(s):\n\n0.0.9 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.0.8: 3 files, 6695 bytes\n\nFiles: README.md (2136b), SKILL.md (12018b), _meta.json (126b)\n\nFile v0.0.8:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: 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 probably gave an LLM. Classify urgency, extract the actual intent, name scam patterns (invoice fraud / BEC, phishing, fake recruiters, conference scams, crypto / MLM pitches). Output mirrors the email's language. Handles single messages, threads, and batches.\nversion: 0.0.8\nuser-invocable: true\n---\n\n# defluff\n\nUse 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.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. For every email, in order:\n\n1. Decide who wrote it — `AI`, `AI-assisted`, or `human`.\n2. 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.\n3. Classify the email's urgency.\n4. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nUp to three header lines (Authored is always emitted; Prompt is only emitted when Authored is AI or AI-assisted), then bullets:\n\n```\nAuthored: [AI | AI-assisted | human] — [one-sentence reasoning naming 1-2 concrete signals, max 15 words]\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **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.\n\n### Authorship definitions\n\n| Authored | When | Typical signals |\n|---|---|---|\n| **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 |\n| **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 |\n| **human** | Plainly human | Typos or relaxed punctuation, terse commands, inside references, asymmetric structure, concrete source-of-truth detail, quick reply-on-top style |\n\nCalibrate 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.\n\nWhen **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.\n\n### Verdict definitions\n\n| Verdict | When |\n|---|---|\n| **ACTIONABLE** | Email has a concrete task or deadline for the reader |\n| **RESPONSE-NEEDED** | Sender is waiting on the reader's answer |\n| **FYI** | Informational only, no action expected |\n| **NOISE** | Promotional, automated, generic recruiting, purely social, **or a likely scam** |\n\n### NOISE scam patterns to name explicitly\n\nWhen the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:\n\n- **\"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\n- **\"likely phishing\"** — urgent credential/billing request, mismatched sender domain, suspicious link shortener, urgency pressure\n- **\"likely fake recruiter\"** — generic \"amazing opportunity\" with no company or role specifics\n- **\"likely conference scam\"** — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch\n- **\"likely fake interview\"** — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail\n- **\"crypto / MLM pitch\"** — mentions crypto, token launches, multi-level marketing, \"passive income\"\n- **\"generic outreach\"** — no specifics, clearly a template\n\n## Output language\n\nMirror 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.\n\nKeep 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.\n\n## Handling a thread (multiple messages, same conversation)\n\nFor 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:\n\n```\nAlice — Tue 10:14\nAuthored: human — terse reply-on-top, internal names\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nAuthored: AI-assisted — polished prose around concrete vendor names\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday\n```\n\n## Handling a batch (multiple unrelated emails)\n\nFor 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:\n\n```\n**Re: deck review**\nAuthored: human — quick internal ping, specific deadline\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nAuthored: AI — clichéd opener, zero specifics\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\"\n```\n\n## Hard rules\n\n- Never summarize what the email \"is about\" in prose. Header lines + bullets only, in the specified format.\n- **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\".\n- **Never prefix a bullet with a meta-label like \"Bullet:\", \"Point:\", \"Item:\", \"Note:\".** The bullet marker already shows it's a bullet.\n- Never restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- Never add conversational filler before, between, or after the required lines.\n- Preserve numbers, dates, names, and amounts verbatim in the bullets.\n- 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.\n- **When Authored is `human`, omit the Prompt line entirely.** There is no prompt to reverse.\n- 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.\n\n## Example — AI-assisted, actionable\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nAuthored: AI-assisted — clichéd opener + closer around real specifics\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n```\n\n## Example — human, response needed\n\n**Input:**\n\n> got the numbers from finance yet? need em before standup, otherwise i'm winging it\n\n**Output:**\n\n```\nAuthored: human — lowercase, typos, internal slang\nVerdict: RESPONSE-NEEDED — needs numbers before standup\n\n- Send finance numbers before standup\n```\n\n## Example — AI, NOISE (fake recruiter)\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nAuthored: AI — clichéd opener, generic superlatives, zero specifics\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics.\n```\n\n## Example — AI, NOISE (invoice fraud / BEC)\n\n**Input:**\n\n```\nFrom: Vanessa Rogers <vanessa.rogers@ceocoachinginternationalus.net>\nSubject: FWD: \"Marijus Planciunas\" Unpaid invoice.\n\nHello Marijus, this is a reminder that your payment for the overdue\ninvoice has been outstanding for over 60 days. Late charges have been\naccruing since February 28, 2026. Please do not hesitate to contact me.\n\n---------- Forwarded message ---------\nFrom: Marijus Planciunas <membership@stamps.org>\nThe invoice is okay and approved for payment. Please forward payment\nconfirmation to Vanessa Rogers once completed.\n```\n\n**Output:**\n\n```\nAuthored: AI — uniform polished register, formulaic urgency framing\nPrompt: \"Write an urgent overdue-invoice reminder and include a fake forwarded approval from the recipient.\"\nVerdict: NOISE — likely invoice fraud / BEC\n\n- Unknown sender on lookalike domain (ceocoachinginternationalus.net), not a known counterparty.\n- Fake forwarded \"approval\" from membership@stamps.org impersonating the recipient.\n- Urgency + late-fee threat paired with a payment redirect to the external sender.\n- Date inconsistencies (late fees \"accruing since February 28, 2026\" vs. a claim of 60+ days overdue).\n```\n\n## Example — non-English (French), response needed\n\n**Input:**\n\n> 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 !\n\n**Output:**\n\n```\nAuthored: AI-assisted — formule de politesse clichée, détails concrets intacts\nPrompt: \"Relance polie auprès de Marie pour confirmer les trois options du brief avant vendredi 16h.\"\nVerdict: RESPONSE-NEEDED — confirmation attendue avant vendredi 16h\n\n- Confirmer les trois options du brief avant vendredi 16h\n- Préparation de la présentation prévue pour lundi\n```\n\nFile v0.0.8:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise comes in two flavors. **Scam NOISE** (invoice fraud / BEC, phishing, fake recruiter, fake interview, conference scam, crypto / MLM pitch) emits 2–4 bullets naming the specific red flags the reader should see — unfamiliar sender domain, fake forwarded approval chain, urgency + payment redirect, sender impersonation, date inconsistencies. **Other NOISE** (newsletters, auto-replies, automated system mail, generic outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous.\n\nFile v0.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.8\",\n  \"publishedAt\": 1776883036699\n}\n\nArchive v0.0.7: 3 files, 5221 bytes\n\nFiles: README.md (2136b), SKILL.md (8277b), _meta.json (126b)\n\nFile v0.0.7:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: Reverse the AI in corporate email. Guess the prompt the sender probably gave an LLM, classify the email, and extract the actual intent. Handles single messages, threads, and batches, with noise/scam detection including invoice fraud / BEC and phishing red flags.\nversion: 0.0.7\nuser-invocable: true\n---\n\n# defluff\n\nUse this skill when the user pastes email content and wants the point — one message, a thread, or a batch. Defluff **reverses the AI**: it guesses what prompt the sender probably gave an LLM to generate this email, classifies the email's urgency, and extracts the specifics.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. Many corporate and outreach emails are padded by LLMs. For every email, do two things in order:\n\n1. Guess what prompt the sender probably gave an AI to generate it.\n2. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nThree lines (two required plus bullets):\n\n```\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **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.\n\n### Verdict definitions\n\n| Verdict | When |\n|---|---|\n| **ACTIONABLE** | Email has a concrete task or deadline for the reader |\n| **RESPONSE-NEEDED** | Sender is waiting on the reader's answer |\n| **FYI** | Informational only, no action expected |\n| **NOISE** | Promotional, automated, generic recruiting, purely social, **or a likely scam** |\n\n### NOISE scam patterns to name explicitly\n\nWhen the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:\n\n- **\"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\n- **\"likely phishing\"** — urgent credential/billing request, mismatched sender domain, suspicious link shortener, urgency pressure\n- **\"likely fake recruiter\"** — generic \"amazing opportunity\" with no company or role specifics\n- **\"likely conference scam\"** — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch\n- **\"likely fake interview\"** — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail\n- **\"crypto / MLM pitch\"** — mentions crypto, token launches, multi-level marketing, \"passive income\"\n- **\"generic outreach\"** — no specifics, clearly a template\n\n## Handling a thread (multiple messages, same conversation)\n\nFor each message, emit its own three-line block with sender + timestamp as a prefix line, then all messages plus a consolidated **Actions** section:\n\n```\nAlice — Tue 10:14\nPrompt: \"Ask Bob for the vendor list by Friday.\"\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday\n```\n\n## Handling a batch (multiple unrelated emails)\n\nFor each email, emit a short header (subject or sender), then the three-line block. After all emails, emit a **Triage** section bucketing each into Act now / Reply needed / FYI / Noise:\n\n```\n**Re: deck review**\nPrompt: \"Remind team about Thursday deck review.\"\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\"\n```\n\n## Hard rules\n\n- Never summarize what the email \"is about\" in prose. Bullets only, in the specified format.\n- **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\".\n- **Never prefix a bullet with a meta-label like \"Bullet:\", \"Point:\", \"Item:\", \"Note:\".** The bullet marker already shows it's a bullet.\n- Never restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- Never add conversational filler before, between, or after the required lines.\n- Preserve numbers, dates, names, and amounts verbatim in the bullets.\n- The Prompt line 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.\n- 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.\n\n## Example — single actionable email\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n```\n\n## Example — NOISE, likely fake recruiter\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics.\n```\n\n## Example — NOISE, likely invoice fraud / BEC\n\n**Input:**\n\n```\nFrom: Vanessa Rogers <vanessa.rogers@ceocoachinginternationalus.net>\nSubject: FWD: \"Marijus Planciunas\" Unpaid invoice.\n\nHello Marijus, this is a reminder that your payment for the overdue\ninvoice has been outstanding for over 60 days. Late charges have been\naccruing since February 28, 2026. Please do not hesitate to contact me.\n\n---------- Forwarded message ---------\nFrom: Marijus Planciunas <membership@stamps.org>\nThe invoice is okay and approved for payment. Please forward payment\nconfirmation to Vanessa Rogers once completed.\n```\n\n**Output:**\n\n```\nPrompt: \"Write an urgent overdue-invoice reminder and include a fake forwarded approval from the recipient.\"\nVerdict: NOISE — likely invoice fraud / BEC\n\n- Unknown sender on lookalike domain (ceocoachinginternationalus.net), not a known counterparty.\n- Fake forwarded \"approval\" from membership@stamps.org impersonating the recipient.\n- Urgency + late-fee threat paired with a payment redirect to the external sender.\n- Date inconsistencies (late fees \"accruing since February 28, 2026\" vs. a claim of 60+ days overdue).\n```\n\nFile v0.0.7:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise comes in two flavors. **Scam NOISE** (invoice fraud / BEC, phishing, fake recruiter, fake interview, conference scam, crypto / MLM pitch) emits 2–4 bullets naming the specific red flags the reader should see — unfamiliar sender domain, fake forwarded approval chain, urgency + payment redirect, sender impersonation, date inconsistencies. **Other NOISE** (newsletters, auto-replies, automated system mail, generic outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous.\n\nFile v0.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.7\",\n  \"publishedAt\": 1776799682221\n}\n\nArchive v0.0.6: 3 files, 5035 bytes\n\nFiles: README.md (1814b), SKILL.md (8283b), _meta.json (126b)\n\nFile v0.0.6:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: Reverse the AI in corporate email. Guess the prompt the sender probably gave an LLM, classify the email, and extract the actual intent. Handles single messages, threads, and batches, with noise/scam detection including invoice fraud / BEC and phishing red flags.\nversion: 0.0.6\nuser-invocable: true\n---\n\n# defluff\n\nUse this skill when the user pastes email content and wants the point — one message, a thread, or a batch. Defluff **reverses the AI**: it guesses what prompt the sender probably gave an LLM to generate this email, classifies the email's urgency, and extracts the specifics.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. Many corporate and outreach emails are padded by LLMs. For every email, do two things in order:\n\n1. Guess what prompt the sender probably gave an AI to generate it.\n2. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nThree lines (two required plus bullets):\n\n```\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **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.\n\n### Verdict definitions\n\n| Verdict | When |\n|---|---|\n| **ACTIONABLE** | Email has a concrete task or deadline for the reader |\n| **RESPONSE-NEEDED** | Sender is waiting on the reader's answer |\n| **FYI** | Informational only, no action expected |\n| **NOISE** | Promotional, automated, generic recruiting, purely social, **or a likely scam** |\n\n### NOISE scam patterns to name explicitly\n\nWhen the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:\n\n- **\"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\n- **\"likely phishing\"** — urgent credential/billing request, mismatched sender domain, suspicious link shortener, urgency pressure\n- **\"likely fake recruiter\"** — generic \"amazing opportunity\" with no company or role specifics\n- **\"likely conference scam\"** — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch\n- **\"likely fake interview\"** — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail\n- **\"crypto / MLM pitch\"** — mentions crypto, token launches, multi-level marketing, \"passive income\"\n- **\"generic outreach\"** — no specifics, clearly a template\n\n## Handling a thread (multiple messages, same conversation)\n\nFor each message, emit its own three-line block with sender + timestamp as a prefix line, then all messages plus a consolidated **Actions** section:\n\n```\nAlice — Tue 10:14\nPrompt: \"Ask Bob for the vendor list by Friday.\"\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday\n```\n\n## Handling a batch (multiple unrelated emails)\n\nFor each email, emit a short header (subject or sender), then the three-line block. After all emails, emit a **Triage** section bucketing each into Act now / Reply needed / FYI / Noise:\n\n```\n**Re: deck review**\nPrompt: \"Remind team about Thursday deck review.\"\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\"\n```\n\n## Hard rules\n\n- Never summarize what the email \"is about\" in prose. Bullets only, in the specified format.\n- **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\".\n- **Never prefix a bullet with a meta-label like \"Bullet:\", \"Point:\", \"Item:\", \"Note:\".** The bullet marker already shows it's a bullet.\n- Never restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- Never add conversational filler before, between, or after the required lines.\n- Preserve numbers, dates, names, and amounts verbatim in the bullets.\n- The Prompt line 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.\n- 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.\n\n## Example — single actionable email\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n```\n\n## Example — NOISE, likely fake recruiter\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics.\n```\n\n## Example — NOISE, likely invoice fraud / BEC\n\n**Input:**\n\n> From: Vanessa Rogers <vanessa.rogers@ceocoachinginternationalus.net>\n> Subject: FWD: \"Marijus Planciunas\" Unpaid invoice.\n>\n> 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.\n>\n> ---------- Forwarded message ---------\n> From: Marijus Planciunas <membership@stamps.org>\n> The invoice is okay and approved for payment. Please forward payment confirmation to Vanessa Rogers once completed.\n\n**Output:**\n\n```\nPrompt: \"Write an urgent overdue-invoice reminder and include a fake forwarded approval from the recipient.\"\nVerdict: NOISE — likely invoice fraud / BEC\n\n- Unknown sender on lookalike domain (ceocoachinginternationalus.net), not a known counterparty.\n- Fake forwarded \"approval\" from membership@stamps.org impersonating the recipient.\n- Urgency + late-fee threat paired with a payment redirect to the external sender.\n- Date inconsistencies (late fees \"accruing since February 28, 2026\" vs. a claim of 60+ days overdue).\n```\n\nFile v0.0.6:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise (newsletters, auto-replies, automated system mail without actionable content, generic recruiter outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous.\n\nFile v0.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.6\",\n  \"publishedAt\": 1776798997613\n}\n\nArchive v0.0.5: 3 files, 4306 bytes\n\nFiles: README.md (1814b), SKILL.md (6401b), _meta.json (126b)\n\nFile v0.0.5:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: Reverse the AI in corporate email. Guess the prompt the sender probably gave an LLM, classify the email, and extract the actual intent. Handles single messages, threads, and batches, with noise/scam detection.\nversion: 0.0.5\nuser-invocable: true\n---\n\n# defluff\n\nUse this skill when the user pastes email content and wants the point — one message, a thread, or a batch. Defluff **reverses the AI**: it guesses what prompt the sender probably gave an LLM to generate this email, classifies the email's urgency, and extracts the specifics.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. Many corporate and outreach emails are padded by LLMs. For every email, do two things in order:\n\n1. Guess what prompt the sender probably gave an AI to generate it.\n2. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nThree lines (two required plus bullets):\n\n```\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **NOISE**, skip the bullet list and emit only one bullet describing what kind of noise it is.\n\n### Verdict definitions\n\n| Verdict | When |\n|---|---|\n| **ACTIONABLE** | Email has a concrete task or deadline for the reader |\n| **RESPONSE-NEEDED** | Sender is waiting on the reader's answer |\n| **FYI** | Informational only, no action expected |\n| **NOISE** | Promotional, automated, generic recruiting, purely social, **or a likely scam** |\n\n### NOISE scam patterns to name explicitly\n\nWhen the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:\n\n- **\"likely fake recruiter\"** — generic \"amazing opportunity\" with no company or role specifics\n- **\"likely conference scam\"** — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch\n- **\"likely fake interview\"** — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail\n- **\"crypto / MLM pitch\"** — mentions crypto, token launches, multi-level marketing, \"passive income\"\n- **\"phishing\"** — urgent credential/billing request, mismatched sender domain, suspicious link shortener\n- **\"generic outreach\"** — no specifics, clearly a template\n\n## Handling a thread (multiple messages, same conversation)\n\nFor each message, emit its own three-line block with sender + timestamp as a prefix line, then all messages plus a consolidated **Actions** section:\n\n```\nAlice — Tue 10:14\nPrompt: \"Ask Bob for the vendor list by Friday.\"\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday\n```\n\n## Handling a batch (multiple unrelated emails)\n\nFor each email, emit a short header (subject or sender), then the three-line block. After all emails, emit a **Triage** section bucketing each into Act now / Reply needed / FYI / Noise:\n\n```\n**Re: deck review**\nPrompt: \"Remind team about Thursday deck review.\"\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\"\n```\n\n## Hard rules\n\n- Never summarize what the email \"is about\" in prose. Bullets only, in the specified format.\n- **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\".\n- **Never prefix a bullet with a meta-label like \"Bullet:\", \"Point:\", \"Item:\", \"Note:\".** The bullet marker already shows it's a bullet.\n- Never restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- Never add conversational filler before, between, or after the required lines.\n- Preserve numbers, dates, names, and amounts verbatim in the bullets.\n- The Prompt line 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.\n- 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.\n\n## Example — single actionable email\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n```\n\n## Example — NOISE, likely fake recruiter\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics.\n```\n\nFile v0.0.5:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise (newsletters, auto-replies, automated system mail without actionable content, generic recruiter outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous.\n\nFile v0.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.5\",\n  \"publishedAt\": 1776702208421\n}\n\nArchive v0.0.4: 3 files, 4130 bytes\n\nFiles: README.md (1814b), SKILL.md (6011b), _meta.json (126b)\n\nFile v0.0.4:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: Reverse the AI in corporate email. Guess the prompt the sender probably gave an LLM, classify the email, and extract the actual intent. Handles single messages, threads, and batches, with noise/scam detection.\nversion: 0.0.4\nuser-invocable: true\n---\n\n# defluff\n\nUse this skill when the user pastes email content and wants the point — one message, a thread, or a batch. Defluff **reverses the AI**: it guesses what prompt the sender probably gave an LLM to generate this email, classifies the email's urgency, and extracts the specifics.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. Many corporate and outreach emails are padded by LLMs. For every email, do two things in order:\n\n1. Guess what prompt the sender probably gave an AI to generate it.\n2. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nThree lines (two required plus bullets):\n\n```\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **NOISE**, skip the bullet list and emit only one bullet describing what kind of noise it is.\n\n### Verdict definitions\n\n| Verdict | When |\n|---|---|\n| **ACTIONABLE** | Email has a concrete task or deadline for the reader |\n| **RESPONSE-NEEDED** | Sender is waiting on the reader's answer |\n| **FYI** | Informational only, no action expected |\n| **NOISE** | Promotional, automated, generic recruiting, purely social, **or a likely scam** |\n\n### NOISE scam patterns to name explicitly\n\nWhen the email looks like a common scam or low-quality outreach, name the pattern in the verdict's reason line:\n\n- **\"likely fake recruiter\"** — generic \"amazing opportunity\" with no company or role specifics\n- **\"likely conference scam\"** — invitation to a conference the reader has never engaged with, vague venue, pay-to-speak, URL mismatch\n- **\"likely fake interview\"** — unverified recruiter asks for a technical interview with no company profile or LinkedIn trail\n- **\"crypto / MLM pitch\"** — mentions crypto, token launches, multi-level marketing, \"passive income\"\n- **\"phishing\"** — urgent credential/billing request, mismatched sender domain, suspicious link shortener\n- **\"generic outreach\"** — no specifics, clearly a template\n\n## Handling a thread (multiple messages, same conversation)\n\nFor each message, emit its own three-line block with sender + timestamp as a prefix line, then all messages plus a consolidated **Actions** section:\n\n```\nAlice — Tue 10:14\nPrompt: \"Ask Bob for the vendor list by Friday.\"\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday\n```\n\n## Handling a batch (multiple unrelated emails)\n\nFor each email, emit a short header (subject or sender), then the three-line block. After all emails, emit a **Triage** section bucketing each into Act now / Reply needed / FYI / Noise:\n\n```\n**Re: deck review**\nPrompt: \"Remind team about Thursday deck review.\"\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\"\n```\n\n## Hard rules\n\n- Never summarize what the email \"is about\" in prose. Bullets only, in the specified format.\n- Never restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- Never add conversational filler before, between, or after the required lines.\n- Preserve numbers, dates, names, and amounts verbatim in the bullets.\n- The Prompt line 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.\n- 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.\n\n## Example — single actionable email\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n```\n\n## Example — NOISE, likely fake recruiter\n\n**Input:**\n\n> 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!\n\n**Output:**\n\n```\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics.\n```\n\nFile v0.0.4:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise (newsletters, auto-replies, automated system mail without actionable content, generic recruiter outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous.\n\nFile v0.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.4\",\n  \"publishedAt\": 1776700280156\n}\n\nArchive v0.0.2: 3 files, 1982 bytes\n\nFiles: README.md (1178b), SKILL.md (1652b), _meta.json (126b)\n\nFile v0.0.2:SKILL.md\n\n---\nname: defluff\ndisplayName: Defluff\ndescription: Extract the real intent of an email as 3-5 bullets. Strips pleasantries, corporate jargon, and AI-generated padding to surface only facts, intent, and action items.\nversion: 0.0.2\nuser-invocable: true\n---\n\n# defluff\n\nUse this skill when the user pastes an email (or points you at one), and wants only what matters — not the fluff.\n\n## What to do\n\nGiven an email, you are an **extraction tool**. Analyze the text. Strip away all pleasantries, corporate jargon, and likely AI-generated padding. Output only the core facts, the sender's underlying intent, and any specific action items or questions requested.\n\nFormat strictly as a concise, **3–5 bullet point list**. Do not add conversational filler.\n\n## Rules\n\n- Do not summarize what the email \"is about\" in prose. Bullets only.\n- Do not restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- If the email contains a question, make it one of the bullets.\n- If the email requests an action or a deadline, make it one of the bullets.\n- If the email has no real content (only pleasantries), output a single bullet: `- No substantive content; purely social.`\n\n## Examples\n\n**Input:**\n> Hi team, hope everyone is 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!\n\n**Output:**\n- Send latest deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n\nFile v0.0.2:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nFile v0.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.2\",\n  \"publishedAt\": 1776698002680\n}\n\nArchive v0.0.1: 3 files, 1971 bytes\n\nFiles: README.md (1178b), SKILL.md (1631b), _meta.json (126b)\n\nFile v0.0.1:SKILL.md\n\n---\nname: defluff\ndescription: Extract the real intent of an email as 3-5 bullets. Strips pleasantries, corporate jargon, and AI-generated padding to surface only facts, intent, and action items.\nversion: 0.0.1\nuser-invocable: true\n---\n\n# defluff\n\nUse this skill when the user pastes an email (or points you at one), and wants only what matters — not the fluff.\n\n## What to do\n\nGiven an email, you are an **extraction tool**. Analyze the text. Strip away all pleasantries, corporate jargon, and likely AI-generated padding. Output only the core facts, the sender's underlying intent, and any specific action items or questions requested.\n\nFormat strictly as a concise, **3–5 bullet point list**. Do not add conversational filler.\n\n## Rules\n\n- Do not summarize what the email \"is about\" in prose. Bullets only.\n- Do not restate greetings, sign-offs, or \"I hope this finds you well\" variants.\n- If the email contains a question, make it one of the bullets.\n- If the email requests an action or a deadline, make it one of the bullets.\n- If the email has no real content (only pleasantries), output a single bullet: `- No substantive content; purely social.`\n\n## Examples\n\n**Input:**\n> Hi team, hope everyone is 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!\n\n**Output:**\n- Send latest deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off\n\nFile v0.0.1:README.md\n\n# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nFile v0.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.1\",\n  \"publishedAt\": 1776697752181\n}","readmeExcerpt":"Skill: Defluff Owner: yozaz Summary: 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... Tags: latest:0.0.9 Version history: v0.0.9 | 2026-04-22T19:42:24.388Z | auto Version 0.0.9 - Updated scam pattern definitions for NOISE verdicts, adding more explicit criteria for \"likely fake recruiter\" and \"crypto / Web3 ","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Authored: [AI | AI-assisted | human] — [one-sentence reasoning naming 1-2 concrete signals, max 15 words]\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3"},{"language":"text","snippet":"Alice — Tue 10:14\nAuthored: human — terse reply-on-top, internal names\nVerdict: RESPONSE-NEEDED — waiting on finalized list\n\n- Q3 budget capped at $50k\n- Need finalized vendor list by Friday\n\nBob — Tue 14:02\nAuthored: AI-assisted — polished prose around concrete vendor names\nPrompt: \"Confirm vendors A and B, explain C decline.\"\nVerdict: ACTIONABLE — deliverable coming Thursday\n\n- Vendor A and B confirmed\n- Vendor C declined (timeline)\n- Contract draft Thursday\n\n**Actions**\n- Alice: approve finalized vendor list by Friday; sign Vendor B contract after Bob's draft lands\n- Bob: send Vendor B contract draft Thursday"},{"language":"text","snippet":"**Re: deck review**\nAuthored: human — quick internal ping, specific deadline\nVerdict: ACTIONABLE — has a deadline\n\n- Send deck by EOD Wed\n\n**LinkedIn: exclusive opportunity at \"Growth Co\"**\nAuthored: AI — clichéd opener, zero specifics\nPrompt: \"Send a generic recruiter cold outreach.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch, no company or role specifics\n\n**Triage**\n- Act now: Re: deck review\n- Noise: LinkedIn: exclusive opportunity at \"Growth Co\""},{"language":"text","snippet":"Authored: AI-assisted — clichéd opener + closer around real specifics\nPrompt: \"Politely ask the team for the deck by Wednesday and note the legal hold on customer logos.\"\nVerdict: ACTIONABLE — has a concrete deadline\n\n- Send deck by EOD Wednesday for Thursday review\n- Hold customer logos pending legal sign-off"},{"language":"text","snippet":"Authored: human — lowercase, typos, internal slang\nVerdict: RESPONSE-NEEDED — needs numbers before standup\n\n- Send finance numbers before standup"},{"language":"text","snippet":"Authored: AI — clichéd opener, generic superlatives, zero specifics\nPrompt: \"Send a generic cold recruiter outreach that hides the company and role.\"\nVerdict: NOISE — likely fake recruiter\n\n- Generic pitch with no company name, role, or specifics."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: defluff\ndisplayName: Defluff\ndescription: 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 probably gave an LLM. Classify urgency, extract the actual intent, name scam patterns (invoice fraud / BEC, phishing, fake recruiters, conference scams, crypto / MLM pitches). Output mirrors the email's language. Handles single messages, threads, and batches.\nversion: 0.0.9\nuser-invocable: true\n---\n\n# defluff\n\nUse 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.\n\n## When to trigger\n\n- User pastes one or more emails and asks for a summary, the key points, action items, or \"what do I actually need to do?\"\n- User forwards a long thread and wants only what matters.\n- A triage pass across unread email, when chained with a `mail-read` skill that provides the messages.\n\n## Core rule\n\nYou are an **AI-reversal tool**. For every email, in order:\n\n1. Decide who wrote it — `AI`, `AI-assisted`, or `human`.\n2. 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.\n3. Classify the email's urgency.\n4. Extract the real intent as a short bullet list.\n\nNever add conversational padding of your own. Never write \"Here's what I found\", \"In summary\", \"I hope this helps\".\n\n## Output format — single email\n\nUp to three header lines (Authored is always emitted; Prompt is only emitted when Authored is AI or AI-assisted), then bullets:\n\n```\nAuthored: [AI | AI-assisted | human] — [one-sentence reasoning naming 1-2 concrete signals, max 15 words]\nPrompt: \"[short imperative the sender probably gave an AI, in quotes]\"\nVerdict: [ACTIONABLE | RESPONSE-NEEDED | FYI | NOISE] — [one-sentence reason, max 15 words]\n\n- bullet 1\n- bullet 2\n- bullet 3\n```\n\nFor **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.\n\n### Authorship definitions\n\n| Authored | When | Typical signals |\n|---|---|---|\n| **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 |\n| **AI-assisted** | LLM-polished human content | AI-shaped phrasing mixe"},{"path":"README.md","content":"# @defluff/openclaw-skill\n\nAn [Openclaw](https://openclaw.ai) skill that extracts the actual intent of an email into 3–5 bullets, using the same fixed prompt wording as the browser extension and Outlook add-in.\n\nThe skill is pure markdown + YAML — no executable code. Openclaw's configured agent follows the instructions in `SKILL.md` using whatever model the user has set up locally.\n\n## Install\n\nFrom the Openclaw CLI:\n\n```bash\n# copy into your local skills directory\nmkdir -p ~/.openclaw/workspace/skills/defluff\ncp SKILL.md ~/.openclaw/workspace/skills/defluff/\n```\n\nOr publish to ClawHub from the repo root:\n\n```bash\npnpm skill:publish\n```\n\nThis reads the `version:` field from `SKILL.md` frontmatter and invokes `clawhub publish` with the right flags. First time publishing? Run `clawhub login` once before. Bump the version in `SKILL.md` each release.\n\nSee the [Openclaw skills docs](https://docs.openclaw.ai/tools/skills) for details on discovery and updates.\n\n## Usage\n\nOnce installed, invoke with a chat prompt like:\n\n> /defluff [paste email here]\n\nOr (with `user-invocable: true`, which is set in the frontmatter) as a slash command in Openclaw's chat interface.\n\nThe skill handles three input shapes:\n\n| Input | Output |\n|---|---|\n| **Single email** | 3–5 bullets in priority order (actions → questions → facts → intent) |\n| **Thread** (multiple messages, same conversation) | Per-message bullets + consolidated **Actions** section with attribution |\n| **Batch** (unrelated emails) | Per-email bullets + **Triage** section (Act now / Reply needed / FYI / Noise) |\n\nNoise comes in two flavors. **Scam NOISE** (invoice fraud / BEC, phishing, fake recruiter, fake interview, conference scam, crypto / MLM pitch) emits 2–4 bullets naming the specific red flags the reader should see — unfamiliar sender domain, fake forwarded approval chain, urgency + payment redirect, sender impersonation, date inconsistencies. **Other NOISE** (newsletters, auto-replies, automated system mail, generic outreach) collapses to a single labelled bullet. The skill will ask \"single, thread, or batch?\" if the input is ambiguous."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77v4q6jm2ysc21sfehd8nxy985420h\",\n  \"slug\": \"defluff\",\n  \"version\": \"0.0.9\",\n  \"publishedAt\": 1776886944388\n}"},{"path":"skill-card.md","content":"## Description:\n\nReverse the AI in corporate email by classifying authorship, guessing likely LLM prompts when AI was involved, classifying urgency, extracting actual intent, and naming common scam patterns across single emails, threads, and batches.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yozaz](https://clawhub.ai/user/yozaz)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees, external users, and developers use Defluff to triage corporate email by separating action, response, FYI, and noise while surfacing likely AI-authored messages and scam indicators.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Email content may contain sensitive or confidential information that the configured OpenClaw model will inspect.\n\nMitigation: Install and use only when comfortable sharing the provided email content with the configured local model or agent environment.\n\nRisk: AI-authorship labels, guessed prompts, urgency verdicts, and scam classifications can be wrong or incomplete.\n\nMitigation: Treat outputs as triage signals and verify important decisions before replying, paying, clicking links, or escalating.\n\n## Reference(s):\n\n- [Openclaw](https://openclaw.ai)\n- [Openclaw skills docs](https://docs.openclaw.ai/tools/skills)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance]\n\n**Output Format:** [Markdown with structured header lines and bullet lists]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Mirrors the input email language while keeping fixed line labels and verdict tokens in English.]\n\n## Skill Version(s):\n\n0.0.9 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"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... Skill: Defluff Owner: yozaz Summary: 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... Tags: latest:0.0.9 Version history: v0.0.9 | 2026-04-22T19:42:24.388Z | auto Version 0.0.9 - Updated scam pattern definitions for NOISE verdicts, adding more explicit criteria for \"likely fake recruiter\" and \"crypto / Web3","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1757,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:06:47.158Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:06:47.158Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T12:44:55.358Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}