Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Verify REWORK credentials: is this delivered work genuinely the author's?
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"rework-proof": {
"command": "npx",
"args": [
"-y",
"@reworkdigital.io/rework-proof-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add rework-proof -- npx -y @reworkdigital.io/rework-proof-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"rework-proof": {
"command": "npx",
"args": [
"-y",
"@reworkdigital.io/rework-proof-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"rework-proof": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reworkdigital.io/rework-proof-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 reworkio 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.2.1)于19天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, sync. labs
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Reports who actually wrote the commits in a pull request — signature state, author attribution, and declared AI assistance — as a job summary.
By default it sends nothing anywhere. It reads the pull request's commits with the token your workflow already has and writes a summary. No account, no API key, no third-party access to your repository.
name: Proof
on: pull_request
jobs: proof: runs-on: ubuntu-latest steps:
That's the whole setup.
New here? GETTING-STARTED.md walks a fresh repository through both this action and the GitHub App — which to choose, what each one grants, and a set of commits that exercise every case so you can see what the report actually does before trusting it.
Replace OWNER/REPO with your own and open this — GitHub's editor opens with the workflow already written, and you just press Commit:
https://github.com/OWNER/REPO/new/main?filename=.github/workflows/proof.yml&value=name%3A%20Proof%0Aon%3A%20pull_request%0A%0Ajobs%3A%0A%20%20proof%3A%0A%20%20%20%20runs-on%3A%20ubuntu-latest%0A%20%20%20%20steps%3A%0A%20%20%20%20%20%20-%20uses%3A%20reworkio%2FREWORK-Proof%40v1%0A
If your default branch isn't main, change the /new/main segment to match.
For every commit on the pull request:
[bot] suffix — dependabot, github-actions) are classed as automation, listed separately from human co-authors.Co-Authored-By: Claude (or Copilot, Codex, Gemini, Cursor, Devin, aider, …) trailer, a Claude-Session: or Amp-Thread-ID: trailer, or a Generated with line. The full list is src/ai-trailers.json, and the GitHub App check reads the same file, so a commit reads the same either way.Declaring AI assistance does not lower the result. The author chose to say so, which is good practice; penalising the trailer would just teach people to delete it — which destroys the signal for the person who needed it.
"None declared" means none declared. The action reads commit messages. A message with no trailer looks the same whether or not a tool wrote the code, so a count of zero says nothing was declared, never that nothing was used.
Unsigned commits are not treated as a fault either. Most repositories never enable signing. The check reports what can be proven and says plainly what can't.
The Action reports on one pull request and is finished. The GitHub App, which receives the pull request's closed event, also records the outcome:
How those counts reach a REWORK member's own score and badge is on reworkdigital.io/docs/proof.
Set attest: true and the action asks REWORK for a signed, timestamped attestation of the run:
jobs:
proof: runs-on: ubuntu-latest permissions: contents: read id-token: write # required for attestation steps:
There is still no API key. The workflow mints a short-lived OIDC token that proves, on GitHub's authority, which repository and workflow the run belongs to. Nothing long-lived is stored in your repository settings, so there's nothing to leak or rotate.
Only counts are sent — never your code, never commit messages.
The result is a W3C Verifiable Credential as a compact JWT. Anyone can verify it offline against REWORK's published key at https://api.reworkdigital.io/api/v1/proofs/credentials/jwks.json — no call back to REWORK, so it keeps working for a reader who has never heard of us.
An attestation failure never fails your build. The local result stands on its own.
The credential's assurance field names one of the levels below. The text is rendered from mcp/src/assurance.json, the same file the MCP server answers explain_rework_assurance from and the one the reworkdigital.io/github page renders, so every surface states one ceiling.
Workflow identity (workflow-identity), moderate: strong on identity, silent on quality
Proves: GitHub cryptographically vouched that a specific workflow run belongs to a specific repository and commit, and REWORK recorded the authorship signals that run observed: commit signature state, whether each commit resolves to the pull request author, and how many commit messages declared AI assistance.
Does not prove: Nobody reviewed the code, ran it, or judged its quality. It does not say the work is good, only who the git history says wrote it. The AI count is what authors declared in commit messages: a zero means nothing was declared, not that no tool was used.
Reviewed reference (reviewed-reference), moderate: human-checked, but of a demonstration rather than the artefact
Proves: A REWORK reviewer watched a demonstration video and confirmed it corresponds to the claimed work, and the video is fingerprinted so reuse is detectable.
Does not prove: The reviewer did not audit the source, reproduce the result, or verify claims made verbally in the video.
Cross-platform join (cross-platform-join), moderate: strong on which bytes landed where and who controls both ends, silent on how they were made
Proves: The exact bytes named by a manifest digest were present in the named Hugging Face repository, at the named commit, immediately after the named GitHub Actions run, confirmed by REWORK's own independent read of the Hub; and one REWORK account holds both the App installation on the GitHub repository's owner and a verified write-control claim on the Hugging Face repository.
Does not prove: It does not prove that the workflow produced, trained, or evaluated the content. A run that downloads someone else's files and uploads them also carries bytes. Read the workflow reference to judge what the run actually did.
The credential says so in its own disclaimer.
| Input | Default | Description |
|---|---|---|
github-token | ${{ github.token }} | Used to read the PR's commits. Needs no extra permissions. |
attest | false | Request a signed attestation. Requires id-token: write. |
api-url | https://api.reworkdigital.io/api/v1 | Override only for self-hosted REWORK. |
require-signed | false | Fail when any commit is unsigned. We recommend leaving this off. See Make it blocking. |
require-ai-disclosure | false | Fail when no commit states whether AI assistance was used. See Make it blocking. |
fail-on-unsigned | false | The older spelling of require-signed; still works. |
By default nothing here fails a build, and for most repositories that is the right setting. A repository that wants the report to block opts in with two keys, and it states them once for both the Action and the App:
# .github/rework-proof.yml
require_signed: true require_ai_disclosure: true
require_signed: true fails the check when any commit carries no signature GitHub could verify.require_ai_disclosure: true fails the check when no commit on the pull request states whether AI assistance was used. A Co-Authored-By: trailer naming the assistant satisfies it, and so does the line AI-Assisted: none in a commit message, so a pull request written without AI has a way to say so rather than a way to fail.Only the literal true switches a policy on; a quoted "true" does not. The App reads the file from the default branch, so a pull request cannot switch a policy on or off for itself. The Action reads the same file from the checkout when the workflow has one; a workflow without a checkout step can pass the same two switches as inputs instead:
jobs:
proof: runs-on: ubuntu-latest steps:
When the file is present and sets either key, it is the whole statement and the inputs are not consulted. The finding is reported the same way whether or not it blocks; what the policy changes is only the conclusion, and the failure message names the file or input that asked for it.
| Output | Description |
|---|---|
commits-total | Commits examined. |
commits-signed | How many carried a verifiable signature. |
commits-foreign | Commits attributed to a human account other than the PR author. |
commits-automation | Commits authored by a bot account ([bot] suffix). |
ai-disclosed | Commits whose message declares AI assistance. Zero means none declared, not none used. |
credential | The signed VC-JWT, when attest is enabled. |
The commit read stops at 300 commits. A larger pull request is reported as inconclusive rather than clean — a partial read that claimed "all verified" would be the one failure mode that actively misleads.
The Action reports on one pull request and is finished. A REWORK proof that cites a GitHub repository is different: it is re-observed, and it decays if the repository is later deleted, made private, transferred, or blocked, rather than reading "verified" against evidence nobody can open any more.
The narrow rules matter more than the sweep:
The re-check reads the repository anonymously on purpose. Verification ran on the author's own token; the question afterwards is whether a *buyer* can still open the evidence.
App only, and it is restrictiv
只显示了开头部分;其余内容请在仓库中阅读