Skillset has a small, precise vocabulary that everything else builds on. This page defines every core concept — what it means, what it does, and what to avoid calling it. Read this once and the rest of the docs will be unambiguous.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/org-quicko/skillset/llms.txt
Use this file to discover all available pages before exploring further.
The Three Resource Kinds
A Resource is anything the Registry holds and a coding agent can obtain. Every Resource has a Kind — which of the three things it is — and that Kind fixes its payload shape, validation rules, whether it carries an Artifact, and whatskillset install does.
skill
A directory bundle: a root
SKILL.md with YAML frontmatter alongside any supporting files. Has an Artifact. Installed to .agents/skills/<name>/.mcp-server
Pure metadata — a
server.json-shaped pointer to a package or remote URL. No Artifact. Installed by merging config into .mcp.json. Never Imported.plugin
A
.claude-plugin/plugin.json bundle grouping skills, commands, agents, and hooks. Has an Artifact. The Registry never inspects its contents.Resources and Kinds
Resources and Kinds
A Resource is the unit the Registry holds. Every Resource carries:
- A Kind (
skill,mcp-server, orplugin) - A Namespace (publishing identity)
- A
nameunique within(kind, namespace) - A
description - A publisher (the User who created it)
- Optional markdown documentation (
body) - Any number of Tags
Namespace
Namespace
A Namespace is the other half of a Resource’s publishing identity. Uniqueness is
(kind, namespace, name) — two Skills may both be named frontend-design as long as different parties named them.Every Resource carries a Namespace, always:- Imported Resources take the
owner/repoform of the repository they were copied from — e.g.anthropics/skills. - Resources published straight to this Registry take the Registry’s own host written forward — e.g.
skills.quicko.com.
Namespace is a Registry concept only. Installs stay flat at
.agents/skills/<name>, so one project holds at most one Skill of a given name however many Namespaces publish it. Two same-named Skills are co-publishable, never co-installable.Artifacts
Artifacts
An Artifact is the files of a Resource of a Kind that has one — Skill and Plugin. Each file is uploaded directly to object storage under a prefix keyed by the Resource’s
id. The Registry assembles a zip on demand for skillset install, the web Download control, and Marketplace sources — it stores no zip at rest.An MCP Server has no Artifact at all. It is a pointer, not a bundle.A Manifest travels with an Artifact as the list of its paths and sizes (no content):- When publishing, the client declares a Manifest so the Registry can validate every path and enforce file-count and size limits without reading any bytes.
- When reading, the Registry returns the actual Manifest listed back from storage.
Lockfile
Lockfile
The Lockfile is
A Skill that is both edited and stale reports The Lockfile is advisory: a missing or corrupt one reads as empty rather than failing an install. Nothing signs it.
skillset-lock.json at a project root (or a User’s home directory for --scope user). It records every Skill installed there:- The Resource
id - The Registry’s
updated_atat the moment it was installed - A digest of the files that were written
- When the install happened
The four Status values
| Status | Meaning |
|---|---|
current | Unchanged on both signals — Registry and disk agree |
outdated | The Registry’s updated_at has moved since install |
modified | The files on disk no longer digest to what was written |
missing | The Lockfile records a Skill whose directory is gone |
modified, because that is the state needing a decision before update can replace it.Roles
Roles
Skillset has four roles, each a strict superset of the one below it.
Reading the catalog needs no account — unauthenticated requests can browse, search, preview, and download. A Reader account is created automatically on first SSO login.There is exactly one Superadmin: the first User to sign up. The role is permanent — never transferred, reassigned, or removed.
| Role | Can do |
|---|---|
| Reader | Browse catalog, search, preview, download, install Resources |
| Writer | Everything a Reader can, plus publish, import, update, and delete own Resources; mint Tokens; grant Connections |
| Admin | Everything a Writer can, plus manage all Users, delete any Resource, approve or reject Submissions |
| Superadmin | Everything an Admin can, plus create and manage Admins |
Source and Import
Source and Import
Source
Every Resource records a Source — where it came from. It is provenance, not a live link: nothing is ever re-read from it.- An Imported Resource’s Source is the repository URL it was copied from (without the ref or the folder, so a monorepo’s Skills share one Source).
- Anything published straight to the Registry has this Registry itself as its Source, written as its domain in reverse-DNS notation — e.g.
com.quicko.skills.
Import
An Import is a one-time copy of a Skill’s or Plugin’s files out of a Git Provider and into the Registry. It is not a sync — nothing is ever re-read, and nothing updates automatically.- The web UI imports through the writer’s Connection (their personal grant of repo access to the Registry).
- The CLI imports by cloning with the writer’s own git credentials — so any repository the writer can clone works, including private ones.
server.json the writer pastes in.Submission
Submission
A Submission is a Resource someone installed straight from a repository URL with Key properties of Submissions:
skillset install <url> and put forward for the Registry, waiting for an Admin to approve it.- Any signed-in role may submit — submitting publishes nothing to the catalog.
- A Submission is not a Resource: nothing in the catalog reads, searches, or installs one.
- The CLI records the Skill in
skillset-lock.jsonwith its source repository and no Registry revision.skillset updatereports it aspendinguntil approved. - On approval, the Submission lands in the catalog credited to whoever submitted it, and
updateswitches to the Registry’s copy.
Tags
Tags
Integration and Connection
Integration and Connection
These two terms are often confused — they are distinct.
Integration
An Integration is the Registry’s registration with one Git Provider (GitHub or GitLab). It holds the credential pair that Connections are granted against. There is at most one Integration per Git Provider. Importing is available for exactly those Git Providers that have an Integration — there is no separate enable switch.An Integration grants nobody an account. It is configured once by a Superadmin under Settings → Integrations.Connection
A Connection is a writer’s own personal grant of repository access to the Registry. It is what an Import reads a private repository as. It need not be the same account the writer signs in with.Revoking a Connection stops the Registry using it for future Imports — it does not withdraw the grant at the Git Provider.A GitHub Identity Provider (for signing in) and a GitHub Integration (for Importing) are two completely separate registrations. Neither knows about the other.
Identity Provider
Identity Provider
An Identity Provider is a configured way for a User to prove who they are without a password. Skillset supports three kinds:
- Google Workspace — matched against Permitted Organisations (Workspace domains)
- Microsoft Entra — matched against Permitted Organisations (tenant IDs)
- GitHub OAuth — matched against Permitted Organisations (org logins)
Token
Token
A Token is a secret a User mints to let the CLI act as them. It carries whatever role its owner holds. Tokens are:
- Shown exactly once at creation — stored only as a hash afterward
- Scoped to one Registry
- Used in place of
skillset loginfor CI and automation
Agent and Scope
Agent and Scope
Agent
An Agent is a coding agent that reads Skills from a conventional directory on a developer’s machine.skillset install writes to the canonical .agents/skills/<name>/ directory and symlinks the chosen Agent’s own skills directory to it. The list of supported Agents is hand-curated and each entry is verified against that Agent’s own documentation.The Agent table covers Skills only — an MCP Server is installed by merging a project’s .mcp.json and names no Agent.Scope
Scope is where a Resource is installed on a machine — either the current project, or the Agent’s user-level directory. Pass--scope user to install into the user-level directory instead of the project root.An MCP Server has project Scope only.Quick Reference
| Term | One-line definition |
|---|---|
| Resource | Anything the Registry holds — Skill, MCP Server, or Plugin |
| Kind | Which of the three a Resource is (skill, mcp-server, plugin) |
| Artifact | The files of a Skill or Plugin (MCP Servers have none) |
| Namespace | Publishing identity: owner/repo for Imports, Registry host for direct publishes |
| Tag | Short label for browsing/filtering; shared across all Kinds |
| Lockfile | skillset-lock.json tracking installed Skill state |
| Status | How an installed Skill stands: current, outdated, modified, or missing |
| Source | Where a Resource came from — repository URL for Imports, reverse-DNS Registry domain for direct publishes |
| Import | One-time copy from a Git Provider into the Registry |
| Submission | URL-installed Skill pending Admin approval |
| Integration | Registry’s registration with a Git Provider |
| Connection | A writer’s personal grant of repo access to the Registry |
| Token | Secret a User mints for CLI access |
| Agent | A coding agent that reads Skills from a conventional directory on a developer’s machine |
| Scope | Where a Skill is installed — current project or the Agent’s user-level directory |
| Identity Provider | A configured way for a User to sign in without a password (Google Workspace, Microsoft Entra, or GitHub) |
| Superadmin | The first User; one per Registry, permanent |