В общем буду постить в этот коммент. Удалось таки запустить наследование...
html.ss
{template html(@param)}
{doctype}
<html lang="ru">
<head>
{block head}
{block meta}
<meta charset="UTF-8">
<title>{param.title}</title>
<meta name="keywords" content="{param.meta_kwd}">
<meta name="description" content="{param.meta_des}">
{/}
{block style}
{/}
{block script}
{/}
{/block}
</head>
<body>
{block body}
{/block}
</body>
</html>
{/template}
main.ss
{include 'html.ss'}
{template main(param) extends html}
{block style}
{super}
{link css}/css/style.css{/}
{/}
{block script}
{super}
{script js src = /js/lib/react.js}{/}
{script js src = /js/lib/shim.js}{/}
{/}
{block body}
{super}
<div class="wrap">{param.title}</div>
{/}
{/template}
вызов:
var tpl = require('../tpl/main.ss.js').init(require('snakeskin'));
var html = tpl.main({title:'Заголовок', meta_kwd:'ключевые, слова', meta_des: 'Много Текста Описания'});
Как можно заметить в main мы не вызываем напрямую {block head}: {block head}{super}{/} Он сам вызовется. В main мы просто дополняем блоки нужными нам данными. Причем место значения не имеет, можно хоть сначала написать {block body}, а в конце {block style}. Выводиться будет в порядке обозначенном в html.ss.