This is initial draft for making an github organization for orphan skills and to join forces for keeping good and important skills alive.
The name…
Anyone has a better name?
Leaving out mycroft name so no confusion on the Mycroft skills team is made. The Mycroft skills team is the team dooing reviev on skills when they go to market.
Purpos…
Keeping important skills alive. That means if a skill writer leaves a skill, and the skill is important to the mycroft eco system the organisation takes over and continue to support and devolep the skill.
An good example is the Homeassistant skill that has been made by @BongoEADGC6 and continued devolepment by @btotharye. Both great skill writers, but they have left the skill due to lack of time or other reasons.
This skill is an important skill to be let all alone without any owner. So that is one skill that could be owend, supported and further devoleped by United Skill Writers.
There is other skills like this, and the idea is that if we joint forces we kan keep these alive.
Who could be member…
Everyone who feels they could add anything should and could be member.
Members commitment…
Every member should help in support and devolepment of the skills that belong to the organization.
How should it work…
Using github and branches issues and all the github tools it should be posible. When an issue is rased, and someone will work on a solution, they make a branch acrding t the issue and comit the solution. Then others could comment and discus the solution and when it looks OK it get merged to master branch. When the masterbranch is good, updates is sent to the mycroft market.
Maybe only some members should be “super” and be the ones that can merge master branches and send to market. That could be different people on different skills.
thanks for flagging me on the thread, you raise a really good point. What do we do with abandoned / orphaned Skills? If I’m reading the thread correctly, you are proposing that;
We establish a Community team to nurture / care for the abandoned Skill
That we provide a repo under the MycroftAI GitHub for this, that the Community Skills Team can make changes to the Skills
And that we fork in Skills that have been abandoned
Is this a correct summary?
If so I definitely think this is a great idea! I’d like to bounce it off our Skills Management Team - as they help provide guidance and governance on our approach to Skills, however I’m certain in favour.
I were of the impresion that it should be made outside MycroftAI - but “inside” would be great. The important is that orphan skills should be taken care of .
I’m really delighted and proud that the Community wants to take this on, and it’s something that Mycroft AI should be supportive of - providing a few repos is fairly easy for us to do, and we can manage access using the permission structure in GitHub.
From experience there are some things the Community might want to give some consideration to at the outset, to help prevent overloading or Community fatigue at a later point in time - this is a Community initiative so I don’t want to be a dictator - these are offered as suggestions.
Criteria for Skills that will be “adopted” under the program
You don’t want to adopt every orphan Skill because this will quickly overwhelm the team, and stretch the available time you have. Instead, what I’d recommend here is defining some criteria that the orphan Skills have to have to be adopted. These might be things like;
The Skill is mature and has significant functionality
The Skill has an established user base
The README is well documented
There might be other criteria, but this would mean the United Skill Writers are maintaining already established Skills rather than having to do a lot of “remedial” work to get Skills up to standard.
Significant Skills
Skill Authors often write Skills to “learn” the Mycroft Skill process - which is really commendable. But often a first Skill is very basic or doesn’t add a lot of value for other people. I’d recommend that an orphan Skill should be “significant” - adds a lot of value - before it is adopted
Ability to drop support for an orphan Skill
I’d recommend that the group also be very clear about the circumstances in which support for an orphan Skill can be dropped - for example if not many people are using the Skill anymore. This ensures that the group is always working to maintain high-value Skills that are well-utilised by Mycroft users.
Licensing
An orphan Skill should also be licensed correctly by the original Skill Author - otherwise we may not be able to fork it an maintain it - for example if it is unlicensed or uses a proprietary license. Many Skill Authors don’t correctly add a license.
Criteria for Skills that will be “adopted” under the program
i would tweak Criteria for Skills that will be “adopted” under the program a bit, let’s consider mandatory, and optional criteria, if a mandatory criteria is missing the skill will not be adopted, the optional criteria will give it priority over other skills but should not exclude it from adoption
Additionally these should be flexible enough to allow voluntary adoption, or requested adoption
Mandatory Criteria
The Skill is mature and has significant functionality OR functionality is considered important even if the skill was abandoned in early stages
The Skill has an established user base OR has been requested by the community
The Skill must be licensed correctly by the original Skill Author
Optional Criteria
The README is well documented OR inline documentation is good
The skill is already in skills store, but only for older branches
Automatic Adoption
Some skills could be automatically flagged for adoption by the team based on some metrics automatically gathered from github, @andlo skill list is a good starting point
last commit was over 6 months ago
the skill has been forked a lot
the skill has lots of downloads
the skill has lots of stars
the skill solves common failed utterances (this data is provided by mycroft right?)
The skill is already in skills store, but only for older branches
The skill has a PR in skills store, but it is failing and was not updated for a long time
Common problems we want to solve
We should have a clear objective on which problems we want to solve, main objective should not be to add new features, but rather to fix skills that can’t otherwise be used
The skill is up to standards but not in the skills store
The skill is functional but only for python2
The skill is functional but readme is not up to standards
The skill is functional but missing unittests
The skill is mostly functional but does not account for some edge cases
The skill is functional but can be improved/cleaned, i’m considering mostly new core features that were not there when the skill was developed
The skill was functional, but is old enough that the latest core version introduced a bug/backwards incompatibility
i think we should also create some website (github pages will do), and a standard way for people to reach us and know who the team is, can be a single simple page, we should also write some sort of manifest/mission statement and basically put the info from this thread in there
another point i want to bring up, forking skills does not allow opening issues (does it?)
finally, should a github team be created under MycroftAI organization for this ?
anyone who wants to contribute is welcome in my opinion. every little bit isnt going to make anything alone - but together - united - we kan do what ever we want and make great stuff
I’m happy to create a “Community Skill Taskforce” team (if you like that name). These team members could be given write access to specific repos under https://github.com/mycroftai, so these adopted skills could be brought under the organization.
for now that would be only the home assistant skill
maybe we should also have a github repo/page with a list of adopted skills, the criteria in this thread and contact info (mattermost channel for now), skill proposals for adoption could be through issues or PRs like the skills repo
Created! I invited the Github user “fortwally” instead of “wally_fort” (as that is who signed the CLA, so I’m pretty sure it is the correct person). If not, I can update the list.
There is now a “Mycroft Community” team with sub-teams “Community Skill Taskforce” (this group) and “Skill Management Team” (the group that manages the mycroft-skills repo).