<< All versions
Skill v1.0.2
currentAutomated scan100/100quixiai/hexis/email-digest
+1 new, ~2 modified
──Details
PublishedAugust 11, 2026 at 09:52 AM
Content Hashsha256:60abb9e91b8e2c90...
Git SHAfdf24f317ad8
Bump Typepatch
──Files
Files (1 file, 3.6 KB)
SKILL.md3.6 KBactive
SKILL.md · 43 lines · 3.6 KB
version: "1.0.2" name: email-digest description: Digest and ingest emails into memory, surfacing important threads and action items category: communication requires: tools: [email_list, email_read, remember, recall, gmail_setup_status, queue_user_message] contexts: [heartbeat] bound_tools: [email_list, email_read, email_search, ingest_emails, gmail_setup_status, recall, remember, queue_user_message, email_send, email_send_sendgrid]
Email Digest Workflow
Process incoming emails into structured memories, extract action items, and surface threads that need attention.
When to Use
- During autonomous heartbeats to check for new mail since the last digest, but only when Gmail is connected and
integrations.gmail.heartbeat_digest_enabledis true or the active heartbeat task/goal carries explicit user authorization for this check - When the user asks "what's in my inbox" or "any important emails"
- When a goal depends on information that may have arrived via email
- When preparing a daily briefing that includes email highlights
Step-by-Step Methodology
- Check authorization: In heartbeat, only proceed if the runtime exposed this skill because the user granted autonomous Gmail digest access. If setup/status indicates the grant is missing, stop and queue a short request for the user to enable background email checks.
- Check recency: Use
recallto find when the last email digest ran. Avoid re-processing messages already ingested. - Check setup: Call
gmail_setup_status. If Gmail is not connected, record the missing setup clearly and stop; do not loop. - List new emails: Call
email_listwith a date filter to fetch unread or recent messages. Start with the inbox; expand to other labels only if the user has configured them. - Triage by sender and subject: Scan the list for high-signal indicators -- known contacts, reply chains the user is on, calendar invites, and keywords matching active goals.
- Read priority threads: Use
email_readon the top 5-10 most relevant messages. Do not read every email; batch processing wastes energy and context. - Extract action items: For each important email, identify: (a) what is being asked, (b) who is asking, (c) any deadline mentioned, (d) whether a reply is expected.
- Store findings: Respect
integrations.gmail.memory_policy. If it isforget, do not userememberoringest_emailsfor email-derived content. If it isask, queue a user-facing choice before storing. If it isremember, persist action items as episodic memories with high importance, tagged with the sender, thread ID, and any relevant goal. - Surface urgency: If an email requires a time-sensitive response, flag it in the heartbeat result so it can be raised to the user at next opportunity.
Quality Guidelines
- Never store raw email bodies as memories. Summarize and extract the salient points.
- Respect privacy: do not log email content to external services. All storage stays in the local Postgres brain.
- Google OAuth authorization is not the same as Hexis autonomy authorization. A connected Gmail account does not imply permission for background heartbeat reading.
- When multiple emails belong to the same thread, consolidate into a single memory rather than creating duplicates.
- If credentials are missing or expired, fail gracefully. If
gmail_setup_statussays Google sign-in is ready, queue a short user-facing request that they connect Gmail from chat or CLI; do not start or complete sign-in during heartbeat. - Prefer recalling existing contact memories to enrich email context (who is this person, what is the relationship).