Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Skills Sync

ASecurity

Manage the ai-grind skills library: harvest upstream skills/commands/agents into the catalog, author new skills, and sync the flat mirrors (committed plugin bundle, loadable/, .agents/, project/global .claude dirs) via the skills_sync MCP tool or the scripts directly. Use when adding or editing a skill, when a skill isn't showing up in a session, when asked to "sync the skills", after editing sources.toml, to check what the library contains, or to find skills scattered across the machine that...

9 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythongogit

Works with

claude codeclimcp

Security Analysis

A100/100

Scanned 9/27/2026

$npx -y skills add Ugbot/ai-grind --skill skills-sync --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skills Sync?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Skills Sync
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ugbot-skills-sync/badge)](https://www.skillsdirectory.com/skills/ugbot-skills-sync)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: skills-sync
description: >
  Manage the ai-grind skills library: harvest upstream skills/commands/agents
  into the catalog, author new skills, and sync the flat mirrors (committed
  plugin bundle, loadable/, .agents/, project/global .claude dirs) via the
  skills_sync MCP tool or the scripts directly. Use when adding or editing a
  skill, when a skill isn't showing up in a session, when asked to "sync the
  skills", after editing sources.toml, to check what the library contains, or
  to find skills scattered across the machine that the library hasn't adopted
  yet (discover/adopt). For CRDT live skills see live-skills instead.
---

# Skills library sync (devtools-mcp `skills_sync`)

## Skill folder anatomy (the ground rules)

- Folder-form skill: `<name>/SKILL.md` with YAML frontmatter declaring
  `name:` (**must equal the folder name**) and a trigger-rich `description:`.
  Anything else in the folder (references/, scripts, data) is a bundled asset
  and travels with the skill.
- Single-file skill: `<name>.md` with the same frontmatter; harvest wraps
  it into `<name>/SKILL.md`.
- Command: `.claude/commands/<name>.md`, flat file, name = filename stem.
- Agent: `.claude/agents/<name>.md`, flat file with frontmatter.
- Clients load flat `skills/<name>/SKILL.md` only. They never recurse into
  category subtrees, which is why every mirror is flattened and skill names
  must be globally unique.

The library has two sources and several derived mirrors:

- `skills/authored/` holds hand-written skills, committed. The source of truth
  for original skills. Folder name must equal frontmatter `name:`.
- `skills/catalog/` holds harvested copies of upstream assets listed in
  `skills/sources.toml`, regenerated by `harvest.py` (never edit by hand).
- Mirrors (flat, what clients actually load): `plugin/` (committed, the
  Claude Code plugin bundle), `skills/loadable/` and `.agents/` (gitignored,
  derived), plus per-item overwrite into `<repo>/.claude/` and `~/.claude/`.

## Via MCP (preferred)

```
skills_sync(action="status")                    # counts + mirror freshness
skills_sync(action="discover")                  # scan the machine for unharvested assets
skills_sync(action="adopt", src="C:/code/x/.claude/skills/y", category="profiling")
skills_sync(action="harvest")                   # refresh catalog/ from sources.toml
skills_sync(action="sync", target="all")        # local + plugin + agents
skills_sync(action="sync", target="global")     # ~/.claude (explicit only)
```

`discover` scans every project `.claude/{skills,commands,agents}` dir. Scan
roots are derived from where sources.toml already harvests (plus `~/.claude`
and `$DEVTOOLS_MCP_SKILL_SCAN_ROOTS`), and reports only assets whose name
isn't in the library, flagging malformed ones (missing SKILL.md, missing
frontmatter, folder/name mismatch). `adopt` validates one candidate, appends
its `[[item]]` to sources.toml (still the single source of truth, and nothing is
harvested that isn't listed there), and re-runs harvest.

`target="all"` covers only the wholly-owned derived mirrors; `project`/`global`
write into shared `.claude` dirs so they must be named explicitly. If the server
is an installed package (not the checkout), set `DEVTOOLS_MCP_SKILLS_ROOT` to
the `skills/` directory.

## Via scripts (same behavior)

```
uv run python skills/harvest.py
uv run python skills/sync.py --target plugin
```

## Adding a new authored skill

1. Write `skills/authored/skills/<category>/<name>/SKILL.md` (frontmatter
   `name:` == folder name, plus a trigger-rich `description:`).
2. `skills_sync(action="sync", target="all")`.
3. Commit `skills/authored/...` **and** the regenerated `plugin/` output;
   update the counts in `skills/README.md` and `PROJECT_MAP.md`.
4. New skills load in the next session, or after a plugin reload. The
   current session's skill list is fixed at startup.

## Adding a harvested (upstream) asset

Add an `[[item]]` to `skills/sources.toml` (src path, type, category), then
`skills_sync(action="harvest")` followed by the sync. Harvest copies; it never
moves or edits upstream files, and re-running is idempotent.

## Gotchas

- **Skill missing from a session** → it was probably authored after session
  start; check `skills_sync(action="status")`, then reload the plugin.
- **"duplicate skill name"** assert → an authored skill shadows a harvested
  name (or two authored folders collide); names are globally unique.
- **"too many missing sources"** → catalog/ is stale for this checkout; run
  harvest. A handful of upstream-only absences is tolerated and listed.
- `plugin/` is committed derived output, so always `git diff plugin/` after a
  sync and commit it with the authored change, or clients drift from source.

See [[live-skills]] for the CRDT live-skill system (a separate store, where live
skills materialize into `~/.claude/skills/` directly and are not part of these
mirrors) and [[devtools-mcp-usage]] for the wider server workflow.

Attribution

UgbotUgbot
View sourceSee grades on GitHubMore from Ugbot →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →