From griddo-dx
Usar esta skill cuando el developer pida "crear un content type", "nuevo tipo de dato", "crear dato estructurado", "structured data", "crear un schema de datos", o necesite definir un tipo de contenido para datos estructurados en Griddo.
How this skill is triggered — by the user, by Claude, or both
Slash command
/griddo-dx:griddo-content-typeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Los content types definen **qué datos estructura** la instancia Griddo. Son esquemas que permiten:
Los content types definen qué datos estructura la instancia Griddo. Son esquemas que permiten:
Datos puros sin asociación a página. Ejemplos: SCHOOLS, MEMBERS, PRODUCTS.
Datos que generan una página detalle. Ejemplos: NEWS, EVENTS.
item.urlDatos que clasifican otros datos. Ejemplos: REGIONS, TOPICS.
taxonomy: trueSi no está claro:
SCHOOLS, NEWS, PRODUCTS) — usa MAYÚSCULASLeer references/content-type-examples.md:
import { Schema } from "@griddo/core";
export const [NAME]: Schema.ContentType = {
dataPacks: ["PACK_NAME"], // DataPack al que pertenece
title: "Display Name", // Nombre legible
local: true, // true = por site, false = global
translate: true, // true = multiidioma
taxonomy: false, // false = no es categoría
clone: null, // null generalmente
defaultValues: null, // null generalmente
fromPage: false, // false = simple, true = page
schema: {
fields: [
{
key: "title",
title: "Title",
type: "TextField",
mandatory: true,
},
{
key: "image",
title: "Image",
type: "ImageField",
},
// ...más campos
],
},
};
export const [NAME]: Schema.ContentType = {
dataPacks: ["PACK_NAME"],
title: "Display Name",
local: true,
fromPage: true, // true = page
translate: true,
schema: {
templates: ["TemplateDetail"], // Templates asociados
fields: [
// Campos del dato
],
},
};
export const [NAME]: Schema.ContentType = {
dataPacks: ["PACK_NAME"],
title: "Category Name",
local: true,
translate: true,
taxonomy: true, // true = es categoría
fromPage: false,
};
Tipos de campos disponibles:
TextField — texto cortoTextArea — texto largoImageField — imagenUrlField — enlaceDateField — fechaNumberField — númeroSelect — desplegable con opcionesToggleField — sí/noRichText / WysiwygField — HTML editadoEjemplo de campo:
{
key: "title",
title: "Title",
type: "TextField",
mandatory: true, // Obligatorio
from: "title", // Mapeo en API
}
En el archivo correspondiente:
Para Simple: src/schemas/content-types/simple/index.ts
import { [NAME] } from "./[NAME]";
export default {
...,
[NAME],
};
Para Page: src/schemas/content-types/page/index.ts
import { [NAME] } from "./[NAME]";
export default {
...,
[NAME],
};
yarn sync-schemas
Esto:
Si fromPage: true, se necesita un template detalle. Usar la skill griddo-template para crearlo.
local: true | falsetrue — cada site edita sus propios datosfalse — datos compartidos entre todos los sitestranslate: true | falsetrue — se edita en todos los idiomas configuradosfalse — un solo idiomafromPage: true | falsetrue — genera página detalle (necesita DetailTemplate)false — solo datos reutilizablestaxonomy: truefromPage: trueexpirationDateFieldexpirationDateField: "endDate",
expirationDateOffset: 1, // días de offset
Permite que datos expiren automáticamente en una fecha.
searchMapping (Simple con búsqueda)searchMapping: {
title: "title",
description: "body",
image: "image",
url: "link",
}
Si incluir en búsqueda de IA. Requiere includedInPageSearch: true.
dataPacks que especifica a qué pack pertenecefromPage: true, crear DetailTemplate asociadofromPage)yarn sync-schemas después de crearreferences/content-type-examples.md — ejemplos reales: SCHOOLS, NEWS, MEMBERProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
npx claudepluginhub griddo/griddo-dx-claude-marketplace --plugin griddo-dx