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.
git clone --depth 1 https://github.com/emaballarin/ccpluginsWrote 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/plugins/emaballarin/ccplugins/whetstone)<a href="https://agentmods.dev/plugins/emaballarin/ccplugins/whetstone"><img src="https://agentmods.dev/badge/plugins/emaballarin/ccplugins/whetstone/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/plugins/emaballarin/ccplugins/whetstone"><img src="https://agentmods.dev/badge/plugins/emaballarin/ccplugins/whetstone.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
ws 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 6d 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.
What it actually says
{
"name": "ws",
"version": "0.3.2",
"description": "ws — whetstone: sharpen the thinking before the work, and the work before it lands. Five skills. /ws:grill (user-only) runs a relentless, round-based interview over the design tree of a plan, decision or idea, asking the whole settled frontier at a time with a recommendation attached to every question; silence never settles a question. /ws:test-gate (model-invoked) gates every test as it is written — four questions, a shared junk-pattern check, red-before-green for regressions — extends existing tests rather than restructuring them, and notes the concerns it finds instead of fixing them. /ws:test-audit (user-only) audits and consolidates an existing suite, evidence first and one approved batch at a time, with a campaign mode for a whole subsystem. /ws:deslop (user-only) is a behaviour-preserving cleanup pass that strips AI slop from a diff before /code-review. /ws:review-gate (model-invoked) hands a change and its written intent — never the implementer's reasoning — to a fresh-context reviewer with a defect checklist before a commit, release or run, and gives every finding an outcome. No hooks, no MCP.",
"author": {
"name": "Emanuele Ballarin",
"email": "[email protected]"
},
"homepage": "https://github.com/emaballarin/ccplugins/tree/main/plugins/whetstone",
"repository": "https://github.com/emaballarin/ccplugins",
"license": "MIT",
"keywords": [
"whetstone",
"grilling",
"interview",
"design",
"planning",
"requirements",
"decision",
"testing",
"test-quality",
"code-quality",
"code-review",
"cleanup"
]
}
What it installs
The manifest is a name and a version. 5 skills travel with it, and installing the plugin installs all of them — 402 tokens a session between them. Each is measured on its own page, and each can be installed alone.
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.
- 6d ago Changed 0283f84d7749
- 12d ago Changed c7806504fe71
- 13d ago Changed · +1 lines 3c24b3e9b839
- 19d ago Changed · +12 lines 12f340879f59
- 22d ago Changed 013eddb1840b
- 1mo ago Changed 1059b3351370
- 1mo ago First seen · 14 lines scan A 3aa646e0a53a
ws is a plugin published in the GitHub repository emaballarin/ccplugins (4 stars, last pushed 7d ago), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. 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 plugins, from other repositories
han-communication
Foundational communication plugin for the Han suite. Owns the canonical readability standard, the writing-voice profile, and the explanation standard for talking to a reader who will not implement the work, plus the readability-guidance skill that surfaces the first two into a calling skill's own context for in-voice…
han-research
Pre-planning knowledge-work skills for the Han suite: understanding a problem before anyone commits to a plan. Home of research (research an open-ended question and end at an adversarially-validated recommendation), gap-analysis (compare two artifacts and report what is missing, incomplete, or conflicting), and…
markifact marketplace
Run Google Ads, Meta Ads, GA4, Shopify, and 50+ more platforms from Claude. 1000+ operations with human-in-the-loop on every write.
fuse-php
Expert modern PHP 8.5/8.4 for non-Laravel projects — libraries, standalone Symfony components, Slim, API-first apps, and CLI tools, with PER Coding Style 3.1, PHPStan, and SOLID principles.
fuse-react
Expert React 19 with hooks, TanStack Router, TanStack Form, Zustand, Testing Library, shadcn/ui, and SOLID principles.
fuse-rules
Global rules for all Claude Code sessions: APEX workflow, SOLID/DRY enforcement, project detection, agent delegation, frontend/git standards.