Claimcheck

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.4更新于 Oct 26, 2026

Track stale claims and parked fixes so open-source work does not silently die.

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

只读的 GitHub 扫描工具,找出被搁置的 issue 认领和已完工却未提 PR 的分支,让助手在认领或写代码前先核查。

可以做什么
  • 扫描仓库的开放 issue,找出过期的认领,按最旧优先排序并分为 FRESH、WATCH、STALE、DEAD 时段
  • 列出 fork 上领先上游却没有开放 PR 的搁置分支,按最后提交时间分档
  • 查询单个 GitHub issue 的认领状态:所有认领者、各自时段,以及是否存在关联 PR
  • 标出已有 PR 或与上游持平的分支,避免被误认为搁置工作
适用场景
适合在助手评论或认领开源 issue 之前使用,确认此前的认领者是否已经放弃。也适合维护者或贡献者检查 fork 中已完成但从未提交 PR 的工作。
运行要求
通过 npx(需 Node 20+)或 Docker 镜像以 stdio 在本地运行。设置 GITHUB_TOKEN 或 GH_TOKEN 可获得更高的认证速率上限;不设置时每小时仅 60 次请求。响应会缓存在本地缓存目录,可用环境变量覆盖。
安装前请注意
GitHub 令牌是放在环境变量中的凭据,应尽量缩小权限并当作机密保管。检测依赖评论启发式规则,分档只是估计,并不证明工作已被放弃。该服务器会从 GitHub 读取仓库数据,并把结果缓存到磁盘。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Claimcheck,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

claimcheck

Two quiet ways open-source work dies, tracked before they cost you weeks:

  1. Stale claims. Someone comments "I'll take this" on an issue, then vanishes. The issue still shows "unassigned," so the next volunteer writes code that collides with a ghost.
  2. Parked fixes. Finished work sitting on a fork branch that never became a PR. Real commits, real diffs, zero visibility.

claimcheck scans for both. It is the follow-up to greenlight: greenlight asks "is this issue landable?", claimcheck asks "did everyone who said yes actually show up, and did their work ever ship?"

Install

bash
npm install -g @reneturcios/claimcheck# ornpx @reneturcios/claimcheck claims owner/repo

Needs Node 20+. Set GITHUB_TOKEN (or GH_TOKEN) for the 5000 req/hr authenticated rate limit; without it you get 60 req/hr. Responses are cached in ~/.cache/claimcheck (override with CLAIMCHECK_CACHE_DIR, or the generic CACHE_DIR).

CLI

Find stale claims in a repo

bash
claimcheck claims modelcontextprotocol/python-sdk

Scans open unassigned issues, detects claim comments (explicit claims, work intentions, assignment requests; bots, maintainers, and the issue author are excluded), checks whether a linked PR ever appeared, and ranks the results with the oldest claims first:

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)

Flags: --days 45 changes the stale threshold, --json prints machine output.

Claim age buckets

BucketAgeMeaning
FRESH<14 daysClaimant probably still active
WATCH14 to 44 daysCheck before duplicating work
STALE45 to 89 daysContestable, likely abandoned
DEAD90+ daysAlmost certainly abandoned
WORK_IN_FLIGHTanyA linked PR exists, the work is real

Find parked fixes on a fork

bash
claimcheck parked CloudCorpRecords/pdfcn

Lists branches on a fork (excluding the default branch), compares each against the upstream default branch, and checks for open PRs from that fork. A branch ahead by 1+ commits with no open PR is 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 age buckets (from the branch tip commit date)

VerdictAgeMeaning
PARKED_RECENT<7 daysProbably still being finished
PARKED_STALE7 to 30 daysLikely forgotten, easy to revive
PARKED_DEAD30+ daysMay need rebasing onto upstream

Branches with an open PR show as IN_PR, branches even with upstream as EVEN. Neither is parked.

Claim status of one issue

bash
claimcheck issue https://github.com/modelcontextprotocol/python-sdk/issues/3287

