# Skills Hub

## What this is

The Skills Hub is a Hookshot™ team-scoped library of reusable skill definitions you can assign to Proteges. A skill is a markdown document that gives a Protege specific instructions for how to behave during a run.

## When to use it

Use the Skills Hub when you want to:

* Create or manage reusable instruction sets for Proteges
* Assign a skill to a Protege so it follows consistent behavior rules
* Share a skill definition across Proteges in the same team

## What you need first

* A workspace with at least one team
* Permission to create or edit Proteges in your workspace

## Steps

### 1. Open the Skills Hub

From **Proteges**, choose **Skills Hub**.

The Skills Hub shows a catalog of all skills available to your current team. Skills are team-scoped: only skills belonging to your active team appear in the catalog.

### 2. Create a skill

Choose **New skill** to open the skill editor.

You can start from:

* **A template suggestion**: Pick from rotating sets of starter templates, then customize the instructions
* **Blank**: Write your own instructions from scratch

Fill in the skill:

* **Instructions** (required): The core behavior rules for the Protege. Write these as clear, step-by-step guidance.
* **Name** (optional): If you leave this blank, Hookshot™ auto-generates a lowercase kebab-case name from your instructions
* **Description** (optional): If you leave this blank, Hookshot auto-generates a short one-sentence description from your instructions

{% hint style="info" %}
When name or description are left blank, Hookshot uses AI to generate them from your instructions. You can always edit them afterward.
{% endhint %}

### 3. Understand the SKILL.md format

Every skill is stored as a `SKILL.md` file with YAML frontmatter and a markdown body:

```markdown
---
name: deploy-staging
description: Follow the staging deployment checklist before pushing
license: MIT
compatibility: opencode
allowed-tools: mcp:slack:*
metadata:
  version: '1.0'
  author: 'platform-team'
---

## Instructions

1. Check the current branch against the protected branch list
2. Verify all CI checks are passing
3. Post a summary to the deployment channel before proceeding
```

Frontmatter keys: `name`, `description`, `license`, `compatibility`, `allowed-tools`, and `metadata.*`.

### 4. Upload a skill package

If you have an existing `SKILL.md` file, you can upload it directly:

1. From the Protege editor skills section, choose **Upload a package**
2. Paste or upload the `SKILL.md` content
3. Review the parsed frontmatter and validation checklist
4. Confirm to add it to your team's Skills Hub

Uploaded skills are marked as **Imported** in the catalog.

### 5. Manage existing skills

From the Skills Hub catalog you can:

* **Preview** a skill to view its full SKILL.md content
* **Download** the SKILL.md file for local editing or sharing
* **Replace SKILL.md** with new content (paste or upload), with a two-step review flow
* **Delete** a skill from the catalog (requires confirmation)

### 6. Assign a skill to a Protege

A Protege can have at most one active skill at a time.

To assign:

1. Open the Protege editor
2. In the Skills section, choose a skill from the catalog or create a new one
3. The skill's instructions are loaded into the Protege during each run

To remove: Use the **Remove** action on the current skill card in the Protege editor.

### 7. Validate your skill

Before saving, check the validation checklist:

* Name is valid lowercase kebab-case (letters, numbers, hyphens only, no consecutive hyphens, max 64 characters)
* Description is present and under 1024 characters
* SKILL.md has valid YAML frontmatter with both `name` and `description` fields

{% hint style="warning" %}
Skill names must be unique within your team. The same name can exist in a different team within the same workspace, but not twice in the same team.
{% endhint %}

#### Skill sources

Each skill in the catalog shows a source badge:

| Source       | Meaning                                                     |
| ------------ | ----------------------------------------------------------- |
| **Custom**   | Built in-app via the instructions editor or SKILL.md editor |
| **Imported** | Uploaded from a local SKILL.md file                         |
| **GitHub**   | Imported from a public GitHub URL (coming soon)             |

#### Team scoping

Skills belong to the team that was active when you created them. Switching your active team changes which skills appear in the catalog. Two teams in the same workspace can each have a skill with the same name — they are independent.

When a Protege runs, it loads the skill assigned to it for the current workspace and team.

## How to verify

* The skill appears in the Skills Hub catalog for the correct team
* The assigned skill shows on the Protege editor
* The SKILL.md content matches your intended instructions
* Name and description are accurate and descriptive

## Common failures

* Writing instructions that are too vague for the Protege to follow consistently
* Creating a skill in the wrong team context
* Assigning a skill without reviewing the full SKILL.md content
* Leaving the name blank and not reviewing the auto-generated result
* Forgetting that only one skill can be active per Protege at a time

## Next step

* [Create a Protege](/create-a-protege.md)
* [Builder Patterns](/create-a-protege/builder-patterns.md)
* [Integrations Overview](/integrations.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook.tryprotege.com/create-a-protege/skills-hub.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
