Stop correcting the same thing every session
“No, not like that — do it this way.” You already said it once. By next session your AI coding agent has forgotten, and you're repeating yourself again. Whetstone makes a correction stick: it attaches to a skill you already use as a local MCP server, captures the correction the first time you give it, and recalls it on every later run — no separate review step, all committed to git.
uvx whetstone-mcp
A correction the skill received once is tracked and keeps being honored on later runs.
There is no LLM judge grading “prettiness.” The point is to show a correction is tracked and re-applied — and to measure that directly. Every number links back to how it was produced.
Cold, captured, then warm
Three stages turn a one-off correction into a durable, weighted memory the skill reads back on every later run — so you say it once, not every session.
The skill runs with an empty store, no memory of past corrections. The house-style preference you care about is usually not honored — that’s the baseline, and where you are today without Whetstone.
You correct the skill, same as always. capture is the
Whetstone tool that records it — as a weighted learning (a soft taste, e.g.
"prefer muted colors") or a mandatory issue (a hard "always/never" rule) —
committed to git so it's never lost.
recall is the Whetstone tool that injects the relevant
learned layer at the start of the next run, automatically. The preference is honored — and
stays honored, in every session after this one.
See it, then measure it
Two independent views of the same claim, across every skill.
Before / After
A before output from an empty store, the exact learned layer the skill recalled in its own words, and the after output that applied it.
See it →Metrics
Runs-to-stick and value-over-time, read straight from Whetstone’s telemetry — never hand-set.
Measure it →Methodology
Exactly how every number on this site is produced, and what “honored” means for each preference.
Read it →One substrate, many skills
The same attach / recall / capture / revise loop drives every skill — only the skill and the taught preference change.
Great Tables
Publication-ready data tables
6 scenarios · 12/12 stuckFrontend design
Self-contained web pages
3 scenarios · 5/6 stuckplotnine
Grammar-of-graphics plots
4 scenarios · 10/10 stuckggplot2 (R)
Grammar-of-graphics plots, in R
2 scenarios · 6/6 stuckPowerPoint decks
python-pptx presentations
2 scenarios · 4/4 stuckGrows with how you work
The recall / capture loop is the core. Around it, a small set of out-of-band commands keep your taste healthy, portable, and shared.
A learned global layer
A preference you hold across skills — “muted palettes, never neon” — is lifted once into a shared cross-skill store and recalled everywhere. Each entry still remembers where it came from, so a skill-specific correction wins over the general one when they disagree.
Concept →Preference packs
Because a store is just markdown, export a house style and
import it on another machine or a teammate’s — dedup-aware, ids re-minted.
Compaction & mining
compact tidies the store and scans its usage history for
health signals — a preference worth turning into a hard rule, one that’s gone unused —
surfaced as advice you choose to act on, never applied silently.
A health check
whetstone doctor tells you whether the learn loop is
actually wired — and prints setup instructions if it isn’t.
Install in one line
Whetstone ships on PyPI as whetstone-mcp. Run it with your
preferred tool, then register it with your MCP client.
uvx whetstone-mcp
pipx install whetstone-mcp
claude mcp add whetstone -- uvx whetstone-mcp
Scope. v1 covers the visual skill class across five skills, in both Python and R. The code and context classes — the same substrate applied to a code-improvement skill and a context-organizing skill — are coming next.