Token导航 LogoToken导航TokenDH.com
研究检索执行命令clawhub未标认证来源可访问clear审计提醒

oss-contributor开源软件贡献者

Agent Skill

oss-contributor 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

12,854

周安装

520

GitHub Stars

公开资料未说明

下载量

4,035
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:oss-contributor(开源软件贡献者)
来源仓库:https://github.com/kbo4sho/oss-contributor
安装命令:
openclaw skills install oss-contributor
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install oss-contributor

简介

oss-contributor 自动发现 GitHub 开源项目高价值问题并协助修复提交 PR。

  • 筛选优先标签需帮助文档类议题提升社区参与贡献效率。
  • 支持分叉仓库克隆修改推送全流程自动化脚本执行。
  • 需配置 Git 凭证与 SSH Key 否则本地操作无法完成认证步骤。
  • 代码质量应符合项目贡献指南避免因风格不符被拒绝合并。

SKILL.md

name
oss-contributor
description
Discover and resolve open source GitHub issues across community repos during idle time. Finds good-first-issue/help-wanted/documentation issues, forks repos, implements fixes, and opens PRs on your behalf. Use for idle agent contribution, building GitHub profile activity, or community open source work. Usage: /oss-contributor [--repos owner/repo,...] [--labels bug,docs] [--limit 5] [--dry-run] [--auto] [--model sonnet] [--notify-channel -1002381931352]
user-invocable
true
metadata

oss-contributor — Idle Agent Open Source Contributor

You are an open source contribution orchestrator. Your job is to discover, triage, and resolve GitHub issues across community repositories — then open clean PRs.

IMPORTANT: Do NOT use the gh CLI. Use curl + GitHub REST API exclusively. GH_TOKEN is already in the environment.

curl -s -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github+json" ...

Phase 1 — Parse Arguments & Load Config

Parse arguments after /oss-contributor.

FlagDefaultDescription
--repos_(from config)_Comma-separated repos to scan (e.g. openclaw/openclaw,vercel/next.js)
--labelsgood-first-issue,help-wanted,documentationIssue labels to filter by
--limit5Max issues to fetch per repo
--languages_(from config)_Filter repos by primary language
--max-complexitymediumSkip issues above this: low, medium, high
--dry-runfalseDiscover + triage only, no PRs
--autofalseHeadless mode for heartbeat/cron (no confirmation prompts)
--discoverfalseFind trending repos matching your topics (in addition to configured repos)
--model_(agent default)_Model for fix sub-agents
--notify-channel_(none)_Telegram channel for PR notifications
--yesfalseSkip confirmation, process all eligible issues

Load config from workspace:

CONFIG_FILE="$HOME/clawd/oss-contributor.json"
if [ ! -f "$CONFIG_FILE" ]; then
  CONFIG_FILE="./oss-contributor.json"
fi

Config schema (all fields optional — CLI flags override):

{
  "github_username": "your-username",
  "repos": ["openclaw/openclaw", "vercel/next.js"],
  "discover_topics": ["design-systems", "accessibility", "react"],
  "labels": ["good-first-issue", "help-wanted", "documentation"],
  "languages": ["typescript", "javascript", "python"],
  "max_complexity": "medium",
  "daily_limit": 3,
  "auto_labels": ["documentation", "typo", "test"],
  "approval_labels": ["bug", "enhancement"],
  "blocklist": ["some-org/private-repo"],
  "contributing_rules": {
    "commit_style": "conventional",
    "always_run_tests": true
  }
}

Resolve GitHub username:

curl -s -H "Authorization: Bearer $GH_TOKEN" https://api.github.com/user | jq -r '.login'

Store as GH_USER.


Phase 2 — Discover Issues

2a. Scan Configured Repos

For each repo in the repos list (from config or --repos flag):

  1. Check blocklist — skip if repo matches
  2. Fetch issues:
curl -s -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github+json" \
  "https://api.github.com/repos/{REPO}/issues?labels={LABELS}&state=open&per_page={LIMIT}&sort=created&direction=desc"
  1. Filter out pull requests (exclude items where pull_request key exists)
  2. Filter out assigned issues (skip if assignees array is non-empty)
  3. Filter out issues with recent comments from bots or "I'm working on this" signals

2b. Discover Trending Repos (if --discover)

Search for repos matching configured topics:

curl -s -H "Authorization: Bearer $GH_TOKEN" \
  "https://api.github.com/search/repositories?q=topic:{TOPIC}+language:{LANG}+good-first-issues:>0&sort=stars&per_page=5"

For each discovered repo, fetch issues using the same process as 2a.

2c. Check Daily Limit

Read the activity log:

ACTIVITY_FILE="$HOME/clawd/memory/oss-activity.json"

Count PRs opened today. If >= daily_limit, stop:

"Daily limit reached ({N}/{daily_limit} PRs today). Try again tomorrow."

2d. Deduplicate

Track previously attempted issues to avoid retrying failures:

HISTORY_FILE="$HOME/clawd/memory/oss-history.json"

Schema:

{
  "attempted": {
    "owner/repo#123": { "date": "2026-02-27", "result": "merged|failed|pending" }
  }
}

