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/kv0906/pm-kit/gwsnpx skills add kv0906/pm-kit --skill gwsgit clone --depth 1 https://github.com/kv0906/pm-kitWrote 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/kv0906/pm-kit/gws)<a href="https://agentmods.dev/skills/kv0906/pm-kit/gws"><img src="https://agentmods.dev/badge/skills/kv0906/pm-kit/gws.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.00105 | $0.01667 |
| Opus 5 | $0.00053 | $0.00834 |
| Sonnet 5 | $0.00021 | $0.00333 |
| Haiku 4.5 | $0.00011 | $0.00167 |
Grade A, and why
gws 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 4d 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 — 210 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Google Workspace CLI (gws)
A CLI tool built in Rust that wraps every Google Workspace API into composable commands with structured JSON output. It dynamically builds its command structure from Google's Discovery Service, so it always supports the latest APIs without updates.
Prerequisites
- gcloud CLI: Required for authentication. Install via
brew install --cask google-cloud-sdkon macOS. - Node.js/npm: Required to install gws.
Installation & Setup
# 1. Install the CLI
npm install -g @googleworkspace/cli
# 2. Set up auth (interactive walkthrough for GCP project + OAuth)
gws auth setup
# 3. Login to Google Workspace account
gws auth login
The gws auth setup command walks through:
- GCP project creation or selection (all via CLI)
- Enabling required Google Workspace APIs
- OAuth client configuration
Multiple accounts (work, personal) can be added. For agent-dedicated accounts, grant Full Access (all OAuth scopes). For personal/work accounts, start with Limited Access.
Core Usage Patterns
Command Structure
# Standard API call
gws <service> <resource> <method> --params '{"key": "value"}' --json '{"body": "data"}'
# Helper shortcut (handles encoding/formatting)
gws <service> +<helper> --flag value
Key Services & Helpers
| Service | Common Helpers | Purpose |
|---|---|---|
| gmail | +send, +triage |
Email management |
| calendar | +agenda, +insert |
Schedule management |
| drive | +upload |
File management |
| sheets | +read, +append |
Spreadsheet operations |
| docs | +write |
Document operations |
| chat | +send |
Team messaging |
All responses return structured JSON for reliable agent parsing.
Gmail
# Search inbox
gws gmail users messages list --params '{"userId": "me", "q": "is:unread"}'
# Read a message
gws gmail users messages get --params '{"userId": "me", "id": "MSG_ID"}'
# Send email (helper handles RFC 2822 encoding)
gws gmail +send --to [email protected] --subject 'Report Ready' \
--body 'The Q2 report is ready for review.'
# Triage unread
gws gmail +triage --max 5 --query 'from:boss'
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 4d ago First seen · 210 lines · 105 tokens per session scan A 3efdcac74b6c
gws is a skill published in the GitHub repository kv0906/pm-kit (133 stars, last pushed 2mo ago), licensed MIT. It adds 105 tokens to every session and 1,667 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-30.
Other skills, from other repositories
critique-agent
Pressure-test an existing product brief or PRD pack — find gaps, hidden assumptions, inconsistencies, and failure modes before stakeholder review. Use when: critique brief, critique PRD, devils advocate, red team, pressure test, find holes, what could go wrong, stress test the doc, pre-mortem.
interview-frameworks
Frameworks for user interviews, question design, and qualitative research. Use when conducting user interviews, designing interview guides, researching user needs, or gathering qualitative insights. Trigger on: 'create an interview guide', 'how do I interview users', 'customer discovery questions', 'user research…
query-datasets
Answer grounded yes/no questions about what exists in the 03-datasets/ example corpora (supporttickets, calltranscripts) using the local SQLite + FTS5 + vector hybrid index. Use when the user asks 'do/does [corpus] contain/mention/include/have requests for X?', 'any [corpus] about Y?', or similar factual queries over…
critique-prd
Rubric-score a PRD pack (02 + 03) against the 7-dimension PM Brain rubric and run a 4-persona panel review. Returns scores, panel critiques, the single weakest section, a concrete rewrite, and P0/P1 fix lists. Use when: PRD review, score my PRD, rubric review, panel review, rewrite weakest section, critique-prd.
create-prd
Write the PRD pack (02-product-requirements.md + 03-success-metrics.md) on top of an approved product brief. Use when: PRD, product requirements, requirements doc, success metrics, spec writeup, shape the PRD.
create-internal-feature-announcement
Drafts an internal feature announcement (IFA) from the PRD pack and user sources using the repo template, then writes 04-internal-feature-announcement.md. Use when: IFA, internal feature announcement, internal FAQ, Slack IFA prep, launch comms pack, or internal product documentation from the template.