Martin Emde

Martin Emde

@martinemde.com

Modularity @ Gusto, Rubyist

234 followers74 following242 posts

With the amount of programming that’s getting done “while I slept,” you’d think AI is making us all really well rested…

Just ran across this post by @andrewnez.bsky.social that puts words to my deep feeling of betrayal by Ruby Central in their awful governing of rubygems. "Package Registries Are Governance Providers," meaning their failure betrays the core promise of a package registry. nesbitt.io/2025/12/22/p...

nesbitt.ioPackage Registries Are Governance ProvidersRegistries host files, but they also decide who owns names, how disputes resolve, and what gets removed. That second job is governance.

Skillet can now start up with an existing claude task list. $ skillet --task-list=mytasklist --prompt "Complete the assigned tasks" You can have another claude create and assign these tasks to a skillet worker (I think we could improve the interface though) github.com/martinemde/s...

github.comGitHub - martinemde/skillet: 🍳 Run SKILLs & commands as Shell Scripts. Cook with Claude without the mess.🍳 Run SKILLs & commands as Shell Scripts. Cook with Claude without the mess. - martinemde/skillet

And another thing! GitHub missed probably the one major thing we really needed them to do: separate AI actions from human actions. The "fine-grained" tokens are woefully inadequate for a situation where agents act on our behalf. GitHub ignored critical security controls to give us mediocre Copilot.

It’s not just large code reviews that crash GitHub. I can’t even load the comment thread on this PR because it’s got 74 comments and GitHub probably has some N+1 query in there. 🤦‍♂️

Claude Code merged the duplicative slash commands into skills, and made skills better in the process. Happy to see this right as I was working on skills a bunch (the split was confusing, and a merger seemed inevitable). martinemde.com/blog/claude-...

martinemde.comClaude Code commands deprecated in favor of skills - Martin EmdeAnthropic pushed out a change to the docs that deprecates commands, pointing everyone te use the new improved skills with support for most of the same feature set.

Lately it feels like the fan is just blasting at turbo speed and the ducts are full of shit but the fan is insane and the shit is hitting it all the time and the fan does not give a shit.

I’ve written countless throw-away headless claude scripts. - None work on the first try - Ugly prompts get buried in the ugly script - Permissions wrong, CLI flags wrong, nothing works - Output choices: Nothing / JSON flood. Agent Skills + Skillet fixes all of this: github.com/martinemde/s...

github.comGitHub - martinemde/skillet: 🍳 Run Claude Skills as Shell Scripts.🍳 Run Claude Skills as Shell Scripts. Contribute to martinemde/skillet development by creating an account on GitHub.

Martin Emde reposted

i think a core beef that i have with a lot of this "automation is bad" sentiment lately is that there is no inherent moral good in laboring the story of humanity is one of invention, where we improve our conditions by building things that help us do more things more easily

This post is unavailable.

Here's a screenshot. It's fully customizable because it _is_ starship. Notice my context is about 20% full. Very useful at a glance.

Martin Emde@martinemde.com

I made a claude code statusline that updates Ghostty's progress bar (that blue line at the top) as you fill up context. I know there's a lot of these out there, but this one uses starship directly for rendering, which was somewhat rare when I looked. github.com/martinemde/s...

I made a claude code statusline that updates Ghostty's progress bar (that blue line at the top) as you fill up context. I know there's a lot of these out there, but this one uses starship directly for rendering, which was somewhat rare when I looked. github.com/martinemde/s...

github.comGitHub - martinemde/starship-claude: ✳ claude code statusline rendered by starship✳ claude code statusline rendered by starship. Contribute to martinemde/starship-claude development by creating an account on GitHub.

Interesting approach: Suppress Josef's comment, then suppress anyone else that isn't in support of the new "governance." Making a deal with the person that broke the last deal is futile, but what do you achieve by suppressing the people saying that? Suppression just brings more attention.

Martin Emde@martinemde.com

