ousterhout-build-deep

por Rob Zapp2 instalacionesSin likesActualizado el 5 de octubre de 2026Categoría: Ingeniería

Qué hace

Usa mientras escribes o modificas código, antes de dar por terminada la tarea, siempre que el cambio añada un nombre exportado o importable, cree un módulo, clase, componente, helper, hook, servicio o wrapper, o centralice código repetido. Lista de verificación en tiempo de autor para construir módulos profundos: nombra la decisión que oculta el límite, pasa las pruebas de profundidad e invariante, arregla problemas en lugar de reubicarlos, nunca dividas solo por tamaño y termina con una nota de diseño breve. Compañero compacto de ousterhout-quality-program, que sigue siendo la lente completa de revisión.

La instalación abre esta ficha en tu app de escritorio AgentsRoom. Si aún no la tienes instalada, te llevaremos a la página de descarga.

SKILL.md

---
name: ousterhout-build-deep
description: Usa mientras escribes o modificas código, antes de dar por terminada la tarea, siempre que el cambio añada un nombre exportado o importable, cree un módulo, clase, componente, helper, hook, servicio o wrapper, o centralice código repetido. Lista de verificación en tiempo de autor para construir módulos profundos: nombra la decisión que oculta el límite, pasa las pruebas de profundidad e invariante, arregla problemas en lugar de reubicarlos, nunca dividas solo por tamaño y termina con una nota de diseño breve. Compañero compacto de ousterhout-quality-program, que sigue siendo la lente completa de revisión.
---

# Construir en profundidad (Ousterhout, author-time)

Estás escribiendo código, no revisándolo. Ejecuta esto en tu propio cambio antes de
llamar a la tarea terminada.

## 1. Puerta

¿El cambio añade un nombre exportado/importable, crea un módulo, clase,
componente, helper, hook, servicio o wrapper, o centraliza código repetido?
Si no, omite esta habilidad. Renombramientos, codemods, ediciones de configuración/datos y arreglos de una línea están exentos.

## 2. Antes de escribir el límite

- Encuentra cómo este repositorio ya resuelve un problema de esta forma y síguelo
  a menos que puedas explicar por qué no. Lee la documentación y tipos actuales de la dependencia: una API recordada de memoria es una afirmación, no una fuente.
- Escribe primero el comentario de la interfaz: qué promete, qué oculta. Si
  no puedes nombrar la decisión oculta (un formato, una política, una regla, una
  elección de esquema), el límite no debería existir. Incrústalo.
- Nómbralo en lenguaje del dominio. Si el único nombre honesto es `utils`,
  `helpers` o `manager`, el corte está en el lugar equivocado.

## 3. Dos pruebas

- **Profundidad.** La interfaz debe ocultar sustancialmente más de lo que expone. Un
  wrapper que reenvía sus argumentos es un costo sin beneficio; elimínalo.
- **Invariante.** Extrae código compartido solo cuando protege una regla compartida.
  La evidencia es el co-cambio: las copias fueron corregidas o cambiadas juntas en
  la historia. Similares que cambian independientemente permanecen duplicados.

## 4. Una corrección debe eliminar el problema, no reubicarlo

- Seis casts movidos a un helper genérico de cast siguen siendo seis casts. Escribe
  el mapper tipado que los casts estaban encubriendo.
- No añadas un parámetro o bandera que empuje una decisión a los llamadores a menos que
  los llamadores realmente sepan algo que tú no. Absorbe el caso difícil dentro.
- Prefiere semánticas donde el caso de error no pueda surgir en lugar de hacer que cada
  llamador lo maneje.
- Mover complejidad esencial del dominio a otro archivo no es simplificación.

## 5. Bajo presión de "limpia esto" o "este archivo es muy grande"

Nunca dividas solo por tamaño. Un módulo de 400 líneas que oculta una decisión vence
cuatro módulos de 100 líneas que filtran las mismas uniones. Pregunta qué decisión
oculta cada división; si ninguna, no dividas.

## 6. Seguridad

Código existente: fija el comportamiento actual con un test antes de profundizarlo.
Código nuevo: escribe el test que define el comportamiento previsto.

## 7. Reporte

Si la puerta se activó, termina tu mensaje final con una nota de diseño de 2-4 líneas:
cada límite que añadiste y la decisión que oculta; duplicación que dejaste a propósito y por qué;
cualquier cosa superficial que aceptaste y por qué.

Para una llamada disputada o una revisión completa, carga `ousterhout-quality-program`.

Tags

designarchitecturecodingousterhoutauthor-time

Para profundizar

Ingeniero DevOpsRedactorDesarrollador FrontendComercialDesarrollador BackendCoach y FormadorArquitecto de SoftwareAsesor JurídicoIngeniero de QAFinanzas y AdministraciónDesarrollador Full-StackDiseñador CreativoDesarrollador MóvilInvestigadorIngeniero de SeguridadRR. HH. y Selección
Gerente de ProyectoTraductorExperto en GitAnalista de DatosEspecialista en SEOContableEspecialista en LocalizaciónComunicación y RR. PP.Generador de IdeasOperaciones y LogísticaEspecialista en MarketingAtención al ClienteAsistente del proyectoCompradorCommunity ManagerAsistente Personal

Descargar AgentsRoom

Ejecuta todos tus agentes de IA, en todos tus proyectos, desde una sola ventana.

Descargar AgentsRoomGratis

App complementaria: supervisa tus agentes en movimiento

Usa Claude, Codex, Antigravity CLI u otro proveedor de IA.

Instalar la extensión
Chrome Web Store

Envía bugs y peticiones directamente a tu backlog público.

Agentes que lees como una conversación

Cada agente tiene un rol, una cara y un hilo que lees como una app de mensajería.

Vista de conversación

Vista de conversación de AgentsRoom: el trabajo de un agente de programación con IA en forma de chat
Multi-proyectos
Multi-proveedor
Multi-agentes
Estado en vivo
Diff y commit
App móvil
Vista previa
Equipos de agentes
Pruebas en navegador
Dev guiada por backlog
Biblioteca de prompts
Biblioteca de skills
Ver todas las funcionalidades