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 skills add mathruffian-dot/clasp-gas-skill --skill clasp-setupgit clone --depth 1 https://github.com/mathruffian-dot/clasp-gas-skillWrote 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/mathruffian-dot/clasp-gas-skill/clasp-setup)<a href="https://agentmods.dev/skills/mathruffian-dot/clasp-gas-skill/clasp-setup"><img src="https://agentmods.dev/badge/skills/mathruffian-dot/clasp-gas-skill/clasp-setup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mathruffian-dot/clasp-gas-skill/clasp-setup"><img src="https://agentmods.dev/badge/skills/mathruffian-dot/clasp-gas-skill/clasp-setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 12 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 43 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 89 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 97 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 110 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 111 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 112 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 123 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 152 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 158 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 163 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 184 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 217 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.1 | $0.00103 | $0.03869 |
| Opus 5 | $0.00051 | $0.01935 |
| Sonnet 5 | $0.00021 | $0.00774 |
| Haiku 4.5 | $0.00010 | $0.00387 |
Grade A, and why
clasp-setup 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 9d 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 — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Apps Script + clasp 連線
這份是寫給 AI agent 照著執行的,不是給人讀的教學。 目標:讓 agent 能「讀得到、改得到、推得回」使用者線上那份 Apps Script 程式碼。
為什麼要用 clasp
不用 clasp 的話,agent 是瞎的——每改一次都要使用者自己複製、切到瀏覽器、貼上、存檔。
接上 clasp 之後是完整的編輯迴圈:clasp pull 讀下來 → 改 → clasp push 推回去。
需要反覆調整的專案,這個差別會被放大很多次。
你面對的使用者
預設把使用者當成沒有程式基礎的人(老師、行政人員、想自動化日常工作的一般使用者)。
- 全程用使用者的語言,不要丟術語。
- 需要他本人操作的地方(選帳號、點允許、去試算表確認),停下來講清楚,等他回覆。
- Windows 一律用 PowerShell,不要用
&&串指令(PowerShell 5.1 會語法錯誤),用;。
🔴 六條硬性紅線
1. 一定要用個人 Google 帳號
clasp login 時主動提醒他選個人 Gmail,不要選學校或公司的 Workspace 帳號。
受管理的 Workspace 帳號會回 admin_policy_enforced,那是該網域的管理員才能解的(要進 Admin Console 把 clasp 的 OAuth Client ID 加白名單)。使用者自己弄不了,不要讓他在那邊試。
2. 用 npx,不要全域安裝
一律 npx @google/clasp ...。
理由:不用先安裝,而且繞開 Windows 的執行原則限制。使用者主動要求常用時,才建議 npm install -g @google/clasp,並準備處理執行原則。
3. 反覆失敗就提退路,不要無限重試
如果 clasp login 或 API 授權連續失敗,不要繼續重試迴圈。主動說:
「clasp 這條卡住了。我們換一條——我直接把程式碼給你,你貼到 script.google.com 就好,做出來的東西完全一樣,只是之後每次改都要重貼一次。要換嗎?」
clasp 是效率升級,不是做出成品的必要條件。 保住成品優先。
4. 不要把可識別個資寫進雲端
試算表欄位不要放真實姓名,改用不具識別性的代號(編號、流水號等)。使用者提供的資料裡有姓名欄,主動指出並建議移除。
也不要放身分證字號、電話、地址、家長聯絡方式。
理由很實際:網頁應用程式的網址通常會發給一群人,那是公開網頁;而試算表本身也可能被誤設成任何人可讀。
5. 網頁應用程式的網址一律用 open-web-app --json 取得
不准自己拼網址。 詳見步驟 5——scriptId、parentId、deploymentId 是三個不同的東西,
拼錯的結果是「網頁不存在」,而且看起來像部署失敗,會把你帶去修錯的地方。
6. 不要覆蓋既有的 clasp 專案
執行 clasp create-script 前先確認當前資料夾沒有 .clasp.json。有的話先問使用者這是不是他要接的專案,不要直接蓋掉。
前置檢查(依序跑,任一不過就停下來說)
| 檢查 | 怎麼做 | 不過的話 |
|---|---|---|
| Node 版本 | node --version |
clasp v3 要 Node 20 以上。低於或找不到 → 問他「要我幫你裝 Node.js LTS 嗎?」 |
| Apps Script API 開關 | 無法用指令查,直接問使用者 | 沒開 → 給他 https://script.google.com/home/usersettings,把「Google Apps Script API」打開。告訴他要等 1–2 分鐘才生效,這段時間先做別的,不要空等 |
| 資料夾 | 當前目錄是不是他要放專案的資料夾 | 不是 → 先確認要在哪裡建 |
步驟
1. clasp 登入
npx @google/clasp login
執行前先講:「等一下瀏覽器會打開,請選你的個人 Gmail,然後點允許。」
2. 驗證登入
npx @google/clasp show-authorized-user --json
What ships with it
2 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.
- 9d ago First seen · 255 lines · 103 tokens per session scan A ac998c44fa0c
clasp-setup is a skill published in the GitHub repository mathruffian-dot/clasp-gas-skill (11 stars, last pushed 11d ago), licensed MIT. It adds 103 tokens to every session and 3,869 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
univer-node-backend
Run Univer Sheets, Docs, Slides, Bases, Boards, or PDFs in Node.js without browser UI. Use for server-side or backend Univer, OSS Sheets or Docs Node presets, Pro product Facades and collaboration, JSON snapshot processing, formula or Base child-process workers, or automated unit manipulation with @univerjs/rpc-node.
backend-bulk-import
Enforce bulk data import patterns including CSV/Excel parsing, file upload handling, validation pipeline, progress tracking, batch processing, error reporting, rollback on failure, deduplication, and background processing. NOT for real-time data ingestion or streaming pipelines.
backend-report-generation
Enforce report generation patterns including PDF generation (Puppeteer, wkhtmltopdf), Excel/CSV export, async generation with queues, report scheduling, large dataset handling, template rendering, and report API design. NOT for real-time dashboards or live charting.
cc-api-design-safety
A safety guide for designing REST API responses and creating downstream files such as Excel, CSV, PDF, or reconciliation files.
cc-streaming-export-safety
A safety workflow for user-triggered exports or batch serialization of large Excel, CSV, JSON, JSONL, or PDF files.
add-responder
Return a non-standard HTTP response (PDF, XLSX, stream, binary) instead of the default HTML template.