Back to skills
SKILL.md
Skill Link Check
ASecurityUse when a skill or slash command is missing, duplicated, not loading, or inconsistent between `.agents/skills` and `.claude/skills`; includes “skill 没生效”“检查 skill 链接” and broken skill links. Audits project and global skill layouts without changing them.
- 205 stars
- 0 votes
- 0 copies
- 2 views
- Added September 2, 2026
Security analysis
100/100Pro scans all 3 files and shows the line behind each finding
npx -y skills add yan-labs/yan-skills --skill skill-link-check --agent claude-codeAre you the author of Skill Link Check?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/yan-labs-skill-link-check)---
name: skill-link-check
description: Use when a skill or slash command is missing, duplicated, not loading, or inconsistent between `.agents/skills` and `.claude/skills`; includes “skill 没生效”“检查 skill 链接” and broken skill links. Audits project and global skill layouts without changing them.
---
# Skill Link Check
## 安装与更新
来源:[Skills.sh](https://skills.sh/yan-labs/yan-skills)
```bash
# 首次全局安装,或更新失败时重新安装
npx skills add yan-labs/yan-skills --skill skill-link-check -g -y
# 更新已安装的全局 Skill
npx skills update skill-link-check -g -y
```
若使用项目级安装,去掉安装命令中的 `-g`;项目级更新使用 `npx skills update skill-link-check -p -y`。
本 Skill 只审计目录布局,不自动移动、删除或覆盖文件:
- `.agents/skills/<name>/` 保存真实源文件。
- `.claude/skills` 要么整体链接到 `.agents/skills`,要么通过逐个子项链接镜像它。
最常见的漂移是 Skill 被直接创建成 `.claude/skills/<name>/` 真实目录,却没有进入 `.agents/skills/`。它看似已安装,实际不会随正常备份、同步或迁移流程保存。
## 完成条件与退出码
在 `/goal` 或持续执行任务里,以审计证据完整为完成条件:从目标项目运行脚本,报告每个适用作用域的布局、问题分类和退出状态。有问题时列数量、路径和建议命令;无问题时报告 clean。脚本不修改被审计目录。
- `0`:审计完成且无问题。
- `1`:审计完成且发现问题;这仍是有效结果。
- Python traceback、参数错误或目标不可读:执行失败,查明后重跑。
## 运行方式
```bash
python3 "$(dirname "$0")/check.py"
```
默认审计:
- **Project**:当前目录下的 `.agents/skills` 与 `.claude/skills`。
- **Global**:`$HOME` 下的同名目录。
自动化或 checker 可使用:
```bash
# 明确指定项目,避免依赖当前工作目录
python3 "$(dirname "$0")/check.py" --project-root /path/to/project
# 只查一个作用域
python3 "$(dirname "$0")/check.py" --project-only
python3 "$(dirname "$0")/check.py" --global-only
# 输出稳定 JSON 证据;发现问题时仍返回 1
python3 "$(dirname "$0")/check.py" --json
```
## 两种合法布局
两种模式都应通过:
1. **Parent symlink**:`.claude/skills` 本身指向 `.agents/skills`。新增 Skill 自动保持一致。
2. **Per-child symlinks**:`.claude/skills` 是真实目录,每个 `.claude/skills/<name>` 指向 `../../.agents/skills/<name>`。
脚本会自动识别模式,不要求为了统一风格而改造一个本来健康的布局。
## 问题分类
- `orphan-in-claude`:`.claude/skills/` 中有真实条目,但 `.agents/skills/` 没有对应源文件。报告时优先列出。
- `missing-link`:源 Skill 存在,但运行时镜像缺失。
- `not-symlink`:逐子项模式下,镜像位置是重复的真实文件或目录。
- `broken-symlink`:链接目标不存在,包括损坏的父级链接。
- `wrong-target`:链接存在,但指向错误 Skill 或 `.agents/skills` 之外。
## 报告规则
1. 先给总问题数和分类计数;有 `orphan-in-claude` 时先报告它。
2. 每项给出名称、证据路径和一行解释。
3. 原样附上脚本生成的建议修复命令,便于用户复核后执行。
4. 不自动修复。孤儿目录可能是用户尚未迁移的工作,重复目录也可能已经分叉;自动移动或删除会造成数据损失。
5. 如果全部健康,一句话说明适用作用域及布局模式即可结束。
## 验证 Skill 自身
```bash
python3 -m unittest discover -s "$(dirname "$0")/tests" -v
```
Files in this skill
- SKILL.md
- check.py
- tests/test_check.py
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.