Josef summed up problem of any new governance of rubygems in this comment: “The original governance was not the problem… The real failure was that one maintainer ignored it, and Ruby Core accepted that violation” github.com/ruby/rubygem...

You know… Ruby Central’s takeover of rubygems GitHub org ONLY worked because it could be executed within seconds, and by doing so, prevent the possibility of revert. If the ownership change was a PR it would never have been approved. If RC is “right”, why did they need the atomic switch?

You might say the reason they needed to do a switch atomically is because someone said “if you remove him I’ll add him back.” If someone says that to you, does that make it right to respond by using your power to move first to do it by force so you don’t have to answer the concerns being expressed?

Martin Emde reposted

Martin Emde reposted

@sethmlarson.dev and I went through months of intense, complex work to climb a steep and slippery learning curve, only to be stopped short at the very end by a hard ethical line we couldn't cross—it was gut-wrenching. I'm proud of what we did and I'm proud of what we didn't do.

TLDR; The PSF has made the decision to put our community and our shared diversity, equity, and inclusion values ahead of seeking $1.5M in new revenue. Please read and share. pyfound.blogspot.com/2025/10/NSF-... 🧵

Jamie Gaskins wrote a great piece explaining how shipit, the code the deploys rubygems.org works and why a fork would have been fine. The one thing I would add is that there is no Ruby Central institutional knowledge. There were and are only outside rubygems maintainers jgaskins.blog/ruby-central...

jgaskins.blogJamie Writes WordsThis action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
View full thread

Companies should scan their open source. Full adoption of trusted publishing could have foiled NPM’s Shai Halud. Fighting about shared ownership models is horribly destructive when it makes the people leave that understand these problems. That’s the real security vulnerability.

One takeaway is that the open source world is an amazing place! It's marvelous how well this usually works. This is distributed trust at scale via education and support (rather than control). All the work to help people learn security and provide best practices mostly seems to work. Wonderful!

Jamie Gaskins wrote a great piece explaining how shipit, the code the deploys rubygems.org works and why a fork would have been fine. The one thing I would add is that there is no Ruby Central institutional knowledge. There were and are only outside rubygems maintainers jgaskins.blog/ruby-central...

jgaskins.blogJamie Writes WordsThis action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
View full thread

You might wonder, “how can a group of friends be sufficient for global enterprise software supply chain security?” The answer for me is that these people were there BECAUSE it was so important. RubyGems.org has had no major outage in 14 years. This is not a fluke.

If all you need to make your supply chain secure is CLAs for devs and a non-profit administrative staff holding keys to the world, remember that most package managers still run untrusted code on install, packages go live with minimal scanning, and best practice publishing security adoption is low.

Jamie Gaskins wrote a great piece explaining how shipit, the code the deploys rubygems.org works and why a fork would have been fine. The one thing I would add is that there is no Ruby Central institutional knowledge. There were and are only outside rubygems maintainers jgaskins.blog/ruby-central...

jgaskins.blogJamie Writes WordsThis action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
View full thread

I’ll clarify that RC paying for labor is only partial, recently, and for a portion of the engineering time and people. Most work was done for free on personal time or company time. RC is more of a fiscal host for contributions to rubygems than a company managing the service. They do conferences.

The team that managed rubygems was formed by building social connections with people that cared enough to work on rubygems in their free time. It is at its core a trust based team of equals. This is why corporate takeovers that take advantage of that trust hurt so much. Trust is all we had.

Jamie Gaskins wrote a great piece explaining how shipit, the code the deploys rubygems.org works and why a fork would have been fine. The one thing I would add is that there is no Ruby Central institutional knowledge. There were and are only outside rubygems maintainers jgaskins.blog/ruby-central...

jgaskins.blogJamie Writes WordsThis action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?

Martin Emde reposted

In 2025 we need philosophical attitude more than ever: being calm, thoughtful and meaningful. I want to be that kind of person. In this complex era, I want to dig into things, talk with people, think about problems and make decisions. I want to be communicative, respectful and free.