Skip to content

feat: add skill packaging from git repos as OCI artifacts#452

Merged
JAORMX merged 2 commits intomainfrom
feat/skill-packaging
Apr 7, 2026
Merged

feat: add skill packaging from git repos as OCI artifacts#452
JAORMX merged 2 commits intomainfrom
feat/skill-packaging

Conversation

@JAORMX
Copy link
Copy Markdown
Collaborator

@JAORMX JAORMX commented Apr 7, 2026

Summary

  • Extends Dockyard to package skills from git repositories into OCI skill artifacts (dev.toolhive.skills.v1) published to GHCR, mirroring the existing MCP server containerization pipeline
  • Adds build-skill and validate-skill dockhand commands using toolhive's gitresolver + toolhive-core's OCI skills packager
  • Includes separate CI workflow, Renovate git-refs tracking, Taskfile tasks, and an initial skill spec for anthropics/skills claude-api

Details

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 --push
  • dockhand validate-skill -c skills/my-skill/spec.yaml — clones and validates without packaging (for PR checks)

Skill spec format (skills/{name}/spec.yaml):

metadata:
  name: claude-api
  description: "Build apps with the Claude API"
spec:
  repository: "https://github.com/anthropics/skills"
  ref: "98669c11ca63e9c81c11501e1437e5c47b556621"
  path: "skills/claude-api"
  version: "0.1.0"

Published artifacts are directly consumable by toolhive:

thv skill install ghcr.io/stacklok/dockyard/skills/claude-api:0.1.0

Dependency upgrades: toolhive v0.12.1 → v0.15.0, toolhive-core v0.0.11 → v0.0.13

Test plan

  • go build ./... — compiles cleanly
  • go vet ./... — no issues
  • dockhand build -c npx/context7/spec.yaml — existing MCP server flow unchanged
  • dockhand 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 digest
  • CI: build-skills.yml workflow runs on PR (discover → validate → build dry-run)
  • CI: Renovate detects skills/*/spec.yaml with git-refs datasource

🤖 Generated with Claude Code

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>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

🔒 MCP Security Scan Results

⚠️ No MCP servers were scanned in this PR.

- 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>
@JAORMX JAORMX merged commit e64a09f into main Apr 7, 2026
49 checks passed
@JAORMX JAORMX deleted the feat/skill-packaging branch April 7, 2026 07:36
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