System Prompt
El system prompt no es una cadena de texto estática. Se ensambla mediante getSystemPrompt() en src/constants/prompts.ts y se procesa después por buildEffectiveSystemPrompt(). Tiene una jerarquía de prioridad de hasta 6 capas y 7 secciones de contenido separadas por un límite de caché.
Jerarquía de prioridad
Las capas se evalúan en orden de prioridad. Una capa superior reemplaza todo lo que hay debajo. En modo proactivo, el agent prompt se añade al final en lugar de reemplazar el prompt por defecto.
Simple Mode
Si la variable de entorno CLAUDE_CODE_SIMPLE está
configurada, el system prompt completo se reduce a tres líneas:
You are Claude Code, Anthropic's official CLI for Claude.
CWD: /ruta/al/directorio
Date: 2026-03-31
Límite de caché
El marcador __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__ divide el prompt en
dos mitades con comportamiento de caché diferente. Las secciones dinámicas usan un registro que cachea valores hasta
/clear o
/compact.
Excepción: MCP Instructions usa DANGEROUS_uncachedSystemPromptSection() porque los servidores MCP pueden conectarse/desconectarse entre turnos.
Cacheable globalmente entre organizaciones. Secciones:
- 1 Intro
- 2 System
- 3 Doing Tasks
- 4 Executing Actions with Care
- 5 Using Tools
- 6 Tone and Style
- 7 Output Efficiency
Específico de sesión. No cacheable globalmente. Secciones:
- · Instrucciones de sesión específicas
- · Memoria (MEMORY.md + archivos de memoria)
- · Entorno (cwd, plataforma, modelo)
- · Preferencia de idioma
- · Output Style (si está configurado)
- · MCP Instructions (siempre sin caché)
- · Directorio scratchpad (si está activo)
- · Function Result Clearing (si CACHED_MICROCOMPACT)
Las 7 secciones de contenido estático
Estas secciones forman el prompt por defecto. Las marcadas [ANT-ONLY] solo aparecen para usuarios internos de Anthropic. Las marcadas [EXT-ONLY] solo aparecen para usuarios externos.
Intro
Define a Claude como un agente interactivo de ingeniería de software. Incluye la política de seguridad (testing autorizado, CTF y uso defensivo permitidos; destructivo, DoS y targeting masivo rechazados) y la regla de no adivinar URLs.
System
Reglas de renderizado de salida (markdown GFM, fuente monoespaciada). Mecánica del modo de permisos. Cómo manejar llamadas denegadas, etiquetas <system-reminder>, inyección de prompts en resultados de herramientas, hooks y compresión de contexto.
Doing Tasks
Reglas para tareas de ingeniería: leer antes de proponer cambios, preferir editar sobre crear, sin estimaciones de tiempo, diagnosticar fallos antes de cambiar de enfoque, nada extra fuera de lo pedido, sin abstracciones prematuras, sin hacks de retrocompatibilidad. Varias reglas son ANT-ONLY: detectar bugs adyacentes, reportar resultados fielmente, higiene de comentarios, verificar antes de declarar listo.
Executing Actions with Care
Clasificación de riesgo para acciones. Las acciones locales y reversibles (editar archivos, tests) son libres. Las difíciles de revertir o de estado compartido (force push, cambios en prod, enviar mensajes, subidas a herramientas de terceros) requieren confirmación. Principio "mide dos veces, corta una".
Using Tools
Preferencia por herramientas dedicadas (Read antes que cat, Grep antes que grep, etc.). TodoWrite para gestión de tareas. Llamadas en paralelo cuando son independientes.
Tone and Style
Sin emojis. Respuestas cortas y concisas [EXT-ONLY]. Formato file_path:numero_linea para citas de código. owner/repo#123 para referencias de GitHub. Sin dos puntos antes de llamadas a herramientas.
Output Efficiency
Externos: empieza con la acción, omite preámbulo, una frase antes que tres, sin restricciones en código. ANT (interno): prosa fluida, sin fragmentos ni em dashes ni símbolos, pirámide invertida, explicar según el nivel del lector, nunca suprimir fallos ni vender en exceso los éxitos.
Secciones dinámicas destacadas
| Sección | Cuándo aparece | Qué hace |
|---|---|---|
| Instrucciones de sesión | Siempre | Reglas para llamadas denegadas, el prefijo ! para comandos de shell, cuándo usar Agent vs Glob/Grep, invocación de skills. |
| Idioma | Idioma configurado | Responde siempre en {IDIOMA}. Los términos técnicos e identificadores permanecen en su forma original. |
| Output Style | Estilo configurado | Estilos integrados: default (ninguno), Explanatory (añade "Insights"), Learning (pide al usuario escribir fragmentos de código). |
| Anclas de longitud | Solo usuarios ANT | Límites duros: máx 25 palabras entre llamadas a herramientas, máx 100 palabras en respuestas finales. |
| Token Budget | Flag TOKEN_BUDGET | Muestra el conteo de tokens de salida por turno. Instruye a Claude a seguir trabajando hasta acercarse al objetivo de tokens del usuario. |
| Resumir resultados | Siempre | Anotar información importante de los resultados de herramientas, ya que los más antiguos se eliminan del contexto. |
Reglas de comportamiento clave
Estas reglas están integradas en el prompt por defecto. Conocerlas ayuda a predecir y trabajar con el comportamiento predeterminado de Claude.
| Regla | Qué significa para ti |
|---|---|
| Sin emojis | Claude no usará emojis a menos que los pidas explícitamente. |
| Sin funciones extra | Claude no añadirá refactorizaciones, comentarios de documentación ni mejoras más allá de lo solicitado. Es intencional. |
| Sin abstracciones prematuras | "Tres líneas similares son mejores que una abstracción prematura." Claude escribe código simple y directo por defecto. |
| Sin estimaciones de tiempo | Claude no predecirá cuánto tardarán las tareas, ni para sí mismo ni para ti. |
| Usar herramientas dedicadas | Claude tiene instrucciones explícitas de usar Read en lugar de cat, Grep en lugar de grep, etc. Bash queda reservado para lo que no tiene herramienta dedicada. |
| Citas de código | Las referencias al código usan el formato ruta_archivo:numero_linea para facilitar la navegación. |
| Referencias de GitHub | Los issues y PRs se citan como owner/repo#123 para que se rendericen como enlaces. |
Feature flags que afectan al prompt
| Flag | Efecto en el system prompt |
|---|---|
| PROACTIVE / KAIROS | Reemplaza el prompt por defecto con el prompt de modo autónomo. Añade el comportamiento de bucle tick y el requisito de SleepTool. |
| CACHED_MICROCOMPACT | Añade la sección "Function Result Clearing": se conservan los N resultados de herramientas más recientes y los anteriores se eliminan. |
| TOKEN_BUDGET | Añade instrucciones de presupuesto de tokens. Muestra el recuento de salida por turno y aplica un objetivo mínimo de tokens especificado por el usuario. |