Skins are the MediaWiki extensions that output all the content, everything that core //and// all other extensions produce, and yet they are one of the least well-supported areas of MediaWiki. We need to fix this.
As extensions, skins have a powerful flexibility built in, able to implement pretty much anything from the ground up, but this should not be necessary for common skin functions. We need a better basis to build from, we need proper abstraction in the backend that we can expect to remain consistent in the future, too. We need proper interfaces for other extensions to hook into. We need to be able to build on top of this. We need to rethink how MediaWiki skinning is handled, from every angle. What we have may work, but not well, and not reliably, especially not when the very ways we interact with the wikis themselves are being redefined (VE, SMW, echo and flow, etc).
Let's fix this. Let's talk. Let's come up with something actionable.
=== Background ===
* Manual: https://www.mediawiki.org/wiki/Manual:Skinning
* Tech talk on making a skin: http://www.youtube.com/watch?v=5b-8-_UpcQc
* Current default skin: https://www.mediawiki.org/wiki/Skin:Vector
* https://www.mediawiki.org/wiki/Manual:QuickTemplate (Skins implement a SkinnameTemplate, which extends BaseTemplate, which extends QuickTemplate. They also use other classes.)
=== Abstractions ===
* https://github.com/jdlrobson/SimpleSkins - a frontend abstraction for creating a skin without touching the php backend
* https://www.mediawiki.org/wiki/Extension:Bootstrap - for making skins with Twitter Bootstrap