个人项目收藏知识库。当用户想保存/收藏一个浏览或学习过的项目(GitHub 仓库、工具、框架等), 或想回顾/检索「我看过哪些项目」「有没有做 X 的项目」「按语言/分类找项目」时使用。 与用户一起学习完一个项目后,负责把它存成结构化 Markdown 笔记并更新多维索引。 触发词示例:保存这个项目、收藏这个 repo、记一下这个库、我之前看过哪些项目、 找一下我收藏的 Rust 项目、有没有做 agent 的项目。
Resources
7Install
npx skillscat add superd-dd/learn-memory Install via the SkillsCat registry.
SKILL.md
project-vault — 项目收藏知识库技能
帮用户把浏览/学习过的项目沉淀成可检索的知识库。数据是本仓库 projects/ 下的 Markdown 文件
(每个项目一个 .md,frontmatter 存元数据),index/ 是脚本自动生成的多维目录页。
本技能仓库本身就是一个 git 仓库,克隆到任意机器的 ~/.claude/skills/project-vault/ 即可复用,
笔记数据随仓库一起同步。所有脚本仅依赖 Python 标准库。
何时触发
- 用户说「保存/收藏这个项目」,或你们刚一起分析/学习完一个项目 → 执行保存工作流
- 用户问「我看过哪些项目 / 找某类项目 / 按语言或分类浏览」 → 执行检索工作流
保存工作流(学习完一个项目后执行)
目标:把项目存成
projects/<slug>.md,更新索引,并同步到远端。
- 先拉取最新(多机防冲突):
python scripts/sync.py pull - 确定 slug:用
owner-repo的 kebab-case 形式(如langchain-ai-langchain),
或项目短名(如langchain)。文件名即projects/<slug>.md。 - 复制模板:以
projects/_TEMPLATE.md为蓝本创建projects/<slug>.md。 - 填写内容(中英混合:正文中文,技术术语/标签用英文):
- frontmatter:
name / url / language / category / tags / stars? / status / rating / datelanguage:主要语言,英文单值(Python / Rust / TypeScript / Go / C++ / C# …)category:从下方受控词表取一个;都不合适才用Other并考虑提议扩充词表tags:英文小写自由标签,可多个,如[agent, RAG, orchestration]date:今天日期(YYYY-MM-DD)rating:你和用户对其价值的主观评分 1-5
- 正文:一句话简介(
>引用,会被索引抓取)/ 核心功能·亮点 / 技术栈 / 适用场景 /
关键启发·可借鉴点 / 相关项目(用[[slug]]互链已有项目)
- frontmatter:
- 重建索引:
python scripts/build_index.py - 同步到远端:
python scripts/sync.py push - 向用户报告:存到了哪个文件、归入哪个语言/分类/标签、索引与远端是否已更新。
第 1 步和第 6 步在
local后端下是「重建索引 / 无远端」的安全空操作,单机也能照常跑全流程。
检索工作流(回顾已收藏项目)
- 想总览:读
index/INDEX.md(按日期)。 - 按语言找:读
index/by-language.md。按功能找:index/by-category.md。按标签:index/by-tag.md。 - 若索引可能过期,先
python scripts/build_index.py重建再读。 - 找具体项目:直接读
projects/<slug>.md。也可用grep在projects/里按关键词搜正文/标签。
功能分类受控词表(category)
保持分类稳定、可比较。初始词表(可按需扩充,扩充时同步更新本表):
LLM-Framework, AI-Agent, Web-Framework, Frontend-UI, CLI-Tool, DevOps,
Database, Data-Pipeline, ML-Model, Infra, Security, Mobile, GameDev,
Learning-Resource, Other配置与同步后端
vault.config.json(每台机器各一份,已被 git 忽略)的 backend 决定同步方式:
local:纯本地,pull/push仅重建索引、不联网。默认,单机即用。git:多机共享。各机 clone 同一远程库,pull=git pull --rebase+ 重建索引,push= 提交并git push。需先git remote add origin <url>。http:云端备份/中转。对接server/vault_server.py,push/pull走 HTTP 上传/下载。
需在http.endpoint填云主机地址、http.token填令牌(详见server/README.md)。
没有 vault.config.json 时自动回退 local。配置模板见 vault.config.example.json。
设计约定(勿违背)
- 文件是唯一真相源;
index/与vault.config.json是派生/本机数据,已 git 忽略,不要提交。 - 分类信息只放在每个文件的 frontmatter,不靠文件夹层级——一个项目可同时属于多语言/分类/标签维度。
- 新增/修改后务必跑
build_index.py,让索引与数据一致。