Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/breadchaincoop/labor.fun/google-workspacenpx skills add BreadchainCoop/labor.fun --skill google-workspacegit clone --depth 1 https://github.com/BreadchainCoop/labor.funWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/breadchaincoop/labor.fun/google-workspace)<a href="https://agentmods.dev/skills/breadchaincoop/labor.fun/google-workspace"><img src="https://agentmods.dev/badge/skills/breadchaincoop/labor.fun/google-workspace.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00090 | $0.01448 |
| Opus 5 | $0.00045 | $0.00724 |
| Sonnet 5 | $0.00018 | $0.00290 |
| Haiku 4.5 | $0.00009 | $0.00145 |
Grade A, and why
google-workspace scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Google Workspace (gws MCP server)
The organization's Google Workspace is available through the bundled gws
MCP server — NOT a raw CLI. It runs in compact tool-mode: one tool per
service (mcp__gws__calendar, mcp__gws__gmail, mcp__gws__drive,
mcp__gws__docs, mcp__gws__sheets, mcp__gws__tasks) plus a
mcp__gws__gws_discover meta-tool for drilling into a service's exact
methods and fields. It acts as the org's Google Workspace service account.
Availability check
Run printenv GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE (Bash). If it prints a
path, Google Workspace is configured and the mcp__gws__* tools are loaded —
just call them. If it's empty, tell the user Google Workspace isn't set up on
this deployment (don't pretend to create things).
Tool shape
- Each service tool takes the target method (e.g.
events.insert,users.messages.send) plus that method's parameters: path/query params (calendarId,sendUpdates,eventId, …) and the request body (the resource you're creating/patching) as structured JSON. - Not sure of a method's name or fields? Call
mcp__gws__gws_discoverfirst (e.g. discovercalendar→events.insert) instead of guessing. - Responses are structured JSON — read ids/links (
id,htmlLink,documentId, …) directly from the response.
HARD RULES for calendar
- Dedicated calendar only. Read it with
printenv GOOGLE_WORKSPACE_CALENDAR_IDand pass it ascalendarId. Never useprimary— that's the service account's personal calendar. IfGOOGLE_WORKSPACE_CALENDAR_IDis empty, stop and tell the user it isn't configured. - Always invite by email. Whenever the event has attendees, set
sendUpdates: "all"in the request params so Google actually emails them. Omitting it silently adds people with no notification — never do that. - Share the link = the event's
htmlLink. Return thehtmlLinkfrom the insert response verbatim — that is the real, live event (RSVP, updates, attendee list). Do not rebuild or re-encode it.- It resolves for: invited attendees, anyone in the org's Google Workspace, and — only if the events calendar is public ("see all event details") — for everyone. If a recipient outside the domain gets "event not found", the calendar is not public; that's a calendar setting, not a link you can work around.
- Never pass off a
render?action=TEMPLATE/r/eventeditlink as "the event." Those only prefill a NEW copy in the recipient's own calendar — no RSVP, no live updates, not the shared event. Only send one if the person explicitly asks for an "add a copy to my calendar" link, and label it exactly that — never as the event/share link. - For a guaranteed working invite (no public calendar needed): add the person
as an attendee by email with
sendUpdates:"all"— Google emails them the invite with the real, working link and RSVP. Collect emails in the KB people files to invite people directly. - Prefer adding a Google Meet link for virtual/hybrid events.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 108 lines · 90 tokens per session scan A 08b8b8a76774
google-workspace is a skill published in the GitHub repository BreadchainCoop/labor.fun (2 stars, last pushed 6d ago), licensed MIT. It adds 90 tokens to every session and 1,448 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…