Skill Repository Structure
A skill repository must follow this structure:Rules
- Each top-level directory containing a
SKILL.mdfile becomes a skill - Only one level of skill directories — no nesting skills inside skills
README.mdat the repo root is for GitHub — the agent does not load it- Skill directory names must be unique across all registered repos in an organization. If two repos define the same skill name, syncing will fail.
Writing a SKILL.md
Every skill needs aSKILL.md file with YAML frontmatter and markdown instructions:
Required Fields
| Field | Description |
|---|---|
name | Lowercase letters, numbers, and hyphens only (max 64 characters). Used as the skill identifier. |
description | What the skill does and when to use it. The agent reads this to decide when to load the skill automatically. |
Optional Fields
| Field | Description |
|---|---|
allowed-tools | Restrict which tools the agent can use (e.g., Read, Grep, Glob). |
disable-model-invocation | Set to true to prevent auto-loading. The skill can only be triggered explicitly. |
argument-hint | Hint shown for expected arguments (e.g., [dataset-name]). |
Supporting Files
KeepSKILL.md focused and under 500 lines. Move detailed reference material to separate files and link them from SKILL.md:
SKILL.md.
Merging Multiple Repositories
When multiple repositories are registered with the same target path (the default.claude/skills/), their skill directories are merged side by side:
spatial-analysis/ skill, syncing will fail and the conflict will be reported in Organization Settings → Agent Skills.
Registering a Repository
Create a GitHub Personal Access Token
Generate a GitHub PAT with repo scope so the agent runtime can clone private repositories.
Connect your PAT
Go to Organization Settings → Agent Skills → GitHub Authentication and enter your GitHub username and token.
Add a repository
Click Add Repository and provide:
- Display Name: A human-readable label (e.g., “Our Lab Skills”)
- Repository URL: The HTTPS clone URL (e.g.,
https://github.com/my-org/agent-skills.git) - Branch: The branch to track (defaults to
main) - Target Path: Where to mount in the runtime (defaults to
.claude/skills)
How Skills Are Loaded
When an agent runtime starts in a workspace belonging to your organization:- All registered repositories are cloned using the org’s GitHub PAT
- Skill directory names are checked for uniqueness — conflicts block the sync
- The agent discovers
SKILL.mdfiles and reads theirdescriptionfields - During a session, the agent automatically loads a skill when your request matches its description