<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: dsifry</title><link>https://news.ycombinator.com/user?id=dsifry</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 24 Jul 2026 03:19:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dsifry" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dsifry in "Why Software Factories Fail (or: harness engineering is not enough)"]]></title><description><![CDATA[
<p>This is why I built Metaswarm and Metareview and why they work so well, and the are building and supporting production infrastructures and sites for months on end. Give them a try: <a href="https://github.com/dsifry/metaswarm" rel="nofollow">https://github.com/dsifry/metaswarm</a> and <a href="https://github.com/dsifry/metareview" rel="nofollow">https://github.com/dsifry/metareview</a></p>
]]></description><pubDate>Fri, 24 Jul 2026 03:11:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49030832</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=49030832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49030832</guid></item><item><title><![CDATA[New comment by dsifry in "AWS: Inaccurate Estimated Billing Data – $1.7 billion"]]></title><description><![CDATA[
<p>Just got an alert that we would owe $12 Billion. BILLION. After getting me out of bed and a breathless 15 minutes of investigation, I found: <a href="https://health.aws.amazon.com/health/status#billingconsole_1784338681" rel="nofollow">https://health.aws.amazon.com/health/status#billingconsole_1...</a> which notes this is an ongoing issue on Amazon's Global Billing Console.<p>Thanks for the heart attack, Amazon!</p>
]]></description><pubDate>Sat, 18 Jul 2026 07:16:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48955915</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=48955915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48955915</guid></item><item><title><![CDATA[New comment by dsifry in "Ask HN: Are you using an agent orchestrator to write code?"]]></title><description><![CDATA[
<p>I have been helping people get onboarded with Claude Code and the orchestrator I wrote called Metaswarm [1) and the response has been way beyond my expectations.<p>But don't take my word for it, try it out for yourself, it is MIT licensed, and you can create new projects with it or add it to an existing project.<p>[1] <a href="https://github.com/dsifry/metaswarm" rel="nofollow">https://github.com/dsifry/metaswarm</a></p>
]]></description><pubDate>Fri, 13 Feb 2026 06:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46999505</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46999505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46999505</guid></item><item><title><![CDATA[Show HN: Metaswarm: Production-ready agent swarms, MIT license]]></title><description><![CDATA[
<p>A few weeks ago I posted about GoodToGo <a href="https://news.ycombinator.com/item?id=46656759">https://news.ycombinator.com/item?id=46656759</a> - a tool that gives AI agents a deterministic answer to "is this PR ready to merge?" Several people asked about the larger orchestration system I mentioned. This is that system.
I got tired of being a project manager for Claude Code. It writes code fine, but shipping production code is seven or eight jobs — research, planning, design review, implementation, code review, security audit, PR creation, CI babysitting. I was doing all the coordination myself. The agent typed fast. I was still the bottleneck. What I really needed was an orchestrator of orchestrators - swarms of swarms of agents with deterministic quality checks.<p>So I built metaswarm. It breaks work into phases and assigns each to a specialist swarm orchestrator. It manages handoffs and uses BEADS for deterministic gates that persist across /compact, /clear, and even across sessions. Point it at a GitHub issue or brainstorm with it (it uses Superpowers to ask clarifying questions) and it creates epics, tasks, and dependencies, then runs the full pipeline to a merged PR - including outside code review like CodeRabbit, Greptile, and Bugbot.<p>The thing that surprised me most was the design review gate. Five agents — PM, Architect, Designer, Security, CTO — review every plan in parallel before a line of code gets written. All five must approve. Three rounds max, then it escalates to a human. I expected a rubber stamp. It catches real design problems, dependency issues, security gaps.<p>This weekend I pointed it at my backlog. 127 PRs merged. Every one hit 100% test coverage. No human wrote code, reviewed code, or clicked merge. OK, I guided it a bit, mostly helping with plans for some of the epics.<p>A few learnings:<p>Agent checklists are theater. Agents skipped coverage checks, misread thresholds, or decided they didn't apply. Prompts alone weren't enough. The fix was deterministic gates — BEADS, pre-push hooks, CI jobs all on top of the agent completion check. The gates block bad code whether or not the agent cooperates.<p>The agents are just markdown files. No custom runtime, no server, and while I built it on TypeScript, the agents are language-agnostic. You can read all of them, edit them, add your own.<p>It self-reflects too. After every merged PR, the system extracts patterns, gotchas, and decisions into a JSONL knowledge base. Agents only load entries relevant to the files they're touching. The more it ships, the fewer mistakes it makes. It learns as it goes.<p>metaswarm stands on two projects: <a href="https://github.com/steveyegge/beads" rel="nofollow">https://github.com/steveyegge/beads</a> by Steve Yegge (git-native task tracking and knowledge priming) and <a href="https://github.com/obra/superpowers" rel="nofollow">https://github.com/obra/superpowers</a> by Jesse Vincent (disciplined agentic workflows — TDD, brainstorming, systematic debugging). Both were essential.<p>Background: I founded Technorati, Linuxcare, and Warmstart; tech exec at Lyft and Reddit. I built metaswarm because I needed autonomous agents that could ship to a production codebase with the same standards I'd hold a human team to.<p>$ cd my-project-name<p>$ npx metaswarm init<p>MIT licensed. IANAL. YMMV. Issues/PRs welcome!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46872673">https://news.ycombinator.com/item?id=46872673</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 03 Feb 2026 15:59:44 +0000</pubDate><link>https://dsifry.github.io/metaswarm/</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46872673</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46872673</guid></item><item><title><![CDATA[Show HN: 127 PRs to Prod this wknd with 18 AI agents: metaswarm. MIT licensed]]></title><description><![CDATA[
<p>A few weeks ago I posted about GoodToGo <a href="https://news.ycombinator.com/item?id=46656759">https://news.ycombinator.com/item?id=46656759</a> - a tool that gives AI agents a deterministic answer to "is this PR ready to merge?" Several people asked about the larger orchestration system I mentioned. This is that system.<p>I got tired of being a project manager for Claude Code. It writes code fine, but shipping production code is seven or eight jobs — research, planning, design review, implementation, code review, security audit, PR creation, CI babysitting. I was doing all the coordination myself. The agent typed fast. I was still the bottleneck. What I really needed was an orchestrator of orchestrators - swarms of swarms of agents with deterministic quality checks.<p>So I built metaswarm. It breaks work into phases and assigns each to a specialist swarm orchestrator. It manages handoffs and uses BEADS for deterministic gates that persist across /compact, /clear, and even across sessions. Point it at a GitHub issue or brainstorm with it (it uses Superpowers to ask clarifying questions) and it creates epics, tasks, and dependencies, then runs the full pipeline to a merged PR - including outside code review like CodeRabbit, Greptile, and Bugbot.<p>The thing that surprised me most was the design review gate. Five agents — PM, Architect, Designer, Security, CTO — review every plan in parallel before a line of code gets written. All five must approve. Three rounds max, then it escalates to a human. I expected a rubber stamp. It catches real design problems, dependency issues, security gaps.<p>This weekend I pointed it at my backlog. 127 PRs merged. Every one hit 100% test coverage. No human wrote code, reviewed code, or clicked merge. OK, I guided it a bit, mostly helping with plans for some of the epics.<p>A few learnings:<p>Agent checklists are theater. Agents skipped coverage checks, misread thresholds, or decided they didn't apply. Prompts alone weren't enough. The fix was deterministic gates — BEADS, pre-push hooks, CI jobs all on top of the agent completion check. The gates block bad code whether or not the agent cooperates.<p>The agents are just markdown files. No custom runtime, no server, and while I built it on TypeScript, the agents are language-agnostic. You can read all of them, edit them, add your own.<p>It self-reflects too. After every merged PR, the system extracts patterns, gotchas, and decisions into a JSONL knowledge base. Agents only load entries relevant to the files they're touching. The more it ships, the fewer mistakes it makes. It learns as it goes.<p>metaswarm stands on two projects: <a href="https://github.com/steveyegge/beads" rel="nofollow">https://github.com/steveyegge/beads</a> by Steve Yegge (git-native task tracking and knowledge priming) and <a href="https://github.com/obra/superpowers" rel="nofollow">https://github.com/obra/superpowers</a> by Jesse Vincent (disciplined agentic workflows — TDD, brainstorming, systematic debugging). Both were essential.<p>Background: I founded Technorati, Linuxcare, and Warmstart; tech exec at Lyft and Reddit. I built metaswarm because I needed autonomous agents that could ship to a production codebase with the same standards I'd hold a human team to.<p>$ cd my-project-name<p>$ npx metaswarm init<p>MIT licensed. IANAL. YMMV. Issues/PRs welcome!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46864977">https://news.ycombinator.com/item?id=46864977</a></p>
<p>Points: 5</p>
<p># Comments: 2</p>
]]></description><pubDate>Tue, 03 Feb 2026 01:18:39 +0000</pubDate><link>https://github.com/dsifry/metaswarm</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46864977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46864977</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Some github comments are marked as sctionable, some have threads and suggestions, some are suggestions or are nitpicks. This provides you with a deterministic, reliable red/green approach that you cn use to enforce your policy. Give it a try and you will see how it is much more reliable than using a nondeterministic agent, especially for complex reviews!</p>
]]></description><pubDate>Sun, 18 Jan 2026 02:44:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46664373</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46664373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46664373</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Yeah, it is about making sure that EVERY actionable PR comment gets addressed - whwther by fixing, resolving, creating a new issue, commenting that it is a will not fix, or blocking for human review - and then giving you a clear deterministic check you can do to reliably enforce your policy.</p>
]]></description><pubDate>Sun, 18 Jan 2026 02:41:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46664352</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46664352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46664352</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Just to be clear - the hook is deterministic, but the subagent running with an mcp server loaded is not - and for medium/large PRs, it can run out of context window or just forget what it is trying to do and get lazy and say 'Everything is good, ready to merge!' when in fact tests are failing or there are still unaddressed PR comments.</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:36:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662800</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662800</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662800</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>I found that it has improved overall code quality significantly, at the cost of somewhat slower velocity. But it has meant fewer interruptions where the ai is just waiting for me, or saying "Everything is ready!" only to find that ci/cd failed or there were clearly existing comments/issues.</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:33:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662785</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662785</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Lol, I thought it did a reasonably good job, but to each their own - this was the difference between releasing the project so others could use it with decent documentation, or not releasing and just using it internally. :)</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:31:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662770</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662770</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Exactly right!</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:29:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662758</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662758</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>No, it just prepares the PR - it doesn't automatically merge. That would be very dangerous, imho!</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:28:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662747</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662747</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>That's EXACTLY right. Ready to merge is an important gate, but it is very stupid to just merge everything without further checks/testing by a human!</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:27:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662741</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662741</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Right! It doesn't assume that all comments are actionable, or need to be worked on. However, if you allow anyone to comment on your PRs, it could be a malicious vector. So don't let anyone review PRs on projects that you care about!!!</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:26:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662732</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662732</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>That's why I intentionally don't have this hooked into an ingest flow - you still get control over what issues/stories you want the agent swarm to work on... Just now, I can know that the code that was written has been reviewed and all comments have been fully addressed!</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:24:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662717</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662717</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Yup! Software engineers aren't going to be out of work anytime soon, but I'm acting more like a CTO or VPE with a team of agents now, rather than just a single dev with a smart intern.</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:23:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662701</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662701</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>Sure, but that mcp still missed actionable comments that are marked as Out of Scope or Outside the PR - and this doesn't require having the context window loss of having another mcp instantiated, either. Anyway, give gtg a competitive look against the mcp - you should be able to see the difference</p>
]]></description><pubDate>Sat, 17 Jan 2026 22:19:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46662665</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46662665</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46662665</guid></item><item><title><![CDATA[New comment by dsifry in "Show HN: I built a tool to assist AI agents to know when a PR is good to go"]]></title><description><![CDATA[
<p>I did! The issue however, is having a clear, deterministic method of defining when the code review was 'done'. So the hooks can fire off subagents, but they are non-deterministic and often miss vital code review comments - especially ones that are marked in an inline comment, or are marked as 'Out of PR Scope' or 'Out of range of the file' - which are often the MOST important comments to address!<p>So gtg builds all of that in and deterministically determines whether or not there are any actionable comments, and thus you can block the agent from moving forward until all actionable comments are thoroughly reviewed, acted upon or acknowledged, at which point it will change state and allow the PR to be merged.</p>
]]></description><pubDate>Sat, 17 Jan 2026 11:13:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46657105</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46657105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46657105</guid></item><item><title><![CDATA[Show HN: I built a tool to assist AI agents to know when a PR is good to go]]></title><description><![CDATA[
<p>I've been using Claude Code heavily, and kept hitting the same issue: the agent would push changes, respond to reviews, wait for CI... but never really know when it was done.<p>It would poll CI in loops. Miss actionable comments buried among 15 CodeRabbit suggestions. Or declare victory while threads were still unresolved.<p>The core problem: no deterministic way for an agent to know a PR is ready to merge.<p>So I built gtg (Good To Go). One command, one answer:<p>$ gtg 123                                                                                                                                                                                                                      
OK PR #123: READY                                                                                                                                                                                                              
     CI: success (5/5 passed)                                                                                                                                                                                                    
     Threads: 3/3 resolved<p>It aggregates CI status, classifies review comments (actionable vs. noise), and tracks thread resolution. Returns JSON for agents or human-readable text.<p>The comment classification is the interesting part — it understands CodeRabbit severity markers, Greptile patterns, Claude's blocking/approval language. "Critical: SQL injection" gets flagged; "Nice refactor!" doesn't.<p>MIT licensed, pure Python. I use this daily in a larger agent orchestration system — would love feedback from others building similar workflows.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46656759">https://news.ycombinator.com/item?id=46656759</a></p>
<p>Points: 45</p>
<p># Comments: 35</p>
]]></description><pubDate>Sat, 17 Jan 2026 09:55:56 +0000</pubDate><link>https://dsifry.github.io/goodtogo/</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=46656759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46656759</guid></item><item><title><![CDATA[New comment by dsifry in "[dead]"]]></title><description><![CDATA[
<p>Pure awesomeness.</p>
]]></description><pubDate>Mon, 21 Oct 2013 17:15:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=6586850</link><dc:creator>dsifry</dc:creator><comments>https://news.ycombinator.com/item?id=6586850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=6586850</guid></item></channel></rss>