Skill naming format

I am not clear on the preferred skill naming format. It seems that some use “skill” as a prefix, others as a suffix, and others not at all. Or maybe that indicates certain classes of skills? Also seeing underscores, dashes and no separators. I would like to conform to the preferred “official” format for skill name, containing directory name, python objects naming, etc.

Requesting documentation citation or more specific details in the skill template or a reply here to clarify.

For the skill name, there is a little sentence here that says:

In general, we normally use BLANK-skill as a format for skill names.

For the python object naming part, it is said here that your code has to follow PEP8 rules to contribute to mycroft-core.

Before committing, format your code following the PEP8 rules […]

Not sure if that applies to skill implementation though.

I hope this answers to some of your questions :slight_smile:

1 Like

Thank you, @Nuttymoon. That is definitely helpful! I missed that in my reading so far (or perhaps didn’t get that far yet). I was mostly confused by the variety of formats already appearing in https://github.com/MycroftAI/mycroft-skills and also the step 5 example repo prefixes with “mycroft-” but omits the word skill altogether.

Perhaps the Meta Editor mentioned in Step 3 http://rawgit.com/MycroftAI/mycroft-skills/master/meta_editor.html should have a separate output box with recommended skill directory name and class name for init.py. In the case of the latter, just to help emphasize that in the template (which shows “HelloWorldSkill”) the word “Skill” is intended to literally be included in the class name.

After reviewing https://github.com/MycroftAI/mycroft-skills#4-add-your-skill-as-a-submodule in early 2018, it looks like the current preferred format is: publishername-multiword-descriptive-name . Is this indeed the current standard? The actual repository seems to have a lot of variation from that.
Also few points not explicitly answered:

  • should skill name (and specifically the git repository’s name) be all lower case?
  • the word “skill” should not show up in the skill name, correct? It looks like maybe core skills are permitted to use the word skill, as the first or last word

publishername-multiword-descriptive-name is correct. You don’t have to use the word skill. We’re renaming all the Mycroft-developed Skills mycroft-descriptive-name over time.

You’re right - the repo isn’t consistent at the moment.

1 Like

Thank you for the confirmation and clarification, @KathyReid . What about letter case? Are capitals disallowed? Or allowed-but-discouraged? or totally ok?

Good question @jrwarwick, we usually go no-capitals-all-lowercase