Contenido: planificar y crear
Planifica el contenido de una marca y prodúcelo de principio a fin: una historia investigada, un gancho que atraiga la atención, un texto sin marcas de IA, una construcción en el diseño de la marca y una hoja de publicación por canal. Todo lo específico de la marca vive en un brand pack; el método aquí funciona para cualquier marca. Los marcos se construyen en Figma o se escriben como HTML y se renderizan a PNG, según la elección que la marca haya hecho en la configuración.
Las palabras deciden si alguien se detiene. La mayor parte del esfuerzo se dedica a la investigación y a la escritura, antes que a Figma o a la cámara. Lee references/writing-craft.md y los dos ejemplos prácticos antes de escribir nada: references/examples/linux-7.4-carousel.md (un registro de noticias) y references/examples/ai-cost-js-carousel.md (un experimento de otra persona). Cada uno enumera los borradores que perdieron y por qué; imita los movimientos, no las frases.
Empieza aquí, cada ejecución
Las rutas a scripts/, references/, templates/ y brands/ están dentro de la carpeta de este skill; content/ está en el proyecto en el que trabajas. Ejecuta los comandos desde la raíz del proyecto con la ruta del skill, por ejemplo python3 <skill>/scripts/new_item.py content ... (<skill> es la carpeta donde está este archivo). Los scripts que usan Pillow (contact_sheet.py, slides_to_pdf.py, artefact_marks.py, ref_sheets.py) se ejecutan sin python3 -I.
- Verificación de configuración. Lee
content/setup.mden el proyecto. Si no existe, esta es la primera ejecución: ejecuta el skill setup-content (instalado junto a este; en este repositorio en../setup-content/SKILL.md; invócalo, o síguelo manualmente) antes de cualquier otra cosa. Pregunta qué marca, recoge los activos propios de la marca de su sitio y perfiles con permiso, elige el renderizador (Figma o HTML → PNG) y escribe el brand pack. - Encuentra el brand pack (
brands/README.md):content/brand/en el proyecto, o si nobrands/<nombre>/en este skill. Leebrand.md,design.mdycontent/brand/assets/README.mdsi existe (las fotos y logotipos propios de la marca tienen prioridad sobre los de stock). Cualquier cosa marcada como(propuesto)no está confirmada; pregunta antes de que un plan dependa de ello. - Toma nota de las herramientas y usa todas las que ayuden (
references/research-tools.md): búsqueda web, obtención de páginas, un navegador real (ego-browser), MCPs de redes sociales o acceso X incorporado, MCP de Figma y generación de imágenes: tu propia herramienta de imágenes si tienes una (Grok Imagine de Grok Bot, Codex, ChatGPT, Antigravity), luegopython3 <skill>/scripts/gen_image.py detect(claves de agy, OpenAI, Gemini, xAI). Anota lo que falta. - Encuentra el espacio de trabajo (
templates/workspace.md):content/conplan/,items/,reviews/,ideas.md,design-log.md. Créalo la primera vez. - Elige el modo a continuación.
| El usuario quiere | Modo |
|---|---|
| un plan, un calendario, "rencana konten bulan ini" | Plan |
| una pieza: carrusel, publicación individual, hilo, guion de Reels, publicación de LinkedIn, artículo | Crear |
| varias piezas de una misma fuente | Reutilizar |
| saber qué funcionó y qué cambiar | Revisar |
| configurar una nueva marca, cambiar el renderizador o actualizar activos | Configuración (el skill setup-content) |
Plan
- Lee las entradas (
references/planning.mdsección 1): brand pack, última revisión,ideas.md, los momentos del mes (verifica las fechas), la capacidad, el objetivo del propietario. - Escribe
content/plan/YYYY-MM.mda partir detemplates/plan-month.md: pilares con sus porcentajes, series con su cadencia, aproximadamente una cuarta parte de los espacios reactivos, cada elemento fuerte dividido en 3–5 formatos en diferentes días. - Ejecuta
python3 <skill>/scripts/check_plan.py content/plan/YYYY-MM.md --brand <pack>/brand.mdhasta que no haya FAIL; explica cualquier advertencia que mantengas en las notas del plan. - Informa: el mes en tres líneas, qué se propone y necesita una confirmación, los vacíos.
Crear
- Carpeta del elemento:
python3 <skill>/scripts/new_item.py content <fecha> <slug> <formato>. - Investigación (
research-tools.md): fuente primaria, un nivel de profundidad, correcciones desde la publicación, las palabras de las personas nombradas, el ángulo local, una segunda fuente por número. - Historia en
brief.md(writing-craft.mdsecciones 1–4): cinco preguntas, el giro, la escalera (berita, uji coba, daftar referensi, o una rúbrica decopy-playbook.md), la diapositiva o publicación que vale la pena guardar, cinco ganchos en al menos tres formas pasados por las compuertas y los duelos, una familia de metáforas con su líneaVerbos:. - Texto en
copy.mdpara el formato (references/formats/:carousel.md,single-post.md,x.md,threads.md,linkedin.md,reels-tiktok.md,long-form.md), una nota de fuente>debajo de cada número, nombre y cita. Cada titular pasa "¿y luego qué?" y la metáfora está en al menos tres de ellos; las salvedades van dondewriting-craft.md7b las coloca; la acción pasa "quién, con qué, cuándo". Luegopython3 <skill>/scripts/lint_copy.py <item>/copy.md --format <formato> --brand <pack>/brand.mddebe salir con código 0 (new_item.pyimprime el--formatcorrecto:threadse verifica comox,documentcomolinkedin). Lee sus advertencias y su lectura solo de titulares; escribe esa lectura enbrief.md, y lee el texto en voz alta una vez. - Imágenes (
image-sourcing.md): artefactos reales en marcos de evidencia; para marcos de metáfora, las fotos propias de la marca, luego una imagen generada automáticamente cuando nada encaja (primero tu propia herramienta de imágenes, luegoagy, luego una API de pago solo sicontent/setup.mdlo permite), luego Unsplash; un hilo visual, créditos mantenidos desde el manifiesto. El propietario puede cambiar la herramienta de imágenes o dejar de generar en cualquier momento. - Elige el esquema y los diseños (
design-variety.md): el esquema de color de la serie, o para una pieza independiente uno que las piezas anteriores no hayan usado; luego una variante por diapositiva según el trabajo de la diapositiva y según lo quecontent/design-log.mddiga que se ha usado recientemente, para que no haya dos piezas iguales. Escríbelos en la tabla "Diseño" debrief.md, con un estilo de marca de titular y una diapositiva que rompa el patrón. Las páginas de galería del brand pack (Figma) ocontent/setup-gallery/*.jpg(HTML), yrefs/cuando el pack las tiene, muestran las opciones. - Construye con el renderizador en
content/setup.md(design-system.md); cuando diga ambos, sigue su regla para qué piezas van a dónde, si no, pregunta:- Figma (
figma-mechanics.md): las funciones de diseño enscripts/figma-helpers.js, empaquetadas con el bloqueBRANDdel pack porscripts/figma_bundle.py --brand <pack>/design.md --page "<nombre>" --scheme <esquema> --n <marcos>(la herramienta acepta 50.000 caracteres), en una nueva página del archivo de Figma de la marca; nunca toques otras páginas. Sube las imágenes, luego ajústalas en una segunda llamada con los pares del esquema (duotone(id, 'light' | 'dark')). - HTML → PNG (
html-render.md):scripts/new_html.pyconfigura la carpetahtml/del elemento con el kit y el CSS de la marca; escribeslides.htmlcon los diseños del kit, con las fotos elegidas y las imágenes generadas copiadas enhtml/img/;scripts/render_slides.pyrenderiza un PNG por diapositiva. Reels:storyboard.md+ un marco de portada de 1080×1920 (Figma, o una página HTML separada como dice la sección 4 dehtml-render.md).
- Figma (
- Verifica económicamente: primero la comprobación de diseño (
layoutCheck()en Figma, los problemas querender_slides.pyimprime en HTML) y corrige lo que informe; luego mira la portada, el marco de datos y lo que cambió (capturas de pantalla una a la vez en Figma; los PNG en HTML). Si el usuario detiene las capturas de pantalla, detente e indica qué marcos quedaron sin verificar. - Hoja de publicación:
publish.mdcon el texto por canal, hashtags dentro de los límites, texto alternativo, hora, enlaces, créditos; añade una fila acontent/design-log.md. La publicación es el paso del propietario a menos que te pida explícitamente publicar una pieza específica a través de una herramienta conectada; confírmalo primero. - Informa: dónde está, la dirección en dos líneas, los diseños elegidos, qué se verificó y qué no, qué herramientas de investigación tenías y cuáles te faltaron, y el pie de foto.
Reutilizar
Planifica los recortes juntos (planning.md sección 6), una carpeta de elemento, una fila por recorte en el plan. Cada recorte se reescribe para su formato (references/formats/), dice algo completo por sí mismo y enlaza de vuelta. Los marcos del carrusel sirven como documento de LinkedIn (scripts/slides_to_pdf.py) y la publicación de fotos de Threads/TikTok.
Revisar
Escribe content/reviews/YYYY-MM.md a partir de templates/review-month.md: solo números de la plataforma o del propietario, con fecha; compara cada pieza con la mediana propia de la marca para su formato; decide mantener, arreglar o detener por serie; traslada las decisiones al plan del próximo mes. Sin números compartidos: enumera qué recopilar y detente.
Reglas de escritura que tienen más peso
Método completo en writing-craft.md, reglas en copy-playbook.md, idioma en language/<lang>.md.
- Gancho = número exacto + escena + apuestas, o una de las seis formas en
writing-craft.mdsección 3b. Escribe cinco en tres formas, pásalos por las compuertas (≤30 palabras, sencillo, sin salvedades, honesto, la respuesta retenida, tensión), duela a los supervivientes y escribe por qué perdió cada perdedor. No los puntúes: las autopuntuaciones empatan. - Los titulares son afirmaciones con una consecuencia: cada uno pasa "¿y luego qué?". Las palabras temáticas van en la ceja. Marca las una o dos palabras que llevan la afirmación.
- Una familia de metáforas, dicha una vez, luego llevada en los verbos de al menos tres titulares.
- Un giro al final de la historia; un marco o publicación que vale la pena guardar.
- Tráelo a casa: el propio precio, fecha, lugar, empresa o acción del público.
- Los números se comparan de manera justa, los gráficos comienzan en cero, las reservas se copian de la fuente, la primera persona solo para lo que la marca hizo.
- Las reservas permanecen en la oración; las salvedades tienen un presupuesto: ninguna en la portada o en un titular, una en la diapositiva de datos, una en la diapositiva de opinión, el resto en el pie de foto.
- La opinión se etiqueta y termina en una acción que pasa "quién, con qué, cuándo".
- Una CTA del brand pack; la promesa describe lo que la pieza acaba de hacer.
- Idioma del brand pack; otro idioma solo cuando el usuario lo pida explícitamente para esa pieza.
- Sin aperturas de relleno, sin marcas de IA; el lint detecta la mayoría.
Control de calidad
- Brand pack leído; nada
(propuesto)usado como confirmado sin preguntar. - Todas las herramientas de investigación disponibles utilizadas donde ayudan; vacíos reportados.
- Cinco preguntas de la historia respondidas con el ángulo local; el giro colocado.
- Taller de ganchos hecho con compuertas y duelos; la portada tiene ≤30 palabras sin salvedades y funciona sola.
- Lectura solo de titulares escrita en
brief.mdy cuenta la historia; la metáfora está en al menos tres titulares; una pieza que vale la pena guardar, nombrada. - La acción pasa "quién, con qué, cuándo".
-
lint_copy.pysale con 0 para el formato; cada número, nombre y cita tiene una nota. - Límites de la plataforma respetados (
formats/specs.md): hashtags, caracteres, zonas seguras. - Diseños elegidos por diapositiva en
brief.md; portada y marca de titular difieren de la pieza anterior encontent/design-log.md; una diapositiva rompe el patrón. - Un esquema aplicado; las fotos propias de la marca utilizadas donde encajan; fotos ajustadas; capturas de pantalla en color, sin alterar, con crédito y marcadas con marcas de resaltador.
- Comprobación de diseño limpia (
layoutCheck()en Figma,render_slides.pyen HTML) o cada nota explicada; portada y marco de datos vistos (o el vacío reportado). - Cierre: una CTA, todas las fuentes y créditos; las imágenes generadas etiquetadas como ilustraciones.
-
publish.mdcompleto y una fila añadida acontent/design-log.md; nada publicado, gustado o seguido sin consentimiento explícito. - Los planes pasan
check_plan.py.
Mapa de archivos
| Archivo | Leer cuando |
|---|---|
brands/README.md, brands/<marca>/brand.md, design.md | cada ejecución |
../setup-content/SKILL.md, references/brand-onboarding.md | primera ejecución (sin content/setup.md), una nueva marca, un nuevo renderizador |
references/planning.md | planificar, reutilizar, revisar |
references/writing-craft.md, references/examples/*.md (dos carruseles prácticos con borradores rechazados) | antes de escribir cualquier cosa |
references/copy-playbook.md | marcos de trabajo, formato de copy.md, CTA, pie de foto |
references/language/id.md, en.md | el idioma de la marca |
references/formats/*.md | el formato que se está creando; specs.md para límites |
references/design-system.md, design-variety.md, design-references.md | antes de construir marcos: roles, variantes de diseño y cómo elegirlas, patrones de otras cuentas |
references/figma-mechanics.md | antes del primer use_figma; subir, duotono, capturas de pantalla |
references/html-render.md, templates/html/ | el renderizador HTML → PNG: configuración, referencia de clases, renderizado, comprobación |
references/image-sourcing.md, research-tools.md | investigación e imágenes |
references/patterns-from-data.md | por qué las reglas son como son |
references/prerequisites.md | instalar acompañantes y herramientas opcionales |
templates/ | espacio de trabajo, configuración, plan, informe, publicación, revisión, ideas, registro de diseño; html/ (kit de diapositivas y ejemplo) |
scripts/ | lint_copy.py, check_plan.py, new_item.py, figma-helpers.js (diseños, esquemas), figma_bundle.py, figma-gallery.js + figma-gallery-2.js, figma-gallery-schemes.js, brand_css.py, new_html.py, render_slides.py, crawl_site.py, capture_profile.sh, artefact_marks.py, ref_sheets.py, slides_to_pdf.py, capture_artefact.sh, x_post.py, scan_site_tokens.sh, unsplash_search.py, gen_image.py, agy_image.sh, contact_sheet.py, export_oss.sh |
Cuándo no usar esto
No para una presentación de diapositivas (usa un skill de diapositivas), no para construir un sitio web y no para una corrección de una palabra en una publicación existente (edítala directamente).