Gitworthy

io.github.trippyogi由 GitHub 帳號 trippyogi 發布v0.3.6更新於 Oct 24, 2026

is it worth your commit? Pre-flight triage for OSS contribution targets.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

Gitworthy 是本地 MCP 決策引擎,用來偵察與預檢開源貢獻目標,回傳附證據的 ACT、VERIFY 或 SKIP 判定。

可以做什麼
Gitworthy 協助編碼代理在開始實作前判斷某個儲存庫 issue 是否值得投入。它會掃描並排序候選 issue,接著執行有界預檢,檢查已連結的拉取請求、未連結分支上的工作、已合併到 main 的修正、發佈落差、貢獻政策以及重複問題。結果以結構化的 ACT、VERIFY 或 SKIP 判定回傳,並附帶 checked 與 not_checked 證據欄位。CLI 與 MCP 伺服器共用同一套 TypeScript 核心。
適用情境
當代理或開發者正在挑選要貢獻的開源 issue,並希望避免重複既有工作或啟動被阻塞的任務時使用。它適合偵察某個儲存庫或組織、排序候選項目,並在投入心力前對候選清單做預檢。
執行需求
需要 Node.js 22 或更新版本。透過 npx gitworthy@latest mcp 以 stdio 在本機執行,也可選擇透過 Streamable HTTP 執行。強烈建議為真實 hunt 提供 GitHub 權杖(GITHUB_TOKEN 或 GH_TOKEN);沒有權杖時,依賴 GitHub REST 的檢查會回傳錯誤或 not_checked 項目。非回送位址的 HTTP 綁定需要 GITWORTHY_MCP_TOKEN。
安裝前請注意
GITHUB_TOKEN 是機密,應保留在伺服器端;它只需對公開儲存庫的讀取權限,但使用經典 PAT 或具備 Issues: Read 的細粒度權杖可改善關聯工作偵測。GITWORTHY_MCP_TOKEN 是 HTTP MCP 的 bearer 機密,非回送位址綁定必須提供。權杖不會被保存到設定或清單中。遙測預設關閉,MCP 路徑不傳送遙測;可選的 PostHog 遙測需要 GITWORTHY_TELEMETRY=on 與 GITWORTHY_POSTHOG_KEY。偵察結果 24 小時後會過期,執行前應重新檢查。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gitworthy,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Gitworthy pixel mascot]

Gitworthy

The decision layer before a coding agent starts work.

Gitworthy helps coding agents scout, rank, and preflight software work before they spend cycles implementing it. It finds the strongest candidates, checks whether the work is already handled or blocked, and returns evidence-backed ACT, VERIFY, or SKIP decisions for each target.

[npm] [MIT license] [Node 22+]

MCP setup · CLI · Agent workflow · Verdicts · Troubleshooting · Case studies · Roadmap · Contributing


Why Gitworthy

Coding agents make implementation cheap. Choosing the wrong task is still expensive.

An issue can look open while:

  • a fix already exists on an unlinked branch;
  • another contributor has an active pull request;
  • the change landed on main but has not been released;
  • the repository requires assignment before accepting work;
  • a duplicate or abandoned implementation already contains the answer.

Gitworthy performs that preflight before a human or agent spends the next unit of work.

How agents use Gitworthy

The agent owns the loop. Gitworthy is the MCP decision engine it calls to scout and validate work.

text
Contribution goal, repository, or organization                      │                      ▼         Cursor / ChatGPT / Hermes / agent                      │                 Gitworthy MCP                      │                      ▼        policy → scan → rank → preflight                      │             ┌────────┼────────┐             ▼        ▼        ▼            ACT     VERIFY    SKIP          queue it   inspect   drop it             │             ▼     optional `portfolio`     (mode + dispatch, not a new verdict)             │             ▼       Ranked candidate shortlist             │             ▼         Select a candidate             │             ▼   recheck → reproduce → implement → review

There are two distinct lanes:

  • Scout lane: discover, filter, rank, preflight, and return a shortlist.
  • Execute lane: select, record intent, recheck fresh state, reproduce, implement, review, and submit through the repository's allowed contribution path.

ACT means “worth considering,” not “start coding blindly.” Scout results go stale, so Gitworthy should be run again when an agent actually claims or begins a target.

See docs/AGENT_WORKFLOW.md for the complete agent policy, tool-selection guide, and scout-to-execute handoff.

Use it with Cursor, ChatGPT, Hermes, or any MCP client

Local stdio (desktop / agent VM)

json
{  "mcpServers": {    "gitworthy": {      "command": "npx",      "args": ["-y", "gitworthy@latest", "mcp"],      "env": {        "GITHUB_TOKEN": "github_pat_..."      }    }  }}

Streamable HTTP (Cloud Agents / mobile / iPad)

Run or deploy the same engine over HTTP and point the client at a URL:

sh
export GITWORTHY_MCP_TOKEN="$(openssl rand -hex 32)"export GITHUB_TOKEN="github_pat_..."npx -y gitworthy@latest mcp --http --host 127.0.0.1 --port 8787
json
{  "mcpServers": {    "gitworthy": {      "url": "https://mcp.example.com/mcp",      "headers": {        "Authorization": "Bearer ${env:GITWORTHY_MCP_TOKEN}"      }    }  }}

Non-loopback binds require GITWORTHY_MCP_TOKEN. Keep GITHUB_TOKEN on the server. Full deploy and Cloud Agent notes: docs/HTTP_MCP.md. Tool descriptions, annotations, and structured results: docs/MCP.md. Portable Agent Plugins packaging (skill + MCP): docs/AGENT_PLUGINS.md.

Give the agent a policy like this:

Use Gitworthy before investing in external repository work. Use hunt to build a short ranked queue. Read each candidate's worth_check; hunt does not produce one global verdict. Treat ACT as a queue candidate, perform the named checks on VERIFY, and remove SKIP candidates. Before implementing a selected target, rerun worth_check and follow the repository's contribution policy.

The token only needs read access to public repositories. For the most accurate linked-work detection, use a classic PAT or a fine-grained token with Issues: Read so Gitworthy can see timeline cross-references. Weaker tokens still work, but missing visibility is reported in not_checked.

Try it in 30 seconds

Check that your environment is ready:

sh
npx -y gitworthy@latest doctor --json

Evaluate a specific issue:

sh
npx -y gitworthy@latest check owner/repo#123

Render a deterministic handoff brief from a stored decision:

sh
npx -y gitworthy@latest brief decision_abc123 --format markdown --out brief.md

Brief generation is read-only over the local store and never calls GitHub, npm, or an LLM. Stored decisions are considered stale after 24 hours; stale briefs warn and recommend recheck.

Scout and preflight a short list of contribution targets:

sh
npx -y gitworthy@latest hunt owner/repo --jsonnpx -y gitworthy@latest hunt openclaw --max-checks 3 --json

Use @latest for exploration. Pin a version in repeatable agent workflows and CI.

What hunt actually returns

hunt is a bounded funnel, not a bulk verdict command:

text
contribution policy        ↓scan repository or organization        ↓rank issue quality and optional skill fit        ↓remove obvious land-only, assigned, weak, or known-SKIP rows        ↓run worth_check on only the best few candidates        ↓return candidates with individual verdicts and evidence

The agent should read each hunt_candidate.worth_check. Gitworthy intentionally avoids running an expensive full preflight on every issue returned by a broad scan.

ACT, VERIFY, or SKIP

VerdictScout behaviorExecution behavior
ACTAdd it to the ranked queue after reading evidence.Recheck before claiming or implementing; proceed only if fresh state and policy still allow it.
VERIFYSurface it with the unresolved checks named.Resolve those checks before forking or making a public claim.
SKIPRemove it from the queue.Do not begin parallel work; inspect the cited work or choose another target.

A verdict is not a vibes-based score. Gitworthy returns structured evidence, the checks it completed, and the checks it could not complete.

A real preflight

A target issue in block/buzz appeared open, but a prior implementation already existed in a pull request using nearly the same title.

