diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 918bb39..a5ddd3b 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -32,6 +32,21 @@ "name": "ralph-loop", "source": "ralph-loop", "description": "Iterative self-referential AI loops using the Ralph Wiggum technique." + }, + { + "name": "gmail", + "source": "gmail", + "description": "Daily Gmail triage workflows with follow-up scheduling in Calendar." + }, + { + "name": "google-drive", + "source": "google-drive", + "description": "Publish Drive release artifacts with controlled sharing and Chat announcements." + }, + { + "name": "google-calendar", + "source": "google-calendar", + "description": "Build meeting briefs from Calendar events with related Gmail and Drive context." } ] } diff --git a/README.md b/README.md index 9aad033..11eee51 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | [Cursor Team Kit](cursor-team-kit/) | Developer Tools | Internal-style workflows for CI, code review, shipping, and testing | | [Create Plugin](create-plugin/) | Developer Tools | Meta workflows for creating Cursor plugins with scaffolding and submission checks | | [Ralph Loop](ralph-loop/) | Developer Tools | Iterative self-referential AI loops using the Ralph Wiggum technique | +| [Gmail](gmail/) | Productivity | Daily Gmail triage workflows with follow-up scheduling in Calendar | +| [Google Drive](google-drive/) | Productivity | Publish Drive release artifacts with controlled sharing and Chat announcements | +| [Google Calendar](google-calendar/) | Productivity | Build meeting briefs from Calendar events with related Gmail and Drive context | ## Repository structure diff --git a/gmail/.cursor-plugin/plugin.json b/gmail/.cursor-plugin/plugin.json new file mode 100644 index 0000000..dd0132a --- /dev/null +++ b/gmail/.cursor-plugin/plugin.json @@ -0,0 +1,30 @@ +{ + "name": "gmail", + "displayName": "Gmail", + "version": "1.0.0", + "description": "Daily inbox triage workflows for Gmail with optional follow-up scheduling in Calendar.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/cursor/plugins", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/avatar.png", + "keywords": [ + "google-workspace", + "gmail", + "triage", + "calendar", + "operations" + ], + "category": "productivity", + "tags": [ + "gmail", + "triage", + "email-ops" + ], + "skills": "./skills/", + "agents": "./agents/", + "mcpServers": "./mcp.json" +} diff --git a/gmail/LICENSE b/gmail/LICENSE new file mode 100644 index 0000000..ca2bba7 --- /dev/null +++ b/gmail/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/gmail/README.md b/gmail/README.md new file mode 100644 index 0000000..5aa6940 --- /dev/null +++ b/gmail/README.md @@ -0,0 +1,45 @@ +# Gmail + +Use-case specific plugin for daily Gmail inbox triage with optional Calendar follow-up scheduling. + +## Installation + +```bash +/add-plugin gmail +``` + +## What this plugin includes + +- A focused triage skill: `daily-inbox-triage` +- A dedicated operator agent: `inbox-operations-lead` +- Scoped MCP server config for Gmail + Calendar: `gws mcp -s gmail,calendar -w -e` + +## Setup + +1. Install Google Workspace CLI: + ```bash + npm install -g @googleworkspace/cli + ``` +2. Authenticate: + ```bash + gws auth setup + ``` +3. Ensure `gws` is on your `PATH`. + +Optional: add upstream API-specific skills: + +```bash +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-calendar +``` + +## Typical flow + +1. Ask the agent to run inbox triage for a specific window. +2. Review proposed label/archive decisions. +3. Confirm follow-up event creation for high-priority threads. +4. Receive a triage summary and unresolved items list. + +## License + +MIT diff --git a/gmail/agents/inbox-operations-lead.md b/gmail/agents/inbox-operations-lead.md new file mode 100644 index 0000000..709e831 --- /dev/null +++ b/gmail/agents/inbox-operations-lead.md @@ -0,0 +1,28 @@ +--- +name: inbox-operations-lead +description: Inbox triage specialist for Gmail operations and follow-up scheduling. Use when users need fast mailbox cleanup and action extraction. +model: fast +--- + +# Inbox operations lead + +Focused Gmail operations agent for high-volume triage and action capture. + +## Trigger + +Use for backlog cleanup, urgent-thread extraction, and converting actionable threads into calendar follow-ups. + +## Workflow + +1. Determine triage scope (time window, labels, senders, priorities). +2. Pull message candidates and inspect details in bounded batches. +3. Classify and apply label/archive decisions. +4. Create follow-up events for actionable items. +5. Return a concise action report with unresolved risks. + +## Output + +- Message counts by action +- Labels added/removed +- Follow-up events created +- Remaining manual decisions diff --git a/gmail/mcp.json b/gmail/mcp.json new file mode 100644 index 0000000..25fe229 --- /dev/null +++ b/gmail/mcp.json @@ -0,0 +1,14 @@ +{ + "mcpServers": { + "gmail": { + "command": "gws", + "args": [ + "mcp", + "-s", + "gmail,calendar", + "-w", + "-e" + ] + } + } +} diff --git a/gmail/skills/daily-inbox-triage/SKILL.md b/gmail/skills/daily-inbox-triage/SKILL.md new file mode 100644 index 0000000..d8b639d --- /dev/null +++ b/gmail/skills/daily-inbox-triage/SKILL.md @@ -0,0 +1,48 @@ +--- +name: daily-inbox-triage +description: Run a repeatable Gmail triage routine, then schedule follow-ups in Calendar for actionable threads. +--- + +# Daily inbox triage + +## Trigger + +Use when a user asks to clean up inbox backlog, prioritize urgent mail, and convert important threads into calendar actions. + +## Required inputs + +- Mailbox user ID (typically `me`) +- Time window (for example, last 24h or last 7d) +- Priority criteria (sender domains, keywords, existing labels) +- Optional follow-up window for scheduling (for example, next 2 business days) + +## Workflow + +1. Confirm authentication is available (`gws auth login` if needed). +2. List candidate messages with a bounded query and page size. +3. Fetch full message metadata for the shortlisted message IDs. +4. Classify messages into: archive, needs reply, delegate, or schedule follow-up. +5. Apply Gmail label updates in batches. +6. For schedule follow-up items, create short Calendar events with links back to the message threads. +7. Produce a compact triage summary with counts and the highest priority unresolved threads. + +## Tooling + +- Prefer `gws mcp -s gmail,calendar -w -e` tools when MCP is available. +- Use direct CLI commands only when MCP access is not configured. +- If additional API-specific methods are needed, install upstream skills: + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail` + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-calendar` + +## Guardrails + +- Never delete mail unless explicitly requested. +- Use narrow queries first; avoid full-mailbox scans by default. +- For label changes on more than 100 messages, confirm before applying. +- Include timezone when creating calendar follow-up events. + +## Output + +- Triage totals by action type +- List of created follow-up events +- Remaining high-priority threads needing user attention diff --git a/google-calendar/.cursor-plugin/plugin.json b/google-calendar/.cursor-plugin/plugin.json new file mode 100644 index 0000000..14e2275 --- /dev/null +++ b/google-calendar/.cursor-plugin/plugin.json @@ -0,0 +1,30 @@ +{ + "name": "google-calendar", + "displayName": "Google Calendar", + "version": "1.0.0", + "description": "Prepare meeting briefs from Calendar events using Drive and Gmail context.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/cursor/plugins", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/avatar.png", + "keywords": [ + "google-workspace", + "calendar", + "gmail", + "drive", + "meetings" + ], + "category": "productivity", + "tags": [ + "calendar", + "meeting-prep", + "briefing" + ], + "skills": "./skills/", + "agents": "./agents/", + "mcpServers": "./mcp.json" +} diff --git a/google-calendar/LICENSE b/google-calendar/LICENSE new file mode 100644 index 0000000..ca2bba7 --- /dev/null +++ b/google-calendar/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/google-calendar/README.md b/google-calendar/README.md new file mode 100644 index 0000000..a983d4e --- /dev/null +++ b/google-calendar/README.md @@ -0,0 +1,46 @@ +# Google Calendar + +Use-case specific plugin for preparing meeting briefs from Calendar events, related Gmail threads, and Drive docs. + +## Installation + +```bash +/add-plugin google-calendar +``` + +## What this plugin includes + +- A meeting-prep skill: `prepare-meeting-brief` +- A dedicated briefing agent: `meeting-briefing-pilot` +- Scoped MCP server config for Calendar + Drive + Gmail: `gws mcp -s calendar,drive,gmail -w -e` + +## Setup + +1. Install Google Workspace CLI: + ```bash + npm install -g @googleworkspace/cli + ``` +2. Authenticate: + ```bash + gws auth setup + ``` +3. Ensure `gws` is on your `PATH`. + +Optional upstream skills: + +```bash +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-calendar +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail +``` + +## Typical flow + +1. Select a meeting window and target calendar. +2. Build briefs for meetings that match selection criteria. +3. Review unresolved questions and prep actions. +4. Optionally save briefs to Drive. + +## License + +MIT diff --git a/google-calendar/agents/meeting-briefing-pilot.md b/google-calendar/agents/meeting-briefing-pilot.md new file mode 100644 index 0000000..8c189e8 --- /dev/null +++ b/google-calendar/agents/meeting-briefing-pilot.md @@ -0,0 +1,26 @@ +--- +name: meeting-briefing-pilot +description: Build high-signal meeting briefs by combining Calendar event data with Gmail and Drive context. +model: fast +--- + +# Meeting briefing pilot + +Meeting-prep specialist for synthesizing pre-read context from Google Workspace sources. + +## Trigger + +Use when users need prep briefs for upcoming internal or external meetings. + +## Workflow + +1. Gather meetings in scope. +2. Pull related email and document context. +3. Summarize into a practical brief with open decisions. +4. Save/share brief if requested. + +## Output + +- Brief per selected meeting +- Linked source artifacts +- Critical unknowns before meeting start diff --git a/google-calendar/mcp.json b/google-calendar/mcp.json new file mode 100644 index 0000000..92c5678 --- /dev/null +++ b/google-calendar/mcp.json @@ -0,0 +1,14 @@ +{ + "mcpServers": { + "google-calendar": { + "command": "gws", + "args": [ + "mcp", + "-s", + "calendar,drive,gmail", + "-w", + "-e" + ] + } + } +} diff --git a/google-calendar/skills/prepare-meeting-brief/SKILL.md b/google-calendar/skills/prepare-meeting-brief/SKILL.md new file mode 100644 index 0000000..e787bef --- /dev/null +++ b/google-calendar/skills/prepare-meeting-brief/SKILL.md @@ -0,0 +1,47 @@ +--- +name: prepare-meeting-brief +description: Generate an actionable meeting brief from upcoming Calendar events with relevant Gmail threads and Drive docs. +--- + +# Prepare meeting brief + +## Trigger + +Use when a user wants concise prep packets for upcoming meetings, including context, open questions, and linked artifacts. + +## Required inputs + +- Calendar ID and date window +- Meeting selection rules (all, by attendees, by title pattern, or by priority) +- Preferred brief format (short bullets or full structured brief) +- Optional destination for saved brief (Drive doc/folder) + +## Workflow + +1. Fetch upcoming Calendar events in the selected window. +2. For each selected event, gather linked artifacts from event description and attachments. +3. Search related Gmail threads by participants, subject, and recency. +4. Summarize context into sections: objective, decisions pending, risks, and prep checklist. +5. Optionally create/update a Drive document containing the brief. +6. Return a per-meeting summary with links and unresolved items. + +## Tooling + +- Prefer `gws mcp -s calendar,drive,gmail -w -e`. +- Optional upstream skills: + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-calendar` + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive` + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail` + +## Guardrails + +- Do not include sensitive email content beyond what is required for meeting prep. +- Respect attendee privacy; avoid sharing private threads across unrelated meetings. +- Keep summaries factual and reference source links for key claims. +- Confirm before writing briefs to shared folders. + +## Output + +- Meeting brief(s) with objective, context, and action items +- Source links (Calendar event, Gmail threads, Drive docs) +- Open questions requiring user input diff --git a/google-drive/.cursor-plugin/plugin.json b/google-drive/.cursor-plugin/plugin.json new file mode 100644 index 0000000..b19c381 --- /dev/null +++ b/google-drive/.cursor-plugin/plugin.json @@ -0,0 +1,30 @@ +{ + "name": "google-drive", + "displayName": "Google Drive", + "version": "1.0.0", + "description": "Publish release artifacts from Drive with controlled sharing and Chat notifications.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/cursor/plugins", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/avatar.png", + "keywords": [ + "google-workspace", + "drive", + "chat", + "release", + "publishing" + ], + "category": "productivity", + "tags": [ + "drive", + "release-management", + "chat-ops" + ], + "skills": "./skills/", + "agents": "./agents/", + "mcpServers": "./mcp.json" +} diff --git a/google-drive/LICENSE b/google-drive/LICENSE new file mode 100644 index 0000000..ca2bba7 --- /dev/null +++ b/google-drive/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/google-drive/README.md b/google-drive/README.md new file mode 100644 index 0000000..ec4fc56 --- /dev/null +++ b/google-drive/README.md @@ -0,0 +1,45 @@ +# Google Drive + +Use-case specific plugin for publishing release assets from Google Drive and announcing delivery in Google Chat. + +## Installation + +```bash +/add-plugin google-drive +``` + +## What this plugin includes + +- A release publishing skill: `publish-release-folder` +- A dedicated orchestration agent: `release-publisher-coordinator` +- Scoped MCP server config for Drive + Chat: `gws mcp -s drive,chat -w -e` + +## Setup + +1. Install Google Workspace CLI: + ```bash + npm install -g @googleworkspace/cli + ``` +2. Authenticate: + ```bash + gws auth setup + ``` +3. Ensure `gws` is on your `PATH`. + +Optional upstream skills: + +```bash +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive +npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-chat +``` + +## Typical flow + +1. Provide the release folder ID and release notes. +2. Specify sharing targets and approval for permission scope. +3. Publish and verify links. +4. Send a Chat release announcement. + +## License + +MIT diff --git a/google-drive/agents/release-publisher-coordinator.md b/google-drive/agents/release-publisher-coordinator.md new file mode 100644 index 0000000..0a53eae --- /dev/null +++ b/google-drive/agents/release-publisher-coordinator.md @@ -0,0 +1,28 @@ +--- +name: release-publisher-coordinator +description: Coordinate Drive release publishing and Chat notifications with explicit permission controls. +model: fast +--- + +# Release publisher coordinator + +Specialized agent for Drive-based release operations with Chat distribution. + +## Trigger + +Use when publishing versioned artifacts, updating access controls, and announcing releases to a Chat space. + +## Workflow + +1. Validate release folder contents. +2. Normalize share targets and permission scope. +3. Apply permission updates safely. +4. Publish a formatted Chat announcement with key links. +5. Return a release audit summary. + +## Output + +- Asset and folder links +- Permission diffs +- Chat posting result +- Follow-up actions if any failures occurred diff --git a/google-drive/mcp.json b/google-drive/mcp.json new file mode 100644 index 0000000..d66a4ee --- /dev/null +++ b/google-drive/mcp.json @@ -0,0 +1,14 @@ +{ + "mcpServers": { + "google-drive": { + "command": "gws", + "args": [ + "mcp", + "-s", + "drive,chat", + "-w", + "-e" + ] + } + } +} diff --git a/google-drive/skills/publish-release-folder/SKILL.md b/google-drive/skills/publish-release-folder/SKILL.md new file mode 100644 index 0000000..1d3641e --- /dev/null +++ b/google-drive/skills/publish-release-folder/SKILL.md @@ -0,0 +1,48 @@ +--- +name: publish-release-folder +description: Package and publish a Drive release folder, apply sharing policies, and send a Chat announcement. +--- + +# Publish release folder + +## Trigger + +Use when a team needs to ship a release bundle stored in Drive and announce it in Google Chat. + +## Required inputs + +- Drive folder ID containing release assets +- Target audience (specific users/groups, domain, or public) +- Chat space ID for announcement +- Release version string and summary notes + +## Workflow + +1. Verify `gws` authentication and Drive/Chat API availability. +2. Enumerate release files in the target folder and validate required assets. +3. Create or update a release index document (if requested) with canonical links. +4. Apply sharing permissions in the requested order (least privilege first). +5. Build a concise release announcement with links and key checksums/metadata. +6. Post the announcement to the target Chat space. +7. Return a release report with file list, permission outcomes, and message link. + +## Tooling + +- Prefer `gws mcp -s drive,chat -w -e`. +- Use `--dry-run` for permission-changing operations when uncertainty exists. +- Optional upstream skills: + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive` + - `npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-chat` + +## Guardrails + +- Never widen file/folder visibility beyond explicit user intent. +- Confirm before applying domain-wide or public sharing. +- Preserve existing owner/editor permissions unless instructed otherwise. +- Validate that announcement links are accessible to the intended audience. + +## Output + +- Published asset inventory with Drive links +- Permission change summary +- Chat announcement status and message reference