api-design
FreeUse when designing or reviewing a public API, exported function signature, module boundary, exported type/interface, or any contract other code depends on
The English summary is being prepared. Showing the original description.
Use when gathering or interpreting requirements, estimating effort, or communicating with stakeholders/customers about what to build
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Restate requests in different words and test reactions, separate estimates from targets from commitments, and start from yes when a request lands. Human-to-human collaboration material (pairing, rotation) lives in principles.md for attribution only.
Invoke when you're about to:
before-you-refactor)clean-code, security-and-trust-boundaries, etc.) handle code reviewRun the relevant items. If a request crosses areas (a UX call with an estimate attached), run each.
| Thought | Reality |
|---|---|
| "The user said they want X — I'll just build X." | What users say and what they do diverge. Restate in different words and ask one question that distinguishes interpretations. (97/97) |
| "I'll restate the requirement word-for-word so they know I heard them." | Verbatim restatement confirms the words, not the meaning. Restate in different words to surface the gap. (97/97) |
| "I know how a user will use this — I designed it." | You are not the user. Walk the non-power-user path before shipping the affordance; place help at the point of action, not the sidebar. (97/3) |
| "Two weeks is fine — I'll just commit to it." | A target accepted under pressure is not an estimate. Name what's being asked for: estimate, target, or commitment. (97/50) |
| "I'll give a precise number so it sounds credible." | Spurious precision (4.2 days) signals a target dressed as an estimate. Give a range from data, or say you do not have data yet. (97/50) |
| "The request is dumb — I'll push back and explain why." | Start from yes. Ask why first. The reason often reveals a real constraint, and sometimes the objection collapses. (97/77) |
| "I'll just escalate — someone will know." | Without what-you-tried, what-you-expected, and a reproducer, you are asking for magic. Deliver context with the question. (97/36) |
| # | Principle | Author |
|---|---|---|
| 97/3 | You Are Not the User | Giles Colborne |
| 97/36 | The Guru Myth | Ryan Brush |
| 97/50 | Learn to Estimate | Giovanni Asproni |
| 97/77 | Start from Yes | Alex Miller |
| 97/97 | Your Customers Do Not Mean What They Say | Nate Jackson |
See principles.md for the long-form distillations, citations, and source links.
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when designing or reviewing a public API, exported function signature, module boundary, exported type/interface, or any contract other code depends on
The English summary is being prepared. Showing the original description.
Use when considering, evaluating, or performing a refactor, restructure, cross-file rename, or cleanup
The English summary is being prepared. Showing the original description.
Use when writing, reviewing, or changing build scripts, CI workflows, deploy pipelines, repo setup, or evaluating a new tool/dependency
The English summary is being prepared. Showing the original description.
Use when writing or reviewing functions, classes, naming, or non-trivial logic (≥3 lines)
The English summary is being prepared. Showing the original description.
Use when writing or reviewing error handling, floating-point math, concurrent code, remote calls, singletons/globals, hot-path data structures, or high-volume log statements
The English summary is being prepared. Showing the original description.
Use when introducing, reviewing, or renaming a top-level type, table, or domain concept; or choosing where state lives (in-memory vs persistent)
The English summary is being prepared. Showing the original description.