Specsfy Specialist Design System
Quando usar
Esta skill governa o documento DESIGNSYSTEM.MD do projeto consumidor. Ela
define linguagem visual, shell, composição de superfícies, estados e regras de
negócio expostas na interface. O documento orienta UX, UI, experiência de
interface e componentes React.
Use antes de criar ou revisar uma tela, um fluxo CRUD, uma navegação, um
formulário ou um componente global. Use também quando o documento não existir,
estiver desatualizado ou entrar em conflito com uma tela já projetada.
Não use esta skill para catalogar componentes, props ou arquivos locais. Esse
registro pertence a INTERFACE.md, que deve apontar para as escolhas macro sem
copiá-las.
Fontes obrigatórias
Leia, nesta ordem:
DESIGNSYSTEM.MD na raiz do projeto consumidor, se existir.
.specsfy/templates/DESIGNSYSTEM.MD para criar a fonte ausente.
INTERFACE.md para conhecer componentes e telas já registradas.
.specsfy/STACK.md, manifests, rotas, telas, permissões e regras do
domínio relacionadas à entrega.
Quando a fonte não existir, copie o template gerenciado para DESIGNSYSTEM.MD
e preencha apenas o contexto já confirmado. Não esconda lacunas com texto
genérico.
Fluxo
- Identifique o produto, o módulo, a superfície e o fluxo afetado.
- Compare a solicitação com
DESIGNSYSTEM.MD e preserve as regras já ativas.
- Se a pessoa não informa direção visual, aplique os defaults do documento e
registre isso como direção padrão da entrega.
- Se a pessoa fornece uma direção diferente, registre a exceção, seu alcance
e a regra que ela substitui. Uma exceção de tela não altera o produto todo.
- Atualize o documento somente quando a regra tiver alcance macro. Registre
componentes e telas específicas em
INTERFACE.md.
- Mapeie os cenários canônicos da superfície antes de entregar a orientação
para UX, UI ou implementação.
- Retorne os arquivos lidos, a regra aplicada, as exceções registradas e os
cenários cobertos.
Em toda entrega visual, faça a revisão durante o desenvolvimento mesmo sem
pedido da pessoa. Confira bordas, espaçamentos, margens, padding e tipografia
do sistema nos viewports e estados relevantes. Registre o método, o resultado e
os ajustes no item VISUAL da tarefa.
Padrões
Defaults obrigatórios para SaaS
Quando não houver direção visual contrária, aplique estas composições:
- Lista de CRUD:
PageHeader + resumo útil + DataGrid. Use busca, filtros,
ordenação, paginação, seleção e ações por linha quando o volume ou o domínio
pedir.
- Detalhe:
PageHeader + DetailLists, com status, próxima ação e relações ou
atividade quando forem úteis para o domínio.
- Criar e editar:
PageHeader + seções de formulário em duas colunas
responsivas, com coluna de contexto e painel de campos.
- Formulário: labels visíveis acima dos campos, ajuda contextual, valores
preservados e estado de envio.
- Erro de campo: borda, fundo ou ícone semântico vermelho, mensagem visível
abaixo do campo, associação semântica e foco no primeiro erro.
- Erros múltiplos: resumo no início com links para os campos afetados.
- Tela:
loading, vazio, erro, sucesso, sem permissão, conteúdo parcial e não
salvo quando o fluxo comportar esses estados.
- Breadcrumb: obrigatório em toda tela da aplicação, com o nome da equipe ativa
visível antes do módulo e do título atual. Em Laravel, reaproveitar o
Breadcrumb ou Breadcrumbs existente no layout e seus tipos de rota.
- DataGrid: linha inteira clicável para abrir o detalhe, com equivalente de
teclado e controles internos protegidos por
TableRowAction ou equivalente.
- CRUD: todas as telas reutilizam o mesmo
PageHeader componentizado; a lista
usa DataGrid em largura total, exibe a coluna ID e oferece botões de editar
e apagar na linha. O link da linha leva ao detalhe sem capturar os botões.
- Componentes recorrentes de cabeçalho, tabela, linha, ações, formulário,
estados e feedback entram em
INTERFACE.md e são reaproveitados antes de uma
nova implementação.
Esses defaults não significam aparência genérica. A personalidade vem da
hierarquia dos dados, linguagem do domínio, tipografia, tokens, ritmo, estados,
contraste e uso do shell. A composição deve informar e orientar a tarefa.
Dashboards e blocos comuns
Quando a entrega incluir um dashboard, use PageHeader, período ou escopo,
filtros, uma faixa curta de KPI com valor, unidade, período, comparação e
fonte, seguida da tendência ou distribuição principal e de uma lista detalhada
ou DataGrid para investigação. Cada indicador e visualização deve declarar
loading, vazio, erro e atualização, além de alternativa textual ou tabular para
gráficos.
Use primitives do shadcn/ui para controles fundamentais e blocos gratuitos do
ReUI para composições de CRUD e dashboard quando eles atenderem à tarefa.
Adapte tokens, dados, permissões, acessibilidade e linguagem do produto. Registre
origem, estados e consumidores em INTERFACE.md.
Formulários de criar e editar
Organize criar e editar em seções independentes. Cada seção apresenta contexto
à esquerda e o painel de campos à direita. No painel, campos relacionados usam
duas colunas nos breakpoints largos e uma coluna no mobile; campos longos,
uploads e erros podem ocupar toda a largura. O rodapé mantém cancelar e salvar
próximos do resultado da ação.
Breadcrumb e shell
Toda tela renderiza o Breadcrumb no shell global. A trilha deve mostrar a
equipe ativa, o módulo e a tela atual, usando labels reais e links válidos nos
itens anteriores. Em aplicações Laravel, localize e reaproveite o componente
Breadcrumb ou Breadcrumbs já presente no layout, junto da tipagem dos itens;
adapte apenas a composição necessária para inserir a equipe sem duplicar o
primitive. A equipe e a tela atual continuam visíveis no mobile.
Cenários que toda entrega deve cobrir
Consulte a seção Cenários canônicos do template e registre o recorte
aplicável em DESIGNSYSTEM.MD ou na spec da entrega:
- lista com registros;
- lista vazia;
- detalhe com status e ações;
- criação válida;
- edição válida;
- criação ou edição com erro de campo;
- ausência de permissão;
- falha de carregamento;
- alteração não salva, quando houver edição;
- resultado de ação destrutiva, quando houver exclusão ou cancelamento.
Para cada cenário, informe pré-condição, ação, resposta, estado visual, foco,
mensagem e próximo passo.
Limites e handoff
- UX define fluxo, arquitetura da informação e linguagem da tarefa a partir
desta fonte.
- UI define tokens, hierarquia, composição visual e estados a partir desta
fonte.
- Componentes React escolhem primitives e composições compatíveis depois de
ler esta fonte e
INTERFACE.md.
- A skill de experiência de interface coordena a entrega e não deve iniciar uma
tela sem carregar
DESIGNSYSTEM.MD.
Antipadrões
- Parede de cards quando a pessoa precisa comparar registros.
- Formulário sem seções quando o domínio tem grupos de informação distintos.
- Duas colunas no mobile ou uma grade que separa campo, ajuda e erro.
- Placeholder usado como único label.
- Erro indicado somente por ícone, cor ou toast distante do campo.
- Tela sem
PageHeader, sem estado vazio ou sem caminho de recuperação.
- Dashboard que mostra números sem pergunta, período, unidade ou próxima ação.
- Dashboard que usa uma parede de cartões sem hierarquia ou investigação.
- Bloco de ReUI ou primitive de shadcn/ui usado sem adaptar dados, estados,
permissões e tokens do produto.
- Novo token ou componente criado sem verificar o documento e
INTERFACE.md.
- Exceção visual local registrada como regra global sem alcance explícito.
- CRUD com cabeçalhos duplicados, DataGrid estreito, ID oculto ou sem ações de
editar e apagar na linha.
Validação
Antes do handoff, confira:
DESIGNSYSTEM.MD existe na raiz do projeto consumidor e tem classificação,
política, defaults, estados, cenários e histórico.
- A lista usa
DataGrid e PageHeader.
- Toda tela tem
Breadcrumb com o nome da equipe ativa, módulo e tela atual.
- Laravel reaproveita o
Breadcrumb ou Breadcrumbs já existente no layout.
- O detalhe usa
DetailLists e PageHeader.
- Criar e editar usam seções, coluna de contexto, painel de campos em duas
colunas nos breakpoints largos e uma coluna no mobile.
- Erros de campo aparecem em vermelho abaixo do campo e têm associação
semântica.
- A direção padrão ou a exceção está registrada com alcance.
INTERFACE.md contém somente o registro local da entrega.
- A spec e as tarefas cobrem estados, permissão, foco, mensagens e retorno.
- O dashboard, quando existir, tem filtros, contexto dos indicadores,
alternativa acessível para visualizações e investigação detalhada.
- Primitives shadcn/ui e blocos ReUI têm origem, estados e consumidores
registrados em
INTERFACE.md.
- Cada tarefa possui o item
VISUAL concluído antes de EVIDENCE, com a
conferência de bordas, espaçamentos, margens, padding e tipografia ou a
justificativa concreta de que não há interface.
Execute os testes e validadores da stack quando houver implementação. Para a
skill do Specsfy, execute quick_validate.py e a suíte do monorepo.
Skills relacionadas
- references/standards.md
skills/templates/DESIGNSYSTEM.MD
skills/templates/Interface.md
specsfy-specialist-interface-experience
specsfy-specialist-ux-design
specsfy-specialist-ui-design
specsfy-specialist-react-ui-components
1---2name: specsfy-specialist-design-system3description: Criar e manter o DESIGNSYSTEM.MD com regras macro de interface SaaS, padrões CRUD, estados e exceções por alcance. Use antes de projetar telas; não use para registrar componentes locais.4---56# Specsfy Specialist Design System78## Quando usar910Esta skill governa o documento `DESIGNSYSTEM.MD` do projeto consumidor. Ela11define linguagem visual, shell, composição de superfícies, estados e regras de12negócio expostas na interface. O documento orienta UX, UI, experiência de13interface e componentes React.1415Use antes de criar ou revisar uma tela, um fluxo CRUD, uma navegação, um16formulário ou um componente global. Use também quando o documento não existir,17estiver desatualizado ou entrar em conflito com uma tela já projetada.1819Não use esta skill para catalogar componentes, props ou arquivos locais. Esse20registro pertence a `INTERFACE.md`, que deve apontar para as escolhas macro sem21copiá-las.2223## Fontes obrigatórias2425Leia, nesta ordem:26271. `DESIGNSYSTEM.MD` na raiz do projeto consumidor, se existir.282. `.specsfy/templates/DESIGNSYSTEM.MD` para criar a fonte ausente.293. `INTERFACE.md` para conhecer componentes e telas já registradas.304. `.specsfy/STACK.md`, manifests, rotas, telas, permissões e regras do31 domínio relacionadas à entrega.3233Quando a fonte não existir, copie o template gerenciado para `DESIGNSYSTEM.MD`34e preencha apenas o contexto já confirmado. Não esconda lacunas com texto35genérico.3637## Fluxo38391. Identifique o produto, o módulo, a superfície e o fluxo afetado.402. Compare a solicitação com `DESIGNSYSTEM.MD` e preserve as regras já ativas.413. Se a pessoa não informa direção visual, aplique os defaults do documento e42 registre isso como direção padrão da entrega.434. Se a pessoa fornece uma direção diferente, registre a exceção, seu alcance44 e a regra que ela substitui. Uma exceção de tela não altera o produto todo.455. Atualize o documento somente quando a regra tiver alcance macro. Registre46 componentes e telas específicas em `INTERFACE.md`.476. Mapeie os cenários canônicos da superfície antes de entregar a orientação48 para UX, UI ou implementação.497. Retorne os arquivos lidos, a regra aplicada, as exceções registradas e os50 cenários cobertos.5152Em toda entrega visual, faça a revisão durante o desenvolvimento mesmo sem53pedido da pessoa. Confira bordas, espaçamentos, margens, padding e tipografia54do sistema nos viewports e estados relevantes. Registre o método, o resultado e55os ajustes no item `VISUAL` da tarefa.5657## Padrões5859### Defaults obrigatórios para SaaS6061Quando não houver direção visual contrária, aplique estas composições:6263- Lista de CRUD: `PageHeader` + resumo útil + `DataGrid`. Use busca, filtros,64 ordenação, paginação, seleção e ações por linha quando o volume ou o domínio65 pedir.66- Detalhe: `PageHeader` + `DetailLists`, com status, próxima ação e relações ou67 atividade quando forem úteis para o domínio.68- Criar e editar: `PageHeader` + seções de formulário em duas colunas69 responsivas, com coluna de contexto e painel de campos.70- Formulário: labels visíveis acima dos campos, ajuda contextual, valores71 preservados e estado de envio.72- Erro de campo: borda, fundo ou ícone semântico vermelho, mensagem visível73 abaixo do campo, associação semântica e foco no primeiro erro.74- Erros múltiplos: resumo no início com links para os campos afetados.75- Tela: `loading`, vazio, erro, sucesso, sem permissão, conteúdo parcial e não76 salvo quando o fluxo comportar esses estados.77- Breadcrumb: obrigatório em toda tela da aplicação, com o nome da equipe ativa78 visível antes do módulo e do título atual. Em Laravel, reaproveitar o79 `Breadcrumb` ou `Breadcrumbs` existente no layout e seus tipos de rota.80- DataGrid: linha inteira clicável para abrir o detalhe, com equivalente de81 teclado e controles internos protegidos por `TableRowAction` ou equivalente.82- CRUD: todas as telas reutilizam o mesmo `PageHeader` componentizado; a lista83 usa `DataGrid` em largura total, exibe a coluna `ID` e oferece botões de editar84 e apagar na linha. O link da linha leva ao detalhe sem capturar os botões.85- Componentes recorrentes de cabeçalho, tabela, linha, ações, formulário,86 estados e feedback entram em `INTERFACE.md` e são reaproveitados antes de uma87 nova implementação.8889Esses defaults não significam aparência genérica. A personalidade vem da90hierarquia dos dados, linguagem do domínio, tipografia, tokens, ritmo, estados,91contraste e uso do shell. A composição deve informar e orientar a tarefa.9293## Dashboards e blocos comuns9495Quando a entrega incluir um dashboard, use `PageHeader`, período ou escopo,96filtros, uma faixa curta de `KPI` com valor, unidade, período, comparação e97fonte, seguida da tendência ou distribuição principal e de uma lista detalhada98ou `DataGrid` para investigação. Cada indicador e visualização deve declarar99loading, vazio, erro e atualização, além de alternativa textual ou tabular para100gráficos.101102Use primitives do `shadcn/ui` para controles fundamentais e blocos gratuitos do103ReUI para composições de CRUD e dashboard quando eles atenderem à tarefa.104Adapte tokens, dados, permissões, acessibilidade e linguagem do produto. Registre105origem, estados e consumidores em `INTERFACE.md`.106107## Formulários de criar e editar108109Organize criar e editar em seções independentes. Cada seção apresenta contexto110à esquerda e o painel de campos à direita. No painel, campos relacionados usam111duas colunas nos breakpoints largos e uma coluna no mobile; campos longos,112uploads e erros podem ocupar toda a largura. O rodapé mantém cancelar e salvar113próximos do resultado da ação.114115## Breadcrumb e shell116117Toda tela renderiza o `Breadcrumb` no shell global. A trilha deve mostrar a118equipe ativa, o módulo e a tela atual, usando labels reais e links válidos nos119itens anteriores. Em aplicações Laravel, localize e reaproveite o componente120`Breadcrumb` ou `Breadcrumbs` já presente no layout, junto da tipagem dos itens;121adapte apenas a composição necessária para inserir a equipe sem duplicar o122primitive. A equipe e a tela atual continuam visíveis no mobile.123124## Cenários que toda entrega deve cobrir125126Consulte a seção `Cenários canônicos` do template e registre o recorte127aplicável em `DESIGNSYSTEM.MD` ou na spec da entrega:128129- lista com registros;130- lista vazia;131- detalhe com status e ações;132- criação válida;133- edição válida;134- criação ou edição com erro de campo;135- ausência de permissão;136- falha de carregamento;137- alteração não salva, quando houver edição;138- resultado de ação destrutiva, quando houver exclusão ou cancelamento.139140Para cada cenário, informe pré-condição, ação, resposta, estado visual, foco,141mensagem e próximo passo.142143## Limites e handoff144145- UX define fluxo, arquitetura da informação e linguagem da tarefa a partir146 desta fonte.147- UI define tokens, hierarquia, composição visual e estados a partir desta148 fonte.149- Componentes React escolhem primitives e composições compatíveis depois de150 ler esta fonte e `INTERFACE.md`.151- A skill de experiência de interface coordena a entrega e não deve iniciar uma152 tela sem carregar `DESIGNSYSTEM.MD`.153154## Antipadrões155156- Parede de cards quando a pessoa precisa comparar registros.157- Formulário sem seções quando o domínio tem grupos de informação distintos.158- Duas colunas no mobile ou uma grade que separa campo, ajuda e erro.159- Placeholder usado como único label.160- Erro indicado somente por ícone, cor ou toast distante do campo.161- Tela sem `PageHeader`, sem estado vazio ou sem caminho de recuperação.162- Dashboard que mostra números sem pergunta, período, unidade ou próxima ação.163- Dashboard que usa uma parede de cartões sem hierarquia ou investigação.164- Bloco de ReUI ou primitive de shadcn/ui usado sem adaptar dados, estados,165 permissões e tokens do produto.166- Novo token ou componente criado sem verificar o documento e `INTERFACE.md`.167- Exceção visual local registrada como regra global sem alcance explícito.168- CRUD com cabeçalhos duplicados, DataGrid estreito, ID oculto ou sem ações de169 editar e apagar na linha.170171## Validação172173Antes do handoff, confira:174175- `DESIGNSYSTEM.MD` existe na raiz do projeto consumidor e tem classificação,176 política, defaults, estados, cenários e histórico.177- A lista usa `DataGrid` e `PageHeader`.178- Toda tela tem `Breadcrumb` com o nome da equipe ativa, módulo e tela atual.179- Laravel reaproveita o `Breadcrumb` ou `Breadcrumbs` já existente no layout.180- O detalhe usa `DetailLists` e `PageHeader`.181- Criar e editar usam seções, coluna de contexto, painel de campos em duas182 colunas nos breakpoints largos e uma coluna no mobile.183- Erros de campo aparecem em vermelho abaixo do campo e têm associação184 semântica.185- A direção padrão ou a exceção está registrada com alcance.186- `INTERFACE.md` contém somente o registro local da entrega.187- A spec e as tarefas cobrem estados, permissão, foco, mensagens e retorno.188- O dashboard, quando existir, tem filtros, contexto dos indicadores,189 alternativa acessível para visualizações e investigação detalhada.190- Primitives shadcn/ui e blocos ReUI têm origem, estados e consumidores191 registrados em `INTERFACE.md`.192- Cada tarefa possui o item `VISUAL` concluído antes de `EVIDENCE`, com a193 conferência de bordas, espaçamentos, margens, padding e tipografia ou a194 justificativa concreta de que não há interface.195196Execute os testes e validadores da stack quando houver implementação. Para a197skill do Specsfy, execute `quick_validate.py` e a suíte do monorepo.198199## Skills relacionadas200201- [references/standards.md](references/standards.md)202- `skills/templates/DESIGNSYSTEM.MD`203- `skills/templates/Interface.md`204- `specsfy-specialist-interface-experience`205- `specsfy-specialist-ux-design`206- `specsfy-specialist-ui-design`207- `specsfy-specialist-react-ui-components`