DiscourseSkill.md

Trasladando el trabajo desde Require LLM-generated themes & plugins to be tagged as such

Hicimos un primer intento de crear un DiscourseSkill.md

leer: DiscourseSkill.md

usar: DiscourseSkill.json

¿Cuál fue la base para crear esto? Desde el principio, se indica que es para plugins, temas y componentes de temas.

Pero mi impresión es que el alcance de la revisión no coincide con la estructura de los temas. ¿Por qué se incluye javascripts/ solo si está en una carpeta assets? ¿Por qué limitan settings.yml a la carpeta config? Los temas normalmente no tienen esas carpetas.

Es irónico que estemos discutiendo que el contenido generado por IA podría no cumplir con los requisitos de calidad, y que la solución propuesta no se sienta más fiable en sí misma.

Sobre este tema altamente controvertido — y dado que es razonable suponer que la IA supone riesgos significativos para nuestras capacidades cognitivas, la privacidad y la seguridad…

Solo quiero decir que estoy agradecido por esta herramienta, porque señaló errores en plugins que construí con la ayuda de LLMs y que no habría podido encontrar por mi cuenta.

Esto es exactamente lo que comenté en el tema que dio lugar a este. No tenía el conocimiento técnico para cuestionar los resultados en sí, sino su aplicación práctica.

Lamentablemente, la humanidad en su conjunto no siempre utiliza actualmente sus habilidades de pensamiento crítico al analizar acciones o respuestas, y actúa por emociones —sin darse cuenta, de manera completamente inconsciente.

Esto nos lleva a prejuicios inexactos sobre la validez o el valor de algo que, visto de manera neutral, en realidad está mejorando una situación dada. Entiendo que este es un fenómeno natural que está cambiando, y no algo personal.

Solo para mostrar mi humilde apoyo al OP por esta herramienta.

De acuerdo, como ya mencioné, esta fue una primera versión y ahora ha sido mejorada como resultado de sus comentarios. Vimos el tema de nuevo y tenían razón.

Agregado al método de revisión
  • Clasificación de candidatos antes de la inspección de archivos:

    • Plugin
    • Tema
    • Componente de tema
    • Extensión híbrida
    • Repositorio de integración
    • Artefacto de lanzamiento
  • Inventario separado de repositorio/lanzamiento compartido:

    • README, licencia, registro de cambios
    • Archivos de paquete y lockfiles
    • Flujos de trabajo de CI
    • Scripts de instalación/Docker
    • Integraciones de servicios externos
    • Activos de lanzamiento generados
    • Lanzamiento etiquetado/archivado
    • Archivos no rastreados e ignorados relevantes
  • Inventario de plugin ampliado:

    • Cada archivo cargado, registrado o expuesto por plugin.rb
    • config/routes.rb
    • db/post_migrate/
    • Vistas, motores, validadores y middleware
    • Código de frontend de administración y público
    • Conectores, componentes, rutas, servicios, plantillas y pruebas de frontend
    • Estilos comunes, de escritorio, móviles, de administración y embebidos
    • Fijaciones (fixtures), archivos de soporte y pruebas de navegador/sistema
    • Dependencias de Ruby, JavaScript, sistema y servicios externos
    • .discourse-compatibility
    • Ramas y flujos de trabajo de d-compat/*
    • Límites de versión de Discourse declarados
  • Nuevo inventario de tema/componente de tema:

    • about.json raíz
    • Clasificación de component
    • Metadatos de licencia, autor, versión y compatibilidad
    • Activos, esquemas de color, capturas de pantalla y ajustes tematizables declarados
    • settings.yml raíz
    • locales/ raíz
    • common/, desktop/ y mobile/
    • Archivos de inyección de SCSS y HTML compatibles
    • javascripts/ raíz
    • api-initializers/
    • Todos los archivos .js, .gjs y .hbs
    • stylesheets/ raíz y hojas de estilo importadas
    • assets/ raíz y todas las referencias a ellos
    • Vista previa/capturas de pantalla
    • Pruebas y configuración de lint/build
    • Metadatos de compatibilidad y ramas
    • Bytes de tema empaquetado/exportado
  • Nuevas comprobaciones estructurales:

    • El tipo de extensión declarado debe coincidir con about.json y el comportamiento de instalación.
    • component: true significa componente de tema.
    • component: false u omitido significa tema completo.
    • Los repositorios híbridos reciben todos los inventarios aplicables.
    • Los archivos mal ubicados o inesperados se investigan en lugar de ignorarse en silencio.
    • Las directorios opcionales ausentes no son defectos automáticamente.
    • El árbol de trabajo, el archivo de lanzamiento, la extensión instalada, los activos generados y el candidato público son superficies de evidencia separadas.
  • Nueva lista de verificación de tema completo:

    • Identidad de metadatos
    • Renderizado de tema completo
    • Cobertura de páginas centrales
    • Ajustes, localizaciones y activos
    • JavaScript/inicializadores de API compatibles
    • Comportamiento responsivo, accesibilidad y RTL
    • Comportamiento de Foundation, Horizon y embebido
    • Interacciones de componentes de tema
    • Comprobaciones de instalación, actualización, reversión y compatibilidad

Espero que la entrada de la comunidad mejore la Skill y que la Skill ayude a otros a evaluar su propio trabajo o, francamente, el trabajo de otros antes de instalarlo si hay dudas sobre la calidad.

Hasta ahora llevamos 2 de 2. Sus comentarios impulsaron mejoras en la Skill y @satonotdead la encontró útil. Gracias por las amables palabras y el apoyo @satonotdead