Modelar os dados do produto
Use esta skill para entender e evoluir dados persistentes, sem escolher banco ou
biblioteca por suposição. Leia a stack, o sistema atual, migrations, schemas,
models, contratos e testes antes de propor alteração.
Trabalho
- Identifique as entidades, seus papéis e as relações observadas no código.
- Registre campos, tipos, obrigatoriedade, origem, ciclo de vida e quem pode
consultar ou alterar cada informação.
- Descreva unicidade, consistência, retenção, exclusão, histórico e migração
quando forem pertinentes.
- Atualize a seção de dados da spec e encaminhe respostas confirmadas para
$specsfy-aux-database e .specsfy/DATABASE.md.
- Derive cenários para criação, leitura, atualização, exclusão, autorização e
dados inválidos. A implementação usa o especialista do banco detectado.
Não invente campos, relações ou tecnologia. A pessoa confirma o que o produto
precisa guardar quando o sistema atual não responder.
Quando usar
- Use ao alterar tabelas, schemas, models, migrations ou contratos persistentes.
- Use também ao mapear relações e ciclos de vida antes de criar uma spec.
- Não use para escolher uma biblioteca de banco sem dados do projeto.
Fluxo
- Ler stack, migrations, schemas, models e testes existentes.
- Separar entidades, relações, campos e estados observados.
- Registrar regras de unicidade, retenção, exclusão e histórico.
- Comparar a proposta com os contratos e consultas atuais.
- Encaminhar a confirmação para a skill de banco do projeto.
- Exigir uma tarefa
[MIGRATION] com arquivo versionado para qualquer mudança
ligada ao banco e conferir sua aplicação em uma base de teste.
Padrões
- Cada campo registra tipo, origem, presença e ciclo de vida.
- Cada relação informa cardinalidade e forma de carga.
- Toda migration preserva dados existentes ou descreve a conversão necessária.
Antipadrões
- Criar campos sem uso observado no produto.
- Alterar uma relação sem conferir queries, factories e testes.
- Escolher tecnologia antes de ler o stack existente.
Validação
- Rode os testes e validadores ligados ao modelo persistente.
- Confira a migration em uma cópia do banco e compare o schema resultante.
- Confirme o arquivo, o comando de aplicação e a consulta do estado da
migration antes de encerrar a tarefa.
- Não declare o modelo pronto sem uma saída verificável do projeto.
Skills relacionadas
$specsfy-aux-database para manter o mapa persistente do projeto.
$specsfy-specialist-postgres para detalhes próprios do Postgres.
$specsfy-specialist-laravel para migrations e models Laravel.
Leia references/standards.md para fontes de
modelagem, migrations e contratos persistentes.
1---2name: specsfy-specialist-data-modeling3description: Modelar dados, entidades, relações, ciclos de vida, qualidade e contratos persistentes antes de implementar mudanças.4---56# Modelar os dados do produto78Use esta skill para entender e evoluir dados persistentes, sem escolher banco ou9biblioteca por suposição. Leia a stack, o sistema atual, migrations, schemas,10models, contratos e testes antes de propor alteração.1112## Trabalho13141. Identifique as entidades, seus papéis e as relações observadas no código.152. Registre campos, tipos, obrigatoriedade, origem, ciclo de vida e quem pode16 consultar ou alterar cada informação.173. Descreva unicidade, consistência, retenção, exclusão, histórico e migração18 quando forem pertinentes.194. Atualize a seção de dados da spec e encaminhe respostas confirmadas para20 `$specsfy-aux-database` e `.specsfy/DATABASE.md`.215. Derive cenários para criação, leitura, atualização, exclusão, autorização e22 dados inválidos. A implementação usa o especialista do banco detectado.2324Não invente campos, relações ou tecnologia. A pessoa confirma o que o produto25precisa guardar quando o sistema atual não responder.2627## Quando usar2829- Use ao alterar tabelas, schemas, models, migrations ou contratos persistentes.30- Use também ao mapear relações e ciclos de vida antes de criar uma spec.31- Não use para escolher uma biblioteca de banco sem dados do projeto.3233## Fluxo34351. Ler stack, migrations, schemas, models e testes existentes.362. Separar entidades, relações, campos e estados observados.373. Registrar regras de unicidade, retenção, exclusão e histórico.384. Comparar a proposta com os contratos e consultas atuais.395. Encaminhar a confirmação para a skill de banco do projeto.406. Exigir uma tarefa `[MIGRATION]` com arquivo versionado para qualquer mudança41 ligada ao banco e conferir sua aplicação em uma base de teste.4243## Padrões4445- Cada campo registra tipo, origem, presença e ciclo de vida.46- Cada relação informa cardinalidade e forma de carga.47- Toda migration preserva dados existentes ou descreve a conversão necessária.4849## Antipadrões5051- Criar campos sem uso observado no produto.52- Alterar uma relação sem conferir queries, factories e testes.53- Escolher tecnologia antes de ler o stack existente.5455## Validação5657- Rode os testes e validadores ligados ao modelo persistente.58- Confira a migration em uma cópia do banco e compare o schema resultante.59- Confirme o arquivo, o comando de aplicação e a consulta do estado da60 migration antes de encerrar a tarefa.61- Não declare o modelo pronto sem uma saída verificável do projeto.6263## Skills relacionadas6465- `$specsfy-aux-database` para manter o mapa persistente do projeto.66- `$specsfy-specialist-postgres` para detalhes próprios do Postgres.67- `$specsfy-specialist-laravel` para migrations e models Laravel.6869Leia [references/standards.md](references/standards.md) para fontes de70modelagem, migrations e contratos persistentes.