What is the doherty-threshold skill?
The doherty-threshold skill is a SKILL.md in the interaction-design plugin of Owl-Listener's designer-skills repository. It has an AI coding agent keep system response under 400ms, using a six tier response time table and feedback patterns for waits that cannot be avoided.
The doherty-threshold skill belongs to the interaction-design plugin in Owl-Listener's designer-skills pack. It casts the agent as an expert in perceived performance and the design of responsive, flow-preserving interfaces, applying the principle to find where latency breaks flow.
Its description names two triggers: diagnosing perceived slowness and setting a performance budget. For what to show during unavoidable waits, it points to loading-states. This skill itself sets the 400ms target and the feedback patterns that keep interactions feeling immediate.
The principle and the response time table
The SKILL.md credits Walter Doherty and Ahrvind Thadani of IBM, 1982: a response in under 400ms keeps users in flow. Above that, users notice the wait and their cognitive engagement with the task degrades.
| Response time | User perception |
|---|---|
| 0 to 100ms | Instant, a direct extension of the action |
| 100 to 300ms | Fast, perceptible but not disruptive |
| 300 to 400ms | Approaching the boundary, some users notice |
| 400ms to 1s | Slow, a response indicator is needed |
| 1s and over | Definitely slow, progress feedback required |
| 10s and over | Task level disruption, users switch context |
Where sub-400ms matters most
- Slide and view transitions should finish under 400ms.
- Toggles, checkboxes, dropdowns and tab switches should feel immediate.
- Search and filter results should begin appearing before 400ms, or show a skeleton or spinner at once.
- Autocomplete suggestions should arrive within 300ms of typing.
- Button press feedback must happen within 100ms.
When you cannot meet the threshold
Acknowledge within 100ms with a visual state change, show a loading indicator for waits of 400ms to 3s and real progress beyond 3s. Optimistic UI and skeleton screens are the other tools, and skeletons are preferred when the layout is known.
Who the doherty-threshold skill is for
Best for
- Teams diagnosing perceived slowness in an interface.
- Setting latency budgets for the interactions users repeat most often, and measuring real latency on target devices. The web performance skill covers measured speed fixes.
- Pairing response time work with motion design (see the motion system skill), since a well-timed 200ms transition feels fast and an abrupt 50ms flash can feel broken.
Not for
- Designing the content of a loading state. The description points to loading-states for that.
How to install Doherty Threshold Skill: Keep UI Response Under 400ms
/plugin marketplace add Owl-Listener/designer-skillsAdd the marketplace
Enter the command above in your AI coding agent. It points the agent at the repository, and no plugin installs at this stage.
Install the plugin
Run
/plugin install interaction-design@designer-skills. interaction-design is the plugin that holds this skill, and the Discover tab under/pluginoffers the same choice.Gemini CLI route
Each plugin is also a Gemini CLI extension. Clone the repository to a temporary folder, create
.gemini/extensionsin your project root, and copy the repository's.gemini/extensionscontents into it.Describe the slow interaction
Tell the agent which interaction feels slow and what it waits on, such as a search, a filter or a save. It applies the table and the feedback patterns.
Check that it loaded
Ask for a perceived performance review of one interaction. Expect a response time target, an acknowledgment within 100ms and a choice of loading indicator, skeleton or optimistic update.
Key features
- 400ms targetTreats 400ms as the outer bound for any interaction a user expects to be immediate.
- Six tier perception tableMaps 0 to 100ms, 100 to 300ms, 300 to 400ms, 400ms to 1s, 1s and over, and 10s and over to what users perceive.
- Interaction targetsAutocomplete suggestions within 300ms, button state change within 100ms, search results starting before 400ms and view transitions under 400ms.
- Immediate acknowledgmentWhen the system cannot respond in time, change the triggering element's visual state within 100ms.
- Loading and progress rulesShow a loading indicator for completions in the 400ms to 3s range and real progress rather than a bare spinner beyond 3s.
- Optimistic UIUpdate the interface at once and reconcile with the server response when it arrives.
- Skeleton screensPreferred over spinners for content with a known layout, because they keep spatial context and feel faster.
- Clear limitsThe threshold is a design target, not a strict empirical cutoff, and deliberate motion such as a 250ms entrance animation is fine. See animation principles for duration and easing.
- No flash of a spinnerNever show a loading state for actions that complete under 400ms, because the flash is itself disruptive.
Frequently asked questions
What is the doherty-threshold skill?
It is a SKILL.md in the interaction-design plugin of Owl-Listener's designer-skills repository. It has an AI coding agent apply the Doherty Threshold, keeping system response under 400ms to preserve user flow, and design feedback patterns and technical targets that keep interactions feeling immediate.
How do I install doherty-threshold?
Run /plugin marketplace add Owl-Listener/designer-skills, then /plugin install interaction-design@designer-skills. The skill is part of the interaction-design plugin. The Discover tab under /plugin offers the same choice, and Gemini CLI users can copy the repository's extensions folder. That plugin lists 22 skills and 5 commands.
What is the Doherty Threshold?
The skill credits Walter Doherty and Ahrvind Thadani of IBM in 1982. When a computer responds to a user action in under 400ms, productivity increases substantially and users stay in flow. Above that threshold, users notice the wait and their cognitive engagement with the task degrades.
What should I do when a response cannot be under 400ms?
Acknowledge within 100ms with a visual state change on the triggering element. Show a loading indicator if completion takes 400ms to 3s, and real progress for more than 3s. Optimistic UI and skeleton screens help, and skeletons are preferred for content with a known layout.
Does the Doherty Threshold mean animations must be under 400ms?
No. The skill says a deliberate 250ms entrance animation is fine. The threshold applies to perceived wait time, not to intentional motion. It also notes complex data fetching will sometimes exceed it, so the goal is to reduce the perception of waiting through feedback design.
What license does doherty-threshold use?
It is MIT licensed, as is the whole Owl-Listener/designer-skills repository. The pack holds 273 skills and 76 commands across 33 plugins, and doherty-threshold is one of the skills in the interaction-design plugin. The nine design practice plugins, interaction-design among them, ship from this repository.
When should I use doherty-threshold instead of loading-states?
Use doherty-threshold when diagnosing perceived slowness or setting a performance budget. Its description points to loading-states for what to show during unavoidable waits. The first sets the response targets, and the second decides what the user sees while a wait is still unavoidable.


