Skip to content

feat: support skill frontmatter dependencies#36

Open
SoonIter wants to merge 2 commits into
mainfrom
codex/skill-frontmatter-dependencies
Open

feat: support skill frontmatter dependencies#36
SoonIter wants to merge 2 commits into
mainfrom
codex/skill-frontmatter-dependencies

Conversation

@SoonIter

@SoonIter SoonIter commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add top-level dependencies support to SKILL.md frontmatter and skills.json.
  • Resolve recursive skill dependency closures during install, write pinned dependency locks after successful installs, and prune stale dependency locks.
  • Update update, CLI warnings, docs, and unit/e2e coverage for dependency lock behavior.

Related Links

Checklist

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

Copilot AI review requested due to automatic review settings June 12, 2026 10:55
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 12, 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 beccb3d Commit Preview URL

Branch Preview URL
Jun 12 2026, 11:20 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 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.dependencies and pruning stale locks.
  • Extends install to bootstrap skills.json when 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)
@SoonIter SoonIter changed the title feat: support skill frontmatter dependencies feat: support skill dependencies and install bootstrap Jun 12, 2026
@SoonIter SoonIter changed the title feat: support skill dependencies and install bootstrap feat: support skill frontmatter dependencies Jun 12, 2026
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