# Least Astonishment

> El sistema debe comportarse como el usuario espera. Use cuando diseñe interacciones, tome decisiones sobre comportamientos, o evalúe sorpresas en la UX.

- Skill: `tomevault-io/least-astonishment` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/least-astonishment`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/least-astonishment/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/least-astonishment

---


# Principio de Mínima Sorpresa

## Resumen

Un sistema debe comportarse de manera que minimice la sorpresa del usuario. Si
una función necesaria es inherentemente sorprendente, puede ser necesario
rediseñar.

## Origen

- **Contexto**: Diseño de lenguajes de programación y sistemas
- **Popularizado**: IBM Systems Journal, comunidad Unix
- **Año**: ~1970s-1980s

## Fundamento

Las sorpresas son costosas:

- Causan errores y confusión
- Erosionan confianza
- Aumentan carga cognitiva
- Generan frustración
- Requieren soporte

## Expectativas del Usuario

### Formadas por:

- Experiencias previas con el sistema
- Convenciones de plataforma
- Patrones de industria
- Conocimiento del mundo real
- Promesas del producto

### Violaciones típicas:

- Comportamiento inesperado de controles
- Side effects no comunicados
- Resultados diferentes a los anticipados
- Cambios sin aviso

## Aplicación en Diseño

### Interacciones

- Botón "Guardar" debe guardar, no preguntar
- "Cancelar" debe cancelar sin efectos
- Back debe volver, no ir a otro lugar
- Links deben llevar a donde dicen

### Comportamientos

- Acciones consistentes en toda la app
- Resultados proporcionales a acciones
- Sin side effects inesperados
- Cambios de estado claros

### Comunicación

- Nombrar features por lo que hacen
- Mensajes que coinciden con acciones
- Errores que explican qué pasó
- Confirmaciones que confirman lo esperado

### Datos

- Cambios guardados cuando se espera
- Datos mostrados actualizados
- Ordenamientos predecibles
- Filtros que funcionan como se nombran

## Ejemplos

- **Gmail Undo Send**: Comportamiento inesperado pero comunicado
- **iOS Back Gesture**: Siempre vuelve al contexto anterior
- **Browser Refresh**: Recarga la página actual
- **Ctrl+S**: Siempre guarda
- **ESC**: Siempre cierra/cancela

## Anti-patterns

- ❌ "Close" que guarda automáticamente sin avisar
- ❌ Links que abren modales en lugar de navegar
- ❌ Ordenamiento que cambia sin input
- ❌ Acciones con side effects ocultos
- ❌ Back que pierde cambios sin warning

## Métricas

- **Expectation Match Score**: Comportamiento vs expectativa
- **Surprise Event Rate**: Acciones con resultados inesperados
- **User Error Rate**: Errores por comportamiento sorprendente
- **Trust Score**: Confianza en el sistema

## Principios Relacionados

- [[jakobs-law]] - Expectativas de otros sitios
- [[nielsen-consistency]] - Comportamiento consistente
- [[feedback-principle]] - Comunicar qué está pasando

## Referencias

- Saltzer, J.H. & Kaashoek, M.F. (2009). "Principles of Computer System Design"
- Raymond, E.S. (2003). "The Art of Unix Programming"
- https://www.nngroup.com/articles/principle-of-least-surprise/

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/vjrivmon) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

