Skip to content

feat: add SkillLoader abstraction for remote skill sources - #1

Merged
himself65 merged 2 commits into
mainfrom
feat/skill-loader
Mar 31, 2026
Merged

himself65 merged 2 commits into
mainfrom
feat/skill-loader

Conversation

@himself65

Copy link
Copy Markdown
Member

Summary

  • Introduces a SkillLoader interface so experimental_createSkillTool can load skills from any source (S3, databases, APIs) instead of only a local directory
  • Adds createLocalSkillLoader as the built-in filesystem loader, preserving backward compatibility via skillsDirectory option
  • Refactors Skill type to carry eagerly-loaded body instead of localPath, removing runtime filesystem reads from the skill tool execute path
  • Includes an Azure Blob Storage example demonstrating custom loader usage

Test plan

  • All 166 existing tests pass (pnpm validate)
  • New loader tests in src/skills/loader.test.ts (9 tests)
  • New custom loader tests in src/skill-tool.test.ts (5 tests covering custom loader, empty loader, error on both/neither options, custom destination)
  • Existing skillsDirectory tests unchanged and passing (backward compat)
  • Azure example type-checks via tsconfig.examples.json

Introduce a SkillLoader interface so skills can be loaded from S3,
databases, or any remote source — not just a local directory.

- Add SkillLoader and LoadedSkill interfaces to types
- Refactor Skill type to carry eagerly-loaded body (no more localPath)
- Create createLocalSkillLoader for filesystem-based loading
- Simplify skill tool execute (no longer reads SKILL.md at runtime)
- Support both skillsDirectory (backward compat) and loader options
- Add Azure Blob Storage example demonstrating custom loader usage
- Add /validate skill for running the full validation pipeline
- Add PostToolUse hook to auto-format with Biome on Write|Edit
- Add workflow note to CLAUDE.md about running pnpm validate
@himself65
himself65 merged commit 45d7a0f into main Mar 31, 2026
1 check passed
@levylyu
levylyu deleted the feat/skill-loader branch October 13, 2026 06:07
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.

1 participant