Qué incluye un system prompt efectivo
El [[system-prompt]] no es decoración — define cómo el agente se comporta en las próximas 200 tareas. Un system prompt genérico te da output genérico. Uno específico a tu proyecto te ahorra re-explicar convenciones cada sesión y evita que el agente "reinvente" decisiones ya tomadas.
System prompt efectivo = identidad + stack + convenciones + prohibiciones explícitas.
Los cuatro bloques
1. Identidad y rol
Quién es el agente en este repo. Ejemplo: "Eres un agente que escribe SvelteKit 2 + Svelte 5 con runes, TypeScript, y Tailwind 4 con tokens semánticos."
2. Stack y convenciones
Lista concreta: framework, versiones, patrones. "Path aliases: $components, $lib. Stores con runes, no con writable() legacy."
3. Comportamientos esperados
Cómo actúa. "Lee CLAUDE.md y specs/* antes de cambios grandes. Corre svelte-check antes de marcar tarea completa."
4. Prohibiciones explícitas
Lo que NO hace. "Nunca deploya a main directamente. Nunca agrega dependencia sin autorización explícita. Nunca usa hex literales — solo tokens."
Dónde vive
En Claude Code: CLAUDE.md en la raíz del repo. Se carga automáticamente. Se versiona con git. Todo el equipo (y el agente) ven el mismo.
El test del system prompt
Compara: sesión nueva sin system prompt vs. con. Si el output es más consistente con tu proyecto, el prompt funciona. Si no hay diferencia, el prompt es ruido.
Abre tu `CLAUDE.md`. ¿Tiene los cuatro bloques? ¿Qué prohibiciones explícitas incluye? Agrega al menos 3 si faltan.
- System prompt = identidad + stack + comportamientos + prohibiciones.
- Vive en `CLAUDE.md`, versionado con git.
- Si no cambia el output vs. sin él, el prompt es ruido.