mcpField
L
librarian

librarian

github.com/mitsuhiko开发3.2k158 次安装4 周前更新
代码仓库

关于 librarian

librarian 用于维护远程 Git 仓库的可复用本地检出。它解析仓库地址并复用缓存,按间隔获取更新,在条件允许时快进同步。

主要功能

  1. 01解析常见 Git 仓库地址
  2. 02将检出存入固定路径
  3. 03使用 blob 过滤进行部分克隆
  4. 04每五分钟刷新过期仓库
  5. 05条件允许时快进更新干净检出

适用场景

  1. 01在本地搜索和分析远程仓库
  2. 02多个任务复用现有检出
  3. 03检查前强制立即刷新

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mitsuhiko/agent-stuff --skill librarian

安装后在 Claude Code 中输入/librarian确认已加载。

附带文件checkout.sh

详细介绍

当用户提供远程 Git 仓库地址(GitHub/GitLab/Bitbucket URL、git@... 或 owner/repo 简写)时,使用此技能。

目标是保留可重复使用的本地检出版本,并确保其:

  • 稳定(路径可预测)
  • 保持最新(定期获取更新,并在安全时快进)
  • 高效(使用 --filter=blob:none 进行部分克隆,避免重复完整克隆)

缓存位置

仓库存储在:

~/.cache/checkouts/<host>/<org>/<repo>

示例:

github.com/mitsuhiko/minijinja → ~/.cache/checkouts/github.com/mitsuhiko/minijinja

命令

bash checkout.sh <repo> --path-only

示例:

bash checkout.sh mitsuhiko/minijinja --path-only
bash checkout.sh github.com/mitsuhiko/minijinja --path-only
bash checkout.sh https://github.com/mitsuhiko/minijinja --path-only

脚本将:

  1. 将仓库引用解析为 host/org/repo。
  2. 如果仓库不存在,则克隆。
  3. 如果已有检出版本,则重复使用。
  4. 仓库过期时,从 origin 获取更新(默认间隔:300s)。
  5. 如果检出版本干净且配置了上游,则尝试快进合并。

更新策略

  • 默认行为是限制刷新频率(每 5 分钟一次),以避免不必要的网络请求。
  • 使用以下命令立即强制刷新:
bash checkout.sh <repo> --force-update --path-only

推荐工作流

  1. 通过 checkout.sh --path-only 获取仓库路径。
  2. 使用该路径进行搜索、读取和分析。
  3. 后续再次引用同一仓库时,再次调用 checkout.sh;它会找到并更新缓存的检出版本。

如需编辑

尽量不要直接编辑共享缓存。请创建单独的 worktree,或从缓存的检出版本复制一份,用于特定任务的修改。

注意事项

  • owner/repo 默认使用 github.com。

评论

支持 Markdown