Claude Code puede cargar instrucciones de varios lugares a la vez. Si mantienes dos proyectos de clientes, una sesión nueva en cada directorio permite comprobar qué archivos entraron realmente en cada contexto. El resultado útil son dos listas registradas, no suponer que las carpetas hermanas separan la información de los clientes.
El gran cambio
Qué cambió: Esta guía convierte la jerarquía documentada de instrucciones de Claude Code en una comparación repetible entre dos directorios existentes y autorizados. Registras los archivos cargados al iniciar y compruebas si aparece un archivo de instrucciones anidado tras una lectura permitida.
Por qué importa: Un directorio padre común, una instrucción personal, una importación, regla o ajuste pueden afectar a ambos proyectos. /context muestra qué archivos de memoria están cargados en la sesión activa, para investigar una ruta inesperada antes de trabajar para el cliente.
Qué vigilar: Las instrucciones cargadas no limitan los archivos a los que Claude puede acceder ni garantizan que las obedezca. Revisa la cuenta, permisos, importaciones, hooks y condiciones de uso de datos antes de enviar contenido del cliente al proveedor elegido.
Qué necesitas
Este procedimiento es para un desarrollador autorizado a inspeccionar dos repositorios de clientes existentes y su configuración de Claude Code. Obtén autorización aparte para enviar el contenido concreto al proveedor o cuenta Claude elegidos. El permiso para editar archivos locales no resuelve esa decisión. Necesitas terminal, Claude Code instalado, una cuenta o proveedor admisible y un archivo existente sin datos sensibles dentro de un subdirectorio de un proyecto. Consulta la documentación de Anthropic sobre instalación, costes y uso de datos correspondiente a tu vía de acceso.
La estructura siguiente muestra las rutas que debes identificar; no pide crear proyectos nuevos. Sustituye cada ruta ilustrativa de los comandos por su ruta real autorizada. Un archivo padre CLAUDE.md es opcional y solo debe contener instrucciones aprobadas para ambos proyectos. El archivo anidado y el documento inocuo ya deben ser adecuados para la vía de datos de la cuenta elegida.
AUTHORIZED_PARENT/
CLAUDE.md optional shared instructions
project-A/
CLAUDE.md A's project instructions
project-B/
CLAUDE.md B's project instructions
subdir/
CLAUDE.md B's nested instructions
README.md authorized, nonsensitive read target1. Resuelve las dos rutas de proyecto
Usa una de las dos opciones: PowerShell o Bash. Asigna a las variables los directorios reales. Las comprobaciones exigen rutas existentes, comparan las cadenas resultantes y confirman que existe el archivo de lectura de B. La función de PowerShell Resolve-Path puede conservar un alias de enlace simbólico o unión; distintas cadenas no prueban que sean proyectos físicos diferentes. Inspecciona enlaces y uniones en ambas rutas de inicio y sus ancestros, sigue sus destinos y confirma que A y B sean proyectos distintos antes de continuar. Guarda rutas, comprobaciones y posteriores listas de contexto en un registro privado.
$a = (Resolve-Path -LiteralPath 'C:\actual\authorized\project-A' -ErrorAction Stop).Path
$b = (Resolve-Path -LiteralPath 'C:\actual\authorized\project-B' -ErrorAction Stop).Path
if (-not (Test-Path -LiteralPath $a -PathType Container)) { throw 'A must be an existing directory' }
if (-not (Test-Path -LiteralPath $b -PathType Container)) { throw 'B must be an existing directory' }
if ($a -eq $b) { throw 'A and B must be different directories' }
$target = Join-Path $b 'subdir/README.md'
if (-not (Test-Path -LiteralPath $target -PathType Leaf)) { throw 'Choose an existing authorized nonsensitive file in B/subdir' }
$a
$b
$targeta=$(realpath -- /actual/authorized/project-A) || exit 1
b=$(realpath -- /actual/authorized/project-B) || exit 1
test -d "$a" || { printf '%s\n' 'A must be an existing directory' >&2; exit 1; }
test -d "$b" || { printf '%s\n' 'B must be an existing directory' >&2; exit 1; }
test "$a" != "$b" || { printf '%s\n' 'A and B must be different directories' >&2; exit 1; }
target="$b/subdir/README.md"
test -f "$target" || { printf '%s\n' 'Choose an existing authorized nonsensitive file in B/subdir' >&2; exit 1; }
printf '%s\n' "$a" "$b" "$target"Si los proyectos no son hermanos, registra por separado sus cadenas reales de ancestros. No deduzcas un padre común del dibujo.
2. Audita las posibles cargas antes de abrir los proyectos
Para cada directorio de inicio resuelto, inspecciona CLAUDE.md, .claude/CLAUDE.md, CLAUDE.local.md, AGENTS.md y .claude/AGENTS.md allí y en todos sus ancestros hasta la raíz del sistema de archivos. Revisa también las instrucciones administradas de tu sistema operativo, ~/.claude/CLAUDE.md, las reglas de usuario y los archivos .claude/rules/ del proyecto. El manual de memoria indica que los archivos CLAUDE.md encontrados se concatenan; uno más cercano no borra el texto de un ancestro. Un archivo anidado CLAUDE.md suele cargarse cuando Claude lee, escribe o edita otro archivo en ese directorio. Las reglas limitadas por ruta pueden cargarse al acceder a un archivo coincidente.
Estos comandos solo muestran rutas y proporcionan un inventario de ancestros sin revelar contenidos. Revisa los archivos devueltos con autorización del propietario correspondiente. Repite con ambas variables; en Bash, el bucle incluye las dos automáticamente.
foreach ($start in @($a, $b)) {
$dir = [System.IO.DirectoryInfo]::new($start)
while ($null -ne $dir) {
Get-Item -LiteralPath $dir.FullName -Force | Select-Object FullName,LinkType,Target
foreach ($name in @('CLAUDE.md', 'CLAUDE.local.md', 'AGENTS.md', '.claude/CLAUDE.md', '.claude/AGENTS.md')) {
$candidate = Join-Path $dir.FullName $name
if (Test-Path -LiteralPath $candidate -PathType Leaf) { $candidate }
}
$dir = $dir.Parent
}
}for start in "$a" "$b"; do
dir=$start
while :; do
for name in CLAUDE.md CLAUDE.local.md AGENTS.md .claude/CLAUDE.md .claude/AGENTS.md; do
test -f "$dir/$name" && printf '%s\n' "$dir/$name"
done
test "$dir" = / && break
dir=$(dirname -- "$dir")
done
doneLee los archivos reales y sus importaciones @path ; las rutas relativas se resuelven desde el archivo que las contiene. Sigue los enlaces simbólicos o uniones de cada ruta de PowerShell y sus ancestros; audita tanto las jerarquías nombradas como las de destino que puedan afectar a la sesión. Comprueba destinos de enlaces de instrucciones y patrones claudeMdExcludes . Inspecciona .claude/settings.json, .claude/settings.local.json, ajustes de usuario y administrados, opciones de inicio --settings o --setting-sources , hooks configurados y confianza de cada proyecto. CLAUDE_CONFIG_DIR puede cambiar el directorio de configuración de usuario; compruébalo antes de dar por hecho ~/.claude. Revisa qué comandos podría ejecutar un hook antes de aceptar la confianza del espacio de trabajo. Una importación externa puede pedir aprobación; si se rechaza, no aparecerá como se esperaba. El manual de ajustes explica qué capa aporta cada ajuste y cuáles esperan la confianza del proyecto.
Comprueba la opción Project instructions en /config o en el ajuste de plugin de usuario/administrado. La documentación actual describe AGENTS.md como alternativa condicional cuando ningún archivo del proyecto o sus ancestros CLAUDE.md o CLAUDE.local.md cumple los requisitos; claude-md-and-agents-md carga ambos. La compatibilidad directa con AGENTS.md depende de la versión y el plugin habilitado. Versiones anteriores y algunos ajustes podían omitirlo, incluido el problema de una versión tratado en el reportaje de BIG CHANGE sobre el indicador de función AGENTS.md. Usa tu versión real, el ajuste y el resultado de /context en vez de suponer que siempre se carga.
Registra los argumentos --add-dir y CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD por separado. --add-dir amplía el acceso a archivos; de forma predeterminada no carga el archivo CLAUDE.md del directorio adicional. La variable de entorno habilita esa carga. Examina la memoria automática con /memory como canal separado: puede compartirse entre worktrees y subdirectorios de un repositorio, y su ubicación puede sustituirse. Comprueba ubicación y contenido reales antes de interpretar la comparación. Nunca pongas credenciales o datos no publicados de clientes en instrucciones de ejemplo o registros públicos.
Antes de iniciar, comprueba estas variables de entorno en la misma shell. Un valor Bash vacío significa ausente o vacío; PowerShell solo muestra variables presentes. Estos valores no descartan los de archivos de configuración: confirma los ajustes activos dentro de cada sesión.
Get-Item Env:CLAUDE_CONFIG_DIR,Env:CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD -ErrorAction SilentlyContinue | Select-Object Name,Valueprintf 'CLAUDE_CONFIG_DIR=%s\n' "${CLAUDE_CONFIG_DIR-}"
printf 'CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=%s\n' "${CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD-}"3. Inicia una sesión nueva en el proyecto A
Registra claude --version y el comando exacto. Inicia un proceso nuevo desde A, sin --resume ni --continue. Acepta la confianza solo después de auditar ajustes y hooks. Ejecuta /context antes de pedir a Claude que abra B o cualquier archivo anidado. Anota las rutas exactas de archivos de memoria y reglas; comprueba su presencia, sin deducir el orden de inyección. Usa /memory para inspeccionar las entradas personales, de proyecto y memoria automática mostradas, y su ubicación. Después sal de la sesión.
claude --version
Set-Location -LiteralPath $a -ErrorAction Stop
claudeclaude --version
cd -- "$a" && claudeDentro de Claude Code, /status identifica las fuentes de ajustes activas, y /permissions muestra las reglas de herramientas vigentes y sus fuentes. Anótalas junto a la lista de instrucciones:
/context
/memory
/status
/permissions
/exitDeberían aparecer las instrucciones aplicables de A y ancestros comunes, según los ajustes y exclusiones auditados. Un archivo propio de B no debería pertenecer a la jerarquía de inicio de A. Si aparece mediante importación, enlace, directorio añadido u otro canal, registra el mecanismo. Su ausencia no prueba que los archivos de B sean inaccesibles.
4. Inicia una sesión aparte en B y lee un archivo anidado
Usa un proceso nuevo de Claude Code en B con la misma versión y vía de cuenta/proveedor. Registra /context y /memory antes de cualquier lectura anidada. Pide a Claude que lea únicamente el archivo exacto, autorizado y sin datos sensibles. Confirma que la lectura ocurrió y ejecuta /context de nuevo para comparar rutas presentes. La regla de carga del manual prevé que el archivo de B subdir/CLAUDE.md entre en contexto después de acceder a otro archivo en ese directorio, salvo que un ajuste, exclusión o comportamiento de versión cambie el resultado.
Set-Location -LiteralPath $b -ErrorAction Stop
claudecd -- "$b" && claudeDentro de Claude Code, sustituye la petición de lectura solo si el destino autorizado tiene otra ruta relativa:
/context
/memory
/status
/permissions
Read only subdir/README.md. Tell me whether that exact file was read; do not open other files or display its contents.
/context
/exitClaude Code puede solicitar permiso para una herramienta o proponer otra acción. Aprueba únicamente la lectura autorizada y confirma que la herramienta abrió realmente ese archivo. Una respuesta que afirma haberlo leído no basta por sí sola.
5. Compara las listas y explica diferencias
Guarda una tabla privada con las rutas resueltas A y B, raíces de repositorios, versión de Claude Code, cuenta/proveedor, comandos, confianza, fuentes de ajustes, directorios adicionales, rutas de instrucciones y reglas, importaciones, ubicaciones de memoria automática y las tres listas de /context observadas: A al iniciar, B antes de leer y B después de leer. Marca cada archivo esperado como presente, ausente o sin explicar. No copies instrucciones de clientes a un informe público.
Si falta un archivo esperado, verifica primero el directorio de inicio y la ruta real. Después comprueba Project instructions y el plugin/versión, claudeMdExcludes, --setting-sources, importaciones y aprobación externa, patrones de reglas, enlaces simbólicos y lectura anidada confirmada. Si aparece un archivo inesperado, rastrea ancestros, instrucciones personales o administradas, importaciones, reglas, hooks, carga de memoria de directorios adicionales y memoria automática. Un ancestro común o instrucción personal pueden ser intencionados; su procedencia y contenido determinan si pertenecen a ambos proyectos.
Cambia instrucciones o ajustes solo con autorización del cliente correspondiente. Revisa las diferencias propuestas, conserva restricciones y repite ambas observaciones en sesiones nuevas después de modificar. Si no puedes explicar una ruta o no tienes permiso para inspeccionar un canal, pausa el trabajo del cliente y pide al propietario o administrador resolver esa incertidumbre concreta.
El ejercicio termina cuando tienes dos listas de inicio, la lista verificada de B antes/después de leer el archivo anidado y una explicación de cada ruta inesperada relevante. Establece la presencia observada de instrucciones en esas sesiones. No establece confidencialidad, aislamiento de acceso, obediencia garantizada ni el orden exacto en que el modelo utilizó instrucciones. Para inspeccionar y continuar una conversación existente, consulta nuestra guía de contexto de sesión Claude Code.
Los cargos y límites dependen del plan, autenticación y proveedor. La guía de costes de Anthropic contiene las condiciones actuales. Este artículo se preparó con documentación: BIG CHANGE no inspeccionó archivos de clientes, ejecutó sesiones A/B, probó un resultado de modelo ni midió tiempo o coste.
Fuentes y lecturas adicionales
- Anthropic, «Cómo recuerda Claude tu proyecto»: alcance de instrucciones, importaciones, carga anidada,
AGENTS.md, reglas, exclusiones, directorios añadidos, memoria automática y/memory. Las opciones concretas pueden cambiar con las versiones de Claude Code. - Anthropic, «Archivos de ajustes y precedencia»: configuración de usuario, proyecto, local y administrada, incluidos
/status, confianza y hooks. - Anthropic, «Configurar permisos»:
/permissionsmuestra las reglas de herramientas activas y sus fuentes; las instrucciones no imponen por sí mismas el acceso a herramientas. - Anthropic, «Explorar la ventana de contexto»:
/contextmuestra archivos de memoria cargados en una sesión activa; la presencia mostrada no prueba el orden de inyección. - Anthropic, instalación, costes y uso de datos: confirma requisitos de instalación y cuenta; lee también las condiciones separadas de costes y uso de datos para tu vía de acceso.