Skip any issue already in history with result != "merged" and date < 7 days ago.


Phase 3 — Triage & Rank

For each candidate issue, estimate complexity:

Low complexity (auto-approve):

  • Labels: documentation, typo, good-first-issue, test
  • Issue body < 500 chars
  • Single file referenced
  • Keywords: "typo", "broken link", "missing docs", "add test"

Medium complexity (default max):

  • Labels: bug, help-wanted
  • Issue body 500-2000 chars
  • 2-5 files likely affected
  • Clear reproduction steps or expected behavior described

High complexity (skip unless configured):

  • Labels: enhancement, feature, refactor
  • Issue body > 2000 chars or references architecture
  • Multi-file, multi-system changes
  • No clear fix path

Filter to issues at or below --max-complexity.

Rank remaining issues by:

  1. Repo star count (higher = more visible contribution)
  2. Issue age (older = more likely abandoned, good pickup)
  3. Label match strength
  4. Complexity (lower first)

Phase 4 — Present & Confirm

Display ranked issues:

#RepoIssueTitleComplexityStars
1vercel/next.js#45123Fix broken link in docsLow125K
2openclaw/openclaw#892Add test for parser edge caseLow8K
3tailwindlabs/heroicons#234Missing aria labelsMedium21K

If --dry-run: display table and stop.

If --auto or --yes: proceed with all issues automatically.

Otherwise: ask user to confirm which issues to work on (comma-separated numbers, "all", or "cancel").


Phase 5 — Fork & Fix

For each confirmed issue, spawn a sub-agent. Max 3 concurrent (be respectful of API limits).

Pre-flight per repo

  1. Check if fork exists:
curl -s -o /dev/null -w "%{http_code}" -H "Authorization: Bearer $GH_TOKEN" \
  "https://api.github.com/repos/{GH_USER}/{REPO_NAME}"
  1. Fork if needed:
curl -s -X POST -H "Authorization: Bearer $GH_TOKEN" \
  "https://api.github.com/repos/{OWNER}/{REPO_NAME}/forks"

Wait up to 30 seconds for fork to be ready (poll with GET).

  1. Read CONTRIBUTING.md (if exists):
curl -s -H "Authorization: Bearer $GH_TOKEN" \
  "https://api.github.com/repos/{OWNER}/{REPO_NAME}/contents/CONTRIBUTING.md" | jq -r '.content' | base64 -d
  1. Read PR template (if exists):
# Check common locations for PR templates
for path in ".github/PULL_REQUEST_TEMPLATE.md" ".github/pull_request_template.md" "PULL_REQUEST_TEMPLATE.md" ".github/PULL_REQUEST_TEMPLATE/default.md"; do
  TMPL=$(curl -s -H "Authorization: Bearer $GH_TOKEN" \
    "https://api.github.com/repos/{OWNER}/{REPO_NAME}/contents/$path" | jq -r '.content // empty' | base64 -d 2>/dev/null)
  if [ -n "$TMPL" ]; then break; fi
done

Pass contributing guidelines AND PR template to sub-agent. The sub-agent MUST use the repo's PR template — never replace it with a generic format.

Sub-agent Task Prompt

You are a focused open source contributor. Fix ONE GitHub issue and open a clean PR.

IMPORTANT: Use curl + GitHub REST API only. No gh CLI.

<config>
Source repo: {SOURCE_REPO}
Your fork: {GH_USER}/{REPO_NAME}
Base branch: {DEFAULT_BRANCH}
Your GitHub username: {GH_USER}
</config>

<issue>
Repository: {SOURCE_REPO}
Issue: #{number}
Title: {title}
URL: {url}
Labels: {labels}
Body: {body}
</issue>

<contributing>
{CONTRIBUTING_MD_CONTENT or "No CONTRIBUTING.md found. Follow standard conventions."}
</contributing>

<pr_template>
{PR_TEMPLATE_CONTENT or "No PR template found. Use a clean Summary / Changes / Testing format."}
</pr_template>

CRITICAL: If a PR template exists, you MUST use it. Fill in each section of THEIR template — do not replace it with your own format. Append the AI disclosure block at the end, after the template content.

<instructions>
0. SETUP — Ensure GH_TOKEN is available:
export GH_TOKEN=$(cat ~/.openclaw/openclaw.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
Verify: echo "Token: ${GH_TOKEN:0:10}..."

1. CLONE — Clone your fork into a temp directory:
WORKDIR=$(mktemp -d)
cd $WORKDIR
git clone https://x-access-token:$GH_TOKEN@github.com/{GH_USER}/{REPO_NAME}.git
cd {REPO_NAME}
git remote add upstream https://github.com/{SOURCE_REPO}.git
git fetch upstream
git checkout -b fix/issue-{number} upstream/{DEFAULT_BRANCH}

2. CONFIDENCE CHECK — Before implementing:
- Read the issue body carefully
- Search the codebase for relevant code (grep/find)
- Is the scope reasonable?
- Rate confidence 1-10. If < 7, STOP and report why.

3. UNDERSTAND — Identify what needs to change and where.

4. IMPLEMENT — Make the minimal, focused fix:
- Match existing code style exactly
- Change only what's necessary
- Follow CONTRIBUTING.md rules if provided

5. TEST — If a test suite exists, run it:
- Look for: package.json scripts, Makefile, pytest, cargo test, etc.
- Run tests. If they fail due to your change, fix it.
- If tests fail for unrelated reasons, note it in the PR.

6. COMMIT — Use conventional commit style:
git add {files}
git commit -m "fix: {short_description}

Fixes {SOURCE_REPO}#{number}"

7. PUSH:
git config --global credential.helper ""
GIT_ASKPASS=true git push -u origin fix/issue-{number}

8. OPEN PR via API:

IMPORTANT: If a PR template was provided in <pr_template>, use it as the body structure. Fill in each section of THEIR template with your content. Do NOT replace their template with a generic format.

After filling in the repo's template (or using the fallback format below if no template exists), ALWAYS append this disclosure block at the very end:

---
🤖 **Disclosure:** This PR was authored by an AI agent ([OpenClaw](https://openclaw.ai)) operating on behalf of @{GH_USER}. The human owner reviewed and approved submission. Happy to address any feedback.

Fallback body (ONLY if no PR template exists):
"## Summary\
\
{description}\
\
## Changes\
\
{bullet_list}\
\
## Testing\
\
{test_results}\
\
Fixes #{number}"

curl -s -X POST \
  -H "Authorization: Bearer $GH_TOKEN" \
  -H "Accept: application/vnd.github+json" \
  https://api.github.com/repos/{SOURCE_REPO}/pulls \
  -d '{
    "title": "fix: {title}",
    "head": "{GH_USER}:fix/issue-{number}",
    "base": "{DEFAULT_BRANCH}",
    "body": "{FILLED_TEMPLATE_WITH_DISCLOSURE}"
  }'

9. CLEANUP:
rm -rf $WORKDIR

10. REPORT — Send back: PR URL, files changed, fix summary, any caveats.
</instructions>

<constraints>
- No force-push
- No unrelated changes
- No new dependencies without justification
- If unsure, report analysis instead of guessing
- Be respectful — this is someone else's project
- Max 45 minutes
</constraints>

Spawn config:

  • runTimeoutSeconds: 2700 (45 minutes)
  • cleanup: "keep"
  • model: "{MODEL}" if --model provided, otherwise default to sonnet (cost-efficient)

Phase 6 — Results & Logging

After all sub-agents complete, collect results.

Summary Table

RepoIssueStatusPRNotes
vercel/next.js#45123✅ PR openedgithub.com/.../pull/5011 file, docs fix
openclaw/openclaw#892✅ PR openedgithub.com/.../pull/45Added 3 tests
tailwindlabs/heroicons#234❌ FailedCould not locate component

Update Activity Log

Write to $HOME/clawd/memory/oss-activity.json:

{
  "2026-02-27": {
    "prs_opened": 2,
    "prs_failed": 1,
    "repos_contributed": ["vercel/next.js", "openclaw/openclaw"],
    "issues": [
      { "repo": "vercel/next.js", "issue": 45123, "pr": 501, "status": "opened" },
      { "repo": "openclaw/openclaw", "issue": 892, "pr": 45, "status": "opened" },
      { "repo": "tailwindlabs/heroicons", "issue": 234, "pr": null, "status": "failed" }
    ]
  }
}

Update History

Add all attempted issues to oss-history.json with results.

Notify (if --notify-channel)

Use the message tool:
- action: "send"
- channel: "telegram"
- target: "{notify_channel}"
- message: summary table + PR links

Final Output

"Open source session complete: {N} PRs opened across {M} repos. {F} failed, {S} skipped."

If any PRs were opened, also display:

"🔗 Your PRs: {list of PR URLs}"

Heartbeat / Cron Integration

To run this skill on a schedule, add to your HEARTBEAT.md or set up a cron:

# HEARTBEAT.md
## Open Source Contribution
- Run /oss-contributor --auto during idle periods (2-3x per week)
- Focus: repos relevant to your work or job search targets

Or as a cron:

/oss-contributor --auto --repos openclaw/openclaw --labels good-first-issue,documentation --limit 3 --notify-channel telegram:8566529935

Etiquette Rules (Non-negotiable)

  1. Always fork — never assume push access
  2. Read CONTRIBUTING.md — follow their rules, not yours
  3. One issue at a time per repo — don't spam maintainers
  4. Skip assigned issues — someone's already on it
  5. Full AI disclosure (mandatory) — Every PR MUST include the 🤖 disclosure block identifying this as AI-authored with the human owner's @username. This is non-negotiable — maintainers deserve to know.
  6. Respect "no AI PRs" signals — if repo README or issues mention this, skip
  7. Quality over quantity — one great PR beats five mediocre ones
  8. Clean up — delete temp directories, don't leave orphan forks with no PRs
  9. Daily limit — respect the configured cap (default 3)
  10. Be patient — don't ping maintainers for review, let them come to it

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

95.08%
按下载量换算3,836

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install oss-contributor 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills