skillscript-runtime v0.33.0
Upgrade impact: none (additive). New optional frontmatter field + one additive SkillMeta/skill_list field; no breaking change.
An optional # Tags: frontmatter field for categorizing skills — a second, author-defined axis alongside the audience grouping.
# Tags: morning-brief, amp, ops— optional, comma-separated, normalized to lowercase de-duped slugs. Pure classification: zero effect on execution, dispatch, approval, or runtime selection — a display + agent-comprehension axis, never an authz input.- Rides in the contract from day one.
SkillEntry.tags(onskill_list) is always present (empty array when untagged), andSkillMeta.tags/skill_preflightcarry it too — so the agent can chunk a large skill menu into families without reading each description (a mitigation for selection degradation on big flat lists), not just a viewer nicety. Server-side tag filtering (skill_list({ filter: { tags } })) is deferred; the field enables it later. - Runtime-derived. Like
description/vars, tags are a projection of the body, so the runtime derives them from the frontmatter — a custom SkillStore that doesn't track tags still gets them. - Approval-neutral. The
# Tags:line is excluded from the approval signing hash (the same carve-out the# Status:line already has), so editing a tag does not invalidate an operator's signature or drop the skill to Draft — safe by construction, since a tag can't change what a skill does. - Dashboard consumer (ships with the field). The skills list is faceted by tag — filter chips (All / each tag / untagged) plus per-row tag pills.