Skip to content

split out skill build command from skill publish#279

Merged
peterj merged 5 commits intomainfrom
peterj/addskillbuild
Mar 9, 2026
Merged

split out skill build command from skill publish#279
peterj merged 5 commits intomainfrom
peterj/addskillbuild

Conversation

@peterj
Copy link
Copy Markdown
Contributor

@peterj peterj commented Mar 6, 2026

Description

Extracts out the 'build' functionality from the skill publish command into a separate command (just like we have it with agents and MCP servers).

Docs: agentregistry-dev/website#13

Fixes #243

Change Type

/kind feature

Changelog

added `arctl skill build` command

Copilot AI review requested due to automatic review settings March 6, 2026 00:25
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR extracts Docker image build functionality out of arctl skill publish into a new arctl skill build command, and updates skill publish to support publishing via GitHub or a pre-built Docker image reference.

Changes:

  • Added arctl skill build to build (and optionally push) Docker images from local skill folders.
  • Updated arctl skill publish to remove Docker build/push flags and introduce --docker-image for registering pre-built images.
  • Improved skill folder detection by validating SKILL.md YAML frontmatter and expanded unit/e2e coverage for new modes.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
internal/cli/skill/skill.go Registers the new skill build subcommand under skill.
internal/cli/skill/publish.go Removes docker-build-from-publish flow; adds --docker-image publish mode; tightens folder detection behavior.
internal/cli/skill/publish_test.go Updates publish tests for new detection behavior and new docker-image direct mode; removes old docker-url build tests.
internal/cli/skill/build.go Implements arctl skill build command and Docker build/push behavior.
internal/cli/skill/build_test.go Adds unit tests for build command validation and skill detection.
e2e/skill_publish_test.go Adds e2e coverage for skill build and docker-image publish workflows and updates existing publish tests.

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

peterj added 2 commits March 5, 2026 16:55
Signed-off-by: Peter Jausovec <[email protected]>
Signed-off-by: Peter Jausovec <[email protected]>
Copy link
Copy Markdown
Collaborator

@inFocus7 inFocus7 left a comment

Choose a reason for hiding this comment

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

just 2 requests & 2 questions 👍🏼

Signed-off-by: Peter Jausovec <[email protected]>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 6, 2026

You already have 3 pull requests open. Please consider working on getting the existing ones merged before opening new ones. Thanks!

Copy link
Copy Markdown
Collaborator

@inFocus7 inFocus7 left a comment

Choose a reason for hiding this comment

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

one last nit, but overall lgtm

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 9, 2026

You already have 3 pull requests open. Please consider working on getting the existing ones merged before opening new ones. Thanks!

@peterj peterj enabled auto-merge March 9, 2026 16:59
@peterj peterj added this pull request to the merge queue Mar 9, 2026
Copy link
Copy Markdown
Collaborator

@timflannagan timflannagan left a comment

Choose a reason for hiding this comment

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

A couple of things I missed during the initial review when looking at the changes locally.


func init() {
BuildCmd.Flags().StringVar(&buildImage, "image", "", "Full image specification (e.g., docker.io/myorg/my-skill:v1.0.0)")
BuildCmd.Flags().BoolVar(&buildPush, "push", false, "Push the image to the container registry, specififed by --image")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

specififed typo, but that seems to also be applicable to the other build commands too.

Comment on lines +66 to +73
dockerExec := docker.NewExecutor(verbose, "")
if err := dockerExec.CheckAvailability(); err != nil {
return fmt.Errorf("docker check failed: %w", err)
}

if err := buildSkillImage(absPath, dockerExec); err != nil {
return err
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I missed this during the first review. We initialize a docker executor twice. One here and again on line 109. We already DI the docker executor in buildSkillImage.

)

func init() {
BuildCmd.Flags().StringVar(&buildImage, "image", "", "Full image specification (e.g., docker.io/myorg/my-skill:v1.0.0)")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It looks like we have inconsistent image shorthands across this command, MCP, and agent. MCP uses -n.

Merged via the queue into main with commit 7228782 Mar 9, 2026
7 checks passed
@peterj peterj deleted the peterj/addskillbuild branch March 9, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add arctl skill build command

4 participants