关于 claimcheck
claimcheck 扫描 GitHub 仓库中的过期认领和分支上未提交为 PR 的修复,帮助开源维护者与贡献者发现停滞工作。它提供命令行和 MCP 工具,并区分有 PR 跟进的进行中认领。
主要功能
- 01识别议题中的认领及其时效
- 02检查分支是否领先上游且没有 PR
- 03查询单个议题的认领状态
- 04按年龄和状态排列结果
- 05支持 JSON 输出与缓存
适用场景
- 01查找可能已放弃的议题认领
- 02发现 fork 上未提交的修复
- 03编码前确认议题是否有人认领
MCP 相关
MCP 服务提供 `stale_claims`、`parked_branches` 和 `issue_claim_status` 工具,用于检查认领、停放分支及议题状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| repo | string | 是 | owner/repo,例如 modelcontextprotocol/python-sdk |
| stale_days | number | 否 | 过期判定天数(默认值:45) |
详细介绍
claimcheck
开源项目有两种悄无声息的失速方式,及早追踪,避免让它们耗掉你数周时间:
- 过期认领。 有人在 issue 下留言“我来处理”,然后就消失了。issue 仍显示“未分配”,于是下一位志愿者写出的代码可能会撞上一个幽灵。
- 搁置的修复。 已完成的工作留在 fork 分支上,始终没有变成 PR。提交是真实的,差异是真实的,但完全无人知晓。
claimcheck 会扫描这两种情况。它是 greenlight 的后续工具:greenlight 会问“这个 issue 适合合并吗?”,claimcheck 会问“所有说愿意处理的人都真的出现了吗,他们的工作最终发布了吗?”
安装
npm install -g @reneturcios/claimcheck
# or
npx @reneturcios/claimcheck claims owner/repo
需要 Node 20+。设置 GITHUB_TOKEN(或 GH_TOKEN),即可获得每小时 5000 次的认证请求速率限制;不设置则每小时只有 60 次。响应会缓存在 ~/.cache/claimcheck 中。
CLI
查找仓库中过期的认领
claimcheck claims modelcontextprotocol/python-sdk
扫描未分配的开放 issue,检测认领评论(明确认领、工作意向、分配请求;排除机器人、维护者和 issue 作者),检查是否曾出现相关 PR,并按最早的认领优先对结果排序:
Stale claims in modelcontextprotocol/python-sdk: 2 stale of 5 claimed issues (threshold 45d)
[STALE] modelcontextprotocol/python-sdk#3287
Fix: handle empty result sets
https://github.com/modelcontextprotocol/python-sdk/issues/3287
claimant: helpfuldev, 63d ago (want-to-work)
[IN FLIGHT] modelcontextprotocol/python-sdk#3290
...
claimant: shipitdev, 5d ago (explicit-claim)
标志:--days 45 可更改过期阈值,--json 会输出机器可读结果。
认领时长分类
| 分类 | 时长 | 含义 |
|---|---|---|
| FRESH | <14 天 | 认领者可能仍在积极处理 |
| WATCH | 14 到 44 天 | 重复工作前先确认 |
| STALE | 45 到 89 天 | 可提出异议,很可能已被放弃 |
| DEAD | 90+ 天 | 几乎可以确定已被放弃 |
| WORK_IN_FLIGHT | 任意 | 存在相关 PR,工作确实在进行 |
查找 fork 上搁置的修复
claimcheck parked CloudCorpRecords/pdfcn
列出 fork 上的分支(不包括默认分支),将各分支与上游默认分支进行比较,并检查是否存在来自该 fork 的开放 PR。分支领先 1 个或更多提交且没有开放 PR 时,会标记为 PARKED:
Parked branches on CloudCorpRecords/pdfcn (upstream shadcn-labs/pdfcn): 1 parked of 4 branches
[PARKED_STALE] fix-typos
ahead by 5 commit(s), last commit 20d ago
no open PR on upstream
搁置时长分类(根据分支尖端提交日期计算)
| 判定 | 时长 | 含义 |
|---|---|---|
| PARKED_RECENT | <7 天 | 可能仍在收尾 |
| PARKED_STALE | 7 到 30 天 | 很可能已被遗忘,容易重新推进 |
| PARKED_DEAD | 30+ 天 | 可能需要基于上游分支变基 |
存在开放 PR 的分支会显示为 IN_PR,与上游进度相同的分支会显示为 EVEN。两者都不属于搁置状态。
查看单个 issue 的认领状态
claimcheck issue https://github.com/modelcontextprotocol/python-sdk/issues/3287
列出评论中发现的每位认领者、其时长分类,以及是否存在相关 PR。
使用 Docker 运行
claimcheck 也以容器镜像的形式发布在 GHCR:ghcr.io/cloudcorprecords/claimcheck。
将其用作 stdio MCP 服务:
docker run -i ghcr.io/cloudcorprecords/claimcheck
可以在镜像名称后传入任何 CLI 命令,替代默认的 mcp 参数:
docker run ghcr.io/cloudcorprecords/claimcheck <command> [args]
MCP 服务
将同一套引擎作为工具提供,供应先检查再评论或编写代码的 Agent 使用:
{
"mcpServers": {
"claimcheck": {
"command": "npx",
"args": ["-y", "claimcheck", "mcp"],
"env": { "GITHUB_TOKEN": "ghp_your_token_here" }
}
}
}
| 工具 | 输入 | 返回内容 |
|---|---|---|
stale_claims | repo(owner/repo),可选的 stale_days | 按最早优先排序的过期认领 |
parked_branches | fork(owner/repo) | 含比较数据的搁置分支,以及全部分支 |
issue_claim_status | url(issue URL) | 认领者、时长分类、相关 PR、摘要 |
也可以直接运行服务端:npx @reneturcios/claimcheck mcp(stdio)。
检测方式
认领启发式规则(根据 greenlight 实际使用中验证过的模式重新实现):
- 明确认领:“我想接手这个”“请把它分配给我”“我正在处理这个”“我已经开始处理这个”“PR 即将提交”等类似表述。
- 一般意向:“很乐意帮忙”“对此感兴趣”“正在了解这个”。会记录,但绝不会视为认领。
- **排除项:**机器人账号、仓库维护者(他们说“我来处理”属于问题分流,不是可提出异议的认领),以及 issue 作者;除非作者表示确实会提交 PR。
只要认领者有任何相关 PR,无论经过多久,状态都会是 WORK_IN_FLIGHT:认领者确实完成了工作,只是还没有合并。只有没有 PR 的认领才会随着时间推移进入 STALE 和 DEAD 状态。
开发
npm install
npm test # 23 offline tests, node:test via tsx
npm run build # tsc to dist/
引擎(src/claims.ts、src/parked.ts)是基于获取的数据运行的纯函数,可使用 test/fixtures/ 中的样例离线进行完整测试。src/github.ts 包含 REST 客户端(议题、评论、PR 搜索、分支、比较、Fork 信息),并提供文件缓存。
许可证
MIT,Rene Turcios 2026 年。
工具套件
此工具是开源贡献工作生命周期中四款工具之一,均以 @reneturcios npm 作用域发布,且都提供 CLI 和 MCP 服务(<tool> mcp):
- gatefile(
npx @reneturcios/gatefile)提取仓库的贡献门槛,并将其写入已提交的contribution-gates.json。 - greenlight(
npx @reneturcios/greenlight)预检议题(GO / RISKY / TAKEN / GATED / STALE),在check和scan中使用 gatefile 的输出,然后认领议题、做好准备并提交 PR。 - claimcheck(
npx @reneturcios/claimcheck)监控过期认领,以及停放在 Fork 上的修复。 - prwatch(
npx @reneturcios/prwatch)根据哪些开放 PR 需要你立即处理,为其进行分类。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。