Skill4 starsChanged 6 months agoMITView on GitHub
Broadcast the current brainstorm question plus a short context snapshot to a configured panel by email (SEND-ONLY), so people can read it on their own device during a screen-shared meeting and reply by email or aloud. Use when the user runs /claudex:email, or asks to "email the panel", "send this question to the panel", or "broadcast this to the panel". Reads recipients from ~/.claude/claudex/panel.json. Does not collect replies and does not modify claudex:think.
41 other projects use a version of this.
Adopted by
Most recently taken up by
- rakaarwaky/agents-arwakytheir own version, first seen Nov 8, 2026
- pietz/skillstheir own version, first seen Nov 8, 2026
- antoniolg/agent-kittheir own version, first seen Nov 8, 2026
- lawless-m/claude-skillstheir own version, first seen Nov 6, 2026
- Littlpinguin/marketing-cockpit-templatetheir own version, first seen Nov 3, 2026
- saksham10arora-dotcom/everything-claude-codextheir own version, first seen Nov 1, 2026
Used with
Projects with it also use content, calendar and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Rayan55050Skillcontent
Создание контента: посты, статьи, тексты
Also in 7 projects that use this
jacobraskSkillcalendar
Interact with Apple Calendar via AppleScript. Use when the user asks to check calendar, view events, create events, manage schedule, find free time, or list calendars. Triggers include "my calendar", "my schedule", "calendar events", "create event", "add to calendar", "what's on my calendar", "free time", "available slots", "upcoming events", "today's events". Requires macOS with Calendar.app.
Also in 6 projects that use this
anshul-garg27Skillrepurpose
Transform one piece of content into 10+ platform-native formats - threads, posts, scripts, newsletters, and more
Also in 4 projects that use this
Rayan55050Skillfinance
Финансы: Monobank, подписки, курсы валют, рынки
Also in 3 projects that use this
SentrySkilltts
Generates spoken narration with Gemini TTS through Vercel AI Gateway. Use for text-to-speech, audio samples, voiceovers, or speaking as Junior with the reusable Junior voice. Do not use for transcription, voice cloning, music generation, or rendering a video without a narration request.
Also in 3 projects that use this
jholhewresSkilljournal
Daily journaling with structured entries and reflections
Also in 3 projects that use this
Other versions41 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 41
- openai/plugins★ 7.8ksame name
- whawkinsiv/solo-founder-skills★ 260same name
- whawkinsiv/claude-code-skills★ 258same name
- magnus919/agent-skills★ 172same name
- AgriciDaniel/claude-email★ 117same name
- antoniolg/agent-kit★ 100same name
- saksham10arora-dotcom/everything-claude-codex★ 74same name
- analystacademy/claude-skills★ 35same name
- wildsurfer/your-mail-mcp★ 20same name
- Anglesite/anglesite-skills★ 15same name
31 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- buildSkill
- deep-researchSkill
- setupSkill
- thinkSkill
- ultra-researchSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 9 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 29 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
Read ~/.claude/claudex/panel.json.
- Very specific: line 33
If panel.members is missing or is not an array, treat it as a panel schema error and STOP before drafting.
- Very specific: line 41
No argument: every member with include: true.
- Very specific: line 45
If any @ token is not a valid email, STOP and list the rejected tokens.
- Very specific: line 51
NEVER select a member with include: false unless explicitly named in the argument.
- Distinctive: line 54
STOP. If any selected member lacks a valid email, show which selected member is invalid.
- Distinctive: line 57
If zero recipients resolve, STOP and show what matched / was excluded.
- Very specific: line 84
After the draft exists, confirm a Gmail send tool (e.g.
- Distinctive: line 88
If the email cannot be sent for any reason — tool unavailable, send fails, or send hangs — present the fully-assembled draft (recipients, …
- Distinctive: line 94
If a Gmail account/profile identity tool is available, look up and display the actual connected sender address in the preview.
- Very specific: line 110
Call the Gmail send tool once with all unique recipients in to, the subject, and the body.
- Distinctive: line 111
If the send fails or hangs, follow the Manual send fallback rule in Step 4.
- Distinctive: line 124
If this append fails AFTER a successful send, report "Sent but not recorded" with the subject and the returned id — not an outright failure.
- Distinctive: line 134
Send-only: Never poll, match, or summarize replies here.
- Distinctive: line 135
Always preview + confirm: before sending to real people.
- Distinctive: line 136
Never leak: follow the Step 3 allowlist for subject, body, preview, and log.
“Common” is measured: kept by at least 6 in 10 of the 29 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
claudex:email — broadcast a brainstorm question to your panel
Send-only. Emails the current question + a short context snapshot to a panel defined in
~/.claude/claudex/panel.json, so people can read it on their own device during a
screen-shared meeting and respond by email or aloud. It does NOT collect, match, or summarize
replies, and does NOT change claudex:think.
Canonical invocation: /claudex:email [filter]. Replies land in the connected Gmail account
and are not monitored live.
Step 1 — Parse panel (true fail-fast)
Read ~/.claude/claudex/panel.json. If it is missing or does not parse, STOP and tell the
host to create/fix it. Recipients are parsed from data.panel.members; the members array is
nested under the top-level panel key. Minimal required shape:
{
"panel": {
"members": [
{ "name": "Name", "email": "name@example.com", "role": "student", "include": true }
]
}
}If panel.members is missing or is not an array, treat it as a panel schema error and STOP
before drafting. This is the only hard stop before drafting — everything else still produces
a draft you can fall back to.
Step 2 — Resolve recipients
Resolve recipients only from data.panel.members plus any validated ad-hoc email tokens.
- No argument: every member with
include: true. - Argument contains a token with
@: strip surrounding angle brackets, commas, semicolons, and whitespace from each such token; lowercase the domain; then validate it against a conservative email regex such as^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$. If any@token is not a valid email, STOP and list the rejected tokens. Valid ad-hoc emails are combined with any other (non-@) filter tokens. - Other tokens (case-insensitive):
professor/professors→role: professor;student/students→role: student.- Name tokens (e.g.
florescu bozdog) match againstname. Multiple tokens are OR —florescu bozdogresolves to BOTH people, not one person matching both.
- NEVER select a member with
include: falseunless explicitly named in the argument. - Each selected member from
panel.membersmust have non-empty stringname,email, androlefields plus a booleanincludefield. If any selected member fails this validation, STOP. If any selected member lacks a valid email, show which selected member is invalid. - Deduplicate the final recipient list by normalized lowercased email before preview, send, and log. Show the unique recipient count.
- If zero recipients resolve, STOP and show what matched / was excluded.
Step 3 — Assemble the draft (always, even if Gmail later turns out unavailable)
Current-question rule (strict): ignore the /claudex:email invocation text itself and any
confirmation prompts. Use the most recent ASSISTANT-posed brainstorm question shown to the
host plus a 2–4 line summary of the immediate discussion. If there has been a topic shift,
there is no active brainstorm question, or there is any doubt, STOP and ask the host to paste
the exact question. Do not guess.
Allowlist (authoritative): the subject, the body, the preview, and the logged question may
contain ONLY the current question text plus the short context snapshot. Include nothing else
from panel.json beyond actual recipient addresses (no meeting.*, no member
title/expertise, no member emails outside the final recipient addresses), and no tool
output, hidden reasoning, implementation/planning notes, local file paths, or credentials.
Sanitize the logged question the same way as the email draft.
- Subject:
[S.A.G.E.] <short question>— single line, ≤ 80 chars, no newlines. - Body (plain text, target ≤ ~250 words):
- Identification line: "This is Hao Fu's brainstorm assistant for the S.A.G.E. meeting — sending the question we're on so you can follow along."
- Where we are: 2–4 line snapshot.
- Question: the current question + its options if multiple-choice.
- Closing: "Reply here or raise it on the call."
Step 4 — Gmail availability check
After the draft exists, confirm a Gmail send tool (e.g. mcp__gmail__send_email) is
available, and ensure ~/.claude/claudex/state/ exists (mkdir -p). If creating the state
directory fails, continue to preview/send but warn "logging may fail".
If the email cannot be sent for any reason — tool unavailable, send fails, or send hangs — present the fully-assembled draft (recipients, subject, body) under a "Manual send fallback" heading and STOP.
Step 5 — Preview & confirm (required)
If a Gmail account/profile identity tool is available, look up and display the actual
connected sender address in the preview. Otherwise show "the connected Gmail account
(confirm it is the intended sender)". The expected account for this setup may be
agentfao@gmail.com, but never state it as verified fact without checking.
Show the host: recipients as a list with the unique recipient count + class (e.g. "7 unique
included panel members" or "2 unique professors (Florescu, Bozdog)"); the line "All
recipients are in To: and will see each other."; the connected Gmail account wording above;
and the exact subject + full body. Then ask a count-based confirm: "Send to N <class> from
the connected Gmail account?" Proceed only on an unambiguous affirmative. If the host's
reply adds conditions (for example, "yes, students only"), re-resolve recipients and
re-preview before sending. Declining aborts with no send and no state write (the dry-run
path).
Step 6 — Send
Call the Gmail send tool once with all unique recipients in to, the subject, and the body.
If the send fails or hangs, follow the Manual send fallback rule in Step 4.
Step 7 — Record
Append one line to ~/.claude/claudex/state/panel-sends.jsonl. Log recipients as the array of
normalized email addresses, never display text like "7 included members". Set sentId from
the send result (result.id, else the stringified returned identifier), and include threadId
if the send result contains one:
{"ts":"<ISO8601>","sentId":"<result.id or stringified returned identifier>","threadId":"<thread id if returned>","subject":"<subject>","question":"<sanitized question text>","recipients":["a@x","b@y"]}If this append fails AFTER a successful send, report "Sent but not recorded" with the subject and the returned id — not an outright failure.
Step 8 — Report
Report Sent (plain ASCII, no emoji) and the returned id. Remind the host replies arrive in
the connected Gmail account and are not monitored live.
Hard rules
- Send-only. Never poll, match, or summarize replies here.
- Always preview + confirm before sending to real people.
- Never leak: follow the Step 3 allowlist for subject, body, preview, and log.
- Never touch
claudex:thinkor its gate.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

