Crisis And Moderation
social-media-skills/skills
A skill your agent uses when something goes wrong on social — the crisis-and-moderation playbook for negative moments, pile-ons, misinformation/deepfakes about the brand, offensive-post backlash…
Handles a real email account through query and mutate tools: check the inbox, read, search, reply, forward, compose and organize, with sending always confirmed first.
$ npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OpenLoaf/OpenLoaf email-ops-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/email-ops/en .claude/skills/email-ops-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "email-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/en into .claude/skills/email-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-ops-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/enType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OpenLoaf/OpenLoaf email-ops-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/email-ops/en .agents/skills/email-ops-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "email-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/en into .agents/skills/email-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-ops-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OpenLoaf/OpenLoaf email-ops-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/email-ops/en .cursor/skills/email-ops-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "email-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/en into .cursor/skills/email-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-ops-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/OpenLoaf/OpenLoaf.git --path apps/server/src/ai/builtin-skills/email-ops/en--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OpenLoaf/OpenLoaf email-ops-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/email-ops/en .gemini/skills/email-ops-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "email-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/en into .gemini/skills/email-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-ops-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install OpenLoaf/OpenLoaf email-ops-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .github/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/email-ops/en .github/skills/email-ops-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "email-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/en into .github/skills/email-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-ops-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OpenLoaf/OpenLoaf email-ops-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/email-ops/en .opencode/skills/email-ops-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "email-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/email-ops/en into .opencode/skills/email-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "email-ops-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
email-ops-skillHandles a real email account through query and mutate tools: check the inbox, read, search, reply, forward, compose and organize, with sending always confirmed first.
Two tools do the work. `EmailQuery` is read-only and has modes for listing accounts, a unified inbox view, listing messages, fetching one message, searching, unread counts and mailbox lists, with cursor paging. `EmailMutate` sends, replies, forwards, archives, deletes and moves messages, and send, delete and move require approval. Both are deferred tools whose schemas must be loaded through `ToolSearch` before use.
The workflows are explicit. To reply, the agent lists accounts, scans the inbox, reads the full message, drafts a reply, shows the recipient, subject and body in plain text and waits for your confirmation, because a sent email cannot be recalled. The reply carries `inReplyTo` and `references` so mail clients keep it in the original thread. New messages follow the same show-then-confirm rule, and search can feed a bulk organize step after the agent reports what it found. Chat apps, translation and offline `.eml` parsing are out of scope.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f7eccf6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Email Operations loads about 1.8k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 655 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from OpenLoaf/OpenLoaf at commit f7eccf6, republished under its AGPL-3.0 licence (© OpenLoaf). 655 words, ~1,761 tokens.
.claude/skills/email-ops-skill/SKILL.md (or your agent's skills folder).| Tool | Responsibility | Read-only |
|---|---|---|
EmailQuery | Query email accounts / messages / stats / search (mode: list-accounts / list-unified / list-messages / get-message / search / unread-stats / list-mailboxes) | Yes |
EmailMutate | Send / reply / forward / archive / delete / move messages (send / delete / move require approval) | No |
Loading: Both are deferred tools. Before calling either, activate its schema with
ToolSearch(names: "EmailQuery,EmailMutate").
Pick based on your goal — don't guess blindly:
Want to know how many unread? → unread-stats
Want a unified inbox view? → list-unified (scope: all-inboxes)
Want sent / drafts / flagged? → list-unified (scope: sent/drafts/flagged)
Want to browse a specific folder? → list-messages (needs accountEmail + mailbox)
Want to search by keyword/sender? → search (query accepts natural language)
Want to read a message in full? → get-message (needs messageId)
Don't know which accounts are set up? → list-accounts (always call this first to get accountEmail)
Need to know what folders exist? → list-mailboxesAll list modes support cursor + pageSize (1-50) pagination.
1. list-accounts → obtain the available accountEmail
2. list-unified (all-inboxes) → scan inbox overview
3. get-message (messageId) → read the full content of the message you need to reply to
4. Draft the reply
5. ⚠️ Show the draft (recipient / subject / body) in plain text and explicitly ask "send?" — wait for the user to confirm
6. send (with inReplyTo + references) → only send after the user confirmsWhy is step 5 mandatory? Because once an email is sent, it can't be recalled. Wrong recipient or wrong content can lead to irreversible embarrassment or even business damage. Always let the user verify recipient, subject, and body with their own eyes before sending.
Why must step 6 carry inReplyTo? Because without it, the reply shows up as a standalone new message in the recipient's inbox, detached from the original thread. All major mail clients (Gmail, Outlook, Apple Mail) rely on the Message-ID header to thread conversations. Set inReplyTo to the original message's messageId, and set references to the original's references chain plus the original messageId.
1. list-accounts → confirm which account to send from
2. Draft the email based on user intent
3. ⚠️ Show the complete email (recipient / subject / body) in plain text and explicitly ask "send?" — wait for the user to confirm
4. send → send after confirmation1. search (query: "newsletter") → find all matching messages
2. Report a summary of the results to the user
3. batch-move / batch-delete → perform bulk operations per user instructionHandling large result sets: Searches can return many results. Follow these principles:
pageSize: 20, then report the total count and a sample to the user1. unread-stats → quickly see unread counts per account
2. list-unified (all-inboxes, pageSize: 20) → fetch the latest message list
3. get-message on each important message → read the details
4. Produce a structured digest (grouped by urgency / sender)There is no standalone forward action — forwarding is implemented via send:
get-message to retrieve the full original contentto to the forwarding target, prefix subject with Fwd:, and include the original content in bodyText (add an "---------- Forwarded message ----------" separator along with the original sender / date / subject)sendThe current version does not support sending or downloading email attachments. If the user asks:
The bodyText parameter of the send action is plain text only — HTML is not supported. If the user asks for rich formatting (bold, images, tables, etc.), tell them only plain text is supported and recommend composing complex formatting in an email client.
inReplyTo: The thread breaks, and the recipient sees an orphan new message.accountEmail: Many actions require accountEmail. When unsure, call list-accounts first.Re: prefix on replies: Keep the subject as Re: <original subject> to preserve threading.Fwd: prefix on forwards: Keep the subject as Fwd: <original subject>.EmailQuery 7 modes: list-accounts · list-mailboxes · list-messages · list-unified · get-message · search · unread-stats
EmailMutate 8 actions: send · mark-read · flag · delete · move · batch-mark-read · batch-delete · batch-move
Send parameters (send): requires accountEmail, to, subject, bodyText; replies additionally require inReplyTo and references. See the tool schema for full parameter details.
© OpenLoaf, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in apps/server/src/ai/builtin-skills/email-ops/en of OpenLoaf/OpenLoaf.
Open the folder on GitHubat commit f7eccf6
Email Operations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Email Operations this skillOpenLoaf/OpenLoaf | 108 | — | ~1.8k | Automated safety check: Pass | AGPL-3.0 | |
| Crisis And Moderationsocial-media-skills/skills | 125 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Loop FactoryJuliusBrussee/skills | 161 | — | ~2k | Automated safety check: Pass | MIT | |
| Reddit Engageshawnla90/gtm-coding-agent | 154 | — | ~794 | Automated safety check: Pass | MIT | |
| 3D Cv Labeling 2026curiositech/some_claude_skills | 243 | 1 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Process Inboxtelegramdesktop/tdesktop | 33k | 2 repos | ~4.5k | Automated safety check: Pass | GPL-3.0 |
social-media-skills/skills
A skill your agent uses when something goes wrong on social — the crisis-and-moderation playbook for negative moments, pile-ons, misinformation/deepfakes about the brand, offensive-post backlash…
JuliusBrussee/skills
Run a spec-driven agent loop where coding tasks live as markdown specs that move through inbox → active → archive, get implemented by Claude Code or Codex, and pass a review gate before they count…
shawnla90/gtm-coding-agent
Draft and approve Reddit comments from scouted opportunities with a hard human-in-the-loop gate.
curiositech/some_claude_skills
Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion.
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
telegramdesktop/tdesktop
Continue autonomous Telegram Desktop development from the shared ai-tdesktop repository.
OpenLoaf/OpenLoaf
Triggers when the master Agent faces a multi-step complex task and is deciding whether / how to outsource sub-tasks to built-in subagents (browser / doc-editor / data-analyst / extractor /…
OpenLoaf/OpenLoaf
Triggered when the user asks for page-level interaction with a specific webpage: login, form filling, button clicks, pagination scraping, screenshots, downloading page images, handling CAPTCHAs or…
OpenLoaf/OpenLoaf
Triggered when the user wants lifecycle management of OpenLoaf canvases / whiteboards: create, open, filter, duplicate, delete, rename, or change ownership.
OpenLoaf/OpenLoaf
Reads, edits, converts and reviews Word documents through three dedicated tools, covering tracked changes, comments, tables, images and format conversion.
OpenLoaf/OpenLoaf
Guides an agent to operate native macOS apps by surveying an app first, acting through intents, menus or keystrokes, and verifying each step, in OpenLoaf Desktop only.
OpenLoaf/OpenLoaf
All-in-one PDF read / write / convert / OCR. An agent skill from OpenLoaf/OpenLoaf.
Categories
Handles a real email account through query and mutate tools: check the inbox, read, search, reply, forward, compose and organize, with sending always confirmed first. Two tools do the work. `EmailQuery` is read-only and has modes for listing accounts, a unified inbox view, listing messages, fetching one message, searching, unread counts and mailbox lists, with cursor paging.
Email Operations fits situations like: checking an inbox or finding messages from a particular sender; replying to or forwarding an email in its original thread; composing and sending a new email after reviewing the draft; searching and archiving a batch of newsletters.
Run `npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a claude-code`. Or copy the skill folder (apps/server/src/ai/builtin-skills/email-ops/en in OpenLoaf/OpenLoaf) into .claude/skills/email-ops-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a codex`. Or copy the skill folder (apps/server/src/ai/builtin-skills/email-ops/en in OpenLoaf/OpenLoaf) into .agents/skills/email-ops-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenLoaf/OpenLoaf --skill email-ops-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/email-ops-skill, .gemini/skills/email-ops-skill, .github/skills/email-ops-skill and .opencode/skills/email-ops-skill in your project.
SKILL.md names no scripts, command-line tools or credentials: Email Operations is instructions for the agent only. Our summary lists: A configured email account in the host application with the EmailQuery and EmailMutate tools.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Email Operations is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Email Operations: Crisis And Moderation (social-media-skills/skills, 125 stars), Loop Factory (JuliusBrussee/skills, 161 stars), Reddit Engage (shawnla90/gtm-coding-agent, 154 stars) and 3D Cv Labeling 2026 (curiositech/some_claude_skills, 243 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OpenLoaf (a GitHub organization) maintains it in OpenLoaf/OpenLoaf, which has 108 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on May 14, 2026.
Source: OpenLoaf/OpenLoaf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.