Open source
What I sent to other people’s projects
Pull requests I wrote for public repositories I do not own, since May 2026. 30 were merged and 11 are open, across 12 projects. The ones closed without a merge are left out of this list.
The fixes marked itaruby came out of a bug hunt with itaruby, the Ruby type checker I write: each one went out only after I reproduced the error by running the project’s code and saw the same run pass with the fix.
GitHub data, updated Oct 17, 2026.
rails/rails
58,849 stars 3 merged · 1 open itaruby
discourse/discourse
47,988 stars 6 merged itaruby
- Merged FIX: raise new RuntimeError in ColorMath raises NoMethodError #44039
- Merged FIX: retrying a bot reply with no stored agent raises NoMethodError #44038
- Merged FIX: bulk import user stats read user_email instead of user_stat #44037
- Merged FIX: forward force as a keyword argument in the TopicAssigner shim #42897
- Merged FIX: two crashes in the Lithium import script #42898
- Merged FIX: pass all five arguments to replace_internal_link in Discuz import #42896
fastlane/fastlane
42,252 stars 1 merged · 2 open itaruby
gastownhall/beads
27,962 stars 1 merged · 1 open
coleam00/Archon
23,702 stars 1 merged
Chachamaru127/claude-code-harness
3,169 stars 1 merged
serpapi/serpapi-mcp
180 stars 1 merged
getpaseo/hub
54 stars 1 merged
nicolasmelo1/software-factory
34 stars 15 merged · 1 open
- Merged fix(init): python schema query listed its fields out of grammar order #43
- Merged fix(init): enable and prove template rules on a fresh install #44
- Merged fix(checks): a tool named only in a comment no longer satisfies the toolchain rules #26
- Merged fix(L1): scope text_pattern forbidden entries per language #19
- Merged docs(plans): the four L0 rules assume an import statement #18
- Merged fix(cadence): L5.NO_INERT_RULE misses a toolchain rule with the wrong languages #20
- Merged fix(init): the first `sf check` after `sf init` failed on files `sf init` wrote #17
- Merged feat(L6): Ruby joins the hazard rules #8
- Merged feat(lang): add the ruby language adapter #9
- Merged fix(L5): NO_INERT_RULE now sees TextPattern and Complexity rules #7
- Merged fix(ratchet): a re-seed recomputed the deadline, not just the keys #15
- Merged docs: document kind: command as the sanctioned extension path #6
- Merged fix(init): report local rules sf fixtures cannot scaffold #5
- Merged test: prove the include_str! registries match their directories #4
- Merged fix(report): print expected/actual independently in text output #3
- Open feat(catalog): judge a claim against its evidence, with Jev as the reference oracle #63
zammad/zammad
6,016 stars 0 merged · 4 open itaruby
- Open Fix: Store::Provider::File raises NameError instead of reporting a corrupted file #6381
- Open Fix: Channel::EmailBuild logs scrub failures with undefined logger #6380
- Open Fix: Auth::TwoFactor#initiate_authentication calls an undefined method #6331
- Open Fix: Compare limit against @size, not undefined size #6329
Shopify/ruby-lsp
2,042 stars 0 merged · 1 open itaruby
dafthunk-com/dafthunk
137 stars 0 merged · 1 open
My own projects, like the tools for coding agents, live in Projects.