teefayb/claude-code-setup-demo

Cambia la forma de los datos almacenados (añadir, renombrar o eliminar un campo en Link) de forma segura, incluyendo una actualización versionada de los archivos de datos existentes. Úsalo cuando una tarea necesite un campo almacenado nuevo o modificado.

¿Qué es claude-code-setup-demo?

Este skill guía al agente AI a través de modificaciones seguras en el modelo de datos subyacente de un proyecto (almacenado en archivos JSON), garantizando compatibilidad con datos existentes. Es especialmente útil cuando una tarea requiere añadir, renombrar o eliminar un campo en la entidad `Link`, manejando tanto cambios aditivos (no destructivos) como cambios disruptivos (que requieren versionado). El skill está diseñado para plataformas como Claude Code, Cursor o Codex. Funciona instruyendo al agente para leer los archivos actuales de esquema, almacenamiento y semillas; decidir si el cambio es aditivo (agregar un campo opcional con valor por defecto) o disruptivo (renombrar, eliminar, cambiar tipo); y en caso disruptivo, aumentar el número de versión del archivo de datos, conservar el esquema antiguo e implementar una función de actualización (`upgradeV1toV2`). Luego, actualiza los archivos de semillas correspondientes, la interfaz de usuario solo si lo pide la tarea, y ejecuta las pruebas para verificar el correcto funcionamiento y la conversión de archivos antiguos.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/teefayb/claude-code-setup-demo/tree/HEAD/.claude/skills/change-data-model

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Cambiar el modelo de datos: $ARGUMENTS

Los datos almacenados residen en archivos JSON que ya existen en las máquinas de los compañeros y en el servidor, por lo que cada cambio debe leer archivos antiguos sin romper nada.

Pasos

  1. Lee src/lib/links/schema.ts, src/lib/links/store.ts y data/seed.json.
  2. Decide si el cambio es aditivo (nuevo campo opcional con un valor por defecto) o disruptivo (renombrar, eliminar, nuevo campo obligatorio, cambio de tipo).
    • Aditivo: agrega el campo con .optional() o .default(...) a linkSchema, y también a linkInputSchema si los usuarios pueden establecerlo. Sin incremento de versión.
    • Disruptivo: incrementa el literal version del archivo de datos (por ejemplo, 1 → 2). Mantén el esquema antiguo como dataFileV1Schema, y añade una función upgradeV1toV2(data) en store.ts que load() aplique cuando lea un archivo v1. Nunca sobrescribas archivos al leer; el siguiente save() escribe v2.
  3. Actualiza data/seed.json a la nueva forma.
  4. Actualiza la interfaz de usuario solo si la tarea lo solicita.
  5. Pruebas en src/lib/links/store.test.ts:
    • El nuevo campo viaja de ida y vuelta a través de createLink y listLinks.
    • Para cambios disruptivos: escribe un archivo v1 en la ruta de datos temporales y verifica que listLinks() devuelva enlaces actualizados, y que un createLink posterior guarde un archivo v2.
  6. Ejecuta npm run check y npm run build.
  7. En tu resumen, indica si el cambio fue aditivo o disruptivo, y qué sucede con los archivos de datos existentes.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados