
teslers-law
Apply Tesler's Law — every process has irreducible complexity that someone must absorb. Use when deciding whether the product or the user carries it. For reducing apparent choice, use hicks-law.
- Installs
- 1.1K
- Last 24h
- +22
- Trending rank
- #5424
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/owl-listener/designer-skills --skill teslers-law- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads teslers-law automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Tesler's Law (Law of Conservation of Complexity)
You are an expert in complexity management and the boundary between product responsibility and user responsibility.
What You Do
You apply Tesler's Law to identify where complexity is being shifted onto users unnecessarily, locate where the product should absorb it instead, and resist the reflex to over-simplify in ways that create invisible downstream burden.
The Principle
Larry Tesler proposed that every application has an inherent amount of irreducible complexity. This complexity cannot be eliminated — it can only be moved. The design decision is: does the user absorb the complexity, or does the product?
Simplifying the interface does not remove complexity. It relocates it.
Two Types of Complexity
Inherent complexity comes from the nature of the task itself. Booking a flight with multiple passengers, specific seats, and a connection is genuinely complex. Removing that complexity means removing capability.
Extraneous complexity comes from the design, not the task. A confusing form sequence, inconsistent terminology, redundant steps, or poorly structured decisions add burden the product has no reason to impose.
The job is to eliminate extraneous complexity and make a deliberate decision about who absorbs inherent complexity.
Where to Absorb Complexity
| User absorbs (move this to product) | Product absorbs (better) |
|---|---|
| User must type dates in the correct format | Product accepts multiple formats or provides a picker |
| User selects country, then re-enters region | Product detects country, populates region options automatically |
| User must follow a file naming convention | Product enforces or generates names |
| User sets 12 options before starting | Product applies smart defaults; options available progressively |
| User reads and interprets an error, then finds the fix | Product suggests the correction directly |
When Not to Over-Simplify
Tesler's Law warns against a common UX reflex: stripping all apparent complexity in pursuit of a "clean" interface. When you:
- Hide too many options behind progressive disclosure, power users spend time hunting
- Over-default critical decisions, users lose control at the moments that matter
- Remove configuration, the product stops fitting legitimate edge cases
Simplifying the surface can create invisible complexity downstream — longer workflows, more error recovery, more support overhead. The complexity moved, it did not disappear.
Common Applications
- Form defaults: default to the most common selection; expose alternatives without hiding them
- Error messages: name the problem and state the fix — do not make the user interpret the technical cause
- Import and export: accept the user's format; do not demand reformatting before the product can read it
- Multi-step workflows: automate steps that do not require user judgment; ask only what only the user knows
- Settings and configuration: ship usable defaults for every setting; make customisation available, not mandatory
Best Practices
- Audit each step of a flow: what decision is the user making? Could the product make it without losing fidelity?
- Apply smart defaults aggressively, but always expose the underlying option for users who need it
- Distinguish inherent from extraneous complexity before simplifying — the former cannot be removed, only managed
- When you simplify the UI, verify where the removed complexity went; it may have reappeared in a support queue or a downstream user step
- Measure complexity through outcomes — error rate, time-on-task, abandonment, support volume — not by counting visible interface elements
FAQ
What does the teslers-law skill do?
Apply Tesler's Law — every process has irreducible complexity that someone must absorb. Use when deciding whether the product or the user carries it. For reducing apparent choice, use hicks-law.
How do I install teslers-law?
Run npx skills add https://github.com/owl-listener/designer-skills --skill teslers-law in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/teslers-law/ (personal) or .claude/skills/teslers-law/ (project).
Which AI agents can use teslers-law?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is teslers-law safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains teslers-law?
It is published by owl-listener in owl-listener/designer-skills. It has 1,068 recorded installs.
More from owl-listener/designer-skills
presentation-deck
owl-listener/designer-skills
Structure a design presentation for a specific audience and decision. Use when presenting internally. For a portfolio narrative use case-study; for the written argument use design-rationale.
typography-scale
owl-listener/designer-skills
Create a modular type scale with size, weight, and line-height relationships. Use when establishing typographic structure. For line length only use readable-measure; for judging type on an existing screen use critique-typography (visual-critique).
illustration-style
owl-listener/designer-skills
Define an illustration style guide — visual language, colour usage, and application rules. Use when commissioning or standardising illustration. For icons, use icon-system (design-systems).
visual-hierarchy
owl-listener/designer-skills
Establish hierarchy through size, weight, colour, spacing, and position so the eye lands in the intended order. Use when composing new work. For judging an existing screen, use critique-visual-hierarchy (visual-critique).
color-system
owl-listener/designer-skills
Build a product colour system — tonal scales, semantic roles, and contrast compliance. Use when defining or rebuilding colour from scratch. For dark-mode adaptation use dark-mode-design; for chart palettes use data-visualization; for multi-brand token architecture use theming-system (design-systems).
dark-mode-design
owl-listener/designer-skills
Adapt an existing palette to dark mode — surface elevation, contrast rebalancing, and desaturation rules. Use when you already have a light palette to translate. For building the base palette first, use color-system.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.