feat: move version from top-level SKILL.md frontmatter to metadata and track CLI version (#601)
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@googleworkspace/cli": patch
|
||||
---
|
||||
|
||||
Move version from top-level SKILL.md frontmatter to metadata and track CLI version
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Syncs the version from package.json into Cargo.toml and updates Cargo.lock.
|
||||
# Syncs the version from package.json into Cargo.toml, updates Cargo.lock, and regenerates skills.
|
||||
# Used by changesets/action as a custom version command.
|
||||
set -euo pipefail
|
||||
|
||||
@@ -26,5 +26,8 @@ if command -v nix > /dev/null 2>&1; then
|
||||
nix flake lock --update-input nixpkgs
|
||||
fi
|
||||
|
||||
# Regenerate skills so metadata.version tracks the CLI version
|
||||
cargo run -- generate-skills --output-dir skills
|
||||
|
||||
# Stage the changed files so changesets/action commits them
|
||||
git add Cargo.toml Cargo.lock flake.nix flake.lock
|
||||
git add Cargo.toml Cargo.lock flake.nix flake.lock skills/
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-admin-reports
|
||||
version: 1.0.0
|
||||
description: "Google Workspace Admin SDK: Audit logs and usage reports."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-calendar-agenda
|
||||
version: 1.0.0
|
||||
description: "Google Calendar: Show upcoming events across all calendars."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-calendar-insert
|
||||
version: 1.0.0
|
||||
description: "Google Calendar: Create a new event."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-calendar
|
||||
version: 1.0.0
|
||||
description: "Google Calendar: Manage calendars and events."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-chat-send
|
||||
version: 1.0.0
|
||||
description: "Google Chat: Send a message to a space."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-chat
|
||||
version: 1.0.0
|
||||
description: "Google Chat: Manage Chat spaces and messages."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-classroom
|
||||
version: 1.0.0
|
||||
description: "Google Classroom: Manage classes, rosters, and coursework."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-docs-write
|
||||
version: 1.0.0
|
||||
description: "Google Docs: Append text to a document."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-docs
|
||||
version: 1.0.0
|
||||
description: "Read and write Google Docs."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-drive-upload
|
||||
version: 1.0.0
|
||||
description: "Google Drive: Upload a file with automatic metadata."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-drive
|
||||
version: 1.0.0
|
||||
description: "Google Drive: Manage files, folders, and shared drives."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-events-renew
|
||||
version: 1.0.0
|
||||
description: "Google Workspace Events: Renew/reactivate Workspace Events subscriptions."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-events-subscribe
|
||||
version: 1.0.0
|
||||
description: "Google Workspace Events: Subscribe to Workspace events and stream them as NDJSON."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-events
|
||||
version: 1.0.0
|
||||
description: "Subscribe to Google Workspace events."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-forms
|
||||
version: 1.0.0
|
||||
description: "Read and write Google Forms."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-forward
|
||||
version: 1.0.0
|
||||
description: "Gmail: Forward a message to new recipients."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-read
|
||||
version: 1.0.0
|
||||
description: "Gmail: Read a message and extract its body or headers."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-reply-all
|
||||
version: 1.0.0
|
||||
description: "Gmail: Reply-all to a message (handles threading automatically)."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-reply
|
||||
version: 1.0.0
|
||||
description: "Gmail: Reply to a message (handles threading automatically)."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-send
|
||||
version: 1.0.0
|
||||
description: "Gmail: Send an email."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-triage
|
||||
version: 1.0.0
|
||||
description: "Gmail: Show unread inbox summary (sender, subject, date)."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail-watch
|
||||
version: 1.0.0
|
||||
description: "Gmail: Watch for new emails and stream them as NDJSON."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-gmail
|
||||
version: 1.0.0
|
||||
description: "Gmail: Send, read, and manage email."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-keep
|
||||
version: 1.0.0
|
||||
description: "Manage Google Keep notes."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-meet
|
||||
version: 1.0.0
|
||||
description: "Manage Google Meet conferences."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-modelarmor-create-template
|
||||
version: 1.0.0
|
||||
description: "Google Model Armor: Create a new Model Armor template."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "security"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-modelarmor-sanitize-prompt
|
||||
version: 1.0.0
|
||||
description: "Google Model Armor: Sanitize a user prompt through a Model Armor template."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "security"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-modelarmor-sanitize-response
|
||||
version: 1.0.0
|
||||
description: "Google Model Armor: Sanitize a model response through a Model Armor template."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "security"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-modelarmor
|
||||
version: 1.0.0
|
||||
description: "Google Model Armor: Filter user-generated content for safety."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-people
|
||||
version: 1.0.0
|
||||
description: "Google People: Manage contacts and profiles."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-shared
|
||||
version: 1.0.0
|
||||
description: "gws CLI: Shared patterns for authentication, global flags, and output formatting."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-sheets-append
|
||||
version: 1.0.0
|
||||
description: "Google Sheets: Append a row to a spreadsheet."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-sheets-read
|
||||
version: 1.0.0
|
||||
description: "Google Sheets: Read values from a spreadsheet."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-sheets
|
||||
version: 1.0.0
|
||||
description: "Google Sheets: Read and write spreadsheets."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-slides
|
||||
version: 1.0.0
|
||||
description: "Google Slides: Read and write presentations."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-tasks
|
||||
version: 1.0.0
|
||||
description: "Google Tasks: Manage task lists and tasks."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-workflow-email-to-task
|
||||
version: 1.0.0
|
||||
description: "Google Workflow: Convert a Gmail message into a Google Tasks entry."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-workflow-file-announce
|
||||
version: 1.0.0
|
||||
description: "Google Workflow: Announce a Drive file in a Chat space."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-workflow-meeting-prep
|
||||
version: 1.0.0
|
||||
description: "Google Workflow: Prepare for your next meeting: agenda, attendees, and linked docs."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-workflow-standup-report
|
||||
version: 1.0.0
|
||||
description: "Google Workflow: Today's meetings + open tasks as a standup summary."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-workflow-weekly-digest
|
||||
version: 1.0.0
|
||||
description: "Google Workflow: Weekly summary: this week's meetings + unread email count."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: gws-workflow
|
||||
version: 1.0.0
|
||||
description: "Google Workflow: Cross-service productivity workflows."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-content-creator
|
||||
version: 1.0.0
|
||||
description: "Create, organize, and distribute content across Workspace."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-customer-support
|
||||
version: 1.0.0
|
||||
description: "Manage customer support — track tickets, respond, escalate issues."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-event-coordinator
|
||||
version: 1.0.0
|
||||
description: "Plan and manage events — scheduling, invitations, and logistics."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-exec-assistant
|
||||
version: 1.0.0
|
||||
description: "Manage an executive's schedule, inbox, and communications."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-hr-coordinator
|
||||
version: 1.0.0
|
||||
description: "Handle HR workflows — onboarding, announcements, and employee comms."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-it-admin
|
||||
version: 1.0.0
|
||||
description: "Administer IT — monitor security and configure Workspace."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-project-manager
|
||||
version: 1.0.0
|
||||
description: "Coordinate projects — track tasks, schedule meetings, and share docs."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-researcher
|
||||
version: 1.0.0
|
||||
description: "Organize research — manage references, notes, and collaboration."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-sales-ops
|
||||
version: 1.0.0
|
||||
description: "Manage sales workflows — track deals, schedule calls, client comms."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: persona-team-lead
|
||||
version: 1.0.0
|
||||
description: "Lead a team — run standups, coordinate tasks, and communicate."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-backup-sheet-as-csv
|
||||
version: 1.0.0
|
||||
description: "Export a Google Sheets spreadsheet as a CSV file for local backup or processing."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-batch-invite-to-event
|
||||
version: 1.0.0
|
||||
description: "Add a list of attendees to an existing Google Calendar event and send notifications."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-block-focus-time
|
||||
version: 1.0.0
|
||||
description: "Create recurring focus time blocks on Google Calendar to protect deep work hours."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-bulk-download-folder
|
||||
version: 1.0.0
|
||||
description: "List and download all files from a Google Drive folder."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-collect-form-responses
|
||||
version: 1.0.0
|
||||
description: "Retrieve and review responses from a Google Form."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-compare-sheet-tabs
|
||||
version: 1.0.0
|
||||
description: "Read data from two tabs in a Google Sheet to compare and identify differences."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-copy-sheet-for-new-month
|
||||
version: 1.0.0
|
||||
description: "Duplicate a Google Sheets template tab for a new month of tracking."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-classroom-course
|
||||
version: 1.0.0
|
||||
description: "Create a Google Classroom course and invite students."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "education"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-doc-from-template
|
||||
version: 1.0.0
|
||||
description: "Copy a Google Docs template, fill in content, and share with collaborators."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-events-from-sheet
|
||||
version: 1.0.0
|
||||
description: "Read event data from a Google Sheets spreadsheet and create Google Calendar entries for each row."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-expense-tracker
|
||||
version: 1.0.0
|
||||
description: "Set up a Google Sheets spreadsheet for tracking expenses with headers and initial entries."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-feedback-form
|
||||
version: 1.0.0
|
||||
description: "Create a Google Form for feedback and share it via Gmail."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-gmail-filter
|
||||
version: 1.0.0
|
||||
description: "Create a Gmail filter to automatically label, star, or categorize incoming messages."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-meet-space
|
||||
version: 1.0.0
|
||||
description: "Create a Google Meet meeting space and share the join link."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-presentation
|
||||
version: 1.0.0
|
||||
description: "Create a new Google Slides presentation and add initial slides."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-shared-drive
|
||||
version: 1.0.0
|
||||
description: "Create a Google Shared Drive and add members with appropriate roles."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-task-list
|
||||
version: 1.0.0
|
||||
description: "Set up a new Google Tasks list with initial tasks."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-create-vacation-responder
|
||||
version: 1.0.0
|
||||
description: "Enable a Gmail out-of-office auto-reply with a custom message and date range."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-draft-email-from-doc
|
||||
version: 1.0.0
|
||||
description: "Read content from a Google Doc and use it as the body of a Gmail message."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-email-drive-link
|
||||
version: 1.0.0
|
||||
description: "Share a Google Drive file and email the link with a message to recipients."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-find-free-time
|
||||
version: 1.0.0
|
||||
description: "Query Google Calendar free/busy status for multiple users to find a meeting slot."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-find-large-files
|
||||
version: 1.0.0
|
||||
description: "Identify large Google Drive files consuming storage quota."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-forward-labeled-emails
|
||||
version: 1.0.0
|
||||
description: "Find Gmail messages with a specific label and forward them to another address."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-generate-report-from-sheet
|
||||
version: 1.0.0
|
||||
description: "Read data from a Google Sheet and create a formatted Google Docs report."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-label-and-archive-emails
|
||||
version: 1.0.0
|
||||
description: "Apply Gmail labels to matching messages and archive them to keep your inbox clean."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-log-deal-update
|
||||
version: 1.0.0
|
||||
description: "Append a deal status update to a Google Sheets sales tracking spreadsheet."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "sales"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-organize-drive-folder
|
||||
version: 1.0.0
|
||||
description: "Create a Google Drive folder structure and move files into the right locations."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-plan-weekly-schedule
|
||||
version: 1.0.0
|
||||
description: "Review your Google Calendar week, identify gaps, and add events to fill them."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-post-mortem-setup
|
||||
version: 1.0.0
|
||||
description: "Create a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "engineering"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-reschedule-meeting
|
||||
version: 1.0.0
|
||||
description: "Move a Google Calendar event to a new time and automatically notify all attendees."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-review-meet-participants
|
||||
version: 1.0.0
|
||||
description: "Review who attended a Google Meet conference and for how long."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-review-overdue-tasks
|
||||
version: 1.0.0
|
||||
description: "Find Google Tasks that are past due and need attention."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-save-email-attachments
|
||||
version: 1.0.0
|
||||
description: "Find Gmail messages with attachments and save them to a Google Drive folder."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-save-email-to-doc
|
||||
version: 1.0.0
|
||||
description: "Save a Gmail message body into a Google Doc for archival or reference."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-schedule-recurring-event
|
||||
version: 1.0.0
|
||||
description: "Create a recurring Google Calendar event with attendees."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "scheduling"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-send-team-announcement
|
||||
version: 1.0.0
|
||||
description: "Send a team announcement via both Gmail and a Google Chat space."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "communication"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-share-doc-and-notify
|
||||
version: 1.0.0
|
||||
description: "Share a Google Docs document with edit access and email collaborators the link."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-share-event-materials
|
||||
version: 1.0.0
|
||||
description: "Share Google Drive files with all attendees of a Google Calendar event."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-share-folder-with-team
|
||||
version: 1.0.0
|
||||
description: "Share a Google Drive folder and all its contents with a list of collaborators."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-sync-contacts-to-sheet
|
||||
version: 1.0.0
|
||||
description: "Export Google Contacts directory to a Google Sheets spreadsheet."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "productivity"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: recipe-watch-drive-changes
|
||||
version: 1.0.0
|
||||
description: "Subscribe to change notifications on a Google Drive file or folder."
|
||||
metadata:
|
||||
version: 0.19.0
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "engineering"
|
||||
|
||||
+32
-7
@@ -385,9 +385,9 @@ fn render_service_skill(
|
||||
out.push_str(&format!(
|
||||
r#"---
|
||||
name: gws-{alias}
|
||||
version: 1.0.0
|
||||
description: "{trigger_desc}"
|
||||
metadata:
|
||||
version: {version}
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
@@ -397,6 +397,7 @@ metadata:
|
||||
---
|
||||
|
||||
"#,
|
||||
version = env!("CARGO_PKG_VERSION"),
|
||||
));
|
||||
|
||||
// Title
|
||||
@@ -522,9 +523,9 @@ fn render_helper_skill(
|
||||
out.push_str(&format!(
|
||||
r#"---
|
||||
name: gws-{alias}-{short}
|
||||
version: 1.0.0
|
||||
description: "{trigger_desc}"
|
||||
metadata:
|
||||
version: {version}
|
||||
openclaw:
|
||||
category: "{category}"
|
||||
requires:
|
||||
@@ -534,6 +535,7 @@ metadata:
|
||||
---
|
||||
|
||||
"#,
|
||||
version = env!("CARGO_PKG_VERSION"),
|
||||
));
|
||||
|
||||
// Title
|
||||
@@ -670,9 +672,9 @@ metadata:
|
||||
fn generate_shared_skill(base: &Path) -> Result<(), GwsError> {
|
||||
let content = r#"---
|
||||
name: gws-shared
|
||||
version: 1.0.0
|
||||
description: "gws CLI: Shared patterns for authentication, global flags, and output formatting."
|
||||
metadata:
|
||||
version: __VERSION__
|
||||
openclaw:
|
||||
category: "productivity"
|
||||
requires:
|
||||
@@ -750,9 +752,10 @@ gws <service> <resource> [sub-resource] <method> [flags]
|
||||
- For bugs or feature requests, direct users to open issues in the repository: `https://github.com/googleworkspace/cli/issues`
|
||||
- Before creating a new issue, **always** search existing issues and feature requests first
|
||||
- If a matching issue already exists, add context by commenting on the existing thread instead of creating a duplicate
|
||||
"#;
|
||||
"#
|
||||
.replace("__VERSION__", env!("CARGO_PKG_VERSION"));
|
||||
|
||||
write_skill(base, "gws-shared", content)
|
||||
write_skill(base, "gws-shared", &content)
|
||||
}
|
||||
|
||||
fn render_persona_skill(persona: &PersonaEntry) -> String {
|
||||
@@ -771,9 +774,9 @@ fn render_persona_skill(persona: &PersonaEntry) -> String {
|
||||
out.push_str(&format!(
|
||||
r#"---
|
||||
name: persona-{name}
|
||||
version: 1.0.0
|
||||
description: "{trigger_desc}"
|
||||
metadata:
|
||||
version: {version}
|
||||
openclaw:
|
||||
category: "persona"
|
||||
requires:
|
||||
@@ -804,6 +807,7 @@ metadata:
|
||||
.map(|s| format!("`gws-{s}`"))
|
||||
.collect::<Vec<_>>()
|
||||
.join(", "),
|
||||
version = env!("CARGO_PKG_VERSION"),
|
||||
workflows = persona
|
||||
.workflows
|
||||
.iter()
|
||||
@@ -843,9 +847,9 @@ fn render_recipe_skill(recipe: &RecipeEntry) -> String {
|
||||
out.push_str(&format!(
|
||||
r#"---
|
||||
name: recipe-{name}
|
||||
version: 1.0.0
|
||||
description: "{trigger_desc}"
|
||||
metadata:
|
||||
version: {version}
|
||||
openclaw:
|
||||
category: "recipe"
|
||||
domain: "{category}"
|
||||
@@ -867,6 +871,7 @@ metadata:
|
||||
description = recipe.description,
|
||||
title = recipe.title,
|
||||
category = recipe.category,
|
||||
version = env!("CARGO_PKG_VERSION"),
|
||||
skills = required_skills,
|
||||
skills_list = recipe
|
||||
.services
|
||||
@@ -1260,6 +1265,10 @@ mod tests {
|
||||
);
|
||||
let fm = extract_frontmatter(&md);
|
||||
assert_block_style_sequences(fm);
|
||||
assert!(
|
||||
fm.contains(&format!("version: {}", env!("CARGO_PKG_VERSION"))),
|
||||
"frontmatter should contain version matching CLI version"
|
||||
);
|
||||
assert!(
|
||||
fm.contains("bins:\n"),
|
||||
"frontmatter should contain 'bins:' on its own line"
|
||||
@@ -1277,6 +1286,10 @@ mod tests {
|
||||
let content = std::fs::read_to_string(tmp.path().join("gws-shared/SKILL.md")).unwrap();
|
||||
let fm = extract_frontmatter(&content);
|
||||
assert_block_style_sequences(fm);
|
||||
assert!(
|
||||
fm.contains(&format!("version: {}", env!("CARGO_PKG_VERSION"))),
|
||||
"shared skill frontmatter should contain version matching CLI version"
|
||||
);
|
||||
assert!(
|
||||
fm.contains("- gws"),
|
||||
"shared skill frontmatter should contain '- gws'"
|
||||
@@ -1297,6 +1310,10 @@ mod tests {
|
||||
let md = render_persona_skill(&persona);
|
||||
let fm = extract_frontmatter(&md);
|
||||
assert_block_style_sequences(fm);
|
||||
assert!(
|
||||
fm.contains(&format!("version: {}", env!("CARGO_PKG_VERSION"))),
|
||||
"persona frontmatter should contain version matching CLI version"
|
||||
);
|
||||
assert!(
|
||||
fm.contains("- gws"),
|
||||
"persona frontmatter should contain '- gws'"
|
||||
@@ -1325,6 +1342,10 @@ mod tests {
|
||||
let md = render_recipe_skill(&recipe);
|
||||
let fm = extract_frontmatter(&md);
|
||||
assert_block_style_sequences(fm);
|
||||
assert!(
|
||||
fm.contains(&format!("version: {}", env!("CARGO_PKG_VERSION"))),
|
||||
"recipe frontmatter should contain version matching CLI version"
|
||||
);
|
||||
assert!(
|
||||
fm.contains("- gws"),
|
||||
"recipe frontmatter should contain '- gws'"
|
||||
@@ -1369,6 +1390,10 @@ mod tests {
|
||||
);
|
||||
let fm = extract_frontmatter(&md);
|
||||
assert_block_style_sequences(fm);
|
||||
assert!(
|
||||
fm.contains(&format!("version: {}", env!("CARGO_PKG_VERSION"))),
|
||||
"helper frontmatter should contain version matching CLI version"
|
||||
);
|
||||
assert!(
|
||||
fm.contains("bins:\n"),
|
||||
"frontmatter should contain 'bins:' on its own line"
|
||||
|
||||
Reference in New Issue
Block a user