feat: support skill frontmatter dependencies#36
Open
SoonIter wants to merge 2 commits into
Open
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
skills-package-manager | beccb3d | Commit Preview URL Branch Preview URL |
Jun 12 2026, 11:20 AM |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds first-class support for skill dependency resolution via SKILL.md frontmatter and a generated skills.json.dependencies lock map, including bootstrap behavior when skills.json is missing and update semantics for dependency locks.
Changes:
- Introduces frontmatter parsing + recursive dependency-closure resolution, writing pinned dependency locks into
skills.json.dependenciesand pruning stale locks. - Extends
installto bootstrapskills.jsonwhen missing (empty manifest for new projects; adopt existing local skills for migrated projects). - Updates CLI warning surfacing, docs, and test coverage (unit + e2e) to reflect dependency lock behavior.
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| website/docs/index.mdx | Updates quick start commands to use install as the bootstrap step. |
| website/docs/getting-started.mdx | Reframes standalone CLI onboarding around install bootstrap + subsequent add. |
| website/docs/architecture/manifest.mdx | Documents generated dependencies lock map and dependency pinning model. |
| website/docs/architecture/how-it-works.mdx | Updates install flow description to include dependency discovery/closure. |
| website/docs/architecture/cli-commands.mdx | Updates install/update behavior descriptions (bootstrap + dependency locks). |
| website/docs/api/specifiers.mdx | Documents that specifiers are shared across root skills, locks, and frontmatter deps. |
| website/docs/api/commands.mdx | Documents install dependency reading/locking + bootstrap migration behavior. |
| website/docs/_pnpm.mdx | Updates pnpm guide to use install as the common bootstrap. |
| packages/skills-package-manager/test/update.test.ts | Adds coverage for updating dependency locks and rejecting dependency-only named updates. |
| packages/skills-package-manager/test/manifest.test.ts | Adds coverage for omitting empty dependencies on write + validation defaults. |
| packages/skills-package-manager/test/install.test.ts | Adds coverage for bootstrap scenarios + dependency locking/pruning/conflicts/cycles. |
| packages/skills-package-manager/test/cli.test.ts | Ensures CLI passes onWarning through to install/update commands. |
| packages/skills-package-manager/src/specifiers/formatResolvedSpecifier.ts | Centralizes formatting/pinning and “latest” resolution for manifest specifiers. |
| packages/skills-package-manager/src/skills/frontmatter.ts | Adds YAML frontmatter parsing for SKILL.md (including dependencies). |
| packages/skills-package-manager/src/pipeline/context.ts | Ensures normalized workspace manifest includes dependencies. |
| packages/skills-package-manager/src/github/listSkills.ts | Reuses shared frontmatter parser when listing skills from repos. |
| packages/skills-package-manager/src/config/writeSkillsManifest.ts | Writes dependencies only when non-empty (and keeps field ordering). |
| packages/skills-package-manager/src/config/types.ts | Adds dependencies + warning types and plumbs warning callbacks/results. |
| packages/skills-package-manager/src/config/skillsManifest.ts | Normalizes dependencies and expands manifest for self-skill injection. |
| packages/skills-package-manager/src/config/skillDependencies.ts | Implements recursive dependency closure resolution + lock ordering/pruning + warnings. |
| packages/skills-package-manager/src/config/schema.ts | Adds dependencies to Zod schema with default {}. |
| packages/skills-package-manager/src/config/resolveSkillsPlan.ts | Includes dependency-lock entries in resolved plan; updates patch digest composition. |
| packages/skills-package-manager/src/config/bootstrapSkillsManifest.ts | New: generates a manifest when missing by adopting existing local installs when present. |
| packages/skills-package-manager/src/commands/update.ts | Updates both root skills + dependency locks (no-arg), then recomputes dependency closure. |
| packages/skills-package-manager/src/commands/install.ts | Bootstraps missing manifests; resolves dependency closure before pipeline; writes locks after success. |
| packages/skills-package-manager/src/commands/add.ts | Ensures newly created manifests include dependencies: {} in-memory. |
| packages/skills-package-manager/src/cli/runCli.ts | Prints dependency warnings and passes warning callback to install/update. |
| packages/skills-package-manager/skills/skills-package-manager-cli/SKILL.md | Updates bundled helper skill guidance to match new bootstrap/dependency model. |
| packages/skills-package-manager/README.md | Updates README to emphasize install bootstrap + dependency lock behavior. |
| e2e/cases/install.test.ts | Adds e2e coverage for bootstrap + dependency locks + warning output. |
| e2e/cases/snapshots/install.test.ts.snap | Snapshot updates for new install flows and warning output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+52
to
+54
| if (!isRecord(parsed)) { | ||
| return { frontmatter: empty, warnings } | ||
| } |
Comment on lines
+163
to
+165
| await writeSkillsManifest(rootDir, manifest) | ||
| return normalizeSkillsManifest(manifest) | ||
| } |
Comment on lines
+176
to
+177
| await writeSkillsManifest(rootDir, manifest) | ||
| return normalizeSkillsManifest(manifest) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dependenciessupport toSKILL.mdfrontmatter andskills.json.update, CLI warnings, docs, and unit/e2e coverage for dependency lock behavior.Related Links
Checklist