Awesome-SKILLs Registry 管理 Skill
管理 D:\Project\Awesome-SKILLs 的 repo 索引:添加、删除、同步和维护根 README 展示页。
触发条件
用户说“添加 repo / 新增 skill / 加入某个仓库”“删除 repo / 移除某个仓库”“更新所有 repo / 同步 registry”时,加载此 skill。
当前仓库策略
本仓库是 索引仓库,不是外部 skills/research repo 的源码镜像。
GitHub 上允许提交的内容
- 根
README.md registry.yamlrequirements.txtscripts/:本仓库维护脚本.claude/skills/registry-manage/:本仓库管理 Skill.claude/.env.example:示例配置,不含真实密钥CLAUDE.md、AGENTS.md等本仓库说明文件
GitHub 上不要提交的内容
- 外部完整上游 repo 目录,例如
academic-research-skills/、Auto-claude-code-research-in-sleep/、SkVM/、openresearch/、skills/等 - 外部摘要目录,例如
html-anything/、html-effectiveness/、openhuman/、ppt-master/、folo/ - 任何
.git子仓库、gitlink、submodule 记录 .claude/.env、.venv/、.omc/、.agents/等本地状态或密钥
外部 repo 可以在本地存在,用于读取、评估和同步元数据,但必须由 .gitignore 忽略,不能提交到外层 Git 仓库。
前置知识
三种索引类型
| 类型 | 特征 | sync.py 行为 | 是否提交 local_path 目录 |
|---|---|---|---|
| 本地 git clone | local_path/.git 存在,registry.yaml 无 skill_source |
git pull --ff-only + git log <last_commit>..HEAD 更新 updated_at、last_commit、changelog |
否,只提交 registry/README 更新 |
| skill_source | 有远程 SKILL.md URL,通常无 git clone | 下载远程 SKILL.md 并 SHA-256 对比;如本地目录被忽略,只用于本地缓存 | 否 |
| 外部索引条目 | 无本地 clone,或只想记录 repo | sync.py 跳过,保持 updated_at: '' / README 待初始化 |
否 |
registry.yaml entry schema
- name: <唯一标识符,通常与 local_path 一致>
display_name: <展示名称>
description: <一句话功能描述,中文,尽量简洁>
repo: https://github.com/<owner>/<repo>
local_path: <相对于仓库根目录的本地路径>
skill_source: <可选,远程 SKILL.md URL,仅 skill_source 类型填写>
categories:
- <分类标签>
updated_at: ''
last_commit: ''
changelog: []
说明:
updated_at、last_commit、changelog由sync.py --apply维护;新增条目初始留空。- 对没有本地 clone 的外部索引条目,不要手动伪造
last_commit。 skill_source类型可以不写last_commit。
有效分类标签
academic-research · autonomous-research · ml-training · scientific-writing · search · information-retrieval · rss · coding
README.md 当前表格格式
根 README 使用“快速选型 + 分类索引”的新结构,表格列为:
| Repo | 重点能力 | 形式 | 来源 | 最近同步 |
|---|---|---|---|---|
| **[<display_name>](<local_path>/)** | <重点能力> | <形式> | [<owner>/<repo>](https://github.com/<owner>/<repo>) | 待初始化 |
常用 section:
### 学术研究流水线### 论文阅读、推导与文献处理### 科学写作与投稿产出### 自主研究与实验系统### 搜索、信息获取与知识源### Agent 开发、运行时与行为规范### 演示、HTML 与可视化产物### 综合合集与外部索引
README 的 最近同步 只放日期或 待初始化,不要把 changelog 塞进表格单元格。详细更新记录只保存在 registry.yaml。
操作流程
添加本地 git clone 类型 repo
用于需要长期跟踪上游更新的 repo。
Step 1 — 本地 clone
cd D:\Project\Awesome-SKILLs
git clone <repo-url> <local_path>
不要使用 git submodule add。本仓库不提交外部 repo,也不维护 submodule。
Step 2 — 确认 .gitignore 忽略该目录
确认 .gitignore 包含:
<local_path>/
如果没有,先添加。这样外部 repo 只用于本地同步,不会出现在 GitHub 文件列表中。
Step 3 — 收集元数据
若用户未提供,读取上游 README 或 repo 描述提炼:
display_namedescriptioncategories- README 表格中的
重点能力 - README 表格中的
形式,例如Skill、Skill 套件、研究协作系统、前端生成参考、外部合集
Step 4 — 追加 registry.yaml entry
读取 registry.yaml 后,在 repos: 列表末尾追加:
- name: <name>
display_name: <display_name>
description: <description>
repo: <repo-url>
local_path: <local_path>
categories:
- <category>
updated_at: ''
last_commit: ''
changelog: []
Step 5 — 追加根 README 表格行
在最合适的分类 section 下追加:
| **[<display_name>](<local_path>/)** | <重点能力> | <形式> | [<owner>/<repo>](<repo-url>) | 待初始化 |
如果同一 repo 适合多个分类,优先只放一个主分类;确有必要时可以在“综合合集与外部索引”等 section 重复出现,但要避免 README 过度重复。
Step 6 — 初始化同步
.venv\Scripts\python.exe scripts\sync.py --apply --repo <name>
完成后只提交 registry.yaml、README.md、.gitignore 以及必要的本仓库维护文件,不提交 <local_path>/。
添加外部索引条目(不 clone、不创建目录)
用于只想在 Awesome-SKILLs 中记录某个 repo,但不需要本地跟踪完整代码。
不要创建 <local_path>/README.md。 旧流程中的“摘要目录”已经废弃。
Step 1 — 收集元数据
从用户提供信息或 GitHub README 提炼 display_name、description、categories、README 表格的 重点能力 和 形式。
Step 2 — 追加 registry.yaml entry
- name: <name>
display_name: <display_name>
description: <description>
repo: <repo-url>
local_path: <local_path>
categories:
- <category>
updated_at: ''
changelog: []
不写 last_commit,除非本地确实有对应 git clone 并准备交给 sync.py 维护。
Step 3 — 追加根 README 表格行
最近同步 填 待初始化:
| **[<display_name>](<local_path>/)** | <重点能力> | <形式> | [<owner>/<repo>](<repo-url>) | 待初始化 |
Step 4 — 不运行初始化同步
没有本地 clone 时,sync.py 会跳过该条目。不要为了初始化而创建空目录,否则可能被误判或污染索引。
添加 skill_source 类型 repo
用于只有远程 SKILL.md URL 的条目。
Step 1 — 验证 URL 可访问
curl -I <skill_source_url>
Step 2 — 追加 registry.yaml entry
- name: <name>
display_name: <display_name>
description: <description>
repo: <官方 GitHub URL,可选>
local_path: <local_path>
skill_source: <remote-url>
categories:
- <category>
updated_at: ''
changelog: []
Step 3 — 追加根 README 表格行
| **[<display_name>](<local_path>/)** | <重点能力> | <形式> | [<owner>/<repo>](<repo-url>) | 待初始化 |
Step 4 — 初始化或同步
.venv\Scripts\python.exe scripts\sync.py --apply --repo <name>
注意:如果 sync.py 下载了 <local_path>/SKILL.md,该目录仍应在 .gitignore 中,默认不提交到 GitHub。
更新所有 repo
.venv\Scripts\python.exe scripts\sync.py --apply
更新前后都要检查:
git status --short
git diff --stat
期望结果:
- 可同步的本地 git clone 更新
registry.yaml和 README 日期。 - 无本地 clone 的外部索引条目被
SKIP,保持待初始化。 - 不出现新的外部目录被暂存。
- README 表格仍然只显示日期,不显示长 changelog。
删除 repo
删除索引条目和本地目录是两件事。
Step 1 — 从 registry.yaml 删除对应 entry 块
Step 2 — 从根 README.md 删除对应表格行
Step 3 — 可选删除本地外部目录
删除本地 clone / 缓存目录前必须确认用户意图,因为这是破坏性操作。
Remove-Item -Recurse -Force D:\Project\Awesome-SKILLs\<local_path>
不要用 git rm 删除外部 repo 目录;正常情况下它们不应被 Git 跟踪。
执行原则
- 修改
registry.yaml前先读取当前内容,避免破坏 YAML 结构。 - 修改
README.md前确认目标分类 section 存在,并使用当前五列表格格式。 - 外部 repo 目录必须保持 local-only;提交前用
git status --short --ignored检查。 - 若看到
160000mode、带箭头目录或adding embedded git repository警告,说明外部 repo 被错误提交为 gitlink,必须用git rm --cached <path>移除并加入.gitignore。 updated_at、last_commit、changelog交由sync.py --apply维护,不手动伪造。- 完成前验证
registry.yaml可解析、README 行仍存在、GitHub 将只包含本仓库功能文件和根索引文件。