
Rework Proof
io.github.reworkio由 GitHub 帳號 reworkio 發布v1.2.1更新於 Oct 26, 2026
Verify REWORK credentials: is this delivered work genuinely the author's?
發布方自己的服務:Proof Holdings
概覽
REWORK 提供的本機 MCP 伺服器,讓助理查核交付的工作是否真出自其作者,依據提交簽章、作者歸屬與宣告的 AI 輔助情況。
- 可以做什麼
- 解釋 REWORK 證明憑證的保證等級,以及每一級能證明什麼、不能證明什麼
- 報告拉取請求各提交的作者訊號:簽章狀態、提交是否歸屬 PR 作者、機器人帳號、宣告的 AI 輔助
- 說明檢查的侷限,例如最多讀取 300 個提交,以及 AI 計數為零只代表未宣告
- 呈現與 GitHub Action、GitHub App 和 REWORK 網站一致的保證措辭
- 適用情境
- 適合在助理需要解讀或說明一份 REWORK 證明,或在依賴某份拉取請求的 git 歷史之前判斷其是否支持作者身分宣告時使用。
- 執行需求
- 以本機 stdio 程序執行,從 npm 套件安裝。清單未宣告任何驗證、環境變數或請求標頭。底層檢查使用工作流程既有的 GitHub 權杖讀取拉取請求的提交。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Rework Proof,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
REWORK Proof Check
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.
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.
One-click setup
Replace OWNER/REPO with your own and open this — GitHub's editor opens with
the workflow already written, and you just press Commit:
If your default branch isn't main, change the /new/main segment to match.
What it reports
For every commit on the pull request:
- Signature state — whether GitHub could cryptographically verify it.
- Author attribution — whether the account GitHub resolved the commit to
is the pull request's author. A commit whose email never matched a GitHub
account is not flagged; that's ordinary, and flagging it would make the
check noise. Bot accounts (a
[bot]suffix — dependabot, github-actions) are classed as automation, listed separately from human co-authors. - Declared AI assistance — a commit message that names a coding assistant:
a
Co-Authored-By: Claude(or Copilot, Codex, Gemini, Cursor, Devin, aider, …) trailer, aClaude-Session:orAmp-Thread-ID:trailer, or aGenerated with <tool>line. The full list issrc/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.
What the App records after a merge
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:
- The merge. When GitHub reports a checked pull request merged, the App notes it against the check it already ran, together with what the repository's other checks concluded on the pull request's final commit. A merge of work the App never checked is not invented into a result.
- The repository badge then reads "N PRs verified · S% signed · M merged": distinct pull requests checked, the share of every examined commit GitHub reported as signed, and how many of those pull requests were merged. It picks no colour from a verdict; a merge is an outcome your maintainers produced, not a grade.
- A squash-merge note. When a pull request declared AI assistance or had commits by someone other than its author, and the squashed merge commit no longer carries the trailer, the App posts a second, neutral check run on the merge commit titled "Disclosure kept from the pull request". It restates what the pull request's commits declared so the default branch still says it. A true merge commit or a rebase loses nothing and gets no note.
- Re-verification. A signature GitHub verified can stop verifying later, so the App re-reads the commits behind recent results nightly (up to 200 results a night, each younger than 90 days). A result that was "success" because every commit was signed drops to "neutral" when that stops being true. A read that could not complete changes nothing.
How those counts reach a REWORK member's own score and badge is on reworkdigital.io/docs/proof.
Signed attestation (optional)
Set attest: true and the action asks REWORK for a signed, timestamped
attestation of the run:
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.
What the attestation does and does not claim
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.
Inputs
Make it blocking
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:
require_signed: truefails the check when any commit carries no signature GitHub could verify.require_ai_disclosure: truefails the check when no commit on the pull request states whether AI assistance was used. ACo-Authored-By:trailer naming the assistant satisfies it, and so does the lineAI-Assisted: nonein 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:
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.
Outputs
Limits
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.
A proof that points here does not stay verified on its own
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:
- a rename by the same owner is followed, not punished, because the work is untouched
- outages, timeouts and rate limits decay nothing — those are our problem
- two consecutive definitive failures are required before anything is withdrawn
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.
Where the check's Details link goes
App only, and it is restrictive by design. A check run is public and sits on someone else's pull request, so linking it to a REWORK profile is an identity claim made in front of their colleagues. It is made only when both ends are verified: GitHub told us which account installed the App, and that account signed in to REWORK through the setup link. Anything less links to the public proofs page and the summary carries an invitation, which claims nothing.
A self-typed profile field is never consulted. Trusting one would let anyone advertise on a stranger's pull requests.
Implementation
One dependency-free Node file: src/main.js. No bundled
dist/, no node_modules, no build step. What you read is what runs.
Related
For automatic verification on every pull request without adding a workflow, the REWORK Proof GitHub App posts the same result as a check run.
- GETTING-STARTED.md — the Action, the App, and joining a Hugging Face publication to the build that produced it
- reworkdigital.io/github — what the GitHub side checks and what it deliberately does not claim
- reworkdigital.io/huggingface — the Hub side: the control ceremony, and the reproducible evaluation REWORK runs itself rather than taking a download count's word for it
- mcp/ — the same checks over MCP, for AI agents
Licence
MIT — see LICENSE.
來源:README.md,提交 143266c
工具
0版本歷史
1- v1.2.1最新Oct 19, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Proof 整合
Proof Holdings
holdings.proof官方發布者
Proof Holdings MCP 伺服器讓助理發起並管理身分與控制權驗證(手機、電子郵件、網域、錢包),管理證明權杖與委派,並進行驗證。

Proof of Work
由 GitHub 帳號 kivtxs 發布
讓助理閱讀 Proof of Work 的規則、檢查本機是否已有帳號,並建立代理帳號以發佈、投票與支持附證據的主張。

QuietProof
由 GitHub 帳號 frankjie3-create 發布
QuietProof 提供免費探索工具,用來瀏覽一組確定性、唯讀的稽核服務,這些稽核按次以 Base 上的 USDC 透過 x402 付費。
SCRIPTMASTERLABS — 402Proof
com.scriptmasterlabs
遠端 MCP 端點,用於在 XRPL 上以 RLUSD 建立、驗證與評分發票,並對結算進行自證。

ZKStamp Proof-100
由 GitHub 帳號 ZKStamp 發布
遠端 MCP 伺服器,把 SHA-256 指紋以遮蔽交易寫入 BitcoinZ 區塊鏈,產生附日期的存在性證明時間戳。