How publishing works in askill v2.
Publishing is controlled by frontmatter slug.
- If
SKILL.mdcontains a validslug, it can be published. - Canonical install identifier is always
@author/slug.
---
name: my-skill
slug: my-skill
version: 1.0.0
description: What this skill does
---Rules for slug:
- lowercase letters, numbers, hyphens only
- regex:
^[a-z0-9]+(?:-[a-z0-9]+)*$ - stable identifier for all versions
Use when publishing from local files.
askill login
askill publish
# or
askill publish ./path/to/skillRequires:
askill logintoken- valid
name,slug,version
Use when publishing from GitHub SKILL.md URL.
askill publish --github https://github.com/owner/repo/blob/main/path/to/SKILL.mdBehavior:
- no login required
- author is derived from GitHub repo owner (user or org)
- resulting slug is
@owner/<frontmatter.slug>
askill submit https://github.com/owner/repoIndexer discovers skills; entries with valid slug can be auto-published by registry pipeline.
@author/slug is globally unique within that author namespace.
- same source may publish new versions
- different source cannot take same
@author/slug
Conflict response:
- error code:
SLUG_CONFLICT - fix by changing frontmatter
slugor using the original source binding
versionmust be valid semver- new publish must be greater than current latest for same
@author/slug - duplicate version returns
VERSION_EXISTS
askill add @author/slugaskill submit <github-url>: request indexing/discoveryaskill publish [path]: publish local content (login required)askill publish --github <blob-url>: publish from GitHub source (author=repo owner)
- error:
MISSING_SLUG - add frontmatter
slug
- error: invalid slug format
- use lowercase letters, numbers, hyphens only
- error:
VERSION_NOT_INCREMENTED - bump semver version
- error:
SLUG_CONFLICT - slug already bound to another source under same author
name: Publish Skill
on:
push:
branches: [main]
paths:
- "skills/**/SKILL.md"
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Publish from GitHub URL
run: |
npx askill-cli publish --github "https://github.com/${{ github.repository }}/blob/${{ github.ref_name }}/skills/my-skill/SKILL.md"