DiscourseSkill.md

Moving the work out of Require LLM-generated themes & plugins to be tagged as such

We made a first cut at creating a DiscourseSkill.md

read: DiscourseSkill.md

use: DiscourseSkill.json

What was your basis for creating this? Right at the beginning, it says it’s for plugins, themes, and theme components.

But my impression is that the review scope doesn’t match the structure of themes. Why is javascripts/ only included if it’s in an assets folder? Why are you restricting settings.yml to the config folder? Themes usually don’t have those.

It’s ironic how we discuss that AI-generated stuff might not meet the quality requirements, and the suggested solution doesn’t feel more reliable itself.

On this highly controversial topic — and given that it’s reasonable to assume AI poses significant risks to our cognitive abilities, privacy, and security…

I just want to say that I’m grateful for this tool, because it pointed out errors in plugins I built with the help of LLMs that I wouldn’t have been able to find on my own.

This is exactly what I commented on in the topic that led to this one. I didn’t have the technical knowledge to question the results themselves, but rather their practical application.

Unfortunately, humanity as a whole does not currently always use its critical thinking skills when analyzing actions or responses, and acts on emotions — without realizing it, in a completely unconscious way.

This leads us to inaccurate prejudices about the validity or value of something that, when viewed neutrally, is actually improving a given situation. I understand that this is a natural phenomenon that is changing, and not something personal.

Just to show my humble support to the OP for this tool.

Agreed, as I stated, this was a first cut is now improved as a result of your feedback. We took another look and you were right.

Added to the review method
  • Candidate classification before file inspection:

    • Plugin
    • Theme
    • Theme component
    • Hybrid extension
    • Integration repository
    • Release artifact
  • Separate shared repository/release inventory:

    • README, license, changelog
    • Package files and lockfiles
    • CI workflows
    • Installation/Docker scripts
    • External-service integrations
    • Generated release assets
    • Tagged/archive release
    • Relevant untracked and ignored files
  • Expanded plugin inventory:

    • Every file loaded, registered, or exposed by plugin.rb
    • config/routes.rb
    • db/post_migrate/
    • Views, engines, validators, and middleware
    • Admin and public frontend code
    • Connectors, components, routes, services, templates, and frontend tests
    • Common, desktop, mobile, admin, and embedded styles
    • Fixtures, support files, and browser/system tests
    • Ruby, JavaScript, system, and external-service dependencies
    • .discourse-compatibility
    • d-compat/* branches and workflows
    • Declared Discourse version bounds
  • New theme/theme-component inventory:

    • Root about.json
    • component classification
    • License, author, version, and compatibility metadata
    • Declared assets, color schemes, screenshots, and themeable settings
    • Root settings.yml
    • Root locales/
    • common/, desktop/, and mobile/
    • SCSS and supported HTML injection files
    • Root javascripts/
    • api-initializers/
    • All .js, .gjs, and .hbs files
    • Root stylesheets/ and imported stylesheets
    • Root assets/ and all references to them
    • Preview/screenshots
    • Tests and lint/build configuration
    • Compatibility metadata and branches
    • Packaged/exported theme bytes
  • New structural checks:

    • Declared extension type must match about.json and installation behavior.
    • component: true means theme component.
    • component: false or omitted means full theme.
    • Hybrid repositories receive every applicable inventory.
    • Misplaced or unexpected files are investigated rather than silently ignored.
    • Missing optional directories are not automatically defects.
    • Working tree, release archive, installed extension, generated assets, and public candidate are separate evidence surfaces.
  • New full-theme checklist:

    • Metadata identity
    • Complete-theme rendering
    • Core-page coverage
    • Settings, locales, and assets
    • Supported JavaScript/API initializers
    • Responsive behavior, accessibility, and RTL
    • Foundation, Horizon, and embed behavior
    • Theme-component interactions
    • Installation, update, rollback, and compatibility checks

My hope is community input would improve the Skill and the Skill would help others evaluate their own work or, frankly, the work of others prior to installing if there is a doubt as to quality.

So far we are 2 for 2. Your input drove improvements to the Skill and @satonotdead found it helpful. Thanks for kind words and support @satonotdead