Skip to content

feat(skills): adopt AgentSkills.io SKILL.md standard (#150)#216

Merged
Aaronontheweb merged 3 commits into
devfrom
claude-wt-agent-skills
Mar 13, 2026
Merged

feat(skills): adopt AgentSkills.io SKILL.md standard (#150)#216
Aaronontheweb merged 3 commits into
devfrom
claude-wt-agent-skills

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Summary

  • Replaces homegrown HTML comment metadata with the AgentSkills.io standard: YAML frontmatter parsed by YamlDotNet, directory-based skill layout (skill-name/SKILL.md), and progressive disclosure via references/, scripts/, assets/ subdirectories
  • All skills now use the canonical directory layout exclusively — flat file support removed entirely (no users to migrate)
  • Feed manifest supports multi-file skill entries with per-file SHA-256 verification for directory-based skills with resources
  • Deleted 29 old skill version files from the feed source — git history preserves them, repo doesn't need to carry them

What changed

Scanner (SkillScanner.cs):

  • YAML frontmatter parsing via YamlDotNet (name, description, metadata.triggers, license, compatibility, allowed-tools)
  • Directory-based discovery only: skill-name/SKILL.md in root or nested under category/.system/
  • Resource enumeration for scripts/, references/, assets/ subdirectories

Data model (SkillEntry.cs):

  • SkillDirectory promoted to required constructor parameter (every skill has one)
  • Removed SkillFormat enum — single format
  • Added: Version, License, Compatibility, AllowedTools, ResourcePaths

Feed pipeline:

  • SkillFeedEntry.Files array for multi-file skills (backward-compatible: old daemons ignore it)
  • SystemSkillSyncService always creates skill-name/SKILL.md directories, downloads resource files with individual SHA-256 checks
  • CopyBuiltInSkills creates skill-name/SKILL.md on disk instead of flat skill-name.md
  • generate-skill-manifest.sh simplified to directory-only detection
  • Removed MigrateFlatSkills() — no users to migrate

System skills:

  • All 5 skills converted to YAML frontmatter
  • skill-authoring skill rewritten to document the new format
  • Feed source restructured: version/SKILL.md directories replace flat version.md files

Closes #150

Test plan

  • All 921 tests pass (scanner, registry, sync service, CLI)
  • dotnet slopwatch analyze — 0 violations
  • generate-skill-manifest.sh generates valid manifest for both simple and directory-based skills (tested with synthetic multi-file skill)
  • Manual: start daemon with DisableSystemSkillSync=true, verify built-in skills bootstrap as directories
  • Manual: start daemon with sync enabled against live feed, verify system skills sync correctly

…atter (#150)

Replace the homegrown HTML comment metadata format with the AgentSkills.io
standard using YAML frontmatter parsed by YamlDotNet. Add support for
directory-based skills (name/SKILL.md) with progressive disclosure via
references/, scripts/, and assets/ subdirectories.

Phase 1 — YAML frontmatter scanner:
- SkillScanner parses YAML frontmatter (name, description, metadata.triggers,
  license, compatibility, allowed-tools, metadata.version)
- Directory-based skill discovery: name/SKILL.md preferred over name.md
- Resource enumeration for scripts/, references/, assets/ subdirectories
- SkillEntry extended with Format, Version, License, Compatibility,
  AllowedTools, SkillDirectory, and ResourcePaths properties
- SkillRegistry compressed index shows resource count for directory skills

Phase 2 — System skill migration:
- All 5 system skills converted to YAML frontmatter (new version files)
- Built-in skill copies updated to match latest feed versions
- skill-authoring skill rewritten to document the YAML frontmatter format

Phase 3 — Directory-based feed support:
- SkillFeedManifest gains optional Files array per skill entry for multi-file
  directory-based skills (backward-compatible: old daemons ignore the field)
- SystemSkillSyncService downloads SKILL.md + resource files into skill
  directories with per-file SHA-256 verification
- generate-skill-manifest.sh detects version directories containing SKILL.md
  and generates files array entries with per-file hashes and CDN URLs
…pport

All skills now use the AgentSkills.io canonical directory layout
(skill-name/SKILL.md) exclusively. No flat file support.

- SkillScanner: removed flat file pass, all discovery is directory-based
- SkillEntry: SkillDirectory promoted to required constructor parameter,
  removed SkillFormat enum (single format)
- SystemSkillSyncService: always creates skill-name/SKILL.md directories,
  removed MigrateFlatSkills (no users to migrate)
- CopyBuiltInSkills: creates skill-name/SKILL.md on disk instead of
  skill-name.md
- SkillFeedManifest: removed Format property from SkillFeedEntry
- Feed sources: converted latest versions to directory layout
  (skill-name/version/SKILL.md), deleted all old version files
- generate-skill-manifest.sh: simplified to directory-only detection
@Aaronontheweb Aaronontheweb enabled auto-merge (squash) March 13, 2026 18:49
@Aaronontheweb Aaronontheweb merged commit 53c1b97 into dev Mar 13, 2026
2 of 3 checks passed
@Aaronontheweb Aaronontheweb deleted the claude-wt-agent-skills branch March 13, 2026 18:53
@Aaronontheweb Aaronontheweb mentioned this pull request Mar 13, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor skill system to adopt AgentSkills.io SKILL.md standard

1 participant