Back to skills
SKILL.md
my-skills
BSecurity通用 AI 提示词与技能资产管理器。扫描本地任意目录下的 prompt/skill 文件, 生成交互式 HTML 技能地图,支持 Claude Code、ChatGPT、Cursor、Gemini 等任意平台。 当用户说 "/my-skills"、"列出我的 skill"、"我装了哪些技能"、"帮我整理 prompt 清单"、 "查看我的提示词库"、"show my skills"、"what prompts do I have"、"技能总览"、 "我有哪些 prompt"、"整理我的 AI 工具箱" 时触发。 **不要 undertrigger**——只要用户想盘点自己的 AI 提示词/skill 资产就必须调用本 skill。
- 2 stars
- 0 votes
- 0 copies
- 0 views
- Added September 28, 2026
Works with
Security analysis
85/100- Performs destructive filesystem operations
npx -y skills add yyy805/my-skills --agent claude-codeAre you the author of my-skills?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/yyy805-my-skills)---
name: my-skills
description: |
通用 AI 提示词与技能资产管理器。扫描本地任意目录下的 prompt/skill 文件,
生成交互式 HTML 技能地图,支持 Claude Code、ChatGPT、Cursor、Gemini 等任意平台。
当用户说 "/my-skills"、"列出我的 skill"、"我装了哪些技能"、"帮我整理 prompt 清单"、
"查看我的提示词库"、"show my skills"、"what prompts do I have"、"技能总览"、
"我有哪些 prompt"、"整理我的 AI 工具箱" 时触发。
**不要 undertrigger**——只要用户想盘点自己的 AI 提示词/skill 资产就必须调用本 skill。
user-invocable: true
---
# My Skills — 通用 AI 提示词资产全景图
扫描本地多个来源的 prompt/skill 文件,提取元数据,渲染为统一的交互式 HTML 技能地图。
适用于任何 AI 平台用户:Claude Code、ChatGPT、Cursor、Gemini、本地 prompt 库等。
## 核心设计原则
**平台无关性**:不假设用户只使用 Claude Code。任何 `.md`、`.txt`、`.yaml`、`.json` 文件
都可能是一个 prompt 资产,只要它包含有意义的文本内容。
**渐进增强**:优先从结构化 frontmatter 提取元数据;若无 frontmatter,则从文件名和正文推断;
若推断失败,仍保留文件并标注"未分类"。
## Step 1: 确定扫描目录
**优先检测用户传入的参数**,格式为:
- `/my-skills` — 使用默认目录列表
- `/my-skills --dirs "D:/prompts, C:/Users/me/cursor-rules"` — 仅扫描指定目录
- `/my-skills --add "D:/my-chatgpt-prompts"` — 在默认目录基础上额外添加
**默认扫描目录**(按平台分组,跳过不存在的路径):
| 平台 | 路径 |
|------|------|
| Claude Code 插件 | `~/.claude/plugins/cache/**/SKILL.md` |
| Claude Code 自定义 | `~/.claude/skills/**/*.md` |
| Cursor Rules | `~/.cursor/rules/**/*.md`,`.cursor/rules/` (当前项目) |
| 通用 prompt 库 | `~/prompts/**/*.{md,txt}`,`~/Documents/prompts/**/*.{md,txt}` |
| 当前项目 | `./.claude/**/*.md`,`./prompts/**/*.{md,txt}` |
若上述所有路径均不存在,提示用户通过 `--dirs` 指定自己的 prompt 目录,然后退出。
## Step 2: 扫描与去重
使用 Glob 工具递归搜索所有目标路径,收集文件列表后:
1. **按路径长度升序排列**(更短 = 更规范的位置)
2. **以 `name` 字段为主键去重**:若两个文件解析出相同 name,保留路径更短的一个
3. **跳过纯 reference/asset 文件**:路径中含 `/references/`、`/assets/`、`/agents/` 的非 SKILL.md 文件予以排除
## Step 3: 提取元数据
对每个文件,按优先级依次尝试:
### 3a. YAML frontmatter(SKILL.md、带 frontmatter 的 .md)
```yaml
---
name: my-tool # → 资产名称
description: "做X的工具" # → 描述
platform: claude # → 来源平台(可选)
tags: [写作, 效率] # → 自定义标签(可选)
---
```
### 3b. 文件头部注释(.txt、无 frontmatter 的 .md)
检测以下模式(任意一个命中即可):
```
# 提示词名称 → name
> 描述:做X的工具 → description
<!-- platform: chatgpt --> → platform
```
### 3c. 兜底推断
- `name`:取文件名去掉扩展名,kebab-case 转空格
- `description`:取正文去掉 Markdown 标记后的前 100 个字符
- `platform`:根据文件路径推断(含 `.claude` → Claude,含 `cursor` → Cursor,其余 → 通用)
- `trigger`:若 name 以字母开头则构造 `/{name}`,否则留空
## Step 4: 分类
根据 name、description、tags、platform 关键词归类:
| 类别 | 匹配关键词 |
|------|-----------|
| 📝 写作 | write, writing, eos, style, doc, pdf, ppt, docx, markdown, essay, blog, email |
| 🔬 研究 | research, fact, citation, bibliography, survey, analysis, report, academic |
| 💡 创意 | scamper, sixhats, design, creative, brainstorm, idea, innovation |
| 📚 学习 | learn, feynman, socratic, study, explain, teach, tutor |
| 🚀 项目 | repo, setup, code, dev, qa, test, product, deploy, benchmark, cursor, engineer |
| 🛠️ 工具 | skill, tool, utility, optimizer, converter, generator, builder, helper |
| 🧠 思维框架 | cynefin, ooda, swot, redteam, premortem, postmortem, retro, wardley, whys, matrix, eisenhower, rice, wrap, decision |
| 🤖 平台配置 | system prompt, custom instruction, gpt, gemini, claude, cursor rule, gem |
未匹配任何类别的归入「其他」。
## Step 4.5: 重叠度分析(在渲染前完成,结果嵌入 widget)
对已分类的 skill 列表做两轮比较,找出功能重叠的候选对:
**第一轮:同类聚合**
同一类别(如都是 🧠 思维框架)且描述中有共同核心动词/名词的,标记为"候选重叠对"。
**第二轮:跨类关键词匹配**
提取每个 skill 描述中的功能关键词(去掉介词/助词),若两个 skill 共享 ≥3 个关键词,即使类别不同也标记为候选。
**重叠等级划分:**
| 等级 | 判定标准 | 标记颜色 |
|------|---------|---------|
| 🔴 高度重叠 | 同类 + 共享 ≥4 关键词,或描述语义几乎一致 | 红色 |
| 🟡 部分重叠 | 同类 + 共享 2-3 关键词,或功能有明显交集 | 黄色 |
| 🟢 低度重叠 | 仅同类但功能侧重不同 | 绿色(不展示,忽略) |
对每个重叠对,生成一条记录:
```
{
skill_a: "名称A",
skill_b: "名称B",
level: "高度重叠" | "部分重叠",
reason: "两者都提供XX功能,区别在于YY",
suggestion: "建议保留A(因为ZZ),考虑删除B"
}
```
## Step 5: 渲染交互式 HTML
收集完所有数据后,直接在对话中输出完整 HTML(使用 show_widget 工具渲染,若不可用则输出 Markdown 降级版本)。
**Tab 切换栏(新增重叠检测 Tab):**
全部 | 📝写作 | 🔬研究 | 💡创意 | 📚学习 | 🚀项目 | 🛠️工具 | 🧠思维框架 | 🤖平台配置 | 其他 | **🔄 重叠检测**
**主技能地图 Tab(原有功能不变):**
1. **顶部统计栏**:总资产数 + 来源平台数量
2. **搜索框**:实时过滤(名称、描述、平台关键词)
3. **平台筛选徽章**:Claude / Cursor / ChatGPT / Gemini / 通用(多选)
4. **卡片网格**:每个资产一张卡片(名称、触发命令、一句话描述、平台来源、类别标签)
5. **卡片交互**:点击复制触发命令;被标记删除的卡片显示半透明红色遮罩
**🔄 重叠检测 Tab(新功能):**
布局:重叠对列表,每对一张"冲突卡片",内容:
```
┌─────────────────────────────────────────┐
│ 🔴 高度重叠 │
│ │
│ [skill A 名称] ⟷ [skill B 名称] │
│ /触发A /触发B │
│ │
│ 重叠原因:两者都用于XX场景,功能高度相似 │
│ 建议:保留 A(描述更精准),删除 B │
│ │
│ [ 标记删除 A ] [ 标记删除 B ] [ 忽略 ] │
└─────────────────────────────────────────┘
```
**"标记删除"交互逻辑:**
- 点击"标记删除 X"→ 该 skill 在全部 Tab 的卡片上出现红色 🗑️ 遮罩,同时底部出现"待删除清单"悬浮条
- "待删除清单"悬浮条:显示"已标记 N 个待删除:[名称列表]"+ "复制删除命令" 按钮
- 点击"复制删除命令"→ 复制对应的删除指令到剪贴板,格式:`rm -rf ~/.claude/skills/[name]`(或对应平台的删除命令)
- 点击"忽略"→ 该重叠对从列表移除,不影响其他对
- 若无重叠对被检测到,显示"✅ 未发现明显功能重叠,技能库结构清晰"
**底部悬浮删除清单(跨 Tab 可见):**
```
🗑️ 待删除:red-pen · deep-research-v1 [取消全部] [复制删除命令]
```
## Step 6: 辅助 Markdown 表格
HTML 渲染后,额外输出 Markdown 表格便于复制留存:
```
| 平台 | 类别 | 名称 | 触发/路径 | 描述 |
|------|------|------|----------|------|
| Claude | 🔬 研究 | deep-research | /deep-research | 生成格式化研究报告... |
| Cursor | 🚀 项目 | react-component | .cursor/rules/react.md | 生成 React 组件规范... |
```
## 注意事项
- 同名资产只保留一个(路径最短优先)
- 无法读取的文件静默跳过
- 若某平台目录为空,在统计栏注明"未检测到 [平台] 资产",不报错
- 全流程无需用户提供额外参数,`--dirs` 和 `--add` 为可选增强
- Claude Code 以外的平台文件只展示,不能直接"触发"——卡片显示文件路径而非 `/命令`
Files in this skill
- README.zh-CN.md
- SKILL.md
Attribution
Comments
Loading comments…