C Claude Code Internals
EN | ES

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é.

6 capas de prioridad 7 secciones de contenido 1 marcador de caché 3 reglas solo internas (ANT)

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.

1
Override prompt máxima prioridad
Reemplaza el system prompt completo. Se usa en modos especiales como Simple Mode (variable de entorno CLAUDE_CODE_SIMPLE).
2
Coordinator prompt
Activo en modo COORDINATOR_MODE multi-agente. Guía el rol de orquestador.
3
Agent prompt
Cuando actúa como sub-agente: reemplaza el prompt por defecto. En modo proactivo: se añade bajo "# Custom Agent Instructions".
4
Custom prompt
Inyectado mediante el flag --system-prompt de la CLI. Útil para sobreescrituras específicas de proyecto.
5
Default prompt
El system prompt estándar de Claude Code con todas las reglas de comportamiento integradas (las 7 secciones de abajo).
6
Append prompt
Siempre se añade al final. Lleva el contexto dinámico: memoria, herramientas MCP, reglas de idioma, info del entorno.

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.

Antes del marcador: Estático

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
Después del marcador: Dinámico

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.

01

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.

02

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.

03

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.

04

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".

05

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.

06

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.

07

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.
CLAUDE.md se inyecta en la capa del prompt por defecto
Tu archivo CLAUDE.md se carga como parte de la capa del prompt por defecto, no como un mecanismo separado. Por eso tiene tanta influencia: forma parte del system prompt central. Pon convenciones, restricciones y contexto ahí y Claude los aplicará de forma consistente en cada sesión.