send-email — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited send-email (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Internal service skill for sending project emails via Gmail MCP. Called exclusively by other agent skills — not directly by the user. Receives a rendered email from the calling skill, applies autonomy level rules, converts attachments if needed, and delivers via Gmail or saves a fallback draft.
This skill is activated when another agent skill instructs Claude to send an email. The calling skill provides all content; send-email handles delivery, autonomy logic, and fallback.
Calling skills: generate-questionnaire, generate-approval-letter, monitor-progress, coordinate-meeting, coordinate-executors.
Determine language from project-state.md field language. If absent: scan project artifacts for Cyrillic → RU. Default: EN.
Parameters passed by the calling skill:
| Parameter | Required | Description |
|---|---|---|
email_type | yes | E1–E8 (email type from artifacts registry) |
to | yes | Recipient email(s) |
subject | yes | Email subject (already filled by caller) |
body_md | yes | Email body in Markdown (already rendered by caller) |
autonomy_level | yes | 1 / 2 / 3 |
attachments | no | File paths (.md, .xlsx) |
convert_to_docx | no | Convert .md attachments to .docx. Default: false |
cc_pm | no | PM email for Level 2 (if absent — read from project-state.md) |
| Result | Path | Condition |
|---|---|---|
| Email sent via Gmail | — (external) | Level 1/2, Gmail available; Level 3 confirmed |
drafts/email-draft-{type}-{YYYY-MM-DD}.md | drafts/ | Level 3 pending; Gmail unavailable |
Log entry in logs/log.md | logs/ | Always |
If called directly by a user (not as part of a skill chain): Detection: input is natural language without structured parameters — at least one of email_type, to, subject, body_md, autonomy_level is absent. Respond: "send-email is an internal service skill activated automatically during email delivery. To send a project email, trigger the relevant skill (e.g., coordinate-executors for reminders, generate-approval-letter for approvals)."
Caller contract (for calling skills): body_md MUST be fully rendered Markdown text — not a file path, template variable, or reference. The calling skill is responsible for loading its own template from templates/, populating all placeholders, and passing the result as a string. send-email has no templates/ folder of its own.
email_type, to, subject, body_md, autonomy_level.email_type is unknown or outside E1–E8 → default to autonomy level 3.project-state.md: get pm_email, project_name, language.If attachments is set AND convert_to_docx = true:
For each file (when converting):
.md files → convert via Cowork docx skill → produce .docx (same filename)..xlsx files → use as-is..md, notify PM.| Level | Email Types | Action |
|---|---|---|
| 1 — auto | E6, E7 | Send immediately, no preview |
| 2 — CC PM | E4, E5 | Add PM to CC, send immediately |
| 3 — confirm | E1, E2, E3, E8 | Show draft, wait for PM approval |
Level 3 flow:
drafts/email-draft-{email_type}-{YYYY-MM-DD}.md. Draft ready ({email_type}):
— To: {to}
— Subject: {subject}
— Attachments: {list or "none"}
[body preview: first 5 lines or full if < 15 lines]
Confirm: type "send" / "отправить" — or provide edits."send", "отправить", "confirm", "подтвердить" → proceed to Step 5."cancel", "отмена" → log "cancelled by PM", end skill.Primary path (Gmail available):
Call Gmail MCP:
to: recipient list from to parametersubject: from subject parameterbody: body_md contentcc: PM email (Level 2 only) or emptyattachments: converted files (if any)On success → proceed to Step 6.
Fallback (Gmail unavailable or MCP error):
drafts/email-draft-{email_type}-{YYYY-MM-DD}.md(for levels 1/2 this is the first time the draft is created; for level 3 it is overwritten). Use format from the Email Type Registry section: header (To, Subject, CC, Attachments) + body + attachment paths.
# Email Draft: {email_type}
Date: {YYYY-MM-DD}
To: {to}
Subject: {subject}
CC: {cc or "—"}
Attachments: {list or "—"}
---
{body_md}drafts/email-draft-{email_type}-{YYYY-MM-DD}.md. Please send manually."Write to logs/log.md:
{DATE}: send-email — sent {email_type} → {to} (level {N}){DATE}: send-email — fallback, draft saved drafts/email-draft-{type}-{DATE}.md{DATE}: send-email — cancelled by PM, {email_type} not sent| Type | Purpose | Level | Convert to docx |
|---|---|---|---|
| E1 | Client questionnaire | 3 | yes |
| E2 | Team lessons questionnaire | 2 | no (.md) |
| E3 | Document approval request | 3 | yes |
| E4 | Deadline deviation alert | 2 | yes |
| E5 | Stream sync deviation alert | 2 | yes |
| E6 | Deadline reminder | 1 | no (no attachment) |
| E7 | Weekly status report | 1 | yes |
| E8 | Meeting status distribution | 3 | yes |
project-state.md — updated by calling skilldrafts/~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.