Skip to content

feat: add local skill protocol#32

Merged
SoonIter merged 3 commits into
mainfrom
feat/raw-protocol
May 15, 2026
Merged

feat: add local skill protocol#32
SoonIter merged 3 commits into
mainfrom
feat/raw-protocol

Conversation

@SoonIter

@SoonIter SoonIter commented May 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add local: skill specifiers for existing user-owned skill directories.
  • Install local: skills in place without copying, replacing, patching, or pruning their source directories.
  • Link agent targets directly to the local source directory and maintain .gitignore unignore rules for repo-local skills.
  • Update tests, docs, and the bundled skills-package-manager-cli guidance.

Related Links

web-infra-dev/rsbuild#7565

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

Testing:

  • pnpm build
  • pnpm test
  • pnpm build:website
  • pnpm check (passes with existing warnings)

Copilot AI review requested due to automatic review settings May 15, 2026 09:49
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented May 15, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
skills-package-manager 4ad30de Commit Preview URL

Branch Preview URL
May 15 2026, 09:59 AM

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new local: skill specifier protocol that registers existing user-owned skill directories in place — without copying, replacing, patching, or pruning them — and links them directly into configured linkTargets. Plumbs the new resolution type through the resolver/fetcher/link pipeline and updates docs and tests.

Changes:

  • Introduces local resolution type with a dedicated resolver/fetcher, prune protection, and .gitignore unignore rules for repo-local skill directories.
  • Threads a per-skill installPath through fetch and link queues so symlinks point at the original source for local: skills.
  • Skips local: skills during update, blocks patching them, and updates docs/CLI guidance accordingly.

Reviewed changes

Copilot reviewed 33 out of 33 changed files in this pull request and generated no comments.

Show a summary per file
File Description
website/docs/index.mdx Mention local: alongside link: in feature list.
website/docs/getting-started.mdx Document local: use case.
website/docs/architecture/manifest-and-lockfile.mdx Manifest example + lockfile resolution-type list updated for local.
website/docs/architecture/how-it-works.mdx List local: among recognized specifier kinds.
website/docs/architecture/cli-commands.mdx Add local: add example; note update skips it.
website/docs/api/specifiers.mdx Document local: specifier form & resolution semantics.
website/docs/api/commands.mdx Note local: skills cannot be patched.
skills-lock.yaml Self-skill link entry now records empty digest.
packages/.../test/update.test.ts Cover local: being skipped by update.
packages/.../test/specifiers.test.ts Parse/normalize/sync tests for local:.
packages/.../test/install.test.ts Install behavior: no replacement, missing SKILL.md, patch error, no pruning.
packages/.../src/specifiers/normalizeSpecifier.ts Recognize local: and reject path fragments.
packages/.../src/specifiers/normalizeLinkSource.ts Shared normalizer for link:/local: protocols.
packages/.../src/resolvers/local.ts New resolver emitting local resolution entries.
packages/.../src/resolvers/index.ts Dispatch to local resolver.
packages/.../src/pipeline/linkQueue.ts Pass installPath to linkSkill.
packages/.../src/pipeline/index.ts Ensure gitignore rules and protect local dirs during prune.
packages/.../src/pipeline/fetchQueue.ts Up-to-date check + install path handling for local:.
packages/.../src/install/pruneManagedSkills.ts Skip protected (local) skill directories.
packages/.../src/install/localSkills.ts Helpers for local install paths and .gitignore rules.
packages/.../src/install/links.ts Accept explicit source path for symlink target.
packages/.../src/install/installSkills.ts Use local helpers in fetch/link from lock paths.
packages/.../src/fetchers/local.ts New fetcher that returns source dir after verifying SKILL.md.
packages/.../src/fetchers/index.ts Dispatch to local fetcher.
packages/.../src/errors/index.ts Include local: in specifier help.
packages/.../src/config/types.ts Add local to specifier and resolution unions; new skip reason.
packages/.../src/config/syncSkillsLock.ts Reject patching local: skills.
packages/.../src/config/compareSkillsLock.ts Treat local: like link: for comparison normalization.
packages/.../src/commands/update.ts Skip local: specifiers during update.
packages/.../src/commands/install.ts Comment update.
packages/.../src/commands/add.ts Recognize local: as a direct specifier.
packages/.../skills/skills-package-manager-cli/SKILL.md CLI guidance mentions local:.
packages/.../README.md README documents new protocol and resolution behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@SoonIter SoonIter merged commit f9be1d8 into main May 15, 2026
4 checks passed
@SoonIter SoonIter deleted the feat/raw-protocol branch May 15, 2026 10:00
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.

2 participants