Leechael/claude-code-mod-agent-skills
agents-skills
.agents/skills(프로젝트)와 ~/.agents/skills(사용자)의 Agent Skills를 찾아 슬래시 명령으로 노출하고 prompt.context에 나열하며, 선택적으로 Skill 도구를 가로채 해당 트리의 이름이 .claude/skills 아래에 없어도 불러오게 합니다.
이 mod 소개
공유 Agent Skills 트리(.agents/skills)를 Claude Code에 연결하는 Claude Code mod입니다. 네이티브 엔진 지원이나 .claude/skills로의 심볼릭 링크가 필요하지 않습니다.
네 가지 hook 경로를 제공합니다. .agents/skills 트리를 찾는 session.start, $.command.register를 통한 슬래시 명령 등록, prompt.context 카탈로그 주입, 선택적 Skill 도구 가로채기입니다. projectSkills, userSkills, registerCommands, injectCatalog, interceptSkillTool 및 preferClaudeSkills 같은 userConfig 옵션으로 구성할 수 있습니다.
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add Leechael/claude-code-mod-agent-skills claude plugin install agents-skills
원문 / README
agents-skills
Claude Code mod that bridges the shared Agent Skills tree (.agents/skills) into Claude Code without native engine support and without symlinking into .claude/skills.
Draft for Claude Code Mods / Function Hooks. Not an Anthropic product.
Why
- Codex and Pi load skills from
.agents/skills(and~/.agents/skills). - Claude Code natively loads
.claude/skills(and plugins). - PR #95409 adds
AGENTS.mdas project instructions — not.agents/skills. - Community interoperability today is mostly symlink / install into
.claude/skills(e.g.vercel-labs/add-skill). GitHub search found no existing mod that discovers.agents/skillsvia Mods.
This mod is the Mods-native blank: discover → slash commands → optional Skill-tool intercept → optional prompt catalog.
What it does
| Path | Hook / API | Effect |
|------|------------|--------|
| Discover | session.start + $.fs | Scan project ancestors for .agents/skills/*/SKILL.md and ~/.agents/skills/*/SKILL.md |
| Slash commands | $.command.register + command.run | /name expands that skill’s body (with $ARGUMENTS / $0) |
| Catalog | prompt.context | Inject a short “Available skills (.agents/skills)” list |
| Skill tool | tool.call on Skill | If the engine misses the name, load our SKILL.md instead |
Project skills win over user skills on the same commandName. With preferClaudeSkills (default), a name already owned by .claude/skills is left alone.
Layout expected
<project>/
.agents/
skills/
my-skill/
SKILL.md # YAML frontmatter: name, description
~/.agents/
skills/
shared-skill/
SKILL.md
Frontmatter (minimal):
---
name: my-skill
description: One line on when to use this skill.
---
Body the model should follow…
Install (draft)
Until this lives in a marketplace:
# from a checkout of this repo
claude plugins install ./ # or link as a local plugin per current Claude Code docs
Enable the mod / function hooks path for the plugin (same seating as agents-md / other mods). Exact CLI flag may change with Claude Code builds — check claude --help and the Mods docs for your version.
Options (userConfig)
| Option | Default | Meaning |
|--------|---------|---------|
| projectSkills | true | Scan ancestor .agents/skills |
| userSkills | true | Scan ~/.agents/skills |
| registerCommands | true | Register /name commands |
| injectCatalog | true | Add catalog block on prompt.context |
| interceptSkillTool | true | Bridge Skill tool for our names |
| preferClaudeSkills | true | On clash, keep native .claude/skills |
Limits (read before shipping)
- Not native discovery. Claude Code still does not walk
.agentsitself. Skills only appear through this mod’s hooks. - API surface is draft-shaped. Field names on
command.run(prompt/handled),prompt.context(additionalContext), and Skilltool.callresults must be checked against the installedmods/types/claude-code.d.tsbefore release. Adjust merge keys if the host rejects them. - No progress / permission UI parity with first-party Skill loading unless the host exposes those nouns — this draft returns body text only.
- Name clashes. Prefer Claude’s skills when
preferClaudeSkillsis on; otherwise last register wins or the host errors. - Does not replace symlinks for tools that only scan
.claude/skillsoutside the Mods path (other CLIs, CI, editors).
Out of scope (v0)
- Writing skills into
.claude/skills - Marketplace packaging / auto-update
- Full YAML frontmatter (only
name+description) - Watching the filesystem for hot reload (re-discover on next
session.start)
Smoke
./tests/smoke.sh
Parses a fixture SKILL.md and prints the discovered commandName + description (no Claude Code runtime required).
Related
- Anthropic
mods/agents-md— AGENTS.md as instruction files (prompt.context) - Issue #91870 — Function Hooks / Mods discussion
- Community symlink approach —
vercel-labs/add-skill,PaulRBerg/dot-agents, etc.