Skip to content

Commit 5d49918

Browse files
authored
Document chainctl skills validate, uninstall, and delete commands (#3459)
[ ] Check if this is a typo or other quick fix and ignore the rest :) ## Type of change <!-- Please be sure to add the appropriate label to your PR. --> **Documentation Update** - Document the `chainctl skills uninstall` command in both the public catalog and skills registry guides - Add `chainctl skills validate` (including `--strict`) coverage to the skills registry guide - Add `chainctl skills delete` coverage for removing published skills from the registry - Add the new commands to each page's command reference table ### What should this PR do? <!-- Does this PR resolve an issue? Please include a reference to it. --> resolves chainguard-dev/internal#5881 Documents the `validate`, `uninstall`, and `delete` subcommands across the Agent Skills public catalog and skills registry pages. ### Why are we making this change? <!-- What larger problem does this PR address? --> The Agent Skills docs covered pushing, installing, and running skills but omitted how to validate a skill before publishing, uninstall a skill locally, or delete a published version from the registry. These gaps left users without guidance for the full skill lifecycle. ### What are the acceptance criteria? <!-- What should be happening for this PR to be accepted? Please list criteria. --> <!-- Do any stakeholders need to be tagged in this review? If so, please add them. --> - The public catalog page documents `uninstall`, including its flags and confirmation prompt - The skills registry page documents `validate` (with `--strict`), `uninstall`, and `delete`, and clearly distinguishes local uninstall from registry deletion - Both command reference tables list the new commands - Code snippets and example output match actual `chainctl skills` behavior ### How should this PR be tested? Any documentation published to Chainguard Academy is reviewed carefully for accuracy. GUI procedures, API commands, and CLI code snippets in a draft are run and tested thoroughly — by both the author and the reviewer — to confirm they work exactly as written. This helps ensure that readers can follow along and get the same results. See the [`edu` repo's README](https://github.com/chainguard-dev/edu#testing). 1. Check the [preview link](https://deploy-preview-3459--ornate-narwhal-088216.netlify.app/chainguard/agent-skills/) and ensure the changes look right 2. Navigate to the Agent Skills public catalog page and verify the "Uninstall the skill" section and command reference table 3. Navigate to the skills registry page and verify the "Validate the skill", "Uninstall the skill", and "Delete a skill from the registry" sections and command reference table Signed-off-by: Mark Drake <mark@chainguard.dev>
1 parent a9867c1 commit 5d49918

2 files changed

Lines changed: 106 additions & 0 deletions

File tree

content/chainguard/agent-skills/public-catalog.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,25 @@ Load the skill into Claude Code or any MCP-compatible agent. In Claude Code, inv
161161

162162
The agent loads the skill and runs it, confirming it installed and loaded correctly end to end.
163163

164+
## Uninstall the skill
165+
166+
To remove a skill from your machine, pass its name to the `uninstall` subcommand. Use the skill's install name, which `describe` reports as the `Install Name` field — for this skill, `chainguard-github-add-educational-comments`:
167+
168+
```shell
169+
chainctl skills uninstall chainguard-github-add-educational-comments
170+
```
171+
172+
The command prompts for confirmation before removing any files:
173+
174+
```output
175+
This will remove skill "chainguard-github-add-educational-comments" from local agent directories.
176+
Proceed?
177+
Do you want to continue? [y,N]:
178+
Uninstalled skill "chainguard-github-add-educational-comments".
179+
```
180+
181+
By default, `uninstall` removes the skill from every agent directory where it's installed. Use the `--agent` flag to remove it from specific agents only, or the `--global` flag to remove it from global directories instead of the current project. Add the `-y` flag to skip the confirmation prompt.
182+
164183
## Command reference
165184

166185
| Action | Command |
@@ -169,6 +188,7 @@ The agent loads the skill and runs it, confirming it installed and loaded correc
169188
| Describe a skill | `chainctl skills describe skills.cgr.dev/chainguard/<owner>/<name>:<tag>` |
170189
| Pull a skill | `chainctl skills pull skills.cgr.dev/chainguard/<owner>/<name>:<tag> <dir>` |
171190
| Install a skill | `chainctl skills install skills.cgr.dev/chainguard/<owner>/<name>:<tag>` |
191+
| Uninstall a skill | `chainctl skills uninstall <install-name>` |
172192

173193
## Next steps
174194

content/chainguard/agent-skills/skills-registry.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,47 @@ This section outlines some of the `chainctl` commands you can use to manage skil
105105

106106
Refer to the [`chainctl skills` reference documentation](/chainguard/chainctl/chainctl-docs/chainctl_skills/) for more information.
107107

108+
### Validate the skill
109+
110+
Before you publish, check that the skill directory meets the spec with the `validate` subcommand. It runs locally and makes no network calls:
111+
112+
```shell
113+
chainctl skills validate hello-world
114+
```
115+
```output
116+
✓ SKILL.md found
117+
✓ Frontmatter valid
118+
✓ name: "hello-world" (matches directory basename)
119+
✓ description: 96 chars
120+
✓ Total size: 387 B / 10 MB
121+
✓ 1 file(s) will be published:
122+
SKILL.md
123+
124+
Validation passed.
125+
```
126+
127+
`validate` confirms that the directory contains a `SKILL.md`, that its frontmatter is valid, that the `name` field matches the directory name, and that the skill is within the size limit. It also lists the files that `push` will publish.
128+
129+
To also flag optional fields that Chainguard recommends, add the `--strict` flag:
130+
131+
```shell
132+
chainctl skills validate hello-world --strict
133+
```
134+
```output
135+
✓ SKILL.md found
136+
✓ Frontmatter valid
137+
✓ name: "hello-world" (matches directory basename)
138+
✓ description: 96 chars
139+
✓ Total size: 387 B / 10 MB
140+
✓ 1 file(s) will be published:
141+
SKILL.md
142+
⚠ license field is recommended
143+
144+
Validation passed.
145+
```
146+
147+
Here, `--strict` warns that the skill omits the recommended `license` field. Warnings don't cause validation to fail, but addressing them produces a more complete skill.
148+
108149
### Push the skill to your organization's registry
109150

110151
From the parent directory of `hello-world/`, push the skill to your org's registry and tag it:
@@ -181,13 +222,58 @@ Hello from Chainguard Agent Skills! Your skill installed and loaded successfully
181222

182223
This confirms the skill was published, installed, and loaded correctly end to end.
183224

225+
### Uninstall the skill
226+
227+
To remove a skill from your machine, pass its name to the `uninstall` subcommand. You only need the name, not the full registry reference:
228+
229+
```shell
230+
chainctl skills uninstall hello-world
231+
```
232+
233+
The command prompts for confirmation before removing any files:
234+
235+
```output
236+
This will remove skill "hello-world" from local agent directories.
237+
Proceed?
238+
Do you want to continue? [y,N]:
239+
Uninstalled skill "hello-world".
240+
```
241+
242+
By default, `uninstall` removes the skill from every agent directory where it's installed. Use the `--agent` flag to remove it from specific agents only, or the `--global` flag to remove it from global directories instead of the current project. Add the `-y` flag to skip the confirmation prompt.
243+
244+
`uninstall` operates only on the local files on your machine. It doesn't modify your organization's registry. To remove a published skill from the registry, use [`chainctl skills delete`](/chainguard/chainctl/chainctl-docs/chainctl_skills_delete/) instead.
245+
246+
### Delete a skill from the registry
247+
248+
To remove a published version of a skill from your organization's registry, pass its full reference to the `delete` subcommand. The reference must include an explicit tag:
249+
250+
```shell
251+
chainctl skills delete skills.cgr.dev/$ORG/hello-world:v1.0.0
252+
```
253+
254+
The command prompts for confirmation before removing the version:
255+
256+
```output
257+
Delete skills.cgr.dev/example.dev/hello-world:v1.0.0?
258+
Do you want to continue? [y,N]:
259+
```
260+
261+
Press <kbd>y</kbd> and <kbd>ENTER</kbd> to confirm. Add the `-y` flag to skip the prompt and delete the version non-interactively.
262+
263+
The command requires a tag so you don't delete the `latest` tag by accident. Deleting `latest` is still possible, but it prompts for an additional confirmation.
264+
265+
Unlike `uninstall`, `delete` removes the skill from the registry for your whole organization. It doesn't remove copies already installed on anyone's machine.
266+
184267
## Command reference
185268

186269
| Action | Command |
187270
| ----- | ----- |
188271
| Enable the entitlement | `chainctl skills entitlements create --parent $ORG` |
189272
| Accept the registry terms | `chainctl skills accept-terms --group $ORG` |
273+
| Validate a skill | `chainctl skills validate <name>` |
190274
| Push a skill | `chainctl skills push <name> --group $ORG --tag <version>` |
191275
| List skills | `chainctl skills list --group $ORG` |
192276
| Describe a skill | `chainctl skills describe skills.cgr.dev/$ORG/<name>:<version>` |
193277
| Install a skill | `chainctl skills install skills.cgr.dev/$ORG/<name>:<version>` |
278+
| Uninstall a skill | `chainctl skills uninstall <name>` |
279+
| Delete a published skill | `chainctl skills delete skills.cgr.dev/$ORG/<name>:<version>` |

0 commit comments

Comments
 (0)