Skip to content

Commit b0d0b95

Browse files
Justin Poehneltjpoehnelt-bot
andauthored
feat: skills expansion (npm#18)
* wip * feat: replace admin recipes with 50 consumer-focused recipes - Remove all admin/security/IT recipes (offboard-user, audit-user-login, etc.) - Remove enterprise-only recipes (initiate-litigation-hold) - Replace dangerous recipes (setup-email-forwarding -> create-gmail-filter) - Remove recipes overlapping with gws-workflow-* helpers - Remove thin 2-step recipes better served as helpers - Add 50 curated consumer recipes for Gmail, Drive, Docs, Calendar, Sheets - Update README: link to docs/skills.md, update skill count to 100+ - Fix clippy needless_borrow warnings in generate_skills.rs - Fix lefthook.yml: run fmt/clippy sequentially (parallel causes races) --------- Co-authored-by: jpoehnelt-bot <jpoehnelt-bot@users.noreply.github.com>
1 parent 6286884 commit b0d0b95

121 files changed

Lines changed: 4111 additions & 60 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/consumer-recipes.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
"@googleworkspace/cli": minor
3+
---
4+
5+
Add workflow helpers, personas, and 50 consumer-focused recipes
6+
7+
- Add `gws workflow` subcommand with 5 built-in helpers: `+standup-report`, `+meeting-prep`, `+email-to-task`, `+weekly-digest`, `+file-announce`
8+
- Add 10 agent personas (exec-assistant, project-manager, sales-ops, etc.) with curated skill sets
9+
- Add `docs/skills.md` skills index and `registry/recipes.yaml` with 50 multi-step recipes for Gmail, Drive, Docs, Calendar, and Sheets
10+
- Update README with skills index link and accurate skill count
11+
- Fix lefthook pre-commit to run fmt and clippy sequentially

Cargo.lock

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ categories = ["command-line-utilities", "web-programming"]
2929
name = "gws"
3030
path = "src/main.rs"
3131

32+
33+
3234
[dependencies]
3335
aes-gcm = "0.10"
3436
anyhow = "1"
@@ -52,6 +54,7 @@ crossterm = "0.29.0"
5254
chrono = "0.4.44"
5355
keyring = "3.6.3"
5456
async-trait = "0.1.89"
57+
serde_yaml = "0.9.34"
5558

5659

5760
# The profile that 'cargo dist' will build with

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ Environment variables can also live in a `.env` file.
148148

149149
## AI Agent Skills
150150

151-
The repo ships 40+ [Agent Skills](https://github.com/vercel-labs/agent-skills) (`SKILL.md` files) — one for every supported API, plus higher-level helpers for common workflows like sending email, triaging a Gmail inbox, or subscribing to calendar events.
151+
The repo ships 100+ Agent Skills (`SKILL.md` files) — one for every supported API, plus higher-level helpers for common workflows and 50 curated recipes for Gmail, Drive, Docs, Calendar, and Sheets. See the full [Skills Index](docs/skills.md) for the complete list.
152152

153153
```bash
154154
# Install all skills at once

docs/skills.md

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Skills Index
2+
3+
> Auto-generated by `gws generate-skills`. Do not edit manually.
4+
5+
## Services
6+
7+
Core Google Workspace API skills.
8+
9+
| Skill | Description |
10+
|-------|-------------|
11+
| [gws-shared](../skills/gws-shared/SKILL.md) | gws CLI: Shared patterns for authentication, global flags, and output formatting. |
12+
| [gws-drive](../skills/gws-drive/SKILL.md) | Google Drive: Manage files, folders, and shared drives. |
13+
| [gws-sheets](../skills/gws-sheets/SKILL.md) | Google Sheets: Read and write spreadsheets. |
14+
| [gws-gmail](../skills/gws-gmail/SKILL.md) | Gmail: Send, read, and manage email. |
15+
| [gws-calendar](../skills/gws-calendar/SKILL.md) | Google Calendar: Manage calendars and events. |
16+
| [gws-admin](../skills/gws-admin/SKILL.md) | Google Workspace Admin SDK: Manage users, groups, and devices. |
17+
| [gws-admin-reports](../skills/gws-admin-reports/SKILL.md) | Google Workspace Admin SDK: Audit logs and usage reports. |
18+
| [gws-docs](../skills/gws-docs/SKILL.md) | Read and write Google Docs. |
19+
| [gws-slides](../skills/gws-slides/SKILL.md) | Google Slides: Read and write presentations. |
20+
| [gws-tasks](../skills/gws-tasks/SKILL.md) | Google Tasks: Manage task lists and tasks. |
21+
| [gws-people](../skills/gws-people/SKILL.md) | Google People: Manage contacts and profiles. |
22+
| [gws-chat](../skills/gws-chat/SKILL.md) | Google Chat: Manage Chat spaces and messages. |
23+
| [gws-vault](../skills/gws-vault/SKILL.md) | Google Vault: Manage eDiscovery holds and exports. |
24+
| [gws-groupssettings](../skills/gws-groupssettings/SKILL.md) | Manage Google Groups settings. |
25+
| [gws-reseller](../skills/gws-reseller/SKILL.md) | Google Workspace Reseller: Manage Workspace subscriptions. |
26+
| [gws-licensing](../skills/gws-licensing/SKILL.md) | Google Workspace Enterprise License Manager: Manage product licenses. |
27+
| [gws-apps-script](../skills/gws-apps-script/SKILL.md) | Google Apps Script: Manage and execute Apps Script projects. |
28+
| [gws-classroom](../skills/gws-classroom/SKILL.md) | Google Classroom: Manage classes, rosters, and coursework. |
29+
| [gws-cloudidentity](../skills/gws-cloudidentity/SKILL.md) | Google Cloud Identity: Manage identity groups and memberships. |
30+
| [gws-alertcenter](../skills/gws-alertcenter/SKILL.md) | Google Workspace Alert Center: Manage Workspace security alerts. |
31+
| [gws-forms](../skills/gws-forms/SKILL.md) | Read and write Google Forms. |
32+
| [gws-keep](../skills/gws-keep/SKILL.md) | Manage Google Keep notes. |
33+
| [gws-meet](../skills/gws-meet/SKILL.md) | Manage Google Meet conferences. |
34+
| [gws-events](../skills/gws-events/SKILL.md) | Subscribe to Google Workspace events. |
35+
| [gws-modelarmor](../skills/gws-modelarmor/SKILL.md) | Google Model Armor: Filter user-generated content for safety. |
36+
| [gws-workflow](../skills/gws-workflow/SKILL.md) | Google Workflow: Cross-service productivity workflows. |
37+
38+
## Helpers
39+
40+
Shortcut commands for common operations.
41+
42+
| Skill | Description |
43+
|-------|-------------|
44+
| [gws-drive-upload](../skills/gws-drive-upload/SKILL.md) | Google Drive: Upload a file with automatic metadata. |
45+
| [gws-sheets-append](../skills/gws-sheets-append/SKILL.md) | Google Sheets: Append a row to a spreadsheet. |
46+
| [gws-sheets-read](../skills/gws-sheets-read/SKILL.md) | Google Sheets: Read values from a spreadsheet. |
47+
| [gws-gmail-send](../skills/gws-gmail-send/SKILL.md) | Gmail: Send an email. |
48+
| [gws-gmail-triage](../skills/gws-gmail-triage/SKILL.md) | Gmail: Show unread inbox summary (sender, subject, date). |
49+
| [gws-gmail-watch](../skills/gws-gmail-watch/SKILL.md) | Gmail: Watch for new emails and stream them as NDJSON. |
50+
| [gws-calendar-insert](../skills/gws-calendar-insert/SKILL.md) | Google Calendar: Create a new event. |
51+
| [gws-calendar-agenda](../skills/gws-calendar-agenda/SKILL.md) | Google Calendar: Show upcoming events across all calendars. |
52+
| [gws-docs-write](../skills/gws-docs-write/SKILL.md) | Google Docs: Append text to a document. |
53+
| [gws-chat-send](../skills/gws-chat-send/SKILL.md) | Google Chat: Send a message to a space. |
54+
| [gws-apps-script-push](../skills/gws-apps-script-push/SKILL.md) | Google Apps Script: Upload local files to an Apps Script project. |
55+
| [gws-events-subscribe](../skills/gws-events-subscribe/SKILL.md) | Google Workspace Events: Subscribe to Workspace events and stream them as NDJSON. |
56+
| [gws-events-renew](../skills/gws-events-renew/SKILL.md) | Google Workspace Events: Renew/reactivate Workspace Events subscriptions. |
57+
| [gws-modelarmor-sanitize-prompt](../skills/gws-modelarmor-sanitize-prompt/SKILL.md) | Google Model Armor: Sanitize a user prompt through a Model Armor template. |
58+
| [gws-modelarmor-sanitize-response](../skills/gws-modelarmor-sanitize-response/SKILL.md) | Google Model Armor: Sanitize a model response through a Model Armor template. |
59+
| [gws-modelarmor-create-template](../skills/gws-modelarmor-create-template/SKILL.md) | Google Model Armor: Create a new Model Armor template. |
60+
| [gws-workflow-standup-report](../skills/gws-workflow-standup-report/SKILL.md) | Google Workflow: Today's meetings + open tasks as a standup summary. |
61+
| [gws-workflow-meeting-prep](../skills/gws-workflow-meeting-prep/SKILL.md) | Google Workflow: Prepare for your next meeting: agenda, attendees, and linked docs. |
62+
| [gws-workflow-email-to-task](../skills/gws-workflow-email-to-task/SKILL.md) | Google Workflow: Convert a Gmail message into a Google Tasks entry. |
63+
| [gws-workflow-weekly-digest](../skills/gws-workflow-weekly-digest/SKILL.md) | Google Workflow: Weekly summary: this week's meetings + unread email count. |
64+
| [gws-workflow-file-announce](../skills/gws-workflow-file-announce/SKILL.md) | Google Workflow: Announce a Drive file in a Chat space. |
65+
66+
## Personas
67+
68+
Role-based skill bundles.
69+
70+
| Skill | Description |
71+
|-------|-------------|
72+
| [persona-exec-assistant](../skills/persona-exec-assistant/SKILL.md) | Manage an executive's schedule, inbox, and communications. |
73+
| [persona-project-manager](../skills/persona-project-manager/SKILL.md) | Coordinate projects — track tasks, schedule meetings, and share docs. |
74+
| [persona-hr-coordinator](../skills/persona-hr-coordinator/SKILL.md) | Handle HR workflows — onboarding, announcements, and employee comms. |
75+
| [persona-sales-ops](../skills/persona-sales-ops/SKILL.md) | Manage sales workflows — track deals, schedule calls, client comms. |
76+
| [persona-it-admin](../skills/persona-it-admin/SKILL.md) | Administer IT — manage users, monitor security, configure Workspace. |
77+
| [persona-content-creator](../skills/persona-content-creator/SKILL.md) | Create, organize, and distribute content across Workspace. |
78+
| [persona-customer-support](../skills/persona-customer-support/SKILL.md) | Manage customer support — track tickets, respond, escalate issues. |
79+
| [persona-event-coordinator](../skills/persona-event-coordinator/SKILL.md) | Plan and manage events — scheduling, invitations, and logistics. |
80+
| [persona-team-lead](../skills/persona-team-lead/SKILL.md) | Lead a team — run standups, coordinate tasks, and communicate. |
81+
| [persona-researcher](../skills/persona-researcher/SKILL.md) | Organize research — manage references, notes, and collaboration. |
82+
83+
## Recipes
84+
85+
Multi-step task sequences with real commands.
86+
87+
| Skill | Description |
88+
|-------|-------------|
89+
| [recipe-audit-external-sharing](../skills/recipe-audit-external-sharing/SKILL.md) | Find and review Google Drive files shared outside the organization. |
90+
| [recipe-label-and-archive-emails](../skills/recipe-label-and-archive-emails/SKILL.md) | Apply Gmail labels to matching messages and archive them to keep your inbox clean. |
91+
| [recipe-send-personalized-emails](../skills/recipe-send-personalized-emails/SKILL.md) | Read recipient data from Google Sheets and send personalized Gmail messages to each row. |
92+
| [recipe-draft-email-from-doc](../skills/recipe-draft-email-from-doc/SKILL.md) | Read content from a Google Doc and use it as the body of a Gmail message. |
93+
| [recipe-organize-drive-folder](../skills/recipe-organize-drive-folder/SKILL.md) | Create a Google Drive folder structure and move files into the right locations. |
94+
| [recipe-share-folder-with-team](../skills/recipe-share-folder-with-team/SKILL.md) | Share a Google Drive folder and all its contents with a list of collaborators. |
95+
| [recipe-email-drive-link](../skills/recipe-email-drive-link/SKILL.md) | Share a Google Drive file and email the link with a message to recipients. |
96+
| [recipe-create-doc-from-template](../skills/recipe-create-doc-from-template/SKILL.md) | Copy a Google Docs template, fill in content, and share with collaborators. |
97+
| [recipe-create-expense-tracker](../skills/recipe-create-expense-tracker/SKILL.md) | Set up a Google Sheets spreadsheet for tracking expenses with headers and initial entries. |
98+
| [recipe-copy-sheet-for-new-month](../skills/recipe-copy-sheet-for-new-month/SKILL.md) | Duplicate a Google Sheets template tab for a new month of tracking. |
99+
| [recipe-block-focus-time](../skills/recipe-block-focus-time/SKILL.md) | Create recurring focus time blocks on Google Calendar to protect deep work hours. |
100+
| [recipe-reschedule-meeting](../skills/recipe-reschedule-meeting/SKILL.md) | Move a Google Calendar event to a new time and automatically notify all attendees. |
101+
| [recipe-search-and-export-emails](../skills/recipe-search-and-export-emails/SKILL.md) | Find Gmail messages matching a query and export them for review. |
102+
| [recipe-create-gmail-filter](../skills/recipe-create-gmail-filter/SKILL.md) | Create a Gmail filter to automatically label, star, or categorize incoming messages. |
103+
| [recipe-cancel-and-notify](../skills/recipe-cancel-and-notify/SKILL.md) | Delete a Google Calendar event and send a cancellation email via Gmail. |
104+
| [recipe-schedule-recurring-event](../skills/recipe-schedule-recurring-event/SKILL.md) | Create a recurring Google Calendar event with attendees. |
105+
| [recipe-find-free-time](../skills/recipe-find-free-time/SKILL.md) | Query Google Calendar free/busy status for multiple users to find a meeting slot. |
106+
| [recipe-bulk-download-folder](../skills/recipe-bulk-download-folder/SKILL.md) | List and download all files from a Google Drive folder. |
107+
| [recipe-find-large-files](../skills/recipe-find-large-files/SKILL.md) | Identify large Google Drive files consuming storage quota. |
108+
| [recipe-create-shared-drive](../skills/recipe-create-shared-drive/SKILL.md) | Create a Google Shared Drive and add members with appropriate roles. |
109+
| [recipe-transfer-file-ownership](../skills/recipe-transfer-file-ownership/SKILL.md) | Transfer ownership of Google Drive files from one user to another. |
110+
| [recipe-log-deal-update](../skills/recipe-log-deal-update/SKILL.md) | Append a deal status update to a Google Sheets sales tracking spreadsheet. |
111+
| [recipe-collect-form-responses](../skills/recipe-collect-form-responses/SKILL.md) | Retrieve and review responses from a Google Form. |
112+
| [recipe-post-mortem-setup](../skills/recipe-post-mortem-setup/SKILL.md) | Create a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat. |
113+
| [recipe-create-task-list](../skills/recipe-create-task-list/SKILL.md) | Set up a new Google Tasks list with initial tasks. |
114+
| [recipe-review-overdue-tasks](../skills/recipe-review-overdue-tasks/SKILL.md) | Find Google Tasks that are past due and need attention. |
115+
| [recipe-deploy-apps-script](../skills/recipe-deploy-apps-script/SKILL.md) | Push local files to a Google Apps Script project. |
116+
| [recipe-watch-drive-changes](../skills/recipe-watch-drive-changes/SKILL.md) | Subscribe to change notifications on a Google Drive file or folder. |
117+
| [recipe-create-classroom-course](../skills/recipe-create-classroom-course/SKILL.md) | Create a Google Classroom course and invite students. |
118+
| [recipe-create-meet-space](../skills/recipe-create-meet-space/SKILL.md) | Create a Google Meet meeting space and share the join link. |
119+
| [recipe-review-meet-participants](../skills/recipe-review-meet-participants/SKILL.md) | Review who attended a Google Meet conference and for how long. |
120+
| [recipe-create-presentation](../skills/recipe-create-presentation/SKILL.md) | Create a new Google Slides presentation and add initial slides. |
121+
| [recipe-triage-security-alerts](../skills/recipe-triage-security-alerts/SKILL.md) | List and review Google Workspace security alerts from Alert Center. |
122+
| [recipe-save-email-attachments](../skills/recipe-save-email-attachments/SKILL.md) | Find Gmail messages with attachments and save them to a Google Drive folder. |
123+
| [recipe-send-team-announcement](../skills/recipe-send-team-announcement/SKILL.md) | Send a team announcement via both Gmail and a Google Chat space. |
124+
| [recipe-create-feedback-form](../skills/recipe-create-feedback-form/SKILL.md) | Create a Google Form for feedback and share it via Gmail. |
125+
| [recipe-sync-contacts-to-sheet](../skills/recipe-sync-contacts-to-sheet/SKILL.md) | Export Google Contacts directory to a Google Sheets spreadsheet. |
126+
| [recipe-share-event-materials](../skills/recipe-share-event-materials/SKILL.md) | Share Google Drive files with all attendees of a Google Calendar event. |
127+
| [recipe-create-vacation-responder](../skills/recipe-create-vacation-responder/SKILL.md) | Enable a Gmail out-of-office auto-reply with a custom message and date range. |
128+
| [recipe-create-events-from-sheet](../skills/recipe-create-events-from-sheet/SKILL.md) | Read event data from a Google Sheets spreadsheet and create Google Calendar entries for each row. |
129+
| [recipe-plan-weekly-schedule](../skills/recipe-plan-weekly-schedule/SKILL.md) | Review your Google Calendar week, identify gaps, and add events to fill them. |
130+
| [recipe-share-doc-and-notify](../skills/recipe-share-doc-and-notify/SKILL.md) | Share a Google Docs document with edit access and email collaborators the link. |
131+
| [recipe-backup-sheet-as-csv](../skills/recipe-backup-sheet-as-csv/SKILL.md) | Export a Google Sheets spreadsheet as a CSV file for local backup or processing. |
132+
| [recipe-save-email-to-doc](../skills/recipe-save-email-to-doc/SKILL.md) | Save a Gmail message body into a Google Doc for archival or reference. |
133+
| [recipe-batch-reply-to-emails](../skills/recipe-batch-reply-to-emails/SKILL.md) | Find Gmail messages matching a query and send a standard reply to each one. |
134+
| [recipe-batch-rename-files](../skills/recipe-batch-rename-files/SKILL.md) | Rename multiple Google Drive files matching a pattern to follow a consistent naming convention. |
135+
| [recipe-compare-sheet-tabs](../skills/recipe-compare-sheet-tabs/SKILL.md) | Read data from two tabs in a Google Sheet to compare and identify differences. |
136+
| [recipe-batch-invite-to-event](../skills/recipe-batch-invite-to-event/SKILL.md) | Add a list of attendees to an existing Google Calendar event and send notifications. |
137+
| [recipe-forward-labeled-emails](../skills/recipe-forward-labeled-emails/SKILL.md) | Find Gmail messages with a specific label and forward them to another address. |
138+
| [recipe-generate-report-from-sheet](../skills/recipe-generate-report-from-sheet/SKILL.md) | Read data from a Google Sheet and create a formatted Google Docs report. |
139+

lefthook.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
pre-commit:
2-
parallel: true
2+
parallel: false
33
commands:
44
fmt:
55
glob: "*.rs"

0 commit comments

Comments
 (0)