Adicionando uma entrada no marketplace

O catálogo do marketplace é JSON puro neste repositório — um arquivo por entrada em content/marketplace/<pasta-da-família>/<slug>.json, agrupado por família:

content/marketplace/
  schema.ts
  tools/       family: "tool"      ex.: tools/issue.json
  channels/    family: "channel"   ex.: channels/telegram.json
  skills/      family: "skill"     ex.: skills/weather.json

Sem etapa de build, sem banco de dados.

Passos

  1. Copie uma entrada existente parecida com a que você vai adicionar, por exemplo content/marketplace/tools/issue.json para uma ferramenta ou content/marketplace/skills/weather.json para uma skill.
  2. Renomeie para <slug>.json e coloque na pasta correspondente à family (veja o layout acima). O campo slug dentro do arquivo precisa ser igual ao nome do arquivo sem o .json, e o arquivo precisa ficar na pasta da sua family — caso contrário o loader quebra o build com erro.
  3. Preencha os campos (veja o schema abaixo).
  4. Rode pnpm dev e abra http://localhost:3000/marketplace/<slug> para conferir o card e a página de detalhe.
  5. pnpm lint e pnpm build precisam passar.

Schema

O tipo completo fica em content/marketplace/schema.ts.

CampoObrigatórioObservações
slugkebab-case; igual ao nome do arquivo e ao segmento da URL
namenome de exibição
familytool | channel | skill
typerótulo mais fino: action, query, messaging, coredash, utility, …
summaryuma linha, exibida nos cards
descriptionmarkdown, exibido na página de detalhe
tagsarray de strings
sourcePathcaminho dentro do repositório koris, ex.: plugins/tools/issue
sourceUrlURL completa do GitHub para o sourcePath
toolNameferramentaso nome exposto ao LLM, ex.: issue
paramsferramentas{ name, type, required, description, enum? }[]
readWhenskillsos gatilhos read_when do SKILL.md
requiresConfirmationtrue se o plugin exige confirmação explícita do usuário
defaultEnabledestado de ativação em uma instalação nova do koris
capturedFromopcional: o ref git do koris de onde este snapshot veio
i18ntraduções dos campos de texto, por locale (ex.: pt-br)

Mantendo em sincronia

Os arquivos JSON são a fonte da verdade — são escritos e revisados à mão. Um utilitário de apoio, scripts/generate-catalog.ts, consegue rederivar params / readWhen a partir de um checkout local do koris e mesclar nos arquivos existentes sem sobrescrever o texto escrito à mão. A análise do código-fonte é frágil, então sempre revise a saída.