Borrowing it
Nothing to install: this file belongs to opensupplyhub/open-supply-hub. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/opensupplyhub/open-supply-hub/main/.agent/skills/moderation-email/SKILL.mdgit clone --depth 1 https://github.com/opensupplyhub/open-supply-hubWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/opensupplyhub/open-supply-hub/moderation-email)<a href="https://agentmods.dev/skills/opensupplyhub/open-supply-hub/moderation-email"><img src="https://agentmods.dev/badge/skills/opensupplyhub/open-supply-hub/moderation-email/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/opensupplyhub/open-supply-hub/moderation-email"><img src="https://agentmods.dev/badge/skills/opensupplyhub/open-supply-hub/moderation-email.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00123 | $0.02375 |
| Opus 5.5 | $0.00049 | $0.00950 |
| Sonnet 5.5 | $0.00025 | $0.00475 |
| Haiku 4.5 | $0.00012 | $0.00237 |
Grade A, and why
moderation-email scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 207 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Moderation Email (from the moderator's tags)
Input: a Google Sheets link to the tagged tab of a ~PROCESSED list
report. Output: the finished contributor email (email.md + email.html)
in <output_dir>/<list-id>/.
Prerequisites
- Google Drive access from your agent (the claude.ai Google Drive
integration or equivalent) — steps below use
get_file_metadata/read_file_content/ Drive search. No Drive access? Download the tagged sheet as CSV yourself and give the skill the local file path; everything from parsing onward works the same. python3on PATH (the two helper scripts are dependency-free).openin step 5 is macOS; use your platform's equivalent (xdg-open,start) elsewhere.
0. Load the moderator config — required
Read ~/.config/os-hub/moderation-email.json. If it is missing or
contains placeholder values, STOP and tell the moderator: copy
.agent/skills/_shared/config.example.json to that path and fill
it from the internal Data Team Resources Confluence page. Do not
proceed with defaults — every document ID, policy value, and URL comes
from the config; none of them are stored in this skill.
Config keys used below: docs.templates_doc_id, docs.rules_doc_id,
docs.taxonomy_sheet_id (+ gid), docs.contribot_drive_folder_id,
platform.base_url, platform.monday_board_url,
policy.reject_heuristic_pct (nullable),
policy.reject_heuristic_count (nullable),
policy.second_rejection_cc, output_dir.
1. Read the tagged sheet
get_file_metadataon the file id first: the title (<id>.~PROCESSED.<file-name>) gives the list id.- List display name: newer reports carry a metadata block at the top
of the Summary sheet (list id / list name / contributor / upload date)
— use it. Older reports don't; then ask the moderator (it's on their
Monday item). If still unknown at generation time, write the
placeholder as
==[ADD LIST NAME]==— the renderer turns==...==into a bold yellow highlight that survives the paste into Gmail — and say so in the report. - A bare list id instead of a link → search Drive for
title contains '<id>.~PROCESSED'. read_file_contentreturns all tabs concatenated (large workbooks arrive as a saved tool-result file — even better). Parse with the skill's parser in ONE call:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 207 lines · 123 tokens per session scan A 0072b92520e1
moderation-email is a skill published in the GitHub repository opensupplyhub/open-supply-hub (22 stars, last pushed yesterday), licensed MIT. It adds 123 tokens to every session and 2,375 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.
moderation-email compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| moderation-emailopensupplyhub/open-supply-hub | Skill | 22 | yesterday | MIT | A | 123 | Claude Code, Codex |
| orbit-notionnexu-io/open-design | Skill | 106k | yesterday | Apache-2.0 | A | 117 | Claude Code, Codex |
| agentmailpaperclipai/paperclip | Skill | 111k | yesterday | MIT | A | 30 | Claude Code, Codex |
| Cortexdanielmiessler/LifeOS | Skill | 20k | yesterday | MIT | A | 184 | Claude Code |
| rowboat-spacesrowboatlabs/rowboat | Skill | 18k | yesterday | Apache-2.0 | A | 60 | Claude Code, Codex |
| feishuHmbown/CodeWhale | Skill | 41k | 5d ago | MIT | A | 33 | Claude Code, Codex |
| pinchtab-mcppinchtab/pinchtab | Skill | 11k | 10d ago | MIT | A | 52 | Claude Code, Codex |