text
Target: block/buzz#1659Verdict: VERIFYDisposition: review
Evidence:- An implementation exists in PR #1675.- The pull request is linked work, not a duplicate issue.
Next action:Inspect the current implementation before starting parallel work.

That case also exposed a false-positive path in duplicate detection: GitHub's issues API includes pull requests. The fix became a regression test and calibration case.

More real contribution sessions are documented in CASE_STUDIES.md.

How it works

Gitworthy combines bounded checks that answer different ways a task can be unsafe or wasteful to start.

CheckWhat it protects against
Linked workExisting pull requests, assignments, referenced commits, and prior attempts
Branch scanWork already present on unlinked remote branches
Issue vs. mainFixes that landed while the issue remained open
Release gapChanges on main that are not in the published package
Contribution policyClaim requirements, assignment rules, and repositories that do not accept pull requests
Duplicate analysisRelated or previously reported issues
Scan / org scanUnranked issue tracker noise
HuntWasteful broad checking by narrowing candidates before expensive preflight

The CLI and MCP server are thin adapters over the same TypeScript core.

Trust model

Gitworthy is designed to be useful without pretending to know more than it checked.

  • Heuristic evidence cannot independently create a hard SKIP.
  • Hard SKIP requires definitive evidence.
  • Failed mandatory checks cap the result at VERIFY.
  • Every real result includes meaningful checked and not_checked fields.
  • Human-readable prose is never parsed to decide the verdict.
  • Target repositories and packages are treated as hostile input.
  • Telemetry is off by default. The MCP path emits no telemetry.
  • Scout results are not treated as permanent; execution requires fresh revalidation.

ACT does not mean “blindly start coding.” Read the evidence, disposition, reasons, linked work, and repository policy before investing.

Agent-native output

Every core result includes a structured envelope:

json
{  "verdict_summary": "one sentence",  "evidence": [],  "signals": [],  "checked": [],  "not_checked": [],  "cached": false,  "fetched_at": "2026-01-01T00:00:00.000Z"}

signals is the load-bearing input to the decision policy. checked and not_checked are part of the result, not footnotes.

Common commands

sh
gitworthy check owner/repo#123 [--npm-package name] [--json]gitworthy hunt owner/repo [--manifest path] [--max-checks 3] [--json]gitworthy portfolio owner/repo [--max-items 10] [--json]gitworthy prs owner/repo [--json]gitworthy ci-triage --head-check test:failure --base-check test:success [--json]gitworthy history owner/repo --path src/core/hunt.ts [--json]gitworthy opportunity-ingest --source hermes-eval --id case-9 [--json]gitworthy scan owner/repo [--label "help wanted"] [--json]gitworthy org owner [--manifest path] [--max-repos 8] [--json]gitworthy policy owner/repo [--json]gitworthy init [--user] [--repo] [--json]gitworthy config validate [--path path] [--manifest path] [--json]gitworthy config show --effective [--json]gitworthy profile show [--json]gitworthy related owner/repo [issue] [--json]gitworthy ledger show owner/repo#123 [--json]gitworthy doctor [--json]gitworthy mcpgitworthy mcp --http [--host 127.0.0.1] [--port 8787] [--stateless]

Exit codes for check:

  • 0 — ACT
  • 10 — VERIFY
  • 20 — SKIP
  • 1 — error

See SKILL.md for the strict contribution gates and docs/AGENT_WORKFLOW.md for the explanatory workflow guide.

Documentation

DocTopic
docs/AGENT_WORKFLOW.mdScout vs execute, tool selection
docs/VERDICTS.mdACT / VERIFY / SKIP and dispositions
docs/CLI.mdCLI reference and exit codes
docs/MCP.mdMCP tools, annotations, structured results
docs/AGENT_PLUGINS.mdAgent Plugins v1 packaging (skill + MCP)
docs/HTTP_MCP.mdStreamable HTTP MCP
docs/CONFIG.mdConfig, manifests, profiles
docs/DATA.mdLocal store, outcomes, captures
docs/EVALS.mdFrozen / live / private eval
docs/CORPUS.mdCorpus taxonomy (pass rate vs precision)
docs/CORPUS_CONTRIB.mdHow to grow Track O vs Track F
docs/TRACK_O.mdOutcome calibration (Track O; not a release gate)
docs/BETA.mdDesign-partner beta (GW-034)
docs/SECURITY_MODEL.mdTrust boundaries
docs/TROUBLESHOOTING.mdDoctor-driven remediation
docs/COMPATIBILITY.mdPre-1.0 contract policy
docs/PERFORMANCE.mdCounters and budgets
docs/RANKING.mdRanking contract
docs/RELEASE_1.0.md1.0 gate checklist

