eternityspring/shuohao-skills

Cria um livro de arte conceitual para IA (cenários + objetos narrativos): intenção de design do cenário, âncoras de consistência, variações de horário de iluminação, prompts de cena vazia; função dramática dos objetos, variações de estado, referência de escala, prompt de fundo branco sem mãos. Produz art.json + Markdown + relatório de revisão em página única (com exportação JSON).

O que é shuohao-skills?

Este skill é especializado em gerar um 'livro de arte conceitual' (scene bibles) para curtas-metragens de IA, focando exclusivamente em cenários e objetos narrativos. Diferente de produções tradicionais com locações reais, aqui tudo é um ativo gerado por IA que precisa manter consistência visual dezenas de vezes. O skill impõe rigorosamente que cada cenário tenha 3–5 âncoras de consistência, variações de iluminação por horário, e prompts completos para cenas vazias (sem personagens), garantindo que a IA não 'derrape' visualmente entre episódios. Para objetos narrativos — normalmente 3 a 8 itens que aparecem em close, cruzam episódios e carregam a trama — o skill exige função dramática, variações de estado (ex.: mala fechada vs. aberta), referência de escala para evitar que a IA os desenhe do tamanho de móveis, e prompts de fundo branco sem mãos para fácil recorte. O resultado é um pacote contendo art.json, um arquivo Markdown e um relatório HTML interativo com painel de qualidade, botões de cópia e exportação. O skill não gera imagens — entrega apenas os prompts para que ferramentas downstream as gerem. Suporta três formas de entrada: outline.json (ideal), texto do romance original, ou uma lista de cenários escrita pelo usuário. Inclui 10 verificações de qualidade automatizadas (ex.: âncoras entre 3 e 5, prompts em inglês, sem nomes de personagens, fundo branco) e validação via script, sem dependências externas ou chaves de API. Pode ser usado com Claude Code, Cursor, Codex e outras plataformas de agentes de IA.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/eternityspring/shuohao-skills/tree/HEAD/skills/novel-art

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

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

Documentação

novel-art

Gere um livro de arte conceitual para curtas-metragens de IA: cenários + objetos narrativos. Premissa fundamental: isto é geração por IA, não filmagem real — sem locações, sem cenografia, sem compras. Ambientes e objetos serão gerados dezenas de vezes e precisam ter a mesma aparência, portanto todas as entregas giram em torno de consistência:

EntregaO que resolve
Âncoras de consistência (3–5 por cena)O espectador as usa para reconhecer o cenário; o controle de qualidade as usa para verificar se a geração não "derrapou"
Variações de horário de iluminaçãoA IA troca de horário regerando, não reacendendo; cada estado vira um prompt completo
Prompts de cena vaziaAmbiente e personagens são dois ativos separados; se a imagem de referência incluir pessoas, a consistência é destruída
Mecanismo de variante (variantOf)Gerar um novo cenário é barato, mas reutilizar ativos do cenário mãe como variante é mais consistente
Variações de estado do objetoUma mala fechada e aberta são duas imagens de referência — objetos têm arco de estado, cenários não
Referência de escala do objetoA IA frequentemente desenha objetos de mão do tamanho de móveis; o prompt precisa incluir uma frase de escala
Objeto em fundo branco sem mãosA imagem do objeto será colada em vários planos; precisa ser recortável; a mão segurando o objeto é a contaminação mais comum

{baseDir} = diretório deste arquivo. Script {baseDir}/scripts/novel-art.mjs, zero dependências, execute com node.

Limites (o que não fazemos) : não faz storyboard, não escreve roteiro, não gerencia personagens (tarefa de novel-characters), não organiza o esboço (novel-outline). Apenas objetos narrativos (com close-up, que aparecem em vários episódios, que carregam a trama; normalmente 3–8 itens) — objetos de cena pertencentes ao cenário vão para as âncoras do cenário; objetos de mão descartáveis são resolvidos com prompts ao nível do plano, não como ativos separados.


Step 0 — Definir entrada

Três tipos de entrada, prioridade da mais alta para a mais baixa:

  1. outline.json (saída de novel-outline) — ideal: lista de cenários, episódios de aparição, pontos de virada, planos de reutilização já estão prontos
  2. Texto original do romance — extraia a lista de cenários (priorize os cenários principais, consulte a ideia de limite de cenários principais do novel-outline: não exagere)
  3. Lista de cenários escrita pelo usuário

Se houver cast.json (saída de novel-characters), inclua-o — será usado para verificar se os prompts não contêm nomes de personagens.

Step 1 — seed do esqueleto (apenas se houver outline.json)

node {baseDir}/scripts/novel-art.mjs seed <outline.json> > <workdir>/art.json

Transferência determinística: ID do cenário/nome/marca de cenário principal/episódios de aparição/pontos de virada; cenários com plano de reutilização recebem seedNote sugerindo criá-los como variante. Esses fatos não devem ser repensados pelo modelo.

Se não houver outline.json, crie a lista manualmente seguindo references/schema.md.

Step 2 — Preencher configurações por cenário + extrair objetos narrativos

Cada cenário é uma tarefa; execute em paralelo se possível. Cada tarefa recebe:

  • {baseDir}/references/scene-pass.md e {baseDir}/references/schema.md (leia-os e siga-os)
  • O esqueleto do cenário + todas as informações sobre aquele espaço do texto original/esboço
  • Os nomes dos outros cenários do mesmo lote (a atmosfera espacial deve ser distinta; não faça todos parecerem do mesmo tipo de degradado)