Every claimant found in the comments, their age bucket, and whether a linked PR exists.

Run it with Docker

claimcheck also ships as a container image on GHCR: ghcr.io/cloudcorprecords/claimcheck.

Use it as a stdio MCP server:

bash
docker run -i ghcr.io/cloudcorprecords/claimcheck

Any CLI command can be passed after the image name instead of the default mcp argument:

bash
docker run ghcr.io/cloudcorprecords/claimcheck <command> [args]

MCP server

The same engines as tools, for agents that should check before they comment or code:

json
{  "mcpServers": {    "claimcheck": {      "command": "npx",      "args": ["-y", "claimcheck", "mcp"],      "env": { "GITHUB_TOKEN": "ghp_your_token_here" }    }  }}
ToolInputReturns
stale_claimsrepo (owner/repo), optional stale_daysRanked stale claims, oldest first
parked_branchesfork (owner/repo)Parked branches with compare data, plus all branches
issue_claim_statusurl (issue URL)Claimants, age buckets, linked PRs, summary

Or run the server directly: npx @reneturcios/claimcheck mcp (stdio).

How detection works

Claim heuristics (clean reimplementation of the patterns proven in greenlight's dogfooding):

  • Strong claims: "I'd like to take this", "please assign it to me", "I'm working on this", "I've started working on this", "PR incoming", and similar.
  • Soft interest: "happy to help", "interested in this", "looking into this". Recorded, never treated as a claim.
  • Excluded: bot accounts, repo maintainers (their "I'll take this" is triage, not a contestable claim), and the issue author unless they announce a real PR.

A claim with any linked PR is WORK_IN_FLIGHT at any age: the claimant did the work, it just has not landed yet. Only PR-less claims age into STALE and DEAD.

Development

bash
npm installnpm test        # 40 offline tests, node:test via tsxnpm run build   # tsc to dist/

Engines (src/claims.ts, src/parked.ts) are pure functions over fetched data, fully testable offline against fixtures in test/fixtures/. src/github.ts holds the REST client (issues, comments, PR search, branches, compare, fork info) with file caching.

License

MIT, Rene Turcios 2026.

The toolkit

This tool is one of four in a lifecycle for open-source contribution work, all published under the @reneturcios npm scope and each available as a CLI and an MCP server (<tool> mcp):

  1. gatefile (npx @reneturcios/gatefile) extracts a repo's contribution gates into a committed contribution-gates.json.
  2. greenlight (npx @reneturcios/greenlight) pre-flights issues (GO / RISKY / TAKEN / GATED / STALE), consumes gatefile's output in check and scan, then claims, preps, and opens PRs.
  3. claimcheck (npx @reneturcios/claimcheck) watches for stale claims and fixes parked on forks.
  4. prwatch (npx @reneturcios/prwatch) triages your open PRs by what needs you right now.

来源:README.md,提交 3dc1be0

工具

3

stale_claims

Scan a repo's open issues for stale claims: comments where someone said they would take an issue but never opened a PR. Buckets are FRESH (<14d), WATCH (14-44d), STALE (45-89d, contestable), DEAD (90d+). Call this to find issues you can legitimately claim because the last claimant walked away.

输入参数repo必填stale_days

parked_branches

List parked fixes on a fork: branches ahead of the upstream default branch with no open PR. Age from the last commit: PARKED_RECENT (<7d), PARKED_STALE (7-30d), PARKED_DEAD (30d+). Call this to find finished work that never shipped.

输入参数fork必填

issue_claim_status

Claim status of one GitHub issue: every claimant found in the comments, their age bucket, and whether a linked PR exists (work in flight). Call this before commenting on or claiming an issue.

输入参数url必填

版本历史

4
  1. v0.1.4最新Oct 26, 2026
  2. v0.1.3Oct 24, 2026
  3. v0.1.2Oct 18, 2026
  4. v0.1.1Oct 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分