feat: add skill packaging from git repos as OCI artifacts#452
Merged
Conversation
Extend Dockyard to package skills from git repositories into OCI skill
artifacts (dev.toolhive.skills.v1) and publish them to GHCR, mirroring
the existing MCP server containerization pipeline.
New dockhand commands:
- build-skill: clones skill from git, packages as OCI artifact, optionally pushes
- validate-skill: clones and validates SKILL.md without packaging
Uses toolhive's gitresolver for git operations and toolhive-core's
oci/skills packager for OCI artifact creation. Published artifacts are
consumable via `thv skill install ghcr.io/stacklok/dockyard/skills/{name}:{version}`.
Includes CI workflow (build-skills.yml), Renovate git-refs tracking,
Taskfile tasks, and an initial skill spec for anthropics/skills claude-api.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
🔒 MCP Security Scan Results |
- Fix gci import formatting (auto-formatted by golangci-lint fmt) - Fix gosec G104: handle os.RemoveAll return values in cleanup paths - Remove dead code in validateSkillConfigPath (unused HasPrefix check) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rdimitrov
approved these changes
Apr 7, 2026
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
dev.toolhive.skills.v1) published to GHCR, mirroring the existing MCP server containerization pipelinebuild-skillandvalidate-skilldockhand commands using toolhive's gitresolver + toolhive-core's OCI skills packageranthropics/skillsclaude-apiDetails
New dockhand commands:
dockhand build-skill -c skills/my-skill/spec.yaml— clones skill from git, validates SKILL.md, packages as multi-arch OCI artifact, optionally pushes with--pushdockhand validate-skill -c skills/my-skill/spec.yaml— clones and validates without packaging (for PR checks)Skill spec format (
skills/{name}/spec.yaml):Published artifacts are directly consumable by toolhive:
Dependency upgrades: toolhive v0.12.1 → v0.15.0, toolhive-core v0.0.11 → v0.0.13
Test plan
go build ./...— compiles cleanlygo vet ./...— no issuesdockhand build -c npx/context7/spec.yaml— existing MCP server flow unchangeddockhand validate-skill -c skills/claude-api/spec.yaml— clones from GitHub, validates SKILL.md (2 files, VALID)dockhand build-skill -c skills/claude-api/spec.yaml— full git→OCI pipeline, produces reproducible digestbuild-skills.ymlworkflow runs on PR (discover → validate → build dry-run)skills/*/spec.yamlwithgit-refsdatasource🤖 Generated with Claude Code