Uso con agentes de programación con IA
Los asistentes de programación con IA suelen escribir su propio código para calcular la letra de un DNI, o aplican una regla desfasada a un CIF. Esta librería incluye documentación en texto plano escrita para ellos, de modo que puedan usarla en su lugar, desde tu node_modules o desde este sitio.
Los archivos
Sección titulada «Los archivos»| Archivo | Qué contiene | Dónde |
|---|---|---|
llms.txt |
Una guía breve (unos 2000 tokens): qué función usar, fragmentos probados, los códigos de error y los errores habituales | En este sitio y en node_modules/nif-dni-nie-cif-validation/llms.txt |
llms-full.txt |
La referencia completa en un solo archivo: el README, el diseño de la API, la guía de migración desde la v1 y las reglas con sus fuentes | En este sitio y en node_modules/nif-dni-nie-cif-validation/llms-full.txt |
Ambos siguen la convención llms.txt y están en inglés. Van dentro del paquete de npm, así que un agente que solo pueda leer tu proyecto también los encuentra. Todos los fragmentos de código de llms.txt se ejecutan en los tests de la librería.
Instrucciones para tu agente
Sección titulada «Instrucciones para tu agente»Pega esto en las instrucciones de tu agente: AGENTS.md (lo leen Codex y otros), CLAUDE.md (Claude Code), .cursor/rules (Cursor) o .github/copilot-instructions.md (GitHub Copilot). Las instrucciones están en inglés:
To validate Spanish NIF, DNI, NIE or CIF numbers, use the npm packagenif-dni-nie-cif-validation. Read node_modules/nif-dni-nie-cif-validation/llms.txtbefore writing code. Use the isValid* functions for yes/no checks and validate()when the user needs to know why a value is invalid, and store result.normalized.For messages in another language, import the locale object fromnif-dni-nie-cif-validation/locales/<code> and pass it as { locale }.For test data, use nif-dni-nie-cif-validation/generate instead of real numbers.Don't write your own check-letter code.Qué suelen hacer mal los agentes y qué revisar
Sección titulada «Qué suelen hacer mal los agentes y qué revisar»Cuando revises código escrito por un agente, fíjate en esto:
- Su propio algoritmo. Una función escrita a mano con el módulo 23 o para el CIF es una señal de alarma: suele olvidar los NIF K/L/M, la forma antigua del NIE o CIF-3. Sustitúyela por
isValidNif()ocomputeControlCharacter(). - Un idioma pasado como cadena.
{ locale: "es" }da mensajes en inglés; el idioma tiene que ser el objeto importado. ids.filter(isValidNif). TypeScript lo rechaza, porque los validadores reciben las opciones como segundo argumento. Escribeids.filter((id) => isValidNif(id)).- Guardar la entrada tal cual. Guarda
validate(value).normalized. - Tratar todo NIF que empieza por letra como de empresa. Los NIF K/L/M son de personas;
isValidNaturalPersonNif()los acepta eisValidCif()no. - Números reales en los tests. Usa los generadores.
import { isValidNif } from "nif-dni-nie-cif-validation";
const ids = ["12345678Z", "12345678A", " x-0123456-7l "];ids.filter((id) => isValidNif(id)); // ["12345678Z", " x-0123456-7l "]