steev/skills/proton-tools/SKILL.md
Svrnty 2491d48151 feat(steev): Wave 8 PAUSE-walk — apply Q4-Q10 + bte leak fix + proton-tools SKILL.md
Q4: confirm personal-scope discriminators (chat_facing, delegates_to=[ceo-planb], sovereign_only=false)
Q5: drop google-workspace cred — builtin manages own OAuth via Hermes hub (not credctl vault)
Q6: split proton-bridge-imap → proton-bridge-imap-user + proton-bridge-imap-pass (vault exact-match)
Q7: rename perplexity-api → perplexity (vault exact-match)
Q8: add 3 proton vault entries (account-email, account-password, mailbox-password)
Q9: install.sh F6 — MCP allowlist materialization; wires 3 proton MCPs, removes bte (hard-rule leak)
Q10: macOS-only externals annotated os_constraint:darwin; install.sh F7 emits INFO on non-Darwin

credbridge.sh: drop google-workspace case, rewrite proton-bridge to use 2 vault entries, rename perplexity case
Disclosure §7 rewritten with 6 credentials matching vault exact-name policy (DISCLOSURE-SCHEMA §4.5)
Disclosure §12 PAUSE table marked all 8 rows RESOLVED (rows 1-7 Wave 8, row 8 Wave 7)

Untracked skills/proton-tools/SKILL.md (90 lines, declared in manifest since Wave 4) — committed for clone-ability

Verified:
  hermes -p steev skills list → 6 enabled (matches disclosure.skills declaration)
  hermes -p steev mcp list → 3 entries (proton-calendar, proton-email, proton-contacts); bte removed
  F7 on Linux host correctly suppresses macOS-only externals

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:13:40 -04:00

4.5 KiB

name description metadata
proton-tools When Steev needs to access JP's Proton account — Calendar, Mail, or Contacts. Use this skill to discover which tool answers the user's question, and how to call it. Covers all 24 Proton MCP tools across the three cortex MCP servers (proton-calendar, proton-email, proton-contacts). Triggers: any request involving JP's calendar (events, meetings, availability), mail (inbox, send, reply, search, folders), or contacts (lookup, add, search). Drive is NOT in scope — defer Drive requests.
version hermes
1.0.0
requires_mcp_servers
proton-calendar
proton-email
proton-contacts

Proton Tools — Calendar + Mail + Contacts

Authoritative reference for the 24 tools exposed by three cortex MCP servers — proton-calendar (8 tools), proton-email (10 tools), proton-contacts (6 tools). Each MCP facade dials a long-running gRPC gate that holds the Proton session.

Hard rules

  • Drive is out of scope. If the user asks about Proton Drive files/folders, say so and defer — there is no drive_* tool. Roadmap: rclone-module MCP wrap.
  • Destructive tools require explicit confirmation. email_send, email_reply, email_forward, calendar_delete, contacts_delete. Never call these without quoting back the action + target + asking JP to confirm.
  • Date inputs are ISO 8601 (2026-05-23T14:00:00-04:00). Convert relative dates ("tomorrow", "next Tuesday") into ISO before tool call.
  • Pagination: email_list, calendar_events, contacts_list are paginated. Default page size is small (~20). Fetch additional pages only when the user asks for more.

When to use which tool

Calendar (8 tools)

User intent Tool
"What calendars do I have?" calendar_list
"What's on my calendar today/this week?" calendar_events with date range
"What's coming up?" "Next few meetings?" calendar_upcoming
"Find meetings about X" calendar_search
"Show me details of [event]" calendar_event_get
"Schedule a meeting with…" calendar_create (confirm first)
"Move my 3pm to 4pm" calendar_update
"Cancel my 3pm" calendar_delete (DESTRUCTIVE — confirm)

Mail (10 tools)

User intent Tool
"How many unread?" "What folders?" email_folders
"Show me my inbox" "Latest emails" email_list (folder=INBOX)
"Open that email" email_read by UID
"Search inbox for…" email_search
"Send an email to…" email_send (DESTRUCTIVE — draft + confirm)
"Reply to that" email_reply (DESTRUCTIVE — draft + confirm)
"Forward this to…" email_forward (DESTRUCTIVE — confirm)
"Archive that" email_archive
"Mark as read/unread" email_mark_read / email_mark_unread

Contacts (6 tools)

User intent Tool
"Who do I have in contacts?" contacts_list
"Look up [person]" contacts_search
"Pull up [person]'s details" contacts_get
"Add [person] to contacts" contacts_create
"Update [person]'s email/phone" contacts_update
"Remove [person]" contacts_delete (DESTRUCTIVE — confirm)

Daily briefing — tool order

When JP asks for the morning briefing, query in this order:

  1. calendar_upcoming (hours=24) → events today
  2. email_folders → unread counts
  3. email_list (folder=INBOX, limit=10) → recent inbox
  4. email_search (folder=INBOX, query="from:important-person OR is:flagged") → priorities

Don't dump raw output. Synthesize. Lead with what's actionable in JP's voice.

Search composition

For broad questions like "anything from [person] this week":

  • email_search (folder=INBOX, query="from:")
  • calendar_search (query="")
  • contacts_search (query="") Run in parallel. Merge results. Group by source.

Error handling

  • "WaitReady timeout" → proton connector still booting. Retry once after 2-3s. If still failing, say so + suggest JP check hermes mcp test proton.
  • 403 / scope error → proton session expired. Tool handler should re-auth automatically; if not, JP needs to re-run setup.
  • Network / 5xx → transient. Retry once. If persistent, report and stop.

What NOT to do

  • Don't paginate aggressively — fetch one page, summarize, ask if JP wants more.
  • Don't auto-send drafts. Even after JP says "send" once, re-quote subject + recipient on the next compose.
  • Don't synthesize calendar events from email content unless JP explicitly asks ("add this to my calendar").
  • Don't enumerate every contact when JP asks "who's [person]" — use search, not list.