CommunityPesquisa e Análise de Dadosgithub.com

teefayb/claude-code-setup-demo

Altere de forma segura a forma dos dados armazenados (adicione, renomeie ou remova um campo em Link), incluindo uma atualização versionada de arquivos de dados existentes. Use quando uma tarefa precisar de um novo campo armazenado ou de uma alteração em um campo existente.

O que é claude-code-setup-demo?

Esta skill permite modificar o modelo de dados armazenados em arquivos JSON de forma segura, lidando com a compatibilidade retroativa. Ela suporta mudanças aditivas (adicionar campos opcionais com valores padrão) e mudanças críticas (renomear, remover, adicionar campos obrigatórios ou alterar tipos), que exigem versionamento dos arquivos de dados. A skill é útil para desenvolvedores que trabalham com aplicações que persistem dados localmente e precisam evoluir o esquema sem quebrar arquivos existentes. Ela funciona nos principais agentes de IA (Claude Code, Cursor, Codex) e automatiza a leitura de esquemas, implementação de upgrades, atualização de dados de seed e criação de testes.

Funciona com✓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 Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Altere o modelo de dados: $ARGUMENTS

Os dados armazenados residem em arquivos JSON que já existem nas máquinas dos colegas e no servidor, portanto, toda alteração deve ler arquivos antigos sem quebrá-los.

Etapas

  1. Leia src/lib/links/schema.ts, src/lib/links/store.ts e data/seed.json.
  2. Decida se a mudança é aditiva (novo campo opcional com valor padrão) ou crítica (renomear, remover, novo campo obrigatório, alteração de tipo).
    • Aditiva: adicione o campo com .optional() ou .default(...) ao linkSchema, e também ao linkInputSchema se os usuários puderem defini-lo. Sem incremento de versão.
    • Crítica: incremente o literal version do arquivo de dados (ex.: 1 → 2). Mantenha o esquema antigo como dataFileV1Schema e adicione uma função upgradeV1toV2(data) em store.ts que load() aplica ao ler um arquivo v1. Nunca reescreva arquivos durante a leitura; o próximo save() escreve v2.
  3. Atualize data/seed.json para o novo formato.
  4. Atualize a interface somente se a tarefa exigir.
  5. Testes em src/lib/links/store.test.ts:
    • O novo campo passa por createLink e listLinks sem perdas.
    • Para mudanças críticas: escreva um arquivo v1 no caminho de dados temporário e verifique se listLinks() retorna links atualizados, e que um createLink subsequente salva um arquivo v2.
  6. Execute npm run check e npm run build.
  7. Em seu resumo, indique se a mudança foi aditiva ou crítica e o que acontece com os arquivos de dados existentes.

Individual skills in this repo

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

Habilidades Relacionadas