Os requisitos principais estão no scene-pass.md; os três mais pesados: âncoras devem ser desenháveis, reconhecíveis e verificáveis ("toldo remendado" é uma âncora; "atmosfera velha" é um adjetivo); estados de iluminação deduzidos a partir dos episódios, sem listar estados que nunca serão usados; se puder ser variante, não crie um novo cenário.

Objetos narrativos priorizam o esboço: outline.json a partir da versão 1.1.0 inclui props; seed transfere a tabela de objetos junto com "o que carregam", "quais pontos de virada sustentam", "em quais episódios aparecem"; nesta etapa, preencha apenas os campos de design (escala, âncoras, variações de estado, prompt de fundo branco). Se o esboço não tiver props, extraia do texto original — nesse caso, a etapa é responsabilidade do modelo: inclua apenas objetos com close-up, que aparecem em vários episódios e carregam a trama, normalmente 3–8 itens, da mesma ordem de grandeza que o número de protagonistas. Cada um deve ser preenchido seguindo references/prop-pass.md: função dramática, âncoras, variações de estado, escala, prompt de fundo branco sem mãos. Uma mala que "segue o personagem" deve estar aqui — colocá-la nas âncoras do cenário ou na ficha do personagem estaria errado.

Step 3 — Validação ⛔ Não pule

node {baseDir}/scripts/novel-art.mjs validate <art.json> --cast <cast.json>

As 10 portas de qualidade são todas código. Cenários compartilham 6 portas: âncoras 3–5, estados de iluminação ≥1, sem pessoas, prompts em inglês, sem nomes de personagens (apenas se --cast for fornecido), referências de variante completas. Objetos têm 4 portas exclusivas: estados ≥1, frase de escala incluída no prompt, palavra negativa proibindo mãos, fundo de definição puramente branco.

Corrija cada violação uma a uma, reexecute até passar.

Step 4 — Saída e relatório

cd <diretoriode saída>
node {baseDir}/scripts/novel-art.mjs render <nome-da-série>-art.json --md   > <nome-da-série>-art.md
node {baseDir}/scripts/novel-art.mjs render <nome-da-série>-art.json --html > art-report.html

A interface do relatório é em chinês por padrão; se o usuário quiser interface em inglês, adicione --lang en (ou escreva "lang": "en" no topo do art.json; --lang tem prioridade). render procura imagens por padrão em images/<slug>-sheet.png no mesmo diretório do art.json (para cenários e objetos); se as imagens estiverem em outro lugar, use --images <diretório> para apontar — este skill não gera esses arquivos; depois que a ferramenta downstream gerar as imagens, execute render novamente para incorporá-las ao relatório. O relatório inclui: KPIs, lista de cenários, fichas de cenário, lista de objetos, fichas de objeto (lista de verificação de âncoras / variações de estado / pacotes de prompt com botões de cópia), painel de portas de qualidade, exportação JSON (o download é o art.json original).

O resumo diz em uma frase: quantos cenários (principais/variantes), quantos objetos, total de âncoras, caminho do relatório; portas não aprovadas são mencionadas explicitamente.

Não diga "imagens geradas" — esta etapa não existe mais; a entrega são prompts.

Estrutura final:

<diretoriode saída>/
├── <nome-da-série>-art.json
├── <nome-da-série>-art.md
├── art-report.html                ← abra com duplo clique
└── images/                        ← este skill não cria este diretório
    └── <slug>-sheet.png           ← a ferramenta downstream coloca aqui; render coletará

Integração dos três skills

novel-outline    → outline.json (o quê: estrutura e episódios)
novel-characters → cast.json    (quem: ativos de personagem)
novel-art        → art.json     (onde + o que seguram: ativos de arte)

seed consome as partes de cenário e objeto do outline.json (se o esboço não tiver props, os objetos ficam vazios e o modelo os extrai do texto original); --cast consome cast.json. Os três JSONs têm relatórios com botão de exportação; depois de editados, podem ser realimentados em seus respectivos render/validate.

Limites

  • A interface do relatório é bilingue (chinês/inglês) (--lang; padrão chinês, ou segue o campo lang do art.json); prompts de geração são sempre em inglês
  • Este skill não gera imagens. image.sheet é uma instrução de layout para a ferramenta downstream; as especificações de layout estão em references/sheet.md
  • Número de cenários não tem limite máximo — o limite é definido na porta de cenários principais do novel-outline; aqui a responsabilidade é a qualidade de cada ativo
  • Apenas objetos narrativos, 3–8 itens é o ideal — cada item extra exige mais manutenção de consistência entre episódios

Autoteste

node {baseDir}/scripts/selftest.mjs

151 asserções, sem chamar modelo, sem gastar créditos. Cada uma das 10 portas de qualidade tem casos de teste de violação. Execute após modificar o script.

Exemplo incluído

{baseDir}/examples/渡口-art.json: configuração completa de três cenários + dois objetos narrativos (mala velha, tinteiro antigo do tribunal) de "渡口" (A Travessia), todas as portas de qualidade aprovadas (incluindo verificação de nomes de personagens contra o cast.json de exemplo de novel-characters). Serve como referência de qualidade e como fixture de autoteste.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas