Tutoriales
Claude Opus 5.5: detectar colisiones Unicode en nombres de archivos
Pide a Claude Opus 5.5 comparar nombres originales con claves normalizadas antes de proponer cambios.

Hazlo con Panelly
De la inspiración al anuncio de tu producto
Empieza con una imagen y una idea. Crea un anuncio de cuatro viñetas, un conjunto de materiales o un vídeo con Panelly.
Crear con Panelly Edita la propuesta antes de generar.
Pide a Claude Opus 5.5 comparar nombres originales con claves normalizadas antes de proponer cambios. Dos nombres pueden parecer iguales y contener secuencias Unicode distintas. Conserva ruta original e ID estable: compartir una clave normalizada exige investigar, no autoriza borrar archivos.
Distingue caracteres de plantillas de nombres
Un informe de desarrollo de 2017 describe nombres NFC/NFD en un sistema de archivos respaldado por nube. Es un relato histórico de un entorno concreto. No concluyas que todos los Mac reescriben nombres ni supongas igual comportamiento al recibir un ZIP.
Las preguntas de Unicode sobre normalización distinguen equivalencia canónica y de compatibilidad. NFC y NFD pueden representar texto canónicamente equivalente con secuencias distintas. NFKC también puede colapsar distinciones de compatibilidad; no es un valor neutro para identificadores de marca. La documentación de String.normalize ofrece una comparación explícita en JavaScript.
| Campo | Conservar o calcular | Finalidad |
|---|---|---|
| ID y ruta relativa original | Sin cambios | Encontrar la fuente exacta |
| Clave NFC | Calcular aparte | Agrupar nombres equivalentes |
| Hash real de contenido | Calcular desde bytes | Distinguir contenido, no apariencia |
| Política del destino | Documentar aparte | Aplicar restricciones y uso de mayúsculas |
Calcula dos nombres visualmente iguales
El primer nombre usa una é precompuesta; el segundo, e y un acento combinante. Contienen 8 y 9 puntos de código, y ocupan 9 y 10 bytes UTF-8. Son cálculos de estas cadenas, no límites universales de longitud de archivo.
const names = ['caf\u00e9.png', 'cafe\u0301.png'];
const rows = names.map(raw => ({
raw,
codePoints: [...raw].length,
utf8Bytes: new TextEncoder().encode(raw).length,
nfcKey: raw.normalize('NFC')
}));
console.table(rows);
Las claves NFC coinciden. Si los hashes reales difieren, conserva ambos archivos y resuelve qué revisión aprobada representa cada uno. Incluso hashes iguales solo prueban igualdad de bytes; dos campañas pueden referenciar intencionadamente los mismos píxeles. Una clave comparativa no debe sustituir silenciosamente una clave de almacenamiento, URL pública o nombre visible. La política de mayúsculas del destino es independiente de Unicode.
Prompt completo de auditoría de solo lectura
Audita el inventario sin renombrar, borrar, sobrescribir ni subir archivos. Las entradas incluyen ID estable, ruta relativa original y hash real de bytes cuando exista. No inventes hashes.
Añade una clave NFC conservando la cadena original. Informa por separado de equivalencia canónica, conflictos de mayúsculas y rutas exactamente duplicadas. No uses NFKC ni minúsculas para reescribir marcas o identificadores.
Para cada colisión, lista IDs, cadenas originales con puntos de código escapados, hashes disponibles, aprobaciones y decisión pendiente. Nombres normalizados iguales no implican contenido igual. Hashes iguales no autorizan borrar referencias de campañas.
Devuelve un manifiesto de destino propuesto solo después de resolver conflictos. Conserva las URL existentes salvo migración aprobada aparte. Tras una copia autorizada a un directorio nuevo, verifica cantidades y hashes y descomprime un archivo de prueba en el entorno previsto del destinatario. Declara entornos sin probar.
Es un uso propuesto y acotado conforme a la guía oficial de Opus. Las cadenas se calcularon localmente; no se realizó un renombrado real, prueba del destinatario ni ejecución de Opus.
Separa comparación y migración
Conserva dos filas para las dos fuentes aunque exista un único grupo NFC. Resuelve aprobación y destino antes de copiar. Prueba un archivo pequeño con esos nombres exactos: una vista correcta en tu gestor no demuestra que el receptor los preserve. Si cambia una URL existente, trata redirecciones, referencias y caché como una migración independiente.
**¿Conviene eliminar todos los acentos?** Cambia nombres y puede crear nuevas colisiones. Usa IDs estables si la entrega exige caracteres restringidos.
**¿NFC resuelve cualquier conflicto?** No. Mayúsculas, nombres reservados, longitud y permisos dependen del destino.
Exporta imágenes aprobadas desde Panelly Studio y vincúlalas al inventario. El flujo de nombres de materiales explica campos legibles; esta auditoría examina sus caracteres internos. Ningún flujo presupone integración de Opus en Panelly.


