← back

Whetstone

A guide to getting better — three edges to sharpen at a time. It reads the clock and rotates itself: one edge leaves, one enters, every month.

how it works

Three edges are live at once. The page knows today's month and shows this month's three. Each month the window slides by one — the oldest edge rests, the next enters — and it cycles through the whole set forever. No login, no upkeep: open it at the start of a month, read the three, drill the moves. Come back next month and they've advanced on their own.

This month

The through-line. A strong sense of how things should be is an edge — it points at the architect and the founder. The cost is always the same shape: it runs as a gate on input (what you'll hear, what you'll bother to ship and log) when it should run on output (the thing you make clean). Every edge below is one place to move the gate from input to output.

The full set

The rotation walks this list in order, three at a time. Read them all once; each gets its month in focus when it comes round.

1 · Receive before you filter. Trap: you judge a detail's worth while hearing it, so unworthy-sounding facts never land — and it reads as not listening. Move: two passes. Capture fully first (write it down, play it back — "so you need X because Y"); apply the judgment second, later. Drill: before you react, repeat their point back until they say "yes, exactly."
2 · Definition of done + playback. Trap: you hand people the wish, not the finished picture; they guess and miss. Move: outcome + why + what "done" looks like (with an example) + "tell me back what you'll do." Drill: end every ask with "what's your first step?"
3 · The track-record machine. Trap: original ideas without receipts — the idea is the cheap part. Move: ship → measure → publish → spread → log. Every original gets a number it moved and your name on a doc. Keep a running ledger, updated the day it lands. Drill: log one shipped thing every week, even small.
4 · Constraint vs implementation. Trap: one filter runs two questions — "is it elegant?" and "is it true / binding?" Ugly-but-real requirements get thrown out for being inelegant. Move: sort every incoming detail into Constraint (true, must hold, ugly-ok) vs Implementation (yours to make clean). Purity rules the second bin only. Drill: for each objection you feel, ask "am I rejecting this for being false, or just for being ugly?"
5 · Taste as a deliverable. Trap: your taste runs as a silent filter on input; people feel unheard and your standard stays invisible. Move: externalise it — a short design note before, a writeup after, "here's the clean version and why." Drill: every original idea gets a written spine before code.
6 · SBI feedback. Trap: feedback as judgment ("you're careless") goes defensive and vague. Move: Situation → Behavior → Impact — facts not labels, one concrete next step. Drill: name the behavior you saw and the effect it had; nothing about the person.