Marketing Skills
Código de Marketing Skills: el extractor de metadatos no interpreta todo YAML
Inspecciona sync-skills.js con casos aislados LF, CRLF y multilínea, y distingue extracción de metadatos de validación de habilidades.
Qué aprenderás
- Los saltos literales hacen observable el formato de línea.
- Separar por dos puntos no implementa bloques ni anidamiento YAML.
- Los valores de reserva pueden ocultar una lectura parcial.
Antes de empezar
- Markdown y navegación de repositorios básicos
- Página propia y contexto factual de producto
Explica el límite del flujo y comprueba su evidencia o tarea de aceptación propuesta.
Conclusiones clave
- Los saltos literales hacen observable el formato de línea.
- Separar por dos puntos no implementa bloques ni anidamiento YAML.
- Los valores de reserva pueden ocultar una lectura parcial.
Sigue el contrato real del analizador
parseFrontmatter busca un delimitador inicial seguido de un salto de línea literal, captura hasta otro salto y delimitador, y divide el texto en líneas. En cada línea con dos puntos recorta clave y valor y quita comillas exteriores emparejadas. No utiliza una biblioteca YAML, no sigue la indentación ni combina escalares multilínea.
Extrajimos únicamente esta función pura inspeccionada a un contexto JavaScript aislado, sin ejecutar el main que escribe archivos. Una muestra LF sencilla devolvió nombre y descripción. Una muestra CRLF devolvió un objeto vacío porque la expresión inicial no coincidió con esa secuencia. Es un resultado sobre su contrato de entrada, no una afirmación de que toda copia del repositorio falle.
Los bloques y el anidamiento muestran el límite
Con description: | seguido de texto indentado, la descripción devuelta fue la barra vertical literal. Un version indentado bajo metadata pasó a ser una clave de primer nivel, y metadata quedó como cadena vacía. Son consecuencias de separar por dos puntos línea a línea; la semántica válida de YAML es más amplia.
getSkillsWithMetadata utiliza el nombre del directorio si no extrae name y una descripción vacía si esta falta. Así, una habilidad puede aparecer en la tabla aunque sus metadatos se hayan interpretado parcialmente. Una tabla plausible no demuestra una lectura correcta de todos los encabezados; prueba las estructuras que realmente usan los colaboradores.
Delimita el efecto antes de proponer cambios
Una mejora de mantenimiento podría normalizar saltos de línea y utilizar un analizador con un esquema explícito, probando bloques y anidamiento. Es una propuesta para el proyecto, no un parche aplicado al repositorio externo. Evalúa dependencias y compatibilidad en lugar de cambiar silenciosamente las instalaciones de los usuarios.
La muestra siguiente conserva los tres resultados observados. Nuestra prueba local comprueba esos registros y el ejemplo aritmético del capítulo de costes. No ejecuta CI del proyecto, un instalador ni evaluaciones de modelos. Esta distinción permite aprender de un experimento pequeño sin presentarlo como una prueba integral del sistema.
Pasos de implementación
- 1
Localiza parseFrontmatter en el código fijado.
- 2
Aísla la función sin ejecutar main.
- 3
Compara muestras LF, CRLF y de bloque.
- 4
Revisa metadatos generados además de la presencia en la tabla.
Ejemplo para copiar
{"lf":{"name":"sample","description":"hello"},"crlf":{},"blockScalar":{"name":"sample","description":"|","metadata":"","version":"2.1.0"},"upstreamMainExecuted":false}Preguntas frecuentes
¿Esto demuestra que todas las habilidades están rotas?
No. Expone entradas concretas; el comportamiento real depende del contenido, los saltos del checkout y la ejecución del sincronizador.
¿Se ejecutó el programa que reescribe archivos?
No. Solo se ejecutó parseFrontmatter aislado con cadenas de entrada inventadas.
Fuentes
- README.mdFuente verificada 2026-09-08
- LICENSEFuente verificada 2026-09-08
- .claude-plugin/plugin.jsonFuente verificada 2026-09-08
- .github/scripts/sync-skills.jsFuente verificada 2026-09-08
- .github/workflows/sync-skills.ymlFuente verificada 2026-09-08
- .github/workflows/validate-skill.ymlFuente verificada 2026-09-08
- scripts/sync-partners.mjsFuente verificada 2026-09-08
- skills/product-marketing/SKILL.mdFuente verificada 2026-09-08
- skills/ai-seo/SKILL.mdFuente verificada 2026-09-08
- skills/seo-audit/SKILL.mdFuente verificada 2026-09-08
- skills/programmatic-seo/SKILL.mdFuente verificada 2026-09-08
- skills/ai-seo/evals/evals.jsonFuente verificada 2026-09-08
- tools/PARTNERS.mdFuente verificada 2026-09-08