Configuration

  • GITHUB_TOKEN / GH_TOKEN enables authenticated GitHub REST checks.
  • Config files are data-only JSON. Gitworthy reads user config from ~/.gitworthy/config.json and repository-local config from .gitworthy/config.json.
  • Precedence is: CLI/MCP input, GITWORTHY_* environment variables, repository config, user config, built-in defaults. gitworthy config show --effective --json includes provenance for each effective value.
  • Create a secret-free skeleton with gitworthy init --repo or gitworthy init --user. Validate with gitworthy config validate.
  • Skill profiles (profile in config or --skill-profile) can include languages, topics, preferred_ecosystems, and avoid lists; they affect scan/hunt ranking inputs only, never hard verdict policy.
  • Target manifests (--manifest path or manifest_path in config) can list repos/orgs, include/exclude filters, per-repo npm package mappings, and target-specific overrides. Ambiguous npm package mappings are rejected. Include/exclude filters are validated and carried as manifest metadata in GW-019; full filtering consumption is deferred to GW-027.
  • Tokens and credentials are never persisted in config or manifests; use environment variables such as GITHUB_TOKEN / GH_TOKEN.
  • GITWORTHY_MCP_TOKEN is the bearer secret for Streamable HTTP MCP (required for non-loopback binds).
  • GITWORTHY_CACHE_DIR overrides the cache under ~/.gitworthy/cache.
  • GITWORTHY_LEDGER_DIR overrides local scout history under ~/.gitworthy/ledger.
  • GITWORTHY_TELEMETRY=on plus GITWORTHY_POSTHOG_KEY requests optional telemetry.

Optional PostHog telemetry also requires a user-installed posthog-node package. If it is missing, Gitworthy warns once and continues with telemetry disabled.

Without a GitHub token, checks that require GitHub REST return structured errors or explicit not_checked entries. Checks that can use public git or npm endpoints still run.

Current status

Gitworthy is pre-1.0 and actively hardening its decision contract, hostile-input handling, local outcomes, evaluation corpus, and onboarding.

The 1.0 goal is a trustworthy, local-first CLI and MCP decision engine—not a hosted SaaS and not another coding agent.

See ROADMAP.md for the release ladder.

Where this is going

Gitworthy is becoming the agent-native readiness layer between task discovery and implementation:

  1. discover candidate work;
  2. rank the most promising targets;
  3. determine whether each is actually ready;
  4. return a machine-actionable next step;
  5. revalidate selected work before execution;
  6. record what happened;
  7. improve future decisions from real outcomes.

The open-source decision engine stays local-first and MIT licensed. Possible post-1.0 layers include shared outcome history, scheduled hunts, private-repository coordination, and an API for agent dispatch.

Contributing

Gitworthy is built from real cases where apparently open work turned out to be handled, blocked, or unsafe to start.

The most valuable contributions are:

  • examples where Gitworthy made the wrong decision;
  • repositories or ecosystems it cannot inspect correctly;
  • Cursor, ChatGPT, Claude Code, Codex, OpenClaw, Hermes, or other agent integrations;
  • improvements to evidence quality and failure reporting;
  • new frozen evaluation cases;
  • documentation that helps another person get a useful result quickly.

See CONTRIBUTING.md for development setup and trust requirements.

Requirements

  • Node.js 22 or newer
  • A GitHub token is strongly recommended for real hunts

Security

Report vulnerabilities privately using SECURITY.md or email [email protected].

License

MIT

來源:README.md,提交 c022e45

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.6最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分