GoGetAJob — Open Source Contribution Workflow
Find GitHub issues, implement fixes, submit PRs, and track everything.
Prerequisites
Required
- - FlowForge skill (workflow engine): INLINECODE0
gh CLI (authenticated): INLINECODE2git configured with your identityclaude CLI (Claude Code): INLINECODE5
Optional
- - GoGetAJob CLI for stats/sync: INLINECODE6
- Verify:
gogetajob --help
- Not required for the core work loop — FlowForge handles that
Architecture
- - Main session = dispatch + bookkeeping (scan, pick, submit, sync, stats)
- Sub-agents = actual code work (implement, fix CI, address reviews)
- Code changes = always via Claude Code (
acpx --approve-all claude exec)
Never do implementation work in the main session. Always delegate to sub-agents.
Quick Commands
| Command | What it does |
|---|
| INLINECODE9 | Discover open issues from a repo |
| INLINECODE10 |
Scan all tracked repos |
|
gogetajob feed | Browse available jobs |
|
gogetajob check <ref> | Deep-inspect an issue before taking it |
|
gogetajob start <ref> | Take a job — fork/clone/branch |
|
gogetajob submit <ref> --tokens N | Push + create PR + record |
|
gogetajob followup <ref> --tokens N | Record additional effort on existing work |
|
gogetajob sync | Check all PR statuses, flag problems |
|
gogetajob watch | Set up automatic sync via cron |
|
gogetajob stats | View overall performance and ROI |
|
gogetajob history | View work log |
|
gogetajob import <repo> | Backfill work_log from GitHub PR history |
The Work Loop
The full contribution cycle runs as a FlowForge workflow (workloop). See references/workloop-overview.md for the complete node-by-node breakdown.
Summary:
CODEBLOCK0
To start: INLINECODE22
Core Rules
1. Code via Claude Code, not hand-written
Sub-agents delegate all code changes to Claude Code:
CODEBLOCK1
Task descriptions must include: issue context, reviewer feedback, architecture notes, maintainer preferences from knowledge-base, and a verification suffix:
"Before committing: 1) grep for all test files that import/mock the interfaces you changed, update their mocks. 2) Run the project's test/lint commands. 3) git diff --stat to confirm no files were missed."
Exception: one-line trivial fixes can be done manually.
2. Dogfood everything
After each work session, check: did gogetajob, flowforge, or any tool have bugs or friction? If yes:
- - File an issue on the tool's repo
- Or fix it yourself and submit a PR
- Every round should be smoother than the last — this is compounding returns
3. Max 3 open PRs per repo
Before submitting a new PR, check: INLINECODE23
If ≥ 3 open PRs exist, stop. Wait for existing PRs to be reviewed/merged before adding more. Flooding maintainers kills goodwill.
4. Accurate token tracking
Always pass real token counts from sub-agent session_status:
CODEBLOCK2
Never estimate. Never guess. No number → don't fill it in.
5. Pre-PR checklist (all must pass)
Before creating any PR:
- 1. Does this PR solve exactly one problem?
- No existing fix or competing PR upstream?
- Read CONTRIBUTING.md and recent merge patterns?
- Can verify the fix locally (tests pass)?
- Open PRs for this repo ≤ 3?
6. Knowledge accumulation
- - Before working on a repo: read
knowledge-base/projects/<repo>.md (field notes) - After finishing: update field notes with lessons, maintainer preferences, CI quirks
- Cross-project insights → memex cards
- Behavioral patterns → beliefs-candidates.md
Sync & Follow-up
Run gogetajob sync regularly (or use gogetajob watch for automatic cron).
When sync flags issues:
| Signal | Priority | Action |
|---|
| Human review comment | High | Spawn sub-agent to address, then INLINECODE28 |
| CI failure |
Medium | Spawn sub-agent to fix, then
followup |
| Bot review (CodeRabbit etc.) | Low | Address if substantive, ignore nitpicks |
| PR closed | — | Read why. If someone else's fix was better, study it |
Issue Selection Strategy
When picking issues from gogetajob feed:
- - Priority: real bugs > test coverage > docs > features
- Prefer repos with existing field notes (knowledge compounds)
- High-star repos: check for competing PRs first
- Security/infra issues: look for related issues to batch-fix
- Always verify:
git log --oneline -20 -- <relevant files> to check if already fixed - Check maintainer activity: repos that only merge internal PRs are low-ROI for external contributors
GoGetAJob — 开源贡献工作流
发现GitHub问题,实现修复,提交PR,并追踪一切。
前置条件
必需条件
- - FlowForge技能(工作流引擎):clawhub install agent-flowforge
- gh CLI(已认证):gh auth status
- git 已配置身份信息
- claude CLI(Claude Code):claude --version
可选条件
- - GoGetAJob CLI 用于统计/同步:npm install -g @kagura-agent/gogetajob
- 验证:gogetajob --help
- 核心工作循环不需要——FlowForge会处理
架构
- - 主会话 = 调度 + 记账(扫描、挑选、提交、同步、统计)
- 子代理 = 实际代码工作(实现、修复CI、处理评审意见)
- 代码变更 = 始终通过Claude Code(acpx --approve-all claude exec)
绝不在主会话中做实现工作。始终委托给子代理。
快速命令
| 命令 | 功能 |
|---|
| gogetajob scan <owner/repo> | 从仓库发现开放问题 |
| gogetajob scan --all |
扫描所有追踪的仓库 |
| gogetajob feed | 浏览可用任务 |
| gogetajob check
[ | 接受任务前深度检查问题 |
| gogetajob start ][ | 接受任务——fork/克隆/创建分支 |
| gogetajob submit ][ --tokens N | 推送 + 创建PR + 记录 |
| gogetajob followup ][ --tokens N | 记录对现有工作的额外投入 |
| gogetajob sync | 检查所有PR状态,标记问题 |
| gogetajob watch | 通过cron设置自动同步 |
| gogetajob stats | 查看整体性能和投资回报率 |
| gogetajob history | 查看工作日志 |
| gogetajob import | 从GitHub PR历史回填工作日志 |
]工作循环
完整的贡献周期作为FlowForge工作流(workloop)运行。详见 references/workloop-overview.md 的逐节点分解。
概要:
跟进 → 寻找工作 → 研究 → 实现 → 提交 → 验证 → 反思
│ │ │ │
│ └─────────┘(没有好问题?循环回去) │
└──────────(有评审反馈?先处理)──────────────────────────────┘
启动:flowforge start workloop
核心规则
1. 通过Claude Code编写代码,而非手动编写
子代理将所有代码变更委托给Claude Code:
bash
cd && acpx --approve-all claude exec <包含完整上下文的任务描述>
任务描述必须包含:问题上下文、评审反馈、架构说明、知识库中的维护者偏好,以及验证后缀:
提交前:1)grep所有导入/模拟了你修改的接口的测试文件,更新它们的模拟。2)运行项目的测试/lint命令。3)git diff --stat确认没有遗漏文件。
例外:一行简单的修复可以手动完成。
2. 自用所有工具
每次工作会话后,检查:gogetajob、flowforge或任何工具是否有bug或摩擦?如果有:
- - 在该工具的仓库上提交问题
- 或者自己修复并提交PR
- 每一轮都应该比上一轮更顺畅——这是复利回报
3. 每个仓库最多3个开放PR
在提交新PR之前,检查:gh pr list --repo --author @me --state open
如果已有≥3个开放PR,停止。等待现有PR被评审/合并后再添加更多。淹没维护者会消耗善意。
4. 准确的token追踪
始终从子代理的session_status传递真实的token计数:
bash
gogetajob submit [ --tokens <实际计数>]
gogetajob followup [ --tokens <实际计数>]
绝不估算。绝不猜测。没有数字→不要填写。
5. PR前检查清单(必须全部通过)
在创建任何PR之前:
- 1. 这个PR是否只解决一个问题?
- 上游没有现有的修复或竞争PR?
- 阅读了CONTRIBUTING.md和最近的合并模式?
- 能否在本地验证修复(测试通过)?
- 该仓库的开放PR ≤ 3?
6. 知识积累
- - 在仓库上工作前:阅读 knowledge-base/projects/.md(现场笔记)
- 完成后:用经验教训、维护者偏好、CI怪癖更新现场笔记
- 跨项目洞察 → memex卡片
- 行为模式 → beliefs-candidates.md
同步与跟进
定期运行 gogetajob sync(或使用 gogetajob watch 自动cron)。
当同步标记问题时:
| 信号 | 优先级 | 操作 |
|---|
| 人工评审评论 | 高 | 生成子代理处理,然后 followup |
| CI失败 |
中 | 生成子代理修复,然后 followup |
| 机器人评审(CodeRabbit等) | 低 | 如有实质内容则处理,忽略吹毛求疵 |
| PR已关闭 | — | 阅读原因。如果别人的修复更好,学习它 |
问题选择策略
从 gogetajob feed 挑选问题时:
- - 优先级:真实bug > 测试覆盖 > 文档 > 功能
- 优先选择有现有现场笔记的仓库(知识会积累)
- 高星仓库:先检查是否有竞争PR
- 安全/基础设施问题:查找相关问题以批量修复
- 始终验证:git log --oneline -20 -- <相关文件> 检查是否已修复
- 检查维护者活跃度:只合并内部PR的仓库对外部贡献者投资回报率低