Nos termos do próprio skill
O skill cobre o @json-render/ink, um renderizador de terminal Ink que transforma specs JSON em árvores de componentes de terminal interativas com data binding, visibilidade, ações e props dinâmicas. Ele percorre a definição de um catálogo a partir do schema do Ink com zod, o registro apenas dos componentes personalizados em um registry, e a renderização com Renderer dentro do JSONUIProvider, ou o createRenderer e standardComponents de nível mais alto.
Os leitores aprendem o formato de spec de mapa plano de elementos com uma chave raiz, os conjuntos padrão de componentes de layout, conteúdo e interativos, expressões de estado e binding, o sistema de eventos e as ações integradas setState, pushState e removeState, listas repeat, streaming JSONL via useUIStream, os papéis dos providers, as principais exportações, e diretrizes de design de terminal como largura de 80-120 colunas.
O que ele produz
- Uma árvore de componentes de terminal interativa renderizada a partir da spec JSON.
- Um system prompt de IA gerado a partir do catálogo para a autoria de specs.
- Um StateStore em memória agnóstico de framework que direciona os re-renders.
Como funciona
- 01Definir um Catálogo a partir do Schema do Ink
Importe defineCatalog de @json-render/core e passe o schema do Ink junto com as definições de componentes e ações que você deseja permitir.
- 02Registre Apenas Seus Componentes Personalizados
defineRegistry recebe o catálogo, mas as implementações dos componentes padrão já estão incorporadas, então apenas os personalizados são mapeados para elementos do Ink.
- 03Envolva o Renderer em Providers
JSONUIProvider fornece os contextos de estado, visibilidade, ação e foco para o Renderer, que recebe a spec e o registry.
- 04Escreva Specs como um Mapa Plano de Elementos
A spec traz uma chave raiz que nomeia o primeiro elemento e um mapa de elementos de nós tipados com props, children e bindings de eventos opcionais.
- 05Vincule Props com Expressões
Qualquer valor de prop pode ser resolvido no momento da renderização a partir do estado, itens de repeat, condições ou templates de string, em vez de ser fixo.
- 06Transmita Specs Progressivamente
useUIStream consome streams de patches JSONL de um endpoint de API e expõe spec, send e isStreaming ao